diff options
author | Hal Finkel <hfinkel@anl.gov> | 2014-12-23 09:45:06 +0000 |
---|---|---|
committer | Hal Finkel <hfinkel@anl.gov> | 2014-12-23 09:45:06 +0000 |
commit | 6e27c6d4501c00fbe363c7d1fc7fd79344c8a8fb (patch) | |
tree | 4107a42351026ad52fcff015c7371273bcaf4e20 /llvm/lib | |
parent | 3121449f0bccb61920568efd9bc60023ff3eb93e (diff) | |
download | bcm5719-llvm-6e27c6d4501c00fbe363c7d1fc7fd79344c8a8fb.tar.gz bcm5719-llvm-6e27c6d4501c00fbe363c7d1fc7fd79344c8a8fb.zip |
[PowerPC] Don't mark the return-address slot as immutable
It is tempting to mark the fixed stack slot used to store the return address as
immutable when lowering @llvm.returnaddress(i32 0). Unfortunately, within the
function, it is not completely immutable: it is written during the function
prologue. When using post-RA instruction scheduling, the prologue instructions
are available for scheduling, and we're not free to interchange the order of a
particular store in the prologue with loads from that stack location.
Fixes PR21976.
llvm-svn: 224761
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/PowerPC/PPCISelLowering.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp index 18384627ced..06cf9af80b6 100644 --- a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp +++ b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp @@ -5164,7 +5164,7 @@ PPCTargetLowering::getReturnAddrFrameIndex(SelectionDAG & DAG) const { // Find out what the fix offset of the frame pointer save area. int LROffset = PPCFrameLowering::getReturnSaveOffset(isPPC64, isDarwinABI); // Allocate the frame index for frame pointer save area. - RASI = MF.getFrameInfo()->CreateFixedObject(isPPC64? 8 : 4, LROffset, true); + RASI = MF.getFrameInfo()->CreateFixedObject(isPPC64? 8 : 4, LROffset, false); // Save the result. FI->setReturnAddrSaveIndex(RASI); } |