[PATCH] D140648: [NFC] Elminate some needless nested-map complexity.

Owen Anderson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Dec 25 18:36:43 PST 2022


This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rGf34847e112ac: [NFC] Elminate some needless nested-map complexity. (authored by resistor).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D140648/new/

https://reviews.llvm.org/D140648

Files:
  llvm/utils/TableGen/FastISelEmitter.cpp


Index: llvm/utils/TableGen/FastISelEmitter.cpp
===================================================================
--- llvm/utils/TableGen/FastISelEmitter.cpp
+++ llvm/utils/TableGen/FastISelEmitter.cpp
@@ -381,14 +381,9 @@
   OperandsOpcodeTypeRetPredMap SimplePatterns;
 
   // This is used to check that there are no duplicate predicates
-  typedef std::multimap<std::string, bool> PredCheckMap;
-  typedef std::map<MVT::SimpleValueType, PredCheckMap> RetPredCheckMap;
-  typedef std::map<MVT::SimpleValueType, RetPredCheckMap> TypeRetPredCheckMap;
-  typedef std::map<std::string, TypeRetPredCheckMap> OpcodeTypeRetPredCheckMap;
-  typedef std::map<OperandsSignature, OpcodeTypeRetPredCheckMap>
-            OperandsOpcodeTypeRetPredCheckMap;
-
-  OperandsOpcodeTypeRetPredCheckMap SimplePatternsCheck;
+  std::set<std::tuple<OperandsSignature, std::string, MVT::SimpleValueType,
+                      MVT::SimpleValueType, std::string>>
+      SimplePatternsCheck;
 
   std::map<OperandsSignature, std::vector<OperandsSignature> >
     SignaturesWithConstantForms;
@@ -587,16 +582,15 @@
 
     int complexity = Pattern.getPatternComplexity(CGP);
 
-    if (SimplePatternsCheck[Operands][OpcodeName][VT]
-         [RetVT].count(PredicateCheck)) {
+    auto inserted_simple_pattern = SimplePatternsCheck.insert(
+        std::make_tuple(Operands, OpcodeName, VT, RetVT, PredicateCheck));
+    if (!inserted_simple_pattern.second) {
       PrintFatalError(Pattern.getSrcRecord()->getLoc(),
                     "Duplicate predicate in FastISel table!");
     }
-    SimplePatternsCheck[Operands][OpcodeName][VT][RetVT].insert(
-            std::make_pair(PredicateCheck, true));
 
-       // Note: Instructions with the same complexity will appear in the order
-          // that they are encountered.
+    // Note: Instructions with the same complexity will appear in the order
+    // that they are encountered.
     SimplePatterns[Operands][OpcodeName][VT][RetVT].emplace(complexity,
                                                             std::move(Memo));
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D140648.485261.patch
Type: text/x-patch
Size: 2071 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221226/0a194648/attachment.bin>


More information about the llvm-commits mailing list