[PATCH] D31188: [AntiDepBreaker] Use liveins as well in StartBlock

Tim Shen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 4 17:01:15 PDT 2017


timshen added a comment.

In https://reviews.llvm.org/D31188#718346, @MatzeB wrote:

> In https://reviews.llvm.org/D31188#714712, @echristo wrote:
>
> > Committed thusly:
> >
> > echristo at athyra ~/s/llvm> git svn dcommit
> >  Committing to https://llvm.org/svn/llvm-project/llvm/trunk ...
> >
> >   	M	lib/AsmParser/LLParser.cpp
> >   	M	lib/CodeGen/AggressiveAntiDepBreaker.cpp
> >   	M	lib/CodeGen/CriticalAntiDepBreaker.cpp
> >
> > Committed r299124
> >
> > and... here:
> >
> > echristo at athyra ~/s/llvm> git svn dcommit
> >  Committing to https://llvm.org/svn/llvm-project/llvm/trunk ...
> >
> >   	A	test/CodeGen/PowerPC/pristine-and-livein.mir
> >
> > Committed r299125
> >
> > *sigh*
>
>
> FWIW: I am pretty sure "getPristineRegs is not accurately considering shrink wrapping puts registers not saved in certain blocks." as mentioned in the commit message is not true! getPristineRegs() doesn't have to do that!
>
> I also don't understand the fix here: Adding live-in registers when the code here appears to be searching for live-out registers seem like an odd fix to me (I can see how it helps though as it will just mark more registers as occupied).


Also, the new behavior matches the intention in the comment:

  In non-return this is any callee-saved register that is not saved in the prolog.


https://reviews.llvm.org/D31188





More information about the llvm-commits mailing list