-
Notifications
You must be signed in to change notification settings - Fork 1
/
Plist00.ll
95 lines (92 loc) · 4.75 KB
/
Plist00.ll
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
@_bal_stack_guard = external global i8*
declare void @_bal_panic(i64) noreturn cold
declare {i64, i1} @llvm.ssub.with.overflow.i64(i64, i64) nounwind readnone speculatable willreturn
declare i8 addrspace(1)* @_bal_alloc(i64)
declare i8 addrspace(1)* @_bal_int_to_tagged(i64)
declare i8 addrspace(1)* @llvm.ptrmask.p1i8.i64(i8 addrspace(1)*, i64) readnone speculatable
declare void @_Bio__println(i8 addrspace(1)*)
define void @_B_main() !dbg !2 {
%1 = alloca i64
%2 = alloca i8 addrspace(1)*
%v = alloca i8 addrspace(1)*
%i = alloca i64
%3 = alloca i8 addrspace(1)*
%4 = alloca i8 addrspace(1)*
%5 = alloca i64
%6 = alloca i8
%7 = load i8*, i8** @_bal_stack_guard
%8 = icmp ult i8* %6, %7
br i1 %8, label %14, label %9
9:
%10 = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 0, i64 11)
%11 = extractvalue {i64, i1} %10, 1
br i1 %11, label %41, label %15
12:
%13 = load i64, i64* %5
call void @_bal_panic(i64 %13), !dbg !4
unreachable
14:
call void @_bal_panic(i64 516), !dbg !4
unreachable
15:
%16 = extractvalue {i64, i1} %10, 0
store i64 %16, i64* %1
%17 = call i8 addrspace(1)* @_bal_alloc(i64 24)
%18 = bitcast i8 addrspace(1)* %17 to [3 x i8 addrspace(1)*] addrspace(1)*
%19 = call i8 addrspace(1)* @_bal_int_to_tagged(i64 17)
%20 = getelementptr inbounds [3 x i8 addrspace(1)*], [3 x i8 addrspace(1)*] addrspace(1)* %18, i64 0, i64 0
store i8 addrspace(1)* %19, i8 addrspace(1)* addrspace(1)* %20
%21 = call i8 addrspace(1)* @_bal_int_to_tagged(i64 42)
%22 = getelementptr inbounds [3 x i8 addrspace(1)*], [3 x i8 addrspace(1)*] addrspace(1)* %18, i64 0, i64 1
store i8 addrspace(1)* %21, i8 addrspace(1)* addrspace(1)* %22
%23 = load i64, i64* %1
%24 = call i8 addrspace(1)* @_bal_int_to_tagged(i64 %23)
%25 = getelementptr inbounds [3 x i8 addrspace(1)*], [3 x i8 addrspace(1)*] addrspace(1)* %18, i64 0, i64 2
store i8 addrspace(1)* %24, i8 addrspace(1)* addrspace(1)* %25
%26 = bitcast [3 x i8 addrspace(1)*] addrspace(1)* %18 to [0 x i8 addrspace(1)*] addrspace(1)*
%27 = call i8 addrspace(1)* @_bal_alloc(i64 24)
%28 = bitcast i8 addrspace(1)* %27 to {i64, i64, [0 x i8 addrspace(1)*] addrspace(1)*} addrspace(1)*
%29 = getelementptr inbounds {i64, i64, [0 x i8 addrspace(1)*] addrspace(1)*}, {i64, i64, [0 x i8 addrspace(1)*] addrspace(1)*} addrspace(1)* %28, i64 0, i32 0
store i64 3, i64 addrspace(1)* %29
%30 = getelementptr inbounds {i64, i64, [0 x i8 addrspace(1)*] addrspace(1)*}, {i64, i64, [0 x i8 addrspace(1)*] addrspace(1)*} addrspace(1)* %28, i64 0, i32 1
store i64 3, i64 addrspace(1)* %30
%31 = getelementptr inbounds {i64, i64, [0 x i8 addrspace(1)*] addrspace(1)*}, {i64, i64, [0 x i8 addrspace(1)*] addrspace(1)*} addrspace(1)* %28, i64 0, i32 2
store [0 x i8 addrspace(1)*] addrspace(1)* %26, [0 x i8 addrspace(1)*] addrspace(1)* addrspace(1)* %31
%32 = getelementptr i8, i8 addrspace(1)* %27, i64 1297036692682702848
store i8 addrspace(1)* %32, i8 addrspace(1)** %2
%33 = load i8 addrspace(1)*, i8 addrspace(1)** %2
store i8 addrspace(1)* %33, i8 addrspace(1)** %v
store i64 3, i64* %i
%34 = load i64, i64* %i
%35 = load i8 addrspace(1)*, i8 addrspace(1)** %v
%36 = call i8 addrspace(1)* @llvm.ptrmask.p1i8.i64(i8 addrspace(1)* %35, i64 72057594037927935)
%37 = bitcast i8 addrspace(1)* %36 to {i64, i64, [0 x i8 addrspace(1)*] addrspace(1)*} addrspace(1)*
%38 = getelementptr {i64, i64, [0 x i8 addrspace(1)*] addrspace(1)*}, {i64, i64, [0 x i8 addrspace(1)*] addrspace(1)*} addrspace(1)* %37, i64 0, i32 0
%39 = load i64, i64 addrspace(1)* %38, align 8
%40 = icmp ult i64 %34, %39
br i1 %40, label %42, label %48
41:
store i64 769, i64* %5
br label %12
42:
%43 = getelementptr inbounds {i64, i64, [0 x i8 addrspace(1)*] addrspace(1)*}, {i64, i64, [0 x i8 addrspace(1)*] addrspace(1)*} addrspace(1)* %37, i64 0, i32 2
%44 = load [0 x i8 addrspace(1)*] addrspace(1)*, [0 x i8 addrspace(1)*] addrspace(1)* addrspace(1)* %43, align 8
%45 = getelementptr inbounds [0 x i8 addrspace(1)*], [0 x i8 addrspace(1)*] addrspace(1)* %44, i64 0, i64 %34
%46 = load i8 addrspace(1)*, i8 addrspace(1)* addrspace(1)* %45, align 8
store i8 addrspace(1)* %46, i8 addrspace(1)** %3
%47 = load i8 addrspace(1)*, i8 addrspace(1)** %3
call void @_Bio__println(i8 addrspace(1)* %47)
store i8 addrspace(1)* null, i8 addrspace(1)** %4
ret void
48:
store i64 1285, i64* %5
br label %12
}
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!5}
!5 = !{i32 2, !"Debug Info Version", i32 3}
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, emissionKind: FullDebug)
!1 = !DIFile(filename: "Plist00.bal", directory: "PATH_TO_BAL_SOURCE")
!2 = distinct !DISubprogram(name: "_B_main", scope: !1, file: !1, line: 1, type: !3, unit: !0)
!3 = !DISubroutineType(types: !{null})
!4 = !DILocation(line: 5, column: 16, scope: !2)