diff --git a/tgo.go b/tgo.go index d04b0e97..22a47c9f 100644 --- a/tgo.go +++ b/tgo.go @@ -213,6 +213,7 @@ func (c *Compiler) Parse(mainPath string, buildTags []string) error { worklist = worklist[1:] } + // Transform each package into LLVM IR. for _, pkg := range packageList { err := c.parsePackage(program, pkg) if err != nil { @@ -1083,6 +1084,8 @@ func (c *Compiler) LinkModule(mod llvm.Module) error { } func (c *Compiler) ApplyFunctionSections() { + // Put every function in a separate section. This makes it possible for the + // linker to remove dead code (--gc-sections). llvmFn := c.mod.FirstFunction() for !llvmFn.IsNil() { if !llvmFn.IsDeclaration() {