mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-23 14:25:07 +00:00
revert this, this is safe, if conservative. leave a note to that effect
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27428 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -546,17 +546,15 @@ void GraphBuilder::visitCallSite(CallSite CS) {
|
|||||||
case Intrinsic::vaend:
|
case Intrinsic::vaend:
|
||||||
return; // noop
|
return; // noop
|
||||||
case Intrinsic::memcpy_i32:
|
case Intrinsic::memcpy_i32:
|
||||||
case Intrinsic::memcpy_i64: {
|
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::memmove_i32:
|
case Intrinsic::memmove_i32:
|
||||||
case Intrinsic::memmove_i64: {
|
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
|
// Merge the first & second arguments, and mark the memory read and
|
||||||
// modified.
|
// modified.
|
||||||
DSNodeHandle RetNH = getValueDest(**CS.arg_begin());
|
DSNodeHandle RetNH = getValueDest(**CS.arg_begin());
|
||||||
|
Reference in New Issue
Block a user