[LLVMdev] Converting back to SSA form

Rahman Lavaee rlavaee at cs.rochester.edu
Tue Sep 23 08:14:46 PDT 2014


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.

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/c46d4dc3/attachment.html>


More information about the llvm-dev mailing list