Skip to content

Conversation

@arsenm
Copy link
Contributor

@arsenm arsenm commented Sep 9, 2025

No description provided.

Copy link
Contributor Author

arsenm commented Sep 9, 2025

This stack of pull requests is managed by Graphite. Learn more about stacking.

@arsenm arsenm marked this pull request as ready for review September 9, 2025 01:58
@llvmbot llvmbot added clang Clang issues not falling into any other category backend:AMDGPU backend:RISC-V clang:driver 'clang' and 'clang++' user-facing binaries. Not 'clang-cl' clang:frontend Language frontend issues, e.g. anything involving "Sema" tools:llvm-exegesis llvm:mc Machine (object) code LTO Link time optimization (regular/full LTO or ThinLTO) llvm:binary-utilities labels Sep 9, 2025
@llvmbot
Copy link
Member

llvmbot commented Sep 9, 2025

@llvm/pr-subscribers-clang
@llvm/pr-subscribers-llvm-mc
@llvm/pr-subscribers-lto
@llvm/pr-subscribers-backend-risc-v

@llvm/pr-subscribers-clang-driver

Author: Matt Arsenault (arsenm)

Changes

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 --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]

@arsenm arsenm merged commit 819aa35 into main Sep 9, 2025
21 checks passed
@arsenm arsenm deleted the users/arsenm/mc/use-triple-form-lookupTarget branch September 9, 2025 07:33
fzou1 added a commit that referenced this pull request Sep 11, 2025
#157829)

The empty triple is passed to lookupTarget function and it's not set to
default one. This issue is exposed after changes in
#157591.
llvm-sync bot pushed a commit to arm/arm-toolchain that referenced this pull request Sep 11, 2025
…n it's empty (#157829)

The empty triple is passed to lookupTarget function and it's not set to
default one. This issue is exposed after changes in
llvm/llvm-project#157591.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend:AMDGPU backend:RISC-V clang:driver 'clang' and 'clang++' user-facing binaries. Not 'clang-cl' clang:frontend Language frontend issues, e.g. anything involving "Sema" clang Clang issues not falling into any other category llvm:binary-utilities llvm:mc Machine (object) code LTO Link time optimization (regular/full LTO or ThinLTO) tools:llvm-exegesis

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants