cmd/compile: move Frontend field from ssa.Config to ssa.Func

Suggested by mdempsky in CL 38232.
This allows us to use the Frontend field
to associate frontend state and information
with a function.
See the following CL in the series for examples.

This is a giant CL, but it is almost entirely routine refactoring.

The ssa test API is starting to feel a bit unwieldy.
I will clean it up separately, once the dust has settled.

Passes toolstash -cmp.

Updates #15756

Change-Id: I71c573bd96ff7251935fce1391b06b1f133c3caf
Reviewed-on: https://go-review.googlesource.com/38327
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
This commit is contained in:
Josh Bleecher Snyder 2017-03-16 22:42:10 -07:00
parent 193510f2f6
commit 2cdb7f118a
51 changed files with 922 additions and 2228 deletions

View file

@ -392,12 +392,12 @@ func devirt(v *Value, sym interface{}, offset int64) *obj.LSym {
if !ok {
return nil
}
lsym := f.Config.Frontend().DerefItab(ext.Sym, offset)
lsym := f.fe.DerefItab(ext.Sym, offset)
if f.pass.debug > 0 {
if lsym != nil {
f.Config.Warnl(v.Pos, "de-virtualizing call")
f.Warnl(v.Pos, "de-virtualizing call")
} else {
f.Config.Warnl(v.Pos, "couldn't de-virtualize call")
f.Warnl(v.Pos, "couldn't de-virtualize call")
}
}
return lsym
@ -510,7 +510,7 @@ func noteRule(s string) bool {
// cond is true and the rule is fired.
func warnRule(cond bool, v *Value, s string) bool {
if cond {
v.Block.Func.Config.Warnl(v.Pos, s)
v.Block.Func.Warnl(v.Pos, s)
}
return true
}