summaryrefslogtreecommitdiff
path: root/lib/Target/Sparc
diff options
context:
space:
mode:
authorVenkatraman Govindaraju <venkatra@cs.wisc.edu>2013-09-22 01:40:24 +0000
committerVenkatraman Govindaraju <venkatra@cs.wisc.edu>2013-09-22 01:40:24 +0000
commitecd4965c133d16fc9e5a6ac393c5194b67cd53ab (patch)
tree745e4ca7a0f6d7d50b384af6ebe508cf89920b8c /lib/Target/Sparc
parentc12c8d754dcf7793d924c01517c9f6f297fdf6b4 (diff)
downloadllvm-ecd4965c133d16fc9e5a6ac393c5194b67cd53ab.tar.gz
llvm-ecd4965c133d16fc9e5a6ac393c5194b67cd53ab.tar.bz2
llvm-ecd4965c133d16fc9e5a6ac393c5194b67cd53ab.tar.xz
[SPARC] Make functions with GLOBAL_OFFSET_TABLE access as non-leaf functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191160 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Sparc')
-rw-r--r--lib/Target/Sparc/SparcISelLowering.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Target/Sparc/SparcISelLowering.cpp b/lib/Target/Sparc/SparcISelLowering.cpp
index 2260fe48b3..eb9896c1f5 100644
--- a/lib/Target/Sparc/SparcISelLowering.cpp
+++ b/lib/Target/Sparc/SparcISelLowering.cpp
@@ -1651,6 +1651,10 @@ SDValue SparcTargetLowering::makeAddress(SDValue Op, SelectionDAG &DAG) const {
SDValue HiLo = makeHiLoPair(Op, SPII::MO_HI, SPII::MO_LO, DAG);
SDValue GlobalBase = DAG.getNode(SPISD::GLOBAL_BASE_REG, DL, VT);
SDValue AbsAddr = DAG.getNode(ISD::ADD, DL, VT, GlobalBase, HiLo);
+ // GLOBAL_BASE_REG codegen'ed with call. Inform MFI that this
+ // function has calls.
+ MachineFrameInfo *MFI = DAG.getMachineFunction().getFrameInfo();
+ MFI->setHasCalls(true);
return DAG.getLoad(VT, DL, DAG.getEntryNode(), AbsAddr,
MachinePointerInfo::getGOT(), false, false, false, 0);
}