On Tue, Jan 19, 2016 at 12:43:53PM +0100, Eric Botcazou wrote: > > 2016-01-19 Jakub Jelinek <ja...@redhat.com> > > > > PR rtl-optimization/68955 > > PR rtl-optimization/64557 > > * dse.c (record_store, check_mem_read_rtx): Don't call get_addr > > here. Fix up formatting. > > * alias.c (get_addr): Handle VALUE + CONST_INT. > > VALUE +/- CONST_INT (and actually also CONST_WIDE_INT).
And CONST_DOUBLE. > > * gcc.dg/torture/pr68955.c: New test. > > OK, if you add "plus or minus an optional constant offset" to the head > comment > of the get_addr function, thanks. > > Handling CONST_WIDE_INT looks superfluous to me though (as well as MINUS > since > it's non-canonical but we'd probably better be forgiving for this one). So shall I take out the CONST_WIDE_INT/CONST_DOUBLE handling and just check for CONST_INT_P instead of CONST_SCALAR_INT_P ? I thought it is just easy thing to handle, though for DSE which cares about addresses it really does not matter. Or can I leave it in? DSE will only care about CONST_INT and +. For minus, I thought it can be canonical for the minimum signed value, if it is originally subtracted (not the case for DSE). Jakub