xref: /llvm-project/llvm/test/Transforms/GlobalOpt/alias-resolve.ll (revision d586bd5ca231a6022f439d4c6e43cfeeb53eb1d6)
1; RUN: opt < %s -passes=globalopt -S | FileCheck %s
2
3@foo1 = alias void (), ptr @foo2
4;; foo2 is dso_local and non-weak. Resolved.
5; CHECK: @foo1 = alias void (), ptr @bar2
6
7@foo2 = dso_local alias void(), ptr @bar1
8;; bar1 is dso_local and non-weak. Resolved.
9; CHECK: @foo2 = dso_local alias void (), ptr @bar2
10
11@bar1  = dso_local alias void (), ptr @bar2
12; CHECK: @bar1 = dso_local alias void (), ptr @bar2
13
14@weak1 = weak dso_local alias void (), ptr @bar2
15;; weak1 may be replaced with another definition in the linkage unit. Not resolved.
16; CHECK: @weak1 = weak dso_local alias void (), ptr @bar2
17
18@bar4 = private unnamed_addr constant [2 x ptr] zeroinitializer
19@foo4 = weak_odr unnamed_addr alias ptr, getelementptr inbounds ([2 x ptr], ptr @bar4, i32 0, i32 1)
20; CHECK: @foo4 = weak_odr unnamed_addr alias ptr, getelementptr inbounds ([2 x ptr], ptr @bar4, i32 0, i32 1)
21
22@priva  = private alias void (), ptr @bar5
23; CHECK: @priva = private alias void (), ptr @bar5
24
25define dso_local void @bar2() {
26  ret void
27}
28; CHECK: define dso_local void @bar2()
29
30define weak void @bar5() {
31  ret void
32}
33; CHECK: define weak void @bar5()
34
35define void @baz() {
36entry:
37         call void @foo1()
38;; foo1 is dso_preemptable. Not resolved.
39; CHECK: call void @foo1()
40
41         call void @foo2()
42;; foo2 is dso_local and non-weak. Resolved.
43; CHECK: call void @bar2()
44
45         call void @bar1()
46;; bar1 is dso_local and non-weak. Resolved.
47; CHECK: call void @bar2()
48
49         call void @weak1()
50;; weak1 is weak. Not resolved.
51; CHECK: call void @weak1()
52
53         call void @priva()
54;; priva has a local linkage. Resolved.
55; CHECK: call void @priva()
56
57         ret void
58}
59
60@foo3 = dso_local alias void (), ptr @bar3
61; CHECK-NOT: bar3
62
63define internal void @bar3() {
64  ret void
65}
66;CHECK: define dso_local void @foo3
67