@@ -135,7 +135,6 @@ static bool isValidAddrOffset(MachineInstr &MI, int64_t Offset) {
135135bool XtensaRegisterInfo::eliminateFI (MachineBasicBlock::iterator II,
136136 unsigned OpNo, int FrameIndex,
137137 uint64_t StackSize, int64_t SPOffset,
138- uint64_t Alignment,
139138 RegScavenger *RS) const {
140139 MachineInstr &MI = *II;
141140 MachineFunction &MF = *MI.getParent ()->getParent ();
@@ -184,9 +183,8 @@ bool XtensaRegisterInfo::eliminateFI(MachineBasicBlock::iterator II,
184183 LLVM_DEBUG (errs () << " Offset : " << Offset << " \n "
185184 << " <--------->\n " );
186185
187- bool Valid = (Alignment <= 32 ) ? isValidAddrOffset (MI, Offset) : false ;
186+ bool Valid = isValidAddrOffset (MI, Offset);
188187
189-
190188 // If MI is not a debug value, make sure Offset fits in the 16-bit immediate
191189 // field.
192190 if (!MI.isDebugValue () && !Valid) {
@@ -197,27 +195,7 @@ bool XtensaRegisterInfo::eliminateFI(MachineBasicBlock::iterator II,
197195 const XtensaInstrInfo &TII = *static_cast <const XtensaInstrInfo *>(
198196 MBB.getParent ()->getSubtarget ().getInstrInfo ());
199197
200- // Calculate how much is needed to have the correct alignment.
201- // Change offset to: alignment + difference.
202- // For example, in case of alignment of 128:
203- // diff_to_128_aligned_address = (128 - (SP & 127))
204- // new_offset = 128 + diff_to_128_aligned_address
205- if (Alignment > 32 ) {
206- TII.loadImmediate (MBB, II, &RegMisAlign, Alignment - 1 );
207- TII.loadImmediate (MBB, II, &Reg, Alignment);
208- BuildMI (MBB, II, DL, TII.get (Xtensa::AND))
209- .addReg (RegMisAlign, RegState::Define)
210- .addReg (FrameReg)
211- .addReg (RegMisAlign);
212- BuildMI (MBB, II, DL, TII.get (Xtensa::SUB), RegMisAlign)
213- .addReg (Reg)
214- .addReg (RegMisAlign);
215- BuildMI (MBB, II, DL, TII.get (Xtensa::ADD), Reg)
216- .addReg (Reg)
217- .addReg (RegMisAlign, RegState::Kill);
218- } else {
219- TII.loadImmediate (MBB, II, &Reg, Offset);
220- }
198+ TII.loadImmediate (MBB, II, &Reg, Offset);
221199 BuildMI (MBB, II, DL, TII.get (ADD), Reg)
222200 .addReg (FrameReg)
223201 .addReg (Reg, RegState::Kill);
@@ -327,14 +305,12 @@ bool XtensaRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
327305 int FrameIndex = MI.getOperand (FIOperandNum).getIndex ();
328306 uint64_t stackSize = MF.getFrameInfo ().getStackSize ();
329307 int64_t spOffset = MF.getFrameInfo ().getObjectOffset (FrameIndex);
330- uint64_t Alignment = MF.getFrameInfo ().getObjectAlign (FrameIndex).value ();
331308
332309 LLVM_DEBUG (errs () << " FrameIndex : " << FrameIndex << " \n "
333310 << " spOffset : " << spOffset << " \n "
334311 << " stackSize : " << stackSize << " \n " );
335312
336- return eliminateFI (MI, FIOperandNum, FrameIndex, stackSize, spOffset,
337- Alignment, RS);
313+ return eliminateFI (MI, FIOperandNum, FrameIndex, stackSize, spOffset, RS);
338314}
339315
340316Register XtensaRegisterInfo::getFrameRegister (const MachineFunction &MF) const {
0 commit comments