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: generate better eq algs for some array types #37866

Open
josharian opened this issue Mar 15, 2020 · 1 comment
Open

cmd/compile: generate better eq algs for some array types #37866

josharian opened this issue Mar 15, 2020 · 1 comment

Comments

@josharian
Copy link
Contributor

@josharian josharian commented Mar 15, 2020

func geneq in alg.go contains this comment:

	case TARRAY:
		// An array of pure memory would be handled by the
		// standard memequal, so the element type must not be
		// pure memory. Even if we unrolled the range loop,
		// each iteration would be a function call, so don't bother
		// unrolling.

This is not quite true. Floats can’t be compared as pure mem, but don’t require a function call.

And some things that do require a function call are nevertheless susceptible to more optimization. For example, for comparing arrays of strings, we could compare all lengths first (possibly unrolled), and only compare bytes if all lengths agree. Probably something similar for interfaces.

We might even want to inline or partially inline some of these cases.

@mvdan mvdan added the Performance label Mar 15, 2020
@cagedmantis cagedmantis added this to the Backlog milestone Mar 16, 2020
@cagedmantis

This comment has been minimized.

Copy link
Contributor

@cagedmantis cagedmantis commented Mar 16, 2020

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
3 participants
You can’t perform that action at this time.