[llvm-commits] [llvm] r141833 - in /llvm/trunk: include/llvm/InlineAsm.h lib/CodeGen/MachineInstr.cpp lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

Jakob Stoklund Olesen stoklund at 2pi.dk
Thu Oct 13 09:56:13 PDT 2011


On Oct 13, 2011, at 12:32 AM, Duncan Sands wrote:

> Hi Jakob,
> 
>> Encode register class constreaints in inline asm instructions.
> 
> does this require changes to front-ends?

No, it doesn't.

The register classes are derived from the normal "r", "a" constraint strings by the target's getRegForInlineAsmConstraint().

This patch records the derived register class constraint explicitly in the INLINE_ASM MachineInstr.  Previously, the derived register class was only remembered by the virtual register created for the operand.

The problem is that virtual registers can be further constrained when they are merged by coalescing or CSE.  Then the original constraint is lost.

/jakob




More information about the llvm-commits mailing list