Changes in directory llvm/utils/TableGen:
CodeGenTarget.cpp updated: 1.53 -> 1.54 CodeGenTarget.h updated: 1.23 -> 1.24 --- Log message: PHI and INLINEASM are now builtin instructions provided by Target.td --- Diffs of the changes: (+13 -21) CodeGenTarget.cpp | 30 +++++++++++++----------------- CodeGenTarget.h | 4 ---- 2 files changed, 13 insertions(+), 21 deletions(-) Index: llvm/utils/TableGen/CodeGenTarget.cpp diff -u llvm/utils/TableGen/CodeGenTarget.cpp:1.53 llvm/utils/TableGen/CodeGenTarget.cpp:1.54 --- llvm/utils/TableGen/CodeGenTarget.cpp:1.53 Mon Jan 9 12:27:06 2006 +++ llvm/utils/TableGen/CodeGenTarget.cpp Thu Jan 26 19:45:06 2006 @@ -205,10 +205,10 @@ void CodeGenTarget::ReadInstructions() const { std::vector<Record*> Insts = Records.getAllDerivedDefinitions("Instruction"); - - if (Insts.empty()) + if (Insts.size() <= 2) throw std::string("No 'Instruction' subclasses defined!"); + // Parse the instructions defined in the .td file. std::string InstFormatName = getAsmWriter()->getValueAsString("InstFormatName"); @@ -219,29 +219,25 @@ } } -/// getPHIInstruction - Return the designated PHI instruction. -/// -const CodeGenInstruction &CodeGenTarget::getPHIInstruction() const { - Record *PHI = getInstructionSet()->getValueAsDef("PHIInst"); - std::map<std::string, CodeGenInstruction>::const_iterator I = - getInstructions().find(PHI->getName()); - if (I == Instructions.end()) - throw "Could not find PHI instruction named '" + PHI->getName() + "'!"; - return I->second; -} - /// getInstructionsByEnumValue - Return all of the instructions defined by the /// target, ordered by their enum value. void CodeGenTarget:: getInstructionsByEnumValue(std::vector<const CodeGenInstruction*> &NumberedInstructions) { - + std::map<std::string, CodeGenInstruction>::const_iterator I; + I = getInstructions().find("PHI"); + if (I == Instructions.end()) throw "Could not find 'PHI' instruction!"; + const CodeGenInstruction *PHI = &I->second; + + I = getInstructions().find("INLINEASM"); + if (I == Instructions.end()) throw "Could not find 'INLINEASM' instruction!"; + const CodeGenInstruction *INLINEASM = &I->second; + // Print out the rest of the instructions now. - unsigned i = 0; - const CodeGenInstruction *PHI = &getPHIInstruction(); NumberedInstructions.push_back(PHI); + NumberedInstructions.push_back(INLINEASM); for (inst_iterator II = inst_begin(), E = inst_end(); II != E; ++II) - if (&II->second != PHI) + if (&II->second != PHI &&&II->second != INLINEASM) NumberedInstructions.push_back(&II->second); } Index: llvm/utils/TableGen/CodeGenTarget.h diff -u llvm/utils/TableGen/CodeGenTarget.h:1.23 llvm/utils/TableGen/CodeGenTarget.h:1.24 --- llvm/utils/TableGen/CodeGenTarget.h:1.23 Wed Dec 7 20:14:08 2005 +++ llvm/utils/TableGen/CodeGenTarget.h Thu Jan 26 19:45:06 2006 @@ -148,10 +148,6 @@ &NumberedInstructions); - /// getPHIInstruction - Return the designated PHI instruction. - /// - const CodeGenInstruction &getPHIInstruction() const; - /// isLittleEndianEncoding - are instruction bit patterns defined as [0..n]? /// bool isLittleEndianEncoding() const; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits