Index: include/llvm/Target/Target.td =================================================================== --- include/llvm/Target/Target.td +++ include/llvm/Target/Target.td @@ -1065,6 +1065,12 @@ // Features - list of list Features = f; + + // StatusText - Text about the implementation status of the processor. + // When empty the help text will be 'Select the foo processor'. When non-empty + // it will be appended to the help text inside square brackets. For example, + // 'Select the foo processor [experimental]' + string StatusText = ""; } // ProcessorModel allows subtargets to specify the more general Index: utils/TableGen/SubtargetEmitter.cpp =================================================================== --- utils/TableGen/SubtargetEmitter.cpp +++ utils/TableGen/SubtargetEmitter.cpp @@ -254,11 +254,15 @@ const std::string &Name = Processor->getValueAsString("Name"); const std::vector &FeatureList = Processor->getValueAsListOfDefs("Features"); + const std::string &StatusText = Processor->getValueAsString("StatusText"); // Emit as { "cpu", "description", f1 | f2 | ... fn }, OS << " { " << "\"" << Name << "\", " - << "\"Select the " << Name << " processor\", "; + << "\"Select the " << Name << " processor"; + if (!StatusText.empty()) + OS << " [" << StatusText << "]"; + OS << "\", "; if (FeatureList.empty()) { OS << "0ULL";