aboutsummaryrefslogtreecommitdiff
path: root/llvm/utils/TableGen/CodeGenDAGPatterns.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@sifive.com>2023-05-23 13:32:18 -0700
committerCraig Topper <craig.topper@sifive.com>2023-05-23 13:32:18 -0700
commitd91f65ea36fa980d82b45392a0664ef60659067f (patch)
treefa6d0ad77eb245d0a979d6d00b2a9acce418dbf4 /llvm/utils/TableGen/CodeGenDAGPatterns.cpp
parent3be667ae5a10e276acf7d1bb7e8c29ba07578032 (diff)
downloadllvm-d91f65ea36fa980d82b45392a0664ef60659067f.zip
llvm-d91f65ea36fa980d82b45392a0664ef60659067f.tar.gz
llvm-d91f65ea36fa980d82b45392a0664ef60659067f.tar.bz2
[TableGen] Filter duplicate predicates in PatternToMatch::getPredicateRecords.
Recent changes to RISC-V cause the same predicate to appear in the predicate list multiple times in some cases. This patch filters the duplicates to reduce the number of predicate string variations.
Diffstat (limited to 'llvm/utils/TableGen/CodeGenDAGPatterns.cpp')
-rw-r--r--llvm/utils/TableGen/CodeGenDAGPatterns.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/CodeGenDAGPatterns.cpp b/llvm/utils/TableGen/CodeGenDAGPatterns.cpp
index 1ce735c..be0a5c2 100644
--- a/llvm/utils/TableGen/CodeGenDAGPatterns.cpp
+++ b/llvm/utils/TableGen/CodeGenDAGPatterns.cpp
@@ -1495,6 +1495,9 @@ void PatternToMatch::getPredicateRecords(
}
// Sort so that different orders get canonicalized to the same string.
llvm::sort(PredicateRecs, LessRecord());
+ // Remove duplicate predicates.
+ PredicateRecs.erase(std::unique(PredicateRecs.begin(), PredicateRecs.end()),
+ PredicateRecs.end());
}
/// getPredicateCheck - Return a single string containing all of this