|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
Class Summary | |
---|---|
FineGrainedIterFactory | This class is a fine-grained iterator factory. |
IterFactory | This class is the outside interface for managing iterators. |
Memoizer | In this implementation, an object is memoized iff it is immutable. |
SIRFeedbackLoopIter | IterFactory uses this for SIRFeedbackLoop. |
SIRFilterIter | IterFactory uses this for SIRFilter. |
SIRFineGrainedFeedbackLoopIter | FineGrainedIterFactory uses this for SIRFeedbackLoop Includes extra methods as appropriate. |
SIRFineGrainedSplitJoinIter | FineGrainedIterFactory uses this for SIRSplitJoiner Includes extra methods as appropriate. |
SIRIterator | Abstract class from which 'Iter's inherit. |
SIRPhasedFilterIter | IterFactory uses this for SIRPhasedFilter. |
SIRPipelineIter | IterFactory uses this for SIRPipeline. |
SIRRecursiveStubIter | IterFactory uses this for SIRRecursiveStub. |
SIRSplitJoinIter | IterFactory uses this for SIRSplitJoin. |
Provides a facility for iterating over the SIR structures that make up
a StreamIt program after at.dms.kjc.Kopi2SIR
has been
run. These iterators were created to serve to primary functions:
Of these two intentions, only the first one is currently utilized.
The classes in this package implement the iterator interfaces defined
by the scheduler, and thus serve as a primary contact between the
compiler and the scheduler. However, the memoization procedure (see
Memoizer
) has been deprecated.
Apart from interfacing with the scheduler, there is no particular reason to use iterators for traversing the stream graph. It is equally viable to perform manual recursion through the stream hierarchy.
The package should support all SIRStream
constructs in
the program. Support is included for SIRFilter
,
SIRPhasedFilter
, SIRPipeline
,
SIRSplitJoin
, SIRFeedbackLoop
, and
SIRRecursiveStub
.
The package currently does not iterate over SIRGlobal
s
since they are not reachable from the root of the program.
The basis for using the iterator package IterFactory
is
something like:
SIRStream sir = ...; StreamVisitor lowLevelVisitor = new EmptyStreamVisitor(); IterFactory.createFactory().createIter(str).accept(lowLevelVisitor);
The iterators created by IterFactory
have certain useful
methods: finding the SIRStream
object currently being
iterated over, finding its parent, determining its type, finding some
parameters of the object, etc.
StreamVisitor
(and its subclasses) pass the iterator to the
visiting methods, and
One common debugging idiom for dumping program contents is:
SIRPrinter printer1 = new SIRPrinter("after munging:"); IterFactory.createFactory().createIter(str).accept(printer1); printer1.close();
(Another debugging idiom is to use SIRToStreamIt
.)
None
IterFactory
,
SIRPrinter
|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |