Fix a minor bug, implementing GCSE/call_pure_function.ll

Also, add some stuff I missed before.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12417 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2004-03-15 04:18:28 +00:00
parent 66d0884954
commit bbcc147220

View File

@ -186,9 +186,8 @@ BasicAliasAnalysis::getModRefInfo(CallSite CS, Value *P, unsigned Size) {
return NoModRef; return NoModRef;
} }
// If P points to a constant memory location, the call definitely could not // The AliasAnalysis base class has some smarts, lets use them.
// modify the memory location. return AliasAnalysis::getModRefInfo(CS, P, Size);
return pointsToConstantMemory(P) ? Ref : ModRef;
} }
// alias - Provide a bunch of ad-hoc rules to disambiguate in common cases, such // alias - Provide a bunch of ad-hoc rules to disambiguate in common cases, such
@ -597,12 +596,16 @@ static const char *DoesntAccessMemoryTable[] = {
"sin", "sinf", "sinl", "sinh", "sinhf", "sinhl", "sin", "sinf", "sinl", "sinh", "sinhf", "sinhl",
"tan", "tanf", "tanl", "tanh", "tanhf", "tanhl", "tan", "tanf", "tanl", "tanh", "tanhf", "tanhl",
// ctype.h
"isalnum", "isalpha", "iscntrl", "isdigit", "isgraph", "islower", "isprint" "isalnum", "isalpha", "iscntrl", "isdigit", "isgraph", "islower", "isprint"
"ispunct", "isspace", "isupper", "isxdigit", "tolower", "toupper", "ispunct", "isspace", "isupper", "isxdigit", "tolower", "toupper",
// wctype.h"
"iswalnum", "iswalpha", "iswcntrl", "iswdigit", "iswgraph", "iswlower", "iswalnum", "iswalpha", "iswcntrl", "iswdigit", "iswgraph", "iswlower",
"iswprint", "iswpunct", "iswspace", "iswupper", "iswxdigit", "iswprint", "iswpunct", "iswspace", "iswupper", "iswxdigit",
"iswctype", "towctrans", "towlower", "towupper",
"btowc", "wctob", "btowc", "wctob",
}; };