definition of this global may be discarded if it is not used /// in its compilation unit. static bool isDiscardableIfUnused(LinkageTypes Linkage) { return isLinkOnceLinkage(Linkage) || isLocalLinkage(Linkage) || isAvailableExternallyLinkage(Linkage); } 2 https://github.com/llvm/llvm-project/blob/62bcfcb5a588e5e844f8e4e42a2e4d15c907a746/llvm/include/llvm/IR/ GlobalValue.h#L369-L374 17
{} // ফͤͳ͍ public func usedFunc() {} public init() {} } public class B : A { override func usedFunc() {} } // main.swift import LibX let a: A = B() a.usedFunc() 22
{} } class B : A { override func bar() {} } class C : B { override func foo() {} func fizz() {} } ಈతϙϦϞʔϑΟζϜΛ࣮ݱ ͢ΔͨΊͷσʔλߏ Class Slot[0] Slot[1] Slot[2] A A.foo A.bar B A.foo B.bar C C.foo B.bar C.fizz 25
static, OS independent, self-contained binaries of stdlib. by kubamracek · Pull Request #33286 · apple/swift • Implement LLVM IR Virtual Function Elimination for Swift classes. by kubamracek · Pull Request #39128 · apple/swift • Implement LLVM IR Witness Method Elimination for Swift witness tables. by kubamracek · Pull Request #39287 · 53