StringRef Name;
Record *Combiner;
public:
- explicit GICombinerEmitter(RecordKeeper &RK, StringRef Name);
+ explicit GICombinerEmitter(RecordKeeper &RK, StringRef Name,
+ Record *Combiner);
~GICombinerEmitter() {}
StringRef getClassName() const {
};
-GICombinerEmitter::GICombinerEmitter(RecordKeeper &RK, StringRef Name)
- : Name(Name), Combiner(RK.getDef(Name)) {}
+GICombinerEmitter::GICombinerEmitter(RecordKeeper &RK, StringRef Name,
+ Record *Combiner)
+ : Name(Name), Combiner(Combiner) {}
void GICombinerEmitter::run(raw_ostream &OS) {
NamedRegionTimer T("Emit", "Time spent emitting the combiner",
if (SelectedCombiners.empty())
PrintFatalError("No combiners selected with -combiners");
- for (const auto &Combiner : SelectedCombiners)
- GICombinerEmitter(RK, Combiner).run(OS);
+ for (const auto &Combiner : SelectedCombiners) {
+ Record *CombinerDef = RK.getDef(Combiner);
+ if (!CombinerDef)
+ PrintFatalError("Could not find " + Combiner);
+ GICombinerEmitter(RK, Combiner, CombinerDef).run(OS);
+ }
}
} // namespace llvm