mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Replace M_REMATERIALIZIBLE and the newly-added isOtherReMaterializableLoad
with a general target hook to identify rematerializable instructions. Some instructions are only rematerializable with specific operands, such as loads from constant pools, while others are always rematerializable. This hook allows both to be identified as being rematerializable with the same mechanism. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37644 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -91,7 +91,6 @@ namespace llvm {
|
||||
bool isConvertibleToThreeAddress;
|
||||
bool isCommutable;
|
||||
bool isTerminator;
|
||||
bool isReMaterializable;
|
||||
bool hasDelaySlot;
|
||||
bool usesCustomDAGSchedInserter;
|
||||
bool hasVariableNumberOfOperands;
|
||||
|
@@ -365,7 +365,6 @@ CodeGenInstruction::CodeGenInstruction(Record *R, const std::string &AsmStr)
|
||||
isConvertibleToThreeAddress = R->getValueAsBit("isConvertibleToThreeAddress");
|
||||
isCommutable = R->getValueAsBit("isCommutable");
|
||||
isTerminator = R->getValueAsBit("isTerminator");
|
||||
isReMaterializable = R->getValueAsBit("isReMaterializable");
|
||||
hasDelaySlot = R->getValueAsBit("hasDelaySlot");
|
||||
usesCustomDAGSchedInserter = R->getValueAsBit("usesCustomDAGSchedInserter");
|
||||
hasCtrlDep = R->getValueAsBit("hasCtrlDep");
|
||||
|
@@ -240,7 +240,6 @@ void InstrInfoEmitter::emitRecord(const CodeGenInstruction &Inst, unsigned Num,
|
||||
if (Inst.isConvertibleToThreeAddress) OS << "|M_CONVERTIBLE_TO_3_ADDR";
|
||||
if (Inst.isCommutable) OS << "|M_COMMUTABLE";
|
||||
if (Inst.isTerminator) OS << "|M_TERMINATOR_FLAG";
|
||||
if (Inst.isReMaterializable) OS << "|M_REMATERIALIZIBLE";
|
||||
if (Inst.clobbersPred) OS << "|M_CLOBBERS_PRED";
|
||||
if (Inst.isNotDuplicable) OS << "|M_NOT_DUPLICABLE";
|
||||
if (Inst.usesCustomDAGSchedInserter)
|
||||
|
Reference in New Issue
Block a user