mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-26 23:32:58 +00:00
Shrink the size of CodeGenInstruction a little bit by using bitfields. 32 bools seemed excessive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200829 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
49d687d58f
commit
51dd765139
@ -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");
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user