llvm: Disable the machine outliner pass on RISC-V

This commit is contained in:
Alex Rønne Petersen
2025-06-30 07:01:35 +02:00
parent aa7b32d781
commit 07114e6bc6
4 changed files with 15 additions and 6 deletions

View File

@@ -1068,6 +1068,9 @@ pub const Object = struct {
.full => .FullPreLink,
},
.allow_fast_isel = true,
// LLVM's RISC-V backend for some reason enables the machine outliner by default even
// though it's clearly not ready and produces multiple miscompilations in our std tests.
.allow_machine_outliner = !comp.root_mod.resolved_target.result.cpu.arch.isRISCV(),
.asm_filename = null,
.bin_filename = options.bin_path,
.llvm_ir_filename = options.post_ir_path,

View File

@@ -92,6 +92,7 @@ pub const TargetMachine = opaque {
sancov: bool,
lto: LtoPhase,
allow_fast_isel: bool,
allow_machine_outliner: bool,
asm_filename: ?[*:0]const u8,
bin_filename: ?[*:0]const u8,
llvm_ir_filename: ?[*:0]const u8,