/** * Updates an SSA representation, placing phi functions and renaming all * registers above a certain threshold number. * * @param ssaMeth input * @param threshold registers below this number are unchanged */ public static void updateSsaMethod(SsaMethod ssaMeth, int threshold) { LocalVariableInfo localInfo = LocalVariableExtractor.extract(ssaMeth); placePhiFunctions(ssaMeth, localInfo, threshold); new SsaRenamer(ssaMeth, threshold).run(); }
/** * Updates an SSA representation, placing phi functions and renaming all * registers above a certain threshold number. * * @param ssaMeth input * @param threshold registers below this number are unchanged */ public static void updateSsaMethod(SsaMethod ssaMeth, int threshold) { LocalVariableInfo localInfo = LocalVariableExtractor.extract(ssaMeth); placePhiFunctions(ssaMeth, localInfo, threshold); new SsaRenamer(ssaMeth, threshold).run(); }
/** * Updates an SSA representation, placing phi functions and renaming all * registers above a certain threshold number. * * @param ssaMeth input * @param threshold registers below this number are unchanged */ public static void updateSsaMethod(SsaMethod ssaMeth, int threshold) { LocalVariableInfo localInfo = LocalVariableExtractor.extract(ssaMeth); placePhiFunctions(ssaMeth, localInfo, threshold); new SsaRenamer(ssaMeth, threshold).run(); }
/** * Updates an SSA representation, placing phi functions and renaming all * registers above a certain threshold number. * * @param ssaMeth input * @param threshold registers below this number are unchanged */ public static void updateSsaMethod(SsaMethod ssaMeth, int threshold) { LocalVariableInfo localInfo = LocalVariableExtractor.extract(ssaMeth); placePhiFunctions(ssaMeth, localInfo, threshold); new SsaRenamer(ssaMeth, threshold).run(); }
/** * Updates an SSA representation, placing phi functions and renaming all * registers above a certain threshold number. * * @param ssaMeth input * @param threshold registers below this number are unchanged */ public static void updateSsaMethod(SsaMethod ssaMeth, int threshold) { LocalVariableInfo localInfo = LocalVariableExtractor.extract(ssaMeth); placePhiFunctions(ssaMeth, localInfo, threshold); new SsaRenamer(ssaMeth, threshold).run(); }
/** * Updates an SSA representation, placing phi functions and renaming all * registers above a certain threshold number. * * @param ssaMeth input * @param threshold registers below this number are unchanged */ public static void updateSsaMethod(SsaMethod ssaMeth, int threshold) { LocalVariableInfo localInfo = LocalVariableExtractor.extract(ssaMeth); placePhiFunctions(ssaMeth, localInfo, threshold); new SsaRenamer(ssaMeth, threshold).run(); }
/** * Updates an SSA representation, placing phi functions and renaming all * registers above a certain threshold number. * * @param ssaMeth input * @param threshold registers below this number are unchanged */ public static void updateSsaMethod(SsaMethod ssaMeth, int threshold) { LocalVariableInfo localInfo = LocalVariableExtractor.extract(ssaMeth); placePhiFunctions(ssaMeth, localInfo, threshold); new SsaRenamer(ssaMeth, threshold).run(); }
/** * Returns an SSA represention with only the steps through the * phi placement run. * * @param rmeth method to process * @param paramWidth width of all arguments in the method * @param isStatic {@code true} if this method has no {@code this} * pointer argument * @return an SSA represention with only the edge-splitter run */ public static SsaMethod testPhiPlacement (RopMethod rmeth, int paramWidth, boolean isStatic) { SsaMethod result; result = SsaMethod.newFromRopMethod(rmeth, paramWidth, isStatic); edgeSplit(result); LocalVariableInfo localInfo = LocalVariableExtractor.extract(result); placePhiFunctions(result, localInfo, 0); return result; }
/** * Returns an SSA represention with only the steps through the * phi placement run. * * @param rmeth method to process * @param paramWidth width of all arguments in the method * @param isStatic {@code true} if this method has no {@code this} * pointer argument * @return an SSA represention with only the edge-splitter run */ public static SsaMethod testPhiPlacement (RopMethod rmeth, int paramWidth, boolean isStatic) { SsaMethod result; result = SsaMethod.newFromRopMethod(rmeth, paramWidth, isStatic); edgeSplit(result); LocalVariableInfo localInfo = LocalVariableExtractor.extract(result); placePhiFunctions(result, localInfo, 0); return result; }
/** * Returns an SSA represention with only the steps through the * phi placement run. * * @param rmeth method to process * @param paramWidth width of all arguments in the method * @param isStatic {@code true} if this method has no {@code this} * pointer argument * @return an SSA represention with only the edge-splitter run */ public static SsaMethod testPhiPlacement (RopMethod rmeth, int paramWidth, boolean isStatic) { SsaMethod result; result = SsaMethod.newFromRopMethod(rmeth, paramWidth, isStatic); edgeSplit(result); LocalVariableInfo localInfo = LocalVariableExtractor.extract(result); placePhiFunctions(result, localInfo, 0); return result; }
/** * Returns an SSA represention with only the steps through the * phi placement run. * * @param rmeth method to process * @param paramWidth width of all arguments in the method * @param isStatic {@code true} if this method has no {@code this} * pointer argument * @return an SSA represention with only the edge-splitter run */ public static SsaMethod testPhiPlacement (RopMethod rmeth, int paramWidth, boolean isStatic) { SsaMethod result; result = SsaMethod.newFromRopMethod(rmeth, paramWidth, isStatic); edgeSplit(result); LocalVariableInfo localInfo = LocalVariableExtractor.extract(result); placePhiFunctions(result, localInfo, 0); return result; }
/** * Returns an SSA represention with only the steps through the * phi placement run. * * @param rmeth method to process * @param paramWidth width of all arguments in the method * @param isStatic {@code true} if this method has no {@code this} * pointer argument * @return an SSA represention with only the edge-splitter run */ public static SsaMethod testPhiPlacement (RopMethod rmeth, int paramWidth, boolean isStatic) { SsaMethod result; result = SsaMethod.newFromRopMethod(rmeth, paramWidth, isStatic); edgeSplit(result); LocalVariableInfo localInfo = LocalVariableExtractor.extract(result); placePhiFunctions(result, localInfo, 0); return result; }
/** * Returns an SSA represention with only the steps through the * phi placement run. * * @param rmeth method to process * @param paramWidth width of all arguments in the method * @param isStatic {@code true} if this method has no {@code this} * pointer argument * @return an SSA represention with only the edge-splitter run */ public static SsaMethod testPhiPlacement (RopMethod rmeth, int paramWidth, boolean isStatic) { SsaMethod result; result = SsaMethod.newFromRopMethod(rmeth, paramWidth, isStatic); edgeSplit(result); LocalVariableInfo localInfo = LocalVariableExtractor.extract(result); placePhiFunctions(result, localInfo); return result; }
/** * Returns an SSA represention with only the steps through the * phi placement run. * * @param rmeth method to process * @param paramWidth width of all arguments in the method * @param isStatic {@code true} if this method has no {@code this} * pointer argument * @return an SSA represention with only the edge-splitter run */ public static SsaMethod testPhiPlacement (RopMethod rmeth, int paramWidth, boolean isStatic) { SsaMethod result; result = SsaMethod.newFromRopMethod(rmeth, paramWidth, isStatic); edgeSplit(result); LocalVariableInfo localInfo = LocalVariableExtractor.extract(result); placePhiFunctions(result, localInfo, 0); return result; }
/** * Returns an SSA representation, edge-split and with phi * functions placed. * * @param rmeth input * @param paramWidth the total width, in register-units, of the method's * parameters * @param isStatic {@code true} if this method has no {@code this} * pointer argument * @return output in SSA form */ public static SsaMethod convertToSsaMethod(RopMethod rmeth, int paramWidth, boolean isStatic) { SsaMethod result = SsaMethod.newFromRopMethod(rmeth, paramWidth, isStatic); edgeSplit(result); LocalVariableInfo localInfo = LocalVariableExtractor.extract(result); placePhiFunctions(result, localInfo, 0); new SsaRenamer(result).run(); /* * The exit block, added here, is not considered for edge splitting * or phi placement since no actual control flows to it. */ result.makeExitBlock(); return result; }
/** * Returns an SSA representation, edge-split and with phi * functions placed. * * @param rmeth input * @param paramWidth the total width, in register-units, of the method's * parameters * @param isStatic {@code true} if this method has no {@code this} * pointer argument * @return output in SSA form */ public static SsaMethod convertToSsaMethod(RopMethod rmeth, int paramWidth, boolean isStatic) { SsaMethod result = SsaMethod.newFromRopMethod(rmeth, paramWidth, isStatic); edgeSplit(result); LocalVariableInfo localInfo = LocalVariableExtractor.extract(result); placePhiFunctions(result, localInfo, 0); new SsaRenamer(result).run(); /* * The exit block, added here, is not considered for edge splitting * or phi placement since no actual control flows to it. */ result.makeExitBlock(); return result; }
/** * Returns an SSA representation, edge-split and with phi * functions placed. * * @param rmeth input * @param paramWidth the total width, in register-units, of the method's * parameters * @param isStatic {@code true} if this method has no {@code this} * pointer argument * @return output in SSA form */ public static SsaMethod convertToSsaMethod(RopMethod rmeth, int paramWidth, boolean isStatic) { SsaMethod result = SsaMethod.newFromRopMethod(rmeth, paramWidth, isStatic); edgeSplit(result); LocalVariableInfo localInfo = LocalVariableExtractor.extract(result); placePhiFunctions(result, localInfo); new SsaRenamer(result).run(); /* * The exit block, added here, is not considered for edge splitting * or phi placement since no actual control flows to it. */ result.makeExitBlock(); return result; }
/** * Returns an SSA representation, edge-split and with phi * functions placed. * * @param rmeth input * @param paramWidth the total width, in register-units, of the method's * parameters * @param isStatic {@code true} if this method has no {@code this} * pointer argument * @return output in SSA form */ public static SsaMethod convertToSsaMethod(RopMethod rmeth, int paramWidth, boolean isStatic) { SsaMethod result = SsaMethod.newFromRopMethod(rmeth, paramWidth, isStatic); edgeSplit(result); LocalVariableInfo localInfo = LocalVariableExtractor.extract(result); placePhiFunctions(result, localInfo, 0); new SsaRenamer(result).run(); /* * The exit block, added here, is not considered for edge splitting * or phi placement since no actual control flows to it. */ result.makeExitBlock(); return result; }
/** * Returns an SSA representation, edge-split and with phi * functions placed. * * @param rmeth input * @param paramWidth the total width, in register-units, of the method's * parameters * @param isStatic {@code true} if this method has no {@code this} * pointer argument * @return output in SSA form */ public static SsaMethod convertToSsaMethod(RopMethod rmeth, int paramWidth, boolean isStatic) { SsaMethod result = SsaMethod.newFromRopMethod(rmeth, paramWidth, isStatic); edgeSplit(result); LocalVariableInfo localInfo = LocalVariableExtractor.extract(result); placePhiFunctions(result, localInfo, 0); new SsaRenamer(result).run(); /* * The exit block, added here, is not considered for edge splitting * or phi placement since no actual control flows to it. */ result.makeExitBlock(); return result; }
/** * Returns an SSA representation, edge-split and with phi * functions placed. * * @param rmeth input * @param paramWidth the total width, in register-units, of the method's * parameters * @param isStatic {@code true} if this method has no {@code this} * pointer argument * @return output in SSA form */ public static SsaMethod convertToSsaMethod(RopMethod rmeth, int paramWidth, boolean isStatic) { SsaMethod result = SsaMethod.newFromRopMethod(rmeth, paramWidth, isStatic); edgeSplit(result); LocalVariableInfo localInfo = LocalVariableExtractor.extract(result); placePhiFunctions(result, localInfo, 0); new SsaRenamer(result).run(); /* * The exit block, added here, is not considered for edge splitting * or phi placement since no actual control flows to it. */ result.makeExitBlock(); return result; }