[all-commits] [llvm/llvm-project] 44fa47: [ARM][ConstantIslands] Fix stack mis-alignment cau...
huihzhang via All-commits
all-commits at lists.llvm.org
Mon Mar 2 16:29:17 PST 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 44fa47c9e7eac68bed624246ad4edf7570a6397b
https://github.com/llvm/llvm-project/commit/44fa47c9e7eac68bed624246ad4edf7570a6397b
Author: Huihui Zhang <huihuiz at quicinc.com>
Date: 2020-03-02 (Mon, 02 Mar 2020)
Changed paths:
M llvm/lib/Target/ARM/ARMConstantIslandPass.cpp
M llvm/lib/Target/ARM/ARMFrameLowering.cpp
M llvm/lib/Target/ARM/ARMMachineFunctionInfo.h
R llvm/test/CodeGen/Thumb/remove-unneeded-push-pop.ll
A llvm/test/CodeGen/Thumb/stack-mis-alignment.ll
Log Message:
-----------
[ARM][ConstantIslands] Fix stack mis-alignment caused by undoLRSpillRestore.
Summary:
It is not safe for ARMConstantIslands to undoLRSpillRestore. PrologEpilogInserter is
the one to ensure stack alignment, taking into consideration LR is spilled or not.
For noreturn function with StackAlignment 8 (function contains call/alloc),
undoLRSpillRestore cause stack be mis-aligned. Fixing stack alignment in
ARMConstantIslands doesn't give us much benefit, as undo LR spill/restore only
occur in large function with near branches only, also doesn't have callee-saved LR spill.
Reviewers: t.p.northover, rengolin, efriedma, apazos, samparker, ostannard
Reviewed By: ostannard
Subscribers: dmgreen, ostannard, kristof.beyls, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D75288
More information about the All-commits
mailing list