reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

utils/TableGen/SubtargetEmitter.cpp
 1785   emitSourceFileHeader("Subtarget Enumeration Source Fragment", OS);
 1787   OS << "\n#ifdef GET_SUBTARGETINFO_ENUM\n";
 1788   OS << "#undef GET_SUBTARGETINFO_ENUM\n\n";
 1792   OS << "namespace llvm {\n";
 1793   Enumeration(OS, FeatureMap);
 1794   OS << "} // end namespace llvm\n\n";
 1795   OS << "#endif // GET_SUBTARGETINFO_ENUM\n\n";
 1797   OS << "\n#ifdef GET_SUBTARGETINFO_MC_DESC\n";
 1798   OS << "#undef GET_SUBTARGETINFO_MC_DESC\n\n";
 1800   OS << "namespace llvm {\n";
 1804   unsigned NumFeatures = FeatureKeyValues(OS, FeatureMap);
 1805   OS << "\n";
 1806   EmitSchedModel(OS);
 1807   OS << "\n";
 1808   unsigned NumProcs = CPUKeyValues(OS, FeatureMap);
 1809   OS << "\n";
 1815   emitGenMCSubtargetInfo(OS);
 1817   OS << "\nstatic inline MCSubtargetInfo *create" << Target
 1820   OS << "  return new " << Target << "GenMCSubtargetInfo(TT, CPU, FS, ";
 1822     OS << Target << "FeatureKV, ";
 1824     OS << "None, ";
 1826     OS << Target << "SubTypeKV, ";
 1828     OS << "None, ";
 1829   OS << '\n'; OS.indent(22);
 1829   OS << '\n'; OS.indent(22);
 1830   OS << Target << "WriteProcResTable, "
 1833   OS << '\n'; OS.indent(22);
 1833   OS << '\n'; OS.indent(22);
 1835     OS << Target << "Stages, "
 1839     OS << "nullptr, nullptr, nullptr";
 1840   OS << ");\n}\n\n";
 1842   OS << "} // end namespace llvm\n\n";
 1844   OS << "#endif // GET_SUBTARGETINFO_MC_DESC\n\n";
 1846   OS << "\n#ifdef GET_SUBTARGETINFO_TARGET_DESC\n";
 1847   OS << "#undef GET_SUBTARGETINFO_TARGET_DESC\n\n";
 1849   OS << "#include \"llvm/Support/Debug.h\"\n";
 1850   OS << "#include \"llvm/Support/raw_ostream.h\"\n\n";
 1851   ParseFeaturesFunction(OS, NumFeatures, NumProcs);
 1853   OS << "#endif // GET_SUBTARGETINFO_TARGET_DESC\n\n";
 1856   OS << "\n#ifdef GET_SUBTARGETINFO_HEADER\n";
 1857   OS << "#undef GET_SUBTARGETINFO_HEADER\n\n";
 1860   OS << "namespace llvm {\n";
 1861   OS << "class DFAPacketizer;\n";
 1862   OS << "namespace " << Target << "_MC {\n"
 1866   OS << "struct " << ClassName << " : public TargetSubtargetInfo {\n"
 1878     OS << "  unsigned getHwMode() const override;\n";
 1883     PE.expandSTIPredicate(OS, Fn);
 1885   OS << "};\n"
 1888   OS << "#endif // GET_SUBTARGETINFO_HEADER\n\n";
 1890   OS << "\n#ifdef GET_SUBTARGETINFO_CTOR\n";
 1891   OS << "#undef GET_SUBTARGETINFO_CTOR\n\n";
 1893   OS << "#include \"llvm/CodeGen/TargetSchedule.h\"\n\n";
 1894   OS << "namespace llvm {\n";
 1895   OS << "extern const llvm::SubtargetFeatureKV " << Target << "FeatureKV[];\n";
 1896   OS << "extern const llvm::SubtargetSubTypeKV " << Target << "SubTypeKV[];\n";
 1897   OS << "extern const llvm::MCWriteProcResEntry "
 1899   OS << "extern const llvm::MCWriteLatencyEntry "
 1901   OS << "extern const llvm::MCReadAdvanceEntry "
 1905     OS << "extern const llvm::InstrStage " << Target << "Stages[];\n";
 1906     OS << "extern const unsigned " << Target << "OperandCycles[];\n";
 1907     OS << "extern const unsigned " << Target << "ForwardingPaths[];\n";
 1910   OS << ClassName << "::" << ClassName << "(const Triple &TT, StringRef CPU, "
 1914     OS << "makeArrayRef(" << Target << "FeatureKV, " << NumFeatures << "), ";
 1916     OS << "None, ";
 1918     OS << "makeArrayRef(" << Target << "SubTypeKV, " << NumProcs << "), ";
 1920     OS << "None, ";
 1921   OS << '\n'; OS.indent(24);
 1921   OS << '\n'; OS.indent(24);
 1922   OS << Target << "WriteProcResTable, "
 1925   OS << '\n'; OS.indent(24);
 1925   OS << '\n'; OS.indent(24);
 1927     OS << Target << "Stages, "
 1931     OS << "nullptr, nullptr, nullptr";
 1932   OS << ") {}\n\n";
 1934   EmitSchedModelHelpers(ClassName, OS);
 1935   EmitHwModeCheck(ClassName, OS);
 1937   OS << "} // end namespace llvm\n\n";
 1939   OS << "#endif // GET_SUBTARGETINFO_CTOR\n\n";
 1941   EmitMCInstrAnalysisPredicateFunctions(OS);