Lines Matching refs:BasicBlock

15 BasicBlock::BasicBlock(Zone* zone, Id id)
36 bool BasicBlock::LoopContains(BasicBlock* block) const {
45 void BasicBlock::AddSuccessor(BasicBlock* successor) {
49 void BasicBlock::AddPredecessor(BasicBlock* predecessor) {
53 void BasicBlock::RemovePredecessor(size_t index) {
57 void BasicBlock::AddNode(Node* node) { nodes_.push_back(node); }
59 void BasicBlock::set_control(Control control) { control_ = control; }
61 void BasicBlock::set_control_input(Node* control_input) {
68 void BasicBlock::set_loop_depth(int32_t loop_depth) {
72 void BasicBlock::set_rpo_number(int32_t rpo_number) {
76 void BasicBlock::set_loop_end(BasicBlock* loop_end) { loop_end_ = loop_end; }
78 void BasicBlock::set_loop_header(BasicBlock* loop_header) {
82 void BasicBlock::TrimNodes(iterator new_end) { nodes_.erase(new_end, end()); }
84 void BasicBlock::ResetRPOInfo() {
96 BasicBlock* BasicBlock::GetCommonDominator(BasicBlock* b1, BasicBlock* b2) {
107 void BasicBlock::Print() { StdoutStream{} << *this << "\n"; }
109 std::ostream& operator<<(std::ostream& os, const BasicBlock& block) {
117 const BasicBlock* current_block = &block;
128 std::ostream& operator<<(std::ostream& os, const BasicBlock::Control& c) {
130 case BasicBlock::kNone:
132 case BasicBlock::kGoto:
134 case BasicBlock::kCall:
136 case BasicBlock::kBranch:
138 case BasicBlock::kSwitch:
140 case BasicBlock::kDeoptimize:
142 case BasicBlock::kTailCall:
144 case BasicBlock::kReturn:
146 case BasicBlock::kThrow:
152 std::ostream& operator<<(std::ostream& os, const BasicBlock::Id& id) {
166 BasicBlock* Schedule::block(Node* node) const {
178 BasicBlock* Schedule::GetBlockById(BasicBlock::Id block_id) {
183 void Schedule::ClearBlockById(BasicBlock::Id block_id) {
189 BasicBlock* block = this->block(a);
193 BasicBlock* Schedule::NewBasicBlock() {
194 BasicBlock* block = zone_->New<BasicBlock>(
195 zone_, BasicBlock::Id::FromSize(all_blocks_.size()));
200 void Schedule::PlanNode(BasicBlock* block, Node* node) {
210 void Schedule::AddNode(BasicBlock* block, Node* node) {
220 void Schedule::AddGoto(BasicBlock* block, BasicBlock* succ) {
221 CHECK_EQ(BasicBlock::kNone, block->control());
222 block->set_control(BasicBlock::kGoto);
244 void Schedule::AddCall(BasicBlock* block, Node* call, BasicBlock* success_block,
245 BasicBlock* exception_block) {
246 CHECK_EQ(BasicBlock::kNone, block->control());
248 block->set_control(BasicBlock::kCall);
254 void Schedule::AddBranch(BasicBlock* block, Node* branch, BasicBlock* tblock,
255 BasicBlock* fblock) {
256 CHECK_EQ(BasicBlock::kNone, block->control());
258 block->set_control(BasicBlock::kBranch);
264 void Schedule::AddSwitch(BasicBlock* block, Node* sw, BasicBlock** succ_blocks,
266 CHECK_EQ(BasicBlock::kNone, block->control());
268 block->set_control(BasicBlock::kSwitch);
275 void Schedule::AddTailCall(BasicBlock* block, Node* input) {
276 CHECK_EQ(BasicBlock::kNone, block->control());
277 block->set_control(BasicBlock::kTailCall);
282 void Schedule::AddReturn(BasicBlock* block, Node* input) {
283 CHECK_EQ(BasicBlock::kNone, block->control());
284 block->set_control(BasicBlock::kReturn);
289 void Schedule::AddDeoptimize(BasicBlock* block, Node* input) {
290 CHECK_EQ(BasicBlock::kNone, block->control());
291 block->set_control(BasicBlock::kDeoptimize);
296 void Schedule::AddThrow(BasicBlock* block, Node* input) {
297 CHECK_EQ(BasicBlock::kNone, block->control());
298 block->set_control(BasicBlock::kThrow);
303 void Schedule::InsertBranch(BasicBlock* block, BasicBlock* end, Node* branch,
304 BasicBlock* tblock, BasicBlock* fblock) {
305 CHECK_NE(BasicBlock::kNone, block->control());
306 CHECK_EQ(BasicBlock::kNone, end->control());
308 block->set_control(BasicBlock::kBranch);
318 void Schedule::InsertSwitch(BasicBlock* block, BasicBlock* end, Node* sw,
319 BasicBlock** succ_blocks, size_t succ_count) {
320 CHECK_NE(BasicBlock::kNone, block->control());
321 CHECK_EQ(BasicBlock::kNone, end->control());
323 block->set_control(BasicBlock::kSwitch);
340 for (BasicBlock* block : all_blocks_copy) {
361 for (BasicBlock* block : all_blocks_) {
387 void Schedule::EnsureSplitEdgeForm(BasicBlock* block) {
392 BasicBlock* pred = *current_pred;
398 void Schedule::MovePhis(BasicBlock* from, BasicBlock* to) {
436 void Schedule::AddSuccessor(BasicBlock* block, BasicBlock* succ) {
441 void Schedule::MoveSuccessors(BasicBlock* from, BasicBlock* to) {
442 for (BasicBlock* const successor : from->successors()) {
444 for (BasicBlock*& predecessor : successor->predecessors()) {
451 void Schedule::SetControlInput(BasicBlock* block, Node* node) {
456 void Schedule::SetBlockForNode(BasicBlock* block, Node* node) {
464 for (BasicBlock* block :
475 for (BasicBlock const* predecessor : block->predecessors()) {
492 BasicBlock::Control control = block->control();
493 if (control != BasicBlock::kNone) {
502 for (BasicBlock const* successor : block->successors()) {