trait ProgramGraphs extends AstGraphs
- Alphabetic
- By Inheritance
- ProgramGraphs
- AstGraphs
- Transforming
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
abstract
class
AstGraph extends Scalan.Node
Base class for all compound nodes with schedule (e.g.
Base class for all compound nodes with schedule (e.g. Lambda, ThunkDef). The graph is directed acyclic (i.e. DAG) in which edges go from
boundVars
down toroots
.- Definition Classes
- AstGraphs
-
case class
GraphNode(sym: Scalan.Sym, usages: Buffer[Int]) extends Product with Serializable
GraphNode is created for each symbol of the AstGraph and represents graph linking structure
GraphNode is created for each symbol of the AstGraph and represents graph linking structure
- Definition Classes
- AstGraphs
- type PGraph = Scalan.ProgramGraph
-
class
PGraphUsages extends DFunc[Int, Buffer[Int]]
Deboxed function to obtain usages of a given node.
Deboxed function to obtain usages of a given node. Represents adjacency matrix of the reversed graph
g
. -
case class
ProgramGraph(roots: Seq[Scalan.Sym], mapping: Nullable[Scalan.Transformer], filterNode: Nullable[(Scalan.Sym) ⇒ Boolean]) extends Scalan.AstGraph with Product with Serializable
Immutable graph collected from
roots
following Ref.node.deps links. -
type
Schedule = Seq[Scalan.Sym]
Type synonim for graph schedules.
Type synonim for graph schedules.
- Definition Classes
- AstGraphs
-
type
ScheduleIds = Buffer[Int]
Alternative representation of schedules using node ids.
Alternative representation of schedules using node ids.
- Definition Classes
- AstGraphs
-
class
DefaultPass extends Scalan.Pass
Default pass to be used when IR is used without special compiler configuration.
Default pass to be used when IR is used without special compiler configuration.
- Definition Classes
- Transforming
-
case class
MapTransformer(subst: HashMap[Scalan.Sym, Scalan.Sym]) extends Scalan.Transformer with Product with Serializable
Concrete and default implementation of Transformer using underlying HashMap.
Concrete and default implementation of Transformer using underlying HashMap.
- Definition Classes
- Transforming
-
abstract
class
Mirror extends AnyRef
Base class for mirrors of graph nodes.
Base class for mirrors of graph nodes. Provides default implementations which can be overriden if special logic is required.
- Definition Classes
- Transforming
-
implicit
class
PartialRewriter extends Scalan.Rewriter
Turns partial function into rewriter (i.e.
Turns partial function into rewriter (i.e. set of rewriting rules)
- Definition Classes
- Transforming
-
abstract
class
Pass extends AnyRef
Descriptor of a current compiler pass.
Descriptor of a current compiler pass. Compiler can be configured to perform one pass after another. Each pass has name, configuration parameters, finalizaton logic etc.
- Definition Classes
- Transforming
-
case class
PassConfig(shouldUnpackTuples: Boolean = false, shouldExtractFields: Boolean = true, constantPropagation: Boolean = true, shouldSlice: Boolean = false) extends Product with Serializable
Configuration parameters of the Pass descriptor.
Configuration parameters of the Pass descriptor.
- Definition Classes
- Transforming
-
abstract
class
Rewriter extends AnyRef
- Definition Classes
- Transforming
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
val
DefaultMirror: Scalan.Mirror
Default Mirror instance which is used in core IR methods.
Default Mirror instance which is used in core IR methods.
- Definition Classes
- Transforming
-
val
NoRewriting: Scalan.Rewriter
Identity rewriter, i.e.
Identity rewriter, i.e. doesn't change the graph when applied.
- Definition Classes
- Transforming
-
val
_currentPass: Scalan.Pass
- Definition Classes
- Transforming
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
beginPass(pass: Scalan.Pass): Unit
Called to setup IR before the new pass is executed.
Called to setup IR before the new pass is executed.
- Definition Classes
- Transforming
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
currentPass: Scalan.Pass
IR global current Pass, changes when the compier switches from one pass to the next one.
IR global current Pass, changes when the compier switches from one pass to the next one. Should remain constant during the whole pass execution.
- Definition Classes
- Transforming
-
def
endPass(pass: Scalan.Pass): Unit
Called to let this IR context to finalized the given pass.
Called to let this IR context to finalized the given pass.
- Definition Classes
- Transforming
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
- object ProgramGraph extends Serializable
-
object
MapTransformer extends Serializable
- Definition Classes
- Transforming
-
object
Pass
- Definition Classes
- Transforming