forked from OSchip/llvm-project
[TargetLibraryInfo] Add support for fls, flsl, flsll.
This is a prerequisite for further optimisations of these functions, which will be commited as a separate patch. Differential Revision: http://reviews.llvm.org/D14219 llvm-svn: 252535
This commit is contained in:
parent
ccd9419266
commit
bfd3082e85
|
@ -406,6 +406,15 @@ TLI_DEFINE_STRING_INTERNAL("floorf")
|
|||
/// long double floorl(long double x);
|
||||
TLI_DEFINE_ENUM_INTERNAL(floorl)
|
||||
TLI_DEFINE_STRING_INTERNAL("floorl")
|
||||
/// int fls(int i);
|
||||
TLI_DEFINE_ENUM_INTERNAL(fls)
|
||||
TLI_DEFINE_STRING_INTERNAL("fls")
|
||||
/// int flsl(long int i);
|
||||
TLI_DEFINE_ENUM_INTERNAL(flsl)
|
||||
TLI_DEFINE_STRING_INTERNAL("flsl")
|
||||
/// int flsll(long long int i);
|
||||
TLI_DEFINE_ENUM_INTERNAL(flsll)
|
||||
TLI_DEFINE_STRING_INTERNAL("flsll")
|
||||
/// double fmax(double x, double y);
|
||||
TLI_DEFINE_ENUM_INTERNAL(fmax)
|
||||
TLI_DEFINE_STRING_INTERNAL("fmax")
|
||||
|
|
|
@ -350,6 +350,16 @@ static void initialize(TargetLibraryInfoImpl &TLI, const Triple &T,
|
|||
TLI.setUnavailable(LibFunc::ffsll);
|
||||
}
|
||||
|
||||
// The following functions are available on at least FreeBSD:
|
||||
// http://svn.freebsd.org/base/head/lib/libc/string/fls.c
|
||||
// http://svn.freebsd.org/base/head/lib/libc/string/flsl.c
|
||||
// http://svn.freebsd.org/base/head/lib/libc/string/flsll.c
|
||||
if (!T.isOSFreeBSD()) {
|
||||
TLI.setUnavailable(LibFunc::fls);
|
||||
TLI.setUnavailable(LibFunc::flsl);
|
||||
TLI.setUnavailable(LibFunc::flsll);
|
||||
}
|
||||
|
||||
// The following functions are available on at least Linux:
|
||||
if (!T.isOSLinux()) {
|
||||
TLI.setUnavailable(LibFunc::dunder_strdup);
|
||||
|
|
Loading…
Reference in New Issue