This extends the distributing postinc code in load/store optimizer to also handle the case where there is an existing pre/post inc instuction, where subsequent instructions can be modified to use the adjusted increment from the increment. This can save us having to keep the old register live past the increment instruction.
Details
Diff Detail
Event Timeline
llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp | ||
---|---|---|
2607 | The function name doesn't appear to match that opcodes that it's checking? | |
2819–2821 | I'm still a bit concerned with this loop.... Can't we get in a pickle if there are two or more instructions within the loop which use BaseReg with a zero offset? OtherAccesses relies on BaseAccess only being assigned once, right? Don't we also need to ensure that BaseReg isn't assigned between BaseAccess and OtherAccesses? |
Thanks, LGTM
llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp | ||
---|---|---|
2819–2821 | Ah! Yes, I had completely missed the 'ARMPreAllocLoadStoreOpt::' |
The function name doesn't appear to match that opcodes that it's checking?