Expand description
Math stage is responsible for most if not all of the optimizations the compiler does. It’s at this point where rules are analyzed, expressions normalized, patterns that can be optimized optimized. It’s the final and most important stage of compilation.
Structs§
- The adjusted (optimized) part of IR.
- Used explicitly for figure IR building.
- An entity along with some metadata.
- A context struct for loading unrolled data.
- An expression with some metadata and a type.
- Compiler flags.
- Constructs a map between two sets of numbers A -> B.
- The full Math IR, the ultimate result of the entire compiler
- A math stage context used across the whole compilation process.
- A utility iterator for merging two sorted iterators.
- The
optimizationsflag group. Currently empty. Has nothing to do with the [optimizations] module. - A context for the recosntruction process.
- A rule along if its aggregated information. Note that
entitiesis not filled until the final steps of compilation.
Enums§
- The kind of an entity.
- A mathematical expression with a flattened memory model.
- The primitive type of an expression.
- Represents a rule of the figure. Rules are normalized iff:
Traits§
- Deep clone a mathematical expression. This is different from
Clonein that it works with the math stage’s flattened memory model and deep clones all of an expression’s dependencies (subexpressions). - Helper trait for converting unrolled expressions into math expressions.
- Helper trait for getting the type of the expression.
- The main actor in reconstruction process.
- Helper trait for reindexing process.
Functions§
- Loads a
GeoScriptscript and compiles it into Math IR. Encapsulates the entire compiler’s work.