diff options
author | Evan Cheng <evan.cheng@apple.com> | 2009-10-01 08:21:18 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2009-10-01 08:21:18 +0000 |
commit | 46668e09be3856fae935c5857b53dea74302173f (patch) | |
tree | 7edcb8081d80d72d9a839bebf8925252331ffecb /llvm/utils/TableGen/CodeGenInstruction.cpp | |
parent | e364e7bc2b6ff3323cb8e4bf4e3a44a71eb04944 (diff) | |
download | bcm5719-llvm-46668e09be3856fae935c5857b53dea74302173f.tar.gz bcm5719-llvm-46668e09be3856fae935c5857b53dea74302173f.zip |
Add instruction flags: hasExtraSrcRegAllocReq and hasExtraDefRegAllocReq. When
set, these flags indicate the instructions source / def operands have special
register allocation requirement that are not captured in their register classes.
Post-allocation passes (e.g. post-alloc scheduler) should not change their
allocations. e.g. ARM::LDRD require the two definitions to be allocated
even / odd register pair.
llvm-svn: 83196
Diffstat (limited to 'llvm/utils/TableGen/CodeGenInstruction.cpp')
-rw-r--r-- | llvm/utils/TableGen/CodeGenInstruction.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/CodeGenInstruction.cpp b/llvm/utils/TableGen/CodeGenInstruction.cpp index b7968a0e9cd..d421fd07c32 100644 --- a/llvm/utils/TableGen/CodeGenInstruction.cpp +++ b/llvm/utils/TableGen/CodeGenInstruction.cpp @@ -101,6 +101,8 @@ CodeGenInstruction::CodeGenInstruction(Record *R, const std::string &AsmStr) mayHaveSideEffects = R->getValueAsBit("mayHaveSideEffects"); neverHasSideEffects = R->getValueAsBit("neverHasSideEffects"); isAsCheapAsAMove = R->getValueAsBit("isAsCheapAsAMove"); + hasExtraSrcRegAllocReq = R->getValueAsBit("hasExtraSrcRegAllocReq"); + hasExtraDefRegAllocReq = R->getValueAsBit("hasExtraDefRegAllocReq"); hasOptionalDef = false; isVariadic = false; |