/** * Combines blocks proven identical into one alpha block, re-writing * all of the successor links that point to the beta blocks to point * to the alpha block instead. * * @param alphaLabel block that will replace all the beta block * @param betaLabels label list of blocks to combine */ private void combineBlocks(int alphaLabel, IntList betaLabels) { int szBetas = betaLabels.size(); for (int i = 0; i < szBetas; i++) { int betaLabel = betaLabels.get(i); BasicBlock bb = blocks.labelToBlock(betaLabel); IntList preds = ropMethod.labelToPredecessors(bb.getLabel()); int szPreds = preds.size(); for (int j = 0; j < szPreds; j++) { BasicBlock predBlock = newBlocks.labelToBlock(preds.get(j)); replaceSucc(predBlock, betaLabel, alphaLabel); } } }
/** * Combines blocks proven identical into one alpha block, re-writing * all of the successor links that point to the beta blocks to point * to the alpha block instead. * * @param alphaLabel block that will replace all the beta block * @param betaLabels label list of blocks to combine */ private void combineBlocks(int alphaLabel, IntList betaLabels) { int szBetas = betaLabels.size(); for (int i = 0; i < szBetas; i++) { int betaLabel = betaLabels.get(i); BasicBlock bb = blocks.labelToBlock(betaLabel); IntList preds = ropMethod.labelToPredecessors(bb.getLabel()); int szPreds = preds.size(); for (int j = 0; j < szPreds; j++) { BasicBlock predBlock = newBlocks.labelToBlock(preds.get(j)); replaceSucc(predBlock, betaLabel, alphaLabel); } } }
/** * Combines blocks proven identical into one alpha block, re-writing * all of the successor links that point to the beta blocks to point * to the alpha block instead. * * @param alphaLabel block that will replace all the beta block * @param betaLabels label list of blocks to combine */ private void combineBlocks(int alphaLabel, IntList betaLabels) { int szBetas = betaLabels.size(); for (int i = 0; i < szBetas; i++) { int betaLabel = betaLabels.get(i); BasicBlock bb = blocks.labelToBlock(betaLabel); IntList preds = ropMethod.labelToPredecessors(bb.getLabel()); int szPreds = preds.size(); for (int j = 0; j < szPreds; j++) { BasicBlock predBlock = newBlocks.labelToBlock(preds.get(j)); replaceSucc(predBlock, betaLabel, alphaLabel); } } }
/** * Combines blocks proven identical into one alpha block, re-writing * all of the successor links that point to the beta blocks to point * to the alpha block instead. * * @param alphaLabel block that will replace all the beta block * @param betaLabels label list of blocks to combine */ private void combineBlocks(int alphaLabel, IntList betaLabels) { int szBetas = betaLabels.size(); for (int i = 0; i < szBetas; i++) { int betaLabel = betaLabels.get(i); BasicBlock bb = blocks.labelToBlock(betaLabel); IntList preds = ropMethod.labelToPredecessors(bb.getLabel()); int szPreds = preds.size(); for (int j = 0; j < szPreds; j++) { BasicBlock predBlock = newBlocks.labelToBlock(preds.get(j)); replaceSucc(predBlock, betaLabel, alphaLabel); } } }
/** * Combines blocks proven identical into one alpha block, re-writing * all of the successor links that point to the beta blocks to point * to the alpha block instead. * * @param alphaLabel block that will replace all the beta block * @param betaLabels label list of blocks to combine */ private void combineBlocks(int alphaLabel, IntList betaLabels) { int szBetas = betaLabels.size(); for (int i = 0; i < szBetas; i++) { int betaLabel = betaLabels.get(i); BasicBlock bb = blocks.labelToBlock(betaLabel); IntList preds = ropMethod.labelToPredecessors(bb.getLabel()); int szPreds = preds.size(); for (int j = 0; j < szPreds; j++) { BasicBlock predBlock = newBlocks.labelToBlock(preds.get(j)); replaceSucc(predBlock, betaLabel, alphaLabel); } } }
/** * Combines blocks proven identical into one alpha block, re-writing * all of the successor links that point to the beta blocks to point * to the alpha block instead. * * @param alphaLabel block that will replace all the beta block * @param betaLabels label list of blocks to combine */ private void combineBlocks(int alphaLabel, IntList betaLabels) { int szBetas = betaLabels.size(); for (int i = 0; i < szBetas; i++) { int betaLabel = betaLabels.get(i); BasicBlock bb = blocks.labelToBlock(betaLabel); IntList preds = ropMethod.labelToPredecessors(bb.getLabel()); int szPreds = preds.size(); for (int j = 0; j < szPreds; j++) { BasicBlock predBlock = newBlocks.labelToBlock(preds.get(j)); replaceSucc(predBlock, betaLabel, alphaLabel); } } }
/** * Combines blocks proven identical into one alpha block, re-writing * all of the successor links that point to the beta blocks to point * to the alpha block instead. * * @param alphaLabel block that will replace all the beta block * @param betaLabels label list of blocks to combine */ private void combineBlocks(int alphaLabel, IntList betaLabels) { int szBetas = betaLabels.size(); for (int i = 0; i < szBetas; i++) { int betaLabel = betaLabels.get(i); BasicBlock bb = blocks.labelToBlock(betaLabel); IntList preds = ropMethod.labelToPredecessors(bb.getLabel()); int szPreds = preds.size(); for (int j = 0; j < szPreds; j++) { BasicBlock predBlock = newBlocks.labelToBlock(preds.get(j)); replaceSucc(predBlock, betaLabel, alphaLabel); } } }
/** * Combines blocks proven identical into one alpha block, re-writing * all of the successor links that point to the beta blocks to point * to the alpha block instead. * * @param alphaLabel block that will replace all the beta block * @param betaLabels label list of blocks to combine */ private void combineBlocks(int alphaLabel, IntList betaLabels) { int szBetas = betaLabels.size(); for (int i = 0; i < szBetas; i++) { int betaLabel = betaLabels.get(i); BasicBlock bb = blocks.labelToBlock(betaLabel); IntList preds = ropMethod.labelToPredecessors(bb.getLabel()); int szPreds = preds.size(); for (int j = 0; j < szPreds; j++) { BasicBlock predBlock = newBlocks.labelToBlock(preds.get(j)); replaceSucc(predBlock, betaLabel, alphaLabel); } } }