It was making the unsound assumption that cgn==nil => v is one
of {Global,Function,Const,Capture} to avoid checking v's type,
which is what it now does. This caused more expensive
constraints to be generated, which is suboptimal though not
wrong exactly.
In one benchmark, this change reduces the number of complex
constraints by about 23% of loads and 53% of stores, and
increases the number of (simple) copy constraints by about 5%.
LGTM=crawshaw
R=crawshaw
CC=golang-codereviews
https://golang.org/cl/106940043
|
||
|---|---|---|
| .. | ||
| callgraph | ||
| exact | ||
| gccgoimporter | ||
| gcimporter | ||
| importer | ||
| loader | ||
| pointer | ||
| ssa | ||
| types | ||
| vcs | ||