@@ -2127,8 +2127,9 @@ SelectionDAGLegalize::ExpandLibCall(RTLIB::Libcall LC, SDNode *Node,
21272127 bool IsSigned, EVT RetVT) {
21282128 EVT CodePtrTy = TLI.getPointerTy (DAG.getDataLayout ());
21292129 SDValue Callee;
2130- if (const char *LibcallName = TLI.getLibcallName (LC))
2131- Callee = DAG.getExternalSymbol (LibcallName, CodePtrTy);
2130+ RTLIB::LibcallImpl LCImpl = TLI.getLibcallImpl (LC);
2131+ if (LCImpl != RTLIB::Unsupported)
2132+ Callee = DAG.getExternalSymbol (LCImpl, CodePtrTy);
21322133 else {
21332134 Callee = DAG.getPOISON (CodePtrTy);
21342135 DAG.getContext ()->emitError (Twine (" no libcall available for " ) +
@@ -2157,7 +2158,7 @@ SelectionDAGLegalize::ExpandLibCall(RTLIB::Libcall LC, SDNode *Node,
21572158 bool signExtend = TLI.shouldSignExtendTypeInLibCall (RetTy, IsSigned);
21582159 CLI.setDebugLoc (SDLoc (Node))
21592160 .setChain (InChain)
2160- .setLibCallee (TLI.getLibcallCallingConv (LC ), RetTy, Callee,
2161+ .setLibCallee (TLI.getLibcallImplCallingConv (LCImpl ), RetTy, Callee,
21612162 std::move (Args))
21622163 .setTailCall (isTailCall)
21632164 .setSExtResult (signExtend)
@@ -2392,8 +2393,7 @@ SelectionDAGLegalize::ExpandDivRemLibCall(SDNode *Node,
23922393 }
23932394
23942395 SDValue Callee =
2395- DAG.getExternalSymbol (TLI.getLibcallImplName (LibcallImpl).data (),
2396- TLI.getPointerTy (DAG.getDataLayout ()));
2396+ DAG.getExternalSymbol (LibcallImpl, TLI.getPointerTy (DAG.getDataLayout ()));
23972397
23982398 SDLoc dl (Node);
23992399 TargetLowering::CallLoweringInfo CLI (DAG);
@@ -2461,10 +2461,9 @@ SDValue SelectionDAGLegalize::ExpandSincosStretLibCall(SDNode *Node) const {
24612461
24622462 Type *SincosStretRetTy = FuncTy->getReturnType ();
24632463 CallingConv::ID CallConv = CallsInfo.getLibcallImplCallingConv (SincosStret);
2464- StringRef LibcallImplName = CallsInfo.getLibcallImplName (SincosStret);
24652464
2466- SDValue Callee = DAG. getExternalSymbol (LibcallImplName. data (),
2467- TLI.getProgramPointerTy (DL));
2465+ SDValue Callee =
2466+ DAG. getExternalSymbol (SincosStret, TLI.getProgramPointerTy (DL));
24682467
24692468 TargetLowering::ArgListTy Args;
24702469 SDValue SRet;
0 commit comments