Lines Matching refs:TLI
382 Value *DstLen = emitStrLen(Dst, B, DL, TLI); in emitStrLenMemCpy()
487 unsigned IntBits = TLI->getIntSize(); in optimizeStrChr()
491 unsigned SizeTBits = TLI->getSizeTSize(*CI->getModule()); in optimizeStrChr()
496 DL, TLI)); in optimizeStrChr()
512 if (Value *StrLen = emitStrLen(SrcStr, B, DL, TLI)) in optimizeStrChr()
539 return copyFlags(*CI, emitStrChr(SrcStr, '\0', B, TLI)); in optimizeStrRChr()
543 unsigned SizeTBits = TLI->getSizeTSize(*CI->getModule()); in optimizeStrRChr()
550 return copyFlags(*CI, emitMemRChr(SrcStr, CharVal, Size, B, DL, TLI)); in optimizeStrRChr()
588 B, DL, TLI)); in optimizeStrCmp()
598 B, DL, TLI)); in optimizeStrCmp()
605 B, DL, TLI)); in optimizeStrCmp()
638 return copyFlags(*CI, emitMemCmp(Str1P, Str2P, Size, B, DL, TLI)); in optimizeStrNCmp()
676 B, DL, TLI)); in optimizeStrNCmp()
684 B, DL, TLI)); in optimizeStrNCmp()
697 return copyFlags(*CI, emitStrDup(Src, B, TLI)); in optimizeStrNDup()
731 return copyFlags(*CI, emitStrCpy(Dst, Src, B, TLI)); in optimizeStpCpy()
734 Value *StrLen = emitStrLen(Src, B, DL, TLI); in optimizeStpCpy()
783 return copyFlags(*CI, emitStrLen(Src, B, DL, TLI)); in optimizeStrLCpy()
1066 unsigned WCharSize = TLI->getWCharSize(M) * 8; in optimizeWcslen()
1096 return copyFlags(*CI, emitStrChr(CI->getArgOperand(0), S2[0], B, TLI)); in optimizeStrPBrk()
1152 return copyFlags(*CI, emitStrLen(CI->getArgOperand(0), B, DL, TLI)); in optimizeStrCSpn()
1164 Value *StrLen = emitStrLen(CI->getArgOperand(1), B, DL, TLI); in optimizeStrStr()
1168 StrLen, B, DL, TLI); in optimizeStrStr()
1204 return emitStrChr(CI->getArgOperand(0), ToFindStr[0], B, TLI); in optimizeStrStr()
1608 if (isLibFuncEmittable(M, TLI, LibFunc_bcmp) && in optimizeMemCmp()
1613 return copyFlags(*CI, emitBCmp(LHS, RHS, Size, B, DL, TLI)); in optimizeMemCmp()
1717 return copyFlags(*CI, emitMalloc(CI->getArgOperand(1), B, DL, TLI)); in optimizeRealloc()
1752 return emitHotColdNew(CI->getArgOperand(0), B, TLI, in optimizeNew()
1757 return emitHotColdNew(CI->getArgOperand(0), B, TLI, in optimizeNew()
1762 return emitHotColdNew(CI->getArgOperand(0), B, TLI, in optimizeNew()
1767 return emitHotColdNew(CI->getArgOperand(0), B, TLI, in optimizeNew()
1773 CI->getArgOperand(0), CI->getArgOperand(1), B, TLI, in optimizeNew()
1779 CI->getArgOperand(0), CI->getArgOperand(1), B, TLI, in optimizeNew()
1785 CI->getArgOperand(0), CI->getArgOperand(1), B, TLI, in optimizeNew()
1791 CI->getArgOperand(0), CI->getArgOperand(1), B, TLI, in optimizeNew()
1797 CI->getArgOperand(0), CI->getArgOperand(1), B, TLI, in optimizeNew()
1803 CI->getArgOperand(0), CI->getArgOperand(1), B, TLI, in optimizeNew()
1809 CI->getArgOperand(0), CI->getArgOperand(1), B, TLI, in optimizeNew()
1815 CI->getArgOperand(0), CI->getArgOperand(1), B, TLI, in optimizeNew()
1822 TLI, LibFunc_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t, in optimizeNew()
1829 TLI, LibFunc_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t, in optimizeNew()
1836 TLI, LibFunc_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t, in optimizeNew()
1843 TLI, LibFunc_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t, in optimizeNew()
1888 bool isBinary, const TargetLibraryInfo *TLI, in optimizeDoubleFP() argument
1939 R = isBinary ? emitBinaryFloatFnCall(V[0], V[1], TLI, CalleeName, B, in optimizeDoubleFP()
1941 : emitUnaryFloatFnCall(V[0], TLI, CalleeName, B, CalleeAttrs); in optimizeDoubleFP()
1948 const TargetLibraryInfo *TLI, in optimizeUnaryDoubleFP() argument
1950 return optimizeDoubleFP(CI, B, false, TLI, isPrecise); in optimizeUnaryDoubleFP()
1955 const TargetLibraryInfo *TLI, in optimizeBinaryDoubleFP() argument
1957 return optimizeDoubleFP(CI, B, true, TLI, isPrecise); in optimizeBinaryDoubleFP()
2064 if (CalleeFn && TLI->getLibFunc(CalleeFn->getName(), LibFn) && in replacePowWithExp()
2065 isLibFuncEmittable(M, TLI, LibFn)) { in replacePowWithExp()
2077 ExpName = TLI->getName(LibFunc_exp); in replacePowWithExp()
2086 ExpName = TLI->getName(LibFunc_exp2); in replacePowWithExp()
2098 : emitUnaryFloatFnCall(FMul, TLI, LibFnDouble, LibFnFloat, in replacePowWithExp()
2125 hasFloatFn(M, TLI, Ty, LibFunc_ldexp, LibFunc_ldexpf, LibFunc_ldexpl))) { in replacePowWithExp()
2129 if (Value *ExpoI = getIntToFPVal(Expo, B, TLI->getIntSize())) { in replacePowWithExp()
2139 One, ExpoI, TLI, LibFunc_ldexp, LibFunc_ldexpf, in replacePowWithExp()
2145 if (hasFloatFn(M, TLI, Ty, LibFunc_exp2, LibFunc_exp2f, LibFunc_exp2l)) { in replacePowWithExp()
2162 return copyFlags(*Pow, emitUnaryFloatFnCall(FMul, TLI, LibFunc_exp2, in replacePowWithExp()
2170 hasFloatFn(M, TLI, Ty, LibFunc_exp10, LibFunc_exp10f, LibFunc_exp10l)) { in replacePowWithExp()
2178 return copyFlags(*Pow, emitUnaryFloatFnCall(Expo, TLI, LibFunc_exp10, in replacePowWithExp()
2202 else if (hasFloatFn(M, TLI, Ty, LibFunc_exp2, LibFunc_exp2f, in replacePowWithExp()
2204 return copyFlags(*Pow, emitUnaryFloatFnCall(FMul, TLI, LibFunc_exp2, in replacePowWithExp()
2215 const TargetLibraryInfo *TLI) { in getSqrtCall() argument
2221 if (hasFloatFn(M, TLI, V->getType(), LibFunc_sqrt, LibFunc_sqrtf, in getSqrtCall()
2226 return emitUnaryFloatFnCall(V, TLI, LibFunc_sqrt, LibFunc_sqrtf, in getSqrtCall()
2254 SimplifyQuery(DL, TLI, /*DT=*/nullptr, AC, Pow))) in replacePowWithSqrt()
2258 TLI); in replacePowWithSqrt()
2362 B, TLI); in optimizePow()
2369 APSInt IntExpo(TLI->getIntSize(), /*isUnsigned=*/false); in optimizePow()
2376 Base, ConstantInt::get(B.getIntNTy(TLI->getIntSize()), IntExpo), in optimizePow()
2388 if (Value *ExpoI = getIntToFPVal(Expo, B, TLI->getIntSize())) in optimizePow()
2394 if (UnsafeFPShrink && Name == TLI->getName(LibFunc_pow) && in optimizePow()
2396 if (Value *Shrunk = optimizeBinaryDoubleFP(Pow, B, TLI, true)) in optimizePow()
2408 if (UnsafeFPShrink && Name == TLI->getName(LibFunc_exp2) && in optimizeExp2()
2410 Ret = optimizeUnaryDoubleFP(CI, B, TLI, true); in optimizeExp2()
2429 hasFloatFn(M, TLI, Ty, LibFunc_ldexp, LibFunc_ldexpf, LibFunc_ldexpl))) { in optimizeExp2()
2430 if (Value *Exp = getIntToFPVal(Op, B, TLI->getIntSize())) { in optimizeExp2()
2442 One, Exp, TLI, LibFunc_ldexp, LibFunc_ldexpf, in optimizeExp2()
2458 if (Value *Ret = optimizeBinaryDoubleFP(CI, B, TLI)) in optimizeFMinFMax()
2488 Ret = optimizeUnaryDoubleFP(Log, B, TLI, true); in optimizeLog()
2498 if (TLI->getLibFunc(LogNm, LogLb)) in optimizeLog()
2588 TLI->getLibFunc(*Arg, ArgLb); in optimizeLog()
2596 : emitUnaryFloatFnCall(Arg->getOperand(0), TLI, LogNm, B, NoAttrs); in optimizeLog()
2622 : emitUnaryFloatFnCall(Eul, TLI, LogNm, B, NoAttrs); in optimizeLog()
2644 TLI->getLibFunc(*Arg, ArgLb); in mergeSqrtToExp()
2648 if (TLI->getLibFunc(SqrtFn->getName(), SqrtLb)) in mergeSqrtToExp()
2704 if (isLibFuncEmittable(M, TLI, LibFunc_sqrtf) && in optimizeSqrt()
2707 Ret = optimizeUnaryDoubleFP(CI, B, TLI, true); in optimizeSqrt()
2778 Ret = optimizeUnaryDoubleFP(CI, B, TLI, true); in optimizeTrigInversionPairs()
2796 if (F && TLI->getLibFunc(F->getName(), Func) && in optimizeTrigInversionPairs()
2797 isLibFuncEmittable(M, TLI, Func)) { in optimizeTrigInversionPairs()
2830 Value *&SinCos, const TargetLibraryInfo *TLI) { in insertSinCosCall() argument
2851 if (!isLibFuncEmittable(M, TLI, Name)) in insertSinCosCall()
2854 TLI->getLibFunc(Name, TheLibFunc); in insertSinCosCall()
2856 M, *TLI, TheLibFunc, OrigCallee->getAttributes(), ResTy, ArgTy); in insertSinCosCall()
2967 SinCos, TLI)) in optimizeSinCosPi()
2999 if (!Callee || !TLI->getLibFunc(*Callee, Func) || in classifyArgUse()
3000 !isLibFuncEmittable(M, TLI, Func) || in classifyArgUse()
3187 return copyFlags(*CI, emitPutChar(IntChar, B, TLI)); in optimizePrintFString()
3204 return copyFlags(*CI, emitPutChar(IntChar, B, TLI)); in optimizePrintFString()
3210 return copyFlags(*CI, emitPutS(GV, B, TLI)); in optimizePrintFString()
3222 return copyFlags(*CI, emitPutS(GV, B, TLI)); in optimizePrintFString()
3232 return copyFlags(*CI, emitPutChar(IntChar, B, TLI)); in optimizePrintFString()
3238 return copyFlags(*CI, emitPutS(CI->getArgOperand(1), B, TLI)); in optimizePrintFString()
3255 if (isLibFuncEmittable(M, TLI, LibFunc_iprintf) && in optimizePrintF()
3257 FunctionCallee IPrintFFn = getOrInsertLibFunc(M, *TLI, LibFunc_iprintf, FT, in optimizePrintF()
3267 if (isLibFuncEmittable(M, TLI, LibFunc_small_printf) && in optimizePrintF()
3269 auto SmallPrintFFn = getOrInsertLibFunc(M, *TLI, LibFunc_small_printf, FT, in optimizePrintF()
3330 return copyFlags(*CI, emitStrCpy(Dest, CI->getArgOperand(2), B, TLI)); in optimizeSPrintFString()
3339 } else if (Value *V = emitStpCpy(Dest, CI->getArgOperand(2), B, TLI)) { in optimizeSPrintFString()
3351 Value *Len = emitStrLen(CI->getArgOperand(2), B, DL, TLI); in optimizeSPrintFString()
3376 if (isLibFuncEmittable(M, TLI, LibFunc_siprintf) && in optimizeSPrintF()
3378 FunctionCallee SIPrintFFn = getOrInsertLibFunc(M, *TLI, LibFunc_siprintf, in optimizeSPrintF()
3388 if (isLibFuncEmittable(M, TLI, LibFunc_small_sprintf) && in optimizeSPrintF()
3390 auto SmallSPrintFFn = getOrInsertLibFunc(M, *TLI, LibFunc_small_sprintf, FT, in optimizeSPrintF()
3411 unsigned IntBits = TLI->getIntSize(); in emitSnPrintfMemCpy()
3463 uint64_t IntMax = maxIntN(TLI->getIntSize()); in optimizeSnPrintFString()
3556 unsigned SizeTBits = TLI->getSizeTSize(*CI->getModule()); in optimizeFPrintFString()
3561 CI->getArgOperand(0), B, DL, TLI)); in optimizeFPrintFString()
3574 Type *IntTy = B.getIntNTy(TLI->getIntSize()); in optimizeFPrintFString()
3577 return copyFlags(*CI, emitFPutC(V, CI->getArgOperand(0), B, TLI)); in optimizeFPrintFString()
3585 *CI, emitFPutS(CI->getArgOperand(2), CI->getArgOperand(0), B, TLI)); in optimizeFPrintFString()
3600 if (isLibFuncEmittable(M, TLI, LibFunc_fiprintf) && in optimizeFPrintF()
3602 FunctionCallee FIPrintFFn = getOrInsertLibFunc(M, *TLI, LibFunc_fiprintf, in optimizeFPrintF()
3612 if (isLibFuncEmittable(M, TLI, LibFunc_small_fprintf) && in optimizeFPrintF()
3615 getOrInsertLibFunc(M, *TLI, LibFunc_small_fprintf, FT, in optimizeFPrintF()
3643 Type *IntTy = B.getIntNTy(TLI->getIntSize()); in optimizeFWrite()
3645 Value *NewCI = emitFPutC(Cast, CI->getArgOperand(3), B, TLI); in optimizeFWrite()
3674 unsigned SizeTBits = TLI->getSizeTSize(*CI->getModule()); in optimizeFPuts()
3680 CI->getArgOperand(1), B, DL, TLI)); in optimizeFPuts()
3695 return copyFlags(*CI, emitPutChar(ConstantInt::get(IntTy, '\n'), B, TLI)); in optimizePuts()
3711 return isLibFuncEmittable(M, TLI, FloatFuncName); in hasFloatVersion()
3720 if (TLI->getLibFunc(*Callee, Func) && isLibFuncEmittable(M, TLI, Func)) { in optimizeStringMemoryLibCall()
3912 return optimizeUnaryDoubleFP(CI, Builder, TLI, true); in optimizeFloatingPointLibCall()
3916 return optimizeBinaryDoubleFP(CI, Builder, TLI); in optimizeFloatingPointLibCall()
3996 if (TLI->getLibFunc(*Callee, Func) && isLibFuncEmittable(M, TLI, Func)) { in optimizeCall()
4060 const DataLayout &DL, const TargetLibraryInfo *TLI, AssumptionCache *AC, in LibCallSimplifier() argument
4065 : FortifiedSimplifier(TLI), DL(DL), TLI(TLI), AC(AC), ORE(ORE), BFI(BFI), in LibCallSimplifier()
4194 CI->getArgOperand(2), B, DL, TLI)) { in optimizeMemPCpyChk()
4209 Value *StrLen = emitStrLen(Src, B, DL, TLI); in optimizeStrpCpyChk()
4220 return copyFlags(*CI, emitStrCpy(Dst, Src, B, TLI)); in optimizeStrpCpyChk()
4222 return copyFlags(*CI, emitStpCpy(Dst, Src, B, TLI)); in optimizeStrpCpyChk()
4235 unsigned SizeTBits = TLI->getSizeTSize(*CI->getModule()); in optimizeStrpCpyChk()
4238 Value *Ret = emitMemCpyChk(Dst, Src, LenV, ObjSize, B, DL, TLI); in optimizeStrpCpyChk()
4251 CI->getDataLayout(), TLI)); in optimizeStrLenChk()
4262 CI->getArgOperand(2), B, TLI)); in optimizeStrpNCpyChk()
4266 CI->getArgOperand(2), B, TLI)); in optimizeStrpNCpyChk()
4277 CI->getArgOperand(2), CI->getArgOperand(3), B, TLI)); in optimizeMemCCpyChk()
4288 CI->getArgOperand(4), VariadicArgs, B, TLI)); in optimizeSNPrintfChk()
4300 VariadicArgs, B, TLI)); in optimizeSPrintfChk()
4310 *CI, emitStrCat(CI->getArgOperand(0), CI->getArgOperand(1), B, TLI)); in optimizeStrCatChk()
4320 CI->getArgOperand(2), B, TLI)); in optimizeStrLCat()
4330 CI->getArgOperand(2), B, TLI)); in optimizeStrNCatChk()
4340 CI->getArgOperand(2), B, TLI)); in optimizeStrLCpyChk()
4350 CI->getArgOperand(4), CI->getArgOperand(5), B, TLI)); in optimizeVSNPrintfChk()
4360 CI->getArgOperand(4), B, TLI)); in optimizeVSPrintfChk()
4392 if (!TLI->getLibFunc(*Callee, Func)) in optimizeCall()
4441 const TargetLibraryInfo *TLI, bool OnlyLowerUnknownSize) in FortifiedLibCallSimplifier() argument
4442 : TLI(TLI), OnlyLowerUnknownSize(OnlyLowerUnknownSize) {} in FortifiedLibCallSimplifier()