aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/DataStructure/FunctionRepBuilder.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-04-17 03:24:59 +0000
committerChris Lattner <sabre@nondot.org>2002-04-17 03:24:59 +0000
commitfe14568a8122b7c9b832795594b7bae11b2b6cc4 (patch)
treec2d0983f282515c1933de2a3226670d314372071 /lib/Analysis/DataStructure/FunctionRepBuilder.h
parenta146183c2105911eade774490650389924dae524 (diff)
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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2274 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/DataStructure/FunctionRepBuilder.h')
-rw-r--r--lib/Analysis/DataStructure/FunctionRepBuilder.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/Analysis/DataStructure/FunctionRepBuilder.h b/lib/Analysis/DataStructure/FunctionRepBuilder.h
index 54bfbba86d..e45ea41998 100644
--- a/lib/Analysis/DataStructure/FunctionRepBuilder.h
+++ b/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);