Encode register class constreaints in inline asm instructions.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 12 Oct 2011 23:37:29 +0000 (23:37 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 12 Oct 2011 23:37:29 +0000 (23:37 +0000)
commit459b74b9644c4741d93fe73adc2b06ca6bdb366d
treeb1cdd1d49326e6e2e6a5928d9c34ea0ceadfd4e7
parenta3a1635d04667a7674d754ce13bc44d43d4b26e9
Encode register class constreaints in inline asm instructions.

The inline asm operand constraint is initially encoded in the virtual
register for the operand, but that register class may change during
coalescing, and the original constraint is lost.

Encode the original register class as part of the flag word for each
inline asm operand.  This makes it possible to recover the actual
constraint required by inline asm, just like we can for normal
instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141833 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/InlineAsm.h
lib/CodeGen/MachineInstr.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp