scalus.sir.lowering
Members list
Packages
Type members
Classlikes
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait ComplexLoweredValuetrait LoweredValueclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
- Known subtypes
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalsclass BuiltinApplyLoweredValuetrait ComplexLoweredValuetrait LoweredValueclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalsclass BuiltinApplyLoweredValuetrait ComplexLoweredValuetrait LoweredValueclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
- Known subtypes
-
class BuilinApply1LoweredValeclass BuilinApply2LoweredVale
ComplexLoweredValue is a base trait for lowered values that consist of multiple subvalues. ownVars - var that used in subvalues but defined in this value. (i.e. not propagated up in dominatedUplevelVars)
ComplexLoweredValue is a base trait for lowered values that consist of multiple subvalues. ownVars - var that used in subvalues but defined in this value. (i.e. not propagated up in dominatedUplevelVars)
Attributes
- Supertypes
- Known subtypes
-
class MapMatchLoweredValueclass ListMatchLoweredValueclass ApplyLoweredValueclass BuiltinApplyLoweredValueclass BuilinApply1LoweredValeclass BuilinApply2LoweredValeclass IfThenElseLoweredValueclass LambdaLoweredValueclass LetNonRecLoweredValueclass LetRecLoweredValueShow all
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait LoweredValueclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait ProxyLoweredValuetrait LoweredValueclass Objecttrait Matchableclass AnyShow all
Represent a variable which is dependent on another variable. i.e. var x1 = (toOtherReperesentation(y))
Represent a variable which is dependent on another variable. i.e. var x1 = (toOtherReperesentation(y))
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait IdentifiableLoweredValuetrait LoweredValueclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
trait Singletontrait Producttrait Mirrortrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
- Self type
-
ErrorRepresentation.type
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait ProxyLoweredValuetrait LoweredValueclass Objecttrait Matchableclass AnyShow all
Values with id which can be represented by variables (if needed).
Values with id which can be represented by variables (if needed).
Identificatin is id.
Attributes
- Supertypes
- Known subtypes
-
class VariableLoweredValue
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait ComplexLoweredValuetrait LoweredValueclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait ComplexLoweredValuetrait LoweredValueclass Objecttrait Matchableclass AnyShow all
Representation for lambda function. By default, lanbda-s accept default reperesentation for input and output types. But when we pass functions to type-parametrized functions, then calling party does not know about real parameter types and can't use default representation, so pass parameters as packed data.
Representation for lambda function. By default, lanbda-s accept default reperesentation for input and output types. But when we pass functions to type-parametrized functions, then calling party does not know about real parameter types and can't use default representation, so pass parameters as packed data.
So, we translate higher-order functions to packed data representation when pass as arguments to type-parametrized functions.
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait ComplexLoweredValuetrait LoweredValueclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait ComplexLoweredValuetrait LoweredValueclass Objecttrait Matchableclass AnyShow all
Attributes
- Companion
- object
- Supertypes
-
trait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Attributes
- Companion
- class
- Supertypes
-
trait Producttrait Mirrorclass Objecttrait Matchableclass Any
- Self type
-
LocalScope.type
SEA of nodes - like representation. E.e. each value is node, which manage dependencies. LoweredValue:
SEA of nodes - like representation. E.e. each value is node, which manage dependencies. LoweredValue:
- represents a value in lowered SIR, which is
- a generator of a block of code with generate specific SIRType in specific representation. -- (representation is LoweredValueRepresentation, which can be term or data in specoific encoding)
- some lowered values can be named (see IdentifiableLoweredValue and maintain a set of dependencies) The idea of SEA of nodes -- than we can generate code 'by need' based on dependencies. I.e. if value not used at all - code will not be generated, if value used once -- no intermediate construction will be created and code will be generated directly in place of usage. If value used multiple times -- it will be generated near the usage (i.e. in the nearest block, which contains all depended).
The idea of SEA of nodes described in the paper: Cliff Click. 1995. Global code motion/global value numbering. SIGPLAN Not. 30, 6 (June 1995), 246–257. "https://doi.org/10.1145/223428.207154"
We have a quite different code (non-SSA form, only dominators), but the main idea of relaxing order is the same,
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
trait ComplexLoweredValueclass MapMatchLoweredValueclass ListMatchLoweredValueclass ApplyLoweredValueclass BuiltinApplyLoweredValueclass BuilinApply1LoweredValeclass BuilinApply2LoweredValeclass IfThenElseLoweredValueclass LambdaLoweredValueclass LetNonRecLoweredValueclass LetRecLoweredValueclass ConstantLoweredValuetrait IdentifiableLoweredValueclass VariableLoweredValuetrait ProxyLoweredValueclass ArgProxyLoweredValueclass WrappedArgclass DelayLoweredValueclass ForceLoweredValueclass StaticLoweredValueShow all
Attributes
- Companion
- trait
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
LoweredValue.type
representation, depends on the type of the value.
representation, depends on the type of the value.
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
object ErrorRepresentationclass LambdaRepresentationtrait PrimitiveRepresentationobject Constantobject PackedDataclass OneElementWrapperobject PackedDataListobject PackedDataMapobject PairDataobject PairIntDataListobject ProdDataConstrobject ProdDataListobject UplcConstrobject DataConstrobject PackedSumDataListobject PairIntDataListobject SumDataAssocMapobject SumDataListobject SumDataPairListobject UplcConstrobject UplcConstrOnDataclass TypeVarRepresentationShow all
Attributes
- Companion
- trait
- Supertypes
-
trait Sumtrait Mirrorclass Objecttrait Matchableclass Any
- Self type
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
Lowering.type
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Supertypes
-
trait Producttrait Equalsclass RuntimeExceptionclass Exceptionclass Throwabletrait Serializableclass Objecttrait Matchableclass AnyShow all
Change in supplied SIR
Change in supplied SIR
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
Preprocess.type
Attributes
- Companion
- object
- Supertypes
- Known subtypes
-
object Constantobject PackedData
Attributes
- Companion
- trait
- Supertypes
-
trait Sumtrait Mirrorclass Objecttrait Matchableclass Any
- Self type
Attributes
- Companion
- object
- Supertypes
- Known subtypes
-
class OneElementWrapperobject PackedDataListobject PackedDataMapobject PairDataobject PairIntDataListobject ProdDataConstrobject ProdDataListobject UplcConstrShow all
Attributes
- Companion
- trait
- Supertypes
-
trait Sumtrait Mirrorclass Objecttrait Matchableclass Any
- Self type
Attributes
- Supertypes
- Known subtypes
-
class ArgProxyLoweredValueclass WrappedArgclass DelayLoweredValueclass ForceLoweredValueShow all
A proxy which change only the representation of the input value (without changing the underlying generated code)
A proxy which change only the representation of the input value (without changing the underlying generated code)
Attributes
- Companion
- object
- Supertypes
Attributes
- Companion
- class
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ScalusRuntime.type
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait LoweredValueclass Objecttrait Matchableclass AnyShow all
Attributes
- Companion
- object
- Supertypes
- Known subtypes
-
object DataConstrobject PackedSumDataListobject PairIntDataListobject SumDataAssocMapobject SumDataListobject SumDataPairListobject UplcConstrobject UplcConstrOnDataShow all
Attributes
- Companion
- trait
- Supertypes
-
trait Sumtrait Mirrorclass Objecttrait Matchableclass Any
- Self type
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
A proxy which changes the input value to be specific type and representation.
A proxy which changes the input value to be specific type and representation.
Attributes
- Supertypes
TypeVarRepresentation is used for type variables. Usually this is a synonym for some other specific-type representation. When this is builtin type variable, it can be freely used in any type representation, but when it is not builtin (scala type-var) it can be used only with packed data representation.
TypeVarRepresentation is used for type variables. Usually this is a synonym for some other specific-type representation. When this is builtin type variable, it can be freely used in any type representation, but when it is not builtin (scala type-var) it can be used only with packed data representation.
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes