mirror of
https://github.com/golang/go
synced 2024-11-22 21:50:03 -07:00
cmd/compile: give function position on function-too-big error
Update #67916 Change-Id: Iec3603c136b30ff6f760783c175eeb7e6ce139ec Reviewed-on: https://go-review.googlesource.com/c/go/+/591675 Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Keith Randall <khr@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com> Auto-Submit: Keith Randall <khr@golang.org>
This commit is contained in:
parent
e061fb89e8
commit
afe0e60054
@ -8,6 +8,7 @@ import (
|
||||
"math/bits"
|
||||
|
||||
"cmd/compile/internal/base"
|
||||
"cmd/internal/src"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -33,11 +34,11 @@ type Bulk struct {
|
||||
nword int32
|
||||
}
|
||||
|
||||
func NewBulk(nbit int32, count int32) Bulk {
|
||||
func NewBulk(nbit int32, count int32, pos src.XPos) Bulk {
|
||||
nword := (nbit + wordBits - 1) / wordBits
|
||||
size := int64(nword) * int64(count)
|
||||
if int64(int32(size*4)) != size*4 {
|
||||
base.Fatalf("NewBulk too big: nbit=%d count=%d nword=%d size=%d", nbit, count, nword, size)
|
||||
base.FatalfAt(pos, "NewBulk too big: nbit=%d count=%d nword=%d size=%d", nbit, count, nword, size)
|
||||
}
|
||||
return Bulk{
|
||||
words: make([]uint32, size),
|
||||
|
@ -132,7 +132,7 @@ func ArgLiveness(fn *ir.Func, f *ssa.Func, pp *objw.Progs) (blockIdx, valueIdx m
|
||||
}
|
||||
|
||||
nargs := int32(len(lv.args))
|
||||
bulk := bitvec.NewBulk(nargs, int32(len(f.Blocks)*2))
|
||||
bulk := bitvec.NewBulk(nargs, int32(len(f.Blocks)*2), fn.Pos())
|
||||
for _, b := range f.Blocks {
|
||||
be := &lv.be[b.ID]
|
||||
be.livein = bulk.Next()
|
||||
|
@ -431,7 +431,7 @@ func newliveness(fn *ir.Func, f *ssa.Func, vars []*ir.Name, idx map[*ir.Name]int
|
||||
|
||||
nblocks := int32(len(f.Blocks))
|
||||
nvars := int32(len(vars))
|
||||
bulk := bitvec.NewBulk(nvars, nblocks*7)
|
||||
bulk := bitvec.NewBulk(nvars, nblocks*7, fn.Pos())
|
||||
for _, b := range f.Blocks {
|
||||
be := lv.blockEffects(b)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user