com.android.dx.ssa
Class SsaConverter

java.lang.Object
  extended by com.android.dx.ssa.SsaConverter

public class SsaConverter
extends Object

Converts ROP methods to SSA Methods


Field Summary
static boolean DEBUG
           
 
Constructor Summary
SsaConverter()
           
 
Method Summary
static SsaMethod convertToSsaMethod(RopMethod rmeth, int paramWidth, boolean isStatic)
          Returns an SSA representation, edge-split and with phi functions placed.
static SsaMethod testEdgeSplit(RopMethod rmeth, int paramWidth, boolean isStatic)
          Returns an SSA represention with only the edge-splitter run.
static SsaMethod testPhiPlacement(RopMethod rmeth, int paramWidth, boolean isStatic)
          Returns an SSA represention with only the steps through the phi placement run.
static void updateSsaMethod(SsaMethod ssaMeth, int threshold)
          Updates an SSA representation, placing phi functions and renaming all registers above a certain threshold number.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEBUG

public static final boolean DEBUG
See Also:
Constant Field Values
Constructor Detail

SsaConverter

public SsaConverter()
Method Detail

convertToSsaMethod

public static SsaMethod convertToSsaMethod(RopMethod rmeth,
                                           int paramWidth,
                                           boolean isStatic)
Returns an SSA representation, edge-split and with phi functions placed.

Parameters:
rmeth - input
paramWidth - the total width, in register-units, of the method's parameters
isStatic - true if this method has no this pointer argument
Returns:
output in SSA form

updateSsaMethod

public static void updateSsaMethod(SsaMethod ssaMeth,
                                   int threshold)
Updates an SSA representation, placing phi functions and renaming all registers above a certain threshold number.

Parameters:
ssaMeth - input
threshold - registers below this number are unchanged

testEdgeSplit

public static SsaMethod testEdgeSplit(RopMethod rmeth,
                                      int paramWidth,
                                      boolean isStatic)
Returns an SSA represention with only the edge-splitter run.

Parameters:
rmeth - method to process
paramWidth - width of all arguments in the method
isStatic - true if this method has no this pointer argument
Returns:
an SSA represention with only the edge-splitter run

testPhiPlacement

public static SsaMethod testPhiPlacement(RopMethod rmeth,
                                         int paramWidth,
                                         boolean isStatic)
Returns an SSA represention with only the steps through the phi placement run.

Parameters:
rmeth - method to process
paramWidth - width of all arguments in the method
isStatic - true if this method has no this pointer argument
Returns:
an SSA represention with only the edge-splitter run


Copyright © 2013. All Rights Reserved.