reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
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);