Expose function sections option (#28088)

* Expose separate function sections option to compiler

* Add function sections test
This commit is contained in:
Alex Suhan
2020-01-13 14:45:01 -08:00
committed by Saleem Abdulrasool
parent d8cc616602
commit eed6a4eb94
8 changed files with 41 additions and 1 deletions

View File

@@ -0,0 +1,5 @@
public typealias Void = ()
public func func1() -> Void {}
public func func2() -> Void {}

View File

@@ -0,0 +1,3 @@
import FunctionSections
func1()

View File

@@ -0,0 +1,10 @@
// REQUIRES: OS=linux-gnu || OS=linux-androideabi || OS=linux-android || OS=freebsd
// RUN: %empty-directory(%t)
// RUN: %target-build-swift -Xfrontend -function-sections -emit-module -emit-library -static -parse-stdlib %S/Inputs/FunctionSections.swift
// RUN: %target-build-swift -Xlinker --gc-sections -Xlinker -Map=%t/../../FunctionSections.map -I%t/../.. -L%t/../.. -lFunctionSections %S/Inputs/FunctionSectionsUse.swift
// RUN: %FileCheck %s < %t/../../FunctionSections.map
// CHECK: Discarded input sections
// CHECK: .text.$s16FunctionSections5func2yyF
// CHECK: Memory map
// CHECK: .text.$s16FunctionSections5func1yyF

View File

@@ -0,0 +1,12 @@
// RUN: %empty-directory(%t)
// RUN: %target-build-swift -Xfrontend -function-sections -emit-library -emit-ir -static -parse-stdlib %S/Inputs/FunctionSections.swift | %FileCheck %s
// CHECK: define {{(dllexport |protected )?}}swiftcc void @"$s16FunctionSections5func1yyF"() #0 {
// CHECK: entry:
// CHECK: ret void
// CHECK: }
// CHECK: define {{(dllexport |protected )?}}swiftcc void @"$s16FunctionSections5func2yyF"() #0 {
// CHECK: entry:
// CHECK: ret void
// CHECK: }