From 020e24091c10e0380a1de265485897ccb8e01515 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Sun, 22 Nov 2015 22:43:40 +0000 Subject: [PATCH] Revert a portion of r253836 that seems to have broke a couple bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253838 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/TableGen/CodeGenDAGPatterns.cpp | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/utils/TableGen/CodeGenDAGPatterns.cpp b/utils/TableGen/CodeGenDAGPatterns.cpp index b05eac6fcdf..c9cc4269b1d 100644 --- a/utils/TableGen/CodeGenDAGPatterns.cpp +++ b/utils/TableGen/CodeGenDAGPatterns.cpp @@ -3715,14 +3715,14 @@ void CodeGenDAGPatterns::GenerateVariants() { // intentionally do not reconsider these. Any variants of added patterns have // already been added. // - for (PatternToMatch &PTM : PatternsToMatch) { + for (unsigned i = 0, e = PatternsToMatch.size(); i != e; ++i) { MultipleUseVarSet DepVars; std::vector Variants; - FindDepVars(PTM.getSrcPattern(), DepVars); + FindDepVars(PatternsToMatch[i].getSrcPattern(), DepVars); DEBUG(errs() << "Dependent/multiply used variables: "); DEBUG(DumpDepVars(DepVars)); DEBUG(errs() << "\n"); - GenerateVariantsOf(PTM.getSrcPattern(), Variants, *this, + GenerateVariantsOf(PatternsToMatch[i].getSrcPattern(), Variants, *this, DepVars); assert(!Variants.empty() && "Must create at least original variant!"); @@ -3732,7 +3732,7 @@ void CodeGenDAGPatterns::GenerateVariants() { continue; DEBUG(errs() << "FOUND VARIANTS OF: "; - PTM.getSrcPattern()->dump(); + PatternsToMatch[i].getSrcPattern()->dump(); errs() << "\n"); for (unsigned v = 0, e = Variants.size(); v != e; ++v) { @@ -3744,12 +3744,14 @@ void CodeGenDAGPatterns::GenerateVariants() { // Scan to see if an instruction or explicit pattern already matches this. bool AlreadyExists = false; - for (PatternToMatch &OtherPTM : PatternsToMatch) { + for (unsigned p = 0, e = PatternsToMatch.size(); p != e; ++p) { // Skip if the top level predicates do not match. - if (PTM.getPredicates() != OtherPTM.getPredicates()) + if (PatternsToMatch[i].getPredicates() != + PatternsToMatch[p].getPredicates()) continue; // Check to see if this variant already exists. - if (Variant->isIsomorphicTo(OtherPTM.getSrcPattern(), DepVars)) { + if (Variant->isIsomorphicTo(PatternsToMatch[p].getSrcPattern(), + DepVars)) { DEBUG(errs() << " *** ALREADY EXISTS, ignoring variant.\n"); AlreadyExists = true; break; @@ -3759,10 +3761,11 @@ void CodeGenDAGPatterns::GenerateVariants() { if (AlreadyExists) continue; // Otherwise, add it to the list of patterns we have. - PatternsToMatch.emplace_back(PTM.getSrcRecord(), PTM.getPredicates(), - Variant, PTM.getDstPattern(), - PTM.getDstRegs(), PTM.getAddedComplexity(), - Record::getNewUID()); + PatternsToMatch.emplace_back( + PatternsToMatch[i].getSrcRecord(), PatternsToMatch[i].getPredicates(), + Variant, PatternsToMatch[i].getDstPattern(), + PatternsToMatch[i].getDstRegs(), + PatternsToMatch[i].getAddedComplexity(), Record::getNewUID()); } DEBUG(errs() << "\n"); -- 2.34.1