Add a couple of more functions that cannot access memory (the intrinsics) and
don't write to memory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12808 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/BasicAliasAnalysis.cpp b/lib/Analysis/BasicAliasAnalysis.cpp
index f9c63cd..a689135 100644
--- a/lib/Analysis/BasicAliasAnalysis.cpp
+++ b/lib/Analysis/BasicAliasAnalysis.cpp
@@ -606,6 +606,9 @@
// Note that this list cannot contain libm functions (such as acos and sqrt)
// that set errno on a domain or other error.
static const char *DoesntAccessMemoryTable[] = {
+ // LLVM intrinsics:
+ "llvm.frameaddress", "llvm.returnaddress", "llvm.readport",
+
"abs", "labs", "llabs", "imaxabs", "fabs", "fabsf", "fabsl",
"trunc", "truncf", "truncl", "ldexp",
@@ -685,6 +688,10 @@
// C99
"nan", "nanf", "nand",
+
+ // File I/O
+ "feof", "ferror", "fileno",
+ "feof_unlocked", "ferror_unlocked", "fileno_unlocked"
};
static const unsigned ORMTableSize =