diff options
| author | Craig Topper <craig.topper@gmail.com> | 2014-02-05 09:10:40 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2014-02-05 09:10:40 +0000 |
| commit | bc9486bea08428b9137b9a5404d8fdadc8b16a54 (patch) | |
| tree | 9b917560871a76e07ce15f73ca051b0252fad4a3 | |
| parent | 4c6129af32c988d047f4ae96dec2003e37212ab5 (diff) | |
| download | bcm5719-llvm-bc9486bea08428b9137b9a5404d8fdadc8b16a54.tar.gz bcm5719-llvm-bc9486bea08428b9137b9a5404d8fdadc8b16a54.zip | |
Shrink the size of CodeGenInstruction a little bit by using bitfields. 32 bools seemed excessive.
llvm-svn: 200829
| -rw-r--r-- | llvm/utils/TableGen/CodeGenInstruction.cpp | 11 | ||||
| -rw-r--r-- | llvm/utils/TableGen/CodeGenInstruction.h | 64 |
2 files changed, 39 insertions, 36 deletions
diff --git a/llvm/utils/TableGen/CodeGenInstruction.cpp b/llvm/utils/TableGen/CodeGenInstruction.cpp index 576388b2ed1..dbe3e69c8e1 100644 --- a/llvm/utils/TableGen/CodeGenInstruction.cpp +++ b/llvm/utils/TableGen/CodeGenInstruction.cpp @@ -315,10 +315,13 @@ CodeGenInstruction::CodeGenInstruction(Record *R) hasCtrlDep = R->getValueAsBit("hasCtrlDep"); isNotDuplicable = R->getValueAsBit("isNotDuplicable"); - mayLoad = R->getValueAsBitOrUnset("mayLoad", mayLoad_Unset); - mayStore = R->getValueAsBitOrUnset("mayStore", mayStore_Unset); - hasSideEffects = R->getValueAsBitOrUnset("hasSideEffects", - hasSideEffects_Unset); + bool Unset; + mayLoad = R->getValueAsBitOrUnset("mayLoad", Unset); + mayLoad_Unset = Unset; + mayStore = R->getValueAsBitOrUnset("mayStore", Unset); + mayStore_Unset = Unset; + hasSideEffects = R->getValueAsBitOrUnset("hasSideEffects", Unset); + hasSideEffects_Unset = Unset; neverHasSideEffects = R->getValueAsBit("neverHasSideEffects"); isAsCheapAsAMove = R->getValueAsBit("isAsCheapAsAMove"); diff --git a/llvm/utils/TableGen/CodeGenInstruction.h b/llvm/utils/TableGen/CodeGenInstruction.h index 6004f667927..bc578136c6a 100644 --- a/llvm/utils/TableGen/CodeGenInstruction.h +++ b/llvm/utils/TableGen/CodeGenInstruction.h @@ -215,38 +215,38 @@ namespace llvm { std::vector<Record*> ImplicitDefs, ImplicitUses; // Various boolean values we track for the instruction. - bool isReturn; - bool isBranch; - bool isIndirectBranch; - bool isCompare; - bool isMoveImm; - bool isBitcast; - bool isSelect; - bool isBarrier; - bool isCall; - bool canFoldAsLoad; - bool mayLoad; - bool mayLoad_Unset; - bool mayStore; - bool mayStore_Unset; - bool isPredicable; - bool isConvertibleToThreeAddress; - bool isCommutable; - bool isTerminator; - bool isReMaterializable; - bool hasDelaySlot; - bool usesCustomInserter; - bool hasPostISelHook; - bool hasCtrlDep; - bool isNotDuplicable; - bool hasSideEffects; - bool hasSideEffects_Unset; - bool neverHasSideEffects; - bool isAsCheapAsAMove; - bool hasExtraSrcRegAllocReq; - bool hasExtraDefRegAllocReq; - bool isCodeGenOnly; - bool isPseudo; + bool isReturn : 1; + bool isBranch : 1; + bool isIndirectBranch : 1; + bool isCompare : 1; + bool isMoveImm : 1; + bool isBitcast : 1; + bool isSelect : 1; + bool isBarrier : 1; + bool isCall : 1; + bool canFoldAsLoad : 1; + bool mayLoad : 1; + bool mayLoad_Unset : 1; + bool mayStore : 1; + bool mayStore_Unset : 1; + bool isPredicable : 1; + bool isConvertibleToThreeAddress : 1; + bool isCommutable : 1; + bool isTerminator : 1; + bool isReMaterializable : 1; + bool hasDelaySlot : 1; + bool usesCustomInserter : 1; + bool hasPostISelHook : 1; + bool hasCtrlDep : 1; + bool isNotDuplicable : 1; + bool hasSideEffects : 1; + bool hasSideEffects_Unset : 1; + bool neverHasSideEffects : 1; + bool isAsCheapAsAMove : 1; + bool hasExtraSrcRegAllocReq : 1; + bool hasExtraDefRegAllocReq : 1; + bool isCodeGenOnly : 1; + bool isPseudo : 1; std::string DeprecatedReason; bool HasComplexDeprecationPredicate; |

