Lines Matching refs:TLI
373 Value *DstLen = emitStrLen(Dst, B, DL, TLI); in emitStrLenMemCpy()
478 unsigned IntBits = TLI->getIntSize(); in optimizeStrChr()
482 unsigned SizeTBits = TLI->getSizeTSize(*CI->getModule()); in optimizeStrChr()
487 DL, TLI)); in optimizeStrChr()
503 if (Value *StrLen = emitStrLen(SrcStr, B, DL, TLI)) in optimizeStrChr()
530 return copyFlags(*CI, emitStrChr(SrcStr, '\0', B, TLI)); in optimizeStrRChr()
534 unsigned SizeTBits = TLI->getSizeTSize(*CI->getModule()); in optimizeStrRChr()
541 return copyFlags(*CI, emitMemRChr(SrcStr, CharVal, Size, B, DL, TLI)); in optimizeStrRChr()
579 B, DL, TLI)); in optimizeStrCmp()
589 B, DL, TLI)); in optimizeStrCmp()
596 B, DL, TLI)); in optimizeStrCmp()
629 return copyFlags(*CI, emitMemCmp(Str1P, Str2P, Size, B, DL, TLI)); in optimizeStrNCmp()
667 B, DL, TLI)); in optimizeStrNCmp()
675 B, DL, TLI)); in optimizeStrNCmp()
688 return copyFlags(*CI, emitStrDup(Src, B, TLI)); in optimizeStrNDup()
722 return copyFlags(*CI, emitStrCpy(Dst, Src, B, TLI)); in optimizeStpCpy()
725 Value *StrLen = emitStrLen(Src, B, DL, TLI); in optimizeStpCpy()
774 return copyFlags(*CI, emitStrLen(Src, B, DL, TLI)); in optimizeStrLCpy()
1057 unsigned WCharSize = TLI->getWCharSize(M) * 8; in optimizeWcslen()
1087 return copyFlags(*CI, emitStrChr(CI->getArgOperand(0), S2[0], B, TLI)); in optimizeStrPBrk()
1143 return copyFlags(*CI, emitStrLen(CI->getArgOperand(0), B, DL, TLI)); in optimizeStrCSpn()
1155 Value *StrLen = emitStrLen(CI->getArgOperand(1), B, DL, TLI); in optimizeStrStr()
1159 StrLen, B, DL, TLI); in optimizeStrStr()
1195 return emitStrChr(CI->getArgOperand(0), ToFindStr[0], B, TLI); in optimizeStrStr()
1599 if (isLibFuncEmittable(M, TLI, LibFunc_bcmp) && in optimizeMemCmp()
1604 return copyFlags(*CI, emitBCmp(LHS, RHS, Size, B, DL, TLI)); in optimizeMemCmp()
1708 return copyFlags(*CI, emitMalloc(CI->getArgOperand(1), B, DL, TLI)); in optimizeRealloc()
1732 return emitHotColdNew(CI->getArgOperand(0), B, TLI, in optimizeNew()
1735 return emitHotColdNew(CI->getArgOperand(0), B, TLI, in optimizeNew()
1739 TLI, LibFunc_ZnwmRKSt9nothrow_t12__hot_cold_t, in optimizeNew()
1743 TLI, LibFunc_ZnamRKSt9nothrow_t12__hot_cold_t, in optimizeNew()
1747 TLI, LibFunc_ZnwmSt11align_val_t12__hot_cold_t, in optimizeNew()
1751 TLI, LibFunc_ZnamSt11align_val_t12__hot_cold_t, in optimizeNew()
1756 TLI, LibFunc_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t, HotCold); in optimizeNew()
1760 TLI, LibFunc_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t, HotCold); in optimizeNew()
1809 bool isBinary, const TargetLibraryInfo *TLI, in optimizeDoubleFP() argument
1860 R = isBinary ? emitBinaryFloatFnCall(V[0], V[1], TLI, CalleeName, B, in optimizeDoubleFP()
1862 : emitUnaryFloatFnCall(V[0], TLI, CalleeName, B, CalleeAttrs); in optimizeDoubleFP()
1869 const TargetLibraryInfo *TLI, in optimizeUnaryDoubleFP() argument
1871 return optimizeDoubleFP(CI, B, false, TLI, isPrecise); in optimizeUnaryDoubleFP()
1876 const TargetLibraryInfo *TLI, in optimizeBinaryDoubleFP() argument
1878 return optimizeDoubleFP(CI, B, true, TLI, isPrecise); in optimizeBinaryDoubleFP()
1995 if (CalleeFn && TLI->getLibFunc(CalleeFn->getName(), LibFn) && in replacePowWithExp()
1996 isLibFuncEmittable(M, TLI, LibFn)) { in replacePowWithExp()
2008 ExpName = TLI->getName(LibFunc_exp); in replacePowWithExp()
2017 ExpName = TLI->getName(LibFunc_exp2); in replacePowWithExp()
2030 : emitUnaryFloatFnCall(FMul, TLI, LibFnDouble, LibFnFloat, in replacePowWithExp()
2055 hasFloatFn(M, TLI, Ty, LibFunc_ldexp, LibFunc_ldexpf, LibFunc_ldexpl)) { in replacePowWithExp()
2056 if (Value *ExpoI = getIntToFPVal(Expo, B, TLI->getIntSize())) in replacePowWithExp()
2059 TLI, LibFunc_ldexp, LibFunc_ldexpf, in replacePowWithExp()
2064 if (hasFloatFn(M, TLI, Ty, LibFunc_exp2, LibFunc_exp2f, LibFunc_exp2l)) { in replacePowWithExp()
2082 return copyFlags(*Pow, emitUnaryFloatFnCall(FMul, TLI, LibFunc_exp2, in replacePowWithExp()
2091 hasFloatFn(M, TLI, Ty, LibFunc_exp10, LibFunc_exp10f, LibFunc_exp10l)) in replacePowWithExp()
2092 return copyFlags(*Pow, emitUnaryFloatFnCall(Expo, TLI, LibFunc_exp10, in replacePowWithExp()
2116 else if (hasFloatFn(M, TLI, Ty, LibFunc_exp2, LibFunc_exp2f, in replacePowWithExp()
2118 return copyFlags(*Pow, emitUnaryFloatFnCall(FMul, TLI, LibFunc_exp2, in replacePowWithExp()
2129 const TargetLibraryInfo *TLI) { in getSqrtCall() argument
2138 if (hasFloatFn(M, TLI, V->getType(), LibFunc_sqrt, LibFunc_sqrtf, in getSqrtCall()
2143 return emitUnaryFloatFnCall(V, TLI, LibFunc_sqrt, LibFunc_sqrtf, in getSqrtCall()
2170 !isKnownNeverInfinity(Base, DL, TLI, 0, AC, Pow)) in replacePowWithSqrt()
2174 TLI); in replacePowWithSqrt()
2281 B, TLI); in optimizePow()
2288 APSInt IntExpo(TLI->getIntSize(), /*isUnsigned=*/false); in optimizePow()
2295 Base, ConstantInt::get(B.getIntNTy(TLI->getIntSize()), IntExpo), in optimizePow()
2307 if (Value *ExpoI = getIntToFPVal(Expo, B, TLI->getIntSize())) in optimizePow()
2313 if (UnsafeFPShrink && Name == TLI->getName(LibFunc_pow) && in optimizePow()
2315 if (Value *Shrunk = optimizeBinaryDoubleFP(Pow, B, TLI, true)) in optimizePow()
2327 if (UnsafeFPShrink && Name == TLI->getName(LibFunc_exp2) && in optimizeExp2()
2329 Ret = optimizeUnaryDoubleFP(CI, B, TLI, true); in optimizeExp2()
2341 hasFloatFn(M, TLI, Ty, LibFunc_ldexp, LibFunc_ldexpf, LibFunc_ldexpl)) { in optimizeExp2()
2342 if (Value *Exp = getIntToFPVal(Op, B, TLI->getIntSize())) { in optimizeExp2()
2346 *CI, emitBinaryFloatFnCall(ConstantFP::get(Ty, 1.0), Exp, TLI, in optimizeExp2()
2363 if (Value *Ret = optimizeBinaryDoubleFP(CI, B, TLI)) in optimizeFMinFMax()
2394 Ret = optimizeUnaryDoubleFP(Log, B, TLI, true); in optimizeLog()
2404 if (TLI->getLibFunc(LogNm, LogLb)) in optimizeLog()
2494 TLI->getLibFunc(*Arg, ArgLb); in optimizeLog()
2503 : emitUnaryFloatFnCall(Arg->getOperand(0), TLI, LogNm, B, NoAttrs); in optimizeLog()
2530 : emitUnaryFloatFnCall(Eul, TLI, LogNm, B, NoAttrs); in optimizeLog()
2548 if (isLibFuncEmittable(M, TLI, LibFunc_sqrtf) && in optimizeSqrt()
2551 Ret = optimizeUnaryDoubleFP(CI, B, TLI, true); in optimizeSqrt()
2617 Ret = optimizeUnaryDoubleFP(CI, B, TLI, true); in optimizeTan()
2633 if (F && TLI->getLibFunc(F->getName(), Func) && in optimizeTan()
2634 isLibFuncEmittable(M, TLI, Func) && in optimizeTan()
2651 Value *&SinCos, const TargetLibraryInfo *TLI) { in insertSinCosCall() argument
2672 if (!isLibFuncEmittable(M, TLI, Name)) in insertSinCosCall()
2675 TLI->getLibFunc(Name, TheLibFunc); in insertSinCosCall()
2677 M, *TLI, TheLibFunc, OrigCallee->getAttributes(), ResTy, ArgTy); in insertSinCosCall()
2731 SinCos, TLI)) in optimizeSinCosPi()
2763 if (!Callee || !TLI->getLibFunc(*Callee, Func) || in classifyArgUse()
2764 !isLibFuncEmittable(M, TLI, Func) || in classifyArgUse()
2953 return copyFlags(*CI, emitPutChar(IntChar, B, TLI)); in optimizePrintFString()
2970 return copyFlags(*CI, emitPutChar(IntChar, B, TLI)); in optimizePrintFString()
2976 return copyFlags(*CI, emitPutS(GV, B, TLI)); in optimizePrintFString()
2988 return copyFlags(*CI, emitPutS(GV, B, TLI)); in optimizePrintFString()
2998 return copyFlags(*CI, emitPutChar(IntChar, B, TLI)); in optimizePrintFString()
3004 return copyFlags(*CI, emitPutS(CI->getArgOperand(1), B, TLI)); in optimizePrintFString()
3021 if (isLibFuncEmittable(M, TLI, LibFunc_iprintf) && in optimizePrintF()
3023 FunctionCallee IPrintFFn = getOrInsertLibFunc(M, *TLI, LibFunc_iprintf, FT, in optimizePrintF()
3033 if (isLibFuncEmittable(M, TLI, LibFunc_small_printf) && in optimizePrintF()
3035 auto SmallPrintFFn = getOrInsertLibFunc(M, *TLI, LibFunc_small_printf, FT, in optimizePrintF()
3096 return copyFlags(*CI, emitStrCpy(Dest, CI->getArgOperand(2), B, TLI)); in optimizeSPrintFString()
3105 } else if (Value *V = emitStpCpy(Dest, CI->getArgOperand(2), B, TLI)) { in optimizeSPrintFString()
3117 Value *Len = emitStrLen(CI->getArgOperand(2), B, DL, TLI); in optimizeSPrintFString()
3142 if (isLibFuncEmittable(M, TLI, LibFunc_siprintf) && in optimizeSPrintF()
3144 FunctionCallee SIPrintFFn = getOrInsertLibFunc(M, *TLI, LibFunc_siprintf, in optimizeSPrintF()
3154 if (isLibFuncEmittable(M, TLI, LibFunc_small_sprintf) && in optimizeSPrintF()
3156 auto SmallSPrintFFn = getOrInsertLibFunc(M, *TLI, LibFunc_small_sprintf, FT, in optimizeSPrintF()
3177 unsigned IntBits = TLI->getIntSize(); in emitSnPrintfMemCpy()
3229 uint64_t IntMax = maxIntN(TLI->getIntSize()); in optimizeSnPrintFString()
3322 unsigned SizeTBits = TLI->getSizeTSize(*CI->getModule()); in optimizeFPrintFString()
3327 CI->getArgOperand(0), B, DL, TLI)); in optimizeFPrintFString()
3340 Type *IntTy = B.getIntNTy(TLI->getIntSize()); in optimizeFPrintFString()
3343 return copyFlags(*CI, emitFPutC(V, CI->getArgOperand(0), B, TLI)); in optimizeFPrintFString()
3351 *CI, emitFPutS(CI->getArgOperand(2), CI->getArgOperand(0), B, TLI)); in optimizeFPrintFString()
3366 if (isLibFuncEmittable(M, TLI, LibFunc_fiprintf) && in optimizeFPrintF()
3368 FunctionCallee FIPrintFFn = getOrInsertLibFunc(M, *TLI, LibFunc_fiprintf, in optimizeFPrintF()
3378 if (isLibFuncEmittable(M, TLI, LibFunc_small_fprintf) && in optimizeFPrintF()
3381 getOrInsertLibFunc(M, *TLI, LibFunc_small_fprintf, FT, in optimizeFPrintF()
3409 Type *IntTy = B.getIntNTy(TLI->getIntSize()); in optimizeFWrite()
3411 Value *NewCI = emitFPutC(Cast, CI->getArgOperand(3), B, TLI); in optimizeFWrite()
3440 unsigned SizeTBits = TLI->getSizeTSize(*CI->getModule()); in optimizeFPuts()
3446 CI->getArgOperand(1), B, DL, TLI)); in optimizeFPuts()
3461 return copyFlags(*CI, emitPutChar(ConstantInt::get(IntTy, '\n'), B, TLI)); in optimizePuts()
3477 return isLibFuncEmittable(M, TLI, FloatFuncName); in hasFloatVersion()
3486 if (TLI->getLibFunc(*Callee, Func) && isLibFuncEmittable(M, TLI, Func)) { in optimizeStringMemoryLibCall()
3662 return optimizeUnaryDoubleFP(CI, Builder, TLI, true); in optimizeFloatingPointLibCall()
3666 return optimizeBinaryDoubleFP(CI, Builder, TLI); in optimizeFloatingPointLibCall()
3746 if (TLI->getLibFunc(*Callee, Func) && isLibFuncEmittable(M, TLI, Func)) { in optimizeCall()
3810 const DataLayout &DL, const TargetLibraryInfo *TLI, AssumptionCache *AC, in LibCallSimplifier() argument
3815 : FortifiedSimplifier(TLI), DL(DL), TLI(TLI), AC(AC), ORE(ORE), BFI(BFI), in LibCallSimplifier()
3944 CI->getArgOperand(2), B, DL, TLI)) { in optimizeMemPCpyChk()
3959 Value *StrLen = emitStrLen(Src, B, DL, TLI); in optimizeStrpCpyChk()
3970 return copyFlags(*CI, emitStrCpy(Dst, Src, B, TLI)); in optimizeStrpCpyChk()
3972 return copyFlags(*CI, emitStpCpy(Dst, Src, B, TLI)); in optimizeStrpCpyChk()
3985 unsigned SizeTBits = TLI->getSizeTSize(*CI->getModule()); in optimizeStrpCpyChk()
3988 Value *Ret = emitMemCpyChk(Dst, Src, LenV, ObjSize, B, DL, TLI); in optimizeStrpCpyChk()
4001 CI->getModule()->getDataLayout(), TLI)); in optimizeStrLenChk()
4012 CI->getArgOperand(2), B, TLI)); in optimizeStrpNCpyChk()
4016 CI->getArgOperand(2), B, TLI)); in optimizeStrpNCpyChk()
4027 CI->getArgOperand(2), CI->getArgOperand(3), B, TLI)); in optimizeMemCCpyChk()
4038 CI->getArgOperand(4), VariadicArgs, B, TLI)); in optimizeSNPrintfChk()
4050 VariadicArgs, B, TLI)); in optimizeSPrintfChk()
4060 *CI, emitStrCat(CI->getArgOperand(0), CI->getArgOperand(1), B, TLI)); in optimizeStrCatChk()
4070 CI->getArgOperand(2), B, TLI)); in optimizeStrLCat()
4080 CI->getArgOperand(2), B, TLI)); in optimizeStrNCatChk()
4090 CI->getArgOperand(2), B, TLI)); in optimizeStrLCpyChk()
4100 CI->getArgOperand(4), CI->getArgOperand(5), B, TLI)); in optimizeVSNPrintfChk()
4110 CI->getArgOperand(4), B, TLI)); in optimizeVSPrintfChk()
4142 if (!TLI->getLibFunc(*Callee, Func)) in optimizeCall()
4191 const TargetLibraryInfo *TLI, bool OnlyLowerUnknownSize) in FortifiedLibCallSimplifier() argument
4192 : TLI(TLI), OnlyLowerUnknownSize(OnlyLowerUnknownSize) {} in FortifiedLibCallSimplifier()