summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-04-22 05:36:59 +0000
committerChris Lattner <sabre@nondot.org>2005-04-22 05:36:59 +0000
commite25cfaee55be90ee167204b65a35e56721cef2b5 (patch)
tree2515b93ff794e04f136a8f5b0c090c43d1dbf34a /llvm/lib/Analysis
parent16431f7b3cf854c4d5276aa347f21e055a18b666 (diff)
downloadbcm5719-llvm-e25cfaee55be90ee167204b65a35e56721cef2b5.tar.gz
bcm5719-llvm-e25cfaee55be90ee167204b65a35e56721cef2b5.zip
Malloc/Free have mod/ref effects. Do not allow CSE of function calls that
call malloc/free. This fixes PR555. llvm-svn: 21443
Diffstat (limited to 'llvm/lib/Analysis')
-rw-r--r--llvm/lib/Analysis/IPA/GlobalsModRef.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/IPA/GlobalsModRef.cpp b/llvm/lib/Analysis/IPA/GlobalsModRef.cpp
index 20422bf3189..5b3c953bcdf 100644
--- a/llvm/lib/Analysis/IPA/GlobalsModRef.cpp
+++ b/llvm/lib/Analysis/IPA/GlobalsModRef.cpp
@@ -310,6 +310,8 @@ void GlobalsModRef::AnalyzeSCC(std::vector<CallGraphNode *> &SCC) {
FunctionEffect |= Ref;
else if (isa<StoreInst>(*II))
FunctionEffect |= Mod;
+ else if (isa<MallocInst>(*II) || isa<FreeInst>(*II))
+ FunctionEffect |= ModRef;
}
if ((FunctionEffect & Mod) == 0)
OpenPOWER on IntegriCloud