Searched refs:block (Results 1 - 25 of 37) sorted by relevance

12

/dalvik/dx/src/com/android/dx/ssa/
H A DSsaInsn.java30 /** {@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 DSsaConverter.java55 * 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 DSsaRenamer.java57 * 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 DSsaMethod.java41 /** 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 DSCCP.java56 /** 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 DDeadCodeRemover.java29 * 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 DLocalVariableExtractor.java38 /** {@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 DDominators.java53 /** 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 DBlockAddresses.java27 * 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 DStdCatchBuilder.java41 /** {@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 DRopTranslator.java73 /** {@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 DBlockAddresses.java27 * 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 DStdCatchBuilder.java40 /** {@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 DRopTranslator.java76 /** {@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 DLocalVariableExtractor.java30 /** {@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 DLocalVariableExtractor.java30 /** {@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 DIdenticalBlockCombiner.java29 * 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 DSsaToRop.java134 * 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 DRegisterAllocator.java126 * 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 DSsaDumper.java128 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 DCopying.cpp37 * 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 DVfyBasicBlock.cpp18 * 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 DSSATransformation.cpp23 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 Dsha1.cpp117 #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 DRopper.java49 * 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...]

Completed in 343 milliseconds

12