diff --git a/llvm/support/tools/TableGen/CodeEmitterGen.cpp b/llvm/support/tools/TableGen/CodeEmitterGen.cpp index e24211e24d18..0619967f7708 100644 --- a/llvm/support/tools/TableGen/CodeEmitterGen.cpp +++ b/llvm/support/tools/TableGen/CodeEmitterGen.cpp @@ -8,9 +8,8 @@ #include "Record.h" #include "Support/Statistic.h" -bool CodeEmitterGen::run(std::ostream &o) { - std::vector Insts; - if (Records.getAllDerivedDefinitions("Instruction", Insts)) return true; +void CodeEmitterGen::run(std::ostream &o) { + std::vector Insts = Records.getAllDerivedDefinitions("Instruction"); std::string Namespace = "V9::"; std::string ClassName = "SparcV9CodeEmitter::"; @@ -28,10 +27,8 @@ bool CodeEmitterGen::run(std::ostream &o) { << " DEBUG(std::cerr << \"Emitting " << R->getName() << "\\n\");\n"; const RecordVal *InstVal = R->getValue("Inst"); - if (!InstVal) { - std::cerr << "No 'Inst' record found in target description file!\n"; - return true; - } + if (!InstVal) + throw std::string("No 'Inst' record found in target description file!"); Init *InitVal = InstVal->getValue(); assert(dynamic_cast(InitVal) && @@ -226,5 +223,4 @@ bool CodeEmitterGen::run(std::ostream &o) { << " }\n" << " return Value;\n" << "}\n"; - return false; } diff --git a/llvm/support/tools/TableGen/CodeEmitterGen.h b/llvm/support/tools/TableGen/CodeEmitterGen.h index 16420340243d..7ae3ef8d92c1 100644 --- a/llvm/support/tools/TableGen/CodeEmitterGen.h +++ b/llvm/support/tools/TableGen/CodeEmitterGen.h @@ -16,8 +16,8 @@ class CodeEmitterGen { public: CodeEmitterGen(RecordKeeper &R) : Records(R) {} - // run - Output the code emitter, returning true on failure. - bool run(std::ostream &o); + // run - Output the code emitter + void run(std::ostream &o); private: void emitMachineOpEmitter(std::ostream &o, const std::string &Namespace); void emitGetValueBit(std::ostream &o, const std::string &Namespace);