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,8 +138,12 @@ func (c *codegen) convertGlobals(f ast.Node) {
|
||||||
case *ast.FuncDecl:
|
case *ast.FuncDecl:
|
||||||
return false
|
return false
|
||||||
case *ast.GenDecl:
|
case *ast.GenDecl:
|
||||||
|
// 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)
|
ast.Walk(c, n)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue