From f7b6cc1efab188a375a6932d879cb5510618d698 Mon Sep 17 00:00:00 2001 From: Dominik Montada Date: Thu, 2 Apr 2026 20:55:45 +0200 Subject: [PATCH] [llvm-reduce] Set the target triple before parsing machine functions (#189989) Make sure that the module has a target triple set before trying to parse machine functions. This can be required for (downstream) targets if MIR parsing relies on features guarded by the target triple. --- .../llvm-reduce/mir/set-triple-on-module.mir | 16 ++++++++++++++++ llvm/tools/llvm-reduce/ReducerWorkItem.cpp | 3 +++ 2 files changed, 19 insertions(+) create mode 100644 llvm/test/tools/llvm-reduce/mir/set-triple-on-module.mir diff --git a/llvm/test/tools/llvm-reduce/mir/set-triple-on-module.mir b/llvm/test/tools/llvm-reduce/mir/set-triple-on-module.mir new file mode 100644 index 000000000000..1f1e6b145bd3 --- /dev/null +++ b/llvm/test/tools/llvm-reduce/mir/set-triple-on-module.mir @@ -0,0 +1,16 @@ +# REQUIRES: x86-registered-target + +# RUN: llvm-reduce -simplify-mir -mtriple="x86_64-unknown-linux-gnu" --test FileCheck --test-arg --check-prefix=CHECK-INTERESTINGNESS --test-arg %s --test-arg --input-file %s -o %t +# RUN: FileCheck %s < %t + +# CHECK-INTERESTINGNESS: RET64 + +# CHECK: target triple = "x86_64-unknown-linux-gnu" +# CHECK: name: func + +--- +name: func +body: | + bb.0: + RET64 +... diff --git a/llvm/tools/llvm-reduce/ReducerWorkItem.cpp b/llvm/tools/llvm-reduce/ReducerWorkItem.cpp index c479233a712e..b7e8118ea73a 100644 --- a/llvm/tools/llvm-reduce/ReducerWorkItem.cpp +++ b/llvm/tools/llvm-reduce/ReducerWorkItem.cpp @@ -859,6 +859,9 @@ llvm::parseReducerWorkItem(StringRef ToolName, StringRef Filename, std::unique_ptr M = MParser->parseIRModule(SetDataLayout); + if (!TheTriple.empty()) + M->setTargetTriple(TheTriple); + MMM->MMI = std::make_unique(TM.get()); MParser->parseMachineFunctions(*M, *MMM->MMI); MMM->M = std::move(M);