[LLVMdev] Converting back to SSA form
Rahman Lavaee
rlavaee at cs.rochester.edu
Tue Sep 23 12:31:44 PDT 2014
Dear John and Jim,
Thanks for your answers.
I agree that it is easy to do option 1 below and simple to use the stack as
John suggests, and maybe a bit more difficult when using RegisterScavenger.
However, I was just wondering maybe "Undoing the Register Allocation" has
already been done as part of some LLVM-based disassembler.
On Tue, Sep 23, 2014 at 12:23 PM, John Criswell <jtcriswel at gmail.com> wrote:
> On 9/23/14, 11:14 AM, Rahman Lavaee wrote:
>
> Thanks John,
>
> The reason I want to do this is that register allocator works only on SSA
> form, and if you instrument regallocated code with non-regallocated machine
> instructions, then you cannot regallocate the result.
>
> A workaround is to assign physical registers while doing the
> instrumentation, which I don't think is as easy as the above.
>
>
> Actually, it is pretty simple as long as you don't care about
> performance. All you have to do is insert code to push the registers that
> you want to use on to the stack, use those registers in your
> instrumentation, and then restore them with pops off the stack.
>
> Regards,
>
> John Criswell
>
>
> On Tue, Sep 23, 2014 at 11:01 AM, John Criswell <jtcriswel at gmail.com>
> wrote:
>
>> On 9/23/14, 10:52 AM, Rahman Lavaee wrote:
>>
>>> Hi,
>>>
>>> I'm wondering how I can convert "register allocated" code back to SSA
>>> form. I realized from MachineRegisterInfo.h that a function leaves SSA form
>>> only once and cannot be taken back to it.
>>>
>>
>> Are you wanting to put MachineInstr's into SSA form? If you want to do
>> that, you'll need to implement the SSA construction algorithm yourself so
>> that it works on MachineInstrs. Also, such a pass will need to work with
>> virtual registers as you'll need an unlimited supply of temporary
>> variables. In essence, you'll be undoing register allocation.
>>
>> Can you describe why you want to put MachineInstrs into SSA form? I
>> suspect that putting MachineIntrs back into SSA form is not what you want
>> to do.
>>
>> Regards,
>>
>> John Criswell
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140923/dd1eaaf2/attachment.html>
More information about the llvm-dev
mailing list