gcse.c (compute_pre_data): Compute ae_kill using other local properties instead of...
authorJeffrey A Law <law@cygnus.com>
Mon, 3 Jul 2000 06:49:31 +0000 (06:49 +0000)
committerJeff Law <law@gcc.gnu.org>
Mon, 3 Jul 2000 06:49:31 +0000 (00:49 -0600)
        * gcse.c (compute_pre_data): Compute ae_kill using other local
        properties instead of calling compute_ae_kill.

From-SVN: r34839

gcc/ChangeLog
gcc/gcse.c

index 231ec25..6ea02a1 100644 (file)
@@ -1,5 +1,8 @@
 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
 
+       * gcse.c (compute_pre_data): Compute ae_kill using other local
+       properties instead of calling compute_ae_kill.
+
        * alias.c (init_alias_analysis): Do not call
        prologue_epilogue_contains until after reload has completed.
 
index cc13317..0486dc9 100644 (file)
@@ -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);
 }