llvm.memc* improvements. helps PA a lot in some specmarks

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27812 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Andrew Lenharth 2006-04-18 20:59:52 +00:00
parent 2dbf23afb4
commit a544266db7

View File

@ -561,8 +561,13 @@ void GraphBuilder::visitCallSite(CallSite CS) {
// modified. Preserve second graph
DSNodeHandle RetNH = getValueDest(**CS.arg_begin());
DSNodeHandle SrcNH = getValueDest(**(CS.arg_begin()+1));
DSNodeHandle Copy( new DSNode(*SrcNH.getNode(), SrcNH.getNode()->getParentGraph()),
SrcNH.getOffset());
//copy dsnode
DSNode* copy = new DSNode(*SrcNH.getNode(), SrcNH.getNode()->getParentGraph());
//since this is the target memory, we only are interested in the links.
//the target will not wind up with a global memory object , unless it
//was already there (only pointers to global memory objects)
copy->clearGlobals();
DSNodeHandle Copy( copy, SrcNH.getOffset());
RetNH.mergeWith(Copy);
if (DSNode *N = RetNH.getNode())
N->setModifiedMarker();