aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcse.c
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>2000-07-03 06:49:31 +0000
committerJeff Law <law@gcc.gnu.org>2000-07-03 00:49:31 -0600
commitc66e8ae9daa33ee796897357474b8020be912f8c (patch)
tree130e69cd01a373660baf29190aa73a897687265e /gcc/gcse.c
parent657959caa17ae0fd939b68973d78f9a7f274a81f (diff)
downloadgcc-c66e8ae9daa33ee796897357474b8020be912f8c.zip
gcc-c66e8ae9daa33ee796897357474b8020be912f8c.tar.gz
gcc-c66e8ae9daa33ee796897357474b8020be912f8c.tar.bz2
gcse.c (compute_pre_data): Compute ae_kill using other local properties instead of calling compute_ae_kill.
* gcse.c (compute_pre_data): Compute ae_kill using other local properties instead of calling compute_ae_kill. From-SVN: r34839
Diffstat (limited to 'gcc/gcse.c')
-rw-r--r--gcc/gcse.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/gcc/gcse.c b/gcc/gcse.c
index cc13317..0486dc9 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -4118,10 +4118,24 @@ free_pre_mem ()
static void
compute_pre_data ()
{
+ int i;
+
compute_local_properties (transp, comp, antloc, 0);
compute_transpout ();
sbitmap_vector_zero (ae_kill, n_basic_blocks);
- compute_ae_kill (comp, ae_kill);
+
+ /* Compute ae_kill for each basic block using:
+
+ ~(TRANSP | COMP)
+
+ This is significantly after than compute_ae_kill. */
+
+ for (i = 0; i < n_basic_blocks; i++)
+ {
+ sbitmap_a_or_b (ae_kill[i], transp[i], comp[i]);
+ sbitmap_not (ae_kill[i], ae_kill[i]);
+ }
+
edge_list = pre_edge_lcm (gcse_file, n_exprs, transp, comp, antloc,
ae_kill, &pre_insert_map, &pre_delete_map);
}