This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH PR71347][Partial revert r235513]Compute cost for all uses in group


On 18 June 2016 at 10:59, Andreas Schwab <schwab@linux-m68k.org> wrote:
> Bin Cheng <Bin.Cheng@arm.com> writes:
>
>> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr71347.c b/gcc/testsuite/gcc.dg/tree-ssa/pr71347.c
>> new file mode 100644
>> index 0000000..7e5ad49
>> --- /dev/null
>> +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr71347.c
>> @@ -0,0 +1,17 @@
>> +/* { dg-do compile } */
>> +/* { dg-options "-O2 -fdump-tree-optimized" } */
>> +
>> +double in;
>> +extern void Write (double);
>> +void foo (void)
>> +{
>> +  static double X[9];
>> +  int i;
>> +        X[1] = in * in;
>> +        for (i = 2; i <= 8; i++)
>> +            X[i] = X[i - 1] * X[1];
>> +        Write (X[5]);
>> +}
>> +
>> +/* Load of X[i - i] can be omitted by reusing X[i] in previous iteration.  */
>> +/* { dg-final { scan-tree-dump-not ".* = MEM.*;" "optimized"} } */
>
> The test fails on ia64, this is what I get in .optimized:
>

The test passes on aarch64, but fails on arm targets. Maybe that's
easier for Bin to reproduce?

Christophe

> ;; Function foo (foo, funcdef_no=0, decl_uid=1387, cgraph_uid=0, symbol_order=1)
>
> foo ()
> {
>   int i;
>   static double X[9];
>   double in.0_1;
>   double in.1_2;
>   double _3;
>   int _4;
>   double _5;
>   double _6;
>   double _7;
>   double _8;
>
>   <bb 2>:
>   in.0_1 = in;
>   in.1_2 = in;
>   _3 = in.0_1 * in.1_2;
>   X[1] = _3;
>   i_13 = 2;
>   goto <bb 4>;
>
>   <bb 3>:
>   _4 = i_9 + -1;
>   _5 = X[_4];
>   _6 = X[1];
>   _7 = _5 * _6;
>   X[i_9] = _7;
>   i_15 = i_9 + 1;
>
>   <bb 4>:
>   # i_9 = PHI <i_13(2), i_15(3)>
>   if (i_9 <= 8)
>     goto <bb 3>;
>   else
>     goto <bb 5>;
>
>   <bb 5>:
>   _8 = X[5];
>   Write (_8);
>   return;
>
> }
>
>
> Andreas.
>
> --
> Andreas Schwab, schwab@linux-m68k.org
> GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
> "And now for something completely different."


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]