[PATCH][rs6000][PR target/82190] fix mem size info in rtl generated by memcmp and strncmp/strcmp builtin expansion

Jakub Jelinek jakub@redhat.com
Tue Dec 12 19:51:00 GMT 2017


On Tue, Dec 12, 2017 at 01:40:41PM -0600, Aaron Sawdey wrote:
> 2017-12-12  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
> 
> 	PR target/82190
> 	* config/rs6000/rs6000-string.c (expand_block_move,
> 	expand_strn_compare): fix set_mem_size() calls.

That should be capitalized: Fix instead of fix

> --- gcc/config/rs6000/rs6000-string.c	(revision 255585)
> +++ gcc/config/rs6000/rs6000-string.c	(working copy)
> @@ -1247,6 +1247,9 @@
>    if (bytes > rs6000_block_move_inline_limit)
>      return 0;
>  
> +  bool isP8 = (rs6000_cpu == PROCESSOR_POWER8);
> +  bool isP9 = (rs6000_cpu == PROCESSOR_POWER9);
> +
>    for (offset = 0; bytes > 0; offset += move_bytes, bytes -= move_bytes)
>      {
>        union {
> @@ -1258,7 +1261,7 @@
>  
>        /* Altivec first, since it will be faster than a string move
>  	 when it applies, and usually not significantly larger.  */
> -      if (TARGET_ALTIVEC && bytes >= 16 && align >= 128)
> +      if (TARGET_ALTIVEC && bytes >= 16 && (isP8 || isP9 || align >= 128))
>  	{
>  	  move_bytes = 16;
>  	  mode = V4SImode;

Is this the patch you meant to attach?  First of all, it only changes
expand_block_move, not expand_strn_compare, and the change seems more
like an optimization of P8/P9 rather than actual fix (otherwise, wouldn't
it fail on say P7?).

> +  return 0;
> +}
> +
> +

Please avoid unnecessary trailing whitespace.

	Jakub



More information about the Gcc-patches mailing list