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