| Interface | Description |
|---|---|
| Canonicalizable |
Nodes can implement
Canonicalizable or one of the two sub-interfaces Canonicalizable.Unary and
Canonicalizable.Binary to provide local optimizations like constant folding and strength reduction. |
| Canonicalizable.Binary<T extends Node> |
This sub-interface of
Canonicalizable is intended for nodes that have exactly two
inputs. |
| Canonicalizable.BinaryCommutative<T extends Node> |
This sub-interface of
Canonicalizable.Binary is for nodes with two inputs where the
operation is commutative. |
| Canonicalizable.Unary<T extends Node> |
This sub-interface of
Canonicalizable is intended for nodes that have exactly one
input. |
| CanonicalizerTool | |
| Simplifiable |
This interface allows nodes to perform more complicated simplifications, in contrast to
Canonicalizable, which supports only replacing the current node. |
| SimplifierTool |