[LLVMdev] Problem in X86 backend (original) (raw)

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