[clang] [Clang][TableGen] Change NeonEmitter to use const Record * (PR #110597)
Rahul Joshi via cfe-commits
cfe-commits at lists.llvm.org
Tue Oct 1 09:50:27 PDT 2024
https://github.com/jurahul updated https://github.com/llvm/llvm-project/pull/110597
>From 8887de9f0cd4fda51c4e1945fa40a4c1fc5775af Mon Sep 17 00:00:00 2001
From: Rahul Joshi <rjoshi at nvidia.com>
Date: Mon, 30 Sep 2024 15:55:03 -0700
Subject: [PATCH] [Clang][TableGen] Change NeonEmitter to use const Record *
---
clang/utils/TableGen/NeonEmitter.cpp | 3 +--
clang/utils/TableGen/SveEmitter.cpp | 12 +++++-------
2 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/clang/utils/TableGen/NeonEmitter.cpp b/clang/utils/TableGen/NeonEmitter.cpp
index 202573e2ac740e..d4b42360e7fd32 100644
--- a/clang/utils/TableGen/NeonEmitter.cpp
+++ b/clang/utils/TableGen/NeonEmitter.cpp
@@ -410,8 +410,7 @@ class Intrinsic {
}
int ArgIdx, Kind, TypeArgIdx;
- std::vector<Record *> ImmCheckList = R->getValueAsListOfDefs("ImmChecks");
- for (const auto *I : ImmCheckList) {
+ for (const Record *I : R->getValueAsListOfDefs("ImmChecks")) {
unsigned EltSizeInBits = 0, VecSizeInBits = 0;
ArgIdx = I->getValueAsInt("ImmArgIdx");
diff --git a/clang/utils/TableGen/SveEmitter.cpp b/clang/utils/TableGen/SveEmitter.cpp
index 2f9747e7de3de2..3d3d44c6d4890b 100644
--- a/clang/utils/TableGen/SveEmitter.cpp
+++ b/clang/utils/TableGen/SveEmitter.cpp
@@ -1161,11 +1161,9 @@ void SVEEmitter::createIntrinsic(
uint64_t Merge = R->getValueAsInt("Merge");
StringRef MergeSuffix = R->getValueAsString("MergeSuffix");
uint64_t MemEltType = R->getValueAsInt("MemEltType");
- std::vector<Record*> FlagsList = R->getValueAsListOfDefs("Flags");
- std::vector<Record*> ImmCheckList = R->getValueAsListOfDefs("ImmChecks");
int64_t Flags = 0;
- for (auto FlagRec : FlagsList)
+ for (const Record *FlagRec : R->getValueAsListOfConstDefs("Flags"))
Flags |= FlagRec->getValueAsInt("Value");
// Create a dummy TypeSpec for non-overloaded builtins.
@@ -1195,10 +1193,10 @@ void SVEEmitter::createIntrinsic(
for (auto TS : TypeSpecs) {
// Collate a list of range/option checks for the immediates.
SmallVector<ImmCheck, 2> ImmChecks;
- for (auto *R : ImmCheckList) {
- int64_t ArgIdx = R->getValueAsInt("ImmArgIdx");
- int64_t EltSizeArgIdx = R->getValueAsInt("TypeContextArgIdx");
- int64_t Kind = R->getValueAsDef("Kind")->getValueAsInt("Value");
+ for (const Record *ImmR : R->getValueAsListOfConstDefs("ImmChecks")) {
+ int64_t ArgIdx = ImmR->getValueAsInt("ImmArgIdx");
+ int64_t EltSizeArgIdx = ImmR->getValueAsInt("TypeContextArgIdx");
+ int64_t Kind = ImmR->getValueAsDef("Kind")->getValueAsInt("Value");
assert(ArgIdx >= 0 && Kind >= 0 &&
"ImmArgIdx and Kind must be nonnegative");
More information about the cfe-commits
mailing list