diff options
author | Diego Novillo <dnovillo@redhat.com> | 2005-07-09 17:35:05 +0000 |
---|---|---|
committer | Diego Novillo <dnovillo@gcc.gnu.org> | 2005-07-09 13:35:05 -0400 |
commit | 563cb6be0f31cea2cece0482aff2ede0acc1d259 (patch) | |
tree | 10e3c61c624d9fda48e1baf168a72b816d391674 /gcc/passes.c | |
parent | 7c6ef73e9bc4d5a334efc3ca87f2c9d67a06efda (diff) | |
download | gcc-563cb6be0f31cea2cece0482aff2ede0acc1d259.zip gcc-563cb6be0f31cea2cece0482aff2ede0acc1d259.tar.gz gcc-563cb6be0f31cea2cece0482aff2ede0acc1d259.tar.bz2 |
re PR tree-optimization/21356 (Dominance error after aggressive dead code elimination (cd_dce))
PR 21356
PR 22332
* passes.c (execute_todo): Cleanup the CFG before updating
SSA.
From-SVN: r101832
Diffstat (limited to 'gcc/passes.c')
-rw-r--r-- | gcc/passes.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/gcc/passes.c b/gcc/passes.c index 8d1411a..abc44e4 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -666,12 +666,7 @@ execute_todo (struct tree_opt_pass *pass, unsigned int flags, bool use_required) gcc_assert (flags & TODO_update_ssa_any); #endif - if (flags & TODO_update_ssa_any) - { - unsigned update_flags = flags & TODO_update_ssa_any; - update_ssa (update_flags); - } - + /* Always cleanup the CFG before doing anything else. */ if (flags & TODO_cleanup_cfg) { if (current_loops) @@ -680,6 +675,12 @@ execute_todo (struct tree_opt_pass *pass, unsigned int flags, bool use_required) cleanup_tree_cfg (); } + if (flags & TODO_update_ssa_any) + { + unsigned update_flags = flags & TODO_update_ssa_any; + update_ssa (update_flags); + } + if ((flags & TODO_dump_func) && dump_file && current_function_decl) { |