File: visibility.sil

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (161 lines) | stat: -rw-r--r-- 7,417 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
// RUN: %target-swift-frontend %s -parse-sil -emit-module -o - -module-name Swift -module-link-name swiftCore -parse-as-library -parse-stdlib | %target-sil-opt -enable-sil-verify-all=false -module-name Swift > %t.sil
// RUN: %FileCheck %s < %t.sil
// RUN: %FileCheck -check-prefix=NEG-CHECK %s < %t.sil

import Builtin

// To prevent issues with the SILPrinter ordering things we separate our
// positive/negative checks to simplify things.

// NEG-CHECK-NOT: sil_global private @private_global : $Builtin.Word
// NEG-CHECK-NOT: sil @references_private_global : $@convention(thin) () -> () {

// Check Global Variables.
// CHECK-DAG: sil_global shared [serialized] @shared_global : $Builtin.Word
// CHECK-DAG: sil_global [serialized] @public_global : $Builtin.Word
// CHECK-DAG: sil_global hidden [serialized] @hidden_global : $Builtin.Word

// Check that all functions are defined/declared appropriately.
// NEG-CHECK-NOT: sil [serialized] @public_external_function_test : $@convention(thin) () -> () {
// CHECK-DAG: sil [serialized] [canonical] @public_external_function_test : $@convention(thin) () -> ()
// CHECK-DAG: sil [serialized] [canonical] @references_public_function : $@convention(thin) () -> () {
// CHECK-DAG: sil [serialized] [canonical] @references_shared_function : $@convention(thin) () -> () {
// CHECK-DAG: sil [serialized] [canonical] @references_public_global : $@convention(thin) () -> () {
// CHECK-DAG: sil [serialized] [canonical] @references_shared_global : $@convention(thin) () -> () {
// CHECK-DAG: sil [serialized] [canonical] @references_hidden_global : $@convention(thin) () -> () {
// CHECK-DAG: sil [serialized] [canonical] @references_private_global : $@convention(thin) () -> ()
// CHECK-DAG: sil [serialized] [canonical] @public_function_test : $@convention(thin) () -> () {
// CHECK-DAG: sil [serialized] [canonical] @public_function : $@convention(thin) () -> () {
// CHECK-DAG: sil shared [serialized] [canonical] @shared_external_function_test : $@convention(thin) () -> ()

sil_global private [serialized] @private_global : $Builtin.Word
sil_global [serialized] @public_global : $Builtin.Word
sil_global shared [serialized] @shared_global : $Builtin.Word
sil_global hidden [serialized] @hidden_global : $Builtin.Word

sil [serialized] @references_private_global : $@convention(thin) () -> () {
  %0 = global_addr @private_global : $*Builtin.Word
  %1 = tuple()
  return %1 : $()
}

sil shared [serialized] @shared_function : $@convention(thin) () -> () {
  %0 = integer_literal $Builtin.Int32, 1
  %1 = tuple()
  return %1 : $()
}
sil [serialized] @references_shared_global : $@convention(thin) () -> () {
  %0 = global_addr @shared_global : $*Builtin.Word
  %1 = tuple()
  return %1 : $()
}
sil [serialized] @references_shared_function : $@convention(thin) () -> () {
  %0 = function_ref @shared_function : $@convention(thin) () -> ()
  %1 = tuple()
  return %1 : $()
}

sil [serialized] @references_hidden_global : $@convention(thin) () -> () {
  %0 = global_addr @hidden_global : $*Builtin.Word
  %1 = tuple()
  return %1 : $()
}
sil [serialized] @public_function : $@convention(thin) () -> () {
  %0 = integer_literal $Builtin.Int32, 4
  %1 = tuple()
  return %1 : $()
}

sil [serialized] @references_public_global : $@convention(thin) () -> () {
  %0 = global_addr @public_global : $*Builtin.Word
  %1 = tuple()
  return %1 : $()
}
sil [serialized] @references_public_function : $@convention(thin) () -> () {
  %0 = function_ref @public_function : $@convention(thin) () -> ()
  %1 = tuple()
  return %1 : $()
}

