diff options
| author | Chris Lattner <sabre@nondot.org> | 2004-03-16 03:41:35 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2004-03-16 03:41:35 +0000 |
| commit | 8ad948ddbdd8ea5b13e58132627a779beba6c143 (patch) | |
| tree | 37bb78cd4a3b9bf03636d6272bfe2a0193c0eb70 /llvm/lib/Analysis | |
| parent | 8726ebd326be6c00f804d01da3764a7170ec497d (diff) | |
| download | bcm5719-llvm-8ad948ddbdd8ea5b13e58132627a779beba6c143.tar.gz bcm5719-llvm-8ad948ddbdd8ea5b13e58132627a779beba6c143.zip | |
Add some missing functions. Make sure to handle calls together in case the
client has another VN implementation that can VN calls.
llvm-svn: 12427
Diffstat (limited to 'llvm/lib/Analysis')
| -rw-r--r-- | llvm/lib/Analysis/BasicAliasAnalysis.cpp | 22 | ||||
| -rw-r--r-- | llvm/lib/Analysis/LoadValueNumbering.cpp | 2 |
2 files changed, 21 insertions, 3 deletions
diff --git a/llvm/lib/Analysis/BasicAliasAnalysis.cpp b/llvm/lib/Analysis/BasicAliasAnalysis.cpp index 9b6258edd3f..4a8a6803646 100644 --- a/llvm/lib/Analysis/BasicAliasAnalysis.cpp +++ b/llvm/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 = diff --git a/llvm/lib/Analysis/LoadValueNumbering.cpp b/llvm/lib/Analysis/LoadValueNumbering.cpp index a71ade6d614..b67aaddde32 100644 --- a/llvm/lib/Analysis/LoadValueNumbering.cpp +++ b/llvm/lib/Analysis/LoadValueNumbering.cpp @@ -247,7 +247,7 @@ void LoadVN::getEqualNumberNodes(Value *V, if (!isa<LoadInst>(V)) { if (CallInst *CI = dyn_cast<CallInst>(V)) - return getCallEqualNumberNodes(CI, RetVals); + getCallEqualNumberNodes(CI, RetVals); // Not a load instruction? Just chain to the base value numbering // implementation to satisfy the request... |

