diff options
author | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2013-09-22 01:40:24 +0000 |
---|---|---|
committer | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2013-09-22 01:40:24 +0000 |
commit | ecd4965c133d16fc9e5a6ac393c5194b67cd53ab (patch) | |
tree | 745e4ca7a0f6d7d50b384af6ebe508cf89920b8c /lib/Target | |
parent | c12c8d754dcf7793d924c01517c9f6f297fdf6b4 (diff) | |
download | external_llvm-ecd4965c133d16fc9e5a6ac393c5194b67cd53ab.zip external_llvm-ecd4965c133d16fc9e5a6ac393c5194b67cd53ab.tar.gz external_llvm-ecd4965c133d16fc9e5a6ac393c5194b67cd53ab.tar.bz2 |
[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')
-rw-r--r-- | lib/Target/Sparc/SparcISelLowering.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Target/Sparc/SparcISelLowering.cpp b/lib/Target/Sparc/SparcISelLowering.cpp index 2260fe4..eb9896c 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); } |