mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-02 07:30:52 +00:00
memset and bcopy and now unified by the llvm.memset intrinsic
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11503 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e0f636a068
commit
eee33b2691
@ -468,6 +468,11 @@ void GraphBuilder::visitCallSite(CallSite CS) {
|
||||
N->setModifiedMarker()->setReadMarker();
|
||||
return;
|
||||
}
|
||||
case Intrinsic::memset:
|
||||
// Mark the memory modified.
|
||||
if (DSNode *N = getValueDest(**CS.arg_begin()).getNode())
|
||||
N->setModifiedMarker();
|
||||
return;
|
||||
default:
|
||||
if (F->getName() == "calloc") {
|
||||
setDestTo(*CS.getInstruction(),
|
||||
@ -479,20 +484,6 @@ void GraphBuilder::visitCallSite(CallSite CS) {
|
||||
if (DSNode *N = RetNH.getNode())
|
||||
N->setHeapNodeMarker()->setModifiedMarker()->setReadMarker();
|
||||
return;
|
||||
} else if (F->getName() == "memset") {
|
||||
// Merge the first argument with the return value, and mark the memory
|
||||
// modified.
|
||||
DSNodeHandle RetNH = getValueDest(*CS.getInstruction());
|
||||
RetNH.mergeWith(getValueDest(**CS.arg_begin()));
|
||||
if (DSNode *N = RetNH.getNode())
|
||||
N->setModifiedMarker();
|
||||
return;
|
||||
} else if (F->getName() == "bzero") {
|
||||
// Mark the memory modified.
|
||||
DSNodeHandle H = getValueDest(**CS.arg_begin());
|
||||
if (DSNode *N = H.getNode())
|
||||
N->setModifiedMarker();
|
||||
return;
|
||||
} else if (F->getName() == "fopen" && CS.arg_end()-CS.arg_begin() == 2){
|
||||
// fopen reads the mode argument strings.
|
||||
CallSite::arg_iterator AI = CS.arg_begin();
|
||||
|
Loading…
x
Reference in New Issue
Block a user