[PATCH] D14219: [TargetLibraryInfo] Add support for fls, flsl, flsll

Davide Italiano via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 9 15:25:46 PST 2015


This revision was automatically updated to reflect the committed changes.
Closed by commit rL252535: [TargetLibraryInfo] Add support for fls, flsl, flsll. (authored by davide).

Changed prior to commit:
  http://reviews.llvm.org/D14219?vs=38856&id=39761#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D14219

Files:
  llvm/trunk/include/llvm/Analysis/TargetLibraryInfo.def
  llvm/trunk/lib/Analysis/TargetLibraryInfo.cpp

Index: llvm/trunk/lib/Analysis/TargetLibraryInfo.cpp
===================================================================
--- llvm/trunk/lib/Analysis/TargetLibraryInfo.cpp
+++ llvm/trunk/lib/Analysis/TargetLibraryInfo.cpp
@@ -350,6 +350,16 @@
     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);
Index: llvm/trunk/include/llvm/Analysis/TargetLibraryInfo.def
===================================================================
--- llvm/trunk/include/llvm/Analysis/TargetLibraryInfo.def
+++ llvm/trunk/include/llvm/Analysis/TargetLibraryInfo.def
@@ -406,6 +406,15 @@
 /// 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")


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D14219.39761.patch
Type: text/x-patch
Size: 1604 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151109/818b67cb/attachment.bin>


More information about the llvm-commits mailing list