[llvm] r211543 - [FastISel][X86] Optimize selects when the condition comes from a compare.
Juergen Ributzka
juergen at apple.com
Wed Jun 25 11:51:56 PDT 2014
Hi Stephan,
I found the issue. The problem was that I was requesting the register for an instruction in a different basic block. The register might not be defined, even though the instruction has been emitted. In this particular case the instruction - a load - was folded into the compare and therefore no register was defined.
I have a fix and I am creating a reduced test case.
Cheers,
Juergen
On Jun 25, 2014, at 9:52 AM, Juergen Ributzka <juergen at apple.com> wrote:
> Hi Stephane,
>
> I will take a look and see if I can find a quick fix. If not, I will revert the change.
>
> Thanks for tracking this down for me again. Are you running an -O0 buildbot?
>
> Cheers,
> Juergen
>
>
> On Jun 25, 2014, at 8:08 AM, Stephan Bergmann <sbergman at redhat.com> wrote:
>
>> ...looks like X86FastISel::X86FastEmitCMoveSelect -> X86FastEmitCompare(CmpLHS, CmpRHS, CmpVT) -> getRegForValue(Op0) comes up with a different virtual register than the one that got spilled out, for whatever reason (way beyond my humble debugging attempts).
>>
>> Stephan
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140625/06876e4d/attachment.html>
More information about the llvm-commits
mailing list