/** * 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; }
/** * 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; }