aboutsummaryrefslogtreecommitdiff
path: root/llvm/utils/TableGen/Basic
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/utils/TableGen/Basic')
-rw-r--r--llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp39
-rw-r--r--llvm/utils/TableGen/Basic/VTEmitter.cpp4
2 files changed, 26 insertions, 17 deletions
diff --git a/llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp b/llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp
index 45cb209..10f0213 100644
--- a/llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp
+++ b/llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp
@@ -547,16 +547,6 @@ void RuntimeLibcallEmitter::emitSystemRuntimeLibrarySetCalls(
" struct LibcallImplPair {\n"
" RTLIB::Libcall Func;\n"
" RTLIB::LibcallImpl Impl;\n"
- " };\n"
- " auto setLibcallsImpl = [this](\n"
- " ArrayRef<LibcallImplPair> Libcalls,\n"
- " std::optional<llvm::CallingConv::ID> CC = {})\n"
- " {\n"
- " for (const auto [Func, Impl] : Libcalls) {\n"
- " setLibcallImpl(Func, Impl);\n"
- " if (CC)\n"
- " setLibcallImplCallingConv(Impl, *CC);\n"
- " }\n"
" };\n";
ArrayRef<const Record *> AllLibs =
Records.getAllDerivedDefinitions("SystemRuntimeLibrary");
@@ -682,18 +672,37 @@ void RuntimeLibcallEmitter::emitSystemRuntimeLibrarySetCalls(
Funcs.erase(UniqueI, Funcs.end());
- OS << indent(IndentDepth + 2) << "setLibcallsImpl({\n";
+ OS << indent(IndentDepth + 2)
+ << "static const LibcallImplPair LibraryCalls";
+ SubsetPredicate.emitTableVariableNameSuffix(OS);
+ if (FuncsWithCC.CallingConv)
+ OS << '_' << FuncsWithCC.CallingConv->getName();
+
+ OS << "[] = {\n";
for (const RuntimeLibcallImpl *LibCallImpl : Funcs) {
- OS << indent(IndentDepth + 4);
+ OS << indent(IndentDepth + 6);
LibCallImpl->emitTableEntry(OS);
}
- OS << indent(IndentDepth + 2) << "}";
+
+ OS << indent(IndentDepth + 2) << "};\n\n"
+ << indent(IndentDepth + 2)
+ << "for (const auto [Func, Impl] : LibraryCalls";
+ SubsetPredicate.emitTableVariableNameSuffix(OS);
+ if (FuncsWithCC.CallingConv)
+ OS << '_' << FuncsWithCC.CallingConv->getName();
+
+ OS << ") {\n"
+ << indent(IndentDepth + 4) << "setLibcallImpl(Func, Impl);\n";
+
if (FuncsWithCC.CallingConv) {
StringRef CCEnum =
FuncsWithCC.CallingConv->getValueAsString("CallingConv");
- OS << ", " << CCEnum;
+ OS << indent(IndentDepth + 4) << "setLibcallImplCallingConv(Impl, "
+ << CCEnum << ");\n";
}
- OS << ");\n\n";
+
+ OS << indent(IndentDepth + 2) << "}\n";
+ OS << '\n';
if (!SubsetPredicate.isAlwaysAvailable()) {
OS << indent(IndentDepth);
diff --git a/llvm/utils/TableGen/Basic/VTEmitter.cpp b/llvm/utils/TableGen/Basic/VTEmitter.cpp
index c6b4d0b..301b27d 100644
--- a/llvm/utils/TableGen/Basic/VTEmitter.cpp
+++ b/llvm/utils/TableGen/Basic/VTEmitter.cpp
@@ -33,11 +33,11 @@ static void vTtoGetLlvmTyString(raw_ostream &OS, const Record *VT) {
bool IsRISCVVecTuple = VT->getValueAsBit("isRISCVVecTuple");
if (IsRISCVVecTuple) {
- unsigned NElem = VT->getValueAsInt("nElem");
+ unsigned NF = VT->getValueAsInt("NF");
unsigned Sz = VT->getValueAsInt("Size");
OS << "TargetExtType::get(Context, \"riscv.vector.tuple\", "
"ScalableVectorType::get(Type::getInt8Ty(Context), "
- << (Sz / (NElem * 8)) << "), " << NElem << ")";
+ << (Sz / (NF * 8)) << "), " << NF << ")";
return;
}