[llvm] [NFC][TableGen] Create valid Dag in VarLenCodeEmitter (PR #140283)
Rahul Joshi via llvm-commits
llvm-commits at lists.llvm.org
Sat May 17 07:20:18 PDT 2025
https://github.com/jurahul updated https://github.com/llvm/llvm-project/pull/140283
>From 67c98a0a410e7c5edbd449720a54f315f1a2b15b Mon Sep 17 00:00:00 2001
From: Rahul Joshi <rjoshi at nvidia.com>
Date: Fri, 16 May 2025 10:02:52 -0700
Subject: [PATCH] [NFC][TableGen] Create valid Dag in VarLenCodeEmitter
- Set the Dag ArgNames correctly when normalizing the Dag for slice.
---
llvm/utils/TableGen/Common/VarLenCodeEmitterGen.cpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/llvm/utils/TableGen/Common/VarLenCodeEmitterGen.cpp b/llvm/utils/TableGen/Common/VarLenCodeEmitterGen.cpp
index 1d172ab6109c1..9de6a585eb4de 100644
--- a/llvm/utils/TableGen/Common/VarLenCodeEmitterGen.cpp
+++ b/llvm/utils/TableGen/Common/VarLenCodeEmitterGen.cpp
@@ -212,10 +212,10 @@ void VarLenInst::buildRec(const DagInit *DI) {
if (NeedSwap) {
// Normalization: Hi bit should always be the second argument.
- const Init *const NewArgs[] = {OperandName, LoBit, HiBit};
- // TODO: This creates an invalid DagInit with 3 Args but 0 ArgNames.
- // Extend unit test to exercise this and fix it.
- Segments.push_back({NumBits, DagInit::get(DI->getOperator(), NewArgs, {}),
+ SmallVector<std::pair<const Init *, const StringInit *>> NewArgs(
+ DI->getArgAndNames());
+ std::swap(NewArgs[1], NewArgs[2]);
+ Segments.push_back({NumBits, DagInit::get(DI->getOperator(), NewArgs),
CustomEncoder, CustomDecoder});
} else {
Segments.push_back({NumBits, DI, CustomEncoder, CustomDecoder});
More information about the llvm-commits
mailing list