Initial commit of LLVM 3.4

This commit is contained in:
Pascal Junod
2014-01-07 11:45:01 +01:00
parent 569cee53d0
commit 0c32ada97e
10493 changed files with 713743 additions and 208975 deletions
@@ -1,33 +0,0 @@
; RUN: rm -f %t.bc
; RUN: rm -f %t.ll
; RUN: rm -f %t2.bc
; RUN: rm -f %t2.ll
; RUN: llvm-as %s -o %t.bc
; RUN: llvm-dis %t.bc -o - | tail -n +2 > %t.ll
; RUN: llvm-as %t.ll -o %t2.bc
; RUN: llvm-dis %t2.bc -o - | tail -n +2 > %t2.ll
; RUN: llvm-diff %t.ll %t2.ll
define void @test() {
%mem = alloca i32
store i32 2, i32* %mem
%c = load i32* %mem
switch i32 %c, label %exit [
i32 1, label %exit
i32 2, label %exit
]
exit:
ret void
}
define void @test_wide() {
%mem = alloca i256
store i256 2, i256* %mem
%c = load i256* %mem
switch i256 %c, label %exit [
i256 123456789012345678901234567890, label %exit
i256 2, label %exit
]
exit:
ret void
}
+236
View File
@@ -0,0 +1,236 @@
; RUN: llvm-dis < %s.bc| FileCheck %s
; attributes-3.3.ll.bc was generated by passing this file to llvm-as-3.3.
; The test checks that LLVM does not silently misread attributes of
; older bitcode files.
define void @f1(i8 zeroext)
; CHECK: define void @f1(i8 zeroext)
{
ret void;
}
define void @f2(i8 signext)
; CHECK: define void @f2(i8 signext)
{
ret void;
}
define void @f3() noreturn
; CHECK: define void @f3() #0
{
ret void;
}
define void @f4(i8 inreg)
; CHECK: define void @f4(i8 inreg)
{
ret void;
}
define void @f5(i8* sret)
; CHECK: define void @f5(i8* sret)
{
ret void;
}
define void @f6() nounwind
; CHECK: define void @f6() #1
{
ret void;
}
define void @f7(i8* noalias)
; CHECK: define void @f7(i8* noalias)
{
ret void;
}
define void @f8(i8* byval)
; CHECK: define void @f8(i8* byval)
{
ret void;
}
define void @f9(i8* nest)
; CHECK: define void @f9(i8* nest)
{
ret void;
}
define void @f10() readnone
; CHECK: define void @f10() #2
{
ret void;
}
define void @f11() readonly
; CHECK: define void @f11() #3
{
ret void;
}
define void @f12() noinline
; CHECK: define void @f12() #4
{
ret void;
}
define void @f13() alwaysinline
; CHECK: define void @f13() #5
{
ret void;
}
define void @f14() optsize
; CHECK: define void @f14() #6
{
ret void;
}
define void @f15() ssp
; CHECK: define void @f15() #7
{
ret void;
}
define void @f16() sspreq
; CHECK: define void @f16() #8
{
ret void;
}
define void @f17(i8 align 4)
; CHECK: define void @f17(i8 align 4)
{
ret void;
}
define void @f18(i8* nocapture)
; CHECK: define void @f18(i8* nocapture)
{
ret void;
}
define void @f19() noredzone
; CHECK: define void @f19() #9
{
ret void;
}
define void @f20() noimplicitfloat
; CHECK: define void @f20() #10
{
ret void;
}
define void @f21() naked
; CHECK: define void @f21() #11
{
ret void;
}
define void @f22() inlinehint
; CHECK: define void @f22() #12
{
ret void;
}
define void @f23() alignstack(4)
; CHECK: define void @f23() #13
{
ret void;
}
define void @f24() returns_twice
; CHECK: define void @f24() #14
{
ret void;
}
define void @f25() uwtable
; CHECK: define void @f25() #15
{
ret void;
}
define void @f26() nonlazybind
; CHECK: define void @f26() #16
{
ret void;
}
define void @f27() sanitize_address
; CHECK: define void @f27() #17
{
ret void;
}
define void @f28() sanitize_thread
; CHECK: define void @f28() #18
{
ret void;
}
define void @f29() sanitize_memory
; CHECK: define void @f29() #19
{
ret void;
}
define void @f30() "cpu"="cortex-a8"
; CHECK: define void @f30() #20
{
ret void;
}
define i8 @f31(i8 returned %A)
; CHECK: define i8 @f31(i8 returned %A)
{
ret i8 %A;
}
define void @f32() sspstrong
; CHECK: define void @f32() #21
{
ret void;
}
define void @f33() minsize
; CHECK: define void @f33() #22
{
ret void;
}
declare void @nobuiltin()
define void @f34()
; CHECK: define void @f34()
{
call void @nobuiltin() nobuiltin
; CHECK: call void @nobuiltin() #23
ret void;
}
; CHECK: attributes #0 = { noreturn }
; CHECK: attributes #1 = { nounwind }
; CHECK: attributes #2 = { readnone }
; CHECK: attributes #3 = { readonly }
; CHECK: attributes #4 = { noinline }
; CHECK: attributes #5 = { alwaysinline }
; CHECK: attributes #6 = { optsize }
; CHECK: attributes #7 = { ssp }
; CHECK: attributes #8 = { sspreq }
; CHECK: attributes #9 = { noredzone }
; CHECK: attributes #10 = { noimplicitfloat }
; CHECK: attributes #11 = { naked }
; CHECK: attributes #12 = { inlinehint }
; CHECK: attributes #13 = { alignstack=4 }
; CHECK: attributes #14 = { returns_twice }
; CHECK: attributes #15 = { uwtable }
; CHECK: attributes #16 = { nonlazybind }
; CHECK: attributes #17 = { sanitize_address }
; CHECK: attributes #18 = { sanitize_thread }
; CHECK: attributes #19 = { sanitize_memory }
; CHECK: attributes #20 = { "cpu"="cortex-a8" }
; CHECK: attributes #21 = { sspstrong }
; CHECK: attributes #22 = { minsize }
; CHECK: attributes #23 = { nobuiltin }
Binary file not shown.
+39
View File
@@ -179,6 +179,40 @@ define void @f30() "cpu"="cortex-a8"
ret void;
}
define i8 @f31(i8 returned %A)
; CHECK: define i8 @f31(i8 returned %A)
{
ret i8 %A;
}
define void @f32() sspstrong
; CHECK: define void @f32() #21
{
ret void;
}
define void @f33() minsize
; CHECK: define void @f33() #22
{
ret void;
}
declare void @nobuiltin()
define void @f34()
; CHECK: define void @f34()
{
call void @nobuiltin() nobuiltin
; CHECK: call void @nobuiltin() #24
ret void;
}
define void @f35() optnone noinline
; CHECK: define void @f35() #23
{
ret void;
}
; CHECK: attributes #0 = { noreturn }
; CHECK: attributes #1 = { nounwind }
; CHECK: attributes #2 = { readnone }
@@ -200,3 +234,8 @@ define void @f30() "cpu"="cortex-a8"
; CHECK: attributes #18 = { sanitize_thread }
; CHECK: attributes #19 = { sanitize_memory }
; CHECK: attributes #20 = { "cpu"="cortex-a8" }
; CHECK: attributes #21 = { sspstrong }
; CHECK: attributes #22 = { minsize }
; CHECK: attributes #23 = { noinline optnone }
; CHECK: attributes #24 = { nobuiltin }
+67
View File
@@ -0,0 +1,67 @@
; RUN: llvm-dis < %s.bc| FileCheck %s
; case-ranges.ll.bc was generated by passing this file to llvm-as from the 3.3
; release of LLVM. This tests that the bitcode for switches from that release
; can still be read.
define i32 @foo(i32 %x) nounwind ssp uwtable {
; CHECK: define i32 @foo
%1 = alloca i32, align 4
%2 = alloca i32, align 4
store i32 %x, i32* %2, align 4
%3 = load i32* %2, align 4
switch i32 %3, label %9 [
; CHECK: switch i32 %3, label %9
i32 -3, label %4
; CHECK-NEXT: i32 -3, label %4
i32 -2, label %4
; CHECK-NEXT: i32 -2, label %4
i32 -1, label %4
; CHECK-NEXT: i32 -1, label %4
i32 0, label %4
; CHECK-NEXT: i32 0, label %4
i32 1, label %4
; CHECK-NEXT: i32 1, label %4
i32 2, label %4
; CHECK-NEXT: i32 2, label %4
i32 4, label %5
; CHECK-NEXT: i32 4, label %5
i32 5, label %6
; CHECK-NEXT: i32 5, label %6
i32 6, label %7
; CHECK-NEXT: i32 6, label %7
i32 7, label %8
; CHECK-NEXT: i32 7, label %8
]
; <label>:4
store i32 -1, i32* %1
br label %11
; <label>:5
store i32 2, i32* %1
br label %11
; <label>:6
store i32 1, i32* %1
br label %11
; <label>:7
store i32 4, i32* %1
br label %11
; <label>:8
store i32 3, i32* %1
br label %11
; <label>:9
br label %10
; <label>:10
store i32 0, i32* %1
br label %11
; <label>:11
%12 = load i32* %1
ret i32 %12
}
Binary file not shown.
+26
View File
@@ -0,0 +1,26 @@
; RUN: llvm-as < %s | llvm-dis | FileCheck %s
define i32 @main() {
entry:
%retval = alloca i32, align 4
store i32 0, i32* %retval
ret i32 0, !dbg !12
}
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!9}
!0 = metadata !{i32 786449, metadata !1, i32 12, metadata !"clang version 3.5 (trunk 195495) (llvm/trunk 195495:195504M)", i1 false, metadata !"", i32 0, metadata !2, metadata !2, metadata !3, metadata !2, metadata !2, metadata !""} ; [ DW_TAG_compile_unit ] [/Users/manmanren/llvm_gmail/release/../llvm/tools/clang/test/CodeGen/debug-info-version.c] [DW_LANG_C99]
!1 = metadata !{metadata !"../llvm/tools/clang/test/CodeGen/debug-info-version.c", metadata !"/Users/manmanren/llvm_gmail/release"}
!2 = metadata !{i32 0}
!3 = metadata !{metadata !4}
!4 = metadata !{i32 786478, metadata !1, metadata !5, metadata !"main", metadata !"main", metadata !"", i32 3, metadata !6, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, i32 ()* @main, null, null, metadata !2, i32 3} ; [ DW_TAG_subprogram ] [line 3] [def] [main]
!5 = metadata !{i32 786473, metadata !1} ; [ DW_TAG_file_type ] [/Users/manmanren/llvm_gmail/release/../llvm/tools/clang/test/CodeGen/debug-info-version.c]
!6 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !7, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!7 = metadata !{metadata !8}
!8 = metadata !{i32 786468, null, null, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed]
!9 = metadata !{i32 2, metadata !"Dwarf Version", i32 2}
!12 = metadata !{i32 4, i32 0, metadata !4, null}
; CHECK-NOT: !dbg
; CHECK-NOT: !llvm.dbg.cu
+1 -1
View File
@@ -1,4 +1,4 @@
; RUN: opt < %s -constprop | llvm-dis
; RUN: opt < %s -constprop | llvm-dis -disable-output
; PR3465
define double @test() {
+7
View File
@@ -0,0 +1,7 @@
; RUN: not llvm-dis < %s.bc 2>&1 | FileCheck %s
; CHECK: llvm-dis{{(\.EXE|\.exe)?}}: Invalid value
; invalid.ll.bc has an invalid attribute number.
; The test checks that LLVM reports the error and doesn't access freed memory
; in doing so.
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
config.suffixes = ['.ll', '.c', '.cpp']
+1 -1
View File
@@ -1,4 +1,4 @@
; RUN: llvm-as < %s | llvm-dis -o /dev/null
; RUN: llvm-as < %s | llvm-dis -disable-output
%0 = type { %object.ModuleInfo.__vtbl*, i8*, %"byte[]", %1, %"ClassInfo[]", i32, void ()*, void ()*, void ()*, i8*, void ()* } ; type %0
%1 = type { i64, %object.ModuleInfo* } ; type %1
%2 = type { i32, void ()* } ; type %2
+1 -2
View File
@@ -1,6 +1,5 @@
; RUN: llvm-as < %s | llvm-dis -o /dev/null
; RUN: llvm-as < %s | llvm-dis -disable-output
!llvm.foo = !{!0}
!0 = metadata !{i32 42}
@my.str = internal constant [4 x i8] c"foo\00"
+2 -3
View File
@@ -1,5 +1,4 @@
; RUN: not llvm-dis < %s.bc > /dev/null 2> %t
; RUN: FileCheck %s < %t
; RUN: not llvm-dis < %s.bc 2>&1 | FileCheck %s
; PR8494
; CHECK: Invalid MODULE_CODE_FUNCTION record
; CHECK: Invalid record
+9
View File
@@ -0,0 +1,9 @@
; RUN: llvm-as < %s | llvm-dis | FileCheck %s
define <2 x i32> @main() {
ret <2 x i32> select (<2 x i1> <i1 false, i1 undef>, <2 x i32> zeroinitializer, <2 x i32> <i32 0, i32 undef>)
}
; CHECK: define <2 x i32> @main() {
; CHECK: ret <2 x i32> select (<2 x i1> <i1 false, i1 undef>, <2 x i32> zeroinitializer, <2 x i32> <i32 0, i32 undef>)
; CHECK: }
+1 -1
View File
@@ -1,4 +1,4 @@
; RUN: llvm-as < %s | llvm-dis
; RUN: llvm-as < %s | llvm-dis -disable-output
; <rdar://problem/8622574>
; tests the bitcodereader can handle the case where the reader will initially
+23
View File
@@ -0,0 +1,23 @@
; RUN: llvm-as < %s | llvm-dis | FileCheck %s
; Function Attrs: nounwind
define void @_Z4testPiPf(i32* nocapture %pI, float* nocapture %pF) #0 {
entry:
store i32 0, i32* %pI, align 4, !tbaa !{metadata !"int", metadata !0}
; CHECK: store i32 0, i32* %pI, align 4, !tbaa [[TAG_INT:!.*]]
store float 1.000000e+00, float* %pF, align 4, !tbaa !2
; CHECK: store float 1.000000e+00, float* %pF, align 4, !tbaa [[TAG_FLOAT:!.*]]
ret void
}
attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-realign-stack" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
!0 = metadata !{metadata !"omnipotent char", metadata !1}
!1 = metadata !{metadata !"Simple C/C++ TBAA"}
!2 = metadata !{metadata !"float", metadata !0}
; CHECK: [[TAG_INT]] = metadata !{metadata [[TYPE_INT:!.*]], metadata [[TYPE_INT]], i64 0}
; CHECK: [[TYPE_INT]] = metadata !{metadata !"int", metadata [[TYPE_CHAR:!.*]]}
; CHECK: [[TYPE_CHAR]] = metadata !{metadata !"omnipotent char", metadata !{{.*}}
; CHECK: [[TAG_FLOAT]] = metadata !{metadata [[TYPE_FLOAT:!.*]], metadata [[TYPE_FLOAT]], i64 0}
; CHECK: [[TYPE_FLOAT]] = metadata !{metadata !"float", metadata [[TYPE_CHAR]]}