Home | History | Annotate | Download | only in optimizing

Lines Matching defs:HBasicBlock

29 class HBasicBlock;
63 friend class HBasicBlock;
84 const GrowableArray<HBasicBlock*>& GetBlocks() const { return blocks_; }
86 HBasicBlock* GetEntryBlock() const { return entry_block_; }
87 HBasicBlock* GetExitBlock() const { return exit_block_; }
89 void SetEntryBlock(HBasicBlock* block) { entry_block_ = block; }
90 void SetExitBlock(HBasicBlock* block) { exit_block_ = block; }
92 void AddBlock(HBasicBlock* block);
103 void SplitCriticalEdge(HBasicBlock* block, HBasicBlock* successor);
104 void SimplifyLoop(HBasicBlock* header);
146 const GrowableArray<HBasicBlock*>& GetReversePostOrder() const {
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)
197 HBasicBlock* GetHeader() const {
201 void AddBackEdge(HBasicBlock* back_edge) {
205 void RemoveBackEdge(HBasicBlock* back_edge) {
209 bool IsBackEdge(HBasicBlock* block) {
220 HBasicBlock* GetPreHeader() const;
222 const GrowableArray<HBasicBlock*>& GetBackEdges() const {
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)
272 const GrowableArray<HBasicBlock*>& GetPredecessors() const {
276 const GrowableArray<HBasicBlock*>& GetSuccessors() const {
280 void AddBackEdge(HBasicBlock* back_edge) {
293 HBasicBlock* GetDominator() const { return dominator_; }
294 void SetDominator(HBasicBlock* dominator) { dominator_ = dominator; }
308 void AddSuccessor(HBasicBlock* block) {
313 void ReplaceSuccessor(HBasicBlock* existing, HBasicBlock* new_block) {
321 void RemovePredecessor(HBasicBlock* block) {
329 void AddPredecessor(HBasicBlock* block) {
334 size_t GetPredecessorIndexOf(HBasicBlock* predecessor) {
343 size_t GetSuccessorIndexOf(HBasicBlock* successor) {
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_; }
501 void SetBlock(HBasicBlock* block) { block_ = block; }
581 HBasicBlock* block_;
609 friend class HBasicBlock;
858 HBasicBlock* GetSuccessor() const {
879 HBasicBlock* IfTrueSuccessor() const {
883 HBasicBlock* IfFalseSuccessor() const {
1557 virtual void VisitBasicBlock(HBasicBlock* block);
1582 HBasicBlock* Current() const { return graph_.GetBlocks().Get(index_); }
1597 HBasicBlock* Current() const { return graph_.GetReversePostOrder().Get(index_); }
1613 HBasicBlock* Current() const { return graph_.GetReversePostOrder().Get(index_ - 1); }