mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-30 17:25:21 +00:00
Restore hasPostISelHook tblgen flag.
No functionality change. The hook makes it explicit which patterns require "special" handling. i.e. it self-documents tblgen deficiencies. I plan to add verification in ExpandISelPseudos and Thumb2SizeReduce to catch any missing hasPostISelHooks. Otherwise it's too fragile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140160 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -309,6 +309,7 @@ CodeGenInstruction::CodeGenInstruction(Record *R) : TheDef(R), Operands(R) {
|
||||
isReMaterializable = R->getValueAsBit("isReMaterializable");
|
||||
hasDelaySlot = R->getValueAsBit("hasDelaySlot");
|
||||
usesCustomInserter = R->getValueAsBit("usesCustomInserter");
|
||||
hasPostISelHook = R->getValueAsBit("hasPostISelHook");
|
||||
hasCtrlDep = R->getValueAsBit("hasCtrlDep");
|
||||
isNotDuplicable = R->getValueAsBit("isNotDuplicable");
|
||||
hasSideEffects = R->getValueAsBit("hasSideEffects");
|
||||
|
@@ -233,6 +233,7 @@ namespace llvm {
|
||||
bool isReMaterializable;
|
||||
bool hasDelaySlot;
|
||||
bool usesCustomInserter;
|
||||
bool hasPostISelHook;
|
||||
bool hasCtrlDep;
|
||||
bool isNotDuplicable;
|
||||
bool hasSideEffects;
|
||||
|
@@ -288,6 +288,7 @@ void InstrInfoEmitter::emitRecord(const CodeGenInstruction &Inst, unsigned Num,
|
||||
if (Inst.isNotDuplicable) OS << "|(1<<MCID::NotDuplicable)";
|
||||
if (Inst.Operands.hasOptionalDef) OS << "|(1<<MCID::HasOptionalDef)";
|
||||
if (Inst.usesCustomInserter) OS << "|(1<<MCID::UsesCustomInserter)";
|
||||
if (Inst.hasPostISelHook) OS << "|(1<<MCID::HasPostISelHook)";
|
||||
if (Inst.Operands.isVariadic)OS << "|(1<<MCID::Variadic)";
|
||||
if (Inst.hasSideEffects) OS << "|(1<<MCID::UnmodeledSideEffects)";
|
||||
if (Inst.isAsCheapAsAMove) OS << "|(1<<MCID::CheapAsAMove)";
|
||||
@@ -344,7 +345,7 @@ void InstrInfoEmitter::emitEnums(raw_ostream &OS) {
|
||||
|
||||
// We must emit the PHI opcode first...
|
||||
std::string Namespace = Target.getInstNamespace();
|
||||
|
||||
|
||||
if (Namespace.empty()) {
|
||||
fprintf(stderr, "No instructions defined!\n");
|
||||
exit(1);
|
||||
|
Reference in New Issue
Block a user