[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