diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-07-03 06:49:31 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-07-03 06:49:31 +0000 |
commit | bafa5ac77d4fc0eadf34d9de4240d840156bd8f7 (patch) | |
tree | 130e69cd01a373660baf29190aa73a897687265e /gcc/gcse.c | |
parent | fd037eda58e7505fc78b2c52e823a5055df6f0bc (diff) | |
download | gcc-bafa5ac77d4fc0eadf34d9de4240d840156bd8f7.tar.gz |
* gcse.c (compute_pre_data): Compute ae_kill using other local
properties instead of calling compute_ae_kill.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34839 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gcse.c')
-rw-r--r-- | gcc/gcse.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/gcc/gcse.c b/gcc/gcse.c index cc133177caa..0486dc946a4 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); } |