No description
- Go 100%
Three codegen optimizations that improve jsonlex from 1.53x to 1.45x vs gcc -O1: - Leaf functions with no calls, no callee-saved registers, and no stack frame skip prologue/epilogue entirely (just ret). - GVNLoadCSE no longer kills all inherited loads at loop headers. Pre-computes per-loop store sets and only kills loads matching actual stores, preserving loop-invariant loads across iterations. - GVN now canonicalizes both left and right constant operands, with post-canonicalization commutative re-sorting. This required three backend fixes: SIB and LEA fusion verify same-block operand locality, and phi coalescing only fires when the edge value is defined in the predecessor block. |
||
|---|---|---|
| cmd/ash | ||
| internal/testutil | ||
| pkg | ||
| testdata/programs | ||
| .gitignore | ||
| benchmarks.md | ||
| CLAUDE.md | ||
| go.mod | ||
| issues.md | ||
| optimizations.md | ||