diff options
author | Chris Lattner <sabre@nondot.org> | 2002-04-17 03:24:59 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-04-17 03:24:59 +0000 |
commit | 79db55028c50a275f38264b11c2ae9bff5daa348 (patch) | |
tree | be138f2a5d1ea188babe89e3d8d37bdbd1098cb1 /llvm/lib/Analysis/DataStructure/FunctionRepBuilder.h | |
parent | 116dfdd6e190cf525aa6b25bf4d3717cadd45f7c (diff) | |
download | bcm5719-llvm-79db55028c50a275f38264b11c2ae9bff5daa348.tar.gz bcm5719-llvm-79db55028c50a275f38264b11c2ae9bff5daa348.zip |
Make data structure acurately get ALL edges, even loads of null fields of
nodes that are not shadow nodes
This fixes em3d to be _correct_ if not optimial
llvm-svn: 2274
Diffstat (limited to 'llvm/lib/Analysis/DataStructure/FunctionRepBuilder.h')
-rw-r--r-- | llvm/lib/Analysis/DataStructure/FunctionRepBuilder.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/llvm/lib/Analysis/DataStructure/FunctionRepBuilder.h b/llvm/lib/Analysis/DataStructure/FunctionRepBuilder.h index 54bfbba86df..e45ea419989 100644 --- a/llvm/lib/Analysis/DataStructure/FunctionRepBuilder.h +++ b/llvm/lib/Analysis/DataStructure/FunctionRepBuilder.h @@ -12,7 +12,7 @@ #include "llvm/Support/InstVisitor.h" // DEBUG_DATA_STRUCTURE_CONSTRUCTION - Define this to 1 if you want debug output -#define DEBUG_DATA_STRUCTURE_CONSTRUCTION 0 +//#define DEBUG_DATA_STRUCTURE_CONSTRUCTION 1 class FunctionRepBuilder; @@ -82,7 +82,8 @@ public: const std::vector<GlobalDSNode*> &getGlobalNodes() const {return GlobalNodes;} const std::vector<CallDSNode*> &getCallNodes() const { return CallNodes; } - void addShadowNode(ShadowDSNode *SN) { ShadowNodes.push_back(SN); } + + ShadowDSNode *makeSynthesizedShadow(const Type *Ty, DSNode *Parent); const PointerValSet &getRetNode() const { return RetNode; } @@ -96,12 +97,12 @@ private: // While the worklist still has instructions to process, process them! while (!WorkList.empty()) { Instruction *I = WorkList.back(); WorkList.pop_back(); -#if DEBUG_DATA_STRUCTURE_CONSTRUCTION +#ifdef DEBUG_DATA_STRUCTURE_CONSTRUCTION cerr << "Processing worklist inst: " << I; #endif visit(I); // Dispatch to a visitXXX function based on instruction type... -#if DEBUG_DATA_STRUCTURE_CONSTRUCTION +#ifdef DEBUG_DATA_STRUCTURE_CONSTRUCTION if (I->hasName() && ValueMap.count(I)) { cerr << "Inst %" << I->getName() << " value is:\n"; ValueMap[I].print(cerr); |