summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/DataStructure
diff options
context:
space:
mode:
authorAndrew Lenharth <andrewl@lenharth.org>2006-04-05 02:42:36 +0000
committerAndrew Lenharth <andrewl@lenharth.org>2006-04-05 02:42:36 +0000
commit8f321af723ad74a08f2bad3d8b07fd5b8eab3581 (patch)
tree23492ff88da69ff3d31af6059a9f6166f4667fdd /llvm/lib/Analysis/DataStructure
parent59a6355e828ba84d3c7ee291e377cc4ff800fc0f (diff)
downloadbcm5719-llvm-8f321af723ad74a08f2bad3d8b07fd5b8eab3581.tar.gz
bcm5719-llvm-8f321af723ad74a08f2bad3d8b07fd5b8eab3581.zip
revert this, this is safe, if conservative. leave a note to that effect
llvm-svn: 27428
Diffstat (limited to 'llvm/lib/Analysis/DataStructure')
-rw-r--r--llvm/lib/Analysis/DataStructure/Local.cpp16
1 files changed, 7 insertions, 9 deletions
diff --git a/llvm/lib/Analysis/DataStructure/Local.cpp b/llvm/lib/Analysis/DataStructure/Local.cpp
index c87e9c442e2..72eee24964e 100644
--- a/llvm/lib/Analysis/DataStructure/Local.cpp
+++ b/llvm/lib/Analysis/DataStructure/Local.cpp
@@ -546,17 +546,15 @@ void GraphBuilder::visitCallSite(CallSite CS) {
case Intrinsic::vaend:
return; // noop
case Intrinsic::memcpy_i32:
- case Intrinsic::memcpy_i64: {
- //write first location
- if (DSNode *N = getValueDest(**CS.arg_begin()).getNode())
- N->setModifiedMarker();
- //and read second pointer
- if (DSNode *N = getValueDest(**(CS.arg_begin() + 1)).getNode())
- N->setReadMarker();
- return;
- }
+ case Intrinsic::memcpy_i64:
case Intrinsic::memmove_i32:
case Intrinsic::memmove_i64: {
+ //This is over aggressive. What these functions do is not make the
+ // targets pointers alias, but rather merge the out edges of the graphs
+ // for the pointers according to the type merging of the graphs.
+ //Simply merging the two graphs is a crude approximation to this.
+ //I might be wrong though.
+
// Merge the first & second arguments, and mark the memory read and
// modified.
DSNodeHandle RetNH = getValueDest(**CS.arg_begin());
OpenPOWER on IntegriCloud