On 05/01/16 07:29, Richard Biener wrote:
On January 4, 2016 8:08:17 PM GMT+01:00, Jeff Law <l...@redhat.com> wrote:
On 12/21/2015 06:13 AM, Alan Lawrence wrote:
This is a respin of patches
https://gcc.gnu.org/ml/gcc-patches/2015-10/msg03266.html and
https://gcc.gnu.org/ml/gcc-patches/2015-10/msg03267.html, which were
"too quickly" approved before concerns with efficiency were pointed
out.

I tried to change the hashing just in tree-ssa-dom.c using C++
subclassing, but
couldn't cleanly separate this out from tree-ssa-scopedtables and
tree-ssa-threadedge.c due to use of avail_exprs_stack. So I figured
it was
probably appropriate to use the equivalences in jump threading too.
Also,
using get_ref_base_and_extent unifies handling of MEM_REFs and
ARRAY_REFs

Without looking at the patch, ARRAY_REFs can have non-constant indices which 
get_ref_base_and_extend handles conservative.  You should make sure to not 
regress here.

Thanks for the warning - my understanding is that in such a case, get_ref_base_and_extent returns max_size=(size of the whole array), size=(size of one element); and I only handle cases where size==max_size. Arrays of unknown length have size -1, so will never be equal.

Thanks, Alan

Reply via email to