Lines Matching refs:TLI

254                                          const TargetLibraryInfo &TLI) {  in inferNonMandatoryLibFuncAttrs()  argument
258 return inferNonMandatoryLibFuncAttrs(*F, TLI); in inferNonMandatoryLibFuncAttrs()
262 const TargetLibraryInfo &TLI) { in inferNonMandatoryLibFuncAttrs() argument
264 if (!(TLI.getLibFunc(F, TheLibFunc) && TLI.has(TheLibFunc))) in inferNonMandatoryLibFuncAttrs()
1241 const TargetLibraryInfo &TLI, bool Signed = true) { in setArgExtAttr() argument
1242 Attribute::AttrKind ExtAttr = TLI.getExtAttrForI32Param(Signed); in setArgExtAttr()
1248 const TargetLibraryInfo &TLI, bool Signed = true) { in setRetExtAttr() argument
1249 Attribute::AttrKind ExtAttr = TLI.getExtAttrForI32Return(Signed); in setRetExtAttr()
1289 FunctionCallee llvm::getOrInsertLibFunc(Module *M, const TargetLibraryInfo &TLI, in getOrInsertLibFunc() argument
1292 assert(TLI.has(TheLibFunc) && in getOrInsertLibFunc()
1294 StringRef Name = TLI.getName(TheLibFunc); in getOrInsertLibFunc()
1311 setArgExtAttr(*F, 0, TLI); in getOrInsertLibFunc()
1319 setArgExtAttr(*F, 1, TLI); in getOrInsertLibFunc()
1322 setArgExtAttr(*F, 2, TLI); in getOrInsertLibFunc()
1329 setRetExtAttr(*F, TLI); in getOrInsertLibFunc()
1362 FunctionCallee llvm::getOrInsertLibFunc(Module *M, const TargetLibraryInfo &TLI, in getOrInsertLibFunc() argument
1364 return getOrInsertLibFunc(M, TLI, TheLibFunc, T, AttributeList()); in getOrInsertLibFunc()
1367 bool llvm::isLibFuncEmittable(const Module *M, const TargetLibraryInfo *TLI, in isLibFuncEmittable() argument
1369 StringRef FuncName = TLI->getName(TheLibFunc); in isLibFuncEmittable()
1370 if (!TLI->has(TheLibFunc)) in isLibFuncEmittable()
1377 return TLI->isValidProtoForLibFunc(*F->getFunctionType(), TheLibFunc, *M); in isLibFuncEmittable()
1384 bool llvm::isLibFuncEmittable(const Module *M, const TargetLibraryInfo *TLI, in isLibFuncEmittable() argument
1387 return TLI->getLibFunc(Name, TheLibFunc) && in isLibFuncEmittable()
1388 isLibFuncEmittable(M, TLI, TheLibFunc); in isLibFuncEmittable()
1391 bool llvm::hasFloatFn(const Module *M, const TargetLibraryInfo *TLI, Type *Ty, in hasFloatFn() argument
1397 return isLibFuncEmittable(M, TLI, FloatFn); in hasFloatFn()
1399 return isLibFuncEmittable(M, TLI, DoubleFn); in hasFloatFn()
1401 return isLibFuncEmittable(M, TLI, LongDoubleFn); in hasFloatFn()
1405 StringRef llvm::getFloatFn(const Module *M, const TargetLibraryInfo *TLI, in getFloatFn() argument
1408 assert(hasFloatFn(M, TLI, Ty, DoubleFn, FloatFn, LongDoubleFn) && in getFloatFn()
1416 return TLI->getName(FloatFn); in getFloatFn()
1419 return TLI->getName(DoubleFn); in getFloatFn()
1422 return TLI->getName(LongDoubleFn); in getFloatFn()
1428 static IntegerType *getIntTy(IRBuilderBase &B, const TargetLibraryInfo *TLI) { in getIntTy() argument
1429 return B.getIntNTy(TLI->getIntSize()); in getIntTy()
1432 static IntegerType *getSizeTTy(IRBuilderBase &B, const TargetLibraryInfo *TLI) { in getSizeTTy() argument
1434 return B.getIntNTy(TLI->getSizeTSize(*M)); in getSizeTTy()
1440 const TargetLibraryInfo *TLI, in emitLibCall() argument
1443 if (!isLibFuncEmittable(M, TLI, TheLibFunc)) in emitLibCall()
1446 StringRef FuncName = TLI->getName(TheLibFunc); in emitLibCall()
1448 FunctionCallee Callee = getOrInsertLibFunc(M, *TLI, TheLibFunc, FuncType); in emitLibCall()
1449 inferNonMandatoryLibFuncAttrs(M, FuncName, *TLI); in emitLibCall()
1458 const TargetLibraryInfo *TLI) { in emitStrLen() argument
1460 Type *SizeTTy = getSizeTTy(B, TLI); in emitStrLen()
1461 return emitLibCall(LibFunc_strlen, SizeTTy, CharPtrTy, Ptr, B, TLI); in emitStrLen()
1465 const TargetLibraryInfo *TLI) { in emitStrDup() argument
1467 return emitLibCall(LibFunc_strdup, CharPtrTy, CharPtrTy, Ptr, B, TLI); in emitStrDup()
1471 const TargetLibraryInfo *TLI) { in emitStrChr() argument
1473 Type *IntTy = getIntTy(B, TLI); in emitStrChr()
1475 {Ptr, ConstantInt::get(IntTy, C)}, B, TLI); in emitStrChr()
1479 const DataLayout &DL, const TargetLibraryInfo *TLI) { in emitStrNCmp() argument
1481 Type *IntTy = getIntTy(B, TLI); in emitStrNCmp()
1482 Type *SizeTTy = getSizeTTy(B, TLI); in emitStrNCmp()
1486 {Ptr1, Ptr2, Len}, B, TLI); in emitStrNCmp()
1490 const TargetLibraryInfo *TLI) { in emitStrCpy() argument
1493 {Dst, Src}, B, TLI); in emitStrCpy()
1497 const TargetLibraryInfo *TLI) { in emitStpCpy() argument
1500 {Dst, Src}, B, TLI); in emitStpCpy()
1504 const TargetLibraryInfo *TLI) { in emitStrNCpy() argument
1506 Type *SizeTTy = getSizeTTy(B, TLI); in emitStrNCpy()
1508 {Dst, Src, Len}, B, TLI); in emitStrNCpy()
1512 const TargetLibraryInfo *TLI) { in emitStpNCpy() argument
1514 Type *SizeTTy = getSizeTTy(B, TLI); in emitStpNCpy()
1516 {Dst, Src, Len}, B, TLI); in emitStpNCpy()
1521 const TargetLibraryInfo *TLI) { in emitMemCpyChk() argument
1523 if (!isLibFuncEmittable(M, TLI, LibFunc_memcpy_chk)) in emitMemCpyChk()
1530 Type *SizeTTy = getSizeTTy(B, TLI); in emitMemCpyChk()
1531 FunctionCallee MemCpy = getOrInsertLibFunc(M, *TLI, LibFunc_memcpy_chk, in emitMemCpyChk()
1542 const DataLayout &DL, const TargetLibraryInfo *TLI) { in emitMemPCpy() argument
1544 Type *SizeTTy = getSizeTTy(B, TLI); in emitMemPCpy()
1547 {Dst, Src, Len}, B, TLI); in emitMemPCpy()
1551 const DataLayout &DL, const TargetLibraryInfo *TLI) { in emitMemChr() argument
1553 Type *IntTy = getIntTy(B, TLI); in emitMemChr()
1554 Type *SizeTTy = getSizeTTy(B, TLI); in emitMemChr()
1557 {Ptr, Val, Len}, B, TLI); in emitMemChr()
1561 const DataLayout &DL, const TargetLibraryInfo *TLI) { in emitMemRChr() argument
1563 Type *IntTy = getIntTy(B, TLI); in emitMemRChr()
1564 Type *SizeTTy = getSizeTTy(B, TLI); in emitMemRChr()
1567 {Ptr, Val, Len}, B, TLI); in emitMemRChr()
1571 const DataLayout &DL, const TargetLibraryInfo *TLI) { in emitMemCmp() argument
1573 Type *IntTy = getIntTy(B, TLI); in emitMemCmp()
1574 Type *SizeTTy = getSizeTTy(B, TLI); in emitMemCmp()
1577 {Ptr1, Ptr2, Len}, B, TLI); in emitMemCmp()
1581 const DataLayout &DL, const TargetLibraryInfo *TLI) { in emitBCmp() argument
1583 Type *IntTy = getIntTy(B, TLI); in emitBCmp()
1584 Type *SizeTTy = getSizeTTy(B, TLI); in emitBCmp()
1587 {Ptr1, Ptr2, Len}, B, TLI); in emitBCmp()
1591 IRBuilderBase &B, const TargetLibraryInfo *TLI) { in emitMemCCpy() argument
1593 Type *IntTy = getIntTy(B, TLI); in emitMemCCpy()
1594 Type *SizeTTy = getSizeTTy(B, TLI); in emitMemCCpy()
1597 {Ptr1, Ptr2, Val, Len}, B, TLI); in emitMemCCpy()
1602 const TargetLibraryInfo *TLI) { in emitSNPrintf() argument
1604 Type *IntTy = getIntTy(B, TLI); in emitSNPrintf()
1605 Type *SizeTTy = getSizeTTy(B, TLI); in emitSNPrintf()
1610 Args, B, TLI, /*IsVaArgs=*/true); in emitSNPrintf()
1615 const TargetLibraryInfo *TLI) { in emitSPrintf() argument
1617 Type *IntTy = getIntTy(B, TLI); in emitSPrintf()
1621 {CharPtrTy, CharPtrTy}, Args, B, TLI, in emitSPrintf()
1626 const TargetLibraryInfo *TLI) { in emitStrCat() argument
1630 {Dest, Src}, B, TLI); in emitStrCat()
1634 const TargetLibraryInfo *TLI) { in emitStrLCpy() argument
1636 Type *SizeTTy = getSizeTTy(B, TLI); in emitStrLCpy()
1639 {Dest, Src, Size}, B, TLI); in emitStrLCpy()
1643 const TargetLibraryInfo *TLI) { in emitStrLCat() argument
1645 Type *SizeTTy = getSizeTTy(B, TLI); in emitStrLCat()
1648 {Dest, Src, Size}, B, TLI); in emitStrLCat()
1652 const TargetLibraryInfo *TLI) { in emitStrNCat() argument
1654 Type *SizeTTy = getSizeTTy(B, TLI); in emitStrNCat()
1657 {Dest, Src, Size}, B, TLI); in emitStrNCat()
1661 IRBuilderBase &B, const TargetLibraryInfo *TLI) { in emitVSNPrintf() argument
1663 Type *IntTy = getIntTy(B, TLI); in emitVSNPrintf()
1664 Type *SizeTTy = getSizeTTy(B, TLI); in emitVSNPrintf()
1668 {Dest, Size, Fmt, VAList}, B, TLI); in emitVSNPrintf()
1672 IRBuilderBase &B, const TargetLibraryInfo *TLI) { in emitVSPrintf() argument
1674 Type *IntTy = getIntTy(B, TLI); in emitVSPrintf()
1677 {Dest, Fmt, VAList}, B, TLI); in emitVSPrintf()
1698 const TargetLibraryInfo *TLI) { in emitUnaryFloatFnCallHelper() argument
1702 FunctionCallee Callee = getOrInsertLibFunc(M, *TLI, TheLibFunc, Op->getType(), in emitUnaryFloatFnCallHelper()
1718 Value *llvm::emitUnaryFloatFnCall(Value *Op, const TargetLibraryInfo *TLI, in emitUnaryFloatFnCall() argument
1725 TLI->getLibFunc(Name, TheLibFunc); in emitUnaryFloatFnCall()
1727 return emitUnaryFloatFnCallHelper(Op, TheLibFunc, Name, B, Attrs, TLI); in emitUnaryFloatFnCall()
1730 Value *llvm::emitUnaryFloatFnCall(Value *Op, const TargetLibraryInfo *TLI, in emitUnaryFloatFnCall() argument
1737 StringRef Name = getFloatFn(M, TLI, Op->getType(), DoubleFn, FloatFn, in emitUnaryFloatFnCall()
1740 return emitUnaryFloatFnCallHelper(Op, TheLibFunc, Name, B, Attrs, TLI); in emitUnaryFloatFnCall()
1747 const TargetLibraryInfo *TLI) { in emitBinaryFloatFnCallHelper() argument
1751 FunctionCallee Callee = getOrInsertLibFunc(M, *TLI, TheLibFunc, Op1->getType(), in emitBinaryFloatFnCallHelper()
1753 inferNonMandatoryLibFuncAttrs(M, Name, *TLI); in emitBinaryFloatFnCallHelper()
1769 const TargetLibraryInfo *TLI, in emitBinaryFloatFnCall() argument
1778 TLI->getLibFunc(Name, TheLibFunc); in emitBinaryFloatFnCall()
1780 return emitBinaryFloatFnCallHelper(Op1, Op2, TheLibFunc, Name, B, Attrs, TLI); in emitBinaryFloatFnCall()
1784 const TargetLibraryInfo *TLI, in emitBinaryFloatFnCall() argument
1791 StringRef Name = getFloatFn(M, TLI, Op1->getType(), DoubleFn, FloatFn, in emitBinaryFloatFnCall()
1794 return emitBinaryFloatFnCallHelper(Op1, Op2, TheLibFunc, Name, B, Attrs, TLI); in emitBinaryFloatFnCall()
1800 const TargetLibraryInfo *TLI) { in emitPutChar() argument
1802 if (!isLibFuncEmittable(M, TLI, LibFunc_putchar)) in emitPutChar()
1805 Type *IntTy = getIntTy(B, TLI); in emitPutChar()
1806 StringRef PutCharName = TLI->getName(LibFunc_putchar); in emitPutChar()
1807 FunctionCallee PutChar = getOrInsertLibFunc(M, *TLI, LibFunc_putchar, in emitPutChar()
1809 inferNonMandatoryLibFuncAttrs(M, PutCharName, *TLI); in emitPutChar()
1819 const TargetLibraryInfo *TLI) { in emitPutS() argument
1821 if (!isLibFuncEmittable(M, TLI, LibFunc_puts)) in emitPutS()
1824 Type *IntTy = getIntTy(B, TLI); in emitPutS()
1825 StringRef PutsName = TLI->getName(LibFunc_puts); in emitPutS()
1826 FunctionCallee PutS = getOrInsertLibFunc(M, *TLI, LibFunc_puts, IntTy, in emitPutS()
1828 inferNonMandatoryLibFuncAttrs(M, PutsName, *TLI); in emitPutS()
1837 const TargetLibraryInfo *TLI) { in emitFPutC() argument
1839 if (!isLibFuncEmittable(M, TLI, LibFunc_fputc)) in emitFPutC()
1842 Type *IntTy = getIntTy(B, TLI); in emitFPutC()
1843 StringRef FPutcName = TLI->getName(LibFunc_fputc); in emitFPutC()
1844 FunctionCallee F = getOrInsertLibFunc(M, *TLI, LibFunc_fputc, IntTy, in emitFPutC()
1847 inferNonMandatoryLibFuncAttrs(M, FPutcName, *TLI); in emitFPutC()
1857 const TargetLibraryInfo *TLI) { in emitFPutS() argument
1859 if (!isLibFuncEmittable(M, TLI, LibFunc_fputs)) in emitFPutS()
1862 Type *IntTy = getIntTy(B, TLI); in emitFPutS()
1863 StringRef FPutsName = TLI->getName(LibFunc_fputs); in emitFPutS()
1864 FunctionCallee F = getOrInsertLibFunc(M, *TLI, LibFunc_fputs, IntTy, in emitFPutS()
1867 inferNonMandatoryLibFuncAttrs(M, FPutsName, *TLI); in emitFPutS()
1877 const DataLayout &DL, const TargetLibraryInfo *TLI) { in emitFWrite() argument
1879 if (!isLibFuncEmittable(M, TLI, LibFunc_fwrite)) in emitFWrite()
1882 Type *SizeTTy = getSizeTTy(B, TLI); in emitFWrite()
1883 StringRef FWriteName = TLI->getName(LibFunc_fwrite); in emitFWrite()
1884 FunctionCallee F = getOrInsertLibFunc(M, *TLI, LibFunc_fwrite, in emitFWrite()
1889 inferNonMandatoryLibFuncAttrs(M, FWriteName, *TLI); in emitFWrite()
1901 const TargetLibraryInfo *TLI) { in emitMalloc() argument
1903 if (!isLibFuncEmittable(M, TLI, LibFunc_malloc)) in emitMalloc()
1906 StringRef MallocName = TLI->getName(LibFunc_malloc); in emitMalloc()
1907 Type *SizeTTy = getSizeTTy(B, TLI); in emitMalloc()
1908 FunctionCallee Malloc = getOrInsertLibFunc(M, *TLI, LibFunc_malloc, in emitMalloc()
1910 inferNonMandatoryLibFuncAttrs(M, MallocName, *TLI); in emitMalloc()
1921 const TargetLibraryInfo &TLI) { in emitCalloc() argument
1923 if (!isLibFuncEmittable(M, &TLI, LibFunc_calloc)) in emitCalloc()
1926 StringRef CallocName = TLI.getName(LibFunc_calloc); in emitCalloc()
1927 Type *SizeTTy = getSizeTTy(B, &TLI); in emitCalloc()
1928 FunctionCallee Calloc = getOrInsertLibFunc(M, TLI, LibFunc_calloc, in emitCalloc()
1930 inferNonMandatoryLibFuncAttrs(M, CallocName, TLI); in emitCalloc()
1941 const TargetLibraryInfo *TLI, LibFunc NewFunc, in emitHotColdNew() argument
1944 if (!isLibFuncEmittable(M, TLI, NewFunc)) in emitHotColdNew()
1947 StringRef Name = TLI->getName(NewFunc); in emitHotColdNew()
1950 inferNonMandatoryLibFuncAttrs(M, Name, *TLI); in emitHotColdNew()
1961 const TargetLibraryInfo *TLI, in emitHotColdNewNoThrow() argument
1964 if (!isLibFuncEmittable(M, TLI, NewFunc)) in emitHotColdNewNoThrow()
1967 StringRef Name = TLI->getName(NewFunc); in emitHotColdNewNoThrow()
1971 inferNonMandatoryLibFuncAttrs(M, Name, *TLI); in emitHotColdNewNoThrow()
1982 const TargetLibraryInfo *TLI, in emitHotColdNewAligned() argument
1985 if (!isLibFuncEmittable(M, TLI, NewFunc)) in emitHotColdNewAligned()
1988 StringRef Name = TLI->getName(NewFunc); in emitHotColdNewAligned()
1991 inferNonMandatoryLibFuncAttrs(M, Name, *TLI); in emitHotColdNewAligned()
2003 const TargetLibraryInfo *TLI, in emitHotColdNewAlignedNoThrow() argument
2006 if (!isLibFuncEmittable(M, TLI, NewFunc)) in emitHotColdNewAlignedNoThrow()
2009 StringRef Name = TLI->getName(NewFunc); in emitHotColdNewAlignedNoThrow()
2013 inferNonMandatoryLibFuncAttrs(M, Name, *TLI); in emitHotColdNewAlignedNoThrow()