| #include "llvm/TableGen/Record.h" | |
| #include "llvm/TableGen/TableGenBackend.h" | |
| using namespace llvm; | |
| namespace clang { | |
| void EmitClangDataCollectors(RecordKeeper &RK, raw_ostream &OS) { | |
| const auto &Defs = RK.getClasses(); | |
| for (const auto &Entry : Defs) { | |
| Record &R = *Entry.second; | |
| OS << "DEF_ADD_DATA(" << R.getName() << ", {\n"; | |
| auto Code = R.getValue("Code")->getValue(); | |
| OS << Code->getAsUnquotedString() << "}\n)"; | |
| OS << "\n"; | |
| } | |
| OS << "#undef DEF_ADD_DATA\n"; | |
| } | |
| } // end namespace clang |