X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=utils%2FTableGen%2FInstrEnumEmitter.cpp;h=aa596892f52f0916b45efc46086de6c079e2001d;hb=0b85d07d4611e7d704bf6550fbc624aff36a53b4;hp=df07119944e4c5979b9176277eec23b516b54906;hpb=7b11712ef2d41631137a3c124a58407702ffa8af;p=oota-llvm.git diff --git a/utils/TableGen/InstrEnumEmitter.cpp b/utils/TableGen/InstrEnumEmitter.cpp index df07119944e..aa596892f52 100644 --- a/utils/TableGen/InstrEnumEmitter.cpp +++ b/utils/TableGen/InstrEnumEmitter.cpp @@ -15,32 +15,26 @@ #include "InstrEnumEmitter.h" #include "CodeGenTarget.h" #include "Record.h" +#include using namespace llvm; // runEnums - Print out enum values for all of the instructions. -void InstrEnumEmitter::run(std::ostream &OS) { +void InstrEnumEmitter::run(raw_ostream &OS) { EmitSourceFileHeader("Target Instruction Enum Values", OS); OS << "namespace llvm {\n\n"; - CodeGenTarget Target; + CodeGenTarget Target(Records); // We must emit the PHI opcode first... - std::string Namespace; - for (CodeGenTarget::inst_iterator II = Target.inst_begin(), - E = Target.inst_end(); II != E; ++II) { - if (II->second.Namespace != "TargetInstrInfo") { - Namespace = II->second.Namespace; - break; - } - } + std::string Namespace = Target.getInstNamespace(); if (Namespace.empty()) { fprintf(stderr, "No instructions defined!\n"); exit(1); } - std::vector NumberedInstructions; - Target.getInstructionsByEnumValue(NumberedInstructions); + const std::vector &NumberedInstructions = + Target.getInstructionsByEnumValue(); OS << "namespace " << Namespace << " {\n"; OS << " enum {\n";