From: Jeff Law Date: Thu, 25 Nov 2004 03:54:07 +0000 (-0700) Subject: tree-ssa-alias.c (compute_flow_insensitive_aliasing): Reduce the number of queries... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0bab1c88870a0e2767441248d20524e2ccf3c137;p=gcc.git tree-ssa-alias.c (compute_flow_insensitive_aliasing): Reduce the number of queries to random elements in the ai->written_vars bitmap. * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Reduce the number of queries to random elements in the ai->written_vars bitmap. From-SVN: r91271 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7aad684894f..94ada816e0a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-11-24 Jeff Law + + * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Reduce + the number of queries to random elements in the ai->written_vars + bitmap. + 2004-11-24 Roger Sayle * config/i386/i386.c (override_options): Disable x87 fancy math diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c index 0e30f126d30..4640f1fe0c4 100644 --- a/gcc/tree-ssa-alias.c +++ b/gcc/tree-ssa-alias.c @@ -921,11 +921,16 @@ compute_flow_insensitive_aliasing (struct alias_info *ai) /* Skip memory tags and variables that have never been written to. We also need to check if the variables are call-clobbered because they may be overwritten by - function calls. */ - tag_stored_p = bitmap_bit_p (ai->written_vars, tag_ann->uid) - || is_call_clobbered (tag); - var_stored_p = bitmap_bit_p (ai->written_vars, v_ann->uid) - || is_call_clobbered (var); + function calls. + + Note this is effectively random accessing elements in + the sparse bitset, which can be highly inefficient. + So we first check the call_clobbered status of the + tag and variable before querying the bitmap. */ + tag_stored_p = is_call_clobbered (tag) + || bitmap_bit_p (ai->written_vars, tag_ann->uid); + var_stored_p = is_call_clobbered (var) + || bitmap_bit_p (ai->written_vars, v_ann->uid); if (!tag_stored_p && !var_stored_p) continue;