Add test for memcpy expansion with hint.

2018-08-27  Martin Liska  <mliska@suse.cz>

	* config/i386/i386.c (ix86_expand_set_or_movmem): Dump
        selected expansion strategy.
2018-08-27  Martin Liska  <mliska@suse.cz>

	* gcc.dg/tree-prof/val-prof-10.c: New test.

From-SVN: r263881
This commit is contained in:
Martin Liska 2018-08-27 15:18:43 +02:00 committed by Martin Liska
parent 3d78e00879
commit 6b60ee204f
4 changed files with 45 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2018-08-27 Martin Liska <mliska@suse.cz>
* config/i386/i386.c (ix86_expand_set_or_movmem): Dump
selected expansion strategy.
2018-08-27 Martin Liska <mliska@suse.cz>
* builtins.h (is_builtin_fn): Remove and fndecl_built_in_p.

View File

@ -27530,6 +27530,11 @@ ix86_expand_set_or_movmem (rtx dst, rtx src, rtx count_exp, rtx val_exp,
issetmem,
issetmem && val_exp == const0_rtx, have_as,
&dynamic_check, &noalign, false);
if (dump_file)
fprintf (dump_file, "Selected stringop expansion strategy: %s\n",
stringop_alg_names[alg]);
if (alg == libcall)
return false;
gcc_assert (alg != no_stringop);

View File

@ -1,3 +1,7 @@
2018-08-27 Martin Liska <mliska@suse.cz>
* gcc.dg/tree-prof/val-prof-10.c: New test.
2018-08-27 Martin Liska <mliska@suse.cz>
PR tree-optimization/86847

View File

@ -0,0 +1,31 @@
/* { dg-options "-O2 -fdump-rtl-expand -mtune=core2" } */
/* { dg-skip-if "" { ! { i?86-*-* x86_64-*-* } } } */
long buffer1[128], buffer2[128];
char *x;
void foo(long *r)
{
x = (char *)r;
asm volatile("" ::: "memory");
}
void
__attribute__((noinline))
compute()
{
volatile int n = 24;
__builtin_memcpy (buffer1, buffer2, n);
foo (&buffer1[0]);
}
int
main()
{
for (unsigned i = 0; i < 10000; i++)
compute ();
return 0;
}
/* { dg-final-use-not-autofdo { scan-rtl-dump "Selected stringop expansion strategy: rep_byte" "expand" } } */