Skip to content

Commit 2a55b26

Browse files
committed
Mangling: enable new mangling for symbols
1 parent c5df122 commit 2a55b26

File tree

136 files changed

+1911
-1912
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

136 files changed

+1911
-1912
lines changed

include/swift/Demangling/ManglingMacros.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
// TODO: When we get rid of the old mangling, the term "new mangling" should
1919
// just be renamed to "mangling".
2020

21-
//#define USE_NEW_MANGLING
21+
#define USE_NEW_MANGLING
2222

2323
#define STRINGIFY_MANGLING(M) #M
2424
#define MANGLE_AS_STRING(M) STRINGIFY_MANGLING(M)

test/DebugInfo/Errors.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ enum MyError : Error {
1111
// thrown error we create a shadow stack location holding the address of the
1212
// location that holds the pointer to the error instead.
1313
func simple(_ placeholder: Int64) throws -> () {
14-
// CHECK: define {{.*}}void @_TF6Errors6simpleFzVs5Int64T_(i64, %swift.refcounted* swiftself, %swift.error**)
14+
// CHECK: define {{.*}}void @_T06Errors6simpleys5Int64VKF(i64, %swift.refcounted* swiftself, %swift.error**)
1515
// CHECK: call void @llvm.dbg.declare
1616
// CHECK: call void @llvm.dbg.declare({{.*}}, metadata ![[ERROR:[0-9]+]], metadata ![[DEREF:[0-9]+]])
1717
// CHECK: ![[ERROR]] = !DILocalVariable(name: "$error", arg: 2,
1818
// CHECK-SAME: type: ![[ERRTY:.*]], flags: DIFlagArtificial)
19-
// CHECK: ![[ERRTY]] = !DICompositeType({{.*}}identifier: "_TtPs5Error_"
19+
// CHECK: ![[ERRTY]] = !DICompositeType({{.*}}identifier: "_T0s5Error_pD"
2020
// CHECK: ![[DEREF]] = !DIExpression(DW_OP_deref)
2121
throw MyError.Simple
2222
}

test/DebugInfo/LinetableArtificialFn.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// Verify that a helper function that is generated on-the-fly does
44
// not mess up the linetable of the calling function.
55
// CHECK: store i2048 10, i2048* [[STKLOC:%.*]], align
6-
// CHECK: call swiftcc {{(i32|i64)}} @_TFSiCfT22_builtinIntegerLiteralBi2048__Si(i2048* {{.*}} [[STKLOC]]
6+
// CHECK: call swiftcc {{(i32|i64)}} @_T0S2iBi2048_22_builtinIntegerLiteral_tcfC(i2048* {{.*}} [[STKLOC]]
77
// CHECK: store {{(i32|i64)}} {{.*}}getelementptr
88
// CHECK: store {{(i32|i64)}} {{.*}}getelementptr{{.*}}, !dbg ![[DBG:[0-9]+]]
99
// CHECK-NOT: ![[DBG]] = !{i32 0, i32 0,

test/DebugInfo/basic.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ func foo(_ a: Int64, _ b: Int64) -> Int64 {
5151
// CHECK-DAG: smul{{.*}}, !dbg ![[MUL:[0-9]+]]
5252
// CHECK-DAG: [[MUL]] = !DILocation(line: [[@LINE+4]], column: 16,
5353
// Runtime call to multiply function:
54-
// CHECK-NOSIL: @_TFsoi1mFTVs5Int64S__S_{{.*}}, !dbg ![[MUL:[0-9]+]]
54+
// CHECK-NOSIL: @_T0s1mois5Int64VAC_ACtF{{.*}}, !dbg ![[MUL:[0-9]+]]
5555
// CHECK-NOSIL: [[MUL]] = !DILocation(line: [[@LINE+1]], column: 16,
5656
return a*b
5757
} else {
@@ -74,7 +74,7 @@ func foo(_ a: Int64, _ b: Int64) -> Int64 {
7474

7575
// Function type for foo.
7676
// CHECK-DAG: ![[FOOTYPE]] = !DISubroutineType(types: ![[PARAMTYPES:[0-9]+]])
77-
// CHECK-DAG: ![[INT64:.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "Int64", {{.*}}, identifier: "_TtVs5Int64")
77+
// CHECK-DAG: ![[INT64:.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "Int64", {{.*}}, identifier: "_T0s5Int64VD")
7878
// CHECK-DAG: ![[PARAMTYPES]] = !{![[INT64]], ![[INT64]], ![[INT64]]}
7979
// Import of the main module with the implicit name.
8080
// CHECK-DAG: !DIImportedEntity(tag: DW_TAG_imported_module, scope: ![[MAINFILE]], entity: ![[MAINMODULE:[0-9]+]], line: 1)

test/DebugInfo/bool.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
func markUsed<T>(_ t: T) {}
44

55
// Int1 uses 1 bit, but is aligned at 8 bits.
6-
// CHECK: !DIBasicType(name: "_TtBi1_", size: 1, encoding: DW_ATE_unsigned)
6+
// CHECK: !DIBasicType(name: "_T0Bi1_D", size: 1, encoding: DW_ATE_unsigned)
77
func main() {
88
var t = true
99
var f = false

test/DebugInfo/byref-capture.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ func makeIncrementor(_ inc : Int64) -> () -> Int64
99
// CHECK-SAME: metadata ![[SUM_CAPTURE:[0-9]+]],
1010
// CHECK-SAME: metadata ![[EMPTY:.*]])
1111
// CHECK: ![[EMPTY]] = !DIExpression()
12-
// CHECK: ![[INOUTTY:[0-9]+]] = !DICompositeType({{.*}}identifier: "_TtRVs5Int64"
12+
// CHECK: ![[INOUTTY:[0-9]+]] = !DICompositeType({{.*}}identifier: "_T0s5Int64VzD"
1313
// ^ inout type.
1414
// CHECK: ![[SUM_CAPTURE]] = !DILocalVariable(name: "sum", arg: 1,
1515
// CHECK-SAME: line: [[@LINE-10]], type: ![[INOUTTY]]

test/DebugInfo/enum.swift

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,34 +10,34 @@ enum Either {
1010
// CHECK-SAME: size: {{328|168}},
1111
}
1212
// CHECK: ![[EMPTY:.*]] = !{}
13-
// DWARF: ![[INT:.*]] = !DICompositeType({{.*}}identifier: "_TtSi"
13+
// DWARF: ![[INT:.*]] = !DICompositeType({{.*}}identifier: "_T0SiD"
1414
let E : Either = .Neither;
1515

1616
// CHECK: !DICompositeType({{.*}}name: "Color",
1717
// CHECK-SAME: line: [[@LINE+3]]
1818
// CHECK-SAME: size: 8, align: 8,
19-
// CHECK-SAME: identifier: "_TtO4enum5Color"
19+
// CHECK-SAME: identifier: "_T04enum5ColorOD"
2020
enum Color : UInt64 {
2121
// This is effectively a 2-bit bitfield:
2222
// DWARF: !DIDerivedType(tag: DW_TAG_member, name: "Red"
2323
// DWARF-SAME: baseType: ![[UINT64:[0-9]+]]
2424
// DWARF-SAME: size: 8, align: 8{{[,)]}}
25-
// DWARF: ![[UINT64]] = !DICompositeType({{.*}}identifier: "_TtVs6UInt64"
25+
// DWARF: ![[UINT64]] = !DICompositeType({{.*}}identifier: "_T0s6UInt64VD"
2626
case Red, Green, Blue
2727
}
2828

2929
// CHECK: !DICompositeType({{.*}}name: "MaybeIntPair",
3030
// CHECK-SAME: line: [[@LINE+3]],
3131
// CHECK-SAME: size: 136, align: 64{{[,)]}}
32-
// CHECK-SAME: identifier: "_TtO4enum12MaybeIntPair"
32+
// CHECK-SAME: identifier: "_T04enum12MaybeIntPairOD"
3333
enum MaybeIntPair {
3434
// DWARF: !DIDerivedType(tag: DW_TAG_member, name: "none"
3535
// DWARF-SAME: baseType: ![[INT]], align: 8{{[,)]}}
3636
case none
3737
// DWARF: !DIDerivedType(tag: DW_TAG_member, name: "just"
3838
// DWARF-SAME: baseType: ![[INTTUP:[0-9]+]]
3939
// DWARF-SAME: size: 128, align: 64{{[,)]}}
40-
// DWARF: ![[INTTUP]] = !DICompositeType({{.*}}identifier: "_TtTVs5Int64S__"
40+
// DWARF: ![[INTTUP]] = !DICompositeType({{.*}}identifier: "_T0s5Int64V_ABtD"
4141
case just(Int64, Int64)
4242
}
4343

@@ -51,36 +51,36 @@ let c = MaybeIntPair.just(74, 75)
5151
// CHECK: !DICompositeType({{.*}}name: "Maybe",
5252
// CHECK-SAME: line: [[@LINE-8]],
5353
// CHECK-SAME: size: 8, align: 8{{[,)]}}
54-
// CHECK-SAME: identifier: "_TtGO4enum5MaybeOS_5Color_"
54+
// CHECK-SAME: identifier: "_T04enum5MaybeOyAA5ColorOGD"
5555
let movie : Maybe<Color> = .none
5656

5757
public enum Nothing { }
5858
public func foo(_ empty : Nothing) { }
5959
// CHECK: !DICompositeType({{.*}}name: "Nothing", {{.*}}elements: ![[EMPTY]]
6060

6161
// CHECK: !DICompositeType({{.*}}name: "Rose", {{.*}}elements: ![[ELTS:[0-9]+]],
62-
// CHECK-SAME: {{.*}}identifier: "_TtGO4enum4Rosex_")
62+
// CHECK-SAME: {{.*}}identifier: "_T04enum4RoseOyxGD")
6363
enum Rose<A> {
6464
case MkRose(() -> A, () -> [Rose<A>])
65-
// DWARF: !DICompositeType({{.*}}name: "Rose",{{.*}}identifier: "_TtGO4enum4RoseQq_S0__")
65+
// DWARF: !DICompositeType({{.*}}name: "Rose",{{.*}}identifier: "_T04enum4RoseOyAA3fooACyxGAElFQq_GD")
6666
case IORose(() -> Rose<A>)
6767
}
6868

6969
func foo<T>(_ x : Rose<T>) -> Rose<T> { return x }
7070

7171
// CHECK: !DICompositeType({{.*}}name: "Tuple", {{.*}}elements: ![[ELTS:[0-9]+]],
72-
// CHECK-SAME: {{.*}}identifier: "_TtGO4enum5TupleQq_FS_3barurFGS0_x_GS0_x__")
72+
// CHECK-SAME: {{.*}}identifier: "_T04enum5TupleOyAA3barACyxGAElFQq_GD")
7373
// DWARF: !DICompositeType({{.*}}name: "Tuple", {{.*}}elements: ![[ELTS:[0-9]+]],
74-
// DWARF-SAME: {{.*}}identifier: "_TtGO4enum5Tuplex_")
74+
// DWARF-SAME: {{.*}}identifier: "_T04enum5TupleOyxGD")
7575
public enum Tuple<P> {
76-
// DWARF: !DICompositeType({{.*}}name: "Tuple",{{.*}}identifier: "_TtGO4enum5TupleQq_S0__")
76+
// DWARF: !DICompositeType({{.*}}name: "Tuple",{{.*}}identifier: "_T04enum5TupleOyAA3barACyxGAElFQq_GD")
7777
case C(P, () -> Tuple)
7878
}
7979

8080
func bar<T>(_ x : Tuple<T>) -> Tuple<T> { return x }
8181

8282
// CHECK: !DILocalVariable(name: "self", arg: 1, {{.*}} line: [[@LINE+5]], type: ![[LIST:.*]], flags: DIFlagArtificial)
83-
// CHECK: ![[LIST]] = !DICompositeType({{.*}}identifier: "_TtGO4enum4ListQq_S0__"
83+
// CHECK: ![[LIST]] = !DICompositeType({{.*}}identifier: "_T04enum4ListOyACQq_GD"
8484
public enum List<T> {
8585
indirect case Tail(List, T)
8686
case End

test/DebugInfo/fnptr.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
// CHECK-DAG: ![[SINODE:.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "Int64",{{.*}} identifier: [[SI:.*]])
55
// CHECK-DAG: ![[SFNODE:.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "Float",{{.*}} identifier: [[SF:.*]])
6-
// CHECK-DAG: ![[VOIDNODE:.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "_TtT_",{{.*}} identifier: [[VOID:.*]])
6+
// CHECK-DAG: ![[VOIDNODE:.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "_T0ytD",{{.*}} identifier: [[VOID:.*]])
77
func bar() {
88
print("bar()", terminator: "")
99
}
@@ -12,34 +12,34 @@ func barz(_ i: Float, _ j: Float) -> Int64 { return 0; }
1212
func main() -> Int64 {
1313
// CHECK-DAG: !DILocalVariable(name: "bar_fnptr",{{.*}} line: [[@LINE+3]],{{.*}} type: ![[BARPT:[0-9]+]]
1414
// AST-DAG: !DILocalVariable(name: "bar_fnptr",{{.*}} line: [[@LINE+2]],{{.*}} type: ![[BAR_T:[0-9]+]]
15-
// AST-DAG: ![[BAR_T]] = !DICompositeType({{.*}}, identifier: "_TtXFo___")
15+
// AST-DAG: ![[BAR_T]] = !DICompositeType({{.*}}, identifier: "_T0Ix_D")
1616
var bar_fnptr = bar
1717
// CHECK-DAG: ![[BARPT]] = !DICompositeType(tag: DW_TAG_structure_type, {{.*}} elements: ![[BARMEMBERS:[0-9]+]]
1818
// CHECK-DAG: ![[BARMEMBERS]] = !{![[BARMEMBER:.*]], {{.*}}}
1919
// CHECK-DAG: ![[BARMEMBER]] = !DIDerivedType(tag: DW_TAG_member,{{.*}} baseType: ![[BARPTR:[0-9]+]]
2020
// CHECK-DAG: ![[BARPTR]] = !DIDerivedType(tag: DW_TAG_pointer_type,{{.*}} baseType: ![[BART:[0-9]+]]
2121
// CHECK-DAG: ![[BART]] = !DISubroutineType(types: ![[BARARGS:[0-9]+]])
2222
// CHECK-DAG: ![[BARARGS]] = !{![[VOID:.*]]}
23-
// CHECK-DAG: ![[VOID]] = {{.*}}identifier: "_TtT_"
23+
// CHECK-DAG: ![[VOID]] = {{.*}}identifier: "_T0ytD"
2424
bar_fnptr();
2525

2626
// CHECK-DAG: !DILocalVariable(name: "baz_fnptr",{{.*}} type: ![[BAZPT:[0-9]+]]
2727
// AST-DAG: !DILocalVariable(name: "baz_fnptr",{{.*}} type: ![[BAZ_T:[0-9]+]]
28-
// AST-DAG: ![[BAZ_T]] = !DICompositeType({{.*}}, identifier: "_TtXFo_dSf_dVs5Int64_")
28+
// AST-DAG: ![[BAZ_T]] = !DICompositeType({{.*}}, identifier: "_T0Sfs5Int64VIxyd_D")
2929
// CHECK-DAG: ![[BAZPT]] = !DICompositeType(tag: DW_TAG_structure_type, {{.*}} elements: ![[BAZMEMBERS:[0-9]+]]
3030
// CHECK-DAG: ![[BAZMEMBERS]] = !{![[BAZMEMBER:.*]], {{.*}}}
3131
// CHECK-DAG: ![[BAZMEMBER]] = !DIDerivedType(tag: DW_TAG_member,{{.*}} baseType: ![[BAZPTR:[0-9]+]]
3232
// CHECK-DAG: ![[BAZPTR]] = !DIDerivedType(tag: DW_TAG_pointer_type,{{.*}} baseType: ![[BAZT:[0-9]+]]
3333
// CHECK-DAG: ![[BAZT]] = !DISubroutineType(types: ![[BAZARGS:.*]])
3434
// CHECK-DAG: ![[BAZARGS]] = !{![[INT:.*]], ![[FLOAT:.*]]}
35-
// CHECK-DAG: ![[INT]] = {{.*}}identifier: "_TtVs5Int64"
36-
// CHECK-DAG: ![[FLOAT]] = {{.*}}identifier: "_TtSf"
35+
// CHECK-DAG: ![[INT]] = {{.*}}identifier: "_T0s5Int64VD"
36+
// CHECK-DAG: ![[FLOAT]] = {{.*}}identifier: "_T0SfD"
3737
var baz_fnptr = baz
3838
baz_fnptr(2.89)
3939

4040
// CHECK-DAG: !DILocalVariable(name: "barz_fnptr",{{.*}} type: ![[BARZPT:[0-9]+]]
4141
// AST_DAG: !DILocalVariable(name: "barz_fnptr",{{.*}} type: ![[BARZ_T:[0-9]+]]
42-
// AST-DAG: ![[BARZ_T:[0-9]+]] = !DICompositeType({{.*}}, identifier: "_TtXFo_dSfdSf_dVs5Int64_")
42+
// AST-DAG: ![[BARZ_T:[0-9]+]] = !DICompositeType({{.*}}, identifier: "_T0S2fs5Int64VIxyyd_D")
4343
// CHECK-DAG: ![[BARZPT]] = !DICompositeType(tag: DW_TAG_structure_type,{{.*}} elements: ![[BARZMEMBERS:[0-9]+]]
4444
// CHECK-DAG: ![[BARZMEMBERS]] = !{![[BARZMEMBER:.*]], {{.*}}}
4545
// CHECK-DAG: ![[BARZMEMBER]] = !DIDerivedType(tag: DW_TAG_member,{{.*}} baseType: ![[BARZPTR:[0-9]+]]

test/DebugInfo/inout.swift

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,24 @@
88
func Close(_ fn: () -> Int64) { fn() }
99
typealias MyFloat = Float
1010

11-
// CHECK: define hidden {{.*}}void @_TF5inout13modifyFooHeap
11+
// CHECK: define hidden swiftcc void @_T05inout13modifyFooHeap{{[_0-9a-zA-Z]*}}F
1212
// CHECK: %[[ALLOCA:.*]] = alloca %Ts5Int64V*
1313
// CHECK: call void @llvm.dbg.declare(metadata
1414
// CHECK-SAME: %[[ALLOCA]], metadata ![[A:[0-9]+]]
1515

1616
// Closure with promoted capture.
17-
// PROMO-CHECK: define {{.*}}@_TFF5inout13modifyFooHeapFTRVs5Int64Sf_T_U_FT_S0_
17+
// PROMO-CHECK: define {{.*}}@_T05inout13modifyFooHeapys5Int64Vz_SftFADycfU_
1818
// PROMO-CHECK: call void @llvm.dbg.declare(metadata %Ts5Int64V** %
1919
// PROMO-CHECK-SAME: metadata ![[A1:[0-9]+]], metadata ![[EMPTY_EXPR:[0-9]+]])
2020

2121
// PROMO-CHECK-DAG: ![[EMPTY_EXPR]] = !DIExpression()
22-
// PROMO-CHECK-DAG: ![[INT:.*]] = !DICompositeType({{.*}}identifier: "_TtVs5Int64"
23-
// PROMO-CHECK-DAG: ![[INT:.*]] = !DICompositeType({{.*}}identifier: "_TtRVs5Int64"
22+
// PROMO-CHECK-DAG: ![[INT:.*]] = !DICompositeType({{.*}}identifier: "_T0s5Int64VD"
23+
// PROMO-CHECK-DAG: ![[INT:.*]] = !DICompositeType({{.*}}identifier: "_T0s5Int64VzD"
2424
// PROMO-CHECK: ![[A1]] = !DILocalVariable(name: "a", arg: 1
2525
// PROMO-CHECK-SAME: type: ![[INT]]
2626
func modifyFooHeap(_ a: inout Int64,
2727
// CHECK-DAG: ![[A]] = !DILocalVariable(name: "a", arg: 1{{.*}} line: [[@LINE-1]],{{.*}} type: ![[RINT:[0-9]+]]
28-
// CHECK-DAG: ![[RINT]] = !DICompositeType({{.*}}identifier: "_TtRVs5Int64"
28+
// CHECK-DAG: ![[RINT]] = !DICompositeType({{.*}}identifier: "_T0s5Int64VzD"
2929
_ b: MyFloat)
3030
{
3131
let b = b
@@ -38,17 +38,17 @@ func modifyFooHeap(_ a: inout Int64,
3838
}
3939

4040
// Inout reference type.
41-
// FOO-CHECK: define {{.*}}@_TF5inout9modifyFooFTRVs5Int64Sf_T_
41+
// FOO-CHECK: define {{.*}}@_T05inout9modifyFooys5Int64Vz_SftF
4242
// FOO-CHECK: call void @llvm.dbg.declare(metadata %Ts5Int64V** %
4343
// FOO-CHECK-SAME: metadata ![[U:[0-9]+]], metadata ![[EMPTY_EXPR:.*]])
4444
// FOO-CHECK: ![[EMPTY_EXPR]] = !DIExpression()
4545
func modifyFoo(_ u: inout Int64,
4646
// FOO-CHECK-DAG: !DILocalVariable(name: "v", arg: 2{{.*}} line: [[@LINE+3]],{{.*}} type: ![[MYFLOAT:[0-9]+]]
4747
// FOO-CHECK-DAG: [[U]] = !DILocalVariable(name: "u", arg: 1{{.*}} line: [[@LINE-2]],{{.*}} type: ![[RINT:[0-9]+]]
48-
// FOO-CHECK-DAG: ![[RINT]] = !DICompositeType({{.*}}identifier: "_TtRVs5Int64"
48+
// FOO-CHECK-DAG: ![[RINT]] = !DICompositeType({{.*}}identifier: "_T0s5Int64VzD"
4949
_ v: MyFloat)
50-
// FOO-CHECK-DAG: ![[MYFLOAT]] = !DIDerivedType(tag: DW_TAG_typedef, name: "_Tta5inout7MyFloat",{{.*}} baseType: ![[FLOAT:[0-9]+]]
51-
// FOO-CHECK-DAG: ![[FLOAT]] = !DICompositeType({{.*}}identifier: "_TtSf"
50+
// FOO-CHECK-DAG: ![[MYFLOAT]] = !DIDerivedType(tag: DW_TAG_typedef, name: "_T05inout7MyFloataD",{{.*}} baseType: ![[FLOAT:[0-9]+]]
51+
// FOO-CHECK-DAG: ![[FLOAT]] = !DICompositeType({{.*}}identifier: "_T0SfD"
5252
{
5353
if (v > 2.71) {
5454
u = u - 41
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
// RUN: %target-swift-frontend -parse-stdlib %s -emit-ir -g -o - | %FileCheck %s
2-
// CHECK: !DIDerivedType(tag: DW_TAG_typedef, name: "_TtBb",
2+
// CHECK: !DIDerivedType(tag: DW_TAG_typedef, name: "_T0BbD",
33
var bo : Builtin.BridgeObject

0 commit comments

Comments
 (0)