diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2019-01-19 10:01:25 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2019-01-19 10:01:25 +0000 |
| commit | d8e91e46262bc44006913e6796843909f1ac7bcd (patch) | |
| tree | 7d0c143d9b38190e0fa0180805389da22cd834c5 /test/Transforms/FunctionImport/Inputs | |
| parent | b7eb8e35e481a74962664b63dfb09483b200209a (diff) | |
Notes
Diffstat (limited to 'test/Transforms/FunctionImport/Inputs')
| -rw-r--r-- | test/Transforms/FunctionImport/Inputs/funcimport.ll | 17 | ||||
| -rw-r--r-- | test/Transforms/FunctionImport/Inputs/import_stats.ll | 16 |
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 +} |
