MLton 20100608 PolyEqual
Home  Index  
PolyEqual is an optimization pass for the SSA IntermediateLanguage, invoked from SSASimplify.

Description

This pass implements polymorphic equality.

Implementation

[WWW]poly-equal.sig [WWW]poly-equal.fun

Details and Notes

For each datatype, tycon, and vector type, it builds and equality function and translates calls to MLton_equal into calls to that function.

Also generates calls to IntInf_equal and Word_equal.

For tuples, it does the equality test inline; i.e., it does not create a separate equality function for each tuple type.

All equality functions are created only if necessary, i.e., if equality is actually used at a type.

Optimizations:


Last edited on 2009-07-11 17:10:54 by MatthewFluet.