[PATCH] D140648: [NFC] Elminate some needless nested-map complexity.
Owen Anderson via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 23 21:03:31 PST 2022
resistor created this revision.
Herald added a project: All.
resistor requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
Repository:
rG LLVM Github Monorepo
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.485185.patch
Type: text/x-patch
Size: 2071 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221224/4cc161a8/attachment.bin>
More information about the llvm-commits
mailing list