Lines Matching defs:bb
29 void Mir2Lir::CompileDalvikInstruction(MIR* mir, BasicBlock* bb, LIR* label_list) {
226 GenFilledNewArray(mir_graph_->NewMemCallInfo(bb, mir, kStatic,
231 GenFilledNewArray(mir_graph_->NewMemCallInfo(bb, mir, kStatic,
242 if (mir_graph_->IsBackedge(bb, bb->taken)) {
243 GenSuspendTestAndBranch(opt_flags, &label_list[bb->taken->id]);
245 OpUnconditionalBranch(&label_list[bb->taken->id]);
274 LIR* taken = &label_list[bb->taken->id];
275 LIR* fall_through = &label_list[bb->fall_through->id];
280 BasicBlock* target = is_taken ? bb->taken : bb->fall_through;
281 if (mir_graph_->IsBackedge(bb, target)) {
286 if (mir_graph_->IsBackwardsBranch(bb)) {
301 LIR* taken = &label_list[bb->taken->id];
302 LIR* fall_through = &label_list[bb->fall_through->id];
306 BasicBlock* target = is_taken ? bb->taken : bb->fall_through;
307 if (mir_graph_->IsBackedge(bb, target)) {
312 if (mir_graph_->IsBackwardsBranch(bb)) {
440 GenInvoke(mir_graph_->NewMemCallInfo(bb, mir, kStatic, true));
443 GenInvoke(mir_graph_->NewMemCallInfo(bb, mir, kStatic, false));
447 GenInvoke(mir_graph_->NewMemCallInfo(bb, mir, kDirect, false));
450 GenInvoke(mir_graph_->NewMemCallInfo(bb, mir, kDirect, true));
454 GenInvoke(mir_graph_->NewMemCallInfo(bb, mir, kVirtual, false));
457 GenInvoke(mir_graph_->NewMemCallInfo(bb, mir, kVirtual, true));
461 GenInvoke(mir_graph_->NewMemCallInfo(bb, mir, kSuper, false));
464 GenInvoke(mir_graph_->NewMemCallInfo(bb, mir, kSuper, true));
468 GenInvoke(mir_graph_->NewMemCallInfo(bb, mir, kInterface, false));
471 GenInvoke(mir_graph_->NewMemCallInfo(bb, mir, kInterface, true));
657 void Mir2Lir::HandleExtendedMethodMIR(BasicBlock* bb, MIR* mir) {
666 GenFusedFPCmpBranch(bb, mir, false /*gt bias*/, false /*double*/);
669 GenFusedFPCmpBranch(bb, mir, true /*gt bias*/, false /*double*/);
672 GenFusedFPCmpBranch(bb, mir, false /*gt bias*/, true /*double*/);
675 GenFusedFPCmpBranch(bb, mir, true /*gt bias*/, true /*double*/);
678 GenFusedLongCmpBranch(bb, mir);
681 GenSelect(bb, mir);
689 bool Mir2Lir::MethodBlockCodeGen(BasicBlock* bb) {
690 if (bb->block_type == kDead) return false;
691 current_dalvik_offset_ = bb->start_offset;
693 int block_id = bb->id;
695 block_label_list_[block_id].operands[0] = bb->start_offset;
704 if (bb->catch_entry) {
714 if (bb->block_type == kEntryBlock) {
718 } else if (bb->block_type == kExitBlock) {
722 for (mir = bb->first_mir_insn; mir != NULL; mir = mir->next) {
764 HandleExtendedMethodMIR(bb, mir);
768 CompileDalvikInstruction(mir, bb, block_label_list_);
776 if (bb->fall_through) {
777 OpUnconditionalBranch(&block_label_list_[bb->fall_through->id]);
786 BasicBlock*bb = NULL;
790 bb = mir_graph_->GetBasicBlock(dfs_index);
791 if (bb->block_type == kDalvikByteCode) {
795 if (bb == NULL) {
798 DCHECK_EQ(bb->start_offset, 0);
799 DCHECK(bb->first_mir_insn != NULL);
802 MIR* mir = bb->first_mir_insn;
809 GenSpecialCase(bb, mir, special_case);
819 for (BasicBlock* bb = iter.Next(); bb != NULL; bb = iter.Next()) {
820 MethodBlockCodeGen(bb);