summaryrefslogtreecommitdiffstats
path: root/llvm/include
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2016-03-31 21:29:57 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2016-03-31 21:29:57 +0000
commitae272d718e882b18258a587ce111a4150d761b5e (patch)
tree79ee814eebc9b9e6cc4f4b9040b02bd838774757 /llvm/include
parent13f6da1d2c20ebb0c4f6600b4ea23d428ef20cc5 (diff)
downloadbcm5719-llvm-ae272d718e882b18258a587ce111a4150d761b5e.tar.gz
bcm5719-llvm-ae272d718e882b18258a587ce111a4150d761b5e.zip
[NVPTX] Infer __nvvm_reflect as nounwind, readnone
This patch simply mirrors the attributes we give to @llvm.nvvm.reflect to the __nvvm_reflect libdevice call. This shaves about 30% of the code in libdevice away because of CSE opportunities. It's also helps us figure out that libdevice implementations of transcendental functions don't have side-effects. llvm-svn: 265060
Diffstat (limited to 'llvm/include')
-rw-r--r--llvm/include/llvm/Analysis/TargetLibraryInfo.def5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/include/llvm/Analysis/TargetLibraryInfo.def b/llvm/include/llvm/Analysis/TargetLibraryInfo.def
index 7798e3c8824..b2a593d67dc 100644
--- a/llvm/include/llvm/Analysis/TargetLibraryInfo.def
+++ b/llvm/include/llvm/Analysis/TargetLibraryInfo.def
@@ -195,6 +195,11 @@ TLI_DEFINE_STRING_INTERNAL("__memmove_chk")
/// void *__memset_chk(void *s, char v, size_t n, size_t s1size);
TLI_DEFINE_ENUM_INTERNAL(memset_chk)
TLI_DEFINE_STRING_INTERNAL("__memset_chk")
+
+// int __nvvm_reflect(const char *)
+TLI_DEFINE_ENUM_INTERNAL(nvvm_reflect)
+TLI_DEFINE_STRING_INTERNAL("__nvvm_reflect")
+
/// double __sincospi_stret(double x);
TLI_DEFINE_ENUM_INTERNAL(sincospi_stret)
TLI_DEFINE_STRING_INTERNAL("__sincospi_stret")
OpenPOWER on IntegriCloud