/dalvik/dx/src/com/android/dx/ssa/ |
H A D | SsaInsn.java | 30 /** {@code non-null;} the block that contains this instance */ 31 private final SsaBasicBlock block; field in class:SsaInsn 40 * @param block {@code non-null;} block containing this insn. Can 43 protected SsaInsn(RegisterSpec result, SsaBasicBlock block) { argument 44 if (block == null) { 45 throw new NullPointerException("block == null"); 48 this.block = block; 56 * @param block { 59 makeFromRop(Insn insn, SsaBasicBlock block) argument [all...] |
H A D | SsaConverter.java | 55 * The exit block, added here, is not considered for edge splitting 126 * requiring each block with a final instruction that returns a 149 * New blocks are added to the end of the block list during 153 SsaBasicBlock block = blocks.get(i); 154 if (nodeNeedsUniquePredecessor(block)) { 155 block.insertNewPredecessor(); 161 * @param block {@code non-null;} block in question 165 private static boolean nodeNeedsUniquePredecessor(SsaBasicBlock block) { argument 167 * Any block wit 265 needsNewSuccessor(SsaBasicBlock block, SsaBasicBlock succ) argument [all...] |
H A D | SsaRenamer.java | 57 * a mapping table for the current block being processed. Once the 58 * current block has been processed, this mapping table is then copied 78 * indexed by block index; register version state for each block start. 141 // Initial state for entry block 162 // Rename each block in dom-tree DFS order. 164 public void visitBlock (SsaBasicBlock block, 166 new BlockRenamer(block).process(); 273 * Processes all insns in a block and renames their registers 277 /** {@code non-null;} block w 278 private final SsaBasicBlock block; field in class:SsaRenamer.BlockRenamer 309 BlockRenamer(final SsaBasicBlock block) argument [all...] |
H A D | SsaMethod.java | 41 /** basic blocks, indexed by block index */ 44 /** Index of first executed block in method */ 48 * Index of exit block, which exists only in SSA form, 128 * Builds a BitSet of block indices from a basic block list and a list 132 * @param labelList list of rop block labels 133 * @return BitSet of block indices 147 * Builds an IntList of block indices from a basic block list and a list 151 * @param labelList list of rop block label 224 getGoto(SsaBasicBlock block) argument [all...] |
H A D | SCCP.java | 56 /** Bitset containing bits for each block that has been found executable */ 95 * Adds a SSA basic block to the CFG worklist if it's unexecuted, or 199 * Simulate a block and note the results in the lattice. 200 * @param block Block to visit 202 private void simulateBlock(SsaBasicBlock block) { argument 203 for (SsaInsn insn : block.getInsns()) { 213 * Simulate the phis in a block and note the results in the lattice. 214 * @param block Block to visit 216 private void simulatePhiBlock(SsaBasicBlock block) { argument 217 for (SsaInsn insn : block [all...] |
H A D | DeadCodeRemover.java | 29 * block to entry block. 123 * Removes all instructions from every unreachable block. 130 for (SsaBasicBlock block : ssaMeth.getBlocks()) { 131 if (block.isReachable()) continue; 134 for (int i = 0; i < block.getInsns().size(); i++) { 135 SsaInsn insn = block.getInsns().get(i); 207 * if the insn is null for reasons stated in the code block.
|
H A D | LocalVariableExtractor.java | 38 /** {@code non-null;} block list for the method */ 98 * Processes a single block. 100 * @param blockIndex {@code >= 0;} block index of the block to process 105 SsaBasicBlock block = blocks.get(blockIndex); 106 List<SsaInsn> insns = block.getInsns(); 109 // The exit block has no insns and no successors 190 * where the start state for a block changes). 193 IntList successors = block.getSuccessorList(); 195 int primarySuccessor = block [all...] |
H A D | Dominators.java | 53 /** indexed by basic block index */ 94 private BitSet getSuccs(SsaBasicBlock block) { argument 96 return block.getPredecessors(); 98 return block.getSuccessors(); 102 private BitSet getPreds(SsaBasicBlock block) { argument 104 return block.getSuccessors(); 106 return block.getPredecessors(); 113 * @param in Basic block whose DFS info we are path compressing. 252 * from the entry block or the exit block) [all...] |
/dalvik/dexgen/src/com/android/dexgen/dex/code/ |
H A D | BlockAddresses.java | 27 * the blocks of a particular method. Each block has a corresponding 32 * block (indexed by basic block label) */ 36 * of each basic block (indexed by basic block label) */ 40 * final instruction) of each basic block (indexed by basic block 47 * @param method {@code non-null;} the method to have block addresses for 61 * Gets the instance for the start of the given block. 63 * @param block { 66 getStart(BasicBlock block) argument 86 getLast(BasicBlock block) argument 108 getEnd(BasicBlock block) argument [all...] |
H A D | StdCatchBuilder.java | 41 /** {@code non-null;} block output order */ 44 /** {@code non-null;} address objects for each block */ 52 * @param order {@code non-null;} block output order 53 * @param addresses {@code non-null;} address objects for each block 85 BasicBlock block = blocks.get(i); 86 TypeList catches = block.getLastInsn().getCatches(); 102 BasicBlock block = blocks.get(i); 103 TypeList catches = block.getLastInsn().getCatches(); 118 * @param order {@code non-null;} block output order 119 * @param addresses {@code non-null;} address objects for each block 216 handlersFor(BasicBlock block, BlockAddresses addresses) argument [all...] |
H A D | RopTranslator.java | 73 /** {@code null-ok;} block output order; becomes non-null in {@link #pickOrder} */ 130 * objects per basic block (to the first and last instruction, 131 * and just past the end of the block), and the possibility of 132 * an extra goto at the end of each basic block. 139 * extra instruction per block (for the locals state at the 140 * start of the block) as well as one for each interblock 179 * We almost could just check the first block here, but the 181 * subsequent block in the case of synchronized methods. 233 * and output of one block. 235 * @param block { 239 outputBlock(BasicBlock block, int nextLabel) argument 493 private BasicBlock block; field in class:RopTranslator.TranslationVisitor 517 setBlock(BasicBlock block, CodeAddress lastAddress) argument [all...] |
/dalvik/dx/src/com/android/dx/dex/code/ |
H A D | BlockAddresses.java | 27 * the blocks of a particular method. Each block has a corresponding 32 * block (indexed by basic block label) */ 36 * of each basic block (indexed by basic block label) */ 40 * final instruction) of each basic block (indexed by basic block 47 * @param method {@code non-null;} the method to have block addresses for 61 * Gets the instance for the start of the given block. 63 * @param block { 66 getStart(BasicBlock block) argument 86 getLast(BasicBlock block) argument 108 getEnd(BasicBlock block) argument [all...] |
H A D | StdCatchBuilder.java | 40 /** {@code non-null;} block output order */ 43 /** {@code non-null;} address objects for each block */ 51 * @param order {@code non-null;} block output order 52 * @param addresses {@code non-null;} address objects for each block 84 BasicBlock block = blocks.get(i); 85 TypeList catches = block.getLastInsn().getCatches(); 101 BasicBlock block = blocks.get(i); 102 TypeList catches = block.getLastInsn().getCatches(); 117 * @param order {@code non-null;} block output order 118 * @param addresses {@code non-null;} address objects for each block 215 handlersFor(BasicBlock block, BlockAddresses addresses) argument [all...] |
H A D | RopTranslator.java | 76 /** {@code null-ok;} block output order; becomes non-null in {@link #pickOrder} */ 135 * objects per basic block (to the first and last instruction, 136 * and just past the end of the block), and the possibility of 137 * an extra goto at the end of each basic block. 144 * extra instruction per block (for the locals state at the 145 * start of the block) as well as one for each interblock 184 * We almost could just check the first block here, but the 186 * subsequent block in the case of synchronized methods. 239 * and output of one block. 241 * @param block { 245 outputBlock(BasicBlock block, int nextLabel) argument 499 private BasicBlock block; field in class:RopTranslator.TranslationVisitor 523 setBlock(BasicBlock block, CodeAddress lastAddress) argument [all...] |
/dalvik/dexgen/src/com/android/dexgen/rop/code/ |
H A D | LocalVariableExtractor.java | 30 /** {@code non-null;} block list for the method */ 87 * Processes a single block. 89 * @param label {@code >= 0;} label of the block to process 93 BasicBlock block = blocks.labelToBlock(label); 94 InsnList insns = block.getInsns(); 104 boolean canThrowDuringLastInsn = block.hasExceptionHandlers() && 174 * where the start state for a block changes). 177 IntList successors = block.getSuccessors(); 179 int primarySuccessor = block.getPrimarySuccessor();
|
/dalvik/dx/src/com/android/dx/rop/code/ |
H A D | LocalVariableExtractor.java | 30 /** {@code non-null;} block list for the method */ 87 * Processes a single block. 89 * @param label {@code >= 0;} label of the block to process 93 BasicBlock block = blocks.labelToBlock(label); 94 InsnList insns = block.getInsns(); 104 boolean canThrowDuringLastInsn = block.hasExceptionHandlers() && 174 * where the start state for a block changes). 177 IntList successors = block.getSuccessors(); 179 int primarySuccessor = block.getPrimarySuccessor();
|
/dalvik/dx/src/com/android/dx/ssa/back/ |
H A D | IdenticalBlockCombiner.java | 29 * block and the now-unused blocks are deleted. These identical blocks 50 * a hash. In particular, hash the contents of each block and only 60 // For each non-deleted block... 65 // doomed block 119 * @param a {@code non-null;} a block to compare 120 * @param b {@code non-null;} another block to compare 128 * Combines blocks proven identical into one alpha block, re-writing 130 * to the alpha block instead. 132 * @param alphaLabel block that will replace all the beta block 159 replaceSucc(BasicBlock block, int oldLabel, int newLabel) argument [all...] |
H A D | SsaToRop.java | 134 * there. Furthermore, any no-op block between the exit block and 163 * predecessor block. 168 for (SsaBasicBlock block : blocks) { 170 block.forEachPhiInsn(new PhiVisitor(blocks)); 173 block.removeAllPhiInsns(); 180 for (SsaBasicBlock block : blocks) { 181 block.scheduleMovesFromPhis(); 239 * @return rop-form basic block list 244 // Exit block ma 297 convertBasicBlock(SsaBasicBlock block) argument [all...] |
H A D | RegisterAllocator.java | 126 * last insn in a block. 129 * be last insn in block 135 SsaBasicBlock block = insn.getBlock(); 136 ArrayList<SsaInsn> insns = block.getInsns(); 141 "specified insn is not in this block"); 165 RegisterSpecList.make(reg)), block); 173 * block and what's used by the final instruction. 176 IntSet liveOut = block.getLiveOutRegs();
|
/dalvik/dx/src/com/android/dx/command/dump/ |
H A D | SsaDumper.java | 128 for (SsaBasicBlock block : sortedBlocks) { 129 sb.append("block ") 130 .append(Hex.u2(block.getRopLabel())).append('\n'); 132 BitSet preds = block.getPredecessors(); 141 sb.append(" live in:" + block.getLiveInRegs()); 144 for (SsaInsn insn : block.getInsns()) { 150 if (block.getSuccessors().cardinality() == 0) { 153 int primary = block.getPrimarySuccessorRopLabel(); 155 IntList succLabelList = block.getRopLabelSuccessorList(); 170 sb.append(" live out:" + block [all...] |
/dalvik/vm/alloc/ |
H A D | Copying.cpp | 37 * are the block space table and the block queue. 39 * The block space table records the state of a block. We must track 40 * whether a block is: 44 * - If the block holds part of a large object allocation, whether the 45 * block is the initial or a continued block of the allocation. 47 * - Whether the block is pinned, that is to say whether at least one 48 * object in the block mus 284 size_t block; local 357 blockToAddress(const HeapSource *heapSource, size_t block) argument 366 clearBlock(HeapSource *heapSource, size_t block) argument 406 enqueueBlock(HeapSource *heapSource, size_t block) argument 426 size_t block; local 642 size_t block; local [all...] |
/dalvik/vm/analysis/ |
H A D | VfyBasicBlock.cpp | 18 * Verifier basic block functions. 59 * switch statement block. 69 * Alloc a basic block in the specified slot. The storage will be 113 * Allocate the target basic block if necessary. This will happen 136 ALOGV("ODD: point set for targ=0x%04x (%p) already had block " 251 VfyBasicBlock* block = vdata->basicBlocks[idx]; local 252 if (block == NULL) 255 assert(block->firstAddr == idx); 257 block->firstAddr, block 542 VfyBasicBlock* block = vdata->basicBlocks[idx]; local [all...] |
/dalvik/vm/compiler/ |
H A D | SSATransformation.cpp | 23 static void recordDFSPreOrder(CompilationUnit *cUnit, BasicBlock *block) argument 26 if (block->visited || block->hidden) return; 27 block->visited = true; 29 /* Enqueue the block id */ 30 dvmInsertGrowableList(&cUnit->dfsOrder, block->id); 32 if (block->fallThrough) recordDFSPreOrder(cUnit, block->fallThrough); 33 if (block->taken) recordDFSPreOrder(cUnit, block [all...] |
/dalvik/libdex/ |
H A D | sha1.cpp | 117 #define blk0(i) (block->l[i]=(rol(block->l[i],24)&0xFF00FF00) \ 118 |(rol(block->l[i],8)&0x00FF00FF)) 120 #define blk0(i) block->l[i] 122 #define blk(i) (block->l[i&15] = rol(block->l[(i+13)&15]^block->l[(i+8)&15] \ 123 ^block->l[(i+2)&15]^block->l[i&15],1)) 133 /* Hash a single 512-bit block 143 CHAR64LONG16* block; local [all...] |
/dalvik/dx/src/com/android/dx/cf/code/ |
H A D | Ropper.java | 49 * Utility that converts a basic block list into a list of register-oriented 53 /** label offset for the parameter assignment block */ 56 /** label offset for the return block */ 59 /** label offset for the synchronized method final return block */ 62 /** label offset for the first synchronized method setup block */ 65 /** label offset for the second synchronized method setup block */ 70 * handler block 76 * handler block 86 /** {@code non-null;} original block list */ 92 /** max label (exclusive) of any original bytecode block */ 496 addBlock(BasicBlock block, IntList subroutines) argument 517 addOrReplaceBlock(BasicBlock block, IntList subroutines) argument 555 addOrReplaceBlockNoDelete(BasicBlock block, IntList subroutines) argument 688 processBlock(ByteBlock block, Frame frame, int[] workSet) argument [all...] |