cranelift_isle

Module trie_again

Source
Expand description

A strongly-normalizing intermediate representation for ISLE rules. This representation is chosen to closely reflect the operations we can implement in Rust, to make code generation easy.

Structs§

BindingId
A hash-consed identifier for a binding, stored in a RuleSet.
Rule
A term-rewriting rule. All BindingIds are only meaningful in the context of the RuleSet that contains this rule.
RuleSet
A collection of Rules, along with hash-consed Bindings for all of them.
TupleIndex
A field index in a tuple or an enum variant.

Enums§

Binding
Bindings are anything which can be bound to a variable name in Rust. This includes expressions, such as constants or function calls; but it also includes names bound in pattern matches.
Constraint
Pattern matches which can fail. Some binding sites are the result of successfully matching a constraint. A rule applies constraints to binding sites to determine whether the rule matches.
Overlap
Records whether a given pair of rules can both match on some input.

Functions§

build
Construct a RuleSet for each term in termenv that has rules.