mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
LinkNormal mode is used by the mandatory pipeline. It only needs to deserialize what is necessary for code generation, that is functions with shared linkage that must be emitted into the client.
26 lines
1.5 KiB
Swift
26 lines
1.5 KiB
Swift
// RUN: %empty-directory(%t)
|
|
// RUN: %target-swift-frontend -emit-module -o %t %S/Inputs/def_always_inline.swift
|
|
// RUN: llvm-bcanalyzer %t/def_always_inline.swiftmodule | %FileCheck %s
|
|
// RUN: %target-swift-frontend -emit-sib -I %t %s -o %t/always_inline.sib
|
|
// RUN: %target-sil-opt -performance-linker %t/always_inline.sib -I %t | %FileCheck %s -check-prefix=SIL
|
|
|
|
// CHECK-NOT: UnknownCode
|
|
|
|
import def_always_inline
|
|
|
|
// SIL-LABEL: sil public_external [serialized] [always_inline] [canonical] @$S17def_always_inline22AlwaysInlineInitStructV1xACSb_tcfC : $@convention(method) (Bool, @thin AlwaysInlineInitStruct.Type) -> AlwaysInlineInitStruct {
|
|
|
|
// SIL-LABEL: sil public_external [serialized] [always_inline] [canonical] @$S17def_always_inline16testAlwaysInline1xS2b_tF : $@convention(thin) (Bool) -> Bool {
|
|
|
|
// SIL-LABEL: sil @main
|
|
// SIL: [[RAW:%.+]] = global_addr @$S13always_inline3rawSbvp : $*Bool
|
|
// SIL: [[FUNC:%.+]] = function_ref @$S17def_always_inline16testAlwaysInline1xS2b_tF : $@convention(thin) (Bool) -> Bool
|
|
// SIL: [[RESULT:%.+]] = apply [[FUNC]]({{%.+}}) : $@convention(thin) (Bool) -> Bool
|
|
// SIL: store [[RESULT]] to [[RAW]] : $*Bool
|
|
var raw = testAlwaysInline(x: false)
|
|
|
|
// SIL: [[FUNC2:%.+]] = function_ref @$S17def_always_inline22AlwaysInlineInitStructV1xACSb_tcfC : $@convention(method) (Bool, @thin AlwaysInlineInitStruct.Type) -> AlwaysInlineInitStruct
|
|
// SIL: apply [[FUNC2]]({{%.+}}, {{%.+}}) : $@convention(method) (Bool, @thin AlwaysInlineInitStruct.Type) -> AlwaysInlineInitStruct
|
|
var a = AlwaysInlineInitStruct(x: false)
|
|
|