/** * Get the basic block in the subroutine for the given instruction. If * the block doesn't exist yet, it is created, and a work list item is * added which will populate it. Note that if start is an exception * thrower, the block returned will be its ETB. * * @param start * the start instruction for the block * @return the basic block for the instruction */ public BasicBlock getBlock(InstructionHandle start) { BasicBlock block = blockMap.get(start); if (block == null) { block = allocateBasicBlock(); blockMap.put(start, block); // Block is an exception handler? CodeExceptionGen exceptionGen = exceptionHandlerMap.getHandlerForStartInstruction(start); if (exceptionGen != null) { block.setExceptionGen(null, exceptionGen); } addItem(new WorkListItem(start, block)); } return block; }
resultBlock.setExceptionGen(null, subBlock.getExceptionGen());
/** * Get the basic block in the subroutine for the given instruction. If * the block doesn't exist yet, it is created, and a work list item is * added which will populate it. Note that if start is an exception * thrower, the block returned will be its ETB. * * @param start * the start instruction for the block * @return the basic block for the instruction */ public BasicBlock getBlock(InstructionHandle start) { BasicBlock block = blockMap.get(start); if (block == null) { block = allocateBasicBlock(); blockMap.put(start, block); // Block is an exception handler? CodeExceptionGen exceptionGen = exceptionHandlerMap.getHandlerForStartInstruction(start); if (exceptionGen != null) { block.setExceptionGen(null, exceptionGen); } addItem(new WorkListItem(start, block)); } return block; }
resultBlock.setExceptionGen(null, subBlock.getExceptionGen());