aboutsummaryrefslogtreecommitdiff
path: root/llvm/utils/TableGen/CodeGenDAGPatterns.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@sifive.com>2023-04-21 17:27:06 -0700
committerCraig Topper <craig.topper@sifive.com>2023-04-21 17:27:25 -0700
commit63f6e70be9c278e9553b331c95fca26bc68f659a (patch)
tree1db93e7412e1ac99d0b415930fe6c31eda48bd88 /llvm/utils/TableGen/CodeGenDAGPatterns.cpp
parent9372e42fd027db8767c324369491b9314f6a218f (diff)
downloadllvm-63f6e70be9c278e9553b331c95fca26bc68f659a.zip
llvm-63f6e70be9c278e9553b331c95fca26bc68f659a.tar.gz
llvm-63f6e70be9c278e9553b331c95fca26bc68f659a.tar.bz2
[TableGen] Early exit from ExpandHwModeBasedTypes when there are no HwModes.
Most targets don't use HwModes. For these targets we can skip collecting the HwModes and copying all the pattern pointers.
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 f861caa..2d8b52c 100644
--- a/llvm/utils/TableGen/CodeGenDAGPatterns.cpp
+++ b/llvm/utils/TableGen/CodeGenDAGPatterns.cpp
@@ -4381,6 +4381,9 @@ static void collectModes(std::set<unsigned> &Modes, const TreePatternNode *N) {
void CodeGenDAGPatterns::ExpandHwModeBasedTypes() {
const CodeGenHwModes &CGH = getTargetInfo().getHwModes();
+ if (CGH.getNumModeIds() == 1)
+ return;
+
std::vector<PatternToMatch> Copy;
PatternsToMatch.swap(Copy);