1 | #include "llvm/TableGen/Record.h" |
2 | #include "llvm/TableGen/TableGenBackend.h" |
3 | |
4 | using namespace llvm; |
5 | |
6 | namespace clang { |
7 | void EmitClangDataCollectors(RecordKeeper &RK, raw_ostream &OS) { |
8 | const auto &Defs = RK.getClasses(); |
9 | for (const auto &Entry : Defs) { |
10 | Record &R = *Entry.second; |
11 | OS << "DEF_ADD_DATA(" << R.getName() << ", {\n"; |
12 | auto Code = R.getValue("Code")->getValue(); |
13 | OS << Code->getAsUnquotedString() << "}\n)"; |
14 | OS << "\n"; |
15 | } |
16 | OS << "#undef DEF_ADD_DATA\n"; |
17 | } |
18 | } |
19 | |