aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2021-11-08 18:38:09 +0100
committerJan Hubicka <hubicka@ucw.cz>2021-11-08 18:38:09 +0100
commit666d780426f39883db8362f5cc24cdf9b4d3e98d (patch)
treee9b7f4b16b0b562a8573602ca02c83cff71cf2cf
parent239d82d4c05b30632fd09ba4056de7dac5aee070 (diff)
downloadgcc-666d780426f39883db8362f5cc24cdf9b4d3e98d.zip
gcc-666d780426f39883db8362f5cc24cdf9b4d3e98d.tar.gz
gcc-666d780426f39883db8362f5cc24cdf9b4d3e98d.tar.bz2
Move uncprop after modref
moveS uncprop after modref and pure/const pass and adds a comment that this pass should alwasy be last since it is only supposed to help PHI lowering. The pass replaces constant by SSA names that are known to be constant at the place which hardly helps other passes. gcc/ChangeLog: PR tree-optimization/103177 * passes.def: Move uncprop after pure/const and modref.
-rw-r--r--gcc/passes.def8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/passes.def b/gcc/passes.def
index 0f54145..56dab80 100644
--- a/gcc/passes.def
+++ b/gcc/passes.def
@@ -360,9 +360,11 @@ along with GCC; see the file COPYING3. If not see
number of false positives from it. */
NEXT_PASS (pass_split_crit_edges);
NEXT_PASS (pass_late_warn_uninitialized);
- NEXT_PASS (pass_uncprop);
NEXT_PASS (pass_local_pure_const);
NEXT_PASS (pass_modref);
+ /* uncprop replaces constants by SSA names. This makes analysis harder
+ and thus it should be run last. */
+ NEXT_PASS (pass_uncprop);
POP_INSERT_PASSES ()
NEXT_PASS (pass_all_optimizations_g);
PUSH_INSERT_PASSES_WITHIN (pass_all_optimizations_g)
@@ -393,9 +395,11 @@ along with GCC; see the file COPYING3. If not see
number of false positives from it. */
NEXT_PASS (pass_split_crit_edges);
NEXT_PASS (pass_late_warn_uninitialized);
- NEXT_PASS (pass_uncprop);
NEXT_PASS (pass_local_pure_const);
NEXT_PASS (pass_modref);
+ /* uncprop replaces constants by SSA names. This makes analysis harder
+ and thus it should be run last. */
+ NEXT_PASS (pass_uncprop);
POP_INSERT_PASSES ()
NEXT_PASS (pass_tm_init);
PUSH_INSERT_PASSES_WITHIN (pass_tm_init)