diff options
Diffstat (limited to 'utils/TableGen/ClangDataCollectorsEmitter.cpp')
-rw-r--r-- | utils/TableGen/ClangDataCollectorsEmitter.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/utils/TableGen/ClangDataCollectorsEmitter.cpp b/utils/TableGen/ClangDataCollectorsEmitter.cpp new file mode 100644 index 000000000000..4079efc80823 --- /dev/null +++ b/utils/TableGen/ClangDataCollectorsEmitter.cpp @@ -0,0 +1,18 @@ +#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 |