[PATCH] D65148: [SimplifyCFG] Bump phi-node-folding-threshold from 2 to 3

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 28 05:47:09 PDT 2019


lebedev.ri added a comment.

bump

In D65148#1644016 <https://reviews.llvm.org/D65148#1644016>, @lebedev.ri wrote:

> In D65148#1629103 <https://reviews.llvm.org/D65148#1629103>, @lebedev.ri wrote:
>
> > In D65148#1629010 <https://reviews.llvm.org/D65148#1629010>, @dmgreen wrote:
> >
> > > > That is a valid transformation: https://rise4fun.com/Alive/bxq
> > >
> > > I see, because of the truncs back into an i16. That makes sense.
> >
>
>
> Ok, and that one is done too:
>
>   $ ./bin/clang -target arm-none-eabi -mcpu=cortex-m0plus -O3 -mllvm -phi-node-folding-threshold=2 -S -o old.s /tmp/test.c 
>   $ ./bin/clang -target arm-none-eabi -mcpu=cortex-m0plus -O3 -mllvm -phi-node-folding-threshold=3 -S -o new.s /tmp/test.c 
>   $ diff old.s new.s 
>   $ <no diff>
>   $ sha512sum *.s
>   9332ab2169151fa21ab03e1fb218178aa16bed2c0dfdd0a40b178a75dbd4a865ba7a7b1b4b37f252928ea794e38776260f84f6c1ae3684d5a445118f518351e2  new.s
>   9332ab2169151fa21ab03e1fb218178aa16bed2c0dfdd0a40b178a75dbd4a865ba7a7b1b4b37f252928ea794e38776260f84f6c1ae3684d5a445118f518351e2  old.s
>
>
>
>
> In D65148#1631970 <https://reviews.llvm.org/D65148#1631970>, @lebedev.ri wrote:
>
> > Thank you for taking a look!
> >
> > In D65148#1631933 <https://reviews.llvm.org/D65148#1631933>, @dmgreen wrote:
> >
> > > Fair enough.
> >
> >
> >
> >
> > > One last issue, which might come up from this change. This time with a multiply, that was previously able to simplify one of the compares to true, I think in CVP.  Same __SSAT as before.
> > > 
> > >   void arm_mult_q7(const signed char * pSrcA, const signed char * pSrcB, signed char * pDst, unsigned  blockSize)
> > >   {
> > >     unsigned  blkCnt = blockSize;
> > >     while (blkCnt > 0U)
> > >     {
> > >       *pDst++ = (signed char) __SSAT((((short) (*pSrcA++) * (*pSrcB++)) >> 7), 8);
> > >       blkCnt--;
> > >     }
> > >   }
>


@dmgreen & others: So now the question is, do we believe this general missing fold is a blocker here?

> In D65148#1632130 <https://reviews.llvm.org/D65148#1632130>, @lebedev.ri wrote:
> 
>> In D65148#1632032 <https://reviews.llvm.org/D65148#1632032>, @nikic wrote:
>>
>> > @lebedev.ri CVP can already determine that the condition is always true:
>> >  ...
>> >  This becomes `ret i1 true` under `-correlated-propagation`.
>> >  ...
>> >  Unfortunately CVP has some limitations on icmp simplification that makes it only work in cross-BB scenarios.
>> >  Relaxing those is not entirely straightforward (iirc it had some negative effects due to LVI query order changes).
>>
>>
>> is there a bug# ?

@nikic could you please either CC me to existing bugreport, or file one?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D65148/new/

https://reviews.llvm.org/D65148





More information about the llvm-commits mailing list