Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/compile: manually CSE |-combined rules? #36443

Open
josharian opened this issue Jan 7, 2020 · 1 comment
Open

cmd/compile: manually CSE |-combined rules? #36443

josharian opened this issue Jan 7, 2020 · 1 comment
Labels
compiler/runtime Issues related to the Go compiler and/or runtime. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Milestone

Comments

@josharian
Copy link
Contributor

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.

@toothrot toothrot added this to the Backlog milestone Jan 8, 2020
@toothrot toothrot added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Jan 8, 2020
@toothrot
Copy link
Contributor

toothrot commented Jan 8, 2020

/cc @randall77 @griesemer

@gopherbot gopherbot added the compiler/runtime Issues related to the Go compiler and/or runtime. label Jul 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compiler/runtime Issues related to the Go compiler and/or runtime. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Projects
Status: Triage Backlog
Development

No branches or pull requests

3 participants