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*e5dd7070Spatrickvoid 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