forked from TrueCloudLab/neoneo-go
compiler: do not store constants as variables
Because the constants are loaded directly via `emitLoadConst`, there is no need to store them in an array of locals. It can have a big overhead, because it is done at the beginning of every function.
This commit is contained in:
parent
48ca0e1126
commit
c3094123a1
1 changed files with 5 additions and 1 deletions
|
@ -138,7 +138,11 @@ func (c *codegen) convertGlobals(f ast.Node) {
|
|||
case *ast.FuncDecl:
|
||||
return false
|
||||
case *ast.GenDecl:
|
||||
ast.Walk(c, n)
|
||||
// constants are loaded directly so there is no need
|
||||
// to store them as a local variables
|
||||
if n.Tok != token.CONST {
|
||||
ast.Walk(c, n)
|
||||
}
|
||||
}
|
||||
return true
|
||||
})
|
||||
|
|
Loading…
Reference in a new issue