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()
1252 const TargetLibraryInfo &TLI, bool Signed = true) { in setArgExtAttr() argument
1253 Attribute::AttrKind ExtAttr = TLI.getExtAttrForI32Param(Signed); in setArgExtAttr()
1259 const TargetLibraryInfo &TLI, bool Signed = true) { in setRetExtAttr() argument
1260 Attribute::AttrKind ExtAttr = TLI.getExtAttrForI32Return(Signed); in setRetExtAttr()
1300 FunctionCallee llvm::getOrInsertLibFunc(Module *M, const TargetLibraryInfo &TLI, in getOrInsertLibFunc() argument
1303 assert(TLI.has(TheLibFunc) && in getOrInsertLibFunc()
1305 StringRef Name = TLI.getName(TheLibFunc); in getOrInsertLibFunc()
1322 setArgExtAttr(*F, 0, TLI); in getOrInsertLibFunc()
1330 setArgExtAttr(*F, 1, TLI); in getOrInsertLibFunc()
1333 setArgExtAttr(*F, 2, TLI); in getOrInsertLibFunc()
1340 setRetExtAttr(*F, TLI); in getOrInsertLibFunc()
1373 FunctionCallee llvm::getOrInsertLibFunc(Module *M, const TargetLibraryInfo &TLI, in getOrInsertLibFunc() argument
1375 return getOrInsertLibFunc(M, TLI, TheLibFunc, T, AttributeList()); in getOrInsertLibFunc()
1378 bool llvm::isLibFuncEmittable(const Module *M, const TargetLibraryInfo *TLI, in isLibFuncEmittable() argument
1380 StringRef FuncName = TLI->getName(TheLibFunc); in isLibFuncEmittable()
1381 if (!TLI->has(TheLibFunc)) in isLibFuncEmittable()
1388 return TLI->isValidProtoForLibFunc(*F->getFunctionType(), TheLibFunc, *M); in isLibFuncEmittable()
1395 bool llvm::isLibFuncEmittable(const Module *M, const TargetLibraryInfo *TLI, in isLibFuncEmittable() argument
1398 return TLI->getLibFunc(Name, TheLibFunc) && in isLibFuncEmittable()
1399 isLibFuncEmittable(M, TLI, TheLibFunc); in isLibFuncEmittable()
1402 bool llvm::hasFloatFn(const Module *M, const TargetLibraryInfo *TLI, Type *Ty, in hasFloatFn() argument
1408 return isLibFuncEmittable(M, TLI, FloatFn); in hasFloatFn()
1410 return isLibFuncEmittable(M, TLI, DoubleFn); in hasFloatFn()
1412 return isLibFuncEmittable(M, TLI, LongDoubleFn); in hasFloatFn()
1416 StringRef llvm::getFloatFn(const Module *M, const TargetLibraryInfo *TLI, in getFloatFn() argument
1419 assert(hasFloatFn(M, TLI, Ty, DoubleFn, FloatFn, LongDoubleFn) && in getFloatFn()
1427 return TLI->getName(FloatFn); in getFloatFn()
1430 return TLI->getName(DoubleFn); in getFloatFn()
1433 return TLI->getName(LongDoubleFn); in getFloatFn()
1439 static IntegerType *getIntTy(IRBuilderBase &B, const TargetLibraryInfo *TLI) { in getIntTy() argument
1440 return B.getIntNTy(TLI->getIntSize()); in getIntTy()
1443 static IntegerType *getSizeTTy(IRBuilderBase &B, const TargetLibraryInfo *TLI) { in getSizeTTy() argument
1445 return B.getIntNTy(TLI->getSizeTSize(*M)); in getSizeTTy()
1451 const TargetLibraryInfo *TLI, in emitLibCall() argument
1454 if (!isLibFuncEmittable(M, TLI, TheLibFunc)) in emitLibCall()
1457 StringRef FuncName = TLI->getName(TheLibFunc); in emitLibCall()
1459 FunctionCallee Callee = getOrInsertLibFunc(M, *TLI, TheLibFunc, FuncType); in emitLibCall()
1460 inferNonMandatoryLibFuncAttrs(M, FuncName, *TLI); in emitLibCall()
1469 const TargetLibraryInfo *TLI) { in emitStrLen() argument
1471 Type *SizeTTy = getSizeTTy(B, TLI); in emitStrLen()
1472 return emitLibCall(LibFunc_strlen, SizeTTy, CharPtrTy, Ptr, B, TLI); in emitStrLen()
1476 const TargetLibraryInfo *TLI) { in emitStrDup() argument
1478 return emitLibCall(LibFunc_strdup, CharPtrTy, CharPtrTy, Ptr, B, TLI); in emitStrDup()
1482 const TargetLibraryInfo *TLI) { in emitStrChr() argument
1484 Type *IntTy = getIntTy(B, TLI); in emitStrChr()
1486 {Ptr, ConstantInt::get(IntTy, C)}, B, TLI); in emitStrChr()
1490 const DataLayout &DL, const TargetLibraryInfo *TLI) { in emitStrNCmp() argument
1492 Type *IntTy = getIntTy(B, TLI); in emitStrNCmp()
1493 Type *SizeTTy = getSizeTTy(B, TLI); in emitStrNCmp()
1497 {Ptr1, Ptr2, Len}, B, TLI); in emitStrNCmp()
1501 const TargetLibraryInfo *TLI) { in emitStrCpy() argument
1504 {Dst, Src}, B, TLI); in emitStrCpy()
1508 const TargetLibraryInfo *TLI) { in emitStpCpy() argument
1511 {Dst, Src}, B, TLI); in emitStpCpy()
1515 const TargetLibraryInfo *TLI) { in emitStrNCpy() argument
1517 Type *SizeTTy = getSizeTTy(B, TLI); in emitStrNCpy()
1519 {Dst, Src, Len}, B, TLI); in emitStrNCpy()
1523 const TargetLibraryInfo *TLI) { in emitStpNCpy() argument
1525 Type *SizeTTy = getSizeTTy(B, TLI); in emitStpNCpy()
1527 {Dst, Src, Len}, B, TLI); in emitStpNCpy()
1532 const TargetLibraryInfo *TLI) { in emitMemCpyChk() argument
1534 if (!isLibFuncEmittable(M, TLI, LibFunc_memcpy_chk)) in emitMemCpyChk()
1541 Type *SizeTTy = getSizeTTy(B, TLI); in emitMemCpyChk()
1542 FunctionCallee MemCpy = getOrInsertLibFunc(M, *TLI, LibFunc_memcpy_chk, in emitMemCpyChk()
1553 const DataLayout &DL, const TargetLibraryInfo *TLI) { in emitMemPCpy() argument
1555 Type *SizeTTy = getSizeTTy(B, TLI); in emitMemPCpy()
1558 {Dst, Src, Len}, B, TLI); in emitMemPCpy()
1562 const DataLayout &DL, const TargetLibraryInfo *TLI) { in emitMemChr() argument
1564 Type *IntTy = getIntTy(B, TLI); in emitMemChr()
1565 Type *SizeTTy = getSizeTTy(B, TLI); in emitMemChr()
1568 {Ptr, Val, Len}, B, TLI); in emitMemChr()
1572 const DataLayout &DL, const TargetLibraryInfo *TLI) { in emitMemRChr() argument
1574 Type *IntTy = getIntTy(B, TLI); in emitMemRChr()
1575 Type *SizeTTy = getSizeTTy(B, TLI); in emitMemRChr()
1578 {Ptr, Val, Len}, B, TLI); in emitMemRChr()
1582 const DataLayout &DL, const TargetLibraryInfo *TLI) { in emitMemCmp() argument
1584 Type *IntTy = getIntTy(B, TLI); in emitMemCmp()
1585 Type *SizeTTy = getSizeTTy(B, TLI); in emitMemCmp()
1588 {Ptr1, Ptr2, Len}, B, TLI); in emitMemCmp()
1592 const DataLayout &DL, const TargetLibraryInfo *TLI) { in emitBCmp() argument
1594 Type *IntTy = getIntTy(B, TLI); in emitBCmp()
1595 Type *SizeTTy = getSizeTTy(B, TLI); in emitBCmp()
1598 {Ptr1, Ptr2, Len}, B, TLI); in emitBCmp()
1602 IRBuilderBase &B, const TargetLibraryInfo *TLI) { in emitMemCCpy() argument
1604 Type *IntTy = getIntTy(B, TLI); in emitMemCCpy()
1605 Type *SizeTTy = getSizeTTy(B, TLI); in emitMemCCpy()
1608 {Ptr1, Ptr2, Val, Len}, B, TLI); in emitMemCCpy()
1613 const TargetLibraryInfo *TLI) { in emitSNPrintf() argument
1615 Type *IntTy = getIntTy(B, TLI); in emitSNPrintf()
1616 Type *SizeTTy = getSizeTTy(B, TLI); in emitSNPrintf()
1621 Args, B, TLI, /*IsVaArgs=*/true); in emitSNPrintf()
1626 const TargetLibraryInfo *TLI) { in emitSPrintf() argument
1628 Type *IntTy = getIntTy(B, TLI); in emitSPrintf()
1632 {CharPtrTy, CharPtrTy}, Args, B, TLI, in emitSPrintf()
1637 const TargetLibraryInfo *TLI) { in emitStrCat() argument
1641 {Dest, Src}, B, TLI); in emitStrCat()
1645 const TargetLibraryInfo *TLI) { in emitStrLCpy() argument
1647 Type *SizeTTy = getSizeTTy(B, TLI); in emitStrLCpy()
1650 {Dest, Src, Size}, B, TLI); in emitStrLCpy()
1654 const TargetLibraryInfo *TLI) { in emitStrLCat() argument
1656 Type *SizeTTy = getSizeTTy(B, TLI); in emitStrLCat()
1659 {Dest, Src, Size}, B, TLI); in emitStrLCat()
1663 const TargetLibraryInfo *TLI) { in emitStrNCat() argument
1665 Type *SizeTTy = getSizeTTy(B, TLI); in emitStrNCat()
1668 {Dest, Src, Size}, B, TLI); in emitStrNCat()
1672 IRBuilderBase &B, const TargetLibraryInfo *TLI) { in emitVSNPrintf() argument
1674 Type *IntTy = getIntTy(B, TLI); in emitVSNPrintf()
1675 Type *SizeTTy = getSizeTTy(B, TLI); in emitVSNPrintf()
1679 {Dest, Size, Fmt, VAList}, B, TLI); in emitVSNPrintf()
1683 IRBuilderBase &B, const TargetLibraryInfo *TLI) { in emitVSPrintf() argument
1685 Type *IntTy = getIntTy(B, TLI); in emitVSPrintf()
1688 {Dest, Fmt, VAList}, B, TLI); in emitVSPrintf()
1709 const TargetLibraryInfo *TLI) { in emitUnaryFloatFnCallHelper() argument
1713 FunctionCallee Callee = getOrInsertLibFunc(M, *TLI, TheLibFunc, Op->getType(), in emitUnaryFloatFnCallHelper()
1729 Value *llvm::emitUnaryFloatFnCall(Value *Op, const TargetLibraryInfo *TLI, in emitUnaryFloatFnCall() argument
1736 TLI->getLibFunc(Name, TheLibFunc); in emitUnaryFloatFnCall()
1738 return emitUnaryFloatFnCallHelper(Op, TheLibFunc, Name, B, Attrs, TLI); in emitUnaryFloatFnCall()
1741 Value *llvm::emitUnaryFloatFnCall(Value *Op, const TargetLibraryInfo *TLI, in emitUnaryFloatFnCall() argument
1748 StringRef Name = getFloatFn(M, TLI, Op->getType(), DoubleFn, FloatFn, in emitUnaryFloatFnCall()
1751 return emitUnaryFloatFnCallHelper(Op, TheLibFunc, Name, B, Attrs, TLI); in emitUnaryFloatFnCall()
1758 const TargetLibraryInfo *TLI) { in emitBinaryFloatFnCallHelper() argument
1762 FunctionCallee Callee = getOrInsertLibFunc(M, *TLI, TheLibFunc, Op1->getType(), in emitBinaryFloatFnCallHelper()
1764 inferNonMandatoryLibFuncAttrs(M, Name, *TLI); in emitBinaryFloatFnCallHelper()
1780 const TargetLibraryInfo *TLI, in emitBinaryFloatFnCall() argument
1789 TLI->getLibFunc(Name, TheLibFunc); in emitBinaryFloatFnCall()
1791 return emitBinaryFloatFnCallHelper(Op1, Op2, TheLibFunc, Name, B, Attrs, TLI); in emitBinaryFloatFnCall()
1795 const TargetLibraryInfo *TLI, in emitBinaryFloatFnCall() argument
1802 StringRef Name = getFloatFn(M, TLI, Op1->getType(), DoubleFn, FloatFn, in emitBinaryFloatFnCall()
1805 return emitBinaryFloatFnCallHelper(Op1, Op2, TheLibFunc, Name, B, Attrs, TLI); in emitBinaryFloatFnCall()
1811 const TargetLibraryInfo *TLI) { in emitPutChar() argument
1813 if (!isLibFuncEmittable(M, TLI, LibFunc_putchar)) in emitPutChar()
1816 Type *IntTy = getIntTy(B, TLI); in emitPutChar()
1817 StringRef PutCharName = TLI->getName(LibFunc_putchar); in emitPutChar()
1818 FunctionCallee PutChar = getOrInsertLibFunc(M, *TLI, LibFunc_putchar, in emitPutChar()
1820 inferNonMandatoryLibFuncAttrs(M, PutCharName, *TLI); in emitPutChar()
1830 const TargetLibraryInfo *TLI) { in emitPutS() argument
1832 if (!isLibFuncEmittable(M, TLI, LibFunc_puts)) in emitPutS()
1835 Type *IntTy = getIntTy(B, TLI); in emitPutS()
1836 StringRef PutsName = TLI->getName(LibFunc_puts); in emitPutS()
1837 FunctionCallee PutS = getOrInsertLibFunc(M, *TLI, LibFunc_puts, IntTy, in emitPutS()
1839 inferNonMandatoryLibFuncAttrs(M, PutsName, *TLI); in emitPutS()
1848 const TargetLibraryInfo *TLI) { in emitFPutC() argument
1850 if (!isLibFuncEmittable(M, TLI, LibFunc_fputc)) in emitFPutC()
1853 Type *IntTy = getIntTy(B, TLI); in emitFPutC()
1854 StringRef FPutcName = TLI->getName(LibFunc_fputc); in emitFPutC()
1855 FunctionCallee F = getOrInsertLibFunc(M, *TLI, LibFunc_fputc, IntTy, in emitFPutC()
1858 inferNonMandatoryLibFuncAttrs(M, FPutcName, *TLI); in emitFPutC()
1868 const TargetLibraryInfo *TLI) { in emitFPutS() argument
1870 if (!isLibFuncEmittable(M, TLI, LibFunc_fputs)) in emitFPutS()
1873 Type *IntTy = getIntTy(B, TLI); in emitFPutS()
1874 StringRef FPutsName = TLI->getName(LibFunc_fputs); in emitFPutS()
1875 FunctionCallee F = getOrInsertLibFunc(M, *TLI, LibFunc_fputs, IntTy, in emitFPutS()
1878 inferNonMandatoryLibFuncAttrs(M, FPutsName, *TLI); in emitFPutS()
1888 const DataLayout &DL, const TargetLibraryInfo *TLI) { in emitFWrite() argument
1890 if (!isLibFuncEmittable(M, TLI, LibFunc_fwrite)) in emitFWrite()
1893 Type *SizeTTy = getSizeTTy(B, TLI); in emitFWrite()
1894 StringRef FWriteName = TLI->getName(LibFunc_fwrite); in emitFWrite()
1895 FunctionCallee F = getOrInsertLibFunc(M, *TLI, LibFunc_fwrite, in emitFWrite()
1900 inferNonMandatoryLibFuncAttrs(M, FWriteName, *TLI); in emitFWrite()
1912 const TargetLibraryInfo *TLI) { in emitMalloc() argument
1914 if (!isLibFuncEmittable(M, TLI, LibFunc_malloc)) in emitMalloc()
1917 StringRef MallocName = TLI->getName(LibFunc_malloc); in emitMalloc()
1918 Type *SizeTTy = getSizeTTy(B, TLI); in emitMalloc()
1919 FunctionCallee Malloc = getOrInsertLibFunc(M, *TLI, LibFunc_malloc, in emitMalloc()
1921 inferNonMandatoryLibFuncAttrs(M, MallocName, *TLI); in emitMalloc()
1932 const TargetLibraryInfo &TLI) { in emitCalloc() argument
1934 if (!isLibFuncEmittable(M, &TLI, LibFunc_calloc)) in emitCalloc()
1937 StringRef CallocName = TLI.getName(LibFunc_calloc); in emitCalloc()
1938 Type *SizeTTy = getSizeTTy(B, &TLI); in emitCalloc()
1939 FunctionCallee Calloc = getOrInsertLibFunc(M, TLI, LibFunc_calloc, in emitCalloc()
1941 inferNonMandatoryLibFuncAttrs(M, CallocName, TLI); in emitCalloc()
1952 const TargetLibraryInfo *TLI, LibFunc NewFunc, in emitHotColdNew() argument
1955 if (!isLibFuncEmittable(M, TLI, NewFunc)) in emitHotColdNew()
1958 StringRef Name = TLI->getName(NewFunc); in emitHotColdNew()
1961 inferNonMandatoryLibFuncAttrs(M, Name, *TLI); in emitHotColdNew()
1972 const TargetLibraryInfo *TLI, in emitHotColdNewNoThrow() argument
1975 if (!isLibFuncEmittable(M, TLI, NewFunc)) in emitHotColdNewNoThrow()
1978 StringRef Name = TLI->getName(NewFunc); in emitHotColdNewNoThrow()
1982 inferNonMandatoryLibFuncAttrs(M, Name, *TLI); in emitHotColdNewNoThrow()
1993 const TargetLibraryInfo *TLI, in emitHotColdNewAligned() argument
1996 if (!isLibFuncEmittable(M, TLI, NewFunc)) in emitHotColdNewAligned()
1999 StringRef Name = TLI->getName(NewFunc); in emitHotColdNewAligned()
2002 inferNonMandatoryLibFuncAttrs(M, Name, *TLI); in emitHotColdNewAligned()
2014 const TargetLibraryInfo *TLI, in emitHotColdNewAlignedNoThrow() argument
2017 if (!isLibFuncEmittable(M, TLI, NewFunc)) in emitHotColdNewAlignedNoThrow()
2020 StringRef Name = TLI->getName(NewFunc); in emitHotColdNewAlignedNoThrow()
2024 inferNonMandatoryLibFuncAttrs(M, Name, *TLI); in emitHotColdNewAlignedNoThrow()