[llvm] [TableGen] Avoid emitting a switch that only contains a default. (PR #177391)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 22 08:22:42 PST 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-selectiondag
Author: Craig Topper (topperc)
<details>
<summary>Changes</summary>
Addresses post commit feedback from #<!-- -->174471
---
Full diff: https://github.com/llvm/llvm-project/pull/177391.diff
1 Files Affected:
- (modified) llvm/utils/TableGen/DAGISelMatcherEmitter.cpp (+16-12)
``````````diff
diff --git a/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp b/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
index eaecccf215342..0ab19d686714f 100644
--- a/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
+++ b/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
@@ -1364,19 +1364,23 @@ void MatcherTableEmitter::EmitValueTypeFunction(raw_ostream &OS) {
for (const auto &[VTs, Idx] : ValueTypeMap) {
OS << " case " << (Idx - 1) << ":\n";
- OS << " switch (HwMode) {\n";
- if (!VTs.hasDefault())
- OS << " default:\n return MVT();\n";
- for (const auto [Mode, VT] : VTs) {
- if (Mode == DefaultMode)
- OS << " default:\n";
- else
- OS << " case " << Mode << ":\n";
- OS << " return " << getEnumName(VT) << ";\n";
- }
+ if (VTs.isSimple()) {
+ OS << " return " << getEnumName(VTs.getSimple()) << ";\n";
+ } else {
+ OS << " switch (HwMode) {\n";
+ if (!VTs.hasDefault())
+ OS << " default:\n return MVT();\n";
+ for (const auto [Mode, VT] : VTs) {
+ if (Mode == DefaultMode)
+ OS << " default:\n";
+ else
+ OS << " case " << Mode << ":\n";
+ OS << " return " << getEnumName(VT) << ";\n";
+ }
- OS << " }\n";
- OS << " break;\n";
+ OS << " }\n";
+ OS << " break;\n";
+ }
}
OS << " }\n";
``````````
</details>
https://github.com/llvm/llvm-project/pull/177391
More information about the llvm-commits
mailing list