diff options
author | Christian Bruel <christian.bruel@st.com> | 2014-06-06 09:21:02 +0200 |
---|---|---|
committer | Christian Bruel <chrbr@gcc.gnu.org> | 2014-06-06 09:21:02 +0200 |
commit | d969f3c163ea9397c9b0e4a9dad2c1238f003b50 (patch) | |
tree | e8aeff7f4e0f8ff2ca895abc3ea5f4e11f53171a /gcc/tree-ssa-loop-im.c | |
parent | 4a450ea0d103b9d10a5dd293af5c984ca07f094d (diff) | |
download | gcc-d969f3c163ea9397c9b0e4a9dad2c1238f003b50.zip gcc-d969f3c163ea9397c9b0e4a9dad2c1238f003b50.tar.gz gcc-d969f3c163ea9397c9b0e4a9dad2c1238f003b50.tar.bz2 |
re PR tree-optimization/43934 (LIM should handle PHI nodes)
PR tree-optimization/43934
* tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant cost.
From-SVN: r211302
Diffstat (limited to 'gcc/tree-ssa-loop-im.c')
-rw-r--r-- | gcc/tree-ssa-loop-im.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c index 5863127..e957f92 100644 --- a/gcc/tree-ssa-loop-im.c +++ b/gcc/tree-ssa-loop-im.c @@ -719,8 +719,14 @@ determine_max_movement (gimple stmt, bool must_preserve_exec) FOR_EACH_PHI_ARG (use_p, stmt, iter, SSA_OP_USE) { val = USE_FROM_PTR (use_p); + if (TREE_CODE (val) != SSA_NAME) - continue; + { + /* Assign const 1 to constants. */ + min_cost = MIN (min_cost, 1); + total_cost += 1; + continue; + } if (!add_dependency (val, lim_data, loop, false)) return false; def_data = get_lim_data (SSA_NAME_DEF_STMT (val)); |