aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/BasicAliasAnalysis.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Analysis/BasicAliasAnalysis.cpp')
-rw-r--r--lib/Analysis/BasicAliasAnalysis.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/lib/Analysis/BasicAliasAnalysis.cpp b/lib/Analysis/BasicAliasAnalysis.cpp
index 9b6258edd3..4a8a680364 100644
--- a/lib/Analysis/BasicAliasAnalysis.cpp
+++ b/lib/Analysis/BasicAliasAnalysis.cpp
@@ -607,6 +607,17 @@ static const char *DoesntAccessMemoryTable[] = {
"iswctype", "towctrans", "towlower", "towupper",
"btowc", "wctob",
+
+ "isinf", "isnan", "finite",
+
+ // C99 math functions
+ "copysign", "copysignf", "copysignd",
+ "nexttoward", "nexttowardf", "nexttowardd",
+ "nextafter", "nextafterf", "nextafterd",
+
+ // glibc functions:
+ "__fpclassify", "__fpclassifyf", "__fpclassifyl",
+ "__signbit", "__signbitf", "__signbitl",
};
static const unsigned DAMTableSize =
@@ -636,16 +647,23 @@ bool BasicAliasAnalysis::doesNotAccessMemory(Function *F) {
static const char *OnlyReadsMemoryTable[] = {
- "atoi", "atol", "atof", "atoll", "atoq",
- "bcmp", "memcmp", "memchr", "wmemcmp", "wmemchr",
+ "atoi", "atol", "atof", "atoll", "atoq", "a64l",
+ "bcmp", "memcmp", "memchr", "memrchr", "wmemcmp", "wmemchr",
// Strings
"strcmp", "strcasecmp", "strcoll", "strncmp", "strncasecmp",
"strchr", "strcspn", "strlen", "strpbrk", "strrchr", "strspn", "strstr",
+ "index", "rindex",
// Wide char strings
"wcschr", "wcscmp", "wcscoll", "wcscspn", "wcslen", "wcsncmp", "wcspbrk",
"wcsrchr", "wcsspn", "wcsstr",
+
+ // glibc
+ "alphasort", "alphasort64", "versionsort", "versionsort64",
+
+ // C99
+ "nan", "nanf", "nand",
};
static const unsigned ORMTableSize =