re PR ipa/65028 (450.soplex in SPEC CPU 2006 is miscompiled)
authorMartin Jambor <mjambor@suse.cz>
Thu, 19 Feb 2015 23:31:40 +0000 (23:31 +0000)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 19 Feb 2015 23:31:40 +0000 (23:31 +0000)
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

gcc/ChangeLog
gcc/ipa-cp.c

index 04f256c49010146642708d395151dc4f600e078c..94633bda9df1662e4aee6ca09649e5c5452e0f87 100644 (file)
@@ -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.
index 103ac99a6f2e2a9ec0301fe954c4e06d8b6abd53..bfe4d972e735e06542c2d83341ad8d575f996960 100644 (file)
@@ -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);