Author: Ingo Müller Date: 2026-10-09T10:32:26+02:00 New Revision: 6c57e390b3e267d08decd1de5e5c7a577d730861
URL: https://github.com/llvm/llvm-project/commit/6c57e390b3e267d08decd1de5e5c7a577d730861 DIFF: https://github.com/llvm/llvm-project/commit/6c57e390b3e267d08decd1de5e5c7a577d730861.diff LOG: Revert "X86: Mark EFLAGS clobbers dead in global base register setup (#229337)" This reverts commit 488f609ea360315c3306ab12c206ee89eae0c948. Added: Modified: llvm/lib/Target/X86/X86GlobalBaseReg.cpp llvm/test/CodeGen/X86/large-pic-jump-table.ll Removed: llvm/test/CodeGen/X86/global-base-reg-dead-eflags.ll ################################################################################ diff --git a/llvm/lib/Target/X86/X86GlobalBaseReg.cpp b/llvm/lib/Target/X86/X86GlobalBaseReg.cpp index 8aebedd2ac459..fb6c6b340521f 100644 --- a/llvm/lib/Target/X86/X86GlobalBaseReg.cpp +++ b/llvm/lib/Target/X86/X86GlobalBaseReg.cpp @@ -100,8 +100,7 @@ static bool initGlobalBaseReg(MachineFunction &MF) { X86II::MO_PIC_BASE_OFFSET); BuildMI(FirstMBB, MBBI, DL, TII->get(X86::ADD64rr), PC) .addReg(PBReg, RegState::Kill) - .addReg(GOTReg, RegState::Kill) - .setOperandDead(3); // implicit-def $eflags + .addReg(GOTReg, RegState::Kill); } else { // In other code models, use a RIP-relative LEA to materialize the // GOT. @@ -125,8 +124,7 @@ static bool initGlobalBaseReg(MachineFunction &MF) { BuildMI(FirstMBB, MBBI, DL, TII->get(X86::ADD32ri), GlobalBaseReg) .addReg(PC) .addExternalSymbol("_GLOBAL_OFFSET_TABLE_", - X86II::MO_GOT_ABSOLUTE_ADDRESS) - .setOperandDead(3); // implicit-def $eflags + X86II::MO_GOT_ABSOLUTE_ADDRESS); } } diff --git a/llvm/test/CodeGen/X86/global-base-reg-dead-eflags.ll b/llvm/test/CodeGen/X86/global-base-reg-dead-eflags.ll deleted file mode 100644 index 44e82e29171d7..0000000000000 --- a/llvm/test/CodeGen/X86/global-base-reg-dead-eflags.ll +++ /dev/null @@ -1,29 +0,0 @@ -; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 6 -; RUN: llc < %s -mtriple=i686-unknown-linux-gnu -relocation-model=pic -stop-after=finalize-isel | FileCheck %s --check-prefix=X86 -; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -relocation-model=pic -code-model=large -stop-after=finalize-isel | FileCheck %s --check-prefix=LARGE - -@g = external global i32 - -define i32 @use_global() { - ; X86-LABEL: name: use_global - ; X86: bb.0 (%ir-block.0): - ; X86-NEXT: [[MOVPC32r:%[0-9]+]]:gr32 = MOVPC32r 0, implicit $esp, implicit $ssp - ; X86-NEXT: [[ADD32ri:%[0-9]+]]:gr32_nosp = ADD32ri [[MOVPC32r]], target-flags(x86-got-absolute-address) &_GLOBAL_OFFSET_TABLE_, implicit-def dead $eflags - ; X86-NEXT: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[ADD32ri]], 1, $noreg, target-flags(x86-got) @g, $noreg :: (load (s32) from got) - ; X86-NEXT: [[MOV32rm1:%[0-9]+]]:gr32 = MOV32rm killed [[MOV32rm]], 1, $noreg, 0, $noreg :: (dereferenceable load (s32) from @g) - ; X86-NEXT: $eax = COPY [[MOV32rm1]] - ; X86-NEXT: RET 0, $eax - ; - ; LARGE-LABEL: name: use_global - ; LARGE: bb.0 (%ir-block.0): - ; LARGE-NEXT: [[LEA64r:%[0-9]+]]:gr64 = LEA64r $rip, 0, $noreg, <mcsymbol .L0$pb>, $noreg, pre-instr-symbol <mcsymbol .L0$pb> - ; LARGE-NEXT: [[MOV64ri:%[0-9]+]]:gr64 = MOV64ri target-flags(x86-pic-base-offset) &_GLOBAL_OFFSET_TABLE_ - ; LARGE-NEXT: [[ADD64rr:%[0-9]+]]:gr64_nosp = ADD64rr killed [[LEA64r]], killed [[MOV64ri]], implicit-def dead $eflags - ; LARGE-NEXT: [[MOV64ri1:%[0-9]+]]:gr64_nosp = MOV64ri target-flags(x86-got) @g - ; LARGE-NEXT: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm [[ADD64rr]], 1, killed [[MOV64ri1]], 0, $noreg :: (load (s64) from got) - ; LARGE-NEXT: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm killed [[MOV64rm]], 1, $noreg, 0, $noreg :: (dereferenceable load (s32) from @g) - ; LARGE-NEXT: $eax = COPY [[MOV32rm]] - ; LARGE-NEXT: RET 0, $eax - %v = load i32, ptr @g - ret i32 %v -} diff --git a/llvm/test/CodeGen/X86/large-pic-jump-table.ll b/llvm/test/CodeGen/X86/large-pic-jump-table.ll index 47a010a6b215a..89e8521e700a0 100644 --- a/llvm/test/CodeGen/X86/large-pic-jump-table.ll +++ b/llvm/test/CodeGen/X86/large-pic-jump-table.ll @@ -28,9 +28,9 @@ bb4: } ; CHECK: movabsq $.LJTI0_0@GOTOFF, [[R1:%r[a-z]{2}]] -; CHECK-NEXT: addq [[R2:%r[a-z]{2}]], [[R1]] -; CHECK-NEXT: addq ([[R1]],[[R3:%r[a-z]{2}]],8), [[R1]] -; CHECK-NEXT: jmpq *[[R1]] +; CHECK-NEXT: addq [[R1]], [[R2:%r[a-z]{2}]] +; CHECK-NEXT: addq ([[R2]],[[R3:%r[a-z]{2}]],8), [[R2]] +; CHECK-NEXT: jmpq *[[R2]] ; CHECK: .LJTI0_0: ; CHECK-NEXT: .quad .LBB0_2-.LJTI0_0 _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
