mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/internal/gc: cache ProgInfo in Prog
The ProgInfo is loaded many times during each analysis pass. Load it once at the beginning (in Flowstart if using that, or explicitly, as in plive.go) and then refer to the cached copy. Removes many calls to proginfo. Makes Prog a little bigger, but the previous CL more than compensates. Change-Id: If90a12fc6729878fdae10444f9c3bedc8d85026e Reviewed-on: https://go-review.googlesource.com/7745 Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
This commit is contained in:
parent
532ccae154
commit
fd38dbc8a1
14 changed files with 759 additions and 798 deletions
|
|
@ -225,6 +225,18 @@ type Prog struct {
|
|||
Printed uint8
|
||||
Width int8
|
||||
Mode int8
|
||||
|
||||
Info ProgInfo
|
||||
}
|
||||
|
||||
// ProgInfo holds information about the instruction for use
|
||||
// by clients such as the compiler. The exact meaning of this
|
||||
// data is up to the client and is not interpreted by the cmd/internal/obj/... packages.
|
||||
type ProgInfo struct {
|
||||
Flags uint32 // flag bits
|
||||
Reguse uint64 // registers implicitly used by this instruction
|
||||
Regset uint64 // registers implicitly set by this instruction
|
||||
Regindex uint64 // registers used by addressing mode
|
||||
}
|
||||
|
||||
// Prog.as opcodes.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue