We know that rewrite rules containing | have a lot of shared subexpressions. Instead of expanding and generating one rewrite rule per expanded rule, we could instead loop over all op tuples, much as CL 213703 proposes we do for commutative ops. Note that this only works for |-expansions that aren't for the top level op, because the top level op is matched using a switch statement. Perhaps surprisingly, about 15% of |-expanded rules (both before and after expansion) use | only in non-top-level rules.
The text was updated successfully, but these errors were encountered: