@@ -47,59 +47,87 @@ define void @__module___main___test_bool() {
4747 %9 = load i64, i64* %8, align 4
4848 %10 = trunc i64 %9 to i32
4949 call void @_lfortran_printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @1, i32 0, i32 0), i8* %7, i32 %10, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @0, i32 0, i32 0), i32 1)
50+ %11 = icmp eq i8* %2, null
51+ br i1 %11, label %free_done, label %free_nonnull
52+
53+ free_nonnull: ; preds = %.entry
5054 call void @_lfortran_free(i8* %2)
51- %11 = alloca i64, align 8
52- %12 = alloca i1, align 1
53- store i1 false, i1* %12, align 1
54- %13 = call i8* (i8*, i64, i8*, i64*, i32, i32, ...) @_lcompilers_string_format_fortran(i8* null, i64 0, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @serialization_info.1, i32 0, i32 0), i64* %11, i32 0, i32 0, i1* %12)
55- %14 = load i64, i64* %11, align 4
55+ br label %free_done
56+
57+ free_done: ; preds = %free_nonnull, %.entry
58+ %12 = alloca i64, align 8
59+ %13 = alloca i1, align 1
60+ store i1 false, i1* %13, align 1
61+ %14 = call i8* (i8*, i64, i8*, i64*, i32, i32, ...) @_lcompilers_string_format_fortran(i8* null, i64 0, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @serialization_info.1, i32 0, i32 0), i64* %12, i32 0, i32 0, i1* %13)
62+ %15 = load i64, i64* %12, align 4
5663 %stringFormat_desc1 = alloca %string_descriptor, align 8
57- %15 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc1, i32 0, i32 0
58- store i8* %13, i8** %15, align 8
59- %16 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc1, i32 0, i32 1
60- store i64 %14, i64* %16, align 4
61- %17 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc1, i32 0, i32 0
62- %18 = load i8*, i8** %17, align 8
63- %19 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc1, i32 0, i32 1
64- %20 = load i64, i64* %19, align 4
65- %21 = trunc i64 %20 to i32
66- call void @_lfortran_printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @3, i32 0, i32 0), i8* %18, i32 %21, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @2, i32 0, i32 0), i32 1)
67- call void @_lfortran_free(i8* %13)
64+ %16 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc1, i32 0, i32 0
65+ store i8* %14, i8** %16, align 8
66+ %17 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc1, i32 0, i32 1
67+ store i64 %15, i64* %17, align 4
68+ %18 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc1, i32 0, i32 0
69+ %19 = load i8*, i8** %18, align 8
70+ %20 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc1, i32 0, i32 1
71+ %21 = load i64, i64* %20, align 4
72+ %22 = trunc i64 %21 to i32
73+ call void @_lfortran_printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @3, i32 0, i32 0), i8* %19, i32 %22, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @2, i32 0, i32 0), i32 1)
74+ %23 = icmp eq i8* %14, null
75+ br i1 %23, label %free_done3, label %free_nonnull2
76+
77+ free_nonnull2: ; preds = %free_done
78+ call void @_lfortran_free(i8* %14)
79+ br label %free_done3
80+
81+ free_done3: ; preds = %free_nonnull2, %free_done
6882 store i1 true, i1* %b, align 1
69- %22 = alloca i64, align 8
70- %23 = call i8* (i8*, i64, i8*, i64*, i32, i32, ...) @_lcompilers_string_format_fortran(i8* null, i64 0, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @serialization_info.2, i32 0, i32 0), i64* %22, i32 0, i32 0, i1* %b)
71- %24 = load i64, i64* %22, align 4
72- %stringFormat_desc2 = alloca %string_descriptor, align 8
73- %25 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc2, i32 0, i32 0
74- store i8* %23, i8** %25, align 8
75- %26 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc2, i32 0, i32 1
76- store i64 %24, i64* %26, align 4
77- %27 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc2, i32 0, i32 0
78- %28 = load i8*, i8** %27, align 8
79- %29 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc2, i32 0, i32 1
80- %30 = load i64, i64* %29, align 4
81- %31 = trunc i64 %30 to i32
82- call void @_lfortran_printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @5, i32 0, i32 0), i8* %28, i32 %31, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @4, i32 0, i32 0), i32 1)
83- call void @_lfortran_free(i8* %23)
83+ %24 = alloca i64, align 8
84+ %25 = call i8* (i8*, i64, i8*, i64*, i32, i32, ...) @_lcompilers_string_format_fortran(i8* null, i64 0, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @serialization_info.2, i32 0, i32 0), i64* %24, i32 0, i32 0, i1* %b)
85+ %26 = load i64, i64* %24, align 4
86+ %stringFormat_desc4 = alloca %string_descriptor, align 8
87+ %27 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc4, i32 0, i32 0
88+ store i8* %25, i8** %27, align 8
89+ %28 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc4, i32 0, i32 1
90+ store i64 %26, i64* %28, align 4
91+ %29 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc4, i32 0, i32 0
92+ %30 = load i8*, i8** %29, align 8
93+ %31 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc4, i32 0, i32 1
94+ %32 = load i64, i64* %31, align 4
95+ %33 = trunc i64 %32 to i32
96+ call void @_lfortran_printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @5, i32 0, i32 0), i8* %30, i32 %33, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @4, i32 0, i32 0), i32 1)
97+ %34 = icmp eq i8* %25, null
98+ br i1 %34, label %free_done6, label %free_nonnull5
99+
100+ free_nonnull5: ; preds = %free_done3
101+ call void @_lfortran_free(i8* %25)
102+ br label %free_done6
103+
104+ free_done6: ; preds = %free_nonnull5, %free_done3
84105 store i1 false, i1* %b, align 1
85- %32 = alloca i64, align 8
86- %33 = call i8* (i8*, i64, i8*, i64*, i32, i32, ...) @_lcompilers_string_format_fortran(i8* null, i64 0, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @serialization_info.3, i32 0, i32 0), i64* %32, i32 0, i32 0, i1* %b)
87- %34 = load i64, i64* %32, align 4
88- %stringFormat_desc3 = alloca %string_descriptor, align 8
89- %35 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc3, i32 0, i32 0
90- store i8* %33, i8** %35, align 8
91- %36 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc3, i32 0, i32 1
92- store i64 %34, i64* %36, align 4
93- %37 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc3, i32 0, i32 0
94- %38 = load i8*, i8** %37, align 8
95- %39 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc3, i32 0, i32 1
96- %40 = load i64, i64* %39, align 4
97- %41 = trunc i64 %40 to i32
98- call void @_lfortran_printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @7, i32 0, i32 0), i8* %38, i32 %41, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @6, i32 0, i32 0), i32 1)
99- call void @_lfortran_free(i8* %33)
106+ %35 = alloca i64, align 8
107+ %36 = call i8* (i8*, i64, i8*, i64*, i32, i32, ...) @_lcompilers_string_format_fortran(i8* null, i64 0, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @serialization_info.3, i32 0, i32 0), i64* %35, i32 0, i32 0, i1* %b)
108+ %37 = load i64, i64* %35, align 4
109+ %stringFormat_desc7 = alloca %string_descriptor, align 8
110+ %38 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc7, i32 0, i32 0
111+ store i8* %36, i8** %38, align 8
112+ %39 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc7, i32 0, i32 1
113+ store i64 %37, i64* %39, align 4
114+ %40 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc7, i32 0, i32 0
115+ %41 = load i8*, i8** %40, align 8
116+ %42 = getelementptr %string_descriptor, %string_descriptor* %stringFormat_desc7, i32 0, i32 1
117+ %43 = load i64, i64* %42, align 4
118+ %44 = trunc i64 %43 to i32
119+ call void @_lfortran_printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @7, i32 0, i32 0), i8* %41, i32 %44, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @6, i32 0, i32 0), i32 1)
120+ %45 = icmp eq i8* %36, null
121+ br i1 %45, label %free_done9, label %free_nonnull8
122+
123+ free_nonnull8: ; preds = %free_done6
124+ call void @_lfortran_free(i8* %36)
125+ br label %free_done9
126+
127+ free_done9: ; preds = %free_nonnull8, %free_done6
100128 br label %return
101129
102- return: ; preds = %.entry
130+ return: ; preds = %free_done9
103131 br label %FINALIZE_SYMTABLE_test_bool
104132
105133FINALIZE_SYMTABLE_test_bool: ; preds = %return
0 commit comments