flix

0.67.2

Fixpoint3.Phase.Hoisting

Definitions

def hoistProgram(program: RamProgram): RamProgram Source

Hoists program as described above.

def unifyEqualitiesOp(equalitySets: MutDisjointSets[(RowVar, Int32), r], constEqualities: MutMap[(RowVar, Int32), List[(Boxed, Type)], r], op: RelOp): Unit \ r Source

Collects equality information in op.

See unifyEqualitiesStmt.

def unifyEqualitiesStmt(equalitySets: MutDisjointSets[(RowVar, Int32), r], constEqualities: MutMap[(RowVar, Int32), List[(Boxed, Type)], r], stmt: RamStmt): Unit \ r Source

Collects equality information in stmt and save it in equalitySets and constEqualities. Equalities between 2 RowLoads are added to equalitySets and equalities between RowLoad and Lit are added to constEqualities.

In equalitySets, we unify (rv1, i1) with (rv2, i2) if they occur together in an equality statement.

In constEqualities, we save a list of which literals a (rv, i) were equal to.