Lines Matching refs:HBasicBlock
29 class HBasicBlock; variable
63 friend class HBasicBlock; variable
84 const GrowableArray<HBasicBlock*>& GetBlocks() const { return blocks_; } in GetBlocks()
86 HBasicBlock* GetEntryBlock() const { return entry_block_; } in GetEntryBlock()
87 HBasicBlock* GetExitBlock() const { return exit_block_; } in GetExitBlock()
89 void SetEntryBlock(HBasicBlock* block) { entry_block_ = block; } in SetEntryBlock()
90 void SetExitBlock(HBasicBlock* block) { exit_block_ = block; } in SetExitBlock()
92 void AddBlock(HBasicBlock* block);
103 void SplitCriticalEdge(HBasicBlock* block, HBasicBlock* successor);
104 void SimplifyLoop(HBasicBlock* header);
146 const GrowableArray<HBasicBlock*>& GetReversePostOrder() const { in GetReversePostOrder()
151 HBasicBlock* FindCommonDominator(HBasicBlock* first, HBasicBlock* second) const;
152 void VisitBlockForDominatorTree(HBasicBlock* block,
153 HBasicBlock* predecessor,
156 void VisitBlockForBackEdges(HBasicBlock* block,
164 GrowableArray<HBasicBlock*> blocks_;
167 GrowableArray<HBasicBlock*> reverse_post_order_;
169 HBasicBlock* entry_block_;
170 HBasicBlock* exit_block_;
192 HLoopInformation(HBasicBlock* header, HGraph* graph) in HLoopInformation()
197 HBasicBlock* GetHeader() const { in GetHeader()
201 void AddBackEdge(HBasicBlock* back_edge) { in AddBackEdge()
205 void RemoveBackEdge(HBasicBlock* back_edge) { in RemoveBackEdge()
209 bool IsBackEdge(HBasicBlock* block) { in IsBackEdge()
220 HBasicBlock* GetPreHeader() const;
222 const GrowableArray<HBasicBlock*>& GetBackEdges() const { in GetBackEdges()
236 bool Contains(const HBasicBlock& block) const;
246 void PopulateRecursive(HBasicBlock* block);
248 HBasicBlock* header_;
249 GrowableArray<HBasicBlock*> back_edges_;
260 class HBasicBlock : public ArenaObject {
262 explicit HBasicBlock(HGraph* graph) in HBasicBlock() function
272 const GrowableArray<HBasicBlock*>& GetPredecessors() const { in GetPredecessors()
276 const GrowableArray<HBasicBlock*>& GetSuccessors() const { in GetSuccessors()
280 void AddBackEdge(HBasicBlock* back_edge) { in AddBackEdge()
293 HBasicBlock* GetDominator() const { return dominator_; } in GetDominator()
294 void SetDominator(HBasicBlock* dominator) { dominator_ = dominator; } in SetDominator()
308 void AddSuccessor(HBasicBlock* block) { in AddSuccessor()
313 void ReplaceSuccessor(HBasicBlock* existing, HBasicBlock* new_block) { in ReplaceSuccessor()
321 void RemovePredecessor(HBasicBlock* block) { in RemovePredecessor()
329 void AddPredecessor(HBasicBlock* block) { in AddPredecessor()
334 size_t GetPredecessorIndexOf(HBasicBlock* predecessor) { in GetPredecessorIndexOf()
343 size_t GetSuccessorIndexOf(HBasicBlock* successor) { in GetSuccessorIndexOf()
388 bool Dominates(HBasicBlock* block) const;
398 GrowableArray<HBasicBlock*> predecessors_;
399 GrowableArray<HBasicBlock*> successors_;
403 HBasicBlock* dominator_;
408 DISALLOW_COPY_AND_ASSIGN(HBasicBlock);
500 HBasicBlock* GetBlock() const { return block_; } in GetBlock()
501 void SetBlock(HBasicBlock* block) { block_ = block; } in SetBlock()
581 HBasicBlock* block_;
609 friend class HBasicBlock; variable
858 HBasicBlock* GetSuccessor() const { in GetSuccessor()
879 HBasicBlock* IfTrueSuccessor() const { in IfTrueSuccessor()
883 HBasicBlock* IfFalseSuccessor() const { in IfFalseSuccessor()
1557 virtual void VisitBasicBlock(HBasicBlock* block);
1582 HBasicBlock* Current() const { return graph_.GetBlocks().Get(index_); } in Current()
1597 HBasicBlock* Current() const { return graph_.GetReversePostOrder().Get(index_); } in Current()
1613 HBasicBlock* Current() const { return graph_.GetReversePostOrder().Get(index_ - 1); } in Current()