[LLVMdev] Problem in X86 backend
Quentin Colombet
qcolombet at apple.com
Wed Oct 29 11:49:16 PDT 2014
Hi Julien,
Akira already pointed out the problem.
You have basically two definitions of the same virtual register, which is forbidden in SSA.
I.e., you have:
Reg = something
...
Reg = Reg + something else
What you want is
Reg = something
...
Reg2 = Reg + something else
=> you need to create a second virtual register for the second definition.
Cheers,
-Quentin
Envoyé de mon iPhone
Le 29 oct. 2014 à 02:58, Rinaldini Julien <julien.rinaldini at heig-vd.ch> a écrit :
>> Your problem is that kill flag on RDI. Indeed, this is not the last use of RDI in your
>> case and because you set this flag, when jumping to BB#4, the compiler thinks
>> that > RDI is not defined.
>>
>> Also, I am not sure what you are trying to achieve, but are you sure you always
>> want to use RDI? In this case, should it be vreg7 for instance?
>>
>> -Quentin
>
> Hi, thx for your answer...
>
> I figured it that out... In fact I changed my code and now I'm using a virtual register, but I still have a problem :( (http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-October/078315.html)
>
> I'm trying to erase the content of the stack in the epilogue of the function...
>
> Cheers
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list