Home | History | Annotate | Download | only in src

Lines Matching defs:HBasicBlock

35 class HBasicBlock FINAL : public ZoneObject {
37 explicit HBasicBlock(HGraph* graph);
38 ~HBasicBlock() { }
56 const ZoneList<HBasicBlock*>* predecessors() const { return &predecessors_; }
58 const ZoneList<HBasicBlock*>* dominated_blocks() const {
67 HBasicBlock* dominator() const { return dominator_; }
92 bool Dominates(HBasicBlock* other) const;
93 bool EqualToOrDominates(HBasicBlock* other) const;
104 HBasicBlock* parent_loop_header() const { return parent_loop_header_; }
106 void set_parent_loop_header(HBasicBlock* block) {
115 int PredecessorIndexOf(HBasicBlock* predecessor) const;
124 void AssignCommonDominator(HBasicBlock* other);
134 void MarkAsInlineReturnTarget(HBasicBlock* inlined_entry_block) {
138 HBasicBlock* inlined_entry_block() { return inlined_entry_block_; }
172 void Goto(HBasicBlock* block,
176 void GotoNoSimulate(HBasicBlock* block, HSourcePosition position) {
187 void RegisterPredecessor(HBasicBlock* pred);
188 void AddDominatedBlock(HBasicBlock* block);
197 ZoneList<HBasicBlock*> predecessors_;
198 HBasicBlock* dominator_;
199 ZoneList<HBasicBlock*> dominated_blocks_;
207 HBasicBlock* parent_loop_header_;
209 HBasicBlock* inlined_entry_block_;
218 OStream& operator<<(OStream& os, const HBasicBlock& b);
223 explicit HPredecessorIterator(HBasicBlock* block)
227 HBasicBlock* Current() { return predecessor_list_->at(current_); }
231 const ZoneList<HBasicBlock*>* predecessor_list_;
238 explicit HInstructionIterator(HBasicBlock* block)
258 HLoopInformation(HBasicBlock* loop_header, Zone* zone)
267 const ZoneList<HBasicBlock*>* back_edges() const { return &back_edges_; }
268 const ZoneList<HBasicBlock*>* blocks() const { return &blocks_; }
269 HBasicBlock* loop_header() const { return loop_header_; }
270 HBasicBlock* GetLastBackEdge() const;
271 void RegisterBackEdge(HBasicBlock* block);
288 HBasicBlock* parent_header = loop_header()->parent_loop_header();
293 void AddBlock(HBasicBlock* block);
295 ZoneList<HBasicBlock*> back_edges_;
296 HBasicBlock* loop_header_;
297 ZoneList<HBasicBlock*> blocks_;
312 const ZoneList<HBasicBlock*>* blocks() const { return &blocks_; }
314 HBasicBlock* entry_block() const { return entry_block_; }
353 HBasicBlock* CreateBasicBlock();
486 HBasicBlock* entry_block_;
488 ZoneList<HBasicBlock*> blocks_;
537 Zone* HBasicBlock::zone() const { return graph_->zone(); }
651 HEnvironment* CopyAsLoopHeader(HBasicBlock* block) const;
669 void AddIncomingEdge(HBasicBlock* block, HEnvironment* other);
859 HBasicBlock* if_true,
860 HBasicBlock* if_false)
881 HBasicBlock* if_true() const { return if_true_; }
882 HBasicBlock* if_false() const { return if_false_; }
890 HBasicBlock* if_true_;
891 HBasicBlock* if_false_;
906 HBasicBlock* function_return() { return function_return_; }
948 HBasicBlock* function_return_;
974 HIfContinuation(HBasicBlock* true_branch,
975 HBasicBlock* false_branch)
980 void Capture(HBasicBlock* true_branch,
981 HBasicBlock* false_branch) {
988 void Continue(HBasicBlock** true_branch,
989 HBasicBlock** false_branch) {
1002 HBasicBlock* true_branch() const { return true_branch_; }
1003 HBasicBlock* false_branch() const { return false_branch_; }
1007 HBasicBlock* true_branch_;
1008 HBasicBlock* false_branch_;
1057 HBasicBlock* current_block() const { return current_block_; }
1058 void set_current_block(HBasicBlock* block) { current_block_ = block; }
1080 void Goto(HBasicBlock* from,
1081 HBasicBlock* target,
1086 void Goto(HBasicBlock* target,
1091 void GotoNoSimulate(HBasicBlock* from, HBasicBlock* target) {
1094 void GotoNoSimulate(HBasicBlock* target) {
1097 void AddLeaveInlined(HBasicBlock* block,
1313 HBasicBlock* CreateBasicBlock(HEnvironment* env);
1314 HBasicBlock* CreateLoopHeaderBlock();
1646 void Finish(HBasicBlock** then_continuation,
1647 HBasicBlock** else_continuation);
1651 MergeAtJoinBlock(HBasicBlock* block,
1657 HBasicBlock* block_;
1672 HBasicBlock* first_true_block_;
1673 HBasicBlock* first_false_block_;
1674 HBasicBlock* split_edge_merge_block_;
1724 HBasicBlock* header_block_;
1725 HBasicBlock* body_block_;
1726 HBasicBlock* exit_block_;
1727 HBasicBlock* exit_trampoline_block_;
1924 HBasicBlock* current_block_;
1939 HBasicBlock* after_deopt_block = CreateBasicBlock(
2063 HBasicBlock* break_block() { return break_block_; }
2064 void set_break_block(HBasicBlock* block) { break_block_ = block; }
2065 HBasicBlock* continue_block() { return continue_block_; }
2066 void set_continue_block(HBasicBlock* block) { continue_block_ = block; }
2072 HBasicBlock* break_block_;
2073 HBasicBlock* continue_block_;
2096 HBasicBlock* Get(BreakableStatement* stmt, BreakType type,
2119 HBasicBlock* CreateJoin(HBasicBlock* first,
2120 HBasicBlock* second,
2173 HBasicBlock* function_return() const {
2205 HBasicBlock* loop_entry);
2214 HBasicBlock* CreateLoop(IterationStatement* statement,
2215 HBasicBlock* loop_entry,
2216 HBasicBlock* body_exit,
2217 HBasicBlock* loop_successor,
2218 HBasicBlock* break_block);
2221 HBasicBlock* BuildLoopEntry();
2224 HBasicBlock* BuildLoopEntry(IterationStatement* statement);
2226 HBasicBlock* JoinContinue(IterationStatement* statement,
2227 HBasicBlock* exit_block,
2228 HBasicBlock* continue_block);
2282 HBasicBlock* true_block,
2283 HBasicBlock* false_block);