aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/DataStructure/DataStructureAA.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Analysis/DataStructure/DataStructureAA.cpp')
-rw-r--r--lib/Analysis/DataStructure/DataStructureAA.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/Analysis/DataStructure/DataStructureAA.cpp b/lib/Analysis/DataStructure/DataStructureAA.cpp
index 62eb663990..74fdb1f590 100644
--- a/lib/Analysis/DataStructure/DataStructureAA.cpp
+++ b/lib/Analysis/DataStructure/DataStructureAA.cpp
@@ -174,13 +174,13 @@ AliasAnalysis::AliasResult DSAA::alias(const Value *V1, unsigned V1Size,
AliasAnalysis::ModRefResult
DSAA::getModRefInfo(CallSite CS, Value *P, unsigned Size) {
Function *F = CS.getCalledFunction();
- if (!F) return pointsToConstantMemory(P) ? Ref : ModRef;
- if (F->isExternal()) return ModRef;
+ if (!F || F->isExternal())
+ return AliasAnalysis::getModRefInfo(CS, P, Size);
// Clone the function TD graph, clearing off Mod/Ref flags
const Function *csParent = CS.getInstruction()->getParent()->getParent();
DSGraph TDGraph(TD->getDSGraph(*csParent));
- TDGraph.maskNodeTypes(0);
+ TDGraph.maskNodeTypes(~(DSNode::Modified|DSNode::Read));
// Insert the callee's BU graph into the TD graph
const DSGraph &BUGraph = BU->getDSGraph(*F);