Java Code Examples for com.android.dx.ssa.SsaBasicBlock#getPrimarySuccessorRopLabel()
The following examples show how to use
com.android.dx.ssa.SsaBasicBlock#getPrimarySuccessorRopLabel() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: SsaToRop.java From Box with Apache License 2.0 | 5 votes |
/** * Converts a single basic block to rop form. * * @param block SSA block to process * @return {@code non-null;} ROP block */ private BasicBlock convertBasicBlock(SsaBasicBlock block) { IntList successorList = block.getRopLabelSuccessorList(); int primarySuccessorLabel = block.getPrimarySuccessorRopLabel(); // Filter out any reference to the SSA form's exit block. // Exit block may be null. SsaBasicBlock exitBlock = ssaMeth.getExitBlock(); int exitRopLabel = (exitBlock == null) ? -1 : exitBlock.getRopLabel(); if (successorList.contains(exitRopLabel)) { if (successorList.size() > 1) { throw new RuntimeException( "Exit predecessor must have no other successors" + Hex.u2(block.getRopLabel())); } else { successorList = IntList.EMPTY; primarySuccessorLabel = -1; verifyValidExitPredecessor(block); } } successorList.setImmutable(); BasicBlock result = new BasicBlock( block.getRopLabel(), convertInsns(block.getInsns()), successorList, primarySuccessorLabel); return result; }
Example 2
Source File: SsaToRop.java From Box with Apache License 2.0 | 5 votes |
/** * Converts a single basic block to rop form. * * @param block SSA block to process * @return {@code non-null;} ROP block */ private BasicBlock convertBasicBlock(SsaBasicBlock block) { IntList successorList = block.getRopLabelSuccessorList(); int primarySuccessorLabel = block.getPrimarySuccessorRopLabel(); // Filter out any reference to the SSA form's exit block. // Exit block may be null. SsaBasicBlock exitBlock = ssaMeth.getExitBlock(); int exitRopLabel = (exitBlock == null) ? -1 : exitBlock.getRopLabel(); if (successorList.contains(exitRopLabel)) { if (successorList.size() > 1) { throw new RuntimeException( "Exit predecessor must have no other successors" + Hex.u2(block.getRopLabel())); } else { successorList = IntList.EMPTY; primarySuccessorLabel = -1; verifyValidExitPredecessor(block); } } successorList.setImmutable(); BasicBlock result = new BasicBlock( block.getRopLabel(), convertInsns(block.getInsns()), successorList, primarySuccessorLabel); return result; }
Example 3
Source File: SsaToRop.java From J2ME-Loader with Apache License 2.0 | 5 votes |
/** * Converts a single basic block to rop form. * * @param block SSA block to process * @return {@code non-null;} ROP block */ private BasicBlock convertBasicBlock(SsaBasicBlock block) { IntList successorList = block.getRopLabelSuccessorList(); int primarySuccessorLabel = block.getPrimarySuccessorRopLabel(); // Filter out any reference to the SSA form's exit block. // Exit block may be null. SsaBasicBlock exitBlock = ssaMeth.getExitBlock(); int exitRopLabel = (exitBlock == null) ? -1 : exitBlock.getRopLabel(); if (successorList.contains(exitRopLabel)) { if (successorList.size() > 1) { throw new RuntimeException( "Exit predecessor must have no other successors" + Hex.u2(block.getRopLabel())); } else { successorList = IntList.EMPTY; primarySuccessorLabel = -1; verifyValidExitPredecessor(block); } } successorList.setImmutable(); BasicBlock result = new BasicBlock( block.getRopLabel(), convertInsns(block.getInsns()), successorList, primarySuccessorLabel); return result; }
Example 4
Source File: SsaToRop.java From buck with Apache License 2.0 | 5 votes |
/** * Converts a single basic block to rop form. * * @param block SSA block to process * @return {@code non-null;} ROP block */ private BasicBlock convertBasicBlock(SsaBasicBlock block) { IntList successorList = block.getRopLabelSuccessorList(); int primarySuccessorLabel = block.getPrimarySuccessorRopLabel(); // Filter out any reference to the SSA form's exit block. // Exit block may be null. SsaBasicBlock exitBlock = ssaMeth.getExitBlock(); int exitRopLabel = (exitBlock == null) ? -1 : exitBlock.getRopLabel(); if (successorList.contains(exitRopLabel)) { if (successorList.size() > 1) { throw new RuntimeException( "Exit predecessor must have no other successors" + Hex.u2(block.getRopLabel())); } else { successorList = IntList.EMPTY; primarySuccessorLabel = -1; verifyValidExitPredecessor(block); } } successorList.setImmutable(); BasicBlock result = new BasicBlock( block.getRopLabel(), convertInsns(block.getInsns()), successorList, primarySuccessorLabel); return result; }