mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-22 23:24:59 +00:00
Stack Alignment: when creating stack objects in MachineFrameInfo, make sure
the alignment is clamped to TargetFrameLowering.getStackAlignment if the target does not support stack realignment or the option "realign-stack" is off. This will cause miscompile if the address is treated as aligned and add is replaced with or in DAGCombine. Added a bool StackRealignable to TargetFrameLowering to check whether stack realignment is implemented for the target. Also added a bool RealignOption to MachineFrameInfo to check whether the option "realign-stack" is on. rdar://12713765 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169197 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -221,8 +221,11 @@ class MachineFrameInfo {
|
||||
/// just allocate them normally.
|
||||
bool UseLocalStackAllocationBlock;
|
||||
|
||||
/// Whether the "realign-stack" option is on.
|
||||
bool RealignOption;
|
||||
public:
|
||||
explicit MachineFrameInfo(const TargetFrameLowering &tfi) : TFI(tfi) {
|
||||
explicit MachineFrameInfo(const TargetFrameLowering &tfi, bool RealignOpt)
|
||||
: TFI(tfi), RealignOption(RealignOpt) {
|
||||
StackSize = NumFixedObjects = OffsetAdjustment = MaxAlignment = 0;
|
||||
HasVarSizedObjects = false;
|
||||
FrameAddressTaken = false;
|
||||
|
Reference in New Issue
Block a user