[llvm-commits] [see] CVS: llvm-poolalloc/lib/DSA/Local.cpp
Andrew Lenharth
alenhar2 at cs.uiuc.edu
Fri May 18 11:27:05 PDT 2007
Changes in directory llvm-poolalloc/lib/DSA:
Local.cpp updated: 1.158.2.4.2.10 -> 1.158.2.4.2.11
---
Log message:
revert
---
Diffs of the changes: (+15 -70)
Local.cpp | 85 ++++++++++----------------------------------------------------
1 files changed, 15 insertions(+), 70 deletions(-)
Index: llvm-poolalloc/lib/DSA/Local.cpp
diff -u llvm-poolalloc/lib/DSA/Local.cpp:1.158.2.4.2.10 llvm-poolalloc/lib/DSA/Local.cpp:1.158.2.4.2.11
--- llvm-poolalloc/lib/DSA/Local.cpp:1.158.2.4.2.10 Fri May 18 12:38:28 2007
+++ llvm-poolalloc/lib/DSA/Local.cpp Fri May 18 13:26:25 2007
@@ -12,6 +12,7 @@
// external interface to this file is the DSGraph constructor.
//
//===----------------------------------------------------------------------===//
+
#include "llvm/ADT/Statistic.h"
#include "dsa/DataStructure.h"
#include "dsa/DSGraph.h"
@@ -649,21 +650,12 @@
case Intrinsic::memcpy_i64:
case Intrinsic::memmove_i32:
case Intrinsic::memmove_i64: {
- DSNodeHandle destNH = getValueDest(**CS.arg_begin());
- DSNodeHandle srcNH = getValueDest(**(CS.arg_begin()+1));
- if (!destNH.getNode()) {
- setDestTo(**CS.arg_begin(), createNode());
- destNH = getValueDest(**CS.arg_begin());
- }
- if (!srcNH.getNode()) {
- setDestTo(**(CS.arg_begin() + 1), createNode());
- srcNH = getValueDest(**(CS.arg_begin() + 1));
- }
- destNH.getNode()->foldNodeCompletely();
- srcNH.getNode()->foldNodeCompletely();
- getLink(destNH.getNode()).mergeWith(getLink(srcNH.getNode()));
- destNH.getNode()->setModifiedMarker();
- srcNH.getNode()->setReadMarker();
+ // Merge the first & second arguments, and mark the memory read and
+ // modified.
+ DSNodeHandle RetNH = getValueDest(**CS.arg_begin());
+ RetNH.mergeWith(getValueDest(**(CS.arg_begin()+1)));
+ if (DSNode *N = RetNH.getNode())
+ N->setModifiedMarker()->setReadMarker();
return true;
}
case Intrinsic::memset_i32:
@@ -796,7 +788,7 @@
N->setModifiedMarker()->setUnknownNodeMarker();
const Type *RetTy = F->getFunctionType()->getReturnType();
if (const PointerType *PTy = dyn_cast<PointerType>(RetTy))
- N->mergeTypeInfo(PTy->getElementType(), Result.getOffset());
+ N->mergeTypeInfo(PTy->getElementType(), Result.getOffset());
}
// If this is freopen, merge the file descriptor passed in with the
@@ -1109,21 +1101,12 @@
} else if (F->getName() == "llva_memcpy") {
if (CS.getCaller()->getName() == "kmem_cache_alloc")
return false;
- DSNodeHandle destNH = getValueDest(**CS.arg_begin());
- DSNodeHandle srcNH = getValueDest(**(CS.arg_begin()+1));
- if (!destNH.getNode()) {
- setDestTo(**CS.arg_begin(), createNode());
- destNH = getValueDest(**CS.arg_begin());
- }
- if (!srcNH.getNode()) {
- setDestTo(**(CS.arg_begin() + 1), createNode());
- srcNH = getValueDest(**(CS.arg_begin() + 1));
- }
- destNH.getNode()->foldNodeCompletely();
- srcNH.getNode()->foldNodeCompletely();
- getLink(destNH.getNode()).mergeWith(getLink(srcNH.getNode()));
- destNH.getNode()->setModifiedMarker();
- srcNH.getNode()->setReadMarker();
+ // Merge the first & second arguments, and mark the memory read and
+ // modified.
+ DSNodeHandle RetNH = getValueDest(**CS.arg_begin());
+ RetNH.mergeWith(getValueDest(**(CS.arg_begin()+1)));
+ if (DSNode *N = RetNH.getNode())
+ N->setModifiedMarker()->setReadMarker();
return true;
#if 1
} else if (F->getName() == "llva_save_stackp") {
@@ -1154,7 +1137,7 @@
#endif
}
#endif
-
+
return false;
}
@@ -1162,16 +1145,6 @@
Value *Callee = CS.getCalledValue();
if (Function *F = dyn_cast<Function>(Callee)) {
-// if (F->getName() == "printk") {
-// CallSite::arg_iterator AI = CS.arg_begin(), E = CS.arg_end();
-// for (; AI != E; ++AI) {
-// // printf reads all pointer arguments.
-// if (isPointerType((*AI)->getType()))
-// if (DSNode *N = getValueDest(**AI).getNode())
-// N->setReadMarker();
-// }
-// return;
-// }
if (F->isExternal())
if (F->isIntrinsic() && visitIntrinsic(CS, F))
return;
@@ -1198,34 +1171,6 @@
if (visitExternal(CS,F))
return;
-
- if (F->getName() == "llva_invoke") {
- Value* FF = *(CS.arg_begin() + 1);
- if (isa<CastInst>(FF)) {
- FF = cast<CastInst>(FF)->getOperand(0);
- }
- if (isa<ConstantExpr>(FF) && cast<ConstantExpr>(FF)->getOpcode() == Instruction::Cast) {
- FF = cast<ConstantExpr>(FF)->getOperand(0);
- }
- //std::cerr << "invoke special for: "; FF->dump(); std::cerr << "\n";
- std::vector<DSNodeHandle> Args;
- // Calculate the arguments vector...
- for (CallSite::arg_iterator I = CS.arg_begin() + 2, E = CS.arg_end(); I != E; ++I) {
- Value* AA = *I;
- if (isa<CastInst>(AA)) {
- AA = cast<CastInst>(AA)->getOperand(0);
- }
- if (isPointerType(AA->getType()))
- Args.push_back(getValueDest(*AA));
- }
- // Add a new function call entry...
- if (isa<Function>(FF))
- FunctionCalls->push_back(DSCallSite(CS, DSNodeHandle(), cast<Function>(FF), Args));
- else
- FunctionCalls->push_back(DSCallSite(CS, DSNodeHandle(), getValueDest(*FF).getNode(), Args));
- return;
- }
-
// Unknown function, warn if it returns a pointer type or takes a
// pointer argument.
bool Warn = isPointerType(CS.getInstruction()->getType());
More information about the llvm-commits
mailing list