[llvm-commits] [parallel] CVS: llvm/include/llvm/Analysis/ParallelInfo.h

Misha Brukman brukman at cs.uiuc.edu
Fri Apr 16 11:35:01 PDT 2004


Changes in directory llvm/include/llvm/Analysis:

ParallelInfo.h updated: 1.1.2.2 -> 1.1.2.3

---
Log message:

Accept a header BasicBlock in ParallelSeq constructor, various cleanups.


---
Diffs of the changes:  (+20 -20)

Index: llvm/include/llvm/Analysis/ParallelInfo.h
diff -u llvm/include/llvm/Analysis/ParallelInfo.h:1.1.2.2 llvm/include/llvm/Analysis/ParallelInfo.h:1.1.2.3
--- llvm/include/llvm/Analysis/ParallelInfo.h:1.1.2.2	Sun Feb  8 13:56:14 2004
+++ llvm/include/llvm/Analysis/ParallelInfo.h	Fri Apr 16 11:35:12 2004
@@ -30,6 +30,7 @@
 ///
 class ParallelRegion {
   ParallelSeq *parent;
+  std::vector<ParallelSeq*> children;
   std::vector<BasicBlock*> Blocks;
 
 public:
@@ -43,12 +44,14 @@
   ParallelRegion(ParallelSeq *PS) : parent(PS) {}
   ParallelRegion(BasicBlock *BB) : parent(0) { Blocks.push_back(BB); }
   ParallelRegion() : parent(0) {}
+  ~ParallelRegion();
 
   static ParallelRegion* discoverRegion(BasicBlock *pbrBlock,
                                         BasicBlock *begin, BasicBlock *end);
   void addBasicBlock(BasicBlock *BB) { Blocks.push_back(BB); }
   void removeBasicBlock(BasicBlock *BB);
   bool contains(const BasicBlock *BB);
+  void addChildSeq(ParallelSeq *PS);
 
   ParallelSeq *getParent() { return parent; }
 
@@ -63,9 +66,8 @@
 /// before the end of the function.
 ///
 class ParallelSeq { 
-  ParallelSeq *ParentSeq;
+  ParallelRegion *parent;
   BasicBlock *SeqHeader;
-  std::vector<ParallelSeq*> ParaSubSeqs; // Other parallel sequences contained
   std::vector<ParallelRegion*> Regions;  // Parallel code regions
   std::vector<BasicBlock*> JoinBlocks;   // Blocks containing "join", if any
 
@@ -73,16 +75,16 @@
   const ParallelSeq &operator=(const ParallelSeq &); // DO NOT IMPLEMENT
 
 public:
+  ParallelSeq(ParallelRegion *PR0, ParallelRegion *PR1, BasicBlock *SeqHd = 0) 
+    : parent(0), SeqHeader(SeqHd) {
+    Regions.push_back(PR0);
+    Regions.push_back(PR1);
+  }
+
   /// contains - Return true of the specified basic block is in this sequence
   ///
   bool contains(const BasicBlock *BB) const;
   
-  /// iterator/begin/end - Return the seqs contained entirely within this seq.
-  ///
-  typedef std::vector<ParallelSeq*>::const_iterator iterator;
-  iterator begin() const { return ParaSubSeqs.begin(); }
-  iterator end() const { return ParaSubSeqs.end(); }
-
   /// region_iterator/region_begin/region_end - Return the regions contained
   /// within this parallel sequence.
   ///
@@ -99,16 +101,13 @@
   ///
   BasicBlock *getHeader() const { return SeqHeader; }
 
+  void setParent(ParallelRegion *PR) { parent = PR; }
+
   void print(std::ostream &O, unsigned Depth = 0) const;
   void dump() const;
 
 private:
   friend class ParallelInfo;
-  inline ParallelSeq(ParallelRegion *PR0, ParallelRegion *PR1) 
-    : ParentSeq(0), SeqHeader(0) {
-    Regions.push_back(PR0);
-    Regions.push_back(PR1);
-  }
 };
 
 
@@ -120,20 +119,21 @@
   std::vector<ParallelSeq*> TopLevelSeqs;
   friend class ParallelSeq;
 
-  /// getAnalysisUsage - Requires dominator sets
-  ///
-  virtual void getAnalysisUsage(AnalysisUsage &AU) const;
+  void print(std::ostream &O) const;
+
+  ParallelSeq* ConsiderParallelSeq(BasicBlock *BB, const DominatorSet &DS);
+
+public:
 
   /// runOnFunction - Calculate the parallel region information.
   ///
   virtual bool runOnFunction(Function &F);
 
-  void print(std::ostream &O) const;
+  /// getAnalysisUsage - Requires dominator sets
+  ///
+  virtual void getAnalysisUsage(AnalysisUsage &AU) const;
 
   void Calculate(const DominatorSet &DS);
-  ParallelSeq* ConsiderParallelSeq(BasicBlock *BB, const DominatorSet &DS);
-
-public:
 
   /// iterator/begin/end - The interface to the top-level parallel sequences in
   /// the current function.





More information about the llvm-commits mailing list