diff mbox

Fix alignment propagation

Message ID 20150219233929.GA21632@kam.mff.cuni.cz
State New
Headers show

Commit Message

Jan Hubicka Feb. 19, 2015, 11:39 p.m. UTC
Hi,
this patch fixes alignment propagation that causes wrong code on solex and firefox.
Patch is by Martin, I just added the obvous MINUS_EXPR fix (the offset would be wrong,
but I see no reason for MINUX_ExPR appearing there with constant parameter), went
ahead and commited the fix.

Tested on x86_64-linux.

Honza

Comments

Marek Polacek Feb. 19, 2015, 11:44 p.m. UTC | #1
On Fri, Feb 20, 2015 at 12:39:29AM +0100, Jan Hubicka wrote:
> Hi,
> this patch fixes alignment propagation that causes wrong code on solex and firefox.
> Patch is by Martin, I just added the obvous MINUS_EXPR fix (the offset would be wrong,
> but I see no reason for MINUX_ExPR appearing there with constant parameter), went
> ahead and commited the fix.
> 
> Tested on x86_64-linux.

Two nits:

> Index: ChangeLog
> ===================================================================
> --- ChangeLog	(revision 220825)
> +++ ChangeLog	(working copy)
> @@ -1,3 +1,10 @@
> +2015-02-19  Martin Jambor  <mjmabor@suse.cz>

Typo in the e-mail address.

> +	    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: ipa-cp.c
> ===================================================================
> --- ipa-cp.c	(revision 220825)
> +++ ipa-cp.c	(working copy)
> @@ -1438,8 +1438,7 @@ propagate_alignment_accross_jump_functio
>  	  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_functio
>        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;;

Two ;'s at the end of the line.

	Marek
diff mbox

Patch

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 220825)
+++ ChangeLog	(working copy)
@@ -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: ipa-cp.c
===================================================================
--- ipa-cp.c	(revision 220825)
+++ ipa-cp.c	(working copy)
@@ -1438,8 +1438,7 @@  propagate_alignment_accross_jump_functio
 	  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_functio
       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);