[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 16:47:53 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!
Sounds fair, but someone has to do it.
> 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).
This is based on my inderstanding on "ideal liveins()" I mentioned in the bug:
/* Returns all live-ins, including the unspilled callee-saved registers. */
iterator_range<concat_iterator<...>> liveins();
The fix turns "Pristine.test(Reg)" into "getPristineRegs() &
https://reviews.llvm.org/D31188
More information about the llvm-commits
mailing list