Add a few functions to TargetLibraryInfo as part of PR13574.

Patch by Weiming Zhao <weimingz@codeaurora.org>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162329 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chad Rosier 2012-08-21 23:28:56 +00:00
parent 75dd7f0c4a
commit 6871d1eceb
2 changed files with 72 additions and 0 deletions

View File

@ -33,12 +33,24 @@ namespace llvm {
acos, acos,
/// float acosf(float x); /// float acosf(float x);
acosf, acosf,
/// double acosh(double x);
acosh,
/// float acoshf(float x);
acoshf,
/// long double acoshl(long double x);
acoshl,
/// long double acosl(long double x); /// long double acosl(long double x);
acosl, acosl,
/// double asin(double x); /// double asin(double x);
asin, asin,
/// float asinf(float x); /// float asinf(float x);
asinf, asinf,
/// double asinh(double x);
asinh,
/// float asinhf(float x);
asinhf,
/// long double asinhl(long double x);
asinhl,
/// long double asinl(long double x); /// long double asinl(long double x);
asinl, asinl,
/// double atan(double x); /// double atan(double x);
@ -51,8 +63,20 @@ namespace llvm {
atan2l, atan2l,
/// float atanf(float x); /// float atanf(float x);
atanf, atanf,
/// double atanh(double x);
atanh,
/// float atanhf(float x);
atanhf,
/// long double atanhl(long double x);
atanhl,
/// long double atanl(long double x); /// long double atanl(long double x);
atanl, atanl,
/// double cbrt(double x);
cbrt,
/// float cbrtf(float x);
cbrtf,
/// long double cbrtl(long double x);
cbrtl,
/// double ceil(double x); /// double ceil(double x);
ceil, ceil,
/// float ceilf(float x); /// float ceilf(float x);
@ -79,6 +103,12 @@ namespace llvm {
cosl, cosl,
/// double exp(double x); /// double exp(double x);
exp, exp,
/// double exp10(double x);
exp10,
/// float exp10f(float x);
exp10f,
/// long double exp10l(long double x);
exp10l,
/// double exp2(double x); /// double exp2(double x);
exp2, exp2,
/// float exp2f(float x); /// float exp2f(float x);
@ -144,6 +174,12 @@ namespace llvm {
log2f, log2f,
/// double long double log2l(long double x); /// double long double log2l(long double x);
log2l, log2l,
/// double logb(double x);
logb,
/// float logbf(float x);
logbf,
/// long double logbl(long double x);
logbl,
/// float logf(float x); /// float logf(float x);
logf, logf,
/// long double logl(long double x); /// long double logl(long double x);

View File

@ -31,16 +31,28 @@ const char* TargetLibraryInfo::StandardNames[LibFunc::NumLibFuncs] =
"__memcpy_chk", "__memcpy_chk",
"acos", "acos",
"acosf", "acosf",
"acosh",
"acoshf",
"acoshl",
"acosl", "acosl",
"asin", "asin",
"asinf", "asinf",
"asinh",
"asinhf",
"asinhl",
"asinl", "asinl",
"atan", "atan",
"atan2", "atan2",
"atan2f", "atan2f",
"atan2l", "atan2l",
"atanf", "atanf",
"atanh",
"atanhf",
"atanhl",
"atanl", "atanl",
"cbrt",
"cbrtf",
"cbrtl",
"ceil", "ceil",
"ceilf", "ceilf",
"ceill", "ceill",
@ -54,6 +66,9 @@ const char* TargetLibraryInfo::StandardNames[LibFunc::NumLibFuncs] =
"coshl", "coshl",
"cosl", "cosl",
"exp", "exp",
"exp10",
"exp10f",
"exp10l",
"exp2", "exp2",
"exp2f", "exp2f",
"exp2l", "exp2l",
@ -86,6 +101,9 @@ const char* TargetLibraryInfo::StandardNames[LibFunc::NumLibFuncs] =
"log2", "log2",
"log2f", "log2f",
"log2l", "log2l",
"logb",
"logbf",
"logbl",
"logf", "logf",
"logl", "logl",
"memchr", "memchr",
@ -205,6 +223,21 @@ static void initialize(TargetLibraryInfo &TLI, const Triple &T,
TLI.setUnavailable(LibFunc::tanhl); TLI.setUnavailable(LibFunc::tanhl);
// Win32 only has C89 math // Win32 only has C89 math
TLI.setUnavailable(LibFunc::acosh);
TLI.setUnavailable(LibFunc::acoshf);
TLI.setUnavailable(LibFunc::acoshl);
TLI.setUnavailable(LibFunc::asinh);
TLI.setUnavailable(LibFunc::asinhf);
TLI.setUnavailable(LibFunc::asinhl);
TLI.setUnavailable(LibFunc::atanh);
TLI.setUnavailable(LibFunc::atanhf);
TLI.setUnavailable(LibFunc::atanhl);
TLI.setUnavailable(LibFunc::cbrt);
TLI.setUnavailable(LibFunc::cbrtf);
TLI.setUnavailable(LibFunc::cbrtl);
TLI.setUnavailable(LibFunc::exp10);
TLI.setUnavailable(LibFunc::exp10f);
TLI.setUnavailable(LibFunc::exp10l);
TLI.setUnavailable(LibFunc::exp2); TLI.setUnavailable(LibFunc::exp2);
TLI.setUnavailable(LibFunc::exp2f); TLI.setUnavailable(LibFunc::exp2f);
TLI.setUnavailable(LibFunc::exp2l); TLI.setUnavailable(LibFunc::exp2l);
@ -217,6 +250,9 @@ static void initialize(TargetLibraryInfo &TLI, const Triple &T,
TLI.setUnavailable(LibFunc::log1p); TLI.setUnavailable(LibFunc::log1p);
TLI.setUnavailable(LibFunc::log1pf); TLI.setUnavailable(LibFunc::log1pf);
TLI.setUnavailable(LibFunc::log1pl); TLI.setUnavailable(LibFunc::log1pl);
TLI.setUnavailable(LibFunc::logb);
TLI.setUnavailable(LibFunc::logbf);
TLI.setUnavailable(LibFunc::logbl);
TLI.setUnavailable(LibFunc::nearbyint); TLI.setUnavailable(LibFunc::nearbyint);
TLI.setUnavailable(LibFunc::nearbyintf); TLI.setUnavailable(LibFunc::nearbyintf);
TLI.setUnavailable(LibFunc::nearbyintl); TLI.setUnavailable(LibFunc::nearbyintl);