diff options
| author | Andrew Lenharth <andrewl@lenharth.org> | 2006-04-05 02:42:36 +0000 |
|---|---|---|
| committer | Andrew Lenharth <andrewl@lenharth.org> | 2006-04-05 02:42:36 +0000 |
| commit | 8f321af723ad74a08f2bad3d8b07fd5b8eab3581 (patch) | |
| tree | 23492ff88da69ff3d31af6059a9f6166f4667fdd /llvm/lib/Analysis/DataStructure | |
| parent | 59a6355e828ba84d3c7ee291e377cc4ff800fc0f (diff) | |
| download | bcm5719-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.cpp | 16 |
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()); |

