Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- gb.qt4: warning: unable to load Qt translation: es_AR.UTF-8
- gb.jit: using LLVM 3.1.
- ------------------------------------------------------------------------
- gb.jit: beginning compiling Module.Module:
- ------------------------------------------------------------------------
- ------------------------------------------------------------------------
- gb.jit: beginning compiling Module.Load_External:
- ------------------------------------------------------------------------
- ------------------------------------------------------------------------
- gb.jit: dumping function Module.Load_External:
- ------------------------------------------------------------------------
- ; ModuleID = 'jit_mod'
- target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S128"
- target triple = "i386-unknown-linux-gnu"
- %String = type { i32, i8*, i32, i32 }
- %Value = type { i32, i32, i32, i32 }
- %Integer = type { i32, i32 }
- %ValueObject = type { i8*, i8*, i8* }
- %Null = type { i32 }
- %Object = type { i8*, i8* }
- %OBJECT = type { i8*, i32 }
- %ValueFunction = type { i32, i8*, i8*, i8, i8, i16 }
- %ValueVariant = type { i32, i32, i64 }
- %Boolean = type { i32, i32 }
- %Void = type { i32, i32, i32, i32 }
- define void @func_0_Module_6() {
- entry:
- %0 = load i8** inttoptr (i32 134824628 to i8**)
- %1 = load i8** inttoptr (i32 134824636 to i8**)
- %2 = getelementptr i8* %1, i32 112
- %3 = icmp eq i8* %2, %0
- br i1 %3, label %if.cont, label %if.then
- if.then: ; preds = %entry
- tail call void @stack_corrupted_abort()
- unreachable
- if.cont: ; preds = %entry
- %4 = load i8** inttoptr (i32 144415652 to i8**)
- %5 = icmp eq i8* %4, null
- br i1 %5, label %if.cont2, label %if.then1
- if.then1: ; preds = %if.cont
- %6 = bitcast i8* %4 to i32*
- %7 = getelementptr i32* %6, i32 -2
- %8 = load i32* %7
- %9 = add i32 %8, 1
- store i32 %9, i32* %7
- %10 = getelementptr i8* %4, i32 -4
- %11 = bitcast i8* %10 to i32*
- %12 = load i32* %11
- %13 = insertvalue %String { i32 9, i8* undef, i32 undef, i32 undef }, i8* %4, 1
- %14 = insertvalue %String %13, i32 0, 2
- %15 = insertvalue %String %14, i32 %12, 3
- br label %if.cont2
- if.cont2: ; preds = %if.cont, %if.then1
- %16 = phi %String [ %15, %if.then1 ], [ { i32 10, i8* null, i32 0, i32 0 }, %if.cont ]
- %17 = load %Value** inttoptr (i32 134824628 to %Value**)
- %18 = bitcast %Value* %17 to %String*
- %19 = extractvalue %String %16, 0
- %20 = getelementptr %String* %18, i32 0, i32 0
- store i32 %19, i32* %20
- %21 = extractvalue %String %16, 1
- %22 = getelementptr %String* %18, i32 0, i32 1
- store i8* %21, i8** %22
- %23 = extractvalue %String %16, 2
- %24 = getelementptr %String* %18, i32 0, i32 2
- store i32 %23, i32* %24
- %25 = extractvalue %String %16, 3
- %26 = getelementptr %String* %18, i32 0, i32 3
- store i32 %25, i32* %26
- %27 = getelementptr %Value* %17, i32 1
- %28 = bitcast %Value* %27 to %String*
- %29 = getelementptr %String* %28, i32 0, i32 0
- store i32 10, i32* %29
- %30 = getelementptr %String* %28, i32 0, i32 1
- store i8* inttoptr (i32 144440103 to i8*), i8** %30
- %31 = getelementptr %String* %28, i32 0, i32 2
- store i32 0, i32* %31
- %32 = getelementptr %String* %28, i32 0, i32 3
- store i32 8, i32* %32
- %33 = getelementptr %Value* %17, i32 2
- %34 = bitcast %Value* %33 to %Integer*
- %35 = getelementptr %Integer* %34, i32 0, i32 0
- store i32 4, i32* %35
- %36 = getelementptr %Integer* %34, i32 0, i32 1
- store i32 1, i32* %36
- %37 = getelementptr %Value* %17, i32 3
- store %Value* %37, %Value** inttoptr (i32 134824628 to %Value**)
- tail call void @SUBR_dir(i16 -28413)
- %38 = load %Value** inttoptr (i32 134824628 to %Value**)
- %39 = getelementptr %Value* %38, i32 -1
- %40 = bitcast %Value* %39 to %ValueObject*
- %41 = bitcast %Value* %39 to %Null*
- %42 = getelementptr %Null* %41, i32 0, i32 0
- %43 = load i32* %42
- %44 = icmp eq i32 %43, 15
- %45 = getelementptr %ValueObject* %40, i32 0, i32 1
- %46 = load i8** %45
- %47 = getelementptr %ValueObject* %40, i32 0, i32 0
- %48 = load i8** %47
- %49 = insertvalue %Object undef, i8* %48, 0
- %50 = insertvalue %Object %49, i8* %46, 1
- %51 = select i1 %44, %Object { i8* inttoptr (i32 142287700 to i8*), i8* null }, %Object %50
- store %Value* %39, %Value** inttoptr (i32 134824628 to %Value**)
- %52 = load i8** inttoptr (i32 134824636 to i8**)
- %53 = bitcast i8* %52 to %ValueObject*
- %54 = extractvalue %Object %51, 0
- %55 = getelementptr %ValueObject* %53, i32 0, i32 0
- store i8* %54, i8** %55
- %56 = extractvalue %Object %51, 1
- %57 = getelementptr %ValueObject* %53, i32 0, i32 1
- store i8* %56, i8** %57
- %58 = load i8** inttoptr (i32 134824628 to i8**)
- %59 = load i8** inttoptr (i32 134824636 to i8**)
- %60 = getelementptr i8* %59, i32 112
- %61 = icmp eq i8* %60, %58
- br i1 %61, label %if.cont4, label %if.then3
- if.then3: ; preds = %if.cont2
- tail call void @stack_corrupted_abort()
- unreachable
- if.cont4: ; preds = %if.cont2
- %62 = load %Value** inttoptr (i32 134824628 to %Value**)
- %63 = bitcast %Value* %62 to %ValueObject*
- %64 = getelementptr %ValueObject* %63, i32 0, i32 0
- store i8* %54, i8** %64
- %65 = getelementptr %ValueObject* %63, i32 0, i32 1
- store i8* %56, i8** %65
- %66 = getelementptr %Value* %62, i32 1
- store %Value* %66, %Value** inttoptr (i32 134824628 to %Value**)
- %67 = icmp ne i8* %56, null
- br i1 %67, label %obj_not_null5, label %borrow_object_done
- obj_not_null5: ; preds = %if.cont4
- %68 = bitcast i8* %56 to %OBJECT*
- %69 = getelementptr %OBJECT* %68, i32 0, i32 1
- %70 = load i32* %69
- %71 = add i32 %70, 1
- store i32 %71, i32* %69
- %.pre = load %Value** inttoptr (i32 134824628 to %Value**)
- br label %borrow_object_done
- borrow_object_done: ; preds = %if.cont4, %obj_not_null5
- %72 = phi %Value* [ %66, %if.cont4 ], [ %.pre, %obj_not_null5 ]
- %73 = getelementptr %Value* %72, i32 -1
- %74 = bitcast %Value* %73 to %ValueObject*
- %75 = bitcast %Value* %73 to %Null*
- %76 = getelementptr %Null* %75, i32 0, i32 0
- %77 = load i32* %76
- %78 = icmp eq i32 %77, 15
- %79 = getelementptr %ValueObject* %74, i32 0, i32 1
- %80 = load i8** %79
- %81 = getelementptr %ValueObject* %74, i32 0, i32 0
- %82 = load i8** %81
- %83 = insertvalue %Object undef, i8* %82, 0
- %84 = insertvalue %Object %83, i8* %80, 1
- %85 = select i1 %78, %Object { i8* inttoptr (i32 142287700 to i8*), i8* null }, %Object %84
- %86 = extractvalue %Object %85, 0
- %87 = ptrtoint i8* %86 to i32
- %88 = icmp eq i32 %87, 15
- br i1 %88, label %if.then6, label %if.cont7
- if.then6: ; preds = %borrow_object_done
- tail call void (i32, ...)* @THROW(i32 13)
- unreachable
- if.cont7: ; preds = %borrow_object_done
- %89 = extractvalue %Object %85, 1
- %90 = icmp eq i8* %89, null
- br i1 %90, label %is_null, label %not_null
- is_null: ; preds = %if.cont7
- tail call void (i32, ...)* @THROW(i32 13)
- unreachable
- not_null: ; preds = %if.cont7
- %91 = bitcast i8* %89 to %OBJECT*
- %92 = getelementptr %OBJECT* %91, i32 0, i32 0
- %93 = load i8** %92
- %94 = getelementptr i8* %93, i32 28
- %95 = bitcast i8* %94 to i8**
- %96 = load i8** %95
- %97 = getelementptr i8* %96, i32 32
- %98 = bitcast i8* %97 to i8**
- %99 = load i8** %98
- %100 = getelementptr i8* %99, i32 16
- %101 = load i8* %100
- %102 = and i8 %101, 1
- %103 = icmp eq i8 %102, 0
- %104 = getelementptr i8* %99, i32 8
- br i1 %103, label %property_non_native, label %property_native
- property_native: ; preds = %not_null
- %105 = bitcast i8* %104 to i8**
- %106 = load i8** %105
- %107 = tail call i8 @EXEC_call_native(i8* %106, i8* %89, i32 4, i8* null)
- %108 = icmp eq i8 %107, 0
- br i1 %108, label %if.cont9, label %if.then8
- if.then8: ; preds = %property_native
- tail call void @ERROR_propagate()
- unreachable
- if.cont9: ; preds = %property_native
- %109 = load i32* getelementptr (%Integer* inttoptr (i32 134831596 to %Integer*), i32 0, i32 1)
- br label %property_read_done
- property_non_native: ; preds = %not_null
- %110 = bitcast i8* %104 to i32*
- %111 = load i32* %110
- %112 = getelementptr i8* %99, i32 20
- %113 = bitcast i8* %112 to i8**
- %114 = load i8** %113
- store i8* %114, i8** inttoptr (i32 134831616 to i8**)
- store i8* %89, i8** inttoptr (i32 134831620 to i8**)
- store i32 0, i32* inttoptr (i32 134831632 to i32*)
- store i32 %111, i32* inttoptr (i32 134831624 to i32*)
- tail call void @EXEC_function_real()
- %115 = load i32* getelementptr (%Integer* inttoptr (i32 134831572 to %Integer*), i32 0, i32 1)
- store i32 0, i32* inttoptr (i32 134831572 to i32*)
- br label %property_read_done
- property_read_done: ; preds = %property_non_native, %if.cont9
- %116 = phi i32 [ %109, %if.cont9 ], [ %115, %property_non_native ]
- %117 = getelementptr %OBJECT* %91, i32 0, i32 1
- %118 = load i32* %117
- %119 = add i32 %118, -1
- store i32 %119, i32* %117
- %120 = icmp slt i32 %119, 1
- br i1 %120, label %release_obj10, label %release_done11
- release_obj10: ; preds = %property_read_done
- tail call void @CLASS_free(i8* %89)
- br label %release_done11
- release_done11: ; preds = %property_read_done, %release_obj10
- %121 = load %Value** inttoptr (i32 134824628 to %Value**)
- %122 = getelementptr %Value* %121, i32 -1
- store %Value* %122, %Value** inttoptr (i32 134824628 to %Value**)
- %123 = icmp eq i32 %116, 0
- br i1 %123, label %return, label %block13
- block13: ; preds = %release_done11
- %124 = load i8** inttoptr (i32 134824628 to i8**)
- %125 = load i8** inttoptr (i32 134824636 to i8**)
- %126 = getelementptr i8* %125, i32 112
- %127 = icmp eq i8* %126, %124
- br i1 %127, label %if.cont15, label %if.then14
- if.then14: ; preds = %block13
- tail call void @stack_corrupted_abort()
- unreachable
- if.cont15: ; preds = %block13
- br i1 %67, label %not_null24, label %is_null23
- is_null23: ; preds = %if.cont15
- %128 = getelementptr i8* %125, i32 64
- %129 = bitcast i8* %128 to %ValueObject*
- %130 = getelementptr %ValueObject* %129, i32 0, i32 0
- store i8* %54, i8** %130
- %131 = getelementptr %ValueObject* %129, i32 0, i32 1
- store i8* %56, i8** %131
- tail call void (i32, ...)* @THROW(i32 13)
- unreachable
- not_null24: ; preds = %if.cont15
- %132 = bitcast i8* %56 to %OBJECT*
- %133 = getelementptr %OBJECT* %132, i32 0, i32 1
- %134 = load i32* %133
- %135 = add i32 %134, 1
- store i32 %135, i32* %133
- %.pre403 = load i8** inttoptr (i32 134824636 to i8**)
- %136 = getelementptr i8* %.pre403, i32 64
- %137 = bitcast i8* %136 to %ValueObject*
- %138 = getelementptr %ValueObject* %137, i32 0, i32 0
- store i8* %54, i8** %138
- %139 = getelementptr %ValueObject* %137, i32 0, i32 1
- store i8* %56, i8** %139
- %140 = tail call i8* @CENUM_create(i8* %56)
- %141 = bitcast i8* %140 to %OBJECT*
- %142 = getelementptr %OBJECT* %141, i32 0, i32 1
- %143 = load i32* %142
- %144 = add i32 %143, 1
- store i32 %144, i32* %142
- %145 = load i8** inttoptr (i32 134824636 to i8**)
- %146 = getelementptr i8* %145, i32 80
- %147 = bitcast i8* %146 to %ValueObject*
- %148 = getelementptr %ValueObject* %147, i32 0, i32 0
- store i8* inttoptr (i32 142287132 to i8*), i8** %148
- %149 = getelementptr %ValueObject* %147, i32 0, i32 1
- store i8* %140, i8** %149
- %150 = load i8** inttoptr (i32 134831612 to i8**)
- store i8* %140, i8** inttoptr (i32 134831612 to i8**)
- %151 = tail call i8 @EXEC_special(i32 4, i8* %54, i8* %56, i32 0, i8 1)
- store i8* %150, i8** inttoptr (i32 134831612 to i8**)
- %152 = getelementptr i8* %140, i32 36
- br label %block31
- block31: ; preds = %block279, %not_null24
- %.0292 = phi %String [ { i32 10, i8* null, i32 0, i32 0 }, %not_null24 ], [ %.1293, %block279 ]
- %.0291 = phi %Object [ { i8* inttoptr (i32 142289596 to i8*), i8* null }, %not_null24 ], [ %270, %block279 ]
- %.0287 = phi i32 [ 0, %not_null24 ], [ %.1288, %block279 ]
- %.0 = phi %Object [ undef, %not_null24 ], [ %.1, %block279 ]
- %153 = load i8* %152
- %154 = and i8 %153, 1
- %155 = icmp eq i8 %154, 0
- br i1 %155, label %enum_next_cont, label %block283
- enum_next_cont: ; preds = %block31
- %156 = load i8** inttoptr (i32 134831612 to i8**)
- store i8* %140, i8** inttoptr (i32 134831612 to i8**)
- store i32 144437496, i32* inttoptr (i32 134824660 to i32*)
- %157 = tail call i8 @EXEC_special(i32 5, i8* %54, i8* %56, i32 0, i8 0)
- store i8* %156, i8** inttoptr (i32 134831612 to i8**)
- %158 = icmp eq i8 %157, 0
- br i1 %158, label %if.cont33, label %if.then32
- if.then32: ; preds = %enum_next_cont
- tail call void (i32, ...)* @THROW(i32 30)
- unreachable
- if.cont33: ; preds = %enum_next_cont
- %159 = load i8* %152
- %160 = and i8 %159, 1
- %161 = icmp eq i8 %160, 0
- %.pre412 = load %Value** inttoptr (i32 134824628 to %Value**)
- %162 = getelementptr %Value* %.pre412, i32 -1
- %163 = bitcast %Value* %162 to %String*
- %164 = getelementptr %String* %163, i32 0, i32 0
- %165 = load i32* %164
- br i1 %161, label %block42, label %if.then34
- if.then34: ; preds = %if.cont33
- %166 = getelementptr %String* %163, i32 0, i32 1
- %167 = load i8** %166
- %168 = icmp eq i32 %165, 12
- br i1 %168, label %bb1, label %bb2
- bb1: ; preds = %if.then34
- tail call void @abort()
- unreachable
- bb2: ; preds = %if.then34
- %notrhs = icmp ne i32 %165, 9
- %169 = icmp eq i8* %167, null
- %or.cond295 = or i1 %notrhs, %169
- br i1 %or.cond295, label %if.cont40.block283_crit_edge, label %str_not_null
- str_not_null: ; preds = %bb2
- %170 = bitcast i8* %167 to i32*
- %171 = getelementptr i32* %170, i32 -2
- %172 = load i32* %171
- %173 = add i32 %172, -1
- store i32 %173, i32* %171
- %174 = icmp slt i32 %173, 1
- br i1 %174, label %release_str, label %if.cont40.block283_crit_edge
- release_str: ; preds = %str_not_null
- tail call void @STRING_free_real(i8* %167)
- br label %if.cont40.block283_crit_edge
- if.cont40.block283_crit_edge: ; preds = %bb2, %release_str, %str_not_null
- %175 = load %Value** inttoptr (i32 134824628 to %Value**)
- %176 = getelementptr %Value* %175, i32 -1
- store %Value* %176, %Value** inttoptr (i32 134824628 to %Value**)
- br label %block283
- block42: ; preds = %if.cont33
- %177 = getelementptr %String* %163, i32 0, i32 3
- %178 = load i32* %177
- %179 = getelementptr %String* %163, i32 0, i32 2
- %180 = load i32* %179
- %181 = getelementptr %String* %163, i32 0, i32 1
- %182 = load i8** %181
- %183 = insertvalue %String undef, i32 %165, 0
- %184 = insertvalue %String %183, i8* %182, 1
- %185 = insertvalue %String %184, i32 %180, 2
- %186 = insertvalue %String %185, i32 %178, 3
- %187 = icmp eq i32 %165, 12
- br i1 %187, label %bb143, label %bb244
- bb143: ; preds = %block42
- tail call void @abort()
- unreachable
- bb244: ; preds = %block42
- store %Value* %162, %Value** inttoptr (i32 134824628 to %Value**)
- %188 = extractvalue %String %.0292, 0
- %189 = icmp eq i32 %188, 9
- br i1 %189, label %release_T_STRING45, label %str_release_done50
- release_T_STRING45: ; preds = %bb244
- %190 = extractvalue %String %.0292, 1
- %191 = icmp eq i8* %190, null
- br i1 %191, label %str_release_done50, label %str_not_null46
- str_not_null46: ; preds = %release_T_STRING45
- %192 = bitcast i8* %190 to i32*
- %193 = getelementptr i32* %192, i32 -2
- %194 = load i32* %193
- %195 = add i32 %194, -1
- store i32 %195, i32* %193
- %196 = icmp slt i32 %195, 1
- br i1 %196, label %release_str47, label %str_release_done50
- release_str47: ; preds = %str_not_null46
- tail call void @STRING_free_real(i8* %190)
- br label %str_release_done50
- str_release_done50: ; preds = %release_T_STRING45, %str_not_null46, %release_str47, %bb244
- %197 = load i8** inttoptr (i32 134824636 to i8**)
- %198 = getelementptr i8* %197, i32 16
- %199 = bitcast i8* %198 to %String*
- %200 = getelementptr %String* %199, i32 0, i32 0
- store i32 %165, i32* %200
- %201 = getelementptr %String* %199, i32 0, i32 1
- store i8* %182, i8** %201
- %202 = getelementptr %String* %199, i32 0, i32 2
- store i32 %180, i32* %202
- %203 = getelementptr %String* %199, i32 0, i32 3
- store i32 %178, i32* %203
- %204 = load i8** inttoptr (i32 134824628 to i8**)
- %205 = load i8** inttoptr (i32 134824636 to i8**)
- %206 = getelementptr i8* %205, i32 112
- %207 = icmp eq i8* %206, %204
- br i1 %207, label %if.cont52, label %if.then51
- if.then51: ; preds = %str_release_done50
- tail call void @stack_corrupted_abort()
- unreachable
- if.cont52: ; preds = %str_release_done50
- %208 = load %Value** inttoptr (i32 134824628 to %Value**)
- %209 = bitcast %Value* %208 to %ValueFunction*
- %210 = getelementptr %ValueFunction* %209, i32 0, i32 0
- store i32 13, i32* %210
- %211 = getelementptr %ValueFunction* %209, i32 0, i32 1
- store i8* inttoptr (i32 143005620 to i8*), i8** %211
- %212 = getelementptr %ValueFunction* %209, i32 0, i32 2
- store i8* null, i8** %212
- %213 = getelementptr %Value* %208, i32 1
- %214 = bitcast %Value* %213 to %ValueFunction*
- %215 = getelementptr %ValueFunction* %214, i32 0, i32 0
- store i32 13, i32* %215
- %216 = getelementptr %ValueFunction* %214, i32 0, i32 1
- store i8* inttoptr (i32 142291628 to i8*), i8** %216
- %217 = getelementptr %ValueFunction* %214, i32 0, i32 2
- store i8* null, i8** %217
- %218 = getelementptr %Value* %208, i32 2
- store %Value* %218, %Value** inttoptr (i32 134824628 to %Value**)
- %219 = load i8** inttoptr (i32 144415652 to i8**)
- %220 = icmp eq i8* %219, null
- br i1 %220, label %if.cont54, label %if.then53
- if.then53: ; preds = %if.cont52
- %221 = bitcast i8* %219 to i32*
- %222 = getelementptr i32* %221, i32 -2
- %223 = load i32* %222
- %224 = add i32 %223, 1
- store i32 %224, i32* %222
- %225 = getelementptr i8* %219, i32 -4
- %226 = bitcast i8* %225 to i32*
- %227 = load i32* %226
- %228 = insertvalue %String { i32 9, i8* undef, i32 undef, i32 undef }, i8* %219, 1
- %229 = insertvalue %String %228, i32 0, 2
- %230 = insertvalue %String %229, i32 %227, 3
- %.pre404 = load %Value** inttoptr (i32 134824628 to %Value**)
- br label %if.cont54
- if.cont54: ; preds = %if.cont52, %if.then53
- %231 = phi %Value* [ %.pre404, %if.then53 ], [ %218, %if.cont52 ]
- %232 = phi %String [ %230, %if.then53 ], [ { i32 10, i8* null, i32 0, i32 0 }, %if.cont52 ]
- %233 = bitcast %Value* %231 to %String*
- %234 = extractvalue %String %232, 0
- %235 = getelementptr %String* %233, i32 0, i32 0
- store i32 %234, i32* %235
- %236 = extractvalue %String %232, 1
- %237 = getelementptr %String* %233, i32 0, i32 1
- store i8* %236, i8** %237
- %238 = extractvalue %String %232, 2
- %239 = getelementptr %String* %233, i32 0, i32 2
- store i32 %238, i32* %239
- %240 = extractvalue %String %232, 3
- %241 = getelementptr %String* %233, i32 0, i32 3
- store i32 %240, i32* %241
- %242 = getelementptr %Value* %231, i32 1
- %243 = bitcast %Value* %242 to %String*
- %244 = getelementptr %String* %243, i32 0, i32 0
- store i32 %165, i32* %244
- %245 = getelementptr %String* %243, i32 0, i32 1
- store i8* %182, i8** %245
- %246 = getelementptr %String* %243, i32 0, i32 2
- store i32 %180, i32* %246
- %247 = getelementptr %String* %243, i32 0, i32 3
- store i32 %178, i32* %247
- %248 = getelementptr %Value* %231, i32 2
- store %Value* %248, %Value** inttoptr (i32 134824628 to %Value**)
- %.not = icmp ne i32 %165, 9
- %249 = icmp eq i8* %182, null
- %or.cond296 = or i1 %.not, %249
- br i1 %or.cond296, label %str_borrow_done, label %str_not_null55
- str_not_null55: ; preds = %if.cont54
- %250 = bitcast i8* %182 to i32*
- %251 = getelementptr i32* %250, i32 -2
- %252 = load i32* %251
- %253 = add i32 %252, 1
- store i32 %253, i32* %251
- br label %str_borrow_done
- str_borrow_done: ; preds = %if.cont54, %str_not_null55
- tail call void @SUBR_file(i16 2)
- store i32 144437526, i32* inttoptr (i32 134824660 to i32*)
- store i8 1, i8* inttoptr (i32 134831632 to i8*)
- store i8* inttoptr (i32 134811532 to i8*), i8** inttoptr (i32 134831628 to i8**)
- store i8* null, i8** inttoptr (i32 134831620 to i8**)
- store i8* inttoptr (i32 142291628 to i8*), i8** inttoptr (i32 134831616 to i8**)
- tail call void @EXEC_native_quick()
- store i32 144437528, i32* inttoptr (i32 134824660 to i32*)
- store i8 1, i8* inttoptr (i32 134831632 to i8*)
- tail call void @JR_exec_enter_quick(i8* inttoptr (i32 143005620 to i8*), i8* null, i32 0)
- %254 = load %Value** inttoptr (i32 134824628 to %Value**)
- %255 = getelementptr %Value* %254, i32 -1
- %256 = bitcast %Value* %255 to i8*
- tail call void @VALUE_convert(i8* %256, i32 142289596)
- %257 = load %Value** inttoptr (i32 134824628 to %Value**)
- %258 = getelementptr %Value* %257, i32 -1
- %259 = bitcast %Value* %258 to %ValueObject*
- %260 = bitcast %Value* %258 to %Null*
- %261 = getelementptr %Null* %260, i32 0, i32 0
- %262 = load i32* %261
- %263 = icmp eq i32 %262, 15
- %264 = getelementptr %ValueObject* %259, i32 0, i32 1
- %265 = load i8** %264
- %266 = getelementptr %ValueObject* %259, i32 0, i32 0
- %267 = load i8** %266
- %268 = insertvalue %Object undef, i8* %267, 0
- %269 = insertvalue %Object %268, i8* %265, 1
- %270 = select i1 %263, %Object { i8* inttoptr (i32 142289596 to i8*), i8* null }, %Object %269
- store %Value* %258, %Value** inttoptr (i32 134824628 to %Value**)
- %271 = extractvalue %Object %.0291, 1
- %272 = icmp eq i8* %271, null
- br i1 %272, label %unref_done59, label %obj_not_null56
- obj_not_null56: ; preds = %str_borrow_done
- %273 = bitcast i8* %271 to %OBJECT*
- %274 = getelementptr %OBJECT* %273, i32 0, i32 1
- %275 = load i32* %274
- %276 = add i32 %275, -1
- store i32 %276, i32* %274
- %277 = icmp slt i32 %276, 1
- br i1 %277, label %release_obj57, label %unref_done59
- release_obj57: ; preds = %obj_not_null56
- tail call void @CLASS_free(i8* %271)
- br label %unref_done59
- unref_done59: ; preds = %str_borrow_done, %release_obj57, %obj_not_null56
- %278 = load i8** inttoptr (i32 134824636 to i8**)
- %279 = getelementptr i8* %278, i32 32
- %280 = bitcast i8* %279 to %ValueObject*
- %281 = extractvalue %Object %270, 0
- %282 = getelementptr %ValueObject* %280, i32 0, i32 0
- store i8* %281, i8** %282
- %283 = extractvalue %Object %270, 1
- %284 = getelementptr %ValueObject* %280, i32 0, i32 1
- store i8* %283, i8** %284
- %285 = load i8** inttoptr (i32 134824628 to i8**)
- %286 = load i8** inttoptr (i32 134824636 to i8**)
- %287 = getelementptr i8* %286, i32 112
- %288 = icmp eq i8* %287, %285
- br i1 %288, label %if.cont61, label %if.then60
- if.then60: ; preds = %unref_done59
- tail call void @stack_corrupted_abort()
- unreachable
- if.cont61: ; preds = %unref_done59
- %289 = load i8** inttoptr (i32 144415616 to i8**)
- %290 = icmp eq i8* %289, null
- br i1 %290, label %is_null64, label %not_null65
- is_null64: ; preds = %if.cont61
- tail call void (i32, ...)* @THROW(i32 13)
- unreachable
- not_null65: ; preds = %if.cont61
- %291 = bitcast i8* %289 to %OBJECT*
- %292 = getelementptr %OBJECT* %291, i32 0, i32 1
- %293 = load i32* %292
- %294 = add i32 %293, 1
- store i32 %294, i32* %292
- %295 = getelementptr %OBJECT* %291, i32 0, i32 0
- %296 = load i8** %295
- %297 = bitcast i8* %296 to i8**
- %298 = getelementptr i8** %297, i32 7
- %299 = load i8** %298
- %300 = getelementptr i8* %299, i32 80
- %301 = bitcast i8* %300 to i8**
- %302 = load i8** %301
- %303 = getelementptr i8* %302, i32 19
- %304 = load i8* %303
- %305 = shl i8 %304, 1
- %306 = and i8 %305, 2
- %307 = xor i8 %306, 3
- %308 = load %Value** inttoptr (i32 134824628 to %Value**)
- %309 = bitcast %Value* %308 to %ValueFunction*
- %310 = getelementptr %ValueFunction* %309, i32 0, i32 0
- store i32 13, i32* %310
- %311 = getelementptr %ValueFunction* %309, i32 0, i32 2
- store i8* %289, i8** %311
- %312 = getelementptr %ValueFunction* %309, i32 0, i32 3
- store i8 %307, i8* %312
- %313 = getelementptr %Value* %308, i32 1
- store %Value* %313, %Value** inttoptr (i32 134824628 to %Value**)
- %314 = icmp eq i8* %283, null
- br i1 %314, label %str_release_done74, label %not_null75
- str_release_done74: ; preds = %not_null65
- tail call void (i32, ...)* @THROW(i32 13)
- unreachable
- not_null75: ; preds = %not_null65
- %315 = bitcast i8* %283 to %OBJECT*
- %316 = getelementptr %OBJECT* %315, i32 0, i32 1
- %317 = load i32* %316
- %318 = add i32 %317, 1
- store i32 %318, i32* %316
- %319 = load %Value** inttoptr (i32 134824628 to %Value**)
- %320 = bitcast %Value* %319 to i8*
- %321 = tail call i8 @GB.Collection.Get(i8* %283, i8* inttoptr (i32 144439784 to i8*), i32 4, i8* %320)
- %322 = bitcast %Value* %319 to %ValueVariant*
- %323 = getelementptr %ValueVariant* %322, i32 0, i32 2
- %324 = load i64* %323
- %325 = getelementptr %ValueVariant* %322, i32 0, i32 1
- %326 = load i32* %325
- tail call void @JR_borrow_variant(i32 %326, i64 %324)
- %327 = getelementptr %Value* %319, i32 1
- store %Value* %327, %Value** inttoptr (i32 134824628 to %Value**)
- %328 = load i32* %316
- %329 = add i32 %328, -1
- store i32 %329, i32* %316
- %330 = icmp slt i32 %329, 1
- br i1 %330, label %release_obj82, label %release_done83
- release_obj82: ; preds = %not_null75
- tail call void @CLASS_free(i8* %283)
- br label %release_done83
- release_done83: ; preds = %not_null75, %release_obj82
- %331 = load %Value** inttoptr (i32 134824628 to %Value**)
- %332 = getelementptr %Value* %331, i32 -1
- %333 = bitcast %Value* %332 to i8*
- tail call void @VALUE_convert(i8* %333, i32 9)
- %334 = load %Value** inttoptr (i32 134824628 to %Value**)
- %335 = getelementptr %Value* %334, i32 -1
- %336 = bitcast %Value* %335 to %String*
- %337 = getelementptr %String* %336, i32 0, i32 0
- %338 = load i32* %337
- %339 = icmp eq i32 %338, 12
- br i1 %339, label %bb184, label %bb285
- bb184: ; preds = %release_done83
- tail call void @abort()
- unreachable
- bb285: ; preds = %release_done83
- store i32 144437550, i32* inttoptr (i32 134824660 to i32*)
- store i8 1, i8* inttoptr (i32 134831632 to i8*)
- %340 = icmp eq i8 %306, 0
- br i1 %340, label %if.then86, label %if.else
- if.then86: ; preds = %bb285
- tail call void @JR_exec_enter_quick(i8* %296, i8* %289, i32 6)
- br label %if.cont87
- if.else: ; preds = %bb285
- store i8* inttoptr (i32 134808580 to i8*), i8** inttoptr (i32 134831628 to i8**)
- store i8* %289, i8** inttoptr (i32 134831620 to i8**)
- store i8* %296, i8** inttoptr (i32 134831616 to i8**)
- tail call void @EXEC_native_quick()
- br label %if.cont87
- if.cont87: ; preds = %if.else, %if.then86
- %341 = load %Value** inttoptr (i32 134824628 to %Value**)
- %342 = getelementptr %Value* %341, i32 -1
- %343 = bitcast %Value* %342 to %Boolean*
- %344 = getelementptr %Boolean* %343, i32 0, i32 1
- %345 = load i32* %344
- %346 = icmp eq i32 %345, 0
- store %Value* %342, %Value** inttoptr (i32 134824628 to %Value**)
- %347 = load i8** inttoptr (i32 134824628 to i8**)
- %348 = load i8** inttoptr (i32 134824636 to i8**)
- %349 = getelementptr i8* %348, i32 112
- %350 = icmp ne i8* %349, %347
- br i1 %346, label %block95, label %block89
- block89: ; preds = %if.cont87
- br i1 %350, label %if.then90, label %if.cont91
- if.then90: ; preds = %block89
- tail call void @stack_corrupted_abort()
- unreachable
- if.cont91: ; preds = %block89
- %351 = bitcast %Value* %342 to %ValueFunction*
- %352 = getelementptr %ValueFunction* %351, i32 0, i32 0
- store i32 13, i32* %352
- %353 = getelementptr %ValueFunction* %351, i32 0, i32 1
- store i8* inttoptr (i32 142489076 to i8*), i8** %353
- %354 = getelementptr %ValueFunction* %351, i32 0, i32 2
- store i8* null, i8** %354
- %355 = bitcast %Value* %341 to %String*
- %356 = getelementptr %String* %355, i32 0, i32 0
- store i32 10, i32* %356
- %357 = getelementptr %String* %355, i32 0, i32 1
- store i8* inttoptr (i32 144440112 to i8*), i8** %357
- %358 = getelementptr %String* %355, i32 0, i32 2
- store i32 0, i32* %358
- %359 = getelementptr %String* %355, i32 0, i32 3
- store i32 36, i32* %359
- %360 = getelementptr %Value* %341, i32 1
- store %Value* %360, %Value** inttoptr (i32 134824628 to %Value**)
- store i32 144437566, i32* inttoptr (i32 134824660 to i32*)
- store i8 1, i8* inttoptr (i32 134831632 to i8*)
- store i8* inttoptr (i32 -1229930676 to i8*), i8** inttoptr (i32 134831628 to i8**)
- store i8* null, i8** inttoptr (i32 134831620 to i8**)
- store i8* inttoptr (i32 142489076 to i8*), i8** inttoptr (i32 134831616 to i8**)
- store i8 1, i8* inttoptr (i32 134831634 to i8*)
- tail call void @EXEC_native()
- %361 = load %Value** inttoptr (i32 134824628 to %Value**)
- %362 = getelementptr %Value* %361, i32 -1
- store %Value* %362, %Value** inttoptr (i32 134824628 to %Value**)
- %363 = load i8** inttoptr (i32 134824628 to i8**)
- %364 = load i8** inttoptr (i32 134824636 to i8**)
- %365 = getelementptr i8* %364, i32 112
- %366 = icmp eq i8* %365, %363
- br i1 %366, label %block279, label %if.then92
- if.then92: ; preds = %if.cont91
- tail call void @stack_corrupted_abort()
- unreachable
- block95: ; preds = %if.cont87
- br i1 %350, label %if.then96, label %if.cont97
- if.then96: ; preds = %block95
- tail call void @stack_corrupted_abort()
- unreachable
- if.cont97: ; preds = %block95
- %367 = bitcast %Value* %342 to %ValueFunction*
- %368 = getelementptr %ValueFunction* %367, i32 0, i32 0
- store i32 13, i32* %368
- %369 = getelementptr %ValueFunction* %367, i32 0, i32 1
- store i8* inttoptr (i32 142291628 to i8*), i8** %369
- %370 = getelementptr %ValueFunction* %367, i32 0, i32 2
- store i8* null, i8** %370
- %371 = bitcast %Value* %341 to %String*
- %372 = getelementptr %String* %371, i32 0, i32 0
- store i32 %165, i32* %372
- %373 = getelementptr %String* %371, i32 0, i32 1
- store i8* %182, i8** %373
- %374 = getelementptr %String* %371, i32 0, i32 2
- store i32 %180, i32* %374
- %375 = getelementptr %String* %371, i32 0, i32 3
- store i32 %178, i32* %375
- %376 = getelementptr %Value* %341, i32 1
- store %Value* %376, %Value** inttoptr (i32 134824628 to %Value**)
- br i1 %or.cond296, label %str_borrow_done101, label %str_not_null99
- str_not_null99: ; preds = %if.cont97
- %377 = bitcast i8* %182 to i32*
- %378 = getelementptr i32* %377, i32 -2
- %379 = load i32* %378
- %380 = add i32 %379, 1
- store i32 %380, i32* %378
- %.pre405 = load %Value** inttoptr (i32 134824628 to %Value**)
- br label %str_borrow_done101
- str_borrow_done101: ; preds = %if.cont97, %str_not_null99
- %381 = phi %Value* [ %376, %if.cont97 ], [ %.pre405, %str_not_null99 ]
- %382 = bitcast %Value* %381 to %String*
- %383 = getelementptr %String* %382, i32 0, i32 0
- store i32 10, i32* %383
- %384 = getelementptr %String* %382, i32 0, i32 1
- store i8* null, i8** %384
- %385 = getelementptr %String* %382, i32 0, i32 2
- store i32 0, i32* %385
- %386 = getelementptr %String* %382, i32 0, i32 3
- store i32 0, i32* %386
- %387 = getelementptr %Value* %381, i32 1
- store %Value* %387, %Value** inttoptr (i32 134824628 to %Value**)
- store i32 144437588, i32* inttoptr (i32 134824660 to i32*)
- store i8 2, i8* inttoptr (i32 134831632 to i8*)
- store i8* inttoptr (i32 134811484 to i8*), i8** inttoptr (i32 134831628 to i8**)
- store i8* null, i8** inttoptr (i32 134831620 to i8**)
- store i8* inttoptr (i32 142291628 to i8*), i8** inttoptr (i32 134831616 to i8**)
- tail call void @EXEC_native_quick()
- %388 = load %Value** inttoptr (i32 134824628 to %Value**)
- %389 = getelementptr %Value* %388, i32 -1
- %390 = bitcast %Value* %389 to %String*
- %391 = getelementptr %String* %390, i32 0, i32 0
- %392 = load i32* %391
- %393 = getelementptr %String* %390, i32 0, i32 3
- %394 = load i32* %393
- %395 = getelementptr %String* %390, i32 0, i32 2
- %396 = load i32* %395
- %397 = getelementptr %String* %390, i32 0, i32 1
- %398 = load i8** %397
- %399 = insertvalue %String undef, i32 %392, 0
- %400 = insertvalue %String %399, i8* %398, 1
- %401 = insertvalue %String %400, i32 %396, 2
- %402 = insertvalue %String %401, i32 %394, 3
- %403 = icmp eq i32 %392, 12
- br i1 %403, label %bb1102, label %bb2103
- bb1102: ; preds = %str_borrow_done101
- tail call void @abort()
- unreachable
- bb2103: ; preds = %str_borrow_done101
- store %Value* %389, %Value** inttoptr (i32 134824628 to %Value**)
- br i1 %or.cond296, label %str_release_done109, label %str_not_null105
- str_not_null105: ; preds = %bb2103
- %404 = bitcast i8* %182 to i32*
- %405 = getelementptr i32* %404, i32 -2
- %406 = load i32* %405
- %407 = add i32 %406, -1
- store i32 %407, i32* %405
- %408 = icmp slt i32 %407, 1
- br i1 %408, label %release_str106, label %str_release_done109
- release_str106: ; preds = %str_not_null105
- tail call void @STRING_free_real(i8* %182)
- br label %str_release_done109
- str_release_done109: ; preds = %bb2103, %str_not_null105, %release_str106
- %409 = load i8** inttoptr (i32 134824636 to i8**)
- %410 = getelementptr i8* %409, i32 16
- %411 = bitcast i8* %410 to %String*
- %412 = getelementptr %String* %411, i32 0, i32 0
- store i32 %392, i32* %412
- %413 = getelementptr %String* %411, i32 0, i32 1
- store i8* %398, i8** %413
- %414 = getelementptr %String* %411, i32 0, i32 2
- store i32 %396, i32* %414
- %415 = getelementptr %String* %411, i32 0, i32 3
- store i32 %394, i32* %415
- %416 = load i8** inttoptr (i32 134824628 to i8**)
- %417 = load i8** inttoptr (i32 134824636 to i8**)
- %418 = getelementptr i8* %417, i32 112
- %419 = icmp eq i8* %418, %416
- br i1 %419, label %borrow_object_done115, label %if.then110
- if.then110: ; preds = %str_release_done109
- tail call void @stack_corrupted_abort()
- unreachable
- borrow_object_done115: ; preds = %str_release_done109
- %420 = load %Value** inttoptr (i32 134824628 to %Value**)
- %421 = bitcast %Value* %420 to %ValueFunction*
- %422 = getelementptr %ValueFunction* %421, i32 0, i32 0
- store i32 13, i32* %422
- %423 = getelementptr %ValueFunction* %421, i32 0, i32 2
- store i8* null, i8** %423
- %424 = getelementptr %Value* %420, i32 1
- %425 = bitcast %Value* %424 to %ValueObject*
- %426 = getelementptr %ValueObject* %425, i32 0, i32 0
- store i8* %281, i8** %426
- %427 = getelementptr %ValueObject* %425, i32 0, i32 1
- store i8* %283, i8** %427
- %428 = getelementptr %Value* %420, i32 2
- store %Value* %428, %Value** inttoptr (i32 134824628 to %Value**)
- %429 = load i32* %316
- %430 = add i32 %429, 1
- store i32 %430, i32* %316
- %.pre406 = load %Value** inttoptr (i32 134824628 to %Value**)
- %431 = bitcast %Value* %.pre406 to %Boolean*
- %432 = getelementptr %Boolean* %431, i32 0, i32 0
- store i32 1, i32* %432
- %433 = getelementptr %Boolean* %431, i32 0, i32 1
- store i32 -1, i32* %433
- %434 = getelementptr %Value* %.pre406, i32 1
- store %Value* %434, %Value** inttoptr (i32 134824628 to %Value**)
- store i32 144437600, i32* inttoptr (i32 134824660 to i32*)
- store i8 2, i8* inttoptr (i32 134831632 to i8*)
- store i32 7, i32* inttoptr (i32 134831624 to i32*)
- store i8* null, i8** inttoptr (i32 134831620 to i8**)
- store i8* inttoptr (i32 144414908 to i8*), i8** inttoptr (i32 134831616 to i8**)
- tail call void @EXEC_enter()
- tail call void @JR_EXEC_jit_execute_function()
- %435 = load %Value** inttoptr (i32 134824628 to %Value**)
- %436 = getelementptr %Value* %435, i32 -1
- %437 = bitcast %Value* %436 to %ValueObject*
- %438 = bitcast %Value* %436 to %Null*
- %439 = getelementptr %Null* %438, i32 0, i32 0
- %440 = load i32* %439
- %441 = icmp eq i32 %440, 15
- %442 = getelementptr %ValueObject* %437, i32 0, i32 1
- %443 = load i8** %442
- %444 = getelementptr %ValueObject* %437, i32 0, i32 0
- %445 = load i8** %444
- %446 = insertvalue %Object undef, i8* %445, 0
- %447 = insertvalue %Object %446, i8* %443, 1
- %448 = select i1 %441, %Object { i8* inttoptr (i32 144414908 to i8*), i8* null }, %Object %447
- store %Value* %436, %Value** inttoptr (i32 134824628 to %Value**)
- %449 = load i8** inttoptr (i32 134824636 to i8**)
- %450 = getelementptr i8* %449, i32 48
- %451 = bitcast i8* %450 to %ValueObject*
- %452 = extractvalue %Object %448, 0
- %453 = getelementptr %ValueObject* %451, i32 0, i32 0
- store i8* %452, i8** %453
- %454 = extractvalue %Object %448, 1
- %455 = getelementptr %ValueObject* %451, i32 0, i32 1
- store i8* %454, i8** %455
- %456 = load i8** inttoptr (i32 134824628 to i8**)
- %457 = load i8** inttoptr (i32 134824636 to i8**)
- %458 = getelementptr i8* %457, i32 112
- %459 = icmp eq i8* %458, %456
- br i1 %459, label %if.cont121, label %if.then120
- if.then120: ; preds = %borrow_object_done115
- tail call void @stack_corrupted_abort()
- unreachable
- if.cont121: ; preds = %borrow_object_done115
- %460 = icmp ne i8* %454, null
- br i1 %460, label %obj_not_null122, label %borrow_object_done123
- obj_not_null122: ; preds = %if.cont121
- %461 = bitcast i8* %454 to %OBJECT*
- %462 = getelementptr %OBJECT* %461, i32 0, i32 1
- %463 = load i32* %462
- %464 = add i32 %463, 1
- store i32 %464, i32* %462
- br label %borrow_object_done123
- borrow_object_done123: ; preds = %if.cont121, %obj_not_null122
- %465 = icmp eq i32 %.0287, 2
- br i1 %465, label %was_object_ctrl_before124, label %if.cont129
- was_object_ctrl_before124: ; preds = %borrow_object_done123
- %466 = extractvalue %Object %.0, 1
- %467 = icmp eq i8* %466, null
- br i1 %467, label %if.cont129, label %obj_not_null125
- obj_not_null125: ; preds = %was_object_ctrl_before124
- %468 = bitcast i8* %466 to %OBJECT*
- %469 = getelementptr %OBJECT* %468, i32 0, i32 1
- %470 = load i32* %469
- %471 = add i32 %470, -1
- store i32 %471, i32* %469
- %472 = icmp slt i32 %471, 1
- br i1 %472, label %release_obj126, label %if.cont129
- release_obj126: ; preds = %obj_not_null125
- tail call void @CLASS_free(i8* %466)
- br label %if.cont129
- if.cont129: ; preds = %obj_not_null125, %was_object_ctrl_before124, %borrow_object_done123, %release_obj126
- %473 = load i8** inttoptr (i32 134824636 to i8**)
- %474 = getelementptr i8* %473, i32 96
- %475 = bitcast i8* %474 to %ValueObject*
- %476 = getelementptr %ValueObject* %475, i32 0, i32 0
- store i8* %452, i8** %476
- %477 = getelementptr %ValueObject* %475, i32 0, i32 1
- store i8* %454, i8** %477
- %478 = load i8** inttoptr (i32 134824628 to i8**)
- %479 = load i8** inttoptr (i32 134824636 to i8**)
- %480 = getelementptr i8* %479, i32 112
- %481 = icmp eq i8* %480, %478
- br i1 %481, label %not_null141, label %if.then130
- if.then130: ; preds = %if.cont129
- tail call void @stack_corrupted_abort()
- unreachable
- not_null141: ; preds = %if.cont129
- %482 = load i32* %316
- %483 = add i32 %482, 1
- store i32 %483, i32* %316
- %484 = load %Value** inttoptr (i32 134824628 to %Value**)
- %485 = bitcast %Value* %484 to i8*
- %486 = tail call i8 @GB.Collection.Get(i8* %283, i8* inttoptr (i32 144440006 to i8*), i32 15, i8* %485)
- %487 = bitcast %Value* %484 to %ValueVariant*
- %488 = getelementptr %ValueVariant* %487, i32 0, i32 2
- %489 = load i64* %488
- %490 = getelementptr %ValueVariant* %487, i32 0, i32 1
- %491 = load i32* %490
- tail call void @JR_borrow_variant(i32 %491, i64 %489)
- %492 = getelementptr %Value* %484, i32 1
- store %Value* %492, %Value** inttoptr (i32 134824628 to %Value**)
- %493 = load i32* %316
- %494 = add i32 %493, -1
- store i32 %494, i32* %316
- %495 = icmp slt i32 %494, 1
- br i1 %495, label %release_obj148, label %release_done149
- release_obj148: ; preds = %not_null141
- tail call void @CLASS_free(i8* %283)
- br label %release_done149
- release_done149: ; preds = %not_null141, %release_obj148
- %496 = load %Value** inttoptr (i32 134824628 to %Value**)
- %497 = getelementptr %Value* %496, i32 -1
- %498 = bitcast %Value* %497 to i8*
- tail call void @VALUE_convert(i8* %498, i32 9)
- %499 = load %Value** inttoptr (i32 134824628 to %Value**)
- %500 = getelementptr %Value* %499, i32 -1
- %501 = bitcast %Value* %500 to %String*
- %502 = getelementptr %String* %501, i32 0, i32 0
- %503 = load i32* %502
- %504 = getelementptr %String* %501, i32 0, i32 3
- %505 = load i32* %504
- %506 = getelementptr %String* %501, i32 0, i32 2
- %507 = load i32* %506
- %508 = getelementptr %String* %501, i32 0, i32 1
- %509 = load i8** %508
- %510 = icmp eq i32 %503, 12
- br i1 %510, label %bb1150, label %bb2151
- bb1150: ; preds = %release_done149
- tail call void @abort()
- unreachable
- bb2151: ; preds = %release_done149
- br i1 %460, label %obj_not_null152, label %borrow_object_done153
- obj_not_null152: ; preds = %bb2151
- %511 = bitcast i8* %454 to %OBJECT*
- %512 = getelementptr %OBJECT* %511, i32 0, i32 1
- %513 = load i32* %512
- %514 = add i32 %513, 1
- store i32 %514, i32* %512
- br label %borrow_object_done153
- borrow_object_done153: ; preds = %bb2151, %obj_not_null152
- %515 = ptrtoint i8* %452 to i32
- %516 = icmp eq i32 %515, 15
- br i1 %516, label %if.then154, label %if.cont161
- if.then154: ; preds = %borrow_object_done153
- %517 = icmp ne i32 %503, 9
- %518 = icmp eq i8* %509, null
- %or.cond301 = or i1 %517, %518
- br i1 %or.cond301, label %str_release_done160, label %str_not_null156
- str_not_null156: ; preds = %if.then154
- %519 = bitcast i8* %509 to i32*
- %520 = getelementptr i32* %519, i32 -2
- %521 = load i32* %520
- %522 = add i32 %521, -1
- store i32 %522, i32* %520
- %523 = icmp slt i32 %522, 1
- br i1 %523, label %release_str157, label %str_release_done160
- release_str157: ; preds = %str_not_null156
- tail call void @STRING_free_real(i8* %509)
- br label %str_release_done160
- str_release_done160: ; preds = %if.then154, %str_not_null156, %release_str157
- tail call void (i32, ...)* @THROW(i32 13)
- unreachable
- if.cont161: ; preds = %borrow_object_done153
- %524 = icmp eq i8* %454, null
- br i1 %524, label %is_null162, label %not_null169
- is_null162: ; preds = %if.cont161
- %525 = icmp ne i32 %503, 9
- %526 = icmp eq i8* %509, null
- %or.cond302 = or i1 %525, %526
- br i1 %or.cond302, label %str_release_done168, label %str_not_null164
- str_not_null164: ; preds = %is_null162
- %527 = bitcast i8* %509 to i32*
- %528 = getelementptr i32* %527, i32 -2
- %529 = load i32* %528
- %530 = add i32 %529, -1
- store i32 %530, i32* %528
- %531 = icmp slt i32 %530, 1
- br i1 %531, label %release_str165, label %str_release_done168
- release_str165: ; preds = %str_not_null164
- tail call void @STRING_free_real(i8* %509)
- br label %str_release_done168
- str_release_done168: ; preds = %is_null162, %str_not_null164, %release_str165
- tail call void (i32, ...)* @THROW(i32 13)
- unreachable
- not_null169: ; preds = %if.cont161
- %532 = bitcast i8* %454 to %OBJECT*
- %533 = getelementptr %OBJECT* %532, i32 0, i32 0
- %534 = load i8** %533
- %535 = getelementptr i8* %534, i32 28
- %536 = bitcast i8* %535 to i8**
- %537 = load i8** %536
- %538 = getelementptr i8* %537, i32 260
- %539 = bitcast i8* %538 to i8**
- %540 = load i8** %539
- %541 = getelementptr i8* %540, i32 8
- %542 = bitcast i8* %541 to i32*
- %543 = load i32* %542
- %544 = getelementptr i8* %454, i32 %543
- %545 = bitcast i8* %544 to i8**
- %546 = load i8** %545
- %547 = icmp eq i8* %546, null
- br i1 %547, label %unref_done173, label %str_not_null170
- str_not_null170: ; preds = %not_null169
- %548 = bitcast i8* %546 to i32*
- %549 = getelementptr i32* %548, i32 -2
- %550 = load i32* %549
- %551 = add i32 %550, -1
- store i32 %551, i32* %549
- %552 = icmp slt i32 %551, 1
- br i1 %552, label %release_str171, label %unref_done173
- release_str171: ; preds = %str_not_null170
- tail call void @STRING_free_real(i8* %546)
- br label %unref_done173
- unref_done173: ; preds = %not_null169, %release_str171, %str_not_null170
- %553 = icmp eq i32 %505, 0
- br i1 %553, label %if.cont181, label %if.then174
- if.then174: ; preds = %unref_done173
- %554 = icmp eq i32 %503, 9
- %555 = icmp eq i32 %507, 0
- %556 = and i1 %554, %555
- br i1 %556, label %and_if, label %if.then175
- and_if: ; preds = %if.then174
- %557 = getelementptr i8* %509, i32 -4
- %558 = bitcast i8* %557 to i32*
- %559 = load i32* %558
- %phitmp294 = icmp eq i32 %559, %505
- br i1 %phitmp294, label %if.cont181, label %if.then175
- if.then175: ; preds = %and_if, %if.then174
- %560 = getelementptr i8* %509, i32 %507
- %561 = tail call i8* @STRING_new(i8* %560, i32 %505)
- %562 = tail call i8* @STRING_free_later(i8* %561)
- br i1 %554, label %if.then176, label %if.cont179
- if.then176: ; preds = %if.then175
- %563 = bitcast i8* %509 to i32*
- %564 = getelementptr i32* %563, i32 -2
- %565 = load i32* %564
- %566 = add i32 %565, -1
- store i32 %566, i32* %564
- %567 = icmp slt i32 %566, 1
- br i1 %567, label %release_str177, label %if.cont179
- release_str177: ; preds = %if.then176
- tail call void @STRING_free_real(i8* %509)
- br label %if.cont179
- if.cont179: ; preds = %release_str177, %if.then176, %if.then175
- %568 = bitcast i8* %562 to i32*
- %569 = getelementptr i32* %568, i32 -2
- %570 = load i32* %569
- %571 = add i32 %570, 1
- store i32 %571, i32* %569
- br label %if.cont181
- if.cont181: ; preds = %and_if, %unref_done173, %if.cont179
- %572 = phi i8* [ null, %unref_done173 ], [ %562, %if.cont179 ], [ %509, %and_if ]
- store i8* %572, i8** %545
- %573 = getelementptr %OBJECT* %532, i32 0, i32 1
- %574 = load i32* %573
- %575 = add i32 %574, -1
- store i32 %575, i32* %573
- %576 = icmp slt i32 %575, 1
- br i1 %576, label %release_obj182, label %release_done183
- release_obj182: ; preds = %if.cont181
- tail call void @CLASS_free(i8* %454)
- br label %release_done183
- release_done183: ; preds = %if.cont181, %release_obj182
- %577 = load %Value** inttoptr (i32 134824628 to %Value**)
- %578 = getelementptr %Value* %577, i32 -1
- store %Value* %578, %Value** inttoptr (i32 134824628 to %Value**)
- %579 = load i8** inttoptr (i32 134824628 to i8**)
- %580 = load i8** inttoptr (i32 134824636 to i8**)
- %581 = getelementptr i8* %580, i32 112
- %582 = icmp eq i8* %581, %579
- br i1 %582, label %if.cont185, label %if.then184
- if.then184: ; preds = %release_done183
- tail call void @stack_corrupted_abort()
- unreachable
- if.cont185: ; preds = %release_done183
- %583 = load i8** inttoptr (i32 144415652 to i8**)
- %584 = icmp eq i8* %583, null
- br i1 %584, label %if.cont187, label %if.then186
- if.then186: ; preds = %if.cont185
- %585 = bitcast i8* %583 to i32*
- %586 = getelementptr i32* %585, i32 -2
- %587 = load i32* %586
- %588 = add i32 %587, 1
- store i32 %588, i32* %586
- %589 = getelementptr i8* %583, i32 -4
- %590 = bitcast i8* %589 to i32*
- %591 = load i32* %590
- %592 = insertvalue %String { i32 9, i8* undef, i32 undef, i32 undef }, i8* %583, 1
- %593 = insertvalue %String %592, i32 0, 2
- %594 = insertvalue %String %593, i32 %591, 3
- %.pre407 = load %Value** inttoptr (i32 134824628 to %Value**)
- br label %if.cont187
- if.cont187: ; preds = %if.cont185, %if.then186
- %595 = phi %Value* [ %.pre407, %if.then186 ], [ %578, %if.cont185 ]
- %596 = phi %String [ %594, %if.then186 ], [ { i32 10, i8* null, i32 0, i32 0 }, %if.cont185 ]
- %597 = bitcast %Value* %595 to %String*
- %598 = extractvalue %String %596, 0
- %599 = getelementptr %String* %597, i32 0, i32 0
- store i32 %598, i32* %599
- %600 = extractvalue %String %596, 1
- %601 = getelementptr %String* %597, i32 0, i32 1
- store i8* %600, i8** %601
- %602 = extractvalue %String %596, 2
- %603 = getelementptr %String* %597, i32 0, i32 2
- store i32 %602, i32* %603
- %604 = extractvalue %String %596, 3
- %605 = getelementptr %String* %597, i32 0, i32 3
- store i32 %604, i32* %605
- %606 = getelementptr %Value* %595, i32 1
- %607 = bitcast %Value* %606 to %ValueFunction*
- %608 = getelementptr %ValueFunction* %607, i32 0, i32 0
- store i32 13, i32* %608
- %609 = getelementptr %ValueFunction* %607, i32 0, i32 1
- store i8* inttoptr (i32 142291628 to i8*), i8** %609
- %610 = getelementptr %ValueFunction* %607, i32 0, i32 2
- store i8* null, i8** %610
- %611 = getelementptr %Value* %595, i32 2
- %612 = bitcast %Value* %611 to %String*
- %613 = getelementptr %String* %612, i32 0, i32 0
- store i32 %392, i32* %613
- %614 = getelementptr %String* %612, i32 0, i32 1
- store i8* %398, i8** %614
- %615 = getelementptr %String* %612, i32 0, i32 2
- store i32 %396, i32* %615
- %616 = getelementptr %String* %612, i32 0, i32 3
- store i32 %394, i32* %616
- %617 = getelementptr %Value* %595, i32 3
- store %Value* %617, %Value** inttoptr (i32 134824628 to %Value**)
- %618 = icmp ne i32 %392, 9
- %619 = icmp eq i8* %398, null
- %or.cond303 = or i1 %618, %619
- br i1 %or.cond303, label %str_borrow_done191, label %str_not_null189
- str_not_null189: ; preds = %if.cont187
- %620 = bitcast i8* %398 to i32*
- %621 = getelementptr i32* %620, i32 -2
- %622 = load i32* %621
- %623 = add i32 %622, 1
- store i32 %623, i32* %621
- %.pre408 = load %Value** inttoptr (i32 134824628 to %Value**)
- br label %str_borrow_done191
- str_borrow_done191: ; preds = %if.cont187, %str_not_null189
- %624 = phi %Value* [ %617, %if.cont187 ], [ %.pre408, %str_not_null189 ]
- %625 = bitcast %Value* %624 to %String*
- %626 = getelementptr %String* %625, i32 0, i32 0
- store i32 10, i32* %626
- %627 = getelementptr %String* %625, i32 0, i32 1
- store i8* inttoptr (i32 144440149 to i8*), i8** %627
- %628 = getelementptr %String* %625, i32 0, i32 2
- store i32 0, i32* %628
- %629 = getelementptr %String* %625, i32 0, i32 3
- store i32 6, i32* %629
- %630 = getelementptr %Value* %624, i32 1
- store %Value* %630, %Value** inttoptr (i32 134824628 to %Value**)
- store i32 144437642, i32* inttoptr (i32 134824660 to i32*)
- store i8 2, i8* inttoptr (i32 134831632 to i8*)
- store i8* inttoptr (i32 134811484 to i8*), i8** inttoptr (i32 134831628 to i8**)
- store i8* null, i8** inttoptr (i32 134831620 to i8**)
- store i8* inttoptr (i32 142291628 to i8*), i8** inttoptr (i32 134831616 to i8**)
- tail call void @EXEC_native_quick()
- tail call void @SUBR_file(i16 2)
- %631 = load %Value** inttoptr (i32 134824628 to %Value**)
- %632 = getelementptr %Value* %631, i32 -1
- %633 = bitcast %Value* %632 to %String*
- %634 = getelementptr %String* %633, i32 0, i32 0
- %635 = load i32* %634
- %636 = getelementptr %String* %633, i32 0, i32 3
- %637 = load i32* %636
- %638 = getelementptr %String* %633, i32 0, i32 2
- %639 = load i32* %638
- %640 = getelementptr %String* %633, i32 0, i32 1
- %641 = load i8** %640
- %642 = icmp eq i32 %635, 12
- br i1 %642, label %bb1192, label %not_null211
- bb1192: ; preds = %str_borrow_done191
- tail call void @abort()
- unreachable
- not_null211: ; preds = %str_borrow_done191
- %643 = load i32* %573
- %644 = add i32 %643, 1
- store i32 %644, i32* %573
- %645 = load i8** %533
- %646 = getelementptr i8* %645, i32 28
- %647 = bitcast i8* %646 to i8**
- %648 = load i8** %647
- %649 = getelementptr i8* %648, i32 272
- %650 = bitcast i8* %649 to i8**
- %651 = load i8** %650
- %652 = getelementptr i8* %651, i32 8
- %653 = bitcast i8* %652 to i32*
- %654 = load i32* %653
- %655 = getelementptr i8* %454, i32 %654
- %656 = bitcast i8* %655 to i8**
- %657 = load i8** %656
- %658 = icmp eq i8* %657, null
- br i1 %658, label %unref_done215, label %str_not_null212
- str_not_null212: ; preds = %not_null211
- %659 = bitcast i8* %657 to i32*
- %660 = getelementptr i32* %659, i32 -2
- %661 = load i32* %660
- %662 = add i32 %661, -1
- store i32 %662, i32* %660
- %663 = icmp slt i32 %662, 1
- br i1 %663, label %release_str213, label %unref_done215
- release_str213: ; preds = %str_not_null212
- tail call void @STRING_free_real(i8* %657)
- br label %unref_done215
- unref_done215: ; preds = %not_null211, %release_str213, %str_not_null212
- %664 = icmp eq i32 %637, 0
- br i1 %664, label %if.cont225, label %if.then216
- if.then216: ; preds = %unref_done215
- %665 = icmp eq i32 %635, 9
- %666 = icmp eq i32 %639, 0
- %667 = and i1 %665, %666
- br i1 %667, label %and_if217, label %if.then219
- and_if217: ; preds = %if.then216
- %668 = getelementptr i8* %641, i32 -4
- %669 = bitcast i8* %668 to i32*
- %670 = load i32* %669
- %phitmp = icmp eq i32 %670, %637
- br i1 %phitmp, label %if.cont225, label %if.then219
- if.then219: ; preds = %and_if217, %if.then216
- %671 = getelementptr i8* %641, i32 %639
- %672 = tail call i8* @STRING_new(i8* %671, i32 %637)
- %673 = tail call i8* @STRING_free_later(i8* %672)
- br i1 %665, label %if.then220, label %if.cont223
- if.then220: ; preds = %if.then219
- %674 = bitcast i8* %641 to i32*
- %675 = getelementptr i32* %674, i32 -2
- %676 = load i32* %675
- %677 = add i32 %676, -1
- store i32 %677, i32* %675
- %678 = icmp slt i32 %677, 1
- br i1 %678, label %release_str221, label %if.cont223
- release_str221: ; preds = %if.then220
- tail call void @STRING_free_real(i8* %641)
- br label %if.cont223
- if.cont223: ; preds = %release_str221, %if.then220, %if.then219
- %679 = bitcast i8* %673 to i32*
- %680 = getelementptr i32* %679, i32 -2
- %681 = load i32* %680
- %682 = add i32 %681, 1
- store i32 %682, i32* %680
- br label %if.cont225
- if.cont225: ; preds = %and_if217, %unref_done215, %if.cont223
- %683 = phi i8* [ null, %unref_done215 ], [ %673, %if.cont223 ], [ %641, %and_if217 ]
- store i8* %683, i8** %656
- %684 = load i32* %573
- %685 = add i32 %684, -1
- store i32 %685, i32* %573
- %686 = icmp slt i32 %685, 1
- br i1 %686, label %release_obj226, label %release_done227
- release_obj226: ; preds = %if.cont225
- tail call void @CLASS_free(i8* %454)
- br label %release_done227
- release_done227: ; preds = %if.cont225, %release_obj226
- %687 = load %Value** inttoptr (i32 134824628 to %Value**)
- %688 = getelementptr %Value* %687, i32 -1
- store %Value* %688, %Value** inttoptr (i32 134824628 to %Value**)
- %689 = load i8** inttoptr (i32 134824628 to i8**)
- %690 = load i8** inttoptr (i32 134824636 to i8**)
- %691 = getelementptr i8* %690, i32 112
- %692 = icmp eq i8* %691, %689
- br i1 %692, label %not_null235, label %if.then228
- if.then228: ; preds = %release_done227
- tail call void @stack_corrupted_abort()
- unreachable
- not_null235: ; preds = %release_done227
- %693 = load i32* %573
- %694 = add i32 %693, 1
- store i32 %694, i32* %573
- %695 = load i8** %533
- %696 = getelementptr i8* %695, i32 28
- %697 = bitcast i8* %696 to i8**
- %698 = load i8** %697
- %699 = getelementptr i8* %698, i32 140
- %700 = bitcast i8* %699 to i8**
- %701 = load i8** %700
- %702 = getelementptr i8* %701, i32 8
- %703 = bitcast i8* %702 to i32*
- %704 = load i32* %703
- %705 = getelementptr i8* %454, i32 %704
- store i8 -1, i8* %705
- %706 = load i32* %573
- %707 = add i32 %706, -1
- store i32 %707, i32* %573
- %708 = icmp slt i32 %707, 1
- br i1 %708, label %release_obj236, label %release_done237
- release_obj236: ; preds = %not_null235
- tail call void @CLASS_free(i8* %454)
- br label %release_done237
- release_done237: ; preds = %not_null235, %release_obj236
- %709 = load i8** inttoptr (i32 134824628 to i8**)
- %710 = load i8** inttoptr (i32 134824636 to i8**)
- %711 = getelementptr i8* %710, i32 112
- %712 = icmp eq i8* %711, %709
- br i1 %712, label %borrow_object_done241, label %if.then238
- if.then238: ; preds = %release_done237
- tail call void @stack_corrupted_abort()
- unreachable
- borrow_object_done241: ; preds = %release_done237
- %713 = load %Value** inttoptr (i32 134824628 to %Value**)
- %714 = bitcast %Value* %713 to %ValueFunction*
- %715 = getelementptr %ValueFunction* %714, i32 0, i32 0
- store i32 13, i32* %715
- %716 = getelementptr %ValueFunction* %714, i32 0, i32 1
- store i8* inttoptr (i32 143051428 to i8*), i8** %716
- %717 = getelementptr %ValueFunction* %714, i32 0, i32 2
- store i8* null, i8** %717
- %718 = getelementptr %Value* %713, i32 1
- %719 = bitcast %Value* %718 to %ValueObject*
- %720 = getelementptr %ValueObject* %719, i32 0, i32 0
- store i8* %452, i8** %720
- %721 = getelementptr %ValueObject* %719, i32 0, i32 1
- store i8* %454, i8** %721
- %722 = getelementptr %Value* %713, i32 2
- store %Value* %722, %Value** inttoptr (i32 134824628 to %Value**)
- %723 = load i32* %573
- %724 = add i32 %723, 1
- store i32 %724, i32* %573
- store i32 144437672, i32* inttoptr (i32 134824660 to i32*)
- store i8 1, i8* inttoptr (i32 134831632 to i8*)
- tail call void @JR_exec_enter_quick(i8* inttoptr (i32 143051428 to i8*), i8* null, i32 12)
- %725 = load %Value** inttoptr (i32 134824628 to %Value**)
- %726 = getelementptr %Value* %725, i32 -1
- store %Value* %726, %Value** inttoptr (i32 134824628 to %Value**)
- %727 = load i8** inttoptr (i32 134824628 to i8**)
- %728 = load i8** inttoptr (i32 134824636 to i8**)
- %729 = getelementptr i8* %728, i32 112
- %730 = icmp eq i8* %729, %727
- br i1 %730, label %if.cont243, label %if.then242
- if.then242: ; preds = %borrow_object_done241
- tail call void @stack_corrupted_abort()
- unreachable
- if.cont243: ; preds = %borrow_object_done241
- %731 = load i8** inttoptr (i32 144415616 to i8**)
- %732 = icmp eq i8* %731, null
- br i1 %732, label %is_null246, label %not_null259
- is_null246: ; preds = %if.cont243
- tail call void (i32, ...)* @THROW(i32 13)
- unreachable
- not_null259: ; preds = %if.cont243
- %733 = bitcast i8* %731 to %OBJECT*
- %734 = getelementptr %OBJECT* %733, i32 0, i32 1
- %735 = load i32* %734
- %736 = add i32 %735, 1
- store i32 %736, i32* %734
- %737 = getelementptr %OBJECT* %733, i32 0, i32 0
- %738 = load i8** %737
- %739 = bitcast i8* %738 to i8**
- %740 = getelementptr i8** %739, i32 7
- %741 = load i8** %740
- %742 = getelementptr i8* %741, i32 68
- %743 = bitcast i8* %742 to i8**
- %744 = load i8** %743
- %745 = getelementptr i8* %744, i32 19
- %746 = load i8* %745
- %747 = shl i8 %746, 1
- %748 = and i8 %747, 2
- %749 = xor i8 %748, 3
- %750 = load %Value** inttoptr (i32 134824628 to %Value**)
- %751 = bitcast %Value* %750 to %ValueFunction*
- %752 = getelementptr %ValueFunction* %751, i32 0, i32 0
- store i32 13, i32* %752
- %753 = getelementptr %ValueFunction* %751, i32 0, i32 2
- store i8* %731, i8** %753
- %754 = getelementptr %ValueFunction* %751, i32 0, i32 3
- store i8 %749, i8* %754
- %755 = getelementptr %Value* %750, i32 1
- store %Value* %755, %Value** inttoptr (i32 134824628 to %Value**)
- %756 = load i32* %573
- %757 = add i32 %756, 1
- store i32 %757, i32* %573
- %.pre409 = load %Value** inttoptr (i32 134824628 to %Value**)
- %758 = getelementptr %Value* %.pre409, i32 1
- store %Value* %758, %Value** inttoptr (i32 134824628 to %Value**)
- %759 = getelementptr inbounds %Value* %.pre409, i32 0, i32 0
- store i32 12, i32* %759
- %760 = getelementptr i32* %759, i32 1
- store i32 %515, i32* %760
- %761 = getelementptr i32* %759, i32 2
- %762 = bitcast i32* %761 to i8**
- store i8* %454, i8** %762
- %763 = load i32* %316
- %764 = add i32 %763, 1
- store i32 %764, i32* %316
- %765 = load %Value** inttoptr (i32 134824628 to %Value**)
- %766 = bitcast %Value* %765 to i8*
- %767 = tail call i8 @GB.Collection.Get(i8* %283, i8* inttoptr (i32 144439784 to i8*), i32 4, i8* %766)
- %768 = bitcast %Value* %765 to %ValueVariant*
- %769 = getelementptr %ValueVariant* %768, i32 0, i32 2
- %770 = load i64* %769
- %771 = getelementptr %ValueVariant* %768, i32 0, i32 1
- %772 = load i32* %771
- tail call void @JR_borrow_variant(i32 %772, i64 %770)
- %773 = getelementptr %Value* %765, i32 1
- store %Value* %773, %Value** inttoptr (i32 134824628 to %Value**)
- %774 = load i32* %316
- %775 = add i32 %774, -1
- store i32 %775, i32* %316
- %776 = icmp slt i32 %775, 1
- br i1 %776, label %release_obj266, label %release_done267
- release_obj266: ; preds = %not_null259
- tail call void @CLASS_free(i8* %283)
- br label %release_done267
- release_done267: ; preds = %not_null259, %release_obj266
- %777 = load %Value** inttoptr (i32 134824628 to %Value**)
- %778 = getelementptr %Value* %777, i32 -1
- %779 = bitcast %Value* %778 to i8*
- tail call void @VALUE_convert(i8* %779, i32 9)
- %780 = load %Value** inttoptr (i32 134824628 to %Value**)
- %781 = getelementptr %Value* %780, i32 -1
- %782 = bitcast %Value* %781 to %String*
- %783 = getelementptr %String* %782, i32 0, i32 0
- %784 = load i32* %783
- %785 = icmp eq i32 %784, 12
- br i1 %785, label %bb1268, label %bb2269
- bb1268: ; preds = %release_done267
- tail call void @abort()
- unreachable
- bb2269: ; preds = %release_done267
- store i32 144437696, i32* inttoptr (i32 134824660 to i32*)
- store i8 2, i8* inttoptr (i32 134831632 to i8*)
- %786 = icmp eq i8 %748, 0
- br i1 %786, label %if.then270, label %if.else271
- if.then270: ; preds = %bb2269
- tail call void @JR_exec_enter_quick(i8* %738, i8* %731, i32 5)
- br label %if.cont272
- if.else271: ; preds = %bb2269
- store i8* inttoptr (i32 134808556 to i8*), i8** inttoptr (i32 134831628 to i8**)
- store i8* %731, i8** inttoptr (i32 134831620 to i8**)
- store i8* %738, i8** inttoptr (i32 134831616 to i8**)
- tail call void @EXEC_native_quick()
- br label %if.cont272
- if.cont272: ; preds = %if.else271, %if.then270
- %787 = load %Value** inttoptr (i32 134824628 to %Value**)
- %788 = getelementptr %Value* %787, i32 -1
- store %Value* %788, %Value** inttoptr (i32 134824628 to %Value**)
- %789 = load i8** inttoptr (i32 134824628 to i8**)
- %790 = load i8** inttoptr (i32 134824636 to i8**)
- %791 = getelementptr i8* %790, i32 112
- %792 = icmp eq i8* %791, %789
- br i1 %792, label %obj_not_null275, label %if.then273
- if.then273: ; preds = %if.cont272
- tail call void @stack_corrupted_abort()
- unreachable
- obj_not_null275: ; preds = %if.cont272
- %793 = load i32* %573
- %794 = add i32 %793, -1
- store i32 %794, i32* %573
- %795 = icmp slt i32 %794, 1
- br i1 %795, label %release_obj276, label %unref_done278
- release_obj276: ; preds = %obj_not_null275
- tail call void @CLASS_free(i8* %454)
- br label %unref_done278
- unref_done278: ; preds = %obj_not_null275, %release_obj276
- %796 = load i8** inttoptr (i32 134824636 to i8**)
- %797 = getelementptr i8* %796, i32 48
- %798 = bitcast i8* %797 to %ValueObject*
- %799 = getelementptr %ValueObject* %798, i32 0, i32 0
- store i8* inttoptr (i32 144414908 to i8*), i8** %799
- %800 = getelementptr %ValueObject* %798, i32 0, i32 1
- store i8* null, i8** %800
- %.pre410 = load i8** inttoptr (i32 134824628 to i8**)
- %.pre411 = load i8** inttoptr (i32 134824636 to i8**)
- br label %block279
- block279: ; preds = %if.cont91, %unref_done278
- %801 = phi i8* [ %364, %if.cont91 ], [ %.pre411, %unref_done278 ]
- %802 = phi i8* [ %363, %if.cont91 ], [ %.pre410, %unref_done278 ]
- %.1293 = phi %String [ %186, %if.cont91 ], [ %402, %unref_done278 ]
- %.1288 = phi i32 [ %.0287, %if.cont91 ], [ 2, %unref_done278 ]
- %.1 = phi %Object [ %.0, %if.cont91 ], [ %448, %unref_done278 ]
- %803 = getelementptr i8* %801, i32 112
- %804 = icmp eq i8* %803, %802
- br i1 %804, label %block31, label %if.then280
- if.then280: ; preds = %block279
- tail call void @stack_corrupted_abort()
- unreachable
- block283: ; preds = %block31, %if.cont40.block283_crit_edge
- %805 = load i8** inttoptr (i32 134824628 to i8**)
- %806 = load i8** inttoptr (i32 134824636 to i8**)
- %807 = getelementptr i8* %806, i32 112
- %808 = icmp eq i8* %807, %805
- br i1 %808, label %return, label %if.then284
- if.then284: ; preds = %block283
- tail call void @stack_corrupted_abort()
- unreachable
- return: ; preds = %block283, %release_done11
- store i32 0, i32* getelementptr (%Void* inttoptr (i32 134831572 to %Void*), i32 0, i32 0)
- tail call void @EXEC_leave_keep()
- ret void
- }
- declare void @stack_corrupted_abort()
- declare void @SUBR_dir(i16)
- declare void @CLASS_free(i8*)
- declare void @THROW(i32, ...)
- declare i8 @EXEC_call_native(i8*, i8*, i32, i8*)
- declare void @ERROR_propagate()
- declare void @EXEC_function_real()
- declare i8* @CENUM_create(i8*)
- declare i8 @EXEC_special(i32, i8*, i8*, i32, i8)
- declare void @abort()
- declare void @STRING_free_real(i8*)
- declare void @SUBR_file(i16)
- declare void @EXEC_native_quick()
- declare void @JR_exec_enter_quick(i8*, i8*, i32)
- declare void @VALUE_convert(i8*, i32)
- declare i8 @GB.Collection.Get(i8*, i8*, i32, i8*)
- declare void @JR_borrow_variant(i32, i64)
- declare void @EXEC_native()
- declare void @EXEC_enter()
- declare void @JR_EXEC_jit_execute_function()
- declare i8* @STRING_new(i8*, i32)
- declare i8* @STRING_free_later(i8*)
- declare void @EXEC_leave_keep()
- ------------------------------------------------------------------------
- ------------------------------------------------------------------------
- gb.jit: beginning compiling Module.Load_From_JSON:
- ------------------------------------------------------------------------
- ------------------------------------------------------------------------
- gb.jit: dumping function Module.Load_From_JSON:
- ------------------------------------------------------------------------
- ; ModuleID = 'jit_mod'
- target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S128"
- target triple = "i386-unknown-linux-gnu"
- %ValueVariant = type { i32, i32, i64 }
- %Variant = type <{ i32, i64 }>
- %Boolean = type { i32, i32 }
- %Value = type { i32, i32, i32, i32 }
- %ValueObject = type { i8*, i8*, i8* }
- %Null = type { i32 }
- %Object = type { i8*, i8* }
- %ValueFunction = type { i32, i8*, i8*, i8, i8, i16 }
- %String = type { i32, i8*, i32, i32 }
- %Class = type { i32, i8* }
- %OBJECT = type { i8*, i32 }
- define void @func_1_Module_7() {
- entry:
- %0 = load i8** inttoptr (i32 134824640 to i8**)
- %1 = getelementptr i8* %0, i32 -32
- %2 = bitcast i8* %1 to %ValueVariant*
- %3 = getelementptr %ValueVariant* %2, i32 0, i32 2
- %4 = load i64* %3
- %5 = getelementptr %ValueVariant* %2, i32 0, i32 1
- %6 = load i32* %5
- %7 = insertvalue %Variant undef, i32 %6, 0
- %8 = insertvalue %Variant %7, i64 %4, 1
- %9 = getelementptr %ValueVariant* %2, i32 0, i32 0
- %10 = load i32* %9
- %11 = icmp ne i32 %10, 15
- %12 = select i1 %11, %Variant %8, %Variant <{ i32 15, i64 undef }>
- %13 = getelementptr i8* %0, i32 -16
- %14 = bitcast i8* %13 to %Boolean*
- %15 = getelementptr %Boolean* %14, i32 0, i32 1
- %16 = load i32* %15
- %17 = icmp ne i32 %16, 0
- %18 = bitcast i8* %13 to i32*
- %19 = load i32* %18
- %20 = icmp eq i32 %19, 0
- br i1 %20, label %not_passed, label %passed_or_done
- not_passed: ; preds = %entry
- %21 = getelementptr %Boolean* %14, i32 0, i32 0
- store i32 1, i32* %21
- store i32 0, i32* %15
- br label %passed_or_done
- passed_or_done: ; preds = %entry, %not_passed
- %.0 = phi i1 [ false, %not_passed ], [ %17, %entry ]
- %22 = load i8** inttoptr (i32 134824628 to i8**)
- %23 = load i8** inttoptr (i32 134824636 to i8**)
- %24 = getelementptr i8* %23, i32 48
- %25 = icmp eq i8* %24, %22
- br i1 %25, label %if.cont, label %if.then
- if.then: ; preds = %passed_or_done
- tail call void @stack_corrupted_abort()
- unreachable
- if.cont: ; preds = %passed_or_done
- %26 = load %Value** inttoptr (i32 134824628 to %Value**)
- br i1 %.0, label %if.cont2, label %if.cont6
- if.cont2: ; preds = %if.cont
- %27 = bitcast %Value* %26 to %ValueVariant*
- %28 = getelementptr %ValueVariant* %27, i32 0, i32 0
- store i32 12, i32* %28
- %29 = extractvalue %Variant %12, 0
- %30 = getelementptr %ValueVariant* %27, i32 0, i32 1
- store i32 %29, i32* %30
- %31 = extractvalue %Variant %12, 1
- %32 = getelementptr %ValueVariant* %27, i32 0, i32 2
- store i64 %31, i64* %32
- %33 = getelementptr %Value* %26, i32 1
- store %Value* %33, %Value** inttoptr (i32 134824628 to %Value**)
- tail call void @JR_borrow_variant(i32 %29, i64 %31)
- %34 = load %Value** inttoptr (i32 134824628 to %Value**)
- %35 = getelementptr %Value* %34, i32 -1
- %36 = bitcast %Value* %35 to i8*
- tail call void @VALUE_convert(i8* %36, i32 142289596)
- %37 = load %Value** inttoptr (i32 134824628 to %Value**)
- %38 = getelementptr %Value* %37, i32 -1
- %39 = bitcast %Value* %38 to %ValueObject*
- %40 = bitcast %Value* %38 to %Null*
- %41 = getelementptr %Null* %40, i32 0, i32 0
- %42 = load i32* %41
- %43 = icmp eq i32 %42, 15
- %44 = getelementptr %ValueObject* %39, i32 0, i32 1
- %45 = load i8** %44
- %46 = getelementptr %ValueObject* %39, i32 0, i32 0
- %47 = load i8** %46
- %48 = insertvalue %Object undef, i8* %47, 0
- %49 = insertvalue %Object %48, i8* %45, 1
- %50 = select i1 %43, %Object { i8* inttoptr (i32 142289596 to i8*), i8* null }, %Object %49
- store %Value* %38, %Value** inttoptr (i32 134824628 to %Value**)
- %51 = load i8** inttoptr (i32 134824636 to i8**)
- %52 = getelementptr i8* %51, i32 16
- %53 = bitcast i8* %52 to %ValueObject*
- %54 = extractvalue %Object %50, 0
- %55 = getelementptr %ValueObject* %53, i32 0, i32 0
- store i8* %54, i8** %55
- %56 = extractvalue %Object %50, 1
- %57 = getelementptr %ValueObject* %53, i32 0, i32 1
- store i8* %56, i8** %57
- br label %block11
- if.cont6: ; preds = %if.cont
- %58 = bitcast %Value* %26 to %ValueFunction*
- %59 = getelementptr %ValueFunction* %58, i32 0, i32 0
- store i32 13, i32* %59
- %60 = getelementptr %ValueFunction* %58, i32 0, i32 1
- store i8* inttoptr (i32 143005620 to i8*), i8** %60
- %61 = getelementptr %ValueFunction* %58, i32 0, i32 2
- store i8* null, i8** %61
- %62 = getelementptr %Value* %26, i32 1
- %63 = bitcast %Value* %62 to %ValueVariant*
- %64 = getelementptr %ValueVariant* %63, i32 0, i32 0
- store i32 12, i32* %64
- %65 = extractvalue %Variant %12, 0
- %66 = getelementptr %ValueVariant* %63, i32 0, i32 1
- store i32 %65, i32* %66
- %67 = extractvalue %Variant %12, 1
- %68 = getelementptr %ValueVariant* %63, i32 0, i32 2
- store i64 %67, i64* %68
- %69 = getelementptr %Value* %26, i32 2
- store %Value* %69, %Value** inttoptr (i32 134824628 to %Value**)
- tail call void @JR_borrow_variant(i32 %65, i64 %67)
- %70 = load %Value** inttoptr (i32 134824628 to %Value**)
- %71 = getelementptr %Value* %70, i32 -1
- %72 = bitcast %Value* %71 to i8*
- tail call void @VALUE_convert(i8* %72, i32 9)
- %73 = load %Value** inttoptr (i32 134824628 to %Value**)
- %74 = getelementptr %Value* %73, i32 -1
- %75 = bitcast %Value* %74 to %String*
- %76 = getelementptr %String* %75, i32 0, i32 0
- %77 = load i32* %76
- %78 = icmp eq i32 %77, 12
- br i1 %78, label %bb1, label %bb2
- bb1: ; preds = %if.cont6
- tail call void @abort()
- unreachable
- bb2: ; preds = %if.cont6
- store i32 144437752, i32* inttoptr (i32 134824660 to i32*)
- store i8 1, i8* inttoptr (i32 134831632 to i8*)
- tail call void @JR_exec_enter_quick(i8* inttoptr (i32 143005620 to i8*), i8* null, i32 0)
- %79 = load %Value** inttoptr (i32 134824628 to %Value**)
- %80 = getelementptr %Value* %79, i32 -1
- %81 = bitcast %Value* %80 to i8*
- tail call void @VALUE_convert(i8* %81, i32 142289596)
- %82 = load %Value** inttoptr (i32 134824628 to %Value**)
- %83 = getelementptr %Value* %82, i32 -1
- %84 = bitcast %Value* %83 to %ValueObject*
- %85 = bitcast %Value* %83 to %Null*
- %86 = getelementptr %Null* %85, i32 0, i32 0
- %87 = load i32* %86
- %88 = icmp eq i32 %87, 15
- %89 = getelementptr %ValueObject* %84, i32 0, i32 1
- %90 = load i8** %89
- %91 = getelementptr %ValueObject* %84, i32 0, i32 0
- %92 = load i8** %91
- %93 = insertvalue %Object undef, i8* %92, 0
- %94 = insertvalue %Object %93, i8* %90, 1
- %95 = select i1 %88, %Object { i8* inttoptr (i32 142289596 to i8*), i8* null }, %Object %94
- store %Value* %83, %Value** inttoptr (i32 134824628 to %Value**)
- %96 = load i8** inttoptr (i32 134824636 to i8**)
- %97 = getelementptr i8* %96, i32 16
- %98 = bitcast i8* %97 to %ValueObject*
- %99 = extractvalue %Object %95, 0
- %100 = getelementptr %ValueObject* %98, i32 0, i32 0
- store i8* %99, i8** %100
- %101 = extractvalue %Object %95, 1
- %102 = getelementptr %ValueObject* %98, i32 0, i32 1
- store i8* %101, i8** %102
- br label %block11
- block11: ; preds = %if.cont2, %bb2
- %.0624 = phi %Object [ %50, %if.cont2 ], [ %95, %bb2 ]
- %103 = load i8** inttoptr (i32 134824628 to i8**)
- %104 = load i8** inttoptr (i32 134824636 to i8**)
- %105 = getelementptr i8* %104, i32 48
- %106 = icmp eq i8* %105, %103
- br i1 %106, label %if.cont13, label %if.then12
- if.then12: ; preds = %block11
- tail call void @stack_corrupted_abort()
- unreachable
- if.cont13: ; preds = %block11
- %107 = load %Class** inttoptr (i32 134824628 to %Class**)
- %108 = getelementptr %Class* %107, i32 0, i32 0
- store i32 14, i32* %108
- %109 = getelementptr %Class* %107, i32 0, i32 1
- store i8* inttoptr (i32 144414908 to i8*), i8** %109
- %110 = load %Value** inttoptr (i32 134824628 to %Value**)
- %111 = getelementptr %Value* %110, i32 1
- store %Value* %111, %Value** inttoptr (i32 134824628 to %Value**)
- store i32 144437760, i32* inttoptr (i32 134824660 to i32*)
- tail call void @EXEC_new()
- %112 = load %Value** inttoptr (i32 134824628 to %Value**)
- %113 = getelementptr %Value* %112, i32 -1
- %114 = bitcast %Value* %113 to %ValueObject*
- %115 = bitcast %Value* %113 to %Null*
- %116 = getelementptr %Null* %115, i32 0, i32 0
- %117 = load i32* %116
- %118 = icmp eq i32 %117, 15
- %119 = getelementptr %ValueObject* %114, i32 0, i32 1
- %120 = load i8** %119
- %121 = getelementptr %ValueObject* %114, i32 0, i32 0
- %122 = load i8** %121
- %123 = insertvalue %Object undef, i8* %122, 0
- %124 = insertvalue %Object %123, i8* %120, 1
- %125 = select i1 %118, %Object { i8* inttoptr (i32 144414908 to i8*), i8* null }, %Object %124
- store %Value* %113, %Value** inttoptr (i32 134824628 to %Value**)
- %126 = load i8** inttoptr (i32 134824636 to i8**)
- %127 = bitcast i8* %126 to %ValueObject*
- %128 = extractvalue %Object %125, 0
- %129 = getelementptr %ValueObject* %127, i32 0, i32 0
- store i8* %128, i8** %129
- %130 = extractvalue %Object %125, 1
- %131 = getelementptr %ValueObject* %127, i32 0, i32 1
- store i8* %130, i8** %131
- %132 = load i8** inttoptr (i32 134824628 to i8**)
- %133 = load i8** inttoptr (i32 134824636 to i8**)
- %134 = getelementptr i8* %133, i32 48
- %135 = icmp eq i8* %134, %132
- br i1 %135, label %if.cont19, label %if.then18
- if.then18: ; preds = %if.cont13
- tail call void @stack_corrupted_abort()
- unreachable
- if.cont19: ; preds = %if.cont13
- %136 = icmp ne i8* %130, null
- br i1 %136, label %obj_not_null20, label %if.cont25
- obj_not_null20: ; preds = %if.cont19
- %137 = bitcast i8* %130 to %OBJECT*
- %138 = getelementptr %OBJECT* %137, i32 0, i32 1
- %139 = load i32* %138
- %140 = add i32 %139, 1
- store i32 %140, i32* %138
- %.pre = load i8** inttoptr (i32 134824636 to i8**)
- br label %if.cont25
- if.cont25: ; preds = %obj_not_null20, %if.cont19
- %141 = phi i8* [ %.pre, %obj_not_null20 ], [ %133, %if.cont19 ]
- %142 = getelementptr i8* %141, i32 32
- %143 = bitcast i8* %142 to %ValueObject*
- %144 = getelementptr %ValueObject* %143, i32 0, i32 0
- store i8* %128, i8** %144
- %145 = getelementptr %ValueObject* %143, i32 0, i32 1
- store i8* %130, i8** %145
- %146 = load i8** inttoptr (i32 134824628 to i8**)
- %147 = load i8** inttoptr (i32 134824636 to i8**)
- %148 = getelementptr i8* %147, i32 48
- %149 = icmp eq i8* %148, %146
- br i1 %149, label %if.cont27, label %if.then26
- if.then26: ; preds = %if.cont25
- tail call void @stack_corrupted_abort()
- unreachable
- if.cont27: ; preds = %if.cont25
- %150 = extractvalue %Object %.0624, 1
- %151 = icmp eq i8* %150, null
- br i1 %151, label %str_release_done, label %not_null
- str_release_done: ; preds = %if.cont27
- tail call void (i32, ...)* @THROW(i32 13)
- unreachable
- not_null: ; preds = %if.cont27
- %152 = bitcast i8* %150 to %OBJECT*
- %153 = getelementptr %OBJECT* %152, i32 0, i32 1
- %154 = load i32* %153
- %155 = add i32 %154, 1
- store i32 %155, i32* %153
- %156 = load %Value** inttoptr (i32 134824628 to %Value**)
- %157 = bitcast %Value* %156 to i8*
- %158 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144439784 to i8*), i32 4, i8* %157)
- %159 = bitcast %Value* %156 to %ValueVariant*
- %160 = getelementptr %ValueVariant* %159, i32 0, i32 2
- %161 = load i64* %160
- %162 = getelementptr %ValueVariant* %159, i32 0, i32 1
- %163 = load i32* %162
- tail call void @JR_borrow_variant(i32 %163, i64 %161)
- %164 = getelementptr %Value* %156, i32 1
- store %Value* %164, %Value** inttoptr (i32 134824628 to %Value**)
- %165 = load i32* %153
- %166 = add i32 %165, -1
- store i32 %166, i32* %153
- %167 = icmp slt i32 %166, 1
- br i1 %167, label %release_obj38, label %release_done39
- release_obj38: ; preds = %not_null
- tail call void @CLASS_free(i8* %150)
- br label %release_done39
- release_done39: ; preds = %not_null, %release_obj38
- %168 = load %Value** inttoptr (i32 134824628 to %Value**)
- %169 = getelementptr %Value* %168, i32 -1
- %170 = bitcast %Value* %169 to i8*
- tail call void @VALUE_convert(i8* %170, i32 9)
- %171 = load %Value** inttoptr (i32 134824628 to %Value**)
- %172 = getelementptr %Value* %171, i32 -1
- %173 = bitcast %Value* %172 to %String*
- %174 = getelementptr %String* %173, i32 0, i32 0
- %175 = load i32* %174
- %176 = getelementptr %String* %173, i32 0, i32 3
- %177 = load i32* %176
- %178 = getelementptr %String* %173, i32 0, i32 2
- %179 = load i32* %178
- %180 = getelementptr %String* %173, i32 0, i32 1
- %181 = load i8** %180
- %182 = icmp eq i32 %175, 12
- br i1 %182, label %bb140, label %bb241
- bb140: ; preds = %release_done39
- tail call void @abort()
- unreachable
- bb241: ; preds = %release_done39
- br i1 %136, label %obj_not_null42, label %borrow_object_done43
- obj_not_null42: ; preds = %bb241
- %183 = bitcast i8* %130 to %OBJECT*
- %184 = getelementptr %OBJECT* %183, i32 0, i32 1
- %185 = load i32* %184
- %186 = add i32 %185, 1
- store i32 %186, i32* %184
- br label %borrow_object_done43
- borrow_object_done43: ; preds = %bb241, %obj_not_null42
- %187 = ptrtoint i8* %128 to i32
- %188 = icmp eq i32 %187, 15
- br i1 %188, label %if.then44, label %if.cont51
- if.then44: ; preds = %borrow_object_done43
- %189 = icmp ne i32 %175, 9
- %190 = icmp eq i8* %181, null
- %or.cond = or i1 %189, %190
- br i1 %or.cond, label %str_release_done50, label %str_not_null46
- str_not_null46: ; preds = %if.then44
- %191 = bitcast i8* %181 to i32*
- %192 = getelementptr i32* %191, i32 -2
- %193 = load i32* %192
- %194 = add i32 %193, -1
- store i32 %194, i32* %192
- %195 = icmp slt i32 %194, 1
- br i1 %195, label %release_str47, label %str_release_done50
- release_str47: ; preds = %str_not_null46
- tail call void @STRING_free_real(i8* %181)
- br label %str_release_done50
- str_release_done50: ; preds = %if.then44, %str_not_null46, %release_str47
- tail call void (i32, ...)* @THROW(i32 13)
- unreachable
- if.cont51: ; preds = %borrow_object_done43
- %196 = icmp eq i8* %130, null
- br i1 %196, label %is_null52, label %not_null59
- is_null52: ; preds = %if.cont51
- %197 = icmp ne i32 %175, 9
- %198 = icmp eq i8* %181, null
- %or.cond630 = or i1 %197, %198
- br i1 %or.cond630, label %str_release_done58, label %str_not_null54
- str_not_null54: ; preds = %is_null52
- %199 = bitcast i8* %181 to i32*
- %200 = getelementptr i32* %199, i32 -2
- %201 = load i32* %200
- %202 = add i32 %201, -1
- store i32 %202, i32* %200
- %203 = icmp slt i32 %202, 1
- br i1 %203, label %release_str55, label %str_release_done58
- release_str55: ; preds = %str_not_null54
- tail call void @STRING_free_real(i8* %181)
- br label %str_release_done58
- str_release_done58: ; preds = %is_null52, %str_not_null54, %release_str55
- tail call void (i32, ...)* @THROW(i32 13)
- unreachable
- not_null59: ; preds = %if.cont51
- %204 = bitcast i8* %130 to %OBJECT*
- %205 = getelementptr %OBJECT* %204, i32 0, i32 0
- %206 = load i8** %205
- %207 = getelementptr i8* %206, i32 28
- %208 = bitcast i8* %207 to i8**
- %209 = load i8** %208
- %210 = getelementptr i8* %209, i32 20
- %211 = bitcast i8* %210 to i8**
- %212 = load i8** %211
- %213 = getelementptr i8* %212, i32 8
- %214 = bitcast i8* %213 to i32*
- %215 = load i32* %214
- %216 = getelementptr i8* %130, i32 %215
- %217 = bitcast i8* %216 to i8**
- %218 = load i8** %217
- %219 = icmp eq i8* %218, null
- br i1 %219, label %unref_done63, label %str_not_null60
- str_not_null60: ; preds = %not_null59
- %220 = bitcast i8* %218 to i32*
- %221 = getelementptr i32* %220, i32 -2
- %222 = load i32* %221
- %223 = add i32 %222, -1
- store i32 %223, i32* %221
- %224 = icmp slt i32 %223, 1
- br i1 %224, label %release_str61, label %unref_done63
- release_str61: ; preds = %str_not_null60
- tail call void @STRING_free_real(i8* %218)
- br label %unref_done63
- unref_done63: ; preds = %not_null59, %release_str61, %str_not_null60
- %225 = icmp eq i32 %177, 0
- br i1 %225, label %if.cont71, label %if.then64
- if.then64: ; preds = %unref_done63
- %226 = icmp eq i32 %175, 9
- %227 = icmp eq i32 %179, 0
- %228 = and i1 %226, %227
- br i1 %228, label %and_if, label %if.then65
- and_if: ; preds = %if.then64
- %229 = getelementptr i8* %181, i32 -4
- %230 = bitcast i8* %229 to i32*
- %231 = load i32* %230
- %phitmp629 = icmp eq i32 %231, %177
- br i1 %phitmp629, label %if.cont71, label %if.then65
- if.then65: ; preds = %and_if, %if.then64
- %232 = getelementptr i8* %181, i32 %179
- %233 = tail call i8* @STRING_new(i8* %232, i32 %177)
- %234 = tail call i8* @STRING_free_later(i8* %233)
- br i1 %226, label %if.then66, label %if.cont69
- if.then66: ; preds = %if.then65
- %235 = bitcast i8* %181 to i32*
- %236 = getelementptr i32* %235, i32 -2
- %237 = load i32* %236
- %238 = add i32 %237, -1
- store i32 %238, i32* %236
- %239 = icmp slt i32 %238, 1
- br i1 %239, label %release_str67, label %if.cont69
- release_str67: ; preds = %if.then66
- tail call void @STRING_free_real(i8* %181)
- br label %if.cont69
- if.cont69: ; preds = %release_str67, %if.then66, %if.then65
- %240 = bitcast i8* %234 to i32*
- %241 = getelementptr i32* %240, i32 -2
- %242 = load i32* %241
- %243 = add i32 %242, 1
- store i32 %243, i32* %241
- br label %if.cont71
- if.cont71: ; preds = %and_if, %unref_done63, %if.cont69
- %244 = phi i8* [ null, %unref_done63 ], [ %234, %if.cont69 ], [ %181, %and_if ]
- store i8* %244, i8** %217
- %245 = getelementptr %OBJECT* %204, i32 0, i32 1
- %246 = load i32* %245
- %247 = add i32 %246, -1
- store i32 %247, i32* %245
- %248 = icmp slt i32 %247, 1
- br i1 %248, label %release_obj72, label %release_done73
- release_obj72: ; preds = %if.cont71
- tail call void @CLASS_free(i8* %130)
- br label %release_done73
- release_done73: ; preds = %if.cont71, %release_obj72
- %249 = load %Value** inttoptr (i32 134824628 to %Value**)
- %250 = getelementptr %Value* %249, i32 -1
- store %Value* %250, %Value** inttoptr (i32 134824628 to %Value**)
- %251 = load i8** inttoptr (i32 134824628 to i8**)
- %252 = load i8** inttoptr (i32 134824636 to i8**)
- %253 = getelementptr i8* %252, i32 48
- %254 = icmp eq i8* %253, %251
- br i1 %254, label %not_null85, label %if.then74
- if.then74: ; preds = %release_done73
- tail call void @stack_corrupted_abort()
- unreachable
- not_null85: ; preds = %release_done73
- %255 = load i32* %153
- %256 = add i32 %255, 1
- store i32 %256, i32* %153
- %.pre641 = load %Value** inttoptr (i32 134824628 to %Value**)
- %257 = bitcast %Value* %.pre641 to i8*
- %258 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144439805 to i8*), i32 8, i8* %257)
- %259 = bitcast %Value* %.pre641 to %ValueVariant*
- %260 = getelementptr %ValueVariant* %259, i32 0, i32 2
- %261 = load i64* %260
- %262 = getelementptr %ValueVariant* %259, i32 0, i32 1
- %263 = load i32* %262
- tail call void @JR_borrow_variant(i32 %263, i64 %261)
- %264 = getelementptr %Value* %.pre641, i32 1
- store %Value* %264, %Value** inttoptr (i32 134824628 to %Value**)
- %265 = load i32* %153
- %266 = add i32 %265, -1
- store i32 %266, i32* %153
- %267 = icmp slt i32 %266, 1
- br i1 %267, label %release_obj92, label %release_done93
- release_obj92: ; preds = %not_null85
- tail call void @CLASS_free(i8* %150)
- br label %release_done93
- release_done93: ; preds = %not_null85, %release_obj92
- %268 = load %Value** inttoptr (i32 134824628 to %Value**)
- %269 = getelementptr %Value* %268, i32 -1
- %270 = bitcast %Value* %269 to i8*
- tail call void @VALUE_convert(i8* %270, i32 9)
- %271 = load %Value** inttoptr (i32 134824628 to %Value**)
- %272 = getelementptr %Value* %271, i32 -1
- %273 = bitcast %Value* %272 to %String*
- %274 = getelementptr %String* %273, i32 0, i32 0
- %275 = load i32* %274
- %276 = getelementptr %String* %273, i32 0, i32 3
- %277 = load i32* %276
- %278 = getelementptr %String* %273, i32 0, i32 2
- %279 = load i32* %278
- %280 = getelementptr %String* %273, i32 0, i32 1
- %281 = load i8** %280
- %282 = icmp eq i32 %275, 12
- br i1 %282, label %bb194, label %not_null113
- bb194: ; preds = %release_done93
- tail call void @abort()
- unreachable
- not_null113: ; preds = %release_done93
- %283 = load i32* %245
- %284 = add i32 %283, 1
- store i32 %284, i32* %245
- %285 = load i8** %205
- %286 = getelementptr i8* %285, i32 28
- %287 = bitcast i8* %286 to i8**
- %288 = load i8** %287
- %289 = getelementptr i8* %288, i32 56
- %290 = bitcast i8* %289 to i8**
- %291 = load i8** %290
- %292 = getelementptr i8* %291, i32 8
- %293 = bitcast i8* %292 to i32*
- %294 = load i32* %293
- %295 = getelementptr i8* %130, i32 %294
- %296 = bitcast i8* %295 to i8**
- %297 = load i8** %296
- %298 = icmp eq i8* %297, null
- br i1 %298, label %unref_done117, label %str_not_null114
- str_not_null114: ; preds = %not_null113
- %299 = bitcast i8* %297 to i32*
- %300 = getelementptr i32* %299, i32 -2
- %301 = load i32* %300
- %302 = add i32 %301, -1
- store i32 %302, i32* %300
- %303 = icmp slt i32 %302, 1
- br i1 %303, label %release_str115, label %unref_done117
- release_str115: ; preds = %str_not_null114
- tail call void @STRING_free_real(i8* %297)
- br label %unref_done117
- unref_done117: ; preds = %not_null113, %release_str115, %str_not_null114
- %304 = icmp eq i32 %277, 0
- br i1 %304, label %if.cont127, label %if.then118
- if.then118: ; preds = %unref_done117
- %305 = icmp eq i32 %275, 9
- %306 = icmp eq i32 %279, 0
- %307 = and i1 %305, %306
- br i1 %307, label %and_if119, label %if.then121
- and_if119: ; preds = %if.then118
- %308 = getelementptr i8* %281, i32 -4
- %309 = bitcast i8* %308 to i32*
- %310 = load i32* %309
- %phitmp628 = icmp eq i32 %310, %277
- br i1 %phitmp628, label %if.cont127, label %if.then121
- if.then121: ; preds = %and_if119, %if.then118
- %311 = getelementptr i8* %281, i32 %279
- %312 = tail call i8* @STRING_new(i8* %311, i32 %277)
- %313 = tail call i8* @STRING_free_later(i8* %312)
- br i1 %305, label %if.then122, label %if.cont125
- if.then122: ; preds = %if.then121
- %314 = bitcast i8* %281 to i32*
- %315 = getelementptr i32* %314, i32 -2
- %316 = load i32* %315
- %317 = add i32 %316, -1
- store i32 %317, i32* %315
- %318 = icmp slt i32 %317, 1
- br i1 %318, label %release_str123, label %if.cont125
- release_str123: ; preds = %if.then122
- tail call void @STRING_free_real(i8* %281)
- br label %if.cont125
- if.cont125: ; preds = %release_str123, %if.then122, %if.then121
- %319 = bitcast i8* %313 to i32*
- %320 = getelementptr i32* %319, i32 -2
- %321 = load i32* %320
- %322 = add i32 %321, 1
- store i32 %322, i32* %320
- br label %if.cont127
- if.cont127: ; preds = %and_if119, %unref_done117, %if.cont125
- %323 = phi i8* [ null, %unref_done117 ], [ %313, %if.cont125 ], [ %281, %and_if119 ]
- store i8* %323, i8** %296
- %324 = load i32* %245
- %325 = add i32 %324, -1
- store i32 %325, i32* %245
- %326 = icmp slt i32 %325, 1
- br i1 %326, label %release_obj128, label %release_done129
- release_obj128: ; preds = %if.cont127
- tail call void @CLASS_free(i8* %130)
- br label %release_done129
- release_done129: ; preds = %if.cont127, %release_obj128
- %327 = load %Value** inttoptr (i32 134824628 to %Value**)
- %328 = getelementptr %Value* %327, i32 -1
- store %Value* %328, %Value** inttoptr (i32 134824628 to %Value**)
- %329 = load i8** inttoptr (i32 134824628 to i8**)
- %330 = load i8** inttoptr (i32 134824636 to i8**)
- %331 = getelementptr i8* %330, i32 48
- %332 = icmp eq i8* %331, %329
- br i1 %332, label %not_null141, label %if.then130
- if.then130: ; preds = %release_done129
- tail call void @stack_corrupted_abort()
- unreachable
- not_null141: ; preds = %release_done129
- %333 = load i32* %153
- %334 = add i32 %333, 1
- store i32 %334, i32* %153
- %.pre642 = load %Value** inttoptr (i32 134824628 to %Value**)
- %335 = bitcast %Value* %.pre642 to i8*
- %336 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144439885 to i8*), i32 11, i8* %335)
- %337 = bitcast %Value* %.pre642 to %ValueVariant*
- %338 = getelementptr %ValueVariant* %337, i32 0, i32 2
- %339 = load i64* %338
- %340 = getelementptr %ValueVariant* %337, i32 0, i32 1
- %341 = load i32* %340
- tail call void @JR_borrow_variant(i32 %341, i64 %339)
- %342 = getelementptr %Value* %.pre642, i32 1
- store %Value* %342, %Value** inttoptr (i32 134824628 to %Value**)
- %343 = load i32* %153
- %344 = add i32 %343, -1
- store i32 %344, i32* %153
- %345 = icmp slt i32 %344, 1
- br i1 %345, label %release_obj148, label %release_done149
- release_obj148: ; preds = %not_null141
- tail call void @CLASS_free(i8* %150)
- br label %release_done149
- release_done149: ; preds = %not_null141, %release_obj148
- %346 = load %Value** inttoptr (i32 134824628 to %Value**)
- %347 = getelementptr %Value* %346, i32 -1
- %348 = bitcast %Value* %347 to i8*
- tail call void @VALUE_convert(i8* %348, i32 9)
- %349 = load %Value** inttoptr (i32 134824628 to %Value**)
- %350 = getelementptr %Value* %349, i32 -1
- %351 = bitcast %Value* %350 to %String*
- %352 = getelementptr %String* %351, i32 0, i32 0
- %353 = load i32* %352
- %354 = getelementptr %String* %351, i32 0, i32 3
- %355 = load i32* %354
- %356 = getelementptr %String* %351, i32 0, i32 2
- %357 = load i32* %356
- %358 = getelementptr %String* %351, i32 0, i32 1
- %359 = load i8** %358
- %360 = icmp eq i32 %353, 12
- br i1 %360, label %bb1150, label %not_null169
- bb1150: ; preds = %release_done149
- tail call void @abort()
- unreachable
- not_null169: ; preds = %release_done149
- %361 = load i32* %245
- %362 = add i32 %361, 1
- store i32 %362, i32* %245
- %363 = load i8** %205
- %364 = getelementptr i8* %363, i32 28
- %365 = bitcast i8* %364 to i8**
- %366 = load i8** %365
- %367 = getelementptr i8* %366, i32 152
- %368 = bitcast i8* %367 to i8**
- %369 = load i8** %368
- %370 = getelementptr i8* %369, i32 8
- %371 = bitcast i8* %370 to i32*
- %372 = load i32* %371
- %373 = getelementptr i8* %130, i32 %372
- %374 = bitcast i8* %373 to i8**
- %375 = load i8** %374
- %376 = icmp eq i8* %375, null
- br i1 %376, label %unref_done173, label %str_not_null170
- str_not_null170: ; preds = %not_null169
- %377 = bitcast i8* %375 to i32*
- %378 = getelementptr i32* %377, i32 -2
- %379 = load i32* %378
- %380 = add i32 %379, -1
- store i32 %380, i32* %378
- %381 = icmp slt i32 %380, 1
- br i1 %381, label %release_str171, label %unref_done173
- release_str171: ; preds = %str_not_null170
- tail call void @STRING_free_real(i8* %375)
- br label %unref_done173
- unref_done173: ; preds = %not_null169, %release_str171, %str_not_null170
- %382 = icmp eq i32 %355, 0
- br i1 %382, label %if.cont183, label %if.then174
- if.then174: ; preds = %unref_done173
- %383 = icmp eq i32 %353, 9
- %384 = icmp eq i32 %357, 0
- %385 = and i1 %383, %384
- br i1 %385, label %and_if175, label %if.then177
- and_if175: ; preds = %if.then174
- %386 = getelementptr i8* %359, i32 -4
- %387 = bitcast i8* %386 to i32*
- %388 = load i32* %387
- %phitmp627 = icmp eq i32 %388, %355
- br i1 %phitmp627, label %if.cont183, label %if.then177
- if.then177: ; preds = %and_if175, %if.then174
- %389 = getelementptr i8* %359, i32 %357
- %390 = tail call i8* @STRING_new(i8* %389, i32 %355)
- %391 = tail call i8* @STRING_free_later(i8* %390)
- br i1 %383, label %if.then178, label %if.cont181
- if.then178: ; preds = %if.then177
- %392 = bitcast i8* %359 to i32*
- %393 = getelementptr i32* %392, i32 -2
- %394 = load i32* %393
- %395 = add i32 %394, -1
- store i32 %395, i32* %393
- %396 = icmp slt i32 %395, 1
- br i1 %396, label %release_str179, label %if.cont181
- release_str179: ; preds = %if.then178
- tail call void @STRING_free_real(i8* %359)
- br label %if.cont181
- if.cont181: ; preds = %release_str179, %if.then178, %if.then177
- %397 = bitcast i8* %391 to i32*
- %398 = getelementptr i32* %397, i32 -2
- %399 = load i32* %398
- %400 = add i32 %399, 1
- store i32 %400, i32* %398
- br label %if.cont183
- if.cont183: ; preds = %and_if175, %unref_done173, %if.cont181
- %401 = phi i8* [ null, %unref_done173 ], [ %391, %if.cont181 ], [ %359, %and_if175 ]
- store i8* %401, i8** %374
- %402 = load i32* %245
- %403 = add i32 %402, -1
- store i32 %403, i32* %245
- %404 = icmp slt i32 %403, 1
- br i1 %404, label %release_obj184, label %release_done185
- release_obj184: ; preds = %if.cont183
- tail call void @CLASS_free(i8* %130)
- br label %release_done185
- release_done185: ; preds = %if.cont183, %release_obj184
- %405 = load %Value** inttoptr (i32 134824628 to %Value**)
- %406 = getelementptr %Value* %405, i32 -1
- store %Value* %406, %Value** inttoptr (i32 134824628 to %Value**)
- %407 = load i8** inttoptr (i32 134824628 to i8**)
- %408 = load i8** inttoptr (i32 134824636 to i8**)
- %409 = getelementptr i8* %408, i32 48
- %410 = icmp eq i8* %409, %407
- br i1 %410, label %not_null197, label %if.then186
- if.then186: ; preds = %release_done185
- tail call void @stack_corrupted_abort()
- unreachable
- not_null197: ; preds = %release_done185
- %411 = load i32* %153
- %412 = add i32 %411, 1
- store i32 %412, i32* %153
- %.pre643 = load %Value** inttoptr (i32 134824628 to %Value**)
- %413 = bitcast %Value* %.pre643 to i8*
- %414 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144439897 to i8*), i32 11, i8* %413)
- %415 = bitcast %Value* %.pre643 to %ValueVariant*
- %416 = getelementptr %ValueVariant* %415, i32 0, i32 2
- %417 = load i64* %416
- %418 = getelementptr %ValueVariant* %415, i32 0, i32 1
- %419 = load i32* %418
- tail call void @JR_borrow_variant(i32 %419, i64 %417)
- %420 = getelementptr %Value* %.pre643, i32 1
- store %Value* %420, %Value** inttoptr (i32 134824628 to %Value**)
- %421 = load i32* %153
- %422 = add i32 %421, -1
- store i32 %422, i32* %153
- %423 = icmp slt i32 %422, 1
- br i1 %423, label %release_obj204, label %release_done205
- release_obj204: ; preds = %not_null197
- tail call void @CLASS_free(i8* %150)
- br label %release_done205
- release_done205: ; preds = %not_null197, %release_obj204
- %424 = load %Value** inttoptr (i32 134824628 to %Value**)
- %425 = getelementptr %Value* %424, i32 -1
- %426 = bitcast %Value* %425 to i8*
- tail call void @VALUE_convert(i8* %426, i32 1)
- %427 = load %Value** inttoptr (i32 134824628 to %Value**)
- %428 = getelementptr %Value* %427, i32 -1
- %429 = bitcast %Value* %428 to %Boolean*
- %430 = getelementptr %Boolean* %429, i32 0, i32 1
- %431 = load i32* %430
- %432 = icmp eq i32 %431, 0
- store %Value* %428, %Value** inttoptr (i32 134824628 to %Value**)
- br i1 %432, label %block246, label %not_null217
- not_null217: ; preds = %release_done205
- %433 = load i32* %153
- %434 = add i32 %433, 1
- store i32 %434, i32* %153
- %.pre654 = load %Value** inttoptr (i32 134824628 to %Value**)
- %435 = bitcast %Value* %.pre654 to i8*
- %436 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144439897 to i8*), i32 11, i8* %435)
- %437 = bitcast %Value* %.pre654 to %ValueVariant*
- %438 = getelementptr %ValueVariant* %437, i32 0, i32 2
- %439 = load i64* %438
- %440 = getelementptr %ValueVariant* %437, i32 0, i32 1
- %441 = load i32* %440
- tail call void @JR_borrow_variant(i32 %441, i64 %439)
- %442 = getelementptr %Value* %.pre654, i32 1
- store %Value* %442, %Value** inttoptr (i32 134824628 to %Value**)
- %443 = load i32* %153
- %444 = add i32 %443, -1
- store i32 %444, i32* %153
- %445 = icmp slt i32 %444, 1
- br i1 %445, label %release_obj224, label %not_null239
- release_obj224: ; preds = %not_null217
- tail call void @CLASS_free(i8* %150)
- br label %not_null239
- not_null239: ; preds = %not_null217, %release_obj224
- %446 = load %Value** inttoptr (i32 134824628 to %Value**)
- %447 = getelementptr %Value* %446, i32 -1
- %448 = bitcast %Value* %447 to i8*
- tail call void @VALUE_convert(i8* %448, i32 142289596)
- %449 = load %Value** inttoptr (i32 134824628 to %Value**)
- %450 = getelementptr %Value* %449, i32 -1
- %451 = bitcast %Value* %450 to %ValueObject*
- %452 = bitcast %Value* %450 to %Null*
- %453 = getelementptr %Null* %452, i32 0, i32 0
- %454 = load i32* %453
- %455 = icmp eq i32 %454, 15
- %456 = getelementptr %ValueObject* %451, i32 0, i32 1
- %457 = load i8** %456
- %458 = getelementptr %ValueObject* %451, i32 0, i32 0
- %459 = load i8** %458
- %460 = insertvalue %Object undef, i8* %459, 0
- %461 = insertvalue %Object %460, i8* %457, 1
- %462 = select i1 %455, %Object { i8* inttoptr (i32 142289596 to i8*), i8* null }, %Object %461
- %463 = load i32* %245
- %464 = add i32 %463, 1
- store i32 %464, i32* %245
- %465 = load i8** %205
- %466 = getelementptr i8* %465, i32 28
- %467 = bitcast i8* %466 to i8**
- %468 = load i8** %467
- %469 = getelementptr i8* %468, i32 164
- %470 = bitcast i8* %469 to i8**
- %471 = load i8** %470
- %472 = getelementptr i8* %471, i32 8
- %473 = bitcast i8* %472 to i32*
- %474 = load i32* %473
- %475 = getelementptr i8* %130, i32 %474
- %476 = bitcast i8* %475 to i8**
- %477 = load i8** %476
- %478 = icmp eq i8* %477, null
- br i1 %478, label %unref_done243, label %obj_not_null240
- obj_not_null240: ; preds = %not_null239
- %479 = bitcast i8* %477 to %OBJECT*
- %480 = getelementptr %OBJECT* %479, i32 0, i32 1
- %481 = load i32* %480
- %482 = add i32 %481, -1
- store i32 %482, i32* %480
- %483 = icmp slt i32 %482, 1
- br i1 %483, label %release_obj241, label %unref_done243
- release_obj241: ; preds = %obj_not_null240
- tail call void @CLASS_free(i8* %477)
- br label %unref_done243
- unref_done243: ; preds = %not_null239, %release_obj241, %obj_not_null240
- %484 = extractvalue %Object %462, 1
- store i8* %484, i8** %476
- %485 = load i32* %245
- %486 = add i32 %485, -1
- store i32 %486, i32* %245
- %487 = icmp slt i32 %486, 1
- br i1 %487, label %release_obj244, label %release_done245
- release_obj244: ; preds = %unref_done243
- tail call void @CLASS_free(i8* %130)
- br label %release_done245
- release_done245: ; preds = %unref_done243, %release_obj244
- %488 = load %Value** inttoptr (i32 134824628 to %Value**)
- %489 = getelementptr %Value* %488, i32 -1
- store %Value* %489, %Value** inttoptr (i32 134824628 to %Value**)
- br label %block246
- block246: ; preds = %release_done205, %release_done245
- %490 = load i8** inttoptr (i32 134824628 to i8**)
- %491 = load i8** inttoptr (i32 134824636 to i8**)
- %492 = getelementptr i8* %491, i32 48
- %493 = icmp eq i8* %492, %490
- br i1 %493, label %not_null258, label %if.then247
- if.then247: ; preds = %block246
- tail call void @stack_corrupted_abort()
- unreachable
- not_null258: ; preds = %block246
- %494 = load i32* %153
- %495 = add i32 %494, 1
- store i32 %495, i32* %153
- %.pre644 = load %Value** inttoptr (i32 134824628 to %Value**)
- %496 = bitcast %Value* %.pre644 to i8*
- %497 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144439863 to i8*), i32 10, i8* %496)
- %498 = bitcast %Value* %.pre644 to %ValueVariant*
- %499 = getelementptr %ValueVariant* %498, i32 0, i32 2
- %500 = load i64* %499
- %501 = getelementptr %ValueVariant* %498, i32 0, i32 1
- %502 = load i32* %501
- tail call void @JR_borrow_variant(i32 %502, i64 %500)
- %503 = getelementptr %Value* %.pre644, i32 1
- store %Value* %503, %Value** inttoptr (i32 134824628 to %Value**)
- %504 = load i32* %153
- %505 = add i32 %504, -1
- store i32 %505, i32* %153
- %506 = icmp slt i32 %505, 1
- br i1 %506, label %release_obj265, label %release_done266
- release_obj265: ; preds = %not_null258
- tail call void @CLASS_free(i8* %150)
- br label %release_done266
- release_done266: ; preds = %not_null258, %release_obj265
- %507 = load %Value** inttoptr (i32 134824628 to %Value**)
- %508 = getelementptr %Value* %507, i32 -1
- %509 = bitcast %Value* %508 to i8*
- tail call void @VALUE_convert(i8* %509, i32 9)
- %510 = load %Value** inttoptr (i32 134824628 to %Value**)
- %511 = getelementptr %Value* %510, i32 -1
- %512 = bitcast %Value* %511 to %String*
- %513 = getelementptr %String* %512, i32 0, i32 0
- %514 = load i32* %513
- %515 = getelementptr %String* %512, i32 0, i32 3
- %516 = load i32* %515
- %517 = getelementptr %String* %512, i32 0, i32 2
- %518 = load i32* %517
- %519 = getelementptr %String* %512, i32 0, i32 1
- %520 = load i8** %519
- %521 = icmp eq i32 %514, 12
- br i1 %521, label %bb1267, label %not_null286
- bb1267: ; preds = %release_done266
- tail call void @abort()
- unreachable
- not_null286: ; preds = %release_done266
- %522 = load i32* %245
- %523 = add i32 %522, 1
- store i32 %523, i32* %245
- %524 = load i8** %205
- %525 = getelementptr i8* %524, i32 28
- %526 = bitcast i8* %525 to i8**
- %527 = load i8** %526
- %528 = getelementptr i8* %527, i32 128
- %529 = bitcast i8* %528 to i8**
- %530 = load i8** %529
- %531 = getelementptr i8* %530, i32 8
- %532 = bitcast i8* %531 to i32*
- %533 = load i32* %532
- %534 = getelementptr i8* %130, i32 %533
- %535 = bitcast i8* %534 to i8**
- %536 = load i8** %535
- %537 = icmp eq i8* %536, null
- br i1 %537, label %unref_done290, label %str_not_null287
- str_not_null287: ; preds = %not_null286
- %538 = bitcast i8* %536 to i32*
- %539 = getelementptr i32* %538, i32 -2
- %540 = load i32* %539
- %541 = add i32 %540, -1
- store i32 %541, i32* %539
- %542 = icmp slt i32 %541, 1
- br i1 %542, label %release_str288, label %unref_done290
- release_str288: ; preds = %str_not_null287
- tail call void @STRING_free_real(i8* %536)
- br label %unref_done290
- unref_done290: ; preds = %not_null286, %release_str288, %str_not_null287
- %543 = icmp eq i32 %516, 0
- br i1 %543, label %if.cont300, label %if.then291
- if.then291: ; preds = %unref_done290
- %544 = icmp eq i32 %514, 9
- %545 = icmp eq i32 %518, 0
- %546 = and i1 %544, %545
- br i1 %546, label %and_if292, label %if.then294
- and_if292: ; preds = %if.then291
- %547 = getelementptr i8* %520, i32 -4
- %548 = bitcast i8* %547 to i32*
- %549 = load i32* %548
- %phitmp626 = icmp eq i32 %549, %516
- br i1 %phitmp626, label %if.cont300, label %if.then294
- if.then294: ; preds = %and_if292, %if.then291
- %550 = getelementptr i8* %520, i32 %518
- %551 = tail call i8* @STRING_new(i8* %550, i32 %516)
- %552 = tail call i8* @STRING_free_later(i8* %551)
- br i1 %544, label %if.then295, label %if.cont298
- if.then295: ; preds = %if.then294
- %553 = bitcast i8* %520 to i32*
- %554 = getelementptr i32* %553, i32 -2
- %555 = load i32* %554
- %556 = add i32 %555, -1
- store i32 %556, i32* %554
- %557 = icmp slt i32 %556, 1
- br i1 %557, label %release_str296, label %if.cont298
- release_str296: ; preds = %if.then295
- tail call void @STRING_free_real(i8* %520)
- br label %if.cont298
- if.cont298: ; preds = %release_str296, %if.then295, %if.then294
- %558 = bitcast i8* %552 to i32*
- %559 = getelementptr i32* %558, i32 -2
- %560 = load i32* %559
- %561 = add i32 %560, 1
- store i32 %561, i32* %559
- br label %if.cont300
- if.cont300: ; preds = %and_if292, %unref_done290, %if.cont298
- %562 = phi i8* [ null, %unref_done290 ], [ %552, %if.cont298 ], [ %520, %and_if292 ]
- store i8* %562, i8** %535
- %563 = load i32* %245
- %564 = add i32 %563, -1
- store i32 %564, i32* %245
- %565 = icmp slt i32 %564, 1
- br i1 %565, label %release_obj301, label %release_done302
- release_obj301: ; preds = %if.cont300
- tail call void @CLASS_free(i8* %130)
- br label %release_done302
- release_done302: ; preds = %if.cont300, %release_obj301
- %566 = load %Value** inttoptr (i32 134824628 to %Value**)
- %567 = getelementptr %Value* %566, i32 -1
- store %Value* %567, %Value** inttoptr (i32 134824628 to %Value**)
- %568 = load i8** inttoptr (i32 134824628 to i8**)
- %569 = load i8** inttoptr (i32 134824636 to i8**)
- %570 = getelementptr i8* %569, i32 48
- %571 = icmp eq i8* %570, %568
- br i1 %571, label %not_null314, label %if.then303
- if.then303: ; preds = %release_done302
- tail call void @stack_corrupted_abort()
- unreachable
- not_null314: ; preds = %release_done302
- %572 = load i32* %153
- %573 = add i32 %572, 1
- store i32 %573, i32* %153
- %.pre645 = load %Value** inttoptr (i32 134824628 to %Value**)
- %574 = bitcast %Value* %.pre645 to i8*
- %575 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144439814 to i8*), i32 8, i8* %574)
- %576 = bitcast %Value* %.pre645 to %ValueVariant*
- %577 = getelementptr %ValueVariant* %576, i32 0, i32 2
- %578 = load i64* %577
- %579 = getelementptr %ValueVariant* %576, i32 0, i32 1
- %580 = load i32* %579
- tail call void @JR_borrow_variant(i32 %580, i64 %578)
- %581 = getelementptr %Value* %.pre645, i32 1
- store %Value* %581, %Value** inttoptr (i32 134824628 to %Value**)
- %582 = load i32* %153
- %583 = add i32 %582, -1
- store i32 %583, i32* %153
- %584 = icmp slt i32 %583, 1
- br i1 %584, label %release_obj321, label %not_null328
- release_obj321: ; preds = %not_null314
- tail call void @CLASS_free(i8* %150)
- br label %not_null328
- not_null328: ; preds = %not_null314, %release_obj321
- %585 = load %Value** inttoptr (i32 134824628 to %Value**)
- %586 = getelementptr %Value* %585, i32 -1
- %587 = bitcast %Value* %586 to i8*
- tail call void @VALUE_convert(i8* %587, i32 1)
- %588 = load %Value** inttoptr (i32 134824628 to %Value**)
- %589 = getelementptr %Value* %588, i32 -1
- %590 = bitcast %Value* %589 to %Boolean*
- %591 = getelementptr %Boolean* %590, i32 0, i32 1
- %592 = load i32* %591
- %593 = icmp ne i32 %592, 0
- %594 = load i32* %245
- %595 = add i32 %594, 1
- store i32 %595, i32* %245
- %596 = load i8** %205
- %597 = getelementptr i8* %596, i32 28
- %598 = bitcast i8* %597 to i8**
- %599 = load i8** %598
- %600 = getelementptr i8* %599, i32 68
- %601 = bitcast i8* %600 to i8**
- %602 = load i8** %601
- %603 = getelementptr i8* %602, i32 8
- %604 = bitcast i8* %603 to i32*
- %605 = load i32* %604
- %606 = getelementptr i8* %130, i32 %605
- %607 = sext i1 %593 to i8
- store i8 %607, i8* %606
- %608 = load i32* %245
- %609 = add i32 %608, -1
- store i32 %609, i32* %245
- %610 = icmp slt i32 %609, 1
- br i1 %610, label %release_obj329, label %release_done330
- release_obj329: ; preds = %not_null328
- tail call void @CLASS_free(i8* %130)
- br label %release_done330
- release_done330: ; preds = %not_null328, %release_obj329
- %611 = load %Value** inttoptr (i32 134824628 to %Value**)
- %612 = getelementptr %Value* %611, i32 -1
- store %Value* %612, %Value** inttoptr (i32 134824628 to %Value**)
- %613 = load i8** inttoptr (i32 134824628 to i8**)
- %614 = load i8** inttoptr (i32 134824636 to i8**)
- %615 = getelementptr i8* %614, i32 48
- %616 = icmp eq i8* %615, %613
- br i1 %616, label %not_null342, label %if.then331
- if.then331: ; preds = %release_done330
- tail call void @stack_corrupted_abort()
- unreachable
- not_null342: ; preds = %release_done330
- %617 = load i32* %153
- %618 = add i32 %617, 1
- store i32 %618, i32* %153
- %.pre646 = load %Value** inttoptr (i32 134824628 to %Value**)
- %619 = bitcast %Value* %.pre646 to i8*
- %620 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144440081 to i8*), i32 21, i8* %619)
- %621 = bitcast %Value* %.pre646 to %ValueVariant*
- %622 = getelementptr %ValueVariant* %621, i32 0, i32 2
- %623 = load i64* %622
- %624 = getelementptr %ValueVariant* %621, i32 0, i32 1
- %625 = load i32* %624
- tail call void @JR_borrow_variant(i32 %625, i64 %623)
- %626 = getelementptr %Value* %.pre646, i32 1
- store %Value* %626, %Value** inttoptr (i32 134824628 to %Value**)
- %627 = load i32* %153
- %628 = add i32 %627, -1
- store i32 %628, i32* %153
- %629 = icmp slt i32 %628, 1
- br i1 %629, label %release_obj349, label %release_done350
- release_obj349: ; preds = %not_null342
- tail call void @CLASS_free(i8* %150)
- br label %release_done350
- release_done350: ; preds = %not_null342, %release_obj349
- %630 = load %Value** inttoptr (i32 134824628 to %Value**)
- %631 = getelementptr %Value* %630, i32 -1
- %632 = bitcast %Value* %631 to i8*
- tail call void @VALUE_convert(i8* %632, i32 1)
- %633 = load %Value** inttoptr (i32 134824628 to %Value**)
- %634 = getelementptr %Value* %633, i32 -1
- %635 = bitcast %Value* %634 to %Boolean*
- %636 = getelementptr %Boolean* %635, i32 0, i32 1
- %637 = load i32* %636
- %638 = icmp eq i32 %637, 0
- store %Value* %634, %Value** inttoptr (i32 134824628 to %Value**)
- br i1 %638, label %block391, label %not_null362
- not_null362: ; preds = %release_done350
- %639 = load i32* %153
- %640 = add i32 %639, 1
- store i32 %640, i32* %153
- %.pre653 = load %Value** inttoptr (i32 134824628 to %Value**)
- %641 = bitcast %Value* %.pre653 to i8*
- %642 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144440081 to i8*), i32 21, i8* %641)
- %643 = bitcast %Value* %.pre653 to %ValueVariant*
- %644 = getelementptr %ValueVariant* %643, i32 0, i32 2
- %645 = load i64* %644
- %646 = getelementptr %ValueVariant* %643, i32 0, i32 1
- %647 = load i32* %646
- tail call void @JR_borrow_variant(i32 %647, i64 %645)
- %648 = getelementptr %Value* %.pre653, i32 1
- store %Value* %648, %Value** inttoptr (i32 134824628 to %Value**)
- %649 = load i32* %153
- %650 = add i32 %649, -1
- store i32 %650, i32* %153
- %651 = icmp slt i32 %650, 1
- br i1 %651, label %release_obj369, label %not_null384
- release_obj369: ; preds = %not_null362
- tail call void @CLASS_free(i8* %150)
- br label %not_null384
- not_null384: ; preds = %not_null362, %release_obj369
- %652 = load %Value** inttoptr (i32 134824628 to %Value**)
- %653 = getelementptr %Value* %652, i32 -1
- %654 = bitcast %Value* %653 to i8*
- tail call void @VALUE_convert(i8* %654, i32 142289596)
- %655 = load %Value** inttoptr (i32 134824628 to %Value**)
- %656 = getelementptr %Value* %655, i32 -1
- %657 = bitcast %Value* %656 to %ValueObject*
- %658 = bitcast %Value* %656 to %Null*
- %659 = getelementptr %Null* %658, i32 0, i32 0
- %660 = load i32* %659
- %661 = icmp eq i32 %660, 15
- %662 = getelementptr %ValueObject* %657, i32 0, i32 1
- %663 = load i8** %662
- %664 = getelementptr %ValueObject* %657, i32 0, i32 0
- %665 = load i8** %664
- %666 = insertvalue %Object undef, i8* %665, 0
- %667 = insertvalue %Object %666, i8* %663, 1
- %668 = select i1 %661, %Object { i8* inttoptr (i32 142289596 to i8*), i8* null }, %Object %667
- %669 = load i32* %245
- %670 = add i32 %669, 1
- store i32 %670, i32* %245
- %671 = load i8** %205
- %672 = getelementptr i8* %671, i32 28
- %673 = bitcast i8* %672 to i8**
- %674 = load i8** %673
- %675 = getelementptr i8* %674, i32 308
- %676 = bitcast i8* %675 to i8**
- %677 = load i8** %676
- %678 = getelementptr i8* %677, i32 8
- %679 = bitcast i8* %678 to i32*
- %680 = load i32* %679
- %681 = getelementptr i8* %130, i32 %680
- %682 = bitcast i8* %681 to i8**
- %683 = load i8** %682
- %684 = icmp eq i8* %683, null
- br i1 %684, label %unref_done388, label %obj_not_null385
- obj_not_null385: ; preds = %not_null384
- %685 = bitcast i8* %683 to %OBJECT*
- %686 = getelementptr %OBJECT* %685, i32 0, i32 1
- %687 = load i32* %686
- %688 = add i32 %687, -1
- store i32 %688, i32* %686
- %689 = icmp slt i32 %688, 1
- br i1 %689, label %release_obj386, label %unref_done388
- release_obj386: ; preds = %obj_not_null385
- tail call void @CLASS_free(i8* %683)
- br label %unref_done388
- unref_done388: ; preds = %not_null384, %release_obj386, %obj_not_null385
- %690 = extractvalue %Object %668, 1
- store i8* %690, i8** %682
- %691 = load i32* %245
- %692 = add i32 %691, -1
- store i32 %692, i32* %245
- %693 = icmp slt i32 %692, 1
- br i1 %693, label %release_obj389, label %release_done390
- release_obj389: ; preds = %unref_done388
- tail call void @CLASS_free(i8* %130)
- br label %release_done390
- release_done390: ; preds = %unref_done388, %release_obj389
- %694 = load %Value** inttoptr (i32 134824628 to %Value**)
- %695 = getelementptr %Value* %694, i32 -1
- store %Value* %695, %Value** inttoptr (i32 134824628 to %Value**)
- br label %block391
- block391: ; preds = %release_done350, %release_done390
- %696 = load i8** inttoptr (i32 134824628 to i8**)
- %697 = load i8** inttoptr (i32 134824636 to i8**)
- %698 = getelementptr i8* %697, i32 48
- %699 = icmp eq i8* %698, %696
- br i1 %699, label %not_null403, label %if.then392
- if.then392: ; preds = %block391
- tail call void @stack_corrupted_abort()
- unreachable
- not_null403: ; preds = %block391
- %700 = load i32* %153
- %701 = add i32 %700, 1
- store i32 %701, i32* %153
- %.pre647 = load %Value** inttoptr (i32 134824628 to %Value**)
- %702 = bitcast %Value* %.pre647 to i8*
- %703 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144440041 to i8*), i32 18, i8* %702)
- %704 = bitcast %Value* %.pre647 to %ValueVariant*
- %705 = getelementptr %ValueVariant* %704, i32 0, i32 2
- %706 = load i64* %705
- %707 = getelementptr %ValueVariant* %704, i32 0, i32 1
- %708 = load i32* %707
- tail call void @JR_borrow_variant(i32 %708, i64 %706)
- %709 = getelementptr %Value* %.pre647, i32 1
- store %Value* %709, %Value** inttoptr (i32 134824628 to %Value**)
- %710 = load i32* %153
- %711 = add i32 %710, -1
- store i32 %711, i32* %153
- %712 = icmp slt i32 %711, 1
- br i1 %712, label %release_obj410, label %release_done411
- release_obj410: ; preds = %not_null403
- tail call void @CLASS_free(i8* %150)
- br label %release_done411
- release_done411: ; preds = %not_null403, %release_obj410
- %713 = load %Value** inttoptr (i32 134824628 to %Value**)
- %714 = getelementptr %Value* %713, i32 -1
- %715 = bitcast %Value* %714 to i8*
- tail call void @VALUE_convert(i8* %715, i32 1)
- %716 = load %Value** inttoptr (i32 134824628 to %Value**)
- %717 = getelementptr %Value* %716, i32 -1
- %718 = bitcast %Value* %717 to %Boolean*
- %719 = getelementptr %Boolean* %718, i32 0, i32 1
- %720 = load i32* %719
- %721 = icmp eq i32 %720, 0
- store %Value* %717, %Value** inttoptr (i32 134824628 to %Value**)
- br i1 %721, label %block452, label %not_null423
- not_null423: ; preds = %release_done411
- %722 = load i32* %153
- %723 = add i32 %722, 1
- store i32 %723, i32* %153
- %.pre652 = load %Value** inttoptr (i32 134824628 to %Value**)
- %724 = bitcast %Value* %.pre652 to i8*
- %725 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144440041 to i8*), i32 18, i8* %724)
- %726 = bitcast %Value* %.pre652 to %ValueVariant*
- %727 = getelementptr %ValueVariant* %726, i32 0, i32 2
- %728 = load i64* %727
- %729 = getelementptr %ValueVariant* %726, i32 0, i32 1
- %730 = load i32* %729
- tail call void @JR_borrow_variant(i32 %730, i64 %728)
- %731 = getelementptr %Value* %.pre652, i32 1
- store %Value* %731, %Value** inttoptr (i32 134824628 to %Value**)
- %732 = load i32* %153
- %733 = add i32 %732, -1
- store i32 %733, i32* %153
- %734 = icmp slt i32 %733, 1
- br i1 %734, label %release_obj430, label %not_null445
- release_obj430: ; preds = %not_null423
- tail call void @CLASS_free(i8* %150)
- br label %not_null445
- not_null445: ; preds = %not_null423, %release_obj430
- %735 = load %Value** inttoptr (i32 134824628 to %Value**)
- %736 = getelementptr %Value* %735, i32 -1
- %737 = bitcast %Value* %736 to i8*
- tail call void @VALUE_convert(i8* %737, i32 142289596)
- %738 = load %Value** inttoptr (i32 134824628 to %Value**)
- %739 = getelementptr %Value* %738, i32 -1
- %740 = bitcast %Value* %739 to %ValueObject*
- %741 = bitcast %Value* %739 to %Null*
- %742 = getelementptr %Null* %741, i32 0, i32 0
- %743 = load i32* %742
- %744 = icmp eq i32 %743, 15
- %745 = getelementptr %ValueObject* %740, i32 0, i32 1
- %746 = load i8** %745
- %747 = getelementptr %ValueObject* %740, i32 0, i32 0
- %748 = load i8** %747
- %749 = insertvalue %Object undef, i8* %748, 0
- %750 = insertvalue %Object %749, i8* %746, 1
- %751 = select i1 %744, %Object { i8* inttoptr (i32 142289596 to i8*), i8* null }, %Object %750
- %752 = load i32* %245
- %753 = add i32 %752, 1
- store i32 %753, i32* %245
- %754 = load i8** %205
- %755 = getelementptr i8* %754, i32 28
- %756 = bitcast i8* %755 to i8**
- %757 = load i8** %756
- %758 = getelementptr i8* %757, i32 284
- %759 = bitcast i8* %758 to i8**
- %760 = load i8** %759
- %761 = getelementptr i8* %760, i32 8
- %762 = bitcast i8* %761 to i32*
- %763 = load i32* %762
- %764 = getelementptr i8* %130, i32 %763
- %765 = bitcast i8* %764 to i8**
- %766 = load i8** %765
- %767 = icmp eq i8* %766, null
- br i1 %767, label %unref_done449, label %obj_not_null446
- obj_not_null446: ; preds = %not_null445
- %768 = bitcast i8* %766 to %OBJECT*
- %769 = getelementptr %OBJECT* %768, i32 0, i32 1
- %770 = load i32* %769
- %771 = add i32 %770, -1
- store i32 %771, i32* %769
- %772 = icmp slt i32 %771, 1
- br i1 %772, label %release_obj447, label %unref_done449
- release_obj447: ; preds = %obj_not_null446
- tail call void @CLASS_free(i8* %766)
- br label %unref_done449
- unref_done449: ; preds = %not_null445, %release_obj447, %obj_not_null446
- %773 = extractvalue %Object %751, 1
- store i8* %773, i8** %765
- %774 = load i32* %245
- %775 = add i32 %774, -1
- store i32 %775, i32* %245
- %776 = icmp slt i32 %775, 1
- br i1 %776, label %release_obj450, label %release_done451
- release_obj450: ; preds = %unref_done449
- tail call void @CLASS_free(i8* %130)
- br label %release_done451
- release_done451: ; preds = %unref_done449, %release_obj450
- %777 = load %Value** inttoptr (i32 134824628 to %Value**)
- %778 = getelementptr %Value* %777, i32 -1
- store %Value* %778, %Value** inttoptr (i32 134824628 to %Value**)
- br label %block452
- block452: ; preds = %release_done411, %release_done451
- %779 = load i8** inttoptr (i32 134824628 to i8**)
- %780 = load i8** inttoptr (i32 134824636 to i8**)
- %781 = getelementptr i8* %780, i32 48
- %782 = icmp eq i8* %781, %779
- br i1 %782, label %not_null464, label %if.then453
- if.then453: ; preds = %block452
- tail call void @stack_corrupted_abort()
- unreachable
- not_null464: ; preds = %block452
- %783 = load i32* %153
- %784 = add i32 %783, 1
- store i32 %784, i32* %153
- %.pre648 = load %Value** inttoptr (i32 134824628 to %Value**)
- %785 = bitcast %Value* %.pre648 to i8*
- %786 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144439789 to i8*), i32 7, i8* %785)
- %787 = bitcast %Value* %.pre648 to %ValueVariant*
- %788 = getelementptr %ValueVariant* %787, i32 0, i32 2
- %789 = load i64* %788
- %790 = getelementptr %ValueVariant* %787, i32 0, i32 1
- %791 = load i32* %790
- tail call void @JR_borrow_variant(i32 %791, i64 %789)
- %792 = getelementptr %Value* %.pre648, i32 1
- store %Value* %792, %Value** inttoptr (i32 134824628 to %Value**)
- %793 = load i32* %153
- %794 = add i32 %793, -1
- store i32 %794, i32* %153
- %795 = icmp slt i32 %794, 1
- br i1 %795, label %release_obj471, label %release_done472
- release_obj471: ; preds = %not_null464
- tail call void @CLASS_free(i8* %150)
- br label %release_done472
- release_done472: ; preds = %not_null464, %release_obj471
- %796 = load %Value** inttoptr (i32 134824628 to %Value**)
- %797 = getelementptr %Value* %796, i32 -1
- %798 = bitcast %Value* %797 to i8*
- tail call void @VALUE_convert(i8* %798, i32 9)
- %799 = load %Value** inttoptr (i32 134824628 to %Value**)
- %800 = getelementptr %Value* %799, i32 -1
- %801 = bitcast %Value* %800 to %String*
- %802 = getelementptr %String* %801, i32 0, i32 0
- %803 = load i32* %802
- %804 = getelementptr %String* %801, i32 0, i32 3
- %805 = load i32* %804
- %806 = getelementptr %String* %801, i32 0, i32 2
- %807 = load i32* %806
- %808 = getelementptr %String* %801, i32 0, i32 1
- %809 = load i8** %808
- %810 = icmp eq i32 %803, 12
- br i1 %810, label %bb1473, label %not_null492
- bb1473: ; preds = %release_done472
- tail call void @abort()
- unreachable
- not_null492: ; preds = %release_done472
- %811 = load i32* %245
- %812 = add i32 %811, 1
- store i32 %812, i32* %245
- %813 = load i8** %205
- %814 = getelementptr i8* %813, i32 28
- %815 = bitcast i8* %814 to i8**
- %816 = load i8** %815
- %817 = getelementptr i8* %816, i32 32
- %818 = bitcast i8* %817 to i8**
- %819 = load i8** %818
- %820 = getelementptr i8* %819, i32 8
- %821 = bitcast i8* %820 to i32*
- %822 = load i32* %821
- %823 = getelementptr i8* %130, i32 %822
- %824 = bitcast i8* %823 to i8**
- %825 = load i8** %824
- %826 = icmp eq i8* %825, null
- br i1 %826, label %unref_done496, label %str_not_null493
- str_not_null493: ; preds = %not_null492
- %827 = bitcast i8* %825 to i32*
- %828 = getelementptr i32* %827, i32 -2
- %829 = load i32* %828
- %830 = add i32 %829, -1
- store i32 %830, i32* %828
- %831 = icmp slt i32 %830, 1
- br i1 %831, label %release_str494, label %unref_done496
- release_str494: ; preds = %str_not_null493
- tail call void @STRING_free_real(i8* %825)
- br label %unref_done496
- unref_done496: ; preds = %not_null492, %release_str494, %str_not_null493
- %832 = icmp eq i32 %805, 0
- br i1 %832, label %if.cont506, label %if.then497
- if.then497: ; preds = %unref_done496
- %833 = icmp eq i32 %803, 9
- %834 = icmp eq i32 %807, 0
- %835 = and i1 %833, %834
- br i1 %835, label %and_if498, label %if.then500
- and_if498: ; preds = %if.then497
- %836 = getelementptr i8* %809, i32 -4
- %837 = bitcast i8* %836 to i32*
- %838 = load i32* %837
- %phitmp625 = icmp eq i32 %838, %805
- br i1 %phitmp625, label %if.cont506, label %if.then500
- if.then500: ; preds = %and_if498, %if.then497
- %839 = getelementptr i8* %809, i32 %807
- %840 = tail call i8* @STRING_new(i8* %839, i32 %805)
- %841 = tail call i8* @STRING_free_later(i8* %840)
- br i1 %833, label %if.then501, label %if.cont504
- if.then501: ; preds = %if.then500
- %842 = bitcast i8* %809 to i32*
- %843 = getelementptr i32* %842, i32 -2
- %844 = load i32* %843
- %845 = add i32 %844, -1
- store i32 %845, i32* %843
- %846 = icmp slt i32 %845, 1
- br i1 %846, label %release_str502, label %if.cont504
- release_str502: ; preds = %if.then501
- tail call void @STRING_free_real(i8* %809)
- br label %if.cont504
- if.cont504: ; preds = %release_str502, %if.then501, %if.then500
- %847 = bitcast i8* %841 to i32*
- %848 = getelementptr i32* %847, i32 -2
- %849 = load i32* %848
- %850 = add i32 %849, 1
- store i32 %850, i32* %848
- br label %if.cont506
- if.cont506: ; preds = %and_if498, %unref_done496, %if.cont504
- %851 = phi i8* [ null, %unref_done496 ], [ %841, %if.cont504 ], [ %809, %and_if498 ]
- store i8* %851, i8** %824
- %852 = load i32* %245
- %853 = add i32 %852, -1
- store i32 %853, i32* %245
- %854 = icmp slt i32 %853, 1
- br i1 %854, label %release_obj507, label %release_done508
- release_obj507: ; preds = %if.cont506
- tail call void @CLASS_free(i8* %130)
- br label %release_done508
- release_done508: ; preds = %if.cont506, %release_obj507
- %855 = load %Value** inttoptr (i32 134824628 to %Value**)
- %856 = getelementptr %Value* %855, i32 -1
- store %Value* %856, %Value** inttoptr (i32 134824628 to %Value**)
- %857 = load i8** inttoptr (i32 134824628 to i8**)
- %858 = load i8** inttoptr (i32 134824636 to i8**)
- %859 = getelementptr i8* %858, i32 48
- %860 = icmp eq i8* %859, %857
- br i1 %860, label %not_null520, label %if.then509
- if.then509: ; preds = %release_done508
- tail call void @stack_corrupted_abort()
- unreachable
- not_null520: ; preds = %release_done508
- %861 = load i32* %153
- %862 = add i32 %861, 1
- store i32 %862, i32* %153
- %.pre649 = load %Value** inttoptr (i32 134824628 to %Value**)
- %863 = bitcast %Value* %.pre649 to i8*
- %864 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144439797 to i8*), i32 7, i8* %863)
- %865 = bitcast %Value* %.pre649 to %ValueVariant*
- %866 = getelementptr %ValueVariant* %865, i32 0, i32 2
- %867 = load i64* %866
- %868 = getelementptr %ValueVariant* %865, i32 0, i32 1
- %869 = load i32* %868
- tail call void @JR_borrow_variant(i32 %869, i64 %867)
- %870 = getelementptr %Value* %.pre649, i32 1
- store %Value* %870, %Value** inttoptr (i32 134824628 to %Value**)
- %871 = load i32* %153
- %872 = add i32 %871, -1
- store i32 %872, i32* %153
- %873 = icmp slt i32 %872, 1
- br i1 %873, label %release_obj527, label %release_done528
- release_obj527: ; preds = %not_null520
- tail call void @CLASS_free(i8* %150)
- br label %release_done528
- release_done528: ; preds = %not_null520, %release_obj527
- %874 = load %Value** inttoptr (i32 134824628 to %Value**)
- %875 = getelementptr %Value* %874, i32 -1
- %876 = bitcast %Value* %875 to i8*
- tail call void @VALUE_convert(i8* %876, i32 9)
- %877 = load %Value** inttoptr (i32 134824628 to %Value**)
- %878 = getelementptr %Value* %877, i32 -1
- %879 = bitcast %Value* %878 to %String*
- %880 = getelementptr %String* %879, i32 0, i32 0
- %881 = load i32* %880
- %882 = getelementptr %String* %879, i32 0, i32 3
- %883 = load i32* %882
- %884 = getelementptr %String* %879, i32 0, i32 2
- %885 = load i32* %884
- %886 = getelementptr %String* %879, i32 0, i32 1
- %887 = load i8** %886
- %888 = icmp eq i32 %881, 12
- br i1 %888, label %bb1529, label %not_null548
- bb1529: ; preds = %release_done528
- tail call void @abort()
- unreachable
- not_null548: ; preds = %release_done528
- %889 = load i32* %245
- %890 = add i32 %889, 1
- store i32 %890, i32* %245
- %891 = load i8** %205
- %892 = getelementptr i8* %891, i32 28
- %893 = bitcast i8* %892 to i8**
- %894 = load i8** %893
- %895 = getelementptr i8* %894, i32 44
- %896 = bitcast i8* %895 to i8**
- %897 = load i8** %896
- %898 = getelementptr i8* %897, i32 8
- %899 = bitcast i8* %898 to i32*
- %900 = load i32* %899
- %901 = getelementptr i8* %130, i32 %900
- %902 = bitcast i8* %901 to i8**
- %903 = load i8** %902
- %904 = icmp eq i8* %903, null
- br i1 %904, label %unref_done552, label %str_not_null549
- str_not_null549: ; preds = %not_null548
- %905 = bitcast i8* %903 to i32*
- %906 = getelementptr i32* %905, i32 -2
- %907 = load i32* %906
- %908 = add i32 %907, -1
- store i32 %908, i32* %906
- %909 = icmp slt i32 %908, 1
- br i1 %909, label %release_str550, label %unref_done552
- release_str550: ; preds = %str_not_null549
- tail call void @STRING_free_real(i8* %903)
- br label %unref_done552
- unref_done552: ; preds = %not_null548, %release_str550, %str_not_null549
- %910 = icmp eq i32 %883, 0
- br i1 %910, label %if.cont562, label %if.then553
- if.then553: ; preds = %unref_done552
- %911 = icmp eq i32 %881, 9
- %912 = icmp eq i32 %885, 0
- %913 = and i1 %911, %912
- br i1 %913, label %and_if554, label %if.then556
- and_if554: ; preds = %if.then553
- %914 = getelementptr i8* %887, i32 -4
- %915 = bitcast i8* %914 to i32*
- %916 = load i32* %915
- %phitmp = icmp eq i32 %916, %883
- br i1 %phitmp, label %if.cont562, label %if.then556
- if.then556: ; preds = %and_if554, %if.then553
- %917 = getelementptr i8* %887, i32 %885
- %918 = tail call i8* @STRING_new(i8* %917, i32 %883)
- %919 = tail call i8* @STRING_free_later(i8* %918)
- br i1 %911, label %if.then557, label %if.cont560
- if.then557: ; preds = %if.then556
- %920 = bitcast i8* %887 to i32*
- %921 = getelementptr i32* %920, i32 -2
- %922 = load i32* %921
- %923 = add i32 %922, -1
- store i32 %923, i32* %921
- %924 = icmp slt i32 %923, 1
- br i1 %924, label %release_str558, label %if.cont560
- release_str558: ; preds = %if.then557
- tail call void @STRING_free_real(i8* %887)
- br label %if.cont560
- if.cont560: ; preds = %release_str558, %if.then557, %if.then556
- %925 = bitcast i8* %919 to i32*
- %926 = getelementptr i32* %925, i32 -2
- %927 = load i32* %926
- %928 = add i32 %927, 1
- store i32 %928, i32* %926
- br label %if.cont562
- if.cont562: ; preds = %and_if554, %unref_done552, %if.cont560
- %929 = phi i8* [ null, %unref_done552 ], [ %919, %if.cont560 ], [ %887, %and_if554 ]
- store i8* %929, i8** %902
- %930 = load i32* %245
- %931 = add i32 %930, -1
- store i32 %931, i32* %245
- %932 = icmp slt i32 %931, 1
- br i1 %932, label %release_obj563, label %release_done564
- release_obj563: ; preds = %if.cont562
- tail call void @CLASS_free(i8* %130)
- br label %release_done564
- release_done564: ; preds = %if.cont562, %release_obj563
- %933 = load %Value** inttoptr (i32 134824628 to %Value**)
- %934 = getelementptr %Value* %933, i32 -1
- store %Value* %934, %Value** inttoptr (i32 134824628 to %Value**)
- %935 = load i8** inttoptr (i32 134824628 to i8**)
- %936 = load i8** inttoptr (i32 134824636 to i8**)
- %937 = getelementptr i8* %936, i32 48
- %938 = icmp eq i8* %937, %935
- br i1 %938, label %not_null570, label %if.then565
- if.then565: ; preds = %release_done564
- tail call void @stack_corrupted_abort()
- unreachable
- not_null570: ; preds = %release_done564
- %939 = load i32* %153
- %940 = add i32 %939, 1
- store i32 %940, i32* %153
- %.pre650 = load %Value** inttoptr (i32 134824628 to %Value**)
- %941 = getelementptr %OBJECT* %152, i32 0, i32 0
- %942 = load i8** %941
- %943 = bitcast i8* %942 to i8**
- %944 = getelementptr i8** %943, i32 7
- %945 = load i8** %944
- %946 = getelementptr i8* %945, i32 80
- %947 = bitcast i8* %946 to i8**
- %948 = load i8** %947
- %949 = getelementptr i8* %948, i32 19
- %950 = load i8* %949
- %951 = shl i8 %950, 1
- %952 = and i8 %951, 2
- %953 = xor i8 %952, 3
- %954 = bitcast %Value* %.pre650 to %ValueFunction*
- %955 = getelementptr %ValueFunction* %954, i32 0, i32 0
- store i32 13, i32* %955
- %956 = getelementptr %ValueFunction* %954, i32 0, i32 2
- store i8* %150, i8** %956
- %957 = getelementptr %ValueFunction* %954, i32 0, i32 3
- store i8 %953, i8* %957
- %958 = getelementptr %Value* %.pre650, i32 1
- %959 = bitcast %Value* %958 to %String*
- %960 = getelementptr %String* %959, i32 0, i32 0
- store i32 10, i32* %960
- %961 = getelementptr %String* %959, i32 0, i32 1
- store i8* inttoptr (i32 144439823 to i8*), i8** %961
- %962 = getelementptr %String* %959, i32 0, i32 2
- store i32 0, i32* %962
- %963 = getelementptr %String* %959, i32 0, i32 3
- store i32 9, i32* %963
- %964 = getelementptr %Value* %.pre650, i32 2
- store %Value* %964, %Value** inttoptr (i32 134824628 to %Value**)
- store i32 144437950, i32* inttoptr (i32 134824660 to i32*)
- store i8 1, i8* inttoptr (i32 134831632 to i8*)
- %965 = icmp eq i8 %952, 0
- br i1 %965, label %if.then571, label %if.else
- if.then571: ; preds = %not_null570
- tail call void @JR_exec_enter_quick(i8* %942, i8* %150, i32 6)
- br label %not_null582
- if.else: ; preds = %not_null570
- store i8* inttoptr (i32 134808580 to i8*), i8** inttoptr (i32 134831628 to i8**)
- store i8* %150, i8** inttoptr (i32 134831620 to i8**)
- store i8* %942, i8** inttoptr (i32 134831616 to i8**)
- tail call void @EXEC_native_quick()
- br label %not_null582
- not_null582: ; preds = %if.else, %if.then571
- %966 = load %Value** inttoptr (i32 134824628 to %Value**)
- %967 = getelementptr %Value* %966, i32 -1
- %968 = bitcast %Value* %967 to %Boolean*
- %969 = getelementptr %Boolean* %968, i32 0, i32 1
- %970 = load i32* %969
- %971 = icmp eq i32 %970, 0
- %972 = getelementptr %Boolean* %968, i32 0, i32 0
- store i32 1, i32* %972
- %973 = sext i1 %971 to i32
- store i32 %973, i32* %969
- store %Value* %966, %Value** inttoptr (i32 134824628 to %Value**)
- %974 = load i32* %153
- %975 = add i32 %974, 1
- store i32 %975, i32* %153
- %.pre651 = load %Value** inttoptr (i32 134824628 to %Value**)
- %976 = bitcast %Value* %.pre651 to i8*
- %977 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144439823 to i8*), i32 9, i8* %976)
- %978 = bitcast %Value* %.pre651 to %ValueVariant*
- %979 = getelementptr %ValueVariant* %978, i32 0, i32 2
- %980 = load i64* %979
- %981 = getelementptr %ValueVariant* %978, i32 0, i32 1
- %982 = load i32* %981
- tail call void @JR_borrow_variant(i32 %982, i64 %980)
- %983 = getelementptr %Value* %.pre651, i32 1
- store %Value* %983, %Value** inttoptr (i32 134824628 to %Value**)
- %984 = load i32* %153
- %985 = add i32 %984, -1
- store i32 %985, i32* %153
- %986 = icmp slt i32 %985, 1
- br i1 %986, label %release_obj589, label %release_done590
- release_obj589: ; preds = %not_null582
- tail call void @CLASS_free(i8* %150)
- br label %release_done590
- release_done590: ; preds = %not_null582, %release_obj589
- tail call void @SUBR_and_(i16 1)
- %987 = load %Value** inttoptr (i32 134824628 to %Value**)
- %988 = getelementptr %Value* %987, i32 -1
- %989 = bitcast %Value* %988 to i8*
- tail call void @VALUE_convert(i8* %989, i32 1)
- %990 = load %Value** inttoptr (i32 134824628 to %Value**)
- %991 = getelementptr %Value* %990, i32 -1
- %992 = bitcast %Value* %991 to %Boolean*
- %993 = getelementptr %Boolean* %992, i32 0, i32 1
- %994 = load i32* %993
- %995 = icmp eq i32 %994, 0
- store %Value* %991, %Value** inttoptr (i32 134824628 to %Value**)
- %996 = load i8** inttoptr (i32 134824628 to i8**)
- %997 = load i8** inttoptr (i32 134824636 to i8**)
- %998 = getelementptr i8* %997, i32 48
- %999 = icmp ne i8* %998, %996
- br i1 %995, label %block604, label %block592
- block592: ; preds = %release_done590
- br i1 %999, label %if.then593, label %not_null600
- if.then593: ; preds = %block592
- tail call void @stack_corrupted_abort()
- unreachable
- not_null600: ; preds = %block592
- %1000 = load i32* %245
- %1001 = add i32 %1000, 1
- store i32 %1001, i32* %245
- %1002 = load i8** %205
- %1003 = getelementptr i8* %1002, i32 28
- %1004 = bitcast i8* %1003 to i8**
- %1005 = load i8** %1004
- %1006 = getelementptr i8* %1005, i32 80
- %1007 = bitcast i8* %1006 to i8**
- %1008 = load i8** %1007
- %1009 = getelementptr i8* %1008, i32 8
- %1010 = bitcast i8* %1009 to i32*
- %1011 = load i32* %1010
- %1012 = getelementptr i8* %130, i32 %1011
- store i8 -1, i8* %1012
- %1013 = load i32* %245
- %1014 = add i32 %1013, -1
- store i32 %1014, i32* %245
- %1015 = icmp slt i32 %1014, 1
- br i1 %1015, label %release_obj601, label %block615
- release_obj601: ; preds = %not_null600
- tail call void @CLASS_free(i8* %130)
- br label %block615
- block604: ; preds = %release_done590
- br i1 %999, label %if.then605, label %not_null612
- if.then605: ; preds = %block604
- tail call void @stack_corrupted_abort()
- unreachable
- not_null612: ; preds = %block604
- %1016 = load i32* %245
- %1017 = add i32 %1016, 1
- store i32 %1017, i32* %245
- %1018 = load i8** %205
- %1019 = getelementptr i8* %1018, i32 28
- %1020 = bitcast i8* %1019 to i8**
- %1021 = load i8** %1020
- %1022 = getelementptr i8* %1021, i32 80
- %1023 = bitcast i8* %1022 to i8**
- %1024 = load i8** %1023
- %1025 = getelementptr i8* %1024, i32 8
- %1026 = bitcast i8* %1025 to i32*
- %1027 = load i32* %1026
- %1028 = getelementptr i8* %130, i32 %1027
- store i8 0, i8* %1028
- %1029 = load i32* %245
- %1030 = add i32 %1029, -1
- store i32 %1030, i32* %245
- %1031 = icmp slt i32 %1030, 1
- br i1 %1031, label %release_obj613, label %block615
- release_obj613: ; preds = %not_null612
- tail call void @CLASS_free(i8* %130)
- br label %block615
- block615: ; preds = %release_obj613, %not_null612, %release_obj601, %not_null600
- %1032 = load i8** inttoptr (i32 134824628 to i8**)
- %1033 = load i8** inttoptr (i32 134824636 to i8**)
- %1034 = getelementptr i8* %1033, i32 48
- %1035 = icmp eq i8* %1034, %1032
- br i1 %1035, label %borrow_object_done619, label %if.then616
- if.then616: ; preds = %block615
- tail call void @stack_corrupted_abort()
- unreachable
- borrow_object_done619: ; preds = %block615
- %1036 = load i32* %245
- %1037 = add i32 %1036, 1
- store i32 %1037, i32* %245
- store i8* %128, i8** getelementptr (%ValueObject* inttoptr (i32 134831572 to %ValueObject*), i32 0, i32 0)
- store i8* %130, i8** getelementptr (%ValueObject* inttoptr (i32 134831572 to %ValueObject*), i32 0, i32 1)
- tail call void @EXEC_leave_keep()
- ret void
- }
- declare void @stack_corrupted_abort()
- declare void @JR_borrow_variant(i32, i64)
- declare void @VALUE_convert(i8*, i32)
- declare void @CLASS_free(i8*)
- declare void @abort()
- declare void @JR_exec_enter_quick(i8*, i8*, i32)
- declare void @EXEC_new()
- declare void @STRING_free_real(i8*)
- declare void @THROW(i32, ...)
- declare i8 @GB.Collection.Get(i8*, i8*, i32, i8*)
- declare i8* @STRING_new(i8*, i32)
- declare i8* @STRING_free_later(i8*)
- declare void @EXEC_native_quick()
- declare void @SUBR_and_(i16)
- declare void @EXEC_leave_keep()
- ------------------------------------------------------------------------
- ------------------------------------------------------------------------
- gb.jit: beginning compiling Module.Module:
- ------------------------------------------------------------------------
- ------------------------------------------------------------------------
- gb.jit: dumping function Module.Module:
- ------------------------------------------------------------------------
- ; ModuleID = 'jit_mod'
- target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S128"
- target triple = "i386-unknown-linux-gnu"
- %Class = type { i32, i8* }
- %Value = type { i32, i32, i32, i32 }
- %ValueObject = type { i8*, i8*, i8* }
- %Null = type { i32 }
- %Object = type { i8*, i8* }
- %OBJECT = type { i8*, i32 }
- %Void = type { i32, i32, i32, i32 }
- define void @func_2_Module_1() {
- entry:
- %0 = load i8** inttoptr (i32 134824648 to i8**)
- %1 = load %Class** inttoptr (i32 134824628 to %Class**)
- %2 = getelementptr %Class* %1, i32 0, i32 0
- store i32 14, i32* %2
- %3 = getelementptr %Class* %1, i32 0, i32 1
- store i8* inttoptr (i32 142289596 to i8*), i8** %3
- %4 = load %Value** inttoptr (i32 134824628 to %Value**)
- %5 = getelementptr %Value* %4, i32 1
- store %Value* %5, %Value** inttoptr (i32 134824628 to %Value**)
- store i32 144437346, i32* inttoptr (i32 134824660 to i32*)
- tail call void @EXEC_new()
- %6 = load %Value** inttoptr (i32 134824628 to %Value**)
- %7 = getelementptr %Value* %6, i32 -1
- %8 = bitcast %Value* %7 to %ValueObject*
- %9 = bitcast %Value* %7 to %Null*
- %10 = getelementptr %Null* %9, i32 0, i32 0
- %11 = load i32* %10
- %12 = icmp eq i32 %11, 15
- %13 = getelementptr %ValueObject* %8, i32 0, i32 1
- %14 = load i8** %13
- %15 = getelementptr %ValueObject* %8, i32 0, i32 0
- %16 = load i8** %15
- %17 = insertvalue %Object undef, i8* %16, 0
- %18 = insertvalue %Object %17, i8* %14, 1
- %19 = select i1 %12, %Object { i8* inttoptr (i32 142289596 to i8*), i8* null }, %Object %18
- store %Value* %7, %Value** inttoptr (i32 134824628 to %Value**)
- %20 = getelementptr i8* %0, i32 28
- %21 = bitcast i8* %20 to i8**
- %22 = load i8** %21
- %23 = icmp eq i8* %22, null
- br i1 %23, label %unref_done, label %obj_not_null
- obj_not_null: ; preds = %entry
- %24 = bitcast i8* %22 to %OBJECT*
- %25 = getelementptr %OBJECT* %24, i32 0, i32 1
- %26 = load i32* %25
- %27 = add i32 %26, -1
- store i32 %27, i32* %25
- %28 = icmp slt i32 %27, 1
- br i1 %28, label %release_obj, label %unref_done
- release_obj: ; preds = %obj_not_null
- tail call void @CLASS_free(i8* %22)
- br label %unref_done
- unref_done: ; preds = %entry, %release_obj, %obj_not_null
- %29 = extractvalue %Object %19, 1
- store i8* %29, i8** %21
- %30 = load %Class** inttoptr (i32 134824628 to %Class**)
- %31 = getelementptr %Class* %30, i32 0, i32 0
- store i32 14, i32* %31
- %32 = getelementptr %Class* %30, i32 0, i32 1
- store i8* inttoptr (i32 142289596 to i8*), i8** %32
- %33 = load %Value** inttoptr (i32 134824628 to %Value**)
- %34 = getelementptr %Value* %33, i32 1
- store %Value* %34, %Value** inttoptr (i32 134824628 to %Value**)
- store i32 144437352, i32* inttoptr (i32 134824660 to i32*)
- tail call void @EXEC_new()
- %35 = load %Value** inttoptr (i32 134824628 to %Value**)
- %36 = getelementptr %Value* %35, i32 -1
- %37 = bitcast %Value* %36 to %ValueObject*
- %38 = bitcast %Value* %36 to %Null*
- %39 = getelementptr %Null* %38, i32 0, i32 0
- %40 = load i32* %39
- %41 = icmp eq i32 %40, 15
- %42 = getelementptr %ValueObject* %37, i32 0, i32 1
- %43 = load i8** %42
- %44 = getelementptr %ValueObject* %37, i32 0, i32 0
- %45 = load i8** %44
- %46 = insertvalue %Object undef, i8* %45, 0
- %47 = insertvalue %Object %46, i8* %43, 1
- %48 = select i1 %41, %Object { i8* inttoptr (i32 142289596 to i8*), i8* null }, %Object %47
- store %Value* %36, %Value** inttoptr (i32 134824628 to %Value**)
- %49 = getelementptr i8* %0, i32 32
- %50 = bitcast i8* %49 to i8**
- %51 = load i8** %50
- %52 = icmp eq i8* %51, null
- br i1 %52, label %unref_done4, label %obj_not_null1
- obj_not_null1: ; preds = %unref_done
- %53 = bitcast i8* %51 to %OBJECT*
- %54 = getelementptr %OBJECT* %53, i32 0, i32 1
- %55 = load i32* %54
- %56 = add i32 %55, -1
- store i32 %56, i32* %54
- %57 = icmp slt i32 %56, 1
- br i1 %57, label %release_obj2, label %unref_done4
- release_obj2: ; preds = %obj_not_null1
- tail call void @CLASS_free(i8* %51)
- br label %unref_done4
- unref_done4: ; preds = %unref_done, %release_obj2, %obj_not_null1
- %58 = extractvalue %Object %48, 1
- store i8* %58, i8** %50
- %59 = load %Class** inttoptr (i32 134824628 to %Class**)
- %60 = getelementptr %Class* %59, i32 0, i32 0
- store i32 14, i32* %60
- %61 = getelementptr %Class* %59, i32 0, i32 1
- store i8* inttoptr (i32 142289596 to i8*), i8** %61
- %62 = load %Value** inttoptr (i32 134824628 to %Value**)
- %63 = getelementptr %Value* %62, i32 1
- store %Value* %63, %Value** inttoptr (i32 134824628 to %Value**)
- store i32 144437358, i32* inttoptr (i32 134824660 to i32*)
- tail call void @EXEC_new()
- %64 = load %Value** inttoptr (i32 134824628 to %Value**)
- %65 = getelementptr %Value* %64, i32 -1
- %66 = bitcast %Value* %65 to %ValueObject*
- %67 = bitcast %Value* %65 to %Null*
- %68 = getelementptr %Null* %67, i32 0, i32 0
- %69 = load i32* %68
- %70 = icmp eq i32 %69, 15
- %71 = getelementptr %ValueObject* %66, i32 0, i32 1
- %72 = load i8** %71
- %73 = getelementptr %ValueObject* %66, i32 0, i32 0
- %74 = load i8** %73
- %75 = insertvalue %Object undef, i8* %74, 0
- %76 = insertvalue %Object %75, i8* %72, 1
- %77 = select i1 %70, %Object { i8* inttoptr (i32 142289596 to i8*), i8* null }, %Object %76
- store %Value* %65, %Value** inttoptr (i32 134824628 to %Value**)
- %78 = getelementptr i8* %0, i32 40
- %79 = bitcast i8* %78 to i8**
- %80 = load i8** %79
- %81 = icmp eq i8* %80, null
- br i1 %81, label %unref_done8, label %obj_not_null5
- obj_not_null5: ; preds = %unref_done4
- %82 = bitcast i8* %80 to %OBJECT*
- %83 = getelementptr %OBJECT* %82, i32 0, i32 1
- %84 = load i32* %83
- %85 = add i32 %84, -1
- store i32 %85, i32* %83
- %86 = icmp slt i32 %85, 1
- br i1 %86, label %release_obj6, label %unref_done8
- release_obj6: ; preds = %obj_not_null5
- tail call void @CLASS_free(i8* %80)
- br label %unref_done8
- unref_done8: ; preds = %unref_done4, %release_obj6, %obj_not_null5
- %87 = extractvalue %Object %77, 1
- store i8* %87, i8** %79
- %88 = load %Class** inttoptr (i32 134824628 to %Class**)
- %89 = getelementptr %Class* %88, i32 0, i32 0
- store i32 14, i32* %89
- %90 = getelementptr %Class* %88, i32 0, i32 1
- store i8* inttoptr (i32 142289596 to i8*), i8** %90
- %91 = load %Value** inttoptr (i32 134824628 to %Value**)
- %92 = getelementptr %Value* %91, i32 1
- store %Value* %92, %Value** inttoptr (i32 134824628 to %Value**)
- store i32 144437364, i32* inttoptr (i32 134824660 to i32*)
- tail call void @EXEC_new()
- %93 = load %Value** inttoptr (i32 134824628 to %Value**)
- %94 = getelementptr %Value* %93, i32 -1
- %95 = bitcast %Value* %94 to %ValueObject*
- %96 = bitcast %Value* %94 to %Null*
- %97 = getelementptr %Null* %96, i32 0, i32 0
- %98 = load i32* %97
- %99 = icmp eq i32 %98, 15
- %100 = getelementptr %ValueObject* %95, i32 0, i32 1
- %101 = load i8** %100
- %102 = getelementptr %ValueObject* %95, i32 0, i32 0
- %103 = load i8** %102
- %104 = insertvalue %Object undef, i8* %103, 0
- %105 = insertvalue %Object %104, i8* %101, 1
- %106 = select i1 %99, %Object { i8* inttoptr (i32 142289596 to i8*), i8* null }, %Object %105
- store %Value* %94, %Value** inttoptr (i32 134824628 to %Value**)
- %107 = getelementptr i8* %0, i32 48
- %108 = bitcast i8* %107 to i8**
- %109 = load i8** %108
- %110 = icmp eq i8* %109, null
- br i1 %110, label %unref_done12, label %obj_not_null9
- obj_not_null9: ; preds = %unref_done8
- %111 = bitcast i8* %109 to %OBJECT*
- %112 = getelementptr %OBJECT* %111, i32 0, i32 1
- %113 = load i32* %112
- %114 = add i32 %113, -1
- store i32 %114, i32* %112
- %115 = icmp slt i32 %114, 1
- br i1 %115, label %release_obj10, label %unref_done12
- release_obj10: ; preds = %obj_not_null9
- tail call void @CLASS_free(i8* %109)
- br label %unref_done12
- unref_done12: ; preds = %unref_done8, %release_obj10, %obj_not_null9
- %116 = extractvalue %Object %106, 1
- store i8* %116, i8** %108
- %117 = getelementptr i8* %0, i32 64
- store i8 -1, i8* %117
- store i32 0, i32* getelementptr (%Void* inttoptr (i32 134831572 to %Void*), i32 0, i32 0)
- tail call void @EXEC_leave_keep()
- ret void
- }
- declare void @EXEC_new()
- declare void @CLASS_free(i8*)
- declare void @EXEC_leave_keep()
- ------------------------------------------------------------------------
- Stack became corrupted in a JIT function. Please make a bug report.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement