Uses of Class
at.dms.kjc.sir.SIRStream

Packages that use SIRStream
at.dms.kjc   
at.dms.kjc.backendSupport Package documentation for at.dms.kjc.backendSupport 
at.dms.kjc.cell   
at.dms.kjc.cluster The cluster backend for StreamIt generates a set of threads that can be executed on a cluster of networked computers or a SMP. 
at.dms.kjc.common   
at.dms.kjc.flatgraph FlatNode basics 
at.dms.kjc.iterator Package Specification. 
at.dms.kjc.lir Provides a set of low-level stubs (LIR stands for Low-level IR) for compiling to the original (and mostly obsolete) uniprocessor backend. 
at.dms.kjc.raw   
at.dms.kjc.rstream   
at.dms.kjc.sir Contains the heart of the StreamIt Intermediate Representation, or SIR for short. 
at.dms.kjc.sir.linear Provides analysis and optimization of linear portions of the stream graph. 
at.dms.kjc.sir.linear.frequency Translates linear filters into the frequency domain. 
at.dms.kjc.sir.lowering Provides compiler passes that analyze or optimize the SIR, primarily within the code of each filter. 
at.dms.kjc.sir.lowering.fission Provides compiler passes to split (parallelize) a filter into a set of fine-grained filters. 
at.dms.kjc.sir.lowering.fusion Provides compiler passes to fuse (combine) a set of filters into a single filter. 
at.dms.kjc.sir.lowering.partition Provides algorithms for adjusting the granularity of the stream graph to improve load balancing or optimization potential. 
at.dms.kjc.sir.lowering.partition.cache Fuses filters in the stream graph while respecting instruction and data cache constraints. 
at.dms.kjc.sir.lowering.partition.dynamicprog Adjusts the granularity of the stream graph, using a dynamic programming algorithm to optimize the load balancing. 
at.dms.kjc.sir.lowering.partition.linear Applies linear optimizations to the stream graph, using a dynamic programming algorithm to calculate the most profitable set of transformations. 
at.dms.kjc.sir.statespace Provides analysis and optimization of linear statespace portions of the stream graph. 
at.dms.kjc.sir.stats Provides passes to gather statistics about stream programs, such as parallelization potential and botteleneck work. 
at.dms.kjc.slicegraph This package aims to supersede the SIR and flatgraph representations of the stream graph with a single representation that maintains all relevant information as well as slice information. 
at.dms.kjc.spacedynamic   
at.dms.kjc.spacetime   
at.dms.kjc.vanillaSlice This package was written to provide a test for the classes in backendSupport
at.dms.util   
streamit.frontend High-level code for the StreamIt frontend. 
 

Uses of SIRStream in at.dms.kjc
 

Methods in at.dms.kjc with parameters of type SIRStream
static Object ObjectDeepCloner.deepCopy(SIRStream oldObj)
          Deep copy a stream structure.
static Object AutoCloner.deepCopy(SIRStream oldObj)
          Deep copy a stream structure.
 String StreamItDot.getClusterString(SIRStream self)
          Prints out the subgraph cluser line that is needed in to make clusters.
 String SimpleDot.getClusterString(SIRStream self)
          Prints out the subgraph cluser line that is needed in to make clusters.
 String NumberDot.getClusterString(SIRStream self)
          Prints out the subgraph cluser line that is needed in to make clusters.
static void StreamItDot.printGraph(SIRStream str)
          Prints dot graph of
static void SimpleDot.printGraph(SIRStream str)
          Prints dot graph of
static void NumberDot.printGraph(SIRStream str)
          Prints dot graph of
static void StreamItDot.printGraph(SIRStream str, String filename)
          Prints dot graph of
static void SimpleDot.printGraph(SIRStream str, String filename)
          Prints dot graph of
static void NumberDot.printGraph(SIRStream str, String filename)
          Prints dot graph of
 void SLIRVisitor.visitInitStatement(SIRInitStatement self, SIRStream target)
          Visits an init statement.
 Object SLIRReplacingVisitor.visitInitStatement(SIRInitStatement self, SIRStream target)
          Visits an init statement.
 void SLIREmptyVisitor.visitInitStatement(SIRInitStatement self, SIRStream target)
          Visits an init statement.
 Object SLIREmptyAttributeVisitor.visitInitStatement(SIRInitStatement self, SIRStream target)
          Visits an init statement.
 T SLIRAttributeVisitor.visitInitStatement(SIRInitStatement self, SIRStream target)
          Visits an init statement.
 void CloningVisitor.visitInitStatement(SIRInitStatement self, SIRStream target)
          Visits an init statement (recurses into the target stream)
 void SLIRVisitor.visitRegReceiverStatement(SIRRegReceiverStatement self, JExpression portal, SIRStream receiver, JMethodDeclaration[] methods)
          Visits a register-receiver statement.
 Object SLIRReplacingVisitor.visitRegReceiverStatement(SIRRegReceiverStatement self, JExpression portal, SIRStream receiver, JMethodDeclaration[] methods)
          Visits a register-receiver statement.
 void SLIREmptyVisitor.visitRegReceiverStatement(SIRRegReceiverStatement self, JExpression portal, SIRStream receiver, JMethodDeclaration[] methods)
          Visits a register-receiver statement.
 Object SLIREmptyAttributeVisitor.visitRegReceiverStatement(SIRRegReceiverStatement self, JExpression portal, SIRStream receiver, JMethodDeclaration[] methods)
          Visits a register-receiver statement.
 T SLIRAttributeVisitor.visitRegReceiverStatement(SIRRegReceiverStatement self, JExpression portal, SIRStream receiver, JMethodDeclaration[] methods)
          Visits a register-receiver statement.
 

Uses of SIRStream in at.dms.kjc.backendSupport
 

Methods in at.dms.kjc.backendSupport that return SIRStream
 SIRStream CommonPasses.getOrigSTR()
          Get the original stream for statistics gathering.
 

Methods in at.dms.kjc.backendSupport with parameters of type SIRStream
 Slice[] CommonPasses.run(SIRStream str, JInterfaceDeclaration[] interfaces, SIRInterfaceTable[] interfaceTables, SIRStructure[] structs, SIRHelper[] helpers, SIRGlobal global, int numCores)
          Top level method for executing passes common to some current and all future StreamIt compilers.
 

Uses of SIRStream in at.dms.kjc.cell
 

Methods in at.dms.kjc.cell with parameters of type SIRStream
static void CellBackend.run(SIRStream str, JInterfaceDeclaration[] interfaces, SIRInterfaceTable[] interfaceTables, SIRStructure[] structs, SIRHelper[] helpers, SIRGlobal global)
          Top level method for Cell backend, called via reflection from StreaMITMain.
 

Uses of SIRStream in at.dms.kjc.cluster
 

Methods in at.dms.kjc.cluster with parameters of type SIRStream
static void DoSchedules.findSchedules(Iterator selfIter, Iterator firstNode, SIRStream stream)
           
static void ClusterBackend.run(SIRStream str, JInterfaceDeclaration[] interfaces, SIRInterfaceTable[] interfaceTables, SIRStructure[] structs, SIRHelper[] helpers, SIRGlobal global)
          The cluster backend.
 void FlatIRToCluster.visitRegReceiverStatement(SIRRegReceiverStatement self, JExpression portal, SIRStream receiver, JMethodDeclaration[] methods)
           
 

Uses of SIRStream in at.dms.kjc.common
 

Methods in at.dms.kjc.common with parameters of type SIRStream
 void ConvertLonelyPops.convertGraph(SIRStream str)
          Visit the stream graph.
static void SeparatePushPop.doit(SIRStream str)
          if a push expression has a pop expression as a arg, the arg will be first assigned to a temp var and then push'ed.
static void ConvertLocalsToFields.doit(SIRStream str)
          Converts locals to fields for all methods of all filters in 'str'.
 void ToC.visitInitStatement(SIRInitStatement self, SIRStream stream)
           
 

Uses of SIRStream in at.dms.kjc.flatgraph
 

Fields in at.dms.kjc.flatgraph declared as SIRStream
protected  SIRStream StaticStreamGraph.topLevelSIR
          the top level SIR node.
 

Methods in at.dms.kjc.flatgraph that return SIRStream
 SIRStream StaticStreamGraph.getTopLevelSIR()
          get the toplevel SIR of this SSG *
 SIRStream StreamGraph.recreateSIR()
          The current version pastes together the topLevelSIR graphs for all StaticStreamGraphs.
 

Methods in at.dms.kjc.flatgraph with parameters of type SIRStream
 void DumpSymbolicGraph.dumpGraph(SIRStream str, FlatNode toplevel, String filename, HashMap<FlatNode,Integer> initExeCounts, HashMap<FlatNode,Integer> steadyExeCounts)
          Creates the output file representing the flattened graph and stores it in filename.
 boolean StreamGraph.dynamicEntry(SIRStream stream)
          Return true if the source of this stream, stream has dynamic rate input.
 boolean StreamGraph.dynamicExit(SIRStream stream)
          Return true if the sink of this stream, stream has dynamic rate output TODO: SIRDynamicRateManager
 void StaticStreamGraph.setTopLevelSIR(SIRStream newTop)
          set a new TopLevelSIR stream and flatten it, can only be called before layout!
 void ScheduledStaticStreamGraph.setTopLevelSIR(SIRStream topLevelStream)
           
 

Uses of SIRStream in at.dms.kjc.iterator
 

Methods in at.dms.kjc.iterator that return SIRStream
 SIRStream SIRSplitJoinIter.getStream()
          Return the stream pointed to by this.
 SIRStream SIRRecursiveStubIter.getStream()
          Return the stream pointed to by this.
 SIRStream SIRPipelineIter.getStream()
          Return the stream pointed to by this.
 SIRStream SIRPhasedFilterIter.getStream()
          Return the stream pointed to by this.
abstract  SIRStream SIRIterator.getStream()
          Return the stream pointed to by this.
 SIRStream SIRFilterIter.getStream()
          Return the stream pointed to by this.
 SIRStream SIRFeedbackLoopIter.getStream()
          Return the stream pointed to by this.
 

Methods in at.dms.kjc.iterator with parameters of type SIRStream
 SIRIterator IterFactory.createIter(SIRStream obj)
           
 

Uses of SIRStream in at.dms.kjc.lir
 

Methods in at.dms.kjc.lir with parameters of type SIRStream
 void LIRToC.visitInitStatement(SIRInitStatement self, SIRStream stream)
           
 void LIRToC.visitRegReceiverStatement(SIRRegReceiverStatement self, JExpression portal, SIRStream receiver, JMethodDeclaration[] methods)
           
 

Uses of SIRStream in at.dms.kjc.raw
 

Methods in at.dms.kjc.raw with parameters of type SIRStream
static HashMap[] RawBackend.returnExecutionCounts(SIRStream str, GraphFlattener graphFlattener)
          Similar to createExecutionCounts, but returns a HashMap[] and does not go through the RawBackend per se.
static void RawBackend.run(SIRStream str, JInterfaceDeclaration[] interfaces, SIRInterfaceTable[] interfaceTables, SIRStructure[] structs, SIRHelper[] helpers, SIRGlobal global)
           
static void RawWorkEstimator.test(SIRStream stream)
           
 void FlatIRToC.visitRegReceiverStatement(SIRRegReceiverStatement self, JExpression portal, SIRStream receiver, JMethodDeclaration[] methods)
           
 

Uses of SIRStream in at.dms.kjc.rstream
 

Subclasses of SIRStream in at.dms.kjc.rstream
 class File_Writer
          A file writer class that implements a file writer as a normal (non-predefined) filter in the SIR graph.
 class FileReader
          A file reader class that implements a file reader as a normal (non-predefined) filter in the SIR graph.
 

Methods in at.dms.kjc.rstream with parameters of type SIRStream
static void ConvertFileFilters.doit(SIRStream str)
          The main entry-point to this class, visit all filters in str and convert as above.
static void StrToRStream.run(SIRStream str, JInterfaceDeclaration[] interfaces, SIRInterfaceTable[] interfaceTables, SIRStructure[] structs, SIRHelper[] helpers, SIRGlobal global)
          The entry point of the RStream "backend" for the StreamIt Compiler.
 

Uses of SIRStream in at.dms.kjc.sir
 

Subclasses of SIRStream in at.dms.kjc.sir
 class SIRContainer
          This represents a 1-to-1 stream that can contain other streams as a hierarchical unit.
 class SIRDummySink
          This represents a StreamIT filter that just pushes 1 for int type and 1.0f for float.
 class SIRDummySource
          This represents a StreamIT filter that just pushes 1 for int type and 1.0f for float.
 class SIRFeedbackLoop
          This represents a feedback loop construct.
 class SIRFileReader
          This represents a StreaMIT filter that reads from a data source.
 class SIRFileWriter
          This represents a StreaMIT filter that writes a file to a data source.
 class SIRFilter
          This represents a basic StreamIt filter.
 class SIRGlobal
          This class represents a data that is available to all filters.
 class SIRHelper
          This class represents a set of helper methods available to all filters.
 class SIRIdentity
          This represents a StreaMIT filter that just reads item and sends it along.
 class SIRPhasedFilter
          A StreamIt phased filter.
 class SIRPipeline
          This represents a pipeline of stream structures, as would be declared with a Stream construct in StreaMIT.
 class SIRPredefinedFilter
          This represents a StreaMIT filter that has some compiler-defined functionality.
 class SIRRecursiveStub
          This class represents a stub for something that was found to be recursive in the front-end, and needs to be expanded within the IR.
 class SIRSplitJoin
          This represents a SplitJoin construct.
 class SIRStructure
          This class represents a data structure that may be passed between streams on tapes.
 class SIRTwoStageFilter
          A two-stage filter is a filter that has two work phases.
 

Fields in at.dms.kjc.sir declared as SIRStream
protected  SIRStream SIRPortalSender.stream
           
 

Fields in at.dms.kjc.sir with type parameters of type SIRStream
protected  LinkedList<SIRStream> SIRPortal.receivers
           
 

Methods in at.dms.kjc.sir that return SIRStream
static SIRStream SIRBuilder.buildHello6()
          Builds the SIR representation of HelloWorld6.java in the library.
 SIRStream SIRRecursiveStub.expand()
          Returns the expanded version of this stub, which is obtained by parsing the original class definition one level deeper.
 SIRStream SIRContainer.get(int i)
          Returns the i'th child of this.
 SIRStream SIRFeedbackLoop.getBody()
          Returns body of this.
 SIRStream SIRFeedbackLoop.getLoop()
          Returns loop of this.
 SIRStream SIRRegReceiverStatement.getReceiver()
          Get the receiver for this statement
 SIRStream[] SIRPortal.getReceivers()
           
 SIRStream SIRPortalSender.getStream()
           
 SIRStream SIRStream.getStreamWithNumber(int num)
          Returns a child stream of this that has number , or null if no deep-child of this has number .
 SIRStream SIRInitStatement.getTarget()
           
 

Methods in at.dms.kjc.sir that return types with arguments of type SIRStream
 List<SIRStream> SIRSplitJoin.getParallelStreams()
          Returns a list of the parallel streams in this.
 List<SIRStream> SIRPipeline.getSequentialStreams()
          Returns a list of the children of this Use instead of getChildren if want to get List rather than List
 

Methods in at.dms.kjc.sir with parameters of type SIRStream
 void SIRContainer.add(int index, SIRStream str)
          Adds at index with empty parameters.
 void SIRContainer.add(int index, SIRStream str, List param)
          Adds str at index index with parameters param, and sets parent of str to this.
 void SIRContainer.add(SIRStream str)
          Add a with empty parameters.
 void SIRContainer.add(SIRStream str, List param)
          Adds at the end of this with parameters .
 void SIRPortal.addReceiver(SIRStream stream)
           
protected  void SIRStream.deepCloneInto(SIRStream other)
          Clones all fields of this into
static void SemanticChecker.doCheck(SIRStream str)
          Main method to check , outputting errors to System.err.
static void SemanticChecker.doCheck(SIRStream str, PrintStream out)
          Main method to check , outputting errors to .
static boolean SIRPortal.findMessageStatements(SIRStream str)
           
static SIRPortal[] SIRPortal.getPortalsWithReceiver(SIRStream receiver)
           
static SIRPortal[] SIRPortal.getPortalsWithSender(SIRStream sender)
           
static SIROperator SIRNavigationUtils.getPredecessorOper(SIRStream str)
          Find a stream's predecessor operator in its parent.
 SIROperator SIRSplitJoin.getSuccessor(SIRStream child)
          Overrides SIRStream.getSuccessor.
 SIROperator SIRFeedbackLoop.getSuccessor(SIRStream child)
          Overrides SIRStream.getSuccessor.
 SIROperator SIRContainer.getSuccessor(SIRStream child)
          Returns the successor of child.
static SIROperator SIRNavigationUtils.getSuccessorOper(SIRStream str)
          Find a stream's successor operator in its parent.
 boolean SIRPortal.hasReceiver(SIRStream receiver)
           
 boolean SIRPortal.hasSender(SIRStream sender)
           
 int SIRContainer.indexOf(SIRStream str)
          Returns the index of in this, or -1 if does not appear in this.
static SIRPipeline SIRContainer.makeWrapper(SIRStream str)
          Returns a wrapper for str.
 void EmptyStreamVisitor.postVisitStream(SIRStream self, SIRIterator iter)
          This is called after all visits to a stream structure (Filter, Pipeline, SplitJoin, FeedbackLoop)
 void EmptyStreamVisitor.preVisitStream(SIRStream self, SIRIterator iter)
          This is called before all visits to a stream structure (Filter, Pipeline, SplitJoin, FeedbackLoop)
 void SIRContainer.remove(SIRStream str)
          Removes from this.
 void SIRSplitJoin.replace(SIRStream oldStr, SIRStream newStr)
          See documentation in SIRContainer.
 void SIRPipeline.replace(SIRStream oldStr, SIRStream newStr)
          See documentation in SIRContainer.
 void SIRFeedbackLoop.replace(SIRStream oldStr, SIRStream newStr)
          See documentation in SIRContainer.
abstract  void SIRContainer.replace(SIRStream oldStr, SIRStream newStr)
          Replaces with in this.
 void SIRPipeline.replace(SIRStream start, SIRStream end, SIRStream newStream)
          Replaces the sequence of ...
static void SIRToStreamIt.run(SIRStream str)
          Entry point for a stream without interfaces or structs.
static void SIRToStreamIt.run(SIRStream str, JInterfaceDeclaration[] interfaces, SIRInterfaceTable[] interfaceTables, SIRStructure[] structs)
          Top-level entry point.
static void SIRToStreamIt.run(SIRStream str, JInterfaceDeclaration[] interfaces, SIRInterfaceTable[] interfaceTables, SIRStructure[] structs, SIRGlobal[] globals)
           
static void SIRToStreamIt.run(SIRStream str, JInterfaceDeclaration[] interfaces, SIRInterfaceTable[] interfaceTables, SIRStructure[] structs, StringBuffer buffer)
          Top-level entry point that writes output to buffer param.
static void SIRToStreamIt.runBeforeCompiler(SIRStream str, JInterfaceDeclaration[] interfaces, SIRInterfaceTable[] interfaceTables, SIRStructure[] structs)
          Top-level entry point if you are processing SIR that has not been compiled at all.
static void SIRToStreamIt.runNonRecursive(SIRStream str)
           
 void SIRContainer.set(int index, SIRStream str)
          Set child at index to
 void SIRFeedbackLoop.setBody(SIRStream body)
          Set the Body of the feedback loop, and the parent of to this.
 void SIRFeedbackLoop.setLoop(SIRStream loop)
          Set the Body of the feedback loop
 void SIRRegReceiverStatement.setReceiver(SIRStream p)
          Set the receiver for this statement
 void SIRInitStatement.setTarget(SIRStream s)
           
 void SIRToStreamIt.visitInitStatement(SIRInitStatement self, SIRStream stream)
           
 void SIRToStreamIt.visitRegReceiverStatement(SIRRegReceiverStatement self, JExpression portal, SIRStream receiver, JMethodDeclaration[] methods)
           
 

Constructors in at.dms.kjc.sir with parameters of type SIRStream
SIRInitStatement(List<JExpression> args, SIRStream str)
          Construct a node in the parsing tree
SIRInitStatement(SIRStream str)
           
SIRPortalSender(SIRStream stream, SIRLatency latency)
           
SIRRegReceiverStatement(JExpression portal, SIRStream receiver, SIRInterfaceTable itable)
          Construct a node in the parsing tree
 

Uses of SIRStream in at.dms.kjc.sir.linear
 

Methods in at.dms.kjc.sir.linear that return types with arguments of type SIRStream
 Iterator<SIRStream> LinearAnalyzer.getFilterIterator()
          Gets an iterator over all of the linear representations that this LinearAnalyzer knows about.
 

Methods in at.dms.kjc.sir.linear with parameters of type SIRStream
 void LinearAnalyzer.addLinearRepresentation(SIRStream key, LinearFilterRepresentation rep)
          Adds a mapping from SIRStream to LinearFilterRep.
 void LinearAnalyzer.addNonLinear(SIRStream str)
          Adds a note that str is non-linear.
static void LinearRedundancyReplacer.doReplace(LinearAnalyzer lfa, LinearRedundancyAnalyzer lra, SIRStream str)
          start the process of replacement on str using the Linearity information in lfa.
static void LinearIndirectReplacer.doReplace(LinearAnalyzer lfa, SIRStream str)
          start the process of replacement on str using the Linearity information in lfa.
static void LinearDirectReplacer.doReplace(LinearAnalyzer lfa, SIRStream str)
          Start the process of replacement on str using the Linearity information in lfa.
static void LinearDiagonalReplacer.doReplace(LinearAnalyzer lfa, SIRStream str)
          start the process of replacement on str using the Linearity information in lfa.
static void LinearAtlasReplacer.doReplace(LinearAnalyzer lfa, SIRStream str)
          start the process of replacement on str using the Linearity information in lfa.
static LinearAnalyzer LinearAnalyzer.findLinearFilters(SIRStream str, boolean debug, boolean refactorLinearChildren)
          Main entry point -- searches the passed stream for linear filters and calculates their associated matricies.
static LinearAnalyzer LinearAnalyzer.findLinearFilters(SIRStream str, boolean debug, LinearAnalyzer lfa)
          Same as above, but specifies an existing to use instead of creating a fresh one.
 String LinearDotSimple.getClusterString(SIRStream self)
          Override the string used to create a new subgraph, to color it if we have a linear rep for it.
 String LinearDot.getClusterString(SIRStream self)
          Override the string used to create a new subgraph, to color it if we have a linear rep for it.
 LinearFilterRepresentation LinearAnalyzer.getLinearRepresentation(SIRStream stream)
          Returns the mapping from stream to linear representation that we have.
 LinearRedundancy LinearRedundancyAnalyzer.getRedundancy(SIRStream str)
          Returns the LinearRedundancy opject associated with the SIRStream str.
 boolean LinearAnalyzer.hasLinearRepresentation(SIRStream stream)
          Returns true if the specified filter has a linear representation that we have found.
 boolean LinearRedundancyAnalyzer.hasRedundancy(SIRStream str)
          Returns true if this linear redundancy analyzer has redundancy information for the passed SIRStream.
 boolean LinearAnalyzer.isNonLinear(SIRStream key)
          Adds a mapping from SIRStream to linear filter rep.
protected  SIRFilter LinearIndirectReplacer.makeEfficientImplementation(SIRStream oldStream, LinearFilterRepresentation linearRep)
           
protected  SIRFilter LinearDirectReplacer.makeEfficientImplementation(SIRStream oldStream, LinearFilterRepresentation linearRep)
          Creates a filter that has a work function that directly implements the linear representation that is passed in.
protected  SIRFilter LinearDiagonalReplacer.makeEfficientImplementation(SIRStream oldStream, LinearFilterRepresentation linearRep)
           
protected  SIRFilter LinearAtlasReplacer.makeEfficientImplementation(SIRStream oldStream, LinearFilterRepresentation linearRep)
           
 String LinearDot.makeRedundancyString(SIRStream str)
          Creates a string that represents the linear redundancy of this str.
abstract  boolean LinearReplacer.makeReplacement(SIRStream self)
          Visit a pipeline, splitjoin or filter, replacing them with a new filter that presumably executes more efficiently.
 boolean LinearRedundancyReplacer.makeReplacement(SIRStream self)
          Visit a pipeline, splitjoin or filter, replacing them with a new filter that directly implements the linear representation.
 boolean LinearDirectReplacer.makeReplacement(SIRStream self)
          Visit a pipeline, splitjoin or filter, replacing them with a new filter that directly implements the linear representation.
static void LinearDot.printGraph(SIRStream str, String filename, LinearAnalyzer lfa)
          Prints dot graph of to , using LinearAnalyzer lfa.
static void LinearDotSimple.printGraph(SIRStream str, String filename, LinearAnalyzer lfa, LinearRedundancyAnalyzer lra)
          Prints dot graph of to , using LinearAnalyzer lfa and LinearRedundancyAnalyzer lra.
static void LinearDot.printGraph(SIRStream str, String filename, LinearAnalyzer lfa, LinearRedundancyAnalyzer lra)
          Prints dot graph of to , using LinearAnalyzer lfa and LinearRedundancyAnalyzer lra.
 void LinearAnalyzer.removeLinearRepresentation(SIRStream stream)
          Removes the specified SIRStream from the linear represention mapping.
 

Uses of SIRStream in at.dms.kjc.sir.linear.frequency
 

Methods in at.dms.kjc.sir.linear.frequency with parameters of type SIRStream
static boolean LEETFrequencyReplacer.canReplace(SIRStream str, LinearAnalyzer lfa)
          Returns whether or not we can replace with this replacer.
static void FrequencyReplacer.doReplace(LinearAnalyzer lfa, SIRStream str)
          Start the process of replacement on str using the Linearity information in lfa.
 boolean LEETFrequencyReplacer.makeReplacement(SIRStream self)
          Does the actual work of replacing something that computes a convolution sum with something that does a FFT, multiply, and then IFFT.
 

Uses of SIRStream in at.dms.kjc.sir.lowering
 

Methods in at.dms.kjc.sir.lowering that return SIRStream
static SIRStream Flattener.doLinearAnalysis(SIRStream str)
          Returns new value of .
static SIRStream FieldProp.doPropagate(SIRStream str)
          Performs a depth-first traversal of an SIRStream tree, and calls propagate() on any SIRSplitJoins as a post-pass.
static SIRStream FieldProp.doPropagate(SIRStream str, boolean unrollOuterLoops)
          Performs a depth-first traversal of an SIRStream tree, and calls propagate() on any SIRSplitJoins as a post-pass.
static SIRStream FieldProp.doPropagate(SIRStream str, boolean unrollOuterLoops, boolean removeDeadFields)
          Performs a depth-first traversal of an SIRStream tree, and calls propagate() on any SIRSplitJoins as a post-pass.
static SIRStream FieldProp.doPropagateNotRecursive(SIRStream str)
          Perform field propagation on a given stream, without recursing into its child streams.
static SIRStream FieldProp.doPropagateNotRecursive(SIRStream str, boolean unrollOuterLoops, boolean removeDeadFields)
           
static SIRStream Flattener.doStateSpaceAnalysis(SIRStream str)
          Returns new value of .
 SIRStream ThreeAddressCode.threeAddressCode(SIRStream str)
          Turn all filters in stream into three-address code.
static SIRStream VectorizeEnable.vectorizeEnable(SIRStream str, Map<SIROperator,Integer> partitionTable)
          Perform naive vectorization on eligible filters in a stream.
 

Methods in at.dms.kjc.sir.lowering with parameters of type SIRStream
 void StructDestroyer.addFields(SIRStream str)
          Call after visiting all methods.
 void BranchAnalyzer.analyzeBranches(SIRStream str)
           
 void ArrayDestroyer.destroyArrays(SIRStream str)
          Destructure all destructurable local arrays in stream graph.
 void CollapseDataParallelism.detectEligible(SIRStream str)
          Keeps track of all splitjoins contained within 'str' that are eligible for the transformation.
static void EnqueueToInitPath.doInitPath(SIRStream str)
          Recursively search for and transform feedback loops.
static void RoundToFloor.doit(SIRStream str)
          Converts all calls in methods and fields of or children.
static void RemoveMultiPops.doit(SIRStream str)
          Walk stream structure and replace multiple pops from single SIRPopExpression.
static void RemoveDynamicRates.doit(SIRStream str)
           
static void MarkFilterBoundaries.doit(SIRStream str)
          Marks filter boundaries for all filters in .
static void IntroduceMultiPops.doit(SIRStream str)
          Walk stream structure and replace multiple pops from single SIRPopExpression.
static void ConstructSIRTree.doit(SIRStream str)
           
static void ArrayInitExpander.doit(SIRStream str)
          Returns version of with array initializers expanded.
static SIRStream Flattener.doLinearAnalysis(SIRStream str)
          Returns new value of .
static SIRStream FieldProp.doPropagate(SIRStream str)
          Performs a depth-first traversal of an SIRStream tree, and calls propagate() on any SIRSplitJoins as a post-pass.
static SIRStream FieldProp.doPropagate(SIRStream str, boolean unrollOuterLoops)
          Performs a depth-first traversal of an SIRStream tree, and calls propagate() on any SIRSplitJoins as a post-pass.
static SIRStream FieldProp.doPropagate(SIRStream str, boolean unrollOuterLoops, boolean removeDeadFields)
          Performs a depth-first traversal of an SIRStream tree, and calls propagate() on any SIRSplitJoins as a post-pass.
static SIRStream FieldProp.doPropagateNotRecursive(SIRStream str)
          Perform field propagation on a given stream, without recursing into its child streams.
static SIRStream FieldProp.doPropagateNotRecursive(SIRStream str, boolean unrollOuterLoops, boolean removeDeadFields)
           
static SIRStream Flattener.doStateSpaceAnalysis(SIRStream str)
          Returns new value of .
 void CollapseDataParallelism.doTransformations(SIRStream str)
          Actually performs the transformation on all eligible splitjoins within 'str'.
static void RenameAll.expandFunctionNames(SIRStream str)
          For all init, initWork, and work functions in all filters of , appends the filter's name to the function to uniquely identify that function in the standalone version.
static HashMap[] SIRScheduler.getApproxExecutionCounts(SIRStream str)
          Like getExecutionCounts, but if we are treating everything as dynamic rate then returns only unary counts (everything executes once).
static HashMap[] SIRScheduler.getExecutionCounts(SIRStream str)
          Returns a two-dimensional array HashMap's that map each splitter, joiner, & filter in <str$gt; to a 1-dimensional int array containing the count for how many times that siroperator executes: result[0] = map for initializaiton schedule result[1] = map for steady-state schedule
static String LoweringConstants.getInitName(SIRStream str)
          Returns the name of the flattened init function for .
static boolean Flattener.hasDynamicRates(SIRStream str)
           
static boolean Vectorizable.isUseful(SIRStream str)
          Determine whether a vectorizable stream may contain useful vector operations.
 void StaticsProp.IterOverAllFieldsAndMethods.iterOverAllFieldsAndMethods(SIRStream str, boolean doFields, boolean doMethods, boolean doParameters, EmptyAttributeVisitor visitor)
          Visit all field, method, and parameter definitions reachable from a SIRStream (Including substreams).
static void StaticsProp.IterOverAllFieldsAndMethods.iterOverFieldsAndMethods(SIRStream str, boolean doFields, boolean doMethods, boolean doParameters, EmptyAttributeVisitor visitor)
          Visit all field and method declarations in a SIRStream element (Not including substreams).
static void Flattener.lowerFilterContents(SIRStream str, boolean printStatus)
          Lowers the contents of filters as is appropriate along the main compilation path.
static void FieldInitMover.moveStreamInitialAssignments(SIRStream str, int moveArrayInitializers)
          Move all (scalar and optionally array) field initializations out of declaration for a stream.
protected  void StaticsProp.IterOverAllFieldsAndMethods.postVisit(SIRStream str)
          Operation to perform after visiting a SIRStream
protected  boolean StaticsProp.IterOverAllFieldsAndMethods.preVisit(SIRStream str)
          Operation to perform before visiting a SIRstream.
 void RoundToFloor.preVisitStream(SIRStream self, SIRIterator iter)
           
 void RemoveDynamicRates.preVisitStream(SIRStream self, SIRIterator iter)
           
 void FieldInitMover.preVisitStream(SIRStream self, SIRIterator iter)
           
static Map<String,Set<String>> StaticsProp.propagate(SIRStream str, Set<SIRGlobal> theStatics)
          The top-level for propagating data from static sections into the stream graph.
static void ConstantProp.propagateAndUnroll(SIRStream str)
          Propagates constants as far as possible in and also unrolls loops.
static void ConstantProp.propagateAndUnroll(SIRStream str, boolean removeDeadFields)
          Propagates constants as far as possible in and also unrolls loops.
 void VarDeclRaiser.raiseVars(SIRStream str)
           
static void PopToPeek.removeAllPops(SIRStream str)
          Removes all pops in the work functions of the filters contained within str.
static void RenameAll.renameAllFilters(SIRStream str)
          Renames the contents of all filters in that are connected to or a parent of .
static void RenameAll.renameOverAllFilters(SIRStream str)
          Renames the contents of all filters in that are connected to or a parent of , this will rename over all the filters.
static void Flattener.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.
static void SimplifyPopPeekPush.simplify(SIRStream str)
          Re-write code so push, pop, and peek are separate statements, and arguments to them are either literal, local, field, or array access.
static void SimplifyArguments.simplify(SIRStream str)
          Walk over stream simplifying arguments to function calls.
 SIRStream ThreeAddressCode.threeAddressCode(SIRStream str)
          Turn all filters in stream into three-address code.
static void Unroller.unroll(SIRStream str)
          Run a propagator on every method of a stream.
static Set<SIRFilter> Vectorizable.vectorizableStr(SIRStream str)
          Return set of naively vectorizable filters in stream.
static SIRStream VectorizeEnable.vectorizeEnable(SIRStream str, Map<SIROperator,Integer> partitionTable)
          Perform naive vectorization on eligible filters in a stream.
 Object StructDestroyer.visitInitStatement(SIRInitStatement self, SIRStream target)
          Visit Init Statements.
 Object Propagator.visitRegReceiverStatement(SIRRegReceiverStatement self, JExpression portal, SIRStream receiver, JMethodDeclaration[] methods)
           
 

Constructors in at.dms.kjc.sir.lowering with parameters of type SIRStream
SIRSchedule(SIRStream toplevel, Scheduler scheduler)
           
 

Uses of SIRStream in at.dms.kjc.sir.lowering.fission
 

Methods in at.dms.kjc.sir.lowering.fission with parameters of type SIRStream
static void FissionReplacer.doit(SIRStream str, int maxFissAmount)
          Fisses all eligible filters in as much as possible, with each fission expansion not exceeding .
 boolean FissionReplacer.makeReplacement(SIRStream self)
          Overrides replacement method in LinearReplacer.
static void StatelessDot.printGraph(SIRStream str, String filename)
          Prints dot graph of
 

Uses of SIRStream in at.dms.kjc.sir.lowering.fusion
 

Methods in at.dms.kjc.sir.lowering.fusion that return SIRStream
static SIRStream FusePipe.fuse(SIRPipeline pipe, PartitionGroup partitions)
          Fuses sections of according to , which specifies the grouping sequence of who gets fused together.
static SIRStream FuseSplit.fuse(SIRSplitJoin sj)
          Returns result of fusion, which might be mutated version of if it could fuse without creating fresh construct.
static SIRStream FuseSimpleSplit.fuse(SIRSplitJoin sj)
          Flattens a split/join, subject to the following constraints: 1.
static SIRStream FuseSplit.fuse(SIRSplitJoin sj, PartitionGroup partition)
           
static SIRStream FusePipelines.fusePipelinesOfFilters(SIRStream str)
          Fuses all adjacent filters whos parent is a pipeline.
static SIRStream FusePipelines.fusePipelinesOfStatelessFilters(SIRStream str)
          Fuses any two adjacent FILTERS in 'str' so long as: - the shared parent of the filter is a pipeline - the result of fusion will be stateless If a complete pipeline is fused, then it is treated as a single filter in considering fusion within the pipeline's parent.
static SIRStream FusePipelines.fusePipelinesOfStatelessStreams(SIRStream str)
          Fuses any two adjacent STREAMS in 'str' so long as: - the shared parent of the filter is a pipeline - the result of fusion will be stateless If a complete pipeline is fused, then it is treated as a single filter in considering fusion within the pipeline's parent.
static SIRStream FusePipelines.fusePipelinesOfVectorizableFilters(SIRStream str)
          Fuses any two adjacent FILTERS in 'str' so long as: - the shared parent of the filter is a pipeline - the result of fusion will be naively vectorizable.
static SIRStream FusePipelines.fusePipelinesOfVectorizableStreams(SIRStream str)
          Fuses any two adjacent STREAMS in 'str' so long as: - the shared parent of the filter is a pipeline - the result of fusion will be naively vectorizable.
static SIRStream FuseSplit.getLastFused()
           
static SIRStream FuseSplit.semiFuse(SIRSplitJoin sj)
          Fuses half the children of together instead of fusing the entire construct.
 

Methods in at.dms.kjc.sir.lowering.fusion with parameters of type SIRStream
static void Lifter.eliminateIdentities(SIRStream str)
          Removes all non-essential identity filters from .
static SIRPipeline FuseAll.fuse(SIRStream str)
          As above, with strict=true.
static SIRPipeline FuseAll.fuse(SIRStream str, boolean strict)
          Fuse everything we can in .
static SIRStream FusePipelines.fusePipelinesOfFilters(SIRStream str)
          Fuses all adjacent filters whos parent is a pipeline.
static SIRStream FusePipelines.fusePipelinesOfStatelessFilters(SIRStream str)
          Fuses any two adjacent FILTERS in 'str' so long as: - the shared parent of the filter is a pipeline - the result of fusion will be stateless If a complete pipeline is fused, then it is treated as a single filter in considering fusion within the pipeline's parent.
static SIRStream FusePipelines.fusePipelinesOfStatelessStreams(SIRStream str)
          Fuses any two adjacent STREAMS in 'str' so long as: - the shared parent of the filter is a pipeline - the result of fusion will be stateless If a complete pipeline is fused, then it is treated as a single filter in considering fusion within the pipeline's parent.
static SIRStream FusePipelines.fusePipelinesOfVectorizableFilters(SIRStream str)
          Fuses any two adjacent FILTERS in 'str' so long as: - the shared parent of the filter is a pipeline - the result of fusion will be naively vectorizable.
static SIRStream FusePipelines.fusePipelinesOfVectorizableStreams(SIRStream str)
          Fuses any two adjacent STREAMS in 'str' so long as: - the shared parent of the filter is a pipeline - the result of fusion will be naively vectorizable.
static boolean FusePipe.isFusable(SIRStream str)
          Returns whether or note str is a candidate component for fusion.
static void Lifter.lift(SIRStream str)
          Lift everything we can in and its children.
static void Lifter.liftAggressiveSync(SIRStream str)
          Lift everything we can, using aggressive sync removal that could possibly add joiners to the graph.
static void Lifter.liftPreservingSync(SIRStream str)
          Lift everything we can, but don't eliminate matching sync points.
 

Method parameters in at.dms.kjc.sir.lowering.fusion with type arguments of type SIRStream
static String FusePipe.getFusedName(List<SIRStream> filterInfo)
          Return a name for the fused filter that consists of those filters in .
 

Uses of SIRStream in at.dms.kjc.sir.lowering.partition
 

Fields in at.dms.kjc.sir.lowering.partition declared as SIRStream
protected  SIRStream ListPartitioner.str
          The toplevel stream we're operating on.
 

Fields in at.dms.kjc.sir.lowering.partition with type parameters of type SIRStream
protected  HashMap<SIRStream,Integer> ListPartitioner.first
          Maps a stream container (pipeline, splitjoin, feedbackloop) to an Integer denoting the first index in that belongs to the structure.
protected  HashMap<SIRStream,Integer> ListPartitioner.last
          Maps a stream container (pipeline, splitjoin, feedbackloop) to an Integer denoting the first index in that belongs to the structure.
 

Methods in at.dms.kjc.sir.lowering.partition that return SIRStream
static SIRStream RefactorSplitJoin.addDeepRectangularSyncPoints(SIRStream str)
          Returns new version of
static SIRStream RefactorSplitJoin.convertToPipeline(SIRSplitJoin sj)
          Converts
static SIRStream ManualPartition.convertToPipeline(SIRSplitJoin sj)
          Tries to convert 'sj' into a pipeline.
static SIRStream ManualPartition.doit(SIRStream str)
          Invokes the "manualPartition" method in class specified by KjcOptions.manual.
static SIRStream Partitioner.doit(SIRStream str, int targetCount, boolean joinersNeedTiles, boolean limitICode, boolean strict)
          Tries to adjust 'str' into 'targetCount' pieces of equal work, and return new stream.
static SIRStream Partitioner.doit(SIRStream str, int curCount, int targetCount, boolean joinersNeedTiles, boolean limitICode, boolean strict)
          As above, with 'curCount' indicating the number of tiles that 'str' currently requires.
static SIRStream Partitioner.doit(SIRStream str, int curCount, int targetCount, boolean joinersNeedTiles, boolean limitICode, boolean strict, HashSet noHorizFuse)
          As above, with denoting a set of SIRFilters that cannot be fused horizontally.
 SIRStream VerticalCutTransform.doMyTransform(SIRStream str)
          Perform the transform on
protected abstract  SIRStream StreamTransform.doMyTransform(SIRStream str)
           
 SIRStream RemoveSyncTransform.doMyTransform(SIRStream str)
          Perform the transform on and return new stream.
 SIRStream LinearReplaceTransform.doMyTransform(SIRStream str)
          Perform the transform on and return new stream.
 SIRStream IdentityTransform.doMyTransform(SIRStream str)
          Perform the transform on 'str' and return new stream.
 SIRStream HorizontalCutTransform.doMyTransform(SIRStream str)
          Perform the transform on and return new stream.
 SIRStream FusionTransform.doMyTransform(SIRStream str)
          Perform the transform on and return new stream.
 SIRStream FreqReplaceTransform.doMyTransform(SIRStream str)
          Perform the transform on and return new stream.
protected  SIRStream FissionTransform.doMyTransform(SIRStream str)
          Perform the transform on and return new stream.
 SIRStream StreamTransform.doTransform(SIRStream str)
          Perform the transform on
static SIRStream ManualPartition.fuse(SIRPipeline pipeline, PartitionGroup partitions)
          Fuses some components of a pipeline together.
static SIRStream ManualPartition.fuse(SIRSplitJoin splitjoin, PartitionGroup partitions)
          Fuses some components of a splitjoin together.
static SIRStream ManualPartition.fuse(SIRStream str)
          Fuses all of 'str' into a single filter.
static SIRStream ManualPartition.fusePipelinesOfFilters(SIRStream str)
          Fuses all adjacent filters whos parent is a pipeline.
static SIRStream ManualPartition.fusePipelinesOfStatelessFilters(SIRStream str)
          Fuses any two adjacent FILTERS in 'str' so long as: - the shared parent of the filter is a pipeline - the result of fusion will be stateless If a complete pipeline is fused, then it is treated as a single filter in considering fusion within the pipeline's parent.
static SIRStream ManualPartition.fusePipelinesOfStatelessStreams(SIRStream str)
          Fuses any two adjacent STREAMS in 'str' so long as: - the shared parent of the filter is a pipeline - the result of fusion will be stateless If a complete pipeline is fused, then it is treated as a single filter in considering fusion within the pipeline's parent.
static SIRStream ManualPartition.getStream(SIRStream str, int num)
          Returns stream contained within 'str' that has unique id number 'num'.
static SIRStream ManualPartition.getStream(SIRStream str, String name)
          Returns stream by given that is deep child of 'str'.
static SIRStream[] ManualPartition.getStreams(SIRStream str, String prefix)
          Returns set of all child streams of 'str' (including 'str', possibly) that have a name beginning with a given prefix.
static SIRStream[] ManualPartition.getStreamsContaining(SIRStream str, String subStr)
          Returns set of all child streams of 'str' (including 'str', possibly) that have a name that contains 'subStr'.
static SIRStream ManualPartition.partition(SIRStream str, int targetTiles)
          Runs dynamic programming partitioner on 'str', aiming to reduce the number of tiles needed to 'targetTiles'.
static SIRStream ManualPartition.partitionGreedy(SIRStream str, int targetTiles)
          Runs greedy partitioner on 'str', aiming to reduce the number of tiles needed to 'targetTiles'.
 SIRStream GreedierPartitioner.toplevel()
          This is the toplevel call for doing partitioning.
 

Methods in at.dms.kjc.sir.lowering.partition with parameters of type SIRStream
static SIRStream RefactorSplitJoin.addDeepRectangularSyncPoints(SIRStream str)
          Returns new version of
static int Partitioner.countFilters(SIRStream str)
          Returns the number of filters in the graph.
static int Partitioner.countTilesNeeded(SIRStream str, boolean joinersNeedTiles)
          Return number of tiles needed for 'str'.
static void ManualPartition.destroyArrays(SIRStream str)
          Attempts to break down arrays in all children of 'str' into local variables, and to remove array declarations that are unneeded.
static void SJToPipe.doit(SIRStream str)
          Lift everything we can in
static SIRStream ManualPartition.doit(SIRStream str)
          Invokes the "manualPartition" method in class specified by KjcOptions.manual.
static SIRStream Partitioner.doit(SIRStream str, int targetCount, boolean joinersNeedTiles, boolean limitICode, boolean strict)
          Tries to adjust 'str' into 'targetCount' pieces of equal work, and return new stream.
static SIRStream Partitioner.doit(SIRStream str, int curCount, int targetCount, boolean joinersNeedTiles, boolean limitICode, boolean strict)
          As above, with 'curCount' indicating the number of tiles that 'str' currently requires.
static SIRStream Partitioner.doit(SIRStream str, int curCount, int targetCount, boolean joinersNeedTiles, boolean limitICode, boolean strict, HashSet noHorizFuse)
          As above, with denoting a set of SIRFilters that cannot be fused horizontally.
 SIRStream VerticalCutTransform.doMyTransform(SIRStream str)
          Perform the transform on
protected abstract  SIRStream StreamTransform.doMyTransform(SIRStream str)
           
 SIRStream RemoveSyncTransform.doMyTransform(SIRStream str)
          Perform the transform on and return new stream.
 SIRStream LinearReplaceTransform.doMyTransform(SIRStream str)
          Perform the transform on and return new stream.
 SIRStream IdentityTransform.doMyTransform(SIRStream str)
          Perform the transform on 'str' and return new stream.
 SIRStream HorizontalCutTransform.doMyTransform(SIRStream str)
          Perform the transform on and return new stream.
 SIRStream FusionTransform.doMyTransform(SIRStream str)
          Perform the transform on and return new stream.
 SIRStream FreqReplaceTransform.doMyTransform(SIRStream str)
          Perform the transform on and return new stream.
protected  SIRStream FissionTransform.doMyTransform(SIRStream str)
          Perform the transform on and return new stream.
 SIRStream StreamTransform.doTransform(SIRStream str)
          Perform the transform on
protected  boolean ListPartitioner.equivStructure(SIRStream str1, SIRStream str2)
          Returns whether or not and are equivalent for the purposes of constraining symmetrical partitioning in them.
static SIRStream ManualPartition.fuse(SIRStream str)
          Fuses all of 'str' into a single filter.
static SIRStream ManualPartition.fusePipelinesOfFilters(SIRStream str)
          Fuses all adjacent filters whos parent is a pipeline.
static SIRStream ManualPartition.fusePipelinesOfStatelessFilters(SIRStream str)
          Fuses any two adjacent FILTERS in 'str' so long as: - the shared parent of the filter is a pipeline - the result of fusion will be stateless If a complete pipeline is fused, then it is treated as a single filter in considering fusion within the pipeline's parent.
static SIRStream ManualPartition.fusePipelinesOfStatelessStreams(SIRStream str)
          Fuses any two adjacent STREAMS in 'str' so long as: - the shared parent of the filter is a pipeline - the result of fusion will be stateless If a complete pipeline is fused, then it is treated as a single filter in considering fusion within the pipeline's parent.
 String PartitionDot.getClusterString(SIRStream self)
          Override to show partitions.
static SIRStream ManualPartition.getStream(SIRStream str, int num)
          Returns stream contained within 'str' that has unique id number 'num'.
static SIRStream ManualPartition.getStream(SIRStream str, String name)
          Returns stream by given that is deep child of 'str'.
static SIRStream[] ManualPartition.getStreams(SIRStream str, String prefix)
          Returns set of all child streams of 'str' (including 'str', possibly) that have a name beginning with a given prefix.
static SIRStream[] ManualPartition.getStreamsContaining(SIRStream str, String subStr)
          Returns set of all child streams of 'str' (including 'str', possibly) that have a name that contains 'subStr'.
static WorkEstimate WorkEstimate.getWorkEstimate(SIRStream str)
          Returns a work estimate of
static void GreedyPartitioner.makePartitionMap(SIRStream str, Map<SIROperator,Integer> map, int N)
          Assuming that 'str' is the product of a greedy (or greedier) partitioning, produce a mapping from SIROperator's to N hosts.
static SIRStream ManualPartition.partition(SIRStream str, int targetTiles)
          Runs dynamic programming partitioner on 'str', aiming to reduce the number of tiles needed to 'targetTiles'.
static SIRStream ManualPartition.partitionGreedy(SIRStream str, int targetTiles)
          Runs greedy partitioner on 'str', aiming to reduce the number of tiles needed to 'targetTiles'.
 void RecordingStreamVisitor.preVisitStream(SIRStream self, SIRIterator iter)
          This is called before all visits to a stream structure (Filter, Pipeline, SplitJoin, FeedbackLoop)
 void WorkEstimate.printGraph(SIRStream str, String filename)
          Prints dot graph of work estimates for
static void ManualPartition.printGraph(SIRStream str, String filename)
          Outputs numbered dot graph for 'str', by name of 'filename'.dot.
static void PartitionDot.printPartitionGraph(SIRStream str, String filename, HashMap<SIROperator,Object> partitions)
          Prints dot graph of 'str' to 'filename'.
static void PartitionDot.printScheduleGraph(SIRStream str, String filename, HashMap[] execCounts)
          For printing execution counts.
static void ManualPartition.unroll(SIRStream str, int limit)
          Performs loop unrolling up to 'limit' in all methods of all deep children within 'str'.
 

Method parameters in at.dms.kjc.sir.lowering.partition with type arguments of type SIRStream
static PartitionGroup PartitionGroup.createFromAssignments(List<SIRStream> children, HashMap<Object,Integer> map)
          Given a list of children and a mapping from each child to an Integer denoting the partition, creates a partition group where children mapped to the same integer are allocated to the same partition.
 

Constructors in at.dms.kjc.sir.lowering.partition with parameters of type SIRStream
GreedierPartitioner(SIRStream str, WorkEstimate work, int numTiles, boolean joinersNeedTiles)
          Construct GreedierPartitioner.
GreedyPartitioner(SIRStream str, WorkEstimate work, int target, boolean joinersNeedTiles)
           
ILPPartitioner(SIRStream str, WorkEstimate work, int numTiles)
           
ListPartitioner(SIRStream str, WorkEstimate work, int numTiles)
           
PartitionDot(SIRStream str, PrintStream outputstream, HashMap<SIROperator,Object> partitions, String prefixLabel, boolean simple, boolean markStateful, boolean markIO)
          PrefixLabel is a prefix for each node.
 

Uses of SIRStream in at.dms.kjc.sir.lowering.partition.cache
 

Methods in at.dms.kjc.sir.lowering.partition.cache that return SIRStream
 SIRStream CachePartitioner.calcPartitions(Map<SIROperator,Integer> partitionMap)
          The toplevel call for calculating partitions without fusing anything in the stream.
static SIRStream CachePartitioner.doit(SIRStream str, int code_cache, int data_cache)
          Toplevel call.
 SIRStream CachePartitioner.toplevel()
          This is the toplevel call for doing partitioning.
 

Methods in at.dms.kjc.sir.lowering.partition.cache with parameters of type SIRStream
static SIRStream CachePartitioner.doit(SIRStream str, int code_cache, int data_cache)
          Toplevel call.
 at.dms.kjc.sir.lowering.partition.cache.CConfig CachePartitioner.getConfig(SIRStream str)
           
 

Constructors in at.dms.kjc.sir.lowering.partition.cache with parameters of type SIRStream
CachePartitioner(SIRStream str, WorkEstimate work, int numTiles, int code_cache_size, int data_cache_size)
           
 

Uses of SIRStream in at.dms.kjc.sir.lowering.partition.dynamicprog
 

Methods in at.dms.kjc.sir.lowering.partition.dynamicprog that return SIRStream
 SIRStream DynamicProgPartitioner.calcPartitions(Map<SIROperator,Integer> partitionMap)
          The toplevel call for calculating partitions without fusing anything in the stream.
 SIRStream DynamicProgPartitioner.fuseall(SIRStream str)
           
 SIRStream DynamicProgPartitioner.toplevel()
          This is the toplevel call for doing partitioning.
 

Methods in at.dms.kjc.sir.lowering.partition.dynamicprog with parameters of type SIRStream
 SIRStream DynamicProgPartitioner.fuseall(SIRStream str)
           
 at.dms.kjc.sir.lowering.partition.dynamicprog.DPConfig DynamicProgPartitioner.getConfig(SIRStream str)
           
static void DynamicProgPartitioner.saveScalingStatistics(SIRStream str, WorkEstimate work, int maxTiles)
          Collect scaling statistics for all partitions 1...
 

Constructors in at.dms.kjc.sir.lowering.partition.dynamicprog with parameters of type SIRStream
DynamicProgPartitioner(SIRStream str, WorkEstimate work, int numTiles, boolean joinersNeedTiles, boolean limitICode, boolean strict)
          As above, without noHorizFuse.
DynamicProgPartitioner(SIRStream str, WorkEstimate work, int numTiles, boolean joinersNeedTiles, boolean limitICode, boolean strict, HashSet noHorizFuse)
          joinersNeedTiles
 

Uses of SIRStream in at.dms.kjc.sir.lowering.partition.linear
 

Methods in at.dms.kjc.sir.lowering.partition.linear that return SIRStream
 SIRStream LinearPartitioner.toplevel()
          This is the toplevel call for doing partitioning.
 

Methods in at.dms.kjc.sir.lowering.partition.linear with parameters of type SIRStream
 at.dms.kjc.sir.lowering.partition.linear.LDPConfig LinearPartitioner.getConfig(SIRStream str)
           
 

Constructors in at.dms.kjc.sir.lowering.partition.linear with parameters of type SIRStream
LinearPartitioner(SIRStream str, LinearAnalyzer lfa)
           
 

Uses of SIRStream in at.dms.kjc.sir.statespace
 

Methods in at.dms.kjc.sir.statespace that return types with arguments of type SIRStream
 Iterator<SIRStream> LinearAnalyzer.getFilterIterator()
          Gets an iterator over all of the linear representations that this LinearAnalyzer knows about.
 

Methods in at.dms.kjc.sir.statespace with parameters of type SIRStream
 void LinearAnalyzer.addLinearRepresentation(SIRStream key, LinearFilterRepresentation rep)
          Adds a mapping from SIRStream to LinearFilterRep.
 void LinearAnalyzer.addNonLinear(SIRStream str)
          Adds a note that str is non-linear.
static void LinearDirectReplacer.doReplace(LinearAnalyzer lfa, SIRStream str)
          Start the process of replacement on str using the Linearity information in lfa.
static LinearAnalyzer LinearAnalyzer.findLinearFilters(SIRStream str, boolean debug, boolean refactorLinearChildren)
          Main entry point -- searches the passed stream for linear filters and calculates their associated matrices.
static LinearAnalyzer LinearAnalyzer.findLinearFilters(SIRStream str, boolean debug, LinearAnalyzer lfa)
          Same as above, but specifies an existing
 String LinearDotSimple.getClusterString(SIRStream self)
          Override the string used to create a new subgraph, to color it if we have a linear rep for it.
 String LinearDot.getClusterString(SIRStream self)
          Override the string used to create a new subgraph, to color it if we have a linear rep for it.
 LinearFilterRepresentation LinearAnalyzer.getLinearRepresentation(SIRStream stream)
          Returns the mapping from stream to linear representation that we have.
 LinearRedundancy LinearRedundancyAnalyzer.getRedundancy(SIRStream str)
          Returns the LinearRedundancy opject associated with the SIRStream str.
 boolean LinearAnalyzer.hasLinearRepresentation(SIRStream stream)
          Returns true if the specified filter has a linear representation that we have found.
 boolean LinearRedundancyAnalyzer.hasRedundancy(SIRStream str)
          Returns true if this linear redundancy analyzer has redundancy information for the passed SIRStream.
 boolean LinearAnalyzer.isNonLinear(SIRStream key)
          Checks if stream is non-linear
protected  SIRFilter LinearDirectReplacer.makeEfficientImplementation(SIRStream oldStream, LinearFilterRepresentation linearRep)
          Creates a filter that has a work function that directly implements the linear representation that is passed in.
 String LinearDot.makeRedundancyString(SIRStream str)
          Creates a string that represents the linear redundancy of this str.
abstract  boolean LinearReplacer.makeReplacement(SIRStream self)
          Visit a pipeline, splitjoin or filter, replacing them with a new filter that presumably executes more efficiently.
 boolean LinearDirectReplacer.makeReplacement(SIRStream self)
          Visit a pipeline, splitjoin or filter, replacing them with a new filter that directly implements the linear representation.
static void LinearDot.printGraph(SIRStream str, String filename, LinearAnalyzer lfa)
          Prints dot graph of
static void LinearDotSimple.printGraph(SIRStream str, String filename, LinearAnalyzer lfa, LinearRedundancyAnalyzer lra)
          Prints dot graph of
static void LinearDot.printGraph(SIRStream str, String filename, LinearAnalyzer lfa, LinearRedundancyAnalyzer lra)
          Prints dot graph of to , using LinearAnalyzer lfa and LinearRedundancyAnalyzer lra.
 void LinearAnalyzer.removeLinearRepresentation(SIRStream stream)
          Removes the specified SIRStream from the linear represention mapping.
 

Uses of SIRStream in at.dms.kjc.sir.stats
 

Methods in at.dms.kjc.sir.stats with parameters of type SIRStream
static void StatisticsGathering.doit(SIRStream str)
          Gather statistics for .
static void ParallelizationGathering.doit(SIRStream str, int processors)
           
 

Uses of SIRStream in at.dms.kjc.slicegraph
 

Methods in at.dms.kjc.slicegraph with parameters of type SIRStream
 void FlattenAndPartition.flatten(SIRStream str, HashMap[] exeCounts)
           
static void FlattenGraph.flattenGraph(SIRStream graph, LinearAnalyzer lfa, HashMap[] execCounts)
          Main entry point to FlattenGraph.
 boolean AdaptivePartitioner.useSpace(SIRStream partitionedStr, SpaceTimeSchedule spaceTime, Layout layout)
           
 

Constructors in at.dms.kjc.slicegraph with parameters of type SIRStream
UnflatFilter(SIRStream filter)
          Construct new UnflatFilter from filter without doing any connections.
 

Uses of SIRStream in at.dms.kjc.spacedynamic
 

Methods in at.dms.kjc.spacedynamic with parameters of type SIRStream
static SIRFilter Util.getSinkFilter(SIRStream stream)
           
static SIRFilter Util.getSourceFilter(SIRStream stream)
           
static String SpaceDynamicBackend.makeDotFileName(String prefix, SIRStream strName)
           
static void SpaceDynamicBackend.run(SIRStream str, JInterfaceDeclaration[] interfaces, SIRInterfaceTable[] interfaceTables, SIRStructure[] structs, SIRHelper[] helpers, SIRGlobal global)
           
static void RawWorkEstimator.test(SIRStream stream)
           
 void FlatIRToC.visitRegReceiverStatement(SIRRegReceiverStatement self, JExpression portal, SIRStream receiver, JMethodDeclaration[] methods)
           
 

Uses of SIRStream in at.dms.kjc.spacetime
 

Methods in at.dms.kjc.spacetime that return SIRStream
static SIRStream GranularityAdjust.doit(SIRStream str, int numCores)
           
 SIRStream DuplicateBottleneck.smartDuplication(SIRStream str, int numCores)
          An experimental method for data-parallelization.
 SIRStream DuplicateBottleneck.smarterDuplicateStreamline(SIRStream str, int numCores)
          Experimental method for extracting data-parallelism.
 

Methods in at.dms.kjc.spacetime with parameters of type SIRStream
static void SafeFileReaderWriterPositions.doit(SIRStream str)
          Make FileReader positions safe with respect to splitters and FileWriter positions safe with respect to joiners.
static SIRStream GranularityAdjust.doit(SIRStream str, int numCores)
           
 void StreamlinedDuplicate.doit(SIRStream str, RawChip chip)
           
static void BenchChar.doit(SpaceTimeSchedule spaceTime, SIRStream str)
          Calculate and print some characteristics of the application.
 boolean DuplicateBottleneck.duplicateBottleneck(SIRStream str)
           
 void DuplicateBottleneck.duplicateFilters(SIRStream str, int reps)
          Duplicate all the filters in the stream graph reps times.
static void DuplicateBottleneck.duplicateHeavyFilters(SIRStream str)
          An experimental method for exploiting data-parallelism.
static int Util.outputsPerSteady(SIRStream str, HashMap exeCounts)
          Calculate the number of items the file writers write to files in the schedule exeCounts.
 void DuplicateBottleneck.percentStateless(SIRStream str)
          Print the percentage of work that is contained in stateless filters compared to the total work of the application.
static double CompCommRatio.ratio(SIRStream str, WorkEstimate work, HashMap<SIRStream,int[]> executionCounts)
           
static void SpaceTimeBackend.run(SIRStream str, JInterfaceDeclaration[] interfaces, SIRInterfaceTable[] interfaceTables, SIRStructure[] structs, SIRHelper[] helpers, SIRGlobal global)
          Top level method for SpaceTime backend, called via reflection from Main.
 SIRStream DuplicateBottleneck.smartDuplication(SIRStream str, int numCores)
          An experimental method for data-parallelization.
 void DuplicateBottleneck.smarterDuplicate(SIRStream str, int tiles)
          Use the cousins algorithm specifying the number of tiles.
 SIRStream DuplicateBottleneck.smarterDuplicateStreamline(SIRStream str, int numCores)
          Experimental method for extracting data-parallelism.
 void TraceIRtoC.visitRegReceiverStatement(SIRRegReceiverStatement self, JExpression portal, SIRStream receiver, JMethodDeclaration[] methods)
           
 

Method parameters in at.dms.kjc.spacetime with type arguments of type SIRStream
static double CompCommRatio.ratio(SIRStream str, WorkEstimate work, HashMap<SIRStream,int[]> executionCounts)
           
 

Constructors in at.dms.kjc.spacetime with parameters of type SIRStream
CalculateParams(SIRStream str, double CCRatio, HashMap<SIRFilter,int[]> exeCounts)
           
GreedyBinPacking(SIRStream str, int numBins, WorkEstimate workEstimates)
           
 

Uses of SIRStream in at.dms.kjc.vanillaSlice
 

Methods in at.dms.kjc.vanillaSlice with parameters of type SIRStream
static void UniBackEnd.run(SIRStream str, JInterfaceDeclaration[] interfaces, SIRInterfaceTable[] interfaceTables, SIRStructure[] structs, SIRHelper[] helpers, SIRGlobal global)
          Top level method for uniprocessor backend, called via reflection from StreaMITMain.
 

Uses of SIRStream in at.dms.util
 

Fields in at.dms.util with type parameters of type SIRStream
static LinkedList<SIRStream> Utils.EMPTY_LIST
           
 

Methods in at.dms.util with parameters of type SIRStream
static String Utils.makeDotFileName(String prefix, SIRStream strName)
          Make a name for a dot file from a supplied prefix and the name of the top-level SIRStream.
 void IRPrinter.visitInitStatement(SIRInitStatement self, SIRStream target)
          Visits an init statement.
 void IRPrinter.visitRegReceiverStatement(SIRRegReceiverStatement self, JExpression portal, SIRStream receiver, JMethodDeclaration[] methods)
          Visits a register-receiver statement.
 

Uses of SIRStream in streamit.frontend
 

Methods in streamit.frontend that return SIRStream
 SIRStream FEIRToSIR.findStream(SCSimple creator)
           
 SIRStream FEIRToSIR.findStream(String name)
           
 SIRStream FEIRToSIR.visitFilterSpec(StreamSpec spec)
           
 SIRStream FEIRToSIR.visitPipelineSpec(StreamSpec spec)