[clang] [llvm] MC: Use Triple form of lookupTarget in more places (PR #157591)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 8 18:58:42 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-driver
Author: Matt Arsenault (arsenm)
<details>
<summary>Changes</summary>
---
Patch is 37.54 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/157591.diff
28 Files Affected:
- (modified) clang/lib/Driver/ToolChain.cpp (+3-1)
- (modified) clang/lib/Parse/ParseStmtAsm.cpp (+1-2)
- (modified) llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp (+11-14)
- (modified) llvm/lib/LTO/LTOCodeGenerator.cpp (+1-1)
- (modified) llvm/lib/MC/MCDisassembler/Disassembler.cpp (+3-2)
- (modified) llvm/lib/Target/TargetMachineC.cpp (+2-1)
- (modified) llvm/tools/llvm-jitlink/llvm-jitlink.cpp (+16-17)
- (modified) llvm/tools/llvm-objdump/MachODump.cpp (+2-2)
- (modified) llvm/tools/llvm-split/llvm-split.cpp (+4-2)
- (modified) llvm/tools/sancov/sancov.cpp (+1-1)
- (modified) llvm/unittests/CodeGen/TestAsmPrinter.cpp (+2-1)
- (modified) llvm/unittests/DebugInfo/DWARF/DWARFExpressionCompactPrinterTest.cpp (+3-4)
- (modified) llvm/unittests/DebugInfo/DWARF/DWARFExpressionCopyBytesTest.cpp (+1-1)
- (modified) llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp (+53-54)
- (modified) llvm/unittests/ExecutionEngine/MCJIT/MCJITTestAPICommon.h (+8-10)
- (modified) llvm/unittests/ExecutionEngine/MCJIT/MCJITTestBase.h (+4-4)
- (modified) llvm/unittests/MC/AMDGPU/Disassembler.cpp (+5-6)
- (modified) llvm/unittests/MC/DwarfLineTableHeaders.cpp (+1-1)
- (modified) llvm/unittests/MC/MCInstPrinter.cpp (+1-2)
- (modified) llvm/unittests/MC/SystemZ/SystemZAsmLexerTest.cpp (+1-1)
- (modified) llvm/unittests/MC/SystemZ/SystemZMCDisassemblerTest.cpp (+1-1)
- (modified) llvm/unittests/MC/X86/X86MCDisassemblerTest.cpp (+1-1)
- (modified) llvm/unittests/Target/AArch64/MCInstrAnalysisTest.cpp (+2-2)
- (modified) llvm/unittests/Target/LoongArch/MCInstrAnalysisTest.cpp (+2-2)
- (modified) llvm/unittests/Target/RISCV/MCInstrAnalysisTest.cpp (+2-2)
- (modified) llvm/unittests/tools/llvm-exegesis/AArch64/TargetTest.cpp (+1-1)
- (modified) llvm/unittests/tools/llvm-exegesis/PowerPC/AnalysisTest.cpp (+1-2)
- (modified) llvm/unittests/tools/llvm-exegesis/PowerPC/TargetTest.cpp (+1-1)
``````````diff
diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp
index 49c89ab0c037f..a9041d26c7ba4 100644
--- a/clang/lib/Driver/ToolChain.cpp
+++ b/clang/lib/Driver/ToolChain.cpp
@@ -519,7 +519,9 @@ ToolChain::getTargetAndModeFromProgramName(StringRef PN) {
StringRef Prefix(ProgName);
Prefix = Prefix.slice(0, LastComponent);
std::string IgnoredError;
- bool IsRegistered = llvm::TargetRegistry::lookupTarget(Prefix, IgnoredError);
+
+ llvm::Triple Triple(Prefix);
+ bool IsRegistered = llvm::TargetRegistry::lookupTarget(Triple, IgnoredError);
return ParsedClangName{std::string(Prefix), ModeSuffix, DS->ModeFlag,
IsRegistered};
}
diff --git a/clang/lib/Parse/ParseStmtAsm.cpp b/clang/lib/Parse/ParseStmtAsm.cpp
index 48338566e789d..d434ddbae6f58 100644
--- a/clang/lib/Parse/ParseStmtAsm.cpp
+++ b/clang/lib/Parse/ParseStmtAsm.cpp
@@ -509,13 +509,12 @@ StmtResult Parser::ParseMicrosoftAsmStatement(SourceLocation AsmLoc) {
// We need an actual supported target.
const llvm::Triple &TheTriple = Actions.Context.getTargetInfo().getTriple();
- const std::string &TT = TheTriple.getTriple();
const llvm::Target *TheTarget = nullptr;
if (!TheTriple.isX86()) {
Diag(AsmLoc, diag::err_msasm_unsupported_arch) << TheTriple.getArchName();
} else {
std::string Error;
- TheTarget = llvm::TargetRegistry::lookupTarget(TT, Error);
+ TheTarget = llvm::TargetRegistry::lookupTarget(TheTriple, Error);
if (!TheTarget)
Diag(AsmLoc, diag::err_msasm_unable_to_create_target) << Error;
}
diff --git a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
index df702130450d5..afe3b671547d8 100644
--- a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
+++ b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
@@ -756,13 +756,10 @@ class RuntimeDyldCheckerExprEval {
Expected<TargetInfo> getTargetInfo(const Triple &TT, const StringRef &CPU,
const SubtargetFeatures &TF) const {
-
- auto TripleName = TT.str();
std::string ErrorStr;
- const Target *TheTarget =
- TargetRegistry::lookupTarget(TripleName, ErrorStr);
+ const Target *TheTarget = TargetRegistry::lookupTarget(TT, ErrorStr);
if (!TheTarget)
- return make_error<StringError>("Error accessing target '" + TripleName +
+ return make_error<StringError>("Error accessing target '" + TT.str() +
"': " + ErrorStr,
inconvertibleErrorCode());
@@ -770,14 +767,14 @@ class RuntimeDyldCheckerExprEval {
TheTarget->createMCSubtargetInfo(TT, CPU, TF.getString()));
if (!STI)
return make_error<StringError>("Unable to create subtarget for " +
- TripleName,
+ TT.str(),
inconvertibleErrorCode());
std::unique_ptr<MCRegisterInfo> MRI(TheTarget->createMCRegInfo(TT));
if (!MRI)
return make_error<StringError>("Unable to create target register info "
"for " +
- TripleName,
+ TT.str(),
inconvertibleErrorCode());
MCTargetOptions MCOptions;
@@ -785,30 +782,30 @@ class RuntimeDyldCheckerExprEval {
TheTarget->createMCAsmInfo(*MRI, TT, MCOptions));
if (!MAI)
return make_error<StringError>("Unable to create target asm info " +
- TripleName,
+ TT.str(),
inconvertibleErrorCode());
- auto Ctx = std::make_unique<MCContext>(Triple(TripleName), MAI.get(),
+ auto Ctx = std::make_unique<MCContext>(Triple(TT.str()), MAI.get(),
MRI.get(), STI.get());
std::unique_ptr<MCDisassembler> Disassembler(
TheTarget->createMCDisassembler(*STI, *Ctx));
if (!Disassembler)
return make_error<StringError>("Unable to create disassembler for " +
- TripleName,
+ TT.str(),
inconvertibleErrorCode());
std::unique_ptr<MCInstrInfo> MII(TheTarget->createMCInstrInfo());
if (!MII)
return make_error<StringError>("Unable to create instruction info for" +
- TripleName,
+ TT.str(),
inconvertibleErrorCode());
- std::unique_ptr<MCInstPrinter> InstPrinter(TheTarget->createMCInstPrinter(
- Triple(TripleName), 0, *MAI, *MII, *MRI));
+ std::unique_ptr<MCInstPrinter> InstPrinter(
+ TheTarget->createMCInstPrinter(TT, 0, *MAI, *MII, *MRI));
if (!InstPrinter)
return make_error<StringError>(
- "Unable to create instruction printer for" + TripleName,
+ "Unable to create instruction printer for" + TT.str(),
inconvertibleErrorCode());
return TargetInfo({TheTarget, std::move(STI), std::move(MRI),
diff --git a/llvm/lib/LTO/LTOCodeGenerator.cpp b/llvm/lib/LTO/LTOCodeGenerator.cpp
index 09b91d81225a8..cdeab98ff6c98 100644
--- a/llvm/lib/LTO/LTOCodeGenerator.cpp
+++ b/llvm/lib/LTO/LTOCodeGenerator.cpp
@@ -384,7 +384,7 @@ bool LTOCodeGenerator::determineTarget() {
// create target machine from info for merged modules
std::string ErrMsg;
- MArch = TargetRegistry::lookupTarget(TripleStr, ErrMsg);
+ MArch = TargetRegistry::lookupTarget(Triple, ErrMsg);
if (!MArch) {
emitError(ErrMsg);
return false;
diff --git a/llvm/lib/MC/MCDisassembler/Disassembler.cpp b/llvm/lib/MC/MCDisassembler/Disassembler.cpp
index ba5e9feb601ca..0429227f0fecf 100644
--- a/llvm/lib/MC/MCDisassembler/Disassembler.cpp
+++ b/llvm/lib/MC/MCDisassembler/Disassembler.cpp
@@ -44,13 +44,14 @@ LLVMCreateDisasmCPUFeatures(const char *TT, const char *CPU,
const char *Features, void *DisInfo, int TagType,
LLVMOpInfoCallback GetOpInfo,
LLVMSymbolLookupCallback SymbolLookUp) {
+ Triple TheTriple(TT);
+
// Get the target.
std::string Error;
- const Target *TheTarget = TargetRegistry::lookupTarget(TT, Error);
+ const Target *TheTarget = TargetRegistry::lookupTarget(TheTriple, Error);
if (!TheTarget)
return nullptr;
- Triple TheTriple(TT);
std::unique_ptr<const MCRegisterInfo> MRI(
TheTarget->createMCRegInfo(TheTriple));
if (!MRI)
diff --git a/llvm/lib/Target/TargetMachineC.cpp b/llvm/lib/Target/TargetMachineC.cpp
index da6d35c8c8b43..aba6ea436e767 100644
--- a/llvm/lib/Target/TargetMachineC.cpp
+++ b/llvm/lib/Target/TargetMachineC.cpp
@@ -83,7 +83,8 @@ LLVMBool LLVMGetTargetFromTriple(const char* TripleStr, LLVMTargetRef *T,
char **ErrorMessage) {
std::string Error;
- *T = wrap(TargetRegistry::lookupTarget(TripleStr, Error));
+ Triple TT(TripleStr);
+ *T = wrap(TargetRegistry::lookupTarget(TT, Error));
if (!*T) {
if (ErrorMessage)
diff --git a/llvm/tools/llvm-jitlink/llvm-jitlink.cpp b/llvm/tools/llvm-jitlink/llvm-jitlink.cpp
index 6ff91b4bf47b8..31bf6a9d2d9c8 100644
--- a/llvm/tools/llvm-jitlink/llvm-jitlink.cpp
+++ b/llvm/tools/llvm-jitlink/llvm-jitlink.cpp
@@ -2582,11 +2582,10 @@ struct TargetInfo {
static TargetInfo
getTargetInfo(const Triple &TT,
const SubtargetFeatures &TF = SubtargetFeatures()) {
- auto TripleName = TT.str();
std::string ErrorStr;
- const Target *TheTarget = TargetRegistry::lookupTarget(TripleName, ErrorStr);
+ const Target *TheTarget = TargetRegistry::lookupTarget(TT, ErrorStr);
if (!TheTarget)
- ExitOnErr(make_error<StringError>("Error accessing target '" + TripleName +
+ ExitOnErr(make_error<StringError>("Error accessing target '" + TT.str() +
"': " + ErrorStr,
inconvertibleErrorCode()));
@@ -2594,52 +2593,52 @@ getTargetInfo(const Triple &TT,
TheTarget->createMCSubtargetInfo(TT, "", TF.getString()));
if (!STI)
ExitOnErr(
- make_error<StringError>("Unable to create subtarget for " + TripleName,
+ make_error<StringError>("Unable to create subtarget for " + TT.str(),
inconvertibleErrorCode()));
std::unique_ptr<MCRegisterInfo> MRI(TheTarget->createMCRegInfo(TT));
if (!MRI)
ExitOnErr(make_error<StringError>("Unable to create target register info "
"for " +
- TripleName,
+ TT.str(),
inconvertibleErrorCode()));
MCTargetOptions MCOptions;
std::unique_ptr<MCAsmInfo> MAI(
TheTarget->createMCAsmInfo(*MRI, TT, MCOptions));
if (!MAI)
- ExitOnErr(make_error<StringError>("Unable to create target asm info " +
- TripleName,
- inconvertibleErrorCode()));
+ ExitOnErr(
+ make_error<StringError>("Unable to create target asm info " + TT.str(),
+ inconvertibleErrorCode()));
- auto Ctx = std::make_unique<MCContext>(Triple(TripleName), MAI.get(),
- MRI.get(), STI.get());
+ auto Ctx = std::make_unique<MCContext>(Triple(TT.str()), MAI.get(), MRI.get(),
+ STI.get());
std::unique_ptr<MCDisassembler> Disassembler(
TheTarget->createMCDisassembler(*STI, *Ctx));
if (!Disassembler)
- ExitOnErr(make_error<StringError>("Unable to create disassembler for " +
- TripleName,
- inconvertibleErrorCode()));
+ ExitOnErr(
+ make_error<StringError>("Unable to create disassembler for " + TT.str(),
+ inconvertibleErrorCode()));
std::unique_ptr<MCInstrInfo> MII(TheTarget->createMCInstrInfo());
if (!MII)
ExitOnErr(make_error<StringError>("Unable to create instruction info for" +
- TripleName,
+ TT.str(),
inconvertibleErrorCode()));
std::unique_ptr<MCInstrAnalysis> MIA(
TheTarget->createMCInstrAnalysis(MII.get()));
if (!MIA)
ExitOnErr(make_error<StringError>(
- "Unable to create instruction analysis for" + TripleName,
+ "Unable to create instruction analysis for" + TT.str(),
inconvertibleErrorCode()));
std::unique_ptr<MCInstPrinter> InstPrinter(
- TheTarget->createMCInstPrinter(Triple(TripleName), 0, *MAI, *MII, *MRI));
+ TheTarget->createMCInstPrinter(Triple(TT.str()), 0, *MAI, *MII, *MRI));
if (!InstPrinter)
ExitOnErr(make_error<StringError>(
- "Unable to create instruction printer for" + TripleName,
+ "Unable to create instruction printer for" + TT.str(),
inconvertibleErrorCode()));
return {TheTarget, std::move(STI), std::move(MRI),
std::move(MAI), std::move(Ctx), std::move(Disassembler),
diff --git a/llvm/tools/llvm-objdump/MachODump.cpp b/llvm/tools/llvm-objdump/MachODump.cpp
index 9b0eb63921964..8e9c91fde544d 100644
--- a/llvm/tools/llvm-objdump/MachODump.cpp
+++ b/llvm/tools/llvm-objdump/MachODump.cpp
@@ -147,11 +147,11 @@ static const Target *GetTarget(const MachOObjectFile *MachOObj,
// Get the target specific parser.
std::string Error;
- const Target *TheTarget = TargetRegistry::lookupTarget(TripleName, Error);
+ const Target *TheTarget = TargetRegistry::lookupTarget(TT, Error);
if (TheTarget && ThumbTripleName.empty())
return TheTarget;
- *ThumbTarget = TargetRegistry::lookupTarget(ThumbTripleName, Error);
+ *ThumbTarget = TargetRegistry::lookupTarget(ThumbTriple, Error);
if (*ThumbTarget)
return TheTarget;
diff --git a/llvm/tools/llvm-split/llvm-split.cpp b/llvm/tools/llvm-split/llvm-split.cpp
index 97713c481a71a..a2877af782b80 100644
--- a/llvm/tools/llvm-split/llvm-split.cpp
+++ b/llvm/tools/llvm-split/llvm-split.cpp
@@ -243,13 +243,15 @@ int main(int argc, char **argv) {
cl::HideUnrelatedOptions({&SplitCategory, &getColorCategory()});
cl::ParseCommandLineOptions(argc, argv, "LLVM module splitter\n");
+ Triple TT(MTriple);
+
std::unique_ptr<TargetMachine> TM;
if (!MTriple.empty()) {
InitializeAllTargets();
InitializeAllTargetMCs();
std::string Error;
- const Target *T = TargetRegistry::lookupTarget(MTriple, Error);
+ const Target *T = TargetRegistry::lookupTarget(TT, Error);
if (!T) {
errs() << "unknown target '" << MTriple << "': " << Error << "\n";
return 1;
@@ -257,7 +259,7 @@ int main(int argc, char **argv) {
TargetOptions Options;
TM = std::unique_ptr<TargetMachine>(T->createTargetMachine(
- Triple(MTriple), MCPU, /*FS*/ "", Options, std::nullopt, std::nullopt));
+ TT, MCPU, /*FS*/ "", Options, std::nullopt, std::nullopt));
}
std::unique_ptr<Module> M = parseIRFile(InputFilename, Err, Context);
diff --git a/llvm/tools/sancov/sancov.cpp b/llvm/tools/sancov/sancov.cpp
index b57a9d703459a..a0585fad024c7 100644
--- a/llvm/tools/sancov/sancov.cpp
+++ b/llvm/tools/sancov/sancov.cpp
@@ -706,7 +706,7 @@ static void getObjectCoveragePoints(const object::ObjectFile &O,
auto TripleName = TheTriple.getTriple();
std::string Error;
- const Target *TheTarget = TargetRegistry::lookupTarget(TripleName, Error);
+ const Target *TheTarget = TargetRegistry::lookupTarget(TheTriple, Error);
failIfNotEmpty(Error);
std::unique_ptr<const MCSubtargetInfo> STI(
diff --git a/llvm/unittests/CodeGen/TestAsmPrinter.cpp b/llvm/unittests/CodeGen/TestAsmPrinter.cpp
index 0c799ef901a0b..8d30e457178fc 100644
--- a/llvm/unittests/CodeGen/TestAsmPrinter.cpp
+++ b/llvm/unittests/CodeGen/TestAsmPrinter.cpp
@@ -32,7 +32,8 @@ llvm::Expected<std::unique_ptr<TestAsmPrinter>>
TestAsmPrinter::create(const std::string &TripleStr, uint16_t DwarfVersion,
dwarf::DwarfFormat DwarfFormat) {
std::string ErrorStr;
- const Target *TheTarget = TargetRegistry::lookupTarget(TripleStr, ErrorStr);
+ Triple TT(TripleStr);
+ const Target *TheTarget = TargetRegistry::lookupTarget(TT, ErrorStr);
if (!TheTarget)
return std::unique_ptr<TestAsmPrinter>();
diff --git a/llvm/unittests/DebugInfo/DWARF/DWARFExpressionCompactPrinterTest.cpp b/llvm/unittests/DebugInfo/DWARF/DWARFExpressionCompactPrinterTest.cpp
index db7690668facc..41acc8240c720 100644
--- a/llvm/unittests/DebugInfo/DWARF/DWARFExpressionCompactPrinterTest.cpp
+++ b/llvm/unittests/DebugInfo/DWARF/DWARFExpressionCompactPrinterTest.cpp
@@ -33,16 +33,15 @@ class DWARFExpressionCompactPrinterTest : public ::testing::Test {
InitializeAllTargetMCs();
InitializeAllAsmPrinters();
- std::string TripleName = "armv8a-linux-gnueabi";
+ Triple TT("armv8a-linux-gnueabi");
std::string ErrorStr;
- const Target *TheTarget =
- TargetRegistry::lookupTarget(TripleName, ErrorStr);
+ const Target *TheTarget = TargetRegistry::lookupTarget(TT, ErrorStr);
if (!TheTarget)
return;
- MRI.reset(TheTarget->createMCRegInfo(Triple(TripleName)));
+ MRI.reset(TheTarget->createMCRegInfo(TT));
}
void TestExprPrinter(ArrayRef<uint8_t> ExprData, StringRef Expected);
diff --git a/llvm/unittests/DebugInfo/DWARF/DWARFExpressionCopyBytesTest.cpp b/llvm/unittests/DebugInfo/DWARF/DWARFExpressionCopyBytesTest.cpp
index b67dd6a9d237d..f51c2004d46c0 100644
--- a/llvm/unittests/DebugInfo/DWARF/DWARFExpressionCopyBytesTest.cpp
+++ b/llvm/unittests/DebugInfo/DWARF/DWARFExpressionCopyBytesTest.cpp
@@ -59,7 +59,7 @@ class DWARFExpressionCopyBytesTest : public ::testing::Test {
InitializeAllAsmPrinters();
std::string ErrorStr;
- TheTarget = TargetRegistry::lookupTarget(TripleName, ErrorStr);
+ TheTarget = TargetRegistry::lookupTarget(TheTriple, ErrorStr);
if (!TheTarget)
return;
diff --git a/llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp b/llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp
index 8a4924fa92723..bc43515b3b1d2 100644
--- a/llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp
+++ b/llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp
@@ -78,11 +78,10 @@ class TestReserveAllocationSpaceMemoryManager: public SectionMemoryManager {
uintptr_t UsedDataSizeRO;
uintptr_t ReservedDataSizeRW;
uintptr_t UsedDataSizeRW;
-
- TestReserveAllocationSpaceMemoryManager() :
- ReservedCodeSize(0), UsedCodeSize(0), ReservedDataSizeRO(0),
- UsedDataSizeRO(0), ReservedDataSizeRW(0), UsedDataSizeRW(0) {
- }
+
+ TestReserveAllocationSpaceMemoryManager()
+ : ReservedCodeSize(0), UsedCodeSize(0), ReservedDataSizeRO(0),
+ UsedDataSizeRO(0), ReservedDataSizeRW(0), UsedDataSizeRW(0) {}
bool needsToReserveAllocationSpace() override { return true; }
@@ -105,16 +104,16 @@ class TestReserveAllocationSpaceMemoryManager: public SectionMemoryManager {
unsigned SectionID, StringRef SectionName,
bool IsReadOnly) override {
useSpace(IsReadOnly ? &UsedDataSizeRO : &UsedDataSizeRW, Size, Alignment);
- return SectionMemoryManager::allocateDataSection(Size, Alignment,
- SectionID, SectionName, IsReadOnly);
+ return SectionMemoryManager::allocateDataSection(Size, Alignment, SectionID,
+ SectionName, IsReadOnly);
}
uint8_t *allocateCodeSection(uintptr_t Size, unsigned Alignment,
unsigned SectionID,
StringRef SectionName) override {
useSpace(&UsedCodeSize, Size, Alignment);
- return SectionMemoryManager::allocateCodeSection(Size, Alignment,
- SectionID, SectionName);
+ return SectionMemoryManager::allocateCodeSection(Size, Alignment, SectionID,
+ SectionName);
}
};
@@ -160,42 +159,42 @@ class MCJITCAPITest : public testing::Test, public MCJITTestAPICommon {
else if (Module)
LLVMDisposeModule(Module);
}
-
+
void buildSimpleFunction() {
Module = LLVMModuleCreateWithName("simple_module");
-
- LLVMSetTarget(Module, HostTriple.c_str());
-
+
+ LLVMSetTarget(Module, HostTripleName.c_str());
+
Function = LLVMAddFunction(Module, "simple_function",
LLVMFunctionType(LLVMInt32Type(), nullptr,0, 0));
LLVMSetFunctionCallConv(Function, LLVMCCallConv);
-
+
LLVMBasicBlockRef entry = LLVMAppendBasicBlock(Function, "entry");
LLVMBuilderRef builder = LLVMCreateBuilder();
LLVMPositionBuilderAtEnd(builder, entry);
LLVMBuildRet(builder, LLVMConstInt(LLVMInt32Type(), 42, 0));
-
+
LLVMVerifyModule(Module, LLVMAbortProcessAction, &Error);
LLVMDisposeMessage(Error);
-
+
LLVMDisposeBuilder(builder);
}
-
+
void buildFunctionThatUsesStackmap() {
Module = LLVMModuleCreateWithName("simple_module");
-
- LLVMSetTarget(Module, HostTriple.c_str());
-
+
+ LLVMSetTarget(Module, HostTripleName.c_str());
+
LLVMTypeRef stackmapParamTypes[] = { LLVMInt64Type(), LLVMInt32Type() };
LLVMTypeRef stackmapTy =
LLVMFunctionType(LLVMVoidType(), stackmapParamTypes, 2, 1);
LLVMValueRef stackmap = LLVMAddFunction(
Module, "llvm.experimental.stackmap", stackmapTy);
LLVMSetLinkage(stackmap, LLVMExternalLinkage);
-
+
Function = LLVMAddFunction(Module, "simple_function",
LLVMFunctionType(LLVMInt32Type(), nullptr, 0, 0));
-
+
LLVMBasicBlockRef entry = LLVMAppendBasicBlock(Function, "entry");
LLVMBuilderRef builder = LLVMCreateBuilder();
LLVMPositionBuilderAtEnd(builder, entry);
@@ -205,70 +204,70 @@ class MCJITCAPITest : public testing::Test, public MCJITTestAPICommon {
};
LLVMBuildCall2(builder, stackmapTy, stackmap, stackmapArgs, 3, "");
LLVMBuildRet(builder, LLVMConstInt(L...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/157591
More information about the llvm-commits
mailing list