summaryrefslogtreecommitdiff
path: root/test/Transforms/FunctionImport/Inputs
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2019-01-19 10:01:25 +0000
committerDimitry Andric <dim@FreeBSD.org>2019-01-19 10:01:25 +0000
commitd8e91e46262bc44006913e6796843909f1ac7bcd (patch)
tree7d0c143d9b38190e0fa0180805389da22cd834c5 /test/Transforms/FunctionImport/Inputs
parentb7eb8e35e481a74962664b63dfb09483b200209a (diff)
Notes
Diffstat (limited to 'test/Transforms/FunctionImport/Inputs')
-rw-r--r--test/Transforms/FunctionImport/Inputs/funcimport.ll17
-rw-r--r--test/Transforms/FunctionImport/Inputs/import_stats.ll16
2 files changed, 30 insertions, 3 deletions
diff --git a/test/Transforms/FunctionImport/Inputs/funcimport.ll b/test/Transforms/FunctionImport/Inputs/funcimport.ll
index c4ef37a168f2..201d44926712 100644
--- a/test/Transforms/FunctionImport/Inputs/funcimport.ll
+++ b/test/Transforms/FunctionImport/Inputs/funcimport.ll
@@ -11,7 +11,7 @@
define void @globalfunc1() #0 {
entry:
call void @funcwithpersonality()
- call void (...) @variadic()
+ call void (...) @variadic_va_start()
ret void
}
@@ -147,8 +147,19 @@ entry:
ret void
}
-; Variadic function should not be imported because inliner doesn't handle it.
-define void @variadic(...) {
+; Variadic function without va_start can be imported because inliner
+; can handle it.
+define void @variadic_no_va_start(...) {
ret void
}
+; Variadic function with va_start should not be imported because inliner
+; doesn't handle it.
+define void @variadic_va_start(...) {
+ %ap = alloca i8*, align 8
+ %ap.0 = bitcast i8** %ap to i8*
+ call void @llvm.va_start(i8* %ap.0)
+ ret void
+}
+
+declare void @llvm.va_start(i8*) nounwind
diff --git a/test/Transforms/FunctionImport/Inputs/import_stats.ll b/test/Transforms/FunctionImport/Inputs/import_stats.ll
new file mode 100644
index 000000000000..818fbf20d6ff
--- /dev/null
+++ b/test/Transforms/FunctionImport/Inputs/import_stats.ll
@@ -0,0 +1,16 @@
+; ModuleID = 'import_stats2.ll'
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-linux-gnu"
+
+@globalvar = global i32 1, align 4
+
+define void @hot() {
+ store i32 0, i32* @globalvar, align 4
+ ret void
+}
+define void @critical() {
+ ret void
+}
+define void @none() {
+ ret void
+}