[LLVMdev] Problem in X86 backend

Rinaldini Julien julien.rinaldini at heig-vd.ch
Thu Oct 30 01:32:04 PDT 2014


Oh ok, that's what I tought but I wasn't sure I did understand
correctly... Thx for the help!

Cheers

On 10/29/2014 07:49 PM, Quentin Colombet wrote:
> 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