Lines Matching refs:BasicBlock
140 std::vector<llvm::BasicBlock*> basic_blocks_;
142 std::vector<llvm::BasicBlock*> basic_block_landing_pads_;
143 llvm::BasicBlock* current_bb_;
144 std::map<llvm::BasicBlock*, std::vector<std::pair<llvm::BasicBlock*, llvm::BasicBlock*>>>
146 llvm::BasicBlock* basic_block_unwind_;
186 void RewriteBasicBlock(llvm::BasicBlock* original_block);
188 void UpdatePhiInstruction(llvm::BasicBlock* old_basic_block,
189 llvm::BasicBlock* new_basic_block);
380 llvm::BasicBlock* GetBasicBlock(uint32_t dex_pc);
382 llvm::BasicBlock* CreateBasicBlockWithDexPC(uint32_t dex_pc,
387 llvm::BasicBlock* GetLandingPadBasicBlock(uint32_t dex_pc);
389 llvm::BasicBlock* GetUnwindBasicBlock();
466 void GBCExpanderPass::RewriteBasicBlock(llvm::BasicBlock* original_block) {
467 llvm::BasicBlock* curr_basic_block = original_block;
469 llvm::BasicBlock::iterator inst_iter = original_block->begin();
470 llvm::BasicBlock::iterator inst_end = original_block->end();
497 llvm::BasicBlock::iterator old_inst = inst_iter++;
501 llvm::BasicBlock* next_basic_block = irb_.GetInsertBlock();
532 llvm::BasicBlock* last_block = irb_.GetInsertBlock();
542 llvm::BasicBlock* lbb = basic_block_landing_pads_[i];
548 std::vector<std::pair<llvm::BasicBlock*, llvm::BasicBlock*>>& rewrite_pair
555 llvm::BasicBlock* succ_basic_block = term_inst->getSuccessor(succ_iter);
558 for (llvm::BasicBlock::iterator
576 llvm::BasicBlock* old_bb = rewrite_pair[j].first;
577 llvm::BasicBlock* new_bb = rewrite_pair[j].second;
582 llvm::BasicBlock* old_bb = rewrite_pair[j].first;
606 void GBCExpanderPass::UpdatePhiInstruction(llvm::BasicBlock* old_basic_block,
607 llvm::BasicBlock* new_basic_block) {
617 llvm::BasicBlock* succ_basic_block = term_inst->getSuccessor(succ_iter);
620 for (llvm::BasicBlock::iterator
684 llvm::BasicBlock* block_exception =
685 llvm::BasicBlock::Create(context_, "stack_overflow", func);
687 llvm::BasicBlock* block_continue =
688 llvm::BasicBlock::Create(context_, "stack_overflow_cont", func);
971 llvm::BasicBlock* basic_block_suspend = CreateBasicBlockWithDexPC(dex_pc, "suspend");
972 llvm::BasicBlock* basic_block_cont = CreateBasicBlockWithDexPC(dex_pc, "suspend_cont");
982 llvm::BasicBlock* basic_block_exception = CreateBasicBlockWithDexPC(dex_pc, "exception");
1265 llvm::BasicBlock* eq_neg_one = llvm::BasicBlock::Create(context_, "", parent);
1266 llvm::BasicBlock* ne_neg_one = llvm::BasicBlock::Create(context_, "", parent);
1267 llvm::BasicBlock* neg_one_cont =
1268 llvm::BasicBlock::Create(context_, "", parent);
1321 llvm::BasicBlock* entry_block = &func_->front();
1364 llvm::BasicBlock::iterator first_non_alloca = func_->getEntryBlock().begin();
1403 llvm::BasicBlock* first_basic_block = &func.front();
1406 llvm::BasicBlock::iterator first_non_alloca = first_basic_block->begin();
1419 llvm::BasicBlock* next_basic_block = irb_.GetInsertBlock();
1763 llvm::BasicBlock* block_original = irb_.GetInsertBlock();
1769 llvm::BasicBlock* block_cont =
1772 llvm::BasicBlock* block_load_class =
1795 llvm::BasicBlock* block_after_load_class = irb_.GetInsertBlock();
1813 llvm::BasicBlock* block_load_static =
1816 llvm::BasicBlock* block_check_init = CreateBasicBlockWithDexPC(dex_pc, "init");
1817 llvm::BasicBlock* block_cont = CreateBasicBlockWithDexPC(dex_pc, "cont");
1860 llvm::BasicBlock* block_after_load_static = irb_.GetInsertBlock();
2062 llvm::BasicBlock* block_str_exist =
2065 llvm::BasicBlock* block_str_resolve =
2068 llvm::BasicBlock* block_cont =
2099 llvm::BasicBlock* block_pre_cont = irb_.GetInsertBlock();
2158 llvm::BasicBlock* block_test_class =
2161 llvm::BasicBlock* block_test_sub_class =
2164 llvm::BasicBlock* block_cont =
2212 llvm::BasicBlock* block_nullp =
2215 llvm::BasicBlock* block_test_class =
2218 llvm::BasicBlock* block_class_equals =
2221 llvm::BasicBlock* block_test_sub_class =
2224 llvm::BasicBlock* block_cont =
2564 llvm::BasicBlock* block_exception = CreateBasicBlockWithDexPC(dex_pc, "div0");
2566 llvm::BasicBlock* block_continue = CreateBasicBlockWithDexPC(dex_pc, "cont");
2583 llvm::BasicBlock* lpad = GetLandingPadBasicBlock(dex_pc);
2591 llvm::BasicBlock* block_continue =
2601 llvm::BasicBlock* block_exception =
2604 llvm::BasicBlock* block_continue =
2626 llvm::BasicBlock* lpad = GetLandingPadBasicBlock(dex_pc);
2634 llvm::BasicBlock* block_continue =
2646 llvm::BasicBlock* block_exception =
2649 llvm::BasicBlock* block_continue =
2692 llvm::BasicBlock* GBCExpanderPass::
2700 return llvm::BasicBlock::Create(context_, name, func_);
2703 llvm::BasicBlock* GBCExpanderPass::GetBasicBlock(uint32_t dex_pc) {
2733 llvm::BasicBlock* GBCExpanderPass::GetLandingPadBasicBlock(uint32_t dex_pc) {
2743 llvm::BasicBlock* block_lpad = basic_block_landing_pads_[ti_offset];
2762 block_lpad = llvm::BasicBlock::Create(context_, lpadname, func_);
2798 llvm::BasicBlock* GBCExpanderPass::GetUnwindBasicBlock() {
2806 llvm::BasicBlock::Create(context_, "exception_unwind", func_);
2831 if (llvm::BasicBlock* lpad = GetLandingPadBasicBlock(dex_pc)) {
2843 llvm::BasicBlock* block_cont = CreateBasicBlockWithDexPC(dex_pc, "cont");
2845 if (llvm::BasicBlock* lpad = GetLandingPadBasicBlock(dex_pc)) {