mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile: track pragmas in lexer rather than global variables
By using a Pragma bit set (8 bits) rather than 8 booleans, also reduce Func type size by 8 bytes (208B -> 200B on 64bit platforms, 116B -> 108B on 32bit platforms). Change-Id: Ibb7e1f8c418a0b5bc6ff813cbdde7bc6f0013b5a Reviewed-on: https://go-review.googlesource.com/19966 Reviewed-by: Dave Cheney <dave@cheney.net>
This commit is contained in:
parent
071e43a958
commit
3c0fae5306
10 changed files with 50 additions and 67 deletions
|
|
@ -169,18 +169,12 @@ type Func struct {
|
|||
Depth int32
|
||||
|
||||
Endlineno int32
|
||||
WBLineno int32 // line number of first write barrier
|
||||
|
||||
Norace bool // func must not have race detector annotations
|
||||
Nosplit bool // func should not execute on separate stack
|
||||
Noinline bool // func should not be inlined
|
||||
Nowritebarrier bool // emit compiler error instead of write barrier
|
||||
Nowritebarrierrec bool // error on write barrier in this or recursive callees
|
||||
Dupok bool // duplicate definitions ok
|
||||
Wrapper bool // is method wrapper
|
||||
Needctxt bool // function uses context register (has closure variables)
|
||||
Systemstack bool // must run on system stack
|
||||
|
||||
WBLineno int32 // line number of first write barrier
|
||||
Pragma Pragma // go:xxx function annotations
|
||||
Dupok bool // duplicate definitions ok
|
||||
Wrapper bool // is method wrapper
|
||||
Needctxt bool // function uses context register (has closure variables)
|
||||
}
|
||||
|
||||
type Op uint8
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue