Changes in directory llvm-poolalloc/lib/DSA:
CallTargets.cpp updated: 1.9 -> 1.10 DataStructureOpt.cpp updated: 1.16 -> 1.17 DataStructureStats.cpp updated: 1.26 -> 1.27 Local.cpp updated: 1.165 -> 1.166 Makefile updated: 1.6 -> 1.7 --- Log message: Build a dynamically loadable library file. Update to latest and greatest LLVM API. --- Diffs of the changes: (+34 -16) CallTargets.cpp | 1 + DataStructureOpt.cpp | 1 + DataStructureStats.cpp | 1 + Local.cpp | 44 ++++++++++++++++++++++++++++---------------- Makefile | 3 +++ 5 files changed, 34 insertions(+), 16 deletions(-) Index: llvm-poolalloc/lib/DSA/CallTargets.cpp diff -u llvm-poolalloc/lib/DSA/CallTargets.cpp:1.9 llvm-poolalloc/lib/DSA/CallTargets.cpp:1.10 --- llvm-poolalloc/lib/DSA/CallTargets.cpp:1.9 Wed Jan 10 12:10:32 2007 +++ llvm-poolalloc/lib/DSA/CallTargets.cpp Wed Jan 10 13:59:52 2007 @@ -23,6 +23,7 @@ #include "dsa/DSGraph.h" #include "dsa/CallTargets.h" #include "llvm/ADT/Statistic.h" +#include "llvm/Support/Debug.h" #include "llvm/Support/Streams.h" #include "llvm/Constants.h" #include <ostream> Index: llvm-poolalloc/lib/DSA/DataStructureOpt.cpp diff -u llvm-poolalloc/lib/DSA/DataStructureOpt.cpp:1.16 llvm-poolalloc/lib/DSA/DataStructureOpt.cpp:1.17 --- llvm-poolalloc/lib/DSA/DataStructureOpt.cpp:1.16 Wed Jan 10 12:10:32 2007 +++ llvm-poolalloc/lib/DSA/DataStructureOpt.cpp Wed Jan 10 13:59:52 2007 @@ -19,6 +19,7 @@ #include "llvm/Constant.h" #include "llvm/Type.h" #include "llvm/ADT/Statistic.h" +#include "llvm/Support/Debug.h" using namespace llvm; namespace { Index: llvm-poolalloc/lib/DSA/DataStructureStats.cpp diff -u llvm-poolalloc/lib/DSA/DataStructureStats.cpp:1.26 llvm-poolalloc/lib/DSA/DataStructureStats.cpp:1.27 --- llvm-poolalloc/lib/DSA/DataStructureStats.cpp:1.26 Wed Jan 10 12:10:32 2007 +++ llvm-poolalloc/lib/DSA/DataStructureStats.cpp Wed Jan 10 13:59:52 2007 @@ -19,6 +19,7 @@ #include "llvm/Support/InstVisitor.h" #include "llvm/Support/Streams.h" #include "llvm/ADT/Statistic.h" +#include "llvm/Support/Debug.h" #include <ostream> using namespace llvm; Index: llvm-poolalloc/lib/DSA/Local.cpp diff -u llvm-poolalloc/lib/DSA/Local.cpp:1.165 llvm-poolalloc/lib/DSA/Local.cpp:1.166 --- llvm-poolalloc/lib/DSA/Local.cpp:1.165 Wed Jan 10 12:10:32 2007 +++ llvm-poolalloc/lib/DSA/Local.cpp Wed Jan 10 13:59:52 2007 @@ -171,7 +171,8 @@ void visitStoreInst(StoreInst &SI); void visitCallInst(CallInst &CI); void visitInvokeInst(InvokeInst &II); - void visitSetCondInst(SetCondInst &SCI); + void visitICmpInst(ICmpInst &I); + void visitFCmpInst(FCmpInst &I); void visitFreeInst(FreeInst &FI); void visitCastInst(CastInst &CI); void visitInstruction(Instruction &I); @@ -378,7 +379,14 @@ Dest.mergeWith(getValueDest(*SI.getOperand(2))); } -void GraphBuilder::visitSetCondInst(SetCondInst &SCI) { +void GraphBuilder::visitICmpInst(ICmpInst &SCI) { + if (!isPointerType(SCI.getOperand(0)->getType()) || + isa<ConstantPointerNull>(SCI.getOperand(1))) return; // Only pointers + if(!IgnoreSetCC) + ScalarMap[SCI.getOperand(0)].mergeWith(getValueDest(*SCI.getOperand(1))); +} + +void GraphBuilder::visitFCmpInst(FCmpInst &SCI) { if (!isPointerType(SCI.getOperand(0)->getType()) || isa<ConstantPointerNull>(SCI.getOperand(1))) return; // Only pointers if(!IgnoreSetCC) @@ -481,8 +489,12 @@ I != E; ++I) if (const StructType *STy = dyn_cast<StructType>(*I)) { const ConstantInt* CUI = cast<ConstantInt>(I.getOperand()); +#if 0 unsigned FieldNo = CUI->getType()->isSigned() ? CUI->getSExtValue() : CUI->getZExtValue(); +#else + int FieldNo = CUI->getSExtValue(); +#endif Offset += (unsigned)TD.getStructLayout(STy)->MemberOffsets[FieldNo]; } else if (isa<PointerType>(*I)) { if (!isa<Constant>(I.getOperand()) || @@ -768,7 +780,7 @@ // argument node. const DSNodeHandle &EndPtrNH = getValueDest(**(CS.arg_begin()+1)); if (DSNode *End = EndPtrNH.getNode()) { - End->mergeTypeInfo(PointerType::get(Type::SByteTy), + End->mergeTypeInfo(PointerType::get(Type::Int8Ty), EndPtrNH.getOffset(), false); End->setModifiedMarker(); DSNodeHandle &Link = getLink(EndPtrNH); @@ -985,7 +997,7 @@ const DSNodeHandle &VAList = getValueDest(**AI); if (DSNode *N = VAList.getNode()) { N->setReadMarker(); - N->mergeTypeInfo(PointerType::get(Type::SByteTy), + N->mergeTypeInfo(PointerType::get(Type::Int8Ty), VAList.getOffset(), false); DSNodeHandle &VAListObjs = getLink(VAList); @@ -1133,7 +1145,7 @@ //Get the Module first Module * M = F->getParent(); //Now create a meta pool for this value, DSN Node - const Type * VoidPtrType = PointerType::get(Type::SByteTy); + const Type * VoidPtrType = PointerType::get(Type::Int8Ty); TheMetaPool = new GlobalVariable( /*type=*/ VoidPtrType, /*isConstant=*/ false, @@ -1151,10 +1163,10 @@ //Assumes AddPoolDescToMetaPool is in the module CastInst *CastMetaPool = CastInst::createPointerCast (TheMetaPool, - PointerType::get(Type::SByteTy), "metapool.casted", InsertPoint); + PointerType::get(Type::Int8Ty), "metapool.casted", InsertPoint); CastInst *CastActualPD = CastInst::createPointerCast (actualPD, - PointerType::get(Type::SByteTy), "poolhandle.lscasted", InsertPoint); + PointerType::get(Type::Int8Ty), "poolhandle.lscasted", InsertPoint); // Create the call to AddPoolDescToMetaPool std::vector<Value *> args(1,CastMetaPool); @@ -1196,7 +1208,7 @@ //Get the Module first Module * M = F->getParent(); //Now create a meta pool for this value, DSN Node - const Type * VoidPtrType = PointerType::get(Type::SByteTy); + const Type * VoidPtrType = PointerType::get(Type::Int8Ty); TheMetaPool = new GlobalVariable( /*type=*/ VoidPtrType, /*isConstant=*/ false, @@ -1213,10 +1225,10 @@ //Assumes AddPoolDescToMetaPool is in the module CastInst *CastMetaPool = CastInst::createPointerCast (TheMetaPool, - PointerType::get(Type::SByteTy), "metapool.casted", InsertPoint); + PointerType::get(Type::Int8Ty), "metapool.casted", InsertPoint); CastInst *CastActualPD = CastInst::createPointerCast (actualPD, - PointerType::get(Type::SByteTy), "poolhandle.lscasted", InsertPoint); + PointerType::get(Type::Int8Ty), "poolhandle.lscasted", InsertPoint); // Create the call to AddPoolDescToMetaPool std::vector<Value *> args(1,CastMetaPool); @@ -1290,7 +1302,7 @@ if (G.getPoolDescriptorsMap().count(N)== 0) { //Here we insert a global meta pool //Now create a meta pool for this value, DSN Node - const Type * VoidPtrType = PointerType::get(Type::SByteTy); + const Type * VoidPtrType = PointerType::get(Type::Int8Ty); TheMetaPool = new GlobalVariable( /*type=*/ VoidPtrType, /*isConstant=*/ false, @@ -1312,14 +1324,14 @@ Instruction *InsertPoint = CS.getInstruction(); //Assumes AddPoolDescToMetaPool is in the module - const Type * VoidPtrType = PointerType::get(Type::SByteTy); + const Type * VoidPtrType = PointerType::get(Type::Int8Ty); const Type * VoidPtrPtrType = PointerType::get(VoidPtrType); CastInst *CastMetaPool = CastInst::createPointerCast (TheMetaPool, VoidPtrPtrType, "metapool.casted", InsertPoint); CastInst *CastActualPD = CastInst::createPointerCast (actualPD, - PointerType::get(Type::SByteTy), "poolhandle.lscasted", InsertPoint); + PointerType::get(Type::Int8Ty), "poolhandle.lscasted", InsertPoint); // Create the call to AddPoolDescToMetaPool std::vector<Value *> args(1,CastMetaPool); @@ -1376,7 +1388,7 @@ //Here we insert a global meta pool //Get the Module first //Now create a meta pool for this value, DSN Node - const Type * VoidPtrType = PointerType::get(Type::SByteTy); + const Type * VoidPtrType = PointerType::get(Type::Int8Ty); TheMetaPool = new GlobalVariable( /*type=*/ VoidPtrType, /*isConstant=*/ false, @@ -1391,14 +1403,14 @@ Instruction *InsertPoint = CS.getInstruction(); //Assumes AddPoolDescToMetaPool is in the module - const Type * VoidPtrType = PointerType::get(Type::SByteTy); + const Type * VoidPtrType = PointerType::get(Type::Int8Ty); const Type * VoidPtrPtrType = PointerType::get(VoidPtrType); CastInst *CastMetaPool = CastInst::createPointerCast (TheMetaPool, VoidPtrPtrType, "metapool.casted", InsertPoint); CastInst *CastActualPD = CastInst::createPointerCast (actualPD, - PointerType::get(Type::SByteTy), "poolhandle.lscasted", InsertPoint); + PointerType::get(Type::Int8Ty), "poolhandle.lscasted", InsertPoint); // Create the call to AddPoolDescToMetaPool std::vector<Value *> args(1,CastMetaPool); Index: llvm-poolalloc/lib/DSA/Makefile diff -u llvm-poolalloc/lib/DSA/Makefile:1.6 llvm-poolalloc/lib/DSA/Makefile:1.7 --- llvm-poolalloc/lib/DSA/Makefile:1.6 Wed Dec 13 23:51:06 2006 +++ llvm-poolalloc/lib/DSA/Makefile Wed Jan 10 13:59:52 2007 @@ -8,6 +8,9 @@ ##===----------------------------------------------------------------------===## LEVEL = ../.. +SHARED_LIBRARY=1 +LOADABLE_MODULE = 1 +DONT_BUILD_RELINKED=1 LIBRARYNAME = LLVMDataStructure include $(LEVEL)/Makefile.common _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits