at.dms.kjc.sir.lowering
Class Flattener

java.lang.Object
  extended by at.dms.kjc.sir.lowering.Flattener

public class Flattener
extends Object

This is the main class for decomposing the high SIR into lower-level function calls for the uniprocessor backend.


Constructor Summary
Flattener()
           
 
Method Summary
static SIRStream doLinearAnalysis(SIRStream str)
          Returns new value of .
static SIRStream doStateSpaceAnalysis(SIRStream str)
          Returns new value of .
static boolean hasDynamicRates(SIRStream str)
           
static void lowerFilterContents(SIRStream str, boolean printStatus)
          Lowers the contents of filters as is appropriate along the main compilation path.
static void run(SIRStream str, JInterfaceDeclaration[] interfaces, SIRInterfaceTable[] interfaceTables, SIRStructure[] structs, SIRHelper[] helpers, SIRGlobal global)
          Flattens into a low IR representation, given that are all the top-level interfaces declared in the program and represents the mapping from interfaces to methods that implement a given interface in a given class.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Flattener

public Flattener()
Method Detail

run

public static void run(SIRStream str,
                       JInterfaceDeclaration[] interfaces,
                       SIRInterfaceTable[] interfaceTables,
                       SIRStructure[] structs,
                       SIRHelper[] helpers,
                       SIRGlobal global)
Flattens into a low IR representation, given that are all the top-level interfaces declared in the program and represents the mapping from interfaces to methods that implement a given interface in a given class.


hasDynamicRates

public static boolean hasDynamicRates(SIRStream str)

lowerFilterContents

public static void lowerFilterContents(SIRStream str,
                                       boolean printStatus)
Lowers the contents of filters as is appropriate along the main compilation path. Also has the effect of doing constant propagation and unrolling (with appropriate setup and cleanup) for all filters in str. Doesn't unroll any loops that haven't already been unrolled.


doLinearAnalysis

public static SIRStream doLinearAnalysis(SIRStream str)
Returns new value of .


doStateSpaceAnalysis

public static SIRStream doStateSpaceAnalysis(SIRStream str)
Returns new value of .