diff options
| author | Chris Lattner <sabre@nondot.org> | 2005-04-22 05:36:59 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2005-04-22 05:36:59 +0000 |
| commit | e25cfaee55be90ee167204b65a35e56721cef2b5 (patch) | |
| tree | 2515b93ff794e04f136a8f5b0c090c43d1dbf34a /llvm/lib/Analysis | |
| parent | 16431f7b3cf854c4d5276aa347f21e055a18b666 (diff) | |
| download | bcm5719-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.cpp | 2 |
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) |

