diff options
author | Martin Jambor <mjambor@suse.cz> | 2015-02-19 23:31:40 +0000 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2015-02-19 23:31:40 +0000 |
commit | 81d43c6bb892b782435460279012b1ef5494ef2d (patch) | |
tree | 81404003d31cca06a1418266e6e70085a310d877 /gcc | |
parent | dcdeca7afdd8a1d3f902353724848042c6123b46 (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/ipa-cp.c | 5 |
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); |