Lines Matching refs:TLI

322   Value *DstLen = emitStrLen(Dst, B, DL, TLI);  in emitStrLenMemCpy()
434 DL, TLI)); in optimizeStrChr()
450 if (Value *StrLen = emitStrLen(SrcStr, B, DL, TLI)) in optimizeStrChr()
477 return copyFlags(*CI, emitStrChr(SrcStr, '\0', B, TLI)); in optimizeStrRChr()
486 return copyFlags(*CI, emitMemRChr(SrcStr, CharVal, Size, B, DL, TLI)); in optimizeStrRChr()
523 B, DL, TLI)); in optimizeStrCmp()
533 B, DL, TLI)); in optimizeStrCmp()
540 B, DL, TLI)); in optimizeStrCmp()
573 return copyFlags(*CI, emitMemCmp(Str1P, Str2P, Size, B, DL, TLI)); in optimizeStrNCmp()
610 B, DL, TLI)); in optimizeStrNCmp()
618 B, DL, TLI)); in optimizeStrNCmp()
631 return copyFlags(*CI, emitStrDup(Src, B, TLI)); in optimizeStrNDup()
667 return copyFlags(*CI, emitStrCpy(Dst, Src, B, TLI)); in optimizeStpCpy()
670 Value *StrLen = emitStrLen(Src, B, DL, TLI); in optimizeStpCpy()
894 unsigned WCharSize = TLI->getWCharSize(M) * 8; in optimizeWcslen()
924 return copyFlags(*CI, emitStrChr(CI->getArgOperand(0), S2[0], B, TLI)); in optimizeStrPBrk()
980 return copyFlags(*CI, emitStrLen(CI->getArgOperand(0), B, DL, TLI)); in optimizeStrCSpn()
992 Value *StrLen = emitStrLen(CI->getArgOperand(1), B, DL, TLI); in optimizeStrStr()
996 StrLen, B, DL, TLI); in optimizeStrStr()
1034 Value *StrChr = emitStrChr(CI->getArgOperand(0), ToFindStr[0], B, TLI); in optimizeStrStr()
1420 if (isLibFuncEmittable(M, TLI, LibFunc_bcmp) && in optimizeMemCmp()
1425 return copyFlags(*CI, emitBCmp(LHS, RHS, Size, B, DL, TLI)); in optimizeMemCmp()
1538 return copyFlags(*CI, emitMalloc(CI->getArgOperand(1), B, DL, TLI)); in optimizeRealloc()
1586 bool isBinary, const TargetLibraryInfo *TLI, in optimizeDoubleFP() argument
1637 R = isBinary ? emitBinaryFloatFnCall(V[0], V[1], TLI, CalleeName, B, in optimizeDoubleFP()
1639 : emitUnaryFloatFnCall(V[0], TLI, CalleeName, B, CalleeAttrs); in optimizeDoubleFP()
1646 const TargetLibraryInfo *TLI, in optimizeUnaryDoubleFP() argument
1648 return optimizeDoubleFP(CI, B, false, TLI, isPrecise); in optimizeUnaryDoubleFP()
1653 const TargetLibraryInfo *TLI, in optimizeBinaryDoubleFP() argument
1655 return optimizeDoubleFP(CI, B, true, TLI, isPrecise); in optimizeBinaryDoubleFP()
1774 TLI->getLibFunc(CalleeFn->getName(), LibFn) && in replacePowWithExp()
1775 isLibFuncEmittable(M, TLI, LibFn)) { in replacePowWithExp()
1785 ExpName = TLI->getName(LibFunc_exp); in replacePowWithExp()
1792 ExpName = TLI->getName(LibFunc_exp2); in replacePowWithExp()
1805 : emitUnaryFloatFnCall(FMul, TLI, LibFnDouble, LibFnFloat, in replacePowWithExp()
1827 hasFloatFn(M, TLI, Ty, LibFunc_ldexp, LibFunc_ldexpf, LibFunc_ldexpl)) { in replacePowWithExp()
1828 if (Value *ExpoI = getIntToFPVal(Expo, B, TLI->getIntSize())) in replacePowWithExp()
1831 TLI, LibFunc_ldexp, LibFunc_ldexpf, in replacePowWithExp()
1836 if (hasFloatFn(M, TLI, Ty, LibFunc_exp2, LibFunc_exp2f, LibFunc_exp2l)) { in replacePowWithExp()
1854 return copyFlags(*Pow, emitUnaryFloatFnCall(FMul, TLI, LibFunc_exp2, in replacePowWithExp()
1863 hasFloatFn(M, TLI, Ty, LibFunc_exp10, LibFunc_exp10f, LibFunc_exp10l)) in replacePowWithExp()
1864 return copyFlags(*Pow, emitUnaryFloatFnCall(Expo, TLI, LibFunc_exp10, in replacePowWithExp()
1888 else if (hasFloatFn(M, TLI, Ty, LibFunc_exp2, LibFunc_exp2f, in replacePowWithExp()
1890 return copyFlags(*Pow, emitUnaryFloatFnCall(FMul, TLI, LibFunc_exp2, in replacePowWithExp()
1901 const TargetLibraryInfo *TLI) { in getSqrtCall() argument
1910 if (hasFloatFn(M, TLI, V->getType(), LibFunc_sqrt, LibFunc_sqrtf, in getSqrtCall()
1915 return emitUnaryFloatFnCall(V, TLI, LibFunc_sqrt, LibFunc_sqrtf, in getSqrtCall()
1943 !isKnownNeverInfinity(Base, TLI)) in replacePowWithSqrt()
1946 Sqrt = getSqrtCall(Base, Attrs, Pow->doesNotAccessMemory(), Mod, B, TLI); in replacePowWithSqrt()
2053 Pow->doesNotAccessMemory(), M, B, TLI); in optimizePow()
2060 APSInt IntExpo(TLI->getIntSize(), /*isUnsigned=*/false); in optimizePow()
2067 Base, ConstantInt::get(B.getIntNTy(TLI->getIntSize()), IntExpo), in optimizePow()
2079 if (Value *ExpoI = getIntToFPVal(Expo, B, TLI->getIntSize())) in optimizePow()
2085 if (UnsafeFPShrink && Name == TLI->getName(LibFunc_pow) && in optimizePow()
2087 if (Value *Shrunk = optimizeBinaryDoubleFP(Pow, B, TLI, true)) in optimizePow()
2100 if (UnsafeFPShrink && Name == TLI->getName(LibFunc_exp2) && in optimizeExp2()
2102 Ret = optimizeUnaryDoubleFP(CI, B, TLI, true); in optimizeExp2()
2110 hasFloatFn(M, TLI, Ty, LibFunc_ldexp, LibFunc_ldexpf, LibFunc_ldexpl)) { in optimizeExp2()
2111 if (Value *Exp = getIntToFPVal(Op, B, TLI->getIntSize())) in optimizeExp2()
2112 return emitBinaryFloatFnCall(ConstantFP::get(Ty, 1.0), Exp, TLI, in optimizeExp2()
2128 if (Value *Ret = optimizeBinaryDoubleFP(CI, B, TLI)) in optimizeFMinFMax()
2160 Ret = optimizeUnaryDoubleFP(Log, B, TLI, true); in optimizeLog()
2170 if (TLI->getLibFunc(LogNm, LogLb)) in optimizeLog()
2260 TLI->getLibFunc(*Arg, ArgLb); in optimizeLog()
2268 : emitUnaryFloatFnCall(Arg->getOperand(0), TLI, LogNm, B, Attrs); in optimizeLog()
2291 : emitUnaryFloatFnCall(Eul, TLI, LogNm, B, Attrs); in optimizeLog()
2309 if (isLibFuncEmittable(M, TLI, LibFunc_sqrtf) && in optimizeSqrt()
2312 Ret = optimizeUnaryDoubleFP(CI, B, TLI, true); in optimizeSqrt()
2378 Ret = optimizeUnaryDoubleFP(CI, B, TLI, true); in optimizeTan()
2394 if (F && TLI->getLibFunc(F->getName(), Func) && in optimizeTan()
2395 isLibFuncEmittable(M, TLI, Func) && in optimizeTan()
2413 Value *&SinCos, const TargetLibraryInfo *TLI) { in insertSinCosCall() argument
2434 if (!isLibFuncEmittable(M, TLI, Name)) in insertSinCosCall()
2437 TLI->getLibFunc(Name, TheLibFunc); in insertSinCosCall()
2439 M, *TLI, TheLibFunc, OrigCallee->getAttributes(), ResTy, ArgTy); in insertSinCosCall()
2493 SinCos, TLI)) in optimizeSinCosPi()
2526 if (!Callee || !TLI->getLibFunc(*Callee, Func) || in classifyArgUse()
2527 !isLibFuncEmittable(M, TLI, Func) || in classifyArgUse()
2706 return copyFlags(*CI, emitPutChar(B.getInt32(FormatStr[0]), B, TLI)); in optimizePrintFString()
2718 return copyFlags(*CI, emitPutChar(B.getInt32(OperandStr[0]), B, TLI)); in optimizePrintFString()
2723 return copyFlags(*CI, emitPutS(GV, B, TLI)); in optimizePrintFString()
2735 return copyFlags(*CI, emitPutS(GV, B, TLI)); in optimizePrintFString()
2742 return copyFlags(*CI, emitPutChar(CI->getArgOperand(1), B, TLI)); in optimizePrintFString()
2747 return copyFlags(*CI, emitPutS(CI->getArgOperand(1), B, TLI)); in optimizePrintFString()
2762 if (isLibFuncEmittable(M, TLI, LibFunc_iprintf) && in optimizePrintF()
2764 FunctionCallee IPrintFFn = getOrInsertLibFunc(M, *TLI, LibFunc_iprintf, FT, in optimizePrintF()
2774 if (isLibFuncEmittable(M, TLI, LibFunc_small_printf) && in optimizePrintF()
2776 auto SmallPrintFFn = getOrInsertLibFunc(M, *TLI, LibFunc_small_printf, FT, in optimizePrintF()
2838 return copyFlags(*CI, emitStrCpy(Dest, CI->getArgOperand(2), B, TLI)); in optimizeSPrintFString()
2847 } else if (Value *V = emitStpCpy(Dest, CI->getArgOperand(2), B, TLI)) { in optimizeSPrintFString()
2862 Value *Len = emitStrLen(CI->getArgOperand(2), B, DL, TLI); in optimizeSPrintFString()
2885 if (isLibFuncEmittable(M, TLI, LibFunc_siprintf) && in optimizeSPrintF()
2887 FunctionCallee SIPrintFFn = getOrInsertLibFunc(M, *TLI, LibFunc_siprintf, in optimizeSPrintF()
2897 if (isLibFuncEmittable(M, TLI, LibFunc_small_sprintf) && in optimizeSPrintF()
2899 auto SmallSPrintFFn = getOrInsertLibFunc(M, *TLI, LibFunc_small_sprintf, FT, in optimizeSPrintF()
3028 CI->getArgOperand(0), B, DL, TLI)); in optimizeFPrintFString()
3042 *CI, emitFPutC(CI->getArgOperand(2), CI->getArgOperand(0), B, TLI)); in optimizeFPrintFString()
3050 *CI, emitFPutS(CI->getArgOperand(2), CI->getArgOperand(0), B, TLI)); in optimizeFPrintFString()
3065 if (isLibFuncEmittable(M, TLI, LibFunc_fiprintf) && in optimizeFPrintF()
3067 FunctionCallee FIPrintFFn = getOrInsertLibFunc(M, *TLI, LibFunc_fiprintf, in optimizeFPrintF()
3077 if (isLibFuncEmittable(M, TLI, LibFunc_small_fprintf) && in optimizeFPrintF()
3080 getOrInsertLibFunc(M, *TLI, LibFunc_small_fprintf, FT, in optimizeFPrintF()
3109 Value *NewCI = emitFPutC(Char, CI->getArgOperand(3), B, TLI); in optimizeFWrite()
3142 CI->getArgOperand(1), B, DL, TLI)); in optimizeFPuts()
3154 return copyFlags(*CI, emitPutChar(B.getInt32('\n'), B, TLI)); in optimizePuts()
3169 return isLibFuncEmittable(M, TLI, FloatFuncName); in hasFloatVersion()
3178 if (TLI->getLibFunc(*Callee, Func) && isLibFuncEmittable(M, TLI, Func)) { in optimizeStringMemoryLibCall()
3340 return optimizeUnaryDoubleFP(CI, Builder, TLI, true); in optimizeFloatingPointLibCall()
3344 return optimizeBinaryDoubleFP(CI, Builder, TLI); in optimizeFloatingPointLibCall()
3442 if (TLI->getLibFunc(*Callee, Func) && isLibFuncEmittable(M, TLI, Func)) { in optimizeCall()
3506 const DataLayout &DL, const TargetLibraryInfo *TLI, in LibCallSimplifier() argument
3511 : FortifiedSimplifier(TLI), DL(DL), TLI(TLI), ORE(ORE), BFI(BFI), PSI(PSI), in LibCallSimplifier()
3649 CI->getArgOperand(2), B, DL, TLI)) { in optimizeMemPCpyChk()
3667 Value *StrLen = emitStrLen(Src, B, DL, TLI); in optimizeStrpCpyChk()
3678 return copyFlags(*CI, emitStrCpy(Dst, Src, B, TLI)); in optimizeStrpCpyChk()
3680 return copyFlags(*CI, emitStpCpy(Dst, Src, B, TLI)); in optimizeStrpCpyChk()
3699 Value *Ret = emitMemCpyChk(Dst, Src, LenV, ObjSize, B, DL, TLI); in optimizeStrpCpyChk()
3712 CI->getModule()->getDataLayout(), TLI)); in optimizeStrLenChk()
3723 CI->getArgOperand(2), B, TLI)); in optimizeStrpNCpyChk()
3727 CI->getArgOperand(2), B, TLI)); in optimizeStrpNCpyChk()
3738 CI->getArgOperand(2), CI->getArgOperand(3), B, TLI)); in optimizeMemCCpyChk()
3749 CI->getArgOperand(4), VariadicArgs, B, TLI)); in optimizeSNPrintfChk()
3761 VariadicArgs, B, TLI)); in optimizeSPrintfChk()
3771 *CI, emitStrCat(CI->getArgOperand(0), CI->getArgOperand(1), B, TLI)); in optimizeStrCatChk()
3781 CI->getArgOperand(2), B, TLI)); in optimizeStrLCat()
3791 CI->getArgOperand(2), B, TLI)); in optimizeStrNCatChk()
3801 CI->getArgOperand(2), B, TLI)); in optimizeStrLCpyChk()
3811 CI->getArgOperand(4), CI->getArgOperand(5), B, TLI)); in optimizeVSNPrintfChk()
3821 CI->getArgOperand(4), B, TLI)); in optimizeVSPrintfChk()
3853 if (!TLI->getLibFunc(*Callee, Func)) in optimizeCall()
3902 const TargetLibraryInfo *TLI, bool OnlyLowerUnknownSize) in FortifiedLibCallSimplifier() argument
3903 : TLI(TLI), OnlyLowerUnknownSize(OnlyLowerUnknownSize) {} in FortifiedLibCallSimplifier()