diff options
author | Jeffrey A Law <law@cygnus.com> | 2000-07-03 06:49:31 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2000-07-03 00:49:31 -0600 |
commit | c66e8ae9daa33ee796897357474b8020be912f8c (patch) | |
tree | 130e69cd01a373660baf29190aa73a897687265e /gcc/gcse.c | |
parent | 657959caa17ae0fd939b68973d78f9a7f274a81f (diff) | |
download | gcc-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.c | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -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); } |