sil shared [serialized] @shared_function_test : $@convention(thin) () -> () {
  %0 = function_ref @references_public_function : $@convention(thin) () -> ()
  %1 = function_ref @references_shared_function : $@convention(thin) () -> ()
  %4 = function_ref @references_public_global : $@convention(thin) () -> ()
  %5 = function_ref @references_shared_global : $@convention(thin) () -> ()
  %6 = function_ref @references_hidden_global : $@convention(thin) () -> ()
  %7 = function_ref @references_private_global : $@convention(thin) () -> ()
  apply %0() : $@convention(thin) () -> ()
  apply %1() : $@convention(thin) () -> ()
  apply %4() : $@convention(thin) () -> ()
  apply %5() : $@convention(thin) () -> ()
  apply %6() : $@convention(thin) () -> ()
  apply %7() : $@convention(thin) () -> ()
  %8 = tuple()
  return %8 : $()
}

sil [serialized] @public_function_test : $@convention(thin) () -> () {
  %0 = function_ref @references_public_function : $@convention(thin) () -> ()
  %1 = function_ref @references_shared_function : $@convention(thin) () -> ()
  %4 = function_ref @references_public_global : $@convention(thin) () -> ()
  %5 = function_ref @references_shared_global : $@convention(thin) () -> ()
  %6 = function_ref @references_hidden_global : $@convention(thin) () -> ()
  %7 = function_ref @references_private_global : $@convention(thin) () -> ()
  apply %0() : $@convention(thin) () -> ()
  apply %1() : $@convention(thin) () -> ()
  apply %4() : $@convention(thin) () -> ()
  apply %5() : $@convention(thin) () -> ()
  apply %6() : $@convention(thin) () -> ()
  apply %7() : $@convention(thin) () -> ()
  %8 = tuple()
  return %8 : $()
}


sil public_external [serialized] @public_external_function_test : $@convention(thin) () -> () {
  %0 = function_ref @references_public_function : $@convention(thin) () -> ()
  %1 = function_ref @references_shared_function : $@convention(thin) () -> ()
  %4 = function_ref @references_public_global : $@convention(thin) () -> ()
  %5 = function_ref @references_shared_global : $@convention(thin) () -> ()
  %6 = function_ref @references_hidden_global : $@convention(thin) () -> ()
  %7 = function_ref @references_private_global : $@convention(thin) () -> ()
  apply %0() : $@convention(thin) () -> ()
  apply %1() : $@convention(thin) () -> ()
  apply %4() : $@convention(thin) () -> ()
  apply %5() : $@convention(thin) () -> ()
  apply %6() : $@convention(thin) () -> ()
  apply %7() : $@convention(thin) () -> ()
  %8 = tuple()
  return %8 : $()
}

sil [serialized] @public_external_function_test_caller : $@convention(thin) () -> () {
  %0 = function_ref @public_external_function_test : $@convention(thin) () -> ()
  %1 = apply %0() : $@convention(thin) () -> ()
  %2 = tuple()
  return %2 : $()
}

sil shared [serialized] @shared_external_function_test : $@convention(thin) () -> () {
  %0 = function_ref @references_public_function : $@convention(thin) () -> ()
  %1 = function_ref @references_shared_function : $@convention(thin) () -> ()
  %4 = function_ref @references_public_global : $@convention(thin) () -> ()
  %5 = function_ref @references_shared_global : $@convention(thin) () -> ()
  %6 = function_ref @references_hidden_global : $@convention(thin) () -> ()
  %7 = function_ref @references_private_global : $@convention(thin) () -> ()
  apply %0() : $@convention(thin) () -> ()
  apply %1() : $@convention(thin) () -> ()
  apply %4() : $@convention(thin) () -> ()
  apply %5() : $@convention(thin) () -> ()
  apply %6() : $@convention(thin) () -> ()
  apply %7() : $@convention(thin) () -> ()
  %8 = tuple()
  return %8 : $()
}

sil [serialized] @shared_external_function_test_caller : $@convention(thin) () -> () {
  %0 = function_ref @shared_external_function_test : $@convention(thin) () -> ()
  %1 = apply %0() : $@convention(thin) () -> ()
  %2 = tuple()
  return %2 : $()
}