forked from OSchip/llvm-project
[RISCV] Fix std::advance slowness
Summary: It seems std::advance template is treating "-MFI.getCalleeSavedInfo().size()" as a large unsigned value", causing slowness. Thanks to Henrik Gustafsson for reporting the issue. Reviewers: asb Reviewed By: asb Subscribers: llvm-commits, rbar, johnrusso, simoncook, sabuasal, niosHD, kito-cheng, shiva0217, zzheng, edward-jones, mgrang, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, asb Differential Revision: https://reviews.llvm.org/D51148 llvm-svn: 340669
This commit is contained in:
parent
673412e3fa
commit
61b28ede75
|
@ -148,8 +148,7 @@ void RISCVFrameLowering::emitEpilogue(MachineFunction &MF,
|
|||
// Skip to before the restores of callee-saved registers
|
||||
// FIXME: assumes exactly one instruction is used to restore each
|
||||
// callee-saved register.
|
||||
MachineBasicBlock::iterator LastFrameDestroy = MBBI;
|
||||
std::advance(LastFrameDestroy, -MFI.getCalleeSavedInfo().size());
|
||||
auto LastFrameDestroy = std::prev(MBBI, MFI.getCalleeSavedInfo().size());
|
||||
|
||||
uint64_t StackSize = MFI.getStackSize();
|
||||
|
||||
|
|
Loading…
Reference in New Issue