mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-20 04:19:04 +00:00
compiler: add optsize function attr to reduce binary size
This is also added by Clang at -Oz and results in slightly smaller binaries.
This commit is contained in:
@@ -51,6 +51,16 @@ func (c *Compiler) Optimize(optLevel, sizeLevel int, inlinerThreshold uint) erro
|
|||||||
return errors.New("optimizations caused a verification failure")
|
return errors.New("optimizations caused a verification failure")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if sizeLevel >= 2 {
|
||||||
|
// Set the "optsize" attribute to make slightly smaller binaries at the
|
||||||
|
// cost of some performance.
|
||||||
|
kind := llvm.AttributeKindID("optsize")
|
||||||
|
attr := c.ctx.CreateEnumAttribute(kind, 0)
|
||||||
|
for fn := c.mod.FirstFunction(); !fn.IsNil(); fn = llvm.NextFunction(fn) {
|
||||||
|
fn.AddFunctionAttr(attr)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Run module passes.
|
// Run module passes.
|
||||||
modPasses := llvm.NewPassManager()
|
modPasses := llvm.NewPassManager()
|
||||||
defer modPasses.Dispose()
|
defer modPasses.Dispose()
|
||||||
|
|||||||
Reference in New Issue
Block a user