aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2015-02-19 23:31:40 +0000
committerJan Hubicka <hubicka@gcc.gnu.org>2015-02-19 23:31:40 +0000
commit81d43c6bb892b782435460279012b1ef5494ef2d (patch)
tree81404003d31cca06a1418266e6e70085a310d877 /gcc
parentdcdeca7afdd8a1d3f902353724848042c6123b46 (diff)
downloadgcc-81d43c6bb892b782435460279012b1ef5494ef2d.zip
gcc-81d43c6bb892b782435460279012b1ef5494ef2d.tar.gz
gcc-81d43c6bb892b782435460279012b1ef5494ef2d.tar.bz2
re PR ipa/65028 (450.soplex in SPEC CPU 2006 is miscompiled)
PR ipa/65028 * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation across jump functions. Co-Authored-By: Jan Hubicka <hubicka@ucw.cz> From-SVN: r220826
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/ipa-cp.c5
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 04f256c..94633bd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2015-02-19 Martin Jambor <mjmabor@suse.cz>
+ Jan Hubicka <hubicka@ucw.cz>
+
+ PR ipa/65028
+ * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
+ across jump functions.
+
2015-02-19 Uros Bizjak <ubizjak@gmail.com>
* config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
index 103ac99..bfe4d97 100644
--- a/gcc/ipa-cp.c
+++ b/gcc/ipa-cp.c
@@ -1438,8 +1438,7 @@ propagate_alignment_accross_jump_function (struct cgraph_edge *cs,
if (op != NOP_EXPR)
{
if (op != POINTER_PLUS_EXPR
- && op != PLUS_EXPR
- && op != MINUS_EXPR)
+ && op != PLUS_EXPR)
goto prop_fail;
tree operand = ipa_get_jf_pass_through_operand (jfunc);
if (!tree_fits_shwi_p (operand))
@@ -1451,7 +1450,7 @@ propagate_alignment_accross_jump_function (struct cgraph_edge *cs,
else
{
src_idx = ipa_get_jf_ancestor_formal_id (jfunc);
- offset = ipa_get_jf_ancestor_offset (jfunc);
+ offset = ipa_get_jf_ancestor_offset (jfunc) / BITS_PER_UNIT;;
}
src_lats = ipa_get_parm_lattices (caller_info, src_idx);