summaryrefslogtreecommitdiffstats
path: root/llvm/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
commit79db55028c50a275f38264b11c2ae9bff5daa348 (patch)
treebe138f2a5d1ea188babe89e3d8d37bdbd1098cb1 /llvm/lib/Analysis/DataStructure/FunctionRepBuilder.h
parent116dfdd6e190cf525aa6b25bf4d3717cadd45f7c (diff)
downloadbcm5719-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.h9
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);
OpenPOWER on IntegriCloud