diff options
author | MinSeong Kim <min.s.kim@samsung.com> | 2018-01-23 11:11:36 +0000 |
---|---|---|
committer | MinSeong Kim <min.s.kim@samsung.com> | 2018-01-23 11:11:36 +0000 |
commit | 27f77b4300a9060579a14a190ae1fe123468a1f1 (patch) | |
tree | d0d741bfa67a6ff5b2431284f0d6fc938cd37428 /llvm/lib/Analysis/TargetLibraryInfo.cpp | |
parent | ca8f4e7451480b2e2cda25736a08982c03d011bc (diff) | |
download | bcm5719-llvm-27f77b4300a9060579a14a190ae1fe123468a1f1.tar.gz bcm5719-llvm-27f77b4300a9060579a14a190ae1fe123468a1f1.zip |
[Analysis] Disable exp/exp2/pow finite lib calls on Android with -ffast-math.
Summary:
Since r322087, glibc's finite lib calls are generated when possible.
However, glibc is not supported on Android. Therefore this change
enables llvm to finely distinguish between linux and Android for
unsupported library calls. The change also include some regression
tests.
Reviewers: srhines, pirama
Reviewed By: srhines
Subscribers: kongyi, chh, javed.absar, llvm-commits
Differential Revision: https://reviews.llvm.org/D42288
llvm-svn: 323187
Diffstat (limited to 'llvm/lib/Analysis/TargetLibraryInfo.cpp')
-rw-r--r-- | llvm/lib/Analysis/TargetLibraryInfo.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/TargetLibraryInfo.cpp b/llvm/lib/Analysis/TargetLibraryInfo.cpp index f655eaeca52..2dbcc9fa6f2 100644 --- a/llvm/lib/Analysis/TargetLibraryInfo.cpp +++ b/llvm/lib/Analysis/TargetLibraryInfo.cpp @@ -397,6 +397,15 @@ static void initialize(TargetLibraryInfoImpl &TLI, const Triple &T, TLI.setUnavailable(LibFunc_flsll); } + // Android uses bionic instead of glibc. So disable some finite + // lib calls in glibc for Android. The list of unsupported lib + // calls for Android may expand as the need arises. + if (T.isAndroid()) { + TLI.setUnavailable(LibFunc_exp_finite); + TLI.setUnavailable(LibFunc_exp2_finite); + TLI.setUnavailable(LibFunc_pow_finite); + } + // The following functions are available on at least Linux: if (!T.isOSLinux()) { TLI.setUnavailable(LibFunc_dunder_strdup); |