match.pd: Use single_use more

Richard Biener rguenther@suse.de
Thu Jun 11 10:38:00 GMT 2015


On Thu, 11 Jun 2015, Marek Polacek wrote:

> A cleanup patch to make the code more readable.
> 
> Bootstrapped/regtested on x86_64-linux, ok for trunk?

Ok.

Thanks,
Richard.

> 2015-06-11  Marek Polacek  <polacek@redhat.com>
> 
> 	* match.pd: Use single_use throughout.
> 
> diff --git gcc/match.pd gcc/match.pd
> index 48358a8..33fa717 100644
> --- gcc/match.pd
> +++ gcc/match.pd
> @@ -301,7 +301,7 @@ along with GCC; see the file COPYING3.  If not see
>  /* x + (x & 1) -> (x + 1) & ~1 */
>  (simplify
>   (plus:c @0 (bit_and@2 @0 integer_onep@1))
> - (if (TREE_CODE (@2) != SSA_NAME || has_single_use (@2))
> + (if (single_use (@2))
>    (bit_and (plus @0 @1) (bit_not @1))))
>  
>  /* x & ~(x & y) -> x & ~y */
> @@ -309,7 +309,7 @@ along with GCC; see the file COPYING3.  If not see
>  (for bitop (bit_and bit_ior)
>   (simplify
>    (bitop:c @0 (bit_not (bitop:c@2 @0 @1)))
> -   (if (TREE_CODE (@2) != SSA_NAME || has_single_use (@2))
> +   (if (single_use (@2))
>      (bitop @0 (bit_not @1)))))
>  
>  /* (x | y) & ~x -> y & ~x */
> @@ -449,15 +449,14 @@ along with GCC; see the file COPYING3.  If not see
>  /* (x & ~m) | (y & m) -> ((x ^ y) & m) ^ x */
>  (simplify
>    (bit_ior:c (bit_and:c@3 @0 (bit_not @2)) (bit_and:c@4 @1 @2))
> -  (if ((TREE_CODE (@3) != SSA_NAME || has_single_use (@3))
> -	&& (TREE_CODE (@4) != SSA_NAME || has_single_use (@4)))
> +  (if (single_use (@3) && single_use (@4))
>     (bit_xor (bit_and (bit_xor @0 @1) @2) @0)))
>  
>  
>  /* Associate (p +p off1) +p off2 as (p +p (off1 + off2)).  */
>  (simplify
>    (pointer_plus (pointer_plus@2 @0 @1) @3)
> -  (if (TREE_CODE (@2) != SSA_NAME || has_single_use (@2))
> +  (if (single_use (@2))
>     (pointer_plus @0 (plus @1 @3))))
>  
>  /* Pattern match
> 
> 	Marek
> 
> 

-- 
Richard Biener <rguenther@suse.de>
SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Dilip Upmanyu, Graham Norton, HRB 21284 (AG Nuernberg)



More information about the Gcc-patches mailing list