Imported Upstream version 5.18.0.167

Former-commit-id: 289509151e0fee68a1b591a20c9f109c3c789d3a
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2018-10-20 08:25:10 +00:00
parent e19d552987
commit b084638f15
28489 changed files with 184 additions and 3866856 deletions

View File

@ -1,17 +0,0 @@
; RUN: opt < %s -internalize -internalize-public-api-list main -S | FileCheck %s
@A = global i32 0
; CHECK: @A = internal global i32 0
@B = alias i32, i32* @A
; CHECK: @B = internal alias i32, i32* @A
@C = alias i32, i32* @A
; CHECK: @C = internal alias i32, i32* @A
define i32 @main() {
%tmp = load i32, i32* @C
ret i32 %tmp
}
; CHECK: define i32 @main() {

View File

@ -1,2 +0,0 @@
foo
j

View File

@ -1,52 +0,0 @@
; RUN: opt < %s -internalize -internalize-public-api-list c1 -internalize-public-api-list c2 -internalize-public-api-list c3 -internalize-public-api-list c4 -S | FileCheck %s
$c1 = comdat any
$c2 = comdat any
$c3 = comdat any
$c4 = comdat any
; CHECK: @c1_c = global i32 0, comdat($c1)
@c1_c = global i32 0, comdat($c1)
; CHECK: @c2_b = internal global i32 0{{$}}
@c2_b = global i32 0, comdat($c2)
; CHECK: @c3 = global i32 0, comdat{{$}}
@c3 = global i32 0, comdat
; CHECK: @c4_a = internal global i32 0, comdat($c4)
@c4_a = internal global i32 0, comdat($c4)
; CHECK: @c1_d = alias i32, i32* @c1_c
@c1_d = alias i32, i32* @c1_c
; CHECK: @c2_c = internal alias i32, i32* @c2_b
@c2_c = alias i32, i32* @c2_b
; CHECK: @c4 = alias i32, i32* @c4_a
@c4 = alias i32, i32* @c4_a
; CHECK: define void @c1() comdat {
define void @c1() comdat {
ret void
}
; CHECK: define void @c1_a() comdat($c1) {
define void @c1_a() comdat($c1) {
ret void
}
; CHECK: define internal void @c2() {
define internal void @c2() comdat {
ret void
}
; CHECK: define internal void @c2_a() {
define void @c2_a() comdat($c2) {
ret void
}
; CHECK: define void @c3_a() comdat($c3) {
define void @c3_a() comdat($c3) {
ret void
}

View File

@ -1,59 +0,0 @@
; No arguments means internalize everything
; RUN: opt < %s -internalize -S | FileCheck --check-prefix=ALL %s
; Non-existent files should be treated as if they were empty (so internalize
; everything)
; RUN: opt < %s -internalize -internalize-public-api-file /nonexistent/file 2> /dev/null -S | FileCheck --check-prefix=ALL %s
; Internalize all but foo and j
; RUN: opt < %s -internalize -internalize-public-api-list foo -internalize-public-api-list j -S | FileCheck --check-prefix=FOO_AND_J %s
; RUN: opt < %s -S -internalize -internalize-public-api-list bar -internalize-public-api-list foo -internalize-public-api-file /nonexistent/file 2> /dev/null | FileCheck --check-prefix=FOO_AND_BAR %s
; -file and -list options should be merged, the apifile contains foo and j
; RUN: opt < %s -internalize -internalize-public-api-list bar -internalize-public-api-file %S/apifile -S | FileCheck --check-prefix=FOO_J_AND_BAR %s
; ALL: @i = internal global
; FOO_AND_J: @i = internal global
; FOO_AND_BAR: @i = internal global
; FOO_J_AND_BAR: @i = internal global
@i = global i32 0
; ALL: @j = internal global
; FOO_AND_J: @j = global
; FOO_AND_BAR: @j = internal global
; FOO_J_AND_BAR: @j = global
@j = global i32 0
; ALL: define internal void @main() {
; FOO_AND_J: define internal void @main() {
; FOO_AND_BAR: define internal void @main() {
; FOO_J_AND_BAR: define internal void @main() {
define void @main() {
ret void
}
; ALL: define internal void @foo() {
; FOO_AND_J: define void @foo() {
; FOO_AND_BAR: define void @foo() {
; FOO_J_AND_BAR: define void @foo() {
define void @foo() {
ret void
}
; ALL: define available_externally void @bar() {
; FOO_AND_J: define available_externally void @bar() {
; FOO_AND_BAR: define available_externally void @bar() {
; FOO_J_AND_BAR: define available_externally void @bar() {
define available_externally void @bar() {
ret void
}
; ALL: define dllexport void @export_foo() {
; FOO_AND_J: define dllexport void @export_foo() {
; FOO_AND_BAR: define dllexport void @export_foo() {
; FOO_J_AND_BAR: define dllexport void @export_foo() {
define dllexport void @export_foo() {
ret void
}

View File

@ -1,25 +0,0 @@
; RUN: opt < %s -internalize -S | FileCheck %s
; Internalized symbols should have default visibility.
; CHECK: @global = global i32 0
@global = global i32 0
@llvm.used = appending global [1 x i32*] [i32* @global]
; CHECK: @hidden.variable = internal global i32 0
@hidden.variable = hidden global i32 0
; CHECK: @protected.variable = internal global i32 0
@protected.variable = protected global i32 0
; CHECK: @hidden.alias = internal alias i32, i32* @global
@hidden.alias = hidden alias i32, i32* @global
; CHECK: @protected.alias = internal alias i32, i32* @global
@protected.alias = protected alias i32, i32* @global
; CHECK: define internal void @hidden.function() {
define hidden void @hidden.function() {
ret void
}
; CHECK: define internal void @protected.function() {
define protected void @protected.function() {
ret void
}

View File

@ -1,9 +0,0 @@
; __stack_chk_guard and __stack_chk_fail should not be internalized.
; RUN: opt < %s -internalize -S | FileCheck %s
; RUN: opt < %s -passes=internalize -S | FileCheck %s
; CHECK: @__stack_chk_guard = hidden global [8 x i64] zeroinitializer, align 16
@__stack_chk_guard = hidden global [8 x i64] zeroinitializer, align 16
; CHECK: @__stack_chk_fail = hidden global [8 x i64] zeroinitializer, align 16
@__stack_chk_fail = hidden global [8 x i64] zeroinitializer, align 16

View File

@ -1,21 +0,0 @@
; RUN: opt < %s -internalize -S | FileCheck %s
; RUN: opt < %s -passes=internalize -S | FileCheck %s
@llvm.used = appending global [1 x void ()*] [void ()* @f], section "llvm.metadata"
@llvm.compiler.used = appending global [1 x void ()*] [void ()* @g], section "llvm.metadata"
; CHECK: define void @f()
define void @f() {
ret void
}
; CHECK: define internal void @g()
define void @g() {
ret void
}
; CHECK: define internal void @h()
define void @h() {
ret void
}