@@ -2090,6 +2090,12 @@ SDValue SelectionDAG::getTargetExternalSymbol(const char *Sym, EVT VT,
20902090 return SDValue(N, 0);
20912091}
20922092
2093+ SDValue SelectionDAG::getTargetExternalSymbol(RTLIB::LibcallImpl Libcall,
2094+ EVT VT, unsigned TargetFlags) {
2095+ StringRef SymName = TLI->getLibcallImplName(Libcall);
2096+ return getTargetExternalSymbol(SymName.data(), VT, TargetFlags);
2097+ }
2098+
20932099SDValue SelectionDAG::getCondCode(ISD::CondCode Cond) {
20942100 if ((unsigned)Cond >= CondCodeNodes.size())
20952101 CondCodeNodes.resize(Cond+1);
@@ -9122,14 +9128,13 @@ SelectionDAG::getMemcmp(SDValue Chain, const SDLoc &dl, SDValue Mem0,
91229128 bool IsTailCall =
91239129 isInTailCallPositionWrapper(CI, this, /*AllowReturnsFirstArg*/ true);
91249130
9125- StringRef LibCallName = TLI->getLibcallImplName(MemcmpImpl);
91269131 CLI.setDebugLoc(dl)
91279132 .setChain(Chain)
9128- .setLibCallee(TLI->getLibcallImplCallingConv(MemcmpImpl),
9129- Type::getInt32Ty(*getContext() ),
9130- getExternalSymbol(LibCallName.data( ),
9131- TLI->getPointerTy(getDataLayout())),
9132- std::move(Args))
9133+ .setLibCallee(
9134+ TLI->getLibcallImplCallingConv(MemcmpImpl ),
9135+ Type::getInt32Ty(*getContext() ),
9136+ getExternalSymbol(MemcmpImpl, TLI->getPointerTy(getDataLayout())),
9137+ std::move(Args))
91339138 .setTailCall(IsTailCall);
91349139
91359140 return TLI->LowerCallTo(CLI);
@@ -9150,15 +9155,13 @@ std::pair<SDValue, SDValue> SelectionDAG::getStrlen(SDValue Chain,
91509155 TargetLowering::CallLoweringInfo CLI(*this);
91519156 bool IsTailCall =
91529157 isInTailCallPositionWrapper(CI, this, /*AllowReturnsFirstArg*/ true);
9153- StringRef LibcallName = TLI->getLibcallImplName(StrlenImpl);
91549158
91559159 CLI.setDebugLoc(dl)
91569160 .setChain(Chain)
9157- .setLibCallee(
9158- TLI->getLibcallImplCallingConv(StrlenImpl), CI->getType(),
9159- getExternalSymbol(LibcallName.data(),
9160- TLI->getProgramPointerTy(getDataLayout())),
9161- std::move(Args))
9161+ .setLibCallee(TLI->getLibcallImplCallingConv(StrlenImpl), CI->getType(),
9162+ getExternalSymbol(
9163+ StrlenImpl, TLI->getProgramPointerTy(getDataLayout())),
9164+ std::move(Args))
91629165 .setTailCall(IsTailCall);
91639166
91649167 return TLI->LowerCallTo(CLI);
@@ -9236,8 +9239,7 @@ SDValue SelectionDAG::getMemcpy(
92369239 .setLibCallee(
92379240 TLI->getLibcallImplCallingConv(MemCpyImpl),
92389241 Dst.getValueType().getTypeForEVT(*getContext()),
9239- getExternalSymbol(TLI->getLibcallImplName(MemCpyImpl).data(),
9240- TLI->getPointerTy(getDataLayout())),
9242+ getExternalSymbol(MemCpyImpl, TLI->getPointerTy(getDataLayout())),
92419243 std::move(Args))
92429244 .setDiscardResult()
92439245 .setTailCall(IsTailCall);
@@ -9271,8 +9273,7 @@ SDValue SelectionDAG::getAtomicMemcpy(SDValue Chain, const SDLoc &dl,
92719273 .setLibCallee(
92729274 TLI->getLibcallImplCallingConv(LibcallImpl),
92739275 Type::getVoidTy(*getContext()),
9274- getExternalSymbol(TLI->getLibcallImplName(LibcallImpl).data(),
9275- TLI->getPointerTy(getDataLayout())),
9276+ getExternalSymbol(LibcallImpl, TLI->getPointerTy(getDataLayout())),
92769277 std::move(Args))
92779278 .setDiscardResult()
92789279 .setTailCall(isTailCall);
@@ -9344,8 +9345,7 @@ SDValue SelectionDAG::getMemmove(SDValue Chain, const SDLoc &dl, SDValue Dst,
93449345 .setLibCallee(
93459346 TLI->getLibcallImplCallingConv(MemmoveImpl),
93469347 Dst.getValueType().getTypeForEVT(*getContext()),
9347- getExternalSymbol(TLI->getLibcallImplName(MemmoveImpl).data(),
9348- TLI->getPointerTy(getDataLayout())),
9348+ getExternalSymbol(MemmoveImpl, TLI->getPointerTy(getDataLayout())),
93499349 std::move(Args))
93509350 .setDiscardResult()
93519351 .setTailCall(IsTailCall);
@@ -9379,8 +9379,7 @@ SDValue SelectionDAG::getAtomicMemmove(SDValue Chain, const SDLoc &dl,
93799379 .setLibCallee(
93809380 TLI->getLibcallImplCallingConv(LibcallImpl),
93819381 Type::getVoidTy(*getContext()),
9382- getExternalSymbol(TLI->getLibcallImplName(LibcallImpl).data(),
9383- TLI->getPointerTy(getDataLayout())),
9382+ getExternalSymbol(LibcallImpl, TLI->getPointerTy(getDataLayout())),
93849383 std::move(Args))
93859384 .setDiscardResult()
93869385 .setTailCall(isTailCall);
@@ -9452,22 +9451,18 @@ SDValue SelectionDAG::getMemset(SDValue Chain, const SDLoc &dl, SDValue Dst,
94529451 Args.emplace_back(Size, DL.getIntPtrType(Ctx));
94539452 CLI.setLibCallee(
94549453 TLI->getLibcallImplCallingConv(BzeroImpl), Type::getVoidTy(Ctx),
9455- getExternalSymbol(TLI->getLibcallImplName(BzeroImpl).data(),
9456- TLI->getPointerTy(DL)),
9457- std::move(Args));
9454+ getExternalSymbol(BzeroImpl, TLI->getPointerTy(DL)), std::move(Args));
94589455 } else {
94599456 RTLIB::LibcallImpl MemsetImpl = TLI->getLibcallImpl(RTLIB::MEMSET);
94609457
94619458 TargetLowering::ArgListTy Args;
94629459 Args.emplace_back(Dst, PointerType::getUnqual(Ctx));
94639460 Args.emplace_back(Src, Src.getValueType().getTypeForEVT(Ctx));
94649461 Args.emplace_back(Size, DL.getIntPtrType(Ctx));
9465- CLI.setLibCallee(
9466- TLI->getLibcallImplCallingConv(MemsetImpl),
9467- Dst.getValueType().getTypeForEVT(Ctx),
9468- getExternalSymbol(TLI->getLibcallImplName(MemsetImpl).data(),
9469- TLI->getPointerTy(DL)),
9470- std::move(Args));
9462+ CLI.setLibCallee(TLI->getLibcallImplCallingConv(MemsetImpl),
9463+ Dst.getValueType().getTypeForEVT(Ctx),
9464+ getExternalSymbol(MemsetImpl, TLI->getPointerTy(DL)),
9465+ std::move(Args));
94719466 }
94729467
94739468 RTLIB::LibcallImpl MemsetImpl = TLI->getLibcallImpl(RTLIB::MEMSET);
@@ -9509,8 +9504,7 @@ SDValue SelectionDAG::getAtomicMemset(SDValue Chain, const SDLoc &dl,
95099504 .setLibCallee(
95109505 TLI->getLibcallImplCallingConv(LibcallImpl),
95119506 Type::getVoidTy(*getContext()),
9512- getExternalSymbol(TLI->getLibcallImplName(LibcallImpl).data(),
9513- TLI->getPointerTy(getDataLayout())),
9507+ getExternalSymbol(LibcallImpl, TLI->getPointerTy(getDataLayout())),
95149508 std::move(Args))
95159509 .setDiscardResult()
95169510 .setTailCall(isTailCall);
@@ -14244,8 +14238,7 @@ SDValue SelectionDAG::makeStateFunctionCall(unsigned LibFunc, SDValue Ptr,
1424414238 reportFatalUsageError("emitting call to unsupported libcall");
1424514239
1424614240 SDValue Callee =
14247- getExternalSymbol(TLI->getLibcallImplName(LibcallImpl).data(),
14248- TLI->getPointerTy(getDataLayout()));
14241+ getExternalSymbol(LibcallImpl, TLI->getPointerTy(getDataLayout()));
1424914242 TargetLowering::CallLoweringInfo CLI(*this);
1425014243 CLI.setDebugLoc(DLoc).setChain(InChain).setLibCallee(
1425114244 TLI->getLibcallImplCallingConv(LibcallImpl),
0 commit comments