compiler: move ApplyFunctionSections to transform package

This commit is contained in:
Ayke van Laethem
2020-03-18 20:32:46 +01:00
committed by Ron Evans
parent 945ff4d160
commit b6314fa6ab
6 changed files with 51 additions and 14 deletions
-13
View File
@@ -2585,19 +2585,6 @@ func (c *Compiler) Verify() error {
return llvm.VerifyModule(c.mod, llvm.PrintMessageAction)
}
func (c *Compiler) ApplyFunctionSections() {
// Put every function in a separate section. This makes it possible for the
// linker to remove dead code (-ffunction-sections).
llvmFn := c.mod.FirstFunction()
for !llvmFn.IsNil() {
if !llvmFn.IsDeclaration() {
name := llvmFn.Name()
llvmFn.SetSection(".text." + name)
}
llvmFn = llvm.NextFunction(llvmFn)
}
}
// Turn all global constants into global variables. This works around a
// limitation on Harvard architectures (e.g. AVR), where constant and
// non-constant pointers point to a different address space.