Skip to content

Commit f188d6e

Browse files
author
Martien de Jong
committed
blunt fix
1 parent 6f15a5b commit f188d6e

File tree

2 files changed

+12
-36
lines changed

2 files changed

+12
-36
lines changed

llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8556,19 +8556,12 @@ LegalizerHelper::lowerMemset(MachineInstr &MI, Register Dst, Register Val,
85568556
bool IsVolatile) {
85578557
auto &MF = *MI.getParent()->getParent();
85588558
const auto &TLI = *MF.getSubtarget().getTargetLowering();
8559-
auto &DL = MF.getDataLayout();
8560-
LLVMContext &C = MF.getFunction().getContext();
85618559

85628560
assert(KnownLen != 0 && "Have a zero length memset length!");
85638561

8564-
bool DstAlignCanChange = false;
8565-
MachineFrameInfo &MFI = MF.getFrameInfo();
8562+
const bool DstAlignCanChange = false;
85668563
bool OptSize = shouldLowerMemFuncForSize(MF);
85678564

8568-
MachineInstr *FIDef = getOpcodeDef(TargetOpcode::G_FRAME_INDEX, Dst, MRI);
8569-
if (FIDef && !MFI.isFixedObjectIndex(FIDef->getOperand(1).getIndex()))
8570-
DstAlignCanChange = true;
8571-
85728565
unsigned Limit = TLI.getMaxStoresPerMemset(OptSize);
85738566
std::vector<LLT> MemOps;
85748567

@@ -8587,19 +8580,6 @@ LegalizerHelper::lowerMemset(MachineInstr &MI, Register Dst, Register Val,
85878580
MF.getFunction().getAttributes(), TLI))
85888581
return UnableToLegalize;
85898582

8590-
if (DstAlignCanChange) {
8591-
// Get an estimate of the type from the LLT.
8592-
Type *IRTy = getTypeForLLT(MemOps[0], C);
8593-
Align NewAlign = DL.getABITypeAlign(IRTy);
8594-
if (NewAlign > Alignment) {
8595-
Alignment = NewAlign;
8596-
unsigned FI = FIDef->getOperand(1).getIndex();
8597-
// Give the stack frame object a larger alignment if needed.
8598-
if (MFI.getObjectAlign(FI) < Alignment)
8599-
MFI.setObjectAlignment(FI, Alignment);
8600-
}
8601-
}
8602-
86038583
MachineIRBuilder MIB(MI);
86048584
// Find the largest store and generate the bit pattern for it.
86058585
LLT LargestTy = MemOps[0];

llvm/test/CodeGen/AIE/aie2p/GlobalIsel/legalize-memset.mir

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,19 @@
1717
; CHECK-LABEL: f:
1818
; CHECK: .p2align 4
1919
; CHECK-NEXT: // %bb.0: // %entry
20-
; CHECK-NEXT: mova r0, #0; nopb ; nops ; paddxm [sp], #128; nopv
21-
; CHECK-NEXT: vbcst.32 x0, r0
22-
; CHECK-NEXT: mov p1, sp
23-
; CHECK-NEXT: vextract.32 r0, x0, #0, vaddsign1
24-
; CHECK-NEXT: mova m0, #-96; vextract.32 r1, x0, #1, vaddsign1
25-
; CHECK-NEXT: padda [p1], m0; vextract.32 r2, x0, #2, vaddsign1
26-
; CHECK-NEXT: mova m0, #4; st lr, [sp, #-128]; mov p0, p1 // 4-byte Folded Spill
27-
; CHECK-NEXT: padda [p1], m0; st r0, [p1, #0]; vextract.32 r0, x0, #3, vaddsign1
28-
; CHECK-NEXT: st r1, [p1], #4; vextract.32 r1, x0, #4, vaddsign1
29-
; CHECK-NEXT: st r2, [p1], #4; vextract.32 r2, x0, #5, vaddsign1
20+
; CHECK-NEXT: mova m0, #-60; nopb ; nops ; paddxm [sp], #64; nopv
21+
; CHECK-NEXT: nopx ; mov p1, sp
22+
; CHECK-NEXT: mova m0, #4; paddb [p1], m0; movx r0, #0; st lr, [sp, #-64] // 4-byte Folded Spill
23+
; CHECK-NEXT: padda [p1], m0; st r0, [p1, #0]; mov p0, p1
24+
; CHECK-NEXT: st r0, [p1], #4
25+
; CHECK-NEXT: st r0, [p1], #4
3026
; CHECK-NEXT: st r0, [p1], #4; jl #g
31-
; CHECK-NEXT: st r1, [p1], #4; vextract.32 r0, x0, #6, vaddsign1 // Delay Slot 5
32-
; CHECK-NEXT: st r2, [p1], #4; vextract.32 r1, x0, #7, vaddsign1 // Delay Slot 4
27+
; CHECK-NEXT: st r0, [p1], #4 // Delay Slot 5
28+
; CHECK-NEXT: st r0, [p1], #4 // Delay Slot 4
3329
; CHECK-NEXT: st r0, [p1], #4 // Delay Slot 3
34-
; CHECK-NEXT: st r1, [p1, #0] // Delay Slot 2
30+
; CHECK-NEXT: st r0, [p1, #0] // Delay Slot 2
3531
; CHECK-NEXT: nop // Delay Slot 1
36-
; CHECK-NEXT: lda lr, [sp, #-128]; nopb ; nops ; nopxm ; nopv // 4-byte Folded Reload
32+
; CHECK-NEXT: lda lr, [sp, #-64]; nopb ; nops ; nopxm ; nopv // 4-byte Folded Reload
3733
; CHECK-NEXT: nopx
3834
; CHECK-NEXT: nop
3935
; CHECK-NEXT: nop
@@ -44,7 +40,7 @@
4440
; CHECK-NEXT: nop // Delay Slot 5
4541
; CHECK-NEXT: nop // Delay Slot 4
4642
; CHECK-NEXT: nop // Delay Slot 3
47-
; CHECK-NEXT: paddxm [sp], #-128 // Delay Slot 2
43+
; CHECK-NEXT: paddxm [sp], #-64 // Delay Slot 2
4844
; CHECK-NEXT: nop // Delay Slot 1
4945
entry:
5046
%s = alloca %struct.S, align 4

0 commit comments

Comments
 (0)