Index: llvm/trunk/utils/TableGen/CodeGenSchedule.cpp =================================================================== --- llvm/trunk/utils/TableGen/CodeGenSchedule.cpp +++ llvm/trunk/utils/TableGen/CodeGenSchedule.cpp @@ -106,6 +106,8 @@ Regexpr = Regex(pat); } + int NumMatches = 0; + unsigned NumGeneric = Target.getNumFixedInstructions(); ArrayRef Generics = Target.getInstructionsByEnumValue().slice(0, NumGeneric + 1); @@ -114,8 +116,10 @@ for (auto *Inst : Generics) { StringRef InstName = Inst->TheDef->getName(); if (InstName.startswith(Prefix) && - (!Regexpr || Regexpr->match(InstName.substr(Prefix.size())))) + (!Regexpr || Regexpr->match(InstName.substr(Prefix.size())))) { Elts.insert(Inst->TheDef); + NumMatches++; + } } ArrayRef Instructions = @@ -139,9 +143,14 @@ // a regex that needs to be checked. for (auto *Inst : make_range(Range)) { StringRef InstName = Inst->TheDef->getName(); - if (!Regexpr || Regexpr->match(InstName.substr(Prefix.size()))) + if (!Regexpr || Regexpr->match(InstName.substr(Prefix.size()))) { Elts.insert(Inst->TheDef); + NumMatches++; + } } + + if (0 == NumMatches) + PrintFatalError(Loc, "instregex has no matches: " + Original); } } };