Created
May 18, 2022 21:49
-
-
Save sinistersnare/d7c5f2e379b170f7fdc3cc00c6361501 to your computer and use it in GitHub Desktop.
A LLVM .ll file with a @main function thats ~10k lines long...
This file has been truncated, but you can view the full file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = './src/cpp/runtime.cpp' | |
source_filename = "./src/cpp/runtime.cpp" | |
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" | |
target triple = "x86_64-pc-linux-gnu" | |
%struct.Map = type { %struct.Map*, %struct.SinObj*, %struct.SinObj* } | |
%struct.SinObj = type { i8*, i32 } | |
%struct.SinRecord = type { %struct.SinObj**, %struct.SinRecord*, i64, i64, i8* } | |
@.str = private unnamed_addr constant [18 x i8] c"Register Values:\0A\00", align 1 | |
@.str.1 = private unnamed_addr constant [38 x i8] c"srr:`%p`,fpr:`%p`,spr:`%p`,retr:`%p`\0A\00", align 1 | |
@.str.2 = private unnamed_addr constant [10 x i8] c"_get_both\00", align 1 | |
@.str.3 = private unnamed_addr constant [22 x i8] c"closure_place_freevar\00", align 1 | |
@.str.4 = private unnamed_addr constant [21 x i8] c"closure_get_env_part\00", align 1 | |
@.str.5 = private unnamed_addr constant [20 x i8] c"closure_get_fn_part\00", align 1 | |
@.str.6 = private unnamed_addr constant [23 x i8] c"descent == full->stack\00", align 1 | |
@.str.7 = private unnamed_addr constant [22 x i8] c"./src/cpp/runtime.cpp\00", align 1 | |
@__PRETTY_FUNCTION__.handle_overflow = private unnamed_addr constant [72 x i8] c"void handle_overflow(SinRecord **, SinObj ***, SinObj ***, void *, s64)\00", align 1 | |
@.str.8 = private unnamed_addr constant [31 x i8] c"Fatal library run-time error: \00", align 1 | |
@.str.9 = private unnamed_addr constant [55 x i8] c"Expected cons but got something else for function '%s'\00", align 1 | |
@.str.10 = private unnamed_addr constant [14 x i8] c"applyprim_car\00", align 1 | |
@.str.11 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 | |
@.str.12 = private unnamed_addr constant [37 x i8] c"function '%s' only takes 1 argument.\00", align 1 | |
@.str.13 = private unnamed_addr constant [4 x i8] c"car\00", align 1 | |
@.str.14 = private unnamed_addr constant [4 x i8] c"+ a\00", align 1 | |
@.str.15 = private unnamed_addr constant [4 x i8] c"+ b\00", align 1 | |
@.str.16 = private unnamed_addr constant [37 x i8] c"Expected Cons in apply +, but got %s\00", align 1 | |
@.str.17 = private unnamed_addr constant [14 x i8] c"apply + final\00", align 1 | |
@.str.18 = private unnamed_addr constant [24 x i8] c"applyprim_make_45vector\00", align 1 | |
@.str.19 = private unnamed_addr constant [46 x i8] c"Function '%s' expected 2 arguments but got 1.\00", align 1 | |
@.str.20 = private unnamed_addr constant [38 x i8] c"Function '%s' only takes 2 arguments.\00", align 1 | |
@.str.21 = private unnamed_addr constant [12 x i8] c"make-vector\00", align 1 | |
@.str.22 = private unnamed_addr constant [16 x i8] c"closure_env_get\00", align 1 | |
@.str.23 = private unnamed_addr constant [49 x i8] c"unwrap_hash takes a Hash object! Got %d in fn %s\00", align 1 | |
@.str.24 = private unnamed_addr constant [49 x i8] c"unwrap_cons takes a Cons object! Got %d in fn %s\00", align 1 | |
@.str.25 = private unnamed_addr constant [53 x i8] c"unwrap_vector takes a Vector object! Got %d in fn %s\00", align 1 | |
@.str.26 = private unnamed_addr constant [51 x i8] c"unwrap_clo takes a Closure object! Got %d in fn %s\00", align 1 | |
@.str.27 = private unnamed_addr constant [48 x i8] c"unwrap_int takes an Int object! Got %d in fn %s\00", align 1 | |
@.str.28 = private unnamed_addr constant [49 x i8] c"unwrap_bool takes a Bool object! Got %d in fn %s\00", align 1 | |
@.str.29 = private unnamed_addr constant [47 x i8] c"unwrap_str takes a Str object! Got %d in fn %s\00", align 1 | |
@.str.30 = private unnamed_addr constant [47 x i8] c"unwrap_sym takes a Sym object! Got %d in fn %s\00", align 1 | |
@.str.31 = private unnamed_addr constant [16 x i8] c"is_truthy_value\00", align 1 | |
@.str.32 = private unnamed_addr constant [18 x i8] c"applyprim_display\00", align 1 | |
@.str.33 = private unnamed_addr constant [16 x i8] c"applyprim_print\00", align 1 | |
@.str.34 = private unnamed_addr constant [4 x i8] c"'()\00", align 1 | |
@.str.35 = private unnamed_addr constant [4 x i8] c"'%s\00", align 1 | |
@.str.36 = private unnamed_addr constant [21 x i8] c"prim_print Sym case.\00", align 1 | |
@.str.37 = private unnamed_addr constant [3 x i8] c"'(\00", align 1 | |
@.str.38 = private unnamed_addr constant [2 x i8] c")\00", align 1 | |
@.str.39 = private unnamed_addr constant [18 x i8] c"applyprim_println\00", align 1 | |
@.str.40 = private unnamed_addr constant [8 x i8] c"#<void>\00", align 1 | |
@.str.41 = private unnamed_addr constant [3 x i8] c"()\00", align 1 | |
@.str.42 = private unnamed_addr constant [25 x i8] c"prim_print_aux bool case\00", align 1 | |
@.str.43 = private unnamed_addr constant [3 x i8] c"#f\00", align 1 | |
@.str.44 = private unnamed_addr constant [3 x i8] c"#t\00", align 1 | |
@.str.45 = private unnamed_addr constant [27 x i8] c"Unknown Boolean value: %lu\00", align 1 | |
@.str.46 = private unnamed_addr constant [16 x i8] c"#<continuation>\00", align 1 | |
@.str.47 = private unnamed_addr constant [13 x i8] c"#<procedure>\00", align 1 | |
@.str.48 = private unnamed_addr constant [2 x i8] c"(\00", align 1 | |
@.str.49 = private unnamed_addr constant [4 x i8] c"%ld\00", align 1 | |
@.str.50 = private unnamed_addr constant [25 x i8] c"prim_print_aux Int case.\00", align 1 | |
@.str.51 = private unnamed_addr constant [3 x i8] c"%s\00", align 1 | |
@.str.52 = private unnamed_addr constant [25 x i8] c"prim_print_aux Str case.\00", align 1 | |
@.str.53 = private unnamed_addr constant [25 x i8] c"prim_print_aux Sym case.\00", align 1 | |
@.str.54 = private unnamed_addr constant [7 x i8] c"#hash(\00", align 1 | |
@.str.55 = private unnamed_addr constant [30 x i8] c"Sets not currently supported!\00", align 1 | |
@.str.56 = private unnamed_addr constant [34 x i8] c"(print v); unrecognized value %lu\00", align 1 | |
@.str.57 = private unnamed_addr constant [11 x i8] c"print_cons\00", align 1 | |
@.str.58 = private unnamed_addr constant [2 x i8] c" \00", align 1 | |
@.str.59 = private unnamed_addr constant [4 x i8] c" . \00", align 1 | |
@.str.60 = private unnamed_addr constant [13 x i8] c"print_vector\00", align 1 | |
@.str.61 = private unnamed_addr constant [3 x i8] c"#(\00", align 1 | |
@.str.62 = private unnamed_addr constant [11 x i8] c"print_hash\00", align 1 | |
@.str.63 = private unnamed_addr constant [5 x i8] c"Void\00", align 1 | |
@.str.64 = private unnamed_addr constant [5 x i8] c"Null\00", align 1 | |
@.str.65 = private unnamed_addr constant [5 x i8] c"Bool\00", align 1 | |
@.str.66 = private unnamed_addr constant [13 x i8] c"Continuation\00", align 1 | |
@.str.67 = private unnamed_addr constant [8 x i8] c"Closure\00", align 1 | |
@.str.68 = private unnamed_addr constant [5 x i8] c"Cons\00", align 1 | |
@.str.69 = private unnamed_addr constant [4 x i8] c"Int\00", align 1 | |
@.str.70 = private unnamed_addr constant [7 x i8] c"String\00", align 1 | |
@.str.71 = private unnamed_addr constant [7 x i8] c"Symbol\00", align 1 | |
@.str.72 = private unnamed_addr constant [7 x i8] c"Vector\00", align 1 | |
@.str.73 = private unnamed_addr constant [5 x i8] c"Hash\00", align 1 | |
@.str.74 = private unnamed_addr constant [4 x i8] c"Set\00", align 1 | |
@.str.75 = private unnamed_addr constant [6 x i8] c"Other\00", align 1 | |
@.str.76 = private unnamed_addr constant [15 x i8] c"applyprim_halt\00", align 1 | |
@.str.77 = private unnamed_addr constant [18 x i8] c"get_vector_length\00", align 1 | |
@.str.78 = private unnamed_addr constant [59 x i8] c"Vectors larger than 256 elements are unimplemented. Sorry!\00", align 1 | |
@.str.79 = private unnamed_addr constant [20 x i8] c"applyprim_vector_63\00", align 1 | |
@.str.80 = private unnamed_addr constant [26 x i8] c"applyprim_vector_45length\00", align 1 | |
@.str.81 = private unnamed_addr constant [21 x i8] c"prim_vector_45length\00", align 1 | |
@.str.82 = private unnamed_addr constant [13 x i8] c"bounds check\00", align 1 | |
@.str.83 = private unnamed_addr constant [53 x i8] c"Bounds check fail, wanted pos %ld, only %ld elements\00", align 1 | |
@.str.84 = private unnamed_addr constant [23 x i8] c"applyprim_vector_45ref\00", align 1 | |
@.str.85 = private unnamed_addr constant [11 x i8] c"vector-ref\00", align 1 | |
@.str.86 = private unnamed_addr constant [21 x i8] c"vector-ref index_pos\00", align 1 | |
@.str.87 = private unnamed_addr constant [26 x i8] c"applyprim_vector_45set_33\00", align 1 | |
@.str.88 = private unnamed_addr constant [46 x i8] c"Function '%s' expected 3 arguments but got 1.\00", align 1 | |
@.str.89 = private unnamed_addr constant [46 x i8] c"Function '%s' expected 3 arguments but got 2.\00", align 1 | |
@.str.90 = private unnamed_addr constant [38 x i8] c"Function '%s' only takes 3 arguments.\00", align 1 | |
@.str.91 = private unnamed_addr constant [12 x i8] c"vector-set!\00", align 1 | |
@.str.92 = private unnamed_addr constant [28 x i8] c"apply vector-set! index_pos\00", align 1 | |
@.str.93 = private unnamed_addr constant [64 x i8] c"Expected an empty list but got something else for function '%s'\00", align 1 | |
@.str.94 = private unnamed_addr constant [15 x i8] c"applyprim_void\00", align 1 | |
@.str.95 = private unnamed_addr constant [19 x i8] c"vec_eq_helper avec\00", align 1 | |
@.str.96 = private unnamed_addr constant [19 x i8] c"vec_eq_helper bvec\00", align 1 | |
@.str.97 = private unnamed_addr constant [19 x i8] c"vec_eq_helper alen\00", align 1 | |
@.str.98 = private unnamed_addr constant [19 x i8] c"vec_eq_helper blen\00", align 1 | |
@.str.99 = private unnamed_addr constant [18 x i8] c"prim_eq_63 Bool a\00", align 1 | |
@.str.100 = private unnamed_addr constant [18 x i8] c"prim_eq_63 Bool b\00", align 1 | |
@.str.101 = private unnamed_addr constant [17 x i8] c"prim_eq_63 Int a\00", align 1 | |
@.str.102 = private unnamed_addr constant [17 x i8] c"prim_eq_63 Int b\00", align 1 | |
@.str.103 = private unnamed_addr constant [17 x i8] c"prim_eq_63 Str a\00", align 1 | |
@.str.104 = private unnamed_addr constant [17 x i8] c"prim_eq_63 Str b\00", align 1 | |
@.str.105 = private unnamed_addr constant [17 x i8] c"prim_eq_63 Sym a\00", align 1 | |
@.str.106 = private unnamed_addr constant [17 x i8] c"prim_eq_63 Sym b\00", align 1 | |
@.str.107 = private unnamed_addr constant [34 x i8] c"Hash eq? not supported currently.\00", align 1 | |
@.str.108 = private unnamed_addr constant [33 x i8] c"Set eq? not supported currently.\00", align 1 | |
@.str.109 = private unnamed_addr constant [42 x i8] c"I do not know what youre trying to eq?!!.\00", align 1 | |
@.str.110 = private unnamed_addr constant [16 x i8] c"applyprim_eq_63\00", align 1 | |
@.str.111 = private unnamed_addr constant [17 x i8] c"applyprim_eqv_63\00", align 1 | |
@.str.112 = private unnamed_addr constant [19 x i8] c"applyprim_equal_63\00", align 1 | |
@.str.113 = private unnamed_addr constant [20 x i8] c"applyprim_number_63\00", align 1 | |
@.str.114 = private unnamed_addr constant [21 x i8] c"applyprim_integer_63\00", align 1 | |
@.str.115 = private unnamed_addr constant [21 x i8] c"applyprim_boolean_63\00", align 1 | |
@.str.116 = private unnamed_addr constant [18 x i8] c"applyprim_void_63\00", align 1 | |
@.str.117 = private unnamed_addr constant [23 x i8] c"applyprim_procedure_63\00", align 1 | |
@.str.118 = private unnamed_addr constant [18 x i8] c"applyprim_null_63\00", align 1 | |
@.str.119 = private unnamed_addr constant [18 x i8] c"applyprim_cons_63\00", align 1 | |
@.str.120 = private unnamed_addr constant [15 x i8] c"applyprim_cons\00", align 1 | |
@.str.121 = private unnamed_addr constant [14 x i8] c"applyprim_cdr\00", align 1 | |
@.str.122 = private unnamed_addr constant [4 x i8] c"cdr\00", align 1 | |
@.str.123 = private unnamed_addr constant [4 x i8] c"- a\00", align 1 | |
@.str.124 = private unnamed_addr constant [4 x i8] c"- b\00", align 1 | |
@.str.125 = private unnamed_addr constant [8 x i8] c"apply -\00", align 1 | |
@.str.126 = private unnamed_addr constant [15 x i8] c"apply - carval\00", align 1 | |
@.str.127 = private unnamed_addr constant [20 x i8] c"applyprim__45 final\00", align 1 | |
@.str.128 = private unnamed_addr constant [4 x i8] c"* a\00", align 1 | |
@.str.129 = private unnamed_addr constant [4 x i8] c"* b\00", align 1 | |
@.str.130 = private unnamed_addr constant [17 x i8] c"apply * cons_obj\00", align 1 | |
@.str.131 = private unnamed_addr constant [15 x i8] c"apply * carval\00", align 1 | |
@.str.132 = private unnamed_addr constant [15 x i8] c"apply * cdrval\00", align 1 | |
@.str.133 = private unnamed_addr constant [36 x i8] c"apply * taking a non-list argument!\00", align 1 | |
@.str.134 = private unnamed_addr constant [4 x i8] c"/ a\00", align 1 | |
@.str.135 = private unnamed_addr constant [4 x i8] c"/ b\00", align 1 | |
@.str.136 = private unnamed_addr constant [14 x i8] c"applyprim__61\00", align 1 | |
@.str.137 = private unnamed_addr constant [4 x i8] c"= a\00", align 1 | |
@.str.138 = private unnamed_addr constant [4 x i8] c"= b\00", align 1 | |
@.str.139 = private unnamed_addr constant [4 x i8] c"< a\00", align 1 | |
@.str.140 = private unnamed_addr constant [4 x i8] c"< b\00", align 1 | |
@.str.141 = private unnamed_addr constant [17 x i8] c"applyprim__60_61\00", align 1 | |
@.str.142 = private unnamed_addr constant [5 x i8] c"<= a\00", align 1 | |
@.str.143 = private unnamed_addr constant [5 x i8] c"<= b\00", align 1 | |
@.str.144 = private unnamed_addr constant [14 x i8] c"applyprim_not\00", align 1 | |
@.str.145 = private unnamed_addr constant [4 x i8] c"not\00", align 1 | |
@.str.146 = private unnamed_addr constant [30 x i8] c"applyprim_hash_45has_45key_63\00", align 1 | |
@.str.147 = private unnamed_addr constant [14 x i8] c"hash-has-key?\00", align 1 | |
@.str.148 = private unnamed_addr constant [33 x i8] c"Key not provided value in (hash)\00", align 1 | |
@.str.149 = private unnamed_addr constant [22 x i8] c"applyprim_hash_45keys\00", align 1 | |
@.str.150 = private unnamed_addr constant [10 x i8] c"hash-keys\00", align 1 | |
@.str.151 = private unnamed_addr constant [32 x i8] c"Too many args given in hash-ref\00", align 1 | |
@.str.152 = private unnamed_addr constant [46 x i8] c"Bad Types Somewhere in hash-ref... good luck!\00", align 1 | |
@.str.153 = private unnamed_addr constant [9 x i8] c"hash-ref\00", align 1 | |
@.str.154 = private unnamed_addr constant [31 x i8] c"Map did not have requested key\00", align 1 | |
@.str.155 = private unnamed_addr constant [21 x i8] c"applyprim_hash_45set\00", align 1 | |
@.str.156 = private unnamed_addr constant [9 x i8] c"hash-set\00", align 1 | |
@.str.157 = private unnamed_addr constant [18 x i8] c"applyprim_hash_63\00", align 1 | |
@.str.158 = private unnamed_addr constant [23 x i8] c"applyprim_hash_45count\00", align 1 | |
@.str.159 = private unnamed_addr constant [11 x i8] c"hash-count\00", align 1 | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.Map* @insert_update(%struct.Map* noundef %0, %struct.SinObj* noundef %1, %struct.SinObj* noundef %2) #0 { | |
%4 = alloca %struct.Map*, align 8 | |
%5 = alloca %struct.Map*, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
%7 = alloca %struct.SinObj*, align 8 | |
%8 = alloca %struct.Map*, align 8 | |
%9 = alloca %struct.Map*, align 8 | |
store %struct.Map* %0, %struct.Map** %5, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %6, align 8 | |
store %struct.SinObj* %2, %struct.SinObj** %7, align 8 | |
%10 = load %struct.Map*, %struct.Map** %5, align 8 | |
%11 = icmp eq %struct.Map* %10, null | |
br i1 %11, label %12, label %24 | |
12: ; preds = %3 | |
%13 = call noalias i8* @malloc(i64 noundef 24) #9 | |
%14 = bitcast i8* %13 to %struct.Map* | |
store %struct.Map* %14, %struct.Map** %8, align 8 | |
%15 = load %struct.Map*, %struct.Map** %8, align 8 | |
%16 = getelementptr inbounds %struct.Map, %struct.Map* %15, i32 0, i32 0 | |
store %struct.Map* null, %struct.Map** %16, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%18 = load %struct.Map*, %struct.Map** %8, align 8 | |
%19 = getelementptr inbounds %struct.Map, %struct.Map* %18, i32 0, i32 1 | |
store %struct.SinObj* %17, %struct.SinObj** %19, align 8 | |
%20 = load %struct.SinObj*, %struct.SinObj** %7, align 8 | |
%21 = load %struct.Map*, %struct.Map** %8, align 8 | |
%22 = getelementptr inbounds %struct.Map, %struct.Map* %21, i32 0, i32 2 | |
store %struct.SinObj* %20, %struct.SinObj** %22, align 8 | |
%23 = load %struct.Map*, %struct.Map** %8, align 8 | |
store %struct.Map* %23, %struct.Map** %4, align 8 | |
br label %67 | |
24: ; preds = %3 | |
%25 = call noalias i8* @malloc(i64 noundef 24) #9 | |
%26 = bitcast i8* %25 to %struct.Map* | |
store %struct.Map* %26, %struct.Map** %9, align 8 | |
%27 = load %struct.Map*, %struct.Map** %5, align 8 | |
%28 = getelementptr inbounds %struct.Map, %struct.Map* %27, i32 0, i32 1 | |
%29 = load %struct.SinObj*, %struct.SinObj** %28, align 8 | |
%30 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%31 = call i32 @eq_helper(%struct.SinObj* noundef %29, %struct.SinObj* noundef %30) | |
%32 = icmp eq i32 %31, 1 | |
br i1 %32, label %33, label %46 | |
33: ; preds = %24 | |
%34 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%35 = load %struct.Map*, %struct.Map** %9, align 8 | |
%36 = getelementptr inbounds %struct.Map, %struct.Map* %35, i32 0, i32 1 | |
store %struct.SinObj* %34, %struct.SinObj** %36, align 8 | |
%37 = load %struct.SinObj*, %struct.SinObj** %7, align 8 | |
%38 = load %struct.Map*, %struct.Map** %9, align 8 | |
%39 = getelementptr inbounds %struct.Map, %struct.Map* %38, i32 0, i32 2 | |
store %struct.SinObj* %37, %struct.SinObj** %39, align 8 | |
%40 = load %struct.Map*, %struct.Map** %5, align 8 | |
%41 = getelementptr inbounds %struct.Map, %struct.Map* %40, i32 0, i32 0 | |
%42 = load %struct.Map*, %struct.Map** %41, align 8 | |
%43 = call %struct.Map* @insert_copy(%struct.Map* noundef %42) | |
%44 = load %struct.Map*, %struct.Map** %9, align 8 | |
%45 = getelementptr inbounds %struct.Map, %struct.Map* %44, i32 0, i32 0 | |
store %struct.Map* %43, %struct.Map** %45, align 8 | |
br label %65 | |
46: ; preds = %24 | |
%47 = load %struct.Map*, %struct.Map** %5, align 8 | |
%48 = getelementptr inbounds %struct.Map, %struct.Map* %47, i32 0, i32 1 | |
%49 = load %struct.SinObj*, %struct.SinObj** %48, align 8 | |
%50 = load %struct.Map*, %struct.Map** %9, align 8 | |
%51 = getelementptr inbounds %struct.Map, %struct.Map* %50, i32 0, i32 1 | |
store %struct.SinObj* %49, %struct.SinObj** %51, align 8 | |
%52 = load %struct.Map*, %struct.Map** %5, align 8 | |
%53 = getelementptr inbounds %struct.Map, %struct.Map* %52, i32 0, i32 2 | |
%54 = load %struct.SinObj*, %struct.SinObj** %53, align 8 | |
%55 = load %struct.Map*, %struct.Map** %9, align 8 | |
%56 = getelementptr inbounds %struct.Map, %struct.Map* %55, i32 0, i32 2 | |
store %struct.SinObj* %54, %struct.SinObj** %56, align 8 | |
%57 = load %struct.Map*, %struct.Map** %5, align 8 | |
%58 = getelementptr inbounds %struct.Map, %struct.Map* %57, i32 0, i32 0 | |
%59 = load %struct.Map*, %struct.Map** %58, align 8 | |
%60 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%61 = load %struct.SinObj*, %struct.SinObj** %7, align 8 | |
%62 = call %struct.Map* @insert_update(%struct.Map* noundef %59, %struct.SinObj* noundef %60, %struct.SinObj* noundef %61) | |
%63 = load %struct.Map*, %struct.Map** %9, align 8 | |
%64 = getelementptr inbounds %struct.Map, %struct.Map* %63, i32 0, i32 0 | |
store %struct.Map* %62, %struct.Map** %64, align 8 | |
br label %65 | |
65: ; preds = %46, %33 | |
%66 = load %struct.Map*, %struct.Map** %9, align 8 | |
store %struct.Map* %66, %struct.Map** %4, align 8 | |
br label %67 | |
67: ; preds = %65, %12 | |
%68 = load %struct.Map*, %struct.Map** %4, align 8 | |
ret %struct.Map* %68 | |
} | |
; Function Attrs: nounwind | |
declare noalias i8* @malloc(i64 noundef) #1 | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local i32 @eq_helper(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1) #0 { | |
%3 = alloca i32, align 4 | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca %struct.SinObj*, align 8 | |
%6 = alloca i8*, align 8 | |
%7 = alloca i8*, align 8 | |
%8 = alloca i8*, align 8 | |
%9 = alloca i8*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %4, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %5, align 8 | |
%10 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%11 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %10, i32 0, i32 1 | |
%12 = load i32, i32* %11, align 8 | |
%13 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%14 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %13, i32 0, i32 1 | |
%15 = load i32, i32* %14, align 8 | |
%16 = icmp ne i32 %12, %15 | |
br i1 %16, label %17, label %18 | |
17: ; preds = %2 | |
store i32 0, i32* %3, align 4 | |
br label %85 | |
18: ; preds = %2 | |
%19 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%20 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %19, i32 0, i32 1 | |
%21 = load i32, i32* %20, align 8 | |
switch i32 %21, label %84 [ | |
i32 0, label %22 | |
i32 1, label %23 | |
i32 2, label %24 | |
i32 12, label %32 | |
i32 3, label %33 | |
i32 4, label %34 | |
i32 5, label %38 | |
i32 6, label %46 | |
i32 7, label %57 | |
i32 8, label %68 | |
i32 9, label %72 | |
i32 10, label %76 | |
i32 11, label %80 | |
] | |
22: ; preds = %18 | |
store i32 1, i32* %3, align 4 | |
br label %85 | |
23: ; preds = %18 | |
store i32 1, i32* %3, align 4 | |
br label %85 | |
24: ; preds = %18 | |
%25 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%26 = call i64 @unwrap_bool(%struct.SinObj* noundef %25, i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.99, i64 0, i64 0)) | |
%27 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%28 = call i64 @unwrap_bool(%struct.SinObj* noundef %27, i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.100, i64 0, i64 0)) | |
%29 = icmp eq i64 %26, %28 | |
br i1 %29, label %30, label %31 | |
30: ; preds = %24 | |
store i32 1, i32* %3, align 4 | |
br label %85 | |
31: ; preds = %24 | |
store i32 0, i32* %3, align 4 | |
br label %85 | |
32: ; preds = %18 | |
store i32 0, i32* %3, align 4 | |
br label %85 | |
33: ; preds = %18 | |
store i32 0, i32* %3, align 4 | |
br label %85 | |
34: ; preds = %18 | |
%35 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%36 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%37 = call i32 @cons_eq_helper(%struct.SinObj* noundef %35, %struct.SinObj* noundef %36) | |
store i32 %37, i32* %3, align 4 | |
br label %85 | |
38: ; preds = %18 | |
%39 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%40 = call i64 @unwrap_int(%struct.SinObj* noundef %39, i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.101, i64 0, i64 0)) | |
%41 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%42 = call i64 @unwrap_int(%struct.SinObj* noundef %41, i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.102, i64 0, i64 0)) | |
%43 = icmp eq i64 %40, %42 | |
br i1 %43, label %44, label %45 | |
44: ; preds = %38 | |
store i32 1, i32* %3, align 4 | |
br label %85 | |
45: ; preds = %38 | |
store i32 0, i32* %3, align 4 | |
br label %85 | |
46: ; preds = %18 | |
%47 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%48 = call i8* @unwrap_str(%struct.SinObj* noundef %47, i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.103, i64 0, i64 0)) | |
store i8* %48, i8** %6, align 8 | |
%49 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%50 = call i8* @unwrap_str(%struct.SinObj* noundef %49, i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.104, i64 0, i64 0)) | |
store i8* %50, i8** %7, align 8 | |
%51 = load i8*, i8** %6, align 8 | |
%52 = load i8*, i8** %7, align 8 | |
%53 = call i32 @strcmp(i8* noundef %51, i8* noundef %52) #10 | |
%54 = icmp eq i32 %53, 0 | |
br i1 %54, label %55, label %56 | |
55: ; preds = %46 | |
store i32 1, i32* %3, align 4 | |
br label %85 | |
56: ; preds = %46 | |
store i32 0, i32* %3, align 4 | |
br label %85 | |
57: ; preds = %18 | |
%58 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%59 = call i8* @unwrap_sym(%struct.SinObj* noundef %58, i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.105, i64 0, i64 0)) | |
store i8* %59, i8** %8, align 8 | |
%60 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%61 = call i8* @unwrap_sym(%struct.SinObj* noundef %60, i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.106, i64 0, i64 0)) | |
store i8* %61, i8** %9, align 8 | |
%62 = load i8*, i8** %8, align 8 | |
%63 = load i8*, i8** %9, align 8 | |
%64 = call i32 @strcmp(i8* noundef %62, i8* noundef %63) #10 | |
%65 = icmp eq i32 %64, 0 | |
br i1 %65, label %66, label %67 | |
66: ; preds = %57 | |
store i32 1, i32* %3, align 4 | |
br label %85 | |
67: ; preds = %57 | |
store i32 0, i32* %3, align 4 | |
br label %85 | |
68: ; preds = %18 | |
%69 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%70 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%71 = call i32 @vec_eq_helper(%struct.SinObj* noundef %69, %struct.SinObj* noundef %70) | |
store i32 %71, i32* %3, align 4 | |
br label %85 | |
72: ; preds = %18 | |
%73 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%74 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([34 x i8], [34 x i8]* @.str.107, i64 0, i64 0)) | |
%75 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
76: ; preds = %18 | |
%77 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%78 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([33 x i8], [33 x i8]* @.str.108, i64 0, i64 0)) | |
%79 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
80: ; preds = %18 | |
%81 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%82 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([42 x i8], [42 x i8]* @.str.109, i64 0, i64 0)) | |
%83 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
84: ; preds = %18 | |
call void @llvm.trap() | |
unreachable | |
85: ; preds = %68, %67, %66, %56, %55, %45, %44, %34, %33, %32, %31, %30, %23, %22, %17 | |
%86 = load i32, i32* %3, align 4 | |
ret i32 %86 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.Map* @insert_copy(%struct.Map* noundef %0) #0 { | |
%2 = alloca %struct.Map*, align 8 | |
%3 = alloca %struct.Map*, align 8 | |
%4 = alloca %struct.Map*, align 8 | |
store %struct.Map* %0, %struct.Map** %3, align 8 | |
%5 = load %struct.Map*, %struct.Map** %3, align 8 | |
%6 = icmp eq %struct.Map* %5, null | |
br i1 %6, label %7, label %8 | |
7: ; preds = %1 | |
store %struct.Map* null, %struct.Map** %2, align 8 | |
br label %28 | |
8: ; preds = %1 | |
%9 = call noalias i8* @malloc(i64 noundef 24) #9 | |
%10 = bitcast i8* %9 to %struct.Map* | |
store %struct.Map* %10, %struct.Map** %4, align 8 | |
%11 = load %struct.Map*, %struct.Map** %3, align 8 | |
%12 = getelementptr inbounds %struct.Map, %struct.Map* %11, i32 0, i32 1 | |
%13 = load %struct.SinObj*, %struct.SinObj** %12, align 8 | |
%14 = load %struct.Map*, %struct.Map** %4, align 8 | |
%15 = getelementptr inbounds %struct.Map, %struct.Map* %14, i32 0, i32 1 | |
store %struct.SinObj* %13, %struct.SinObj** %15, align 8 | |
%16 = load %struct.Map*, %struct.Map** %3, align 8 | |
%17 = getelementptr inbounds %struct.Map, %struct.Map* %16, i32 0, i32 2 | |
%18 = load %struct.SinObj*, %struct.SinObj** %17, align 8 | |
%19 = load %struct.Map*, %struct.Map** %4, align 8 | |
%20 = getelementptr inbounds %struct.Map, %struct.Map* %19, i32 0, i32 2 | |
store %struct.SinObj* %18, %struct.SinObj** %20, align 8 | |
%21 = load %struct.Map*, %struct.Map** %3, align 8 | |
%22 = getelementptr inbounds %struct.Map, %struct.Map* %21, i32 0, i32 0 | |
%23 = load %struct.Map*, %struct.Map** %22, align 8 | |
%24 = call %struct.Map* @insert_copy(%struct.Map* noundef %23) | |
%25 = load %struct.Map*, %struct.Map** %4, align 8 | |
%26 = getelementptr inbounds %struct.Map, %struct.Map* %25, i32 0, i32 0 | |
store %struct.Map* %24, %struct.Map** %26, align 8 | |
%27 = load %struct.Map*, %struct.Map** %4, align 8 | |
store %struct.Map* %27, %struct.Map** %2, align 8 | |
br label %28 | |
28: ; preds = %8, %7 | |
%29 = load %struct.Map*, %struct.Map** %2, align 8 | |
ret %struct.Map* %29 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.Map* @map_insert(%struct.Map* noundef %0, %struct.SinObj* noundef %1, %struct.SinObj* noundef %2) #0 { | |
%4 = alloca %struct.Map*, align 8 | |
%5 = alloca %struct.SinObj*, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
store %struct.Map* %0, %struct.Map** %4, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %5, align 8 | |
store %struct.SinObj* %2, %struct.SinObj** %6, align 8 | |
%7 = load %struct.Map*, %struct.Map** %4, align 8 | |
%8 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%10 = call %struct.Map* @insert_update(%struct.Map* noundef %7, %struct.SinObj* noundef %8, %struct.SinObj* noundef %9) | |
ret %struct.Map* %10 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @map_keys(%struct.Map* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.Map*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca %struct.SinObj*, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
store %struct.Map* %0, %struct.Map** %3, align 8 | |
%7 = load %struct.Map*, %struct.Map** %3, align 8 | |
%8 = icmp eq %struct.Map* %7, null | |
br i1 %8, label %9, label %11 | |
9: ; preds = %1 | |
%10 = call %struct.SinObj* @const_init_null() | |
store %struct.SinObj* %10, %struct.SinObj** %2, align 8 | |
br label %23 | |
11: ; preds = %1 | |
%12 = load %struct.Map*, %struct.Map** %3, align 8 | |
%13 = getelementptr inbounds %struct.Map, %struct.Map* %12, i32 0, i32 1 | |
%14 = load %struct.SinObj*, %struct.SinObj** %13, align 8 | |
store %struct.SinObj* %14, %struct.SinObj** %4, align 8 | |
%15 = load %struct.Map*, %struct.Map** %3, align 8 | |
%16 = getelementptr inbounds %struct.Map, %struct.Map* %15, i32 0, i32 0 | |
%17 = load %struct.Map*, %struct.Map** %16, align 8 | |
%18 = call %struct.SinObj* @map_keys(%struct.Map* noundef %17) | |
store %struct.SinObj* %18, %struct.SinObj** %5, align 8 | |
%19 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%20 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%21 = call %struct.SinObj* @prim_cons(%struct.SinObj* noundef %19, %struct.SinObj* noundef %20) | |
store %struct.SinObj* %21, %struct.SinObj** %6, align 8 | |
%22 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
store %struct.SinObj* %22, %struct.SinObj** %2, align 8 | |
br label %23 | |
23: ; preds = %11, %9 | |
%24 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
ret %struct.SinObj* %24 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @const_init_null() #2 { | |
%1 = alloca %struct.SinObj*, align 8 | |
%2 = call %struct.SinObj* @alloc_atomic(i64 noundef 1) | |
store %struct.SinObj* %2, %struct.SinObj** %1, align 8 | |
%3 = load %struct.SinObj*, %struct.SinObj** %1, align 8 | |
%4 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %3, i32 0, i32 0 | |
store i8* null, i8** %4, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %1, align 8 | |
%6 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
store i32 1, i32* %6, align 8 | |
%7 = load %struct.SinObj*, %struct.SinObj** %1, align 8 | |
ret %struct.SinObj* %7 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @prim_cons(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1) #2 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca %struct.SinObj*, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %4, align 8 | |
%7 = call %struct.SinObj* @alloc(i64 noundef 2) | |
store %struct.SinObj* %7, %struct.SinObj** %5, align 8 | |
%8 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%10 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %9, i64 0 | |
%11 = bitcast %struct.SinObj* %10 to i8* | |
%12 = bitcast %struct.SinObj* %8 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %11, i8* align 8 %12, i64 16, i1 false) | |
%13 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%14 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%15 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %14, i64 1 | |
%16 = bitcast %struct.SinObj* %15 to i8* | |
%17 = bitcast %struct.SinObj* %13 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %16, i8* align 8 %17, i64 16, i1 false) | |
%18 = call %struct.SinObj* @alloc(i64 noundef 1) | |
store %struct.SinObj* %18, %struct.SinObj** %6, align 8 | |
%19 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%20 = bitcast %struct.SinObj* %19 to i64* | |
%21 = bitcast i64* %20 to i8* | |
%22 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%23 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %22, i32 0, i32 0 | |
store i8* %21, i8** %23, align 8 | |
%24 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %24, i32 0, i32 1 | |
store i32 4, i32* %25, align 8 | |
%26 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
ret %struct.SinObj* %26 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @map_get(%struct.Map* noundef %0, %struct.SinObj* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.Map*, align 8 | |
%5 = alloca %struct.SinObj*, align 8 | |
store %struct.Map* %0, %struct.Map** %4, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %5, align 8 | |
br label %6 | |
6: ; preds = %20, %2 | |
%7 = load %struct.Map*, %struct.Map** %4, align 8 | |
%8 = icmp ne %struct.Map* %7, null | |
br i1 %8, label %9, label %24 | |
9: ; preds = %6 | |
%10 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%11 = load %struct.Map*, %struct.Map** %4, align 8 | |
%12 = getelementptr inbounds %struct.Map, %struct.Map* %11, i32 0, i32 1 | |
%13 = load %struct.SinObj*, %struct.SinObj** %12, align 8 | |
%14 = call i32 @eq_helper(%struct.SinObj* noundef %10, %struct.SinObj* noundef %13) | |
%15 = icmp eq i32 %14, 1 | |
br i1 %15, label %16, label %20 | |
16: ; preds = %9 | |
%17 = load %struct.Map*, %struct.Map** %4, align 8 | |
%18 = getelementptr inbounds %struct.Map, %struct.Map* %17, i32 0, i32 2 | |
%19 = load %struct.SinObj*, %struct.SinObj** %18, align 8 | |
store %struct.SinObj* %19, %struct.SinObj** %3, align 8 | |
br label %25 | |
20: ; preds = %9 | |
%21 = load %struct.Map*, %struct.Map** %4, align 8 | |
%22 = getelementptr inbounds %struct.Map, %struct.Map* %21, i32 0, i32 0 | |
%23 = load %struct.Map*, %struct.Map** %22, align 8 | |
store %struct.Map* %23, %struct.Map** %4, align 8 | |
br label %6, !llvm.loop !6 | |
24: ; preds = %6 | |
store %struct.SinObj* null, %struct.SinObj** %3, align 8 | |
br label %25 | |
25: ; preds = %24, %16 | |
%26 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
ret %struct.SinObj* %26 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local zeroext i1 @map_has_key(%struct.Map* noundef %0, %struct.SinObj* noundef %1) #0 { | |
%3 = alloca i1, align 1 | |
%4 = alloca %struct.Map*, align 8 | |
%5 = alloca %struct.SinObj*, align 8 | |
store %struct.Map* %0, %struct.Map** %4, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %5, align 8 | |
br label %6 | |
6: ; preds = %17, %2 | |
%7 = load %struct.Map*, %struct.Map** %4, align 8 | |
%8 = icmp ne %struct.Map* %7, null | |
br i1 %8, label %9, label %21 | |
9: ; preds = %6 | |
%10 = load %struct.Map*, %struct.Map** %4, align 8 | |
%11 = getelementptr inbounds %struct.Map, %struct.Map* %10, i32 0, i32 1 | |
%12 = load %struct.SinObj*, %struct.SinObj** %11, align 8 | |
%13 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%14 = call i32 @eq_helper(%struct.SinObj* noundef %12, %struct.SinObj* noundef %13) | |
%15 = icmp eq i32 %14, 1 | |
br i1 %15, label %16, label %17 | |
16: ; preds = %9 | |
store i1 true, i1* %3, align 1 | |
br label %22 | |
17: ; preds = %9 | |
%18 = load %struct.Map*, %struct.Map** %4, align 8 | |
%19 = getelementptr inbounds %struct.Map, %struct.Map* %18, i32 0, i32 0 | |
%20 = load %struct.Map*, %struct.Map** %19, align 8 | |
store %struct.Map* %20, %struct.Map** %4, align 8 | |
br label %6, !llvm.loop !8 | |
21: ; preds = %6 | |
store i1 false, i1* %3, align 1 | |
br label %22 | |
22: ; preds = %21, %16 | |
%23 = load i1, i1* %3, align 1 | |
ret i1 %23 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local i64 @map_count(%struct.Map* noundef %0) #2 { | |
%2 = alloca %struct.Map*, align 8 | |
%3 = alloca i64, align 8 | |
store %struct.Map* %0, %struct.Map** %2, align 8 | |
store i64 0, i64* %3, align 8 | |
br label %4 | |
4: ; preds = %7, %1 | |
%5 = load %struct.Map*, %struct.Map** %2, align 8 | |
%6 = icmp ne %struct.Map* %5, null | |
br i1 %6, label %7, label %13 | |
7: ; preds = %4 | |
%8 = load i64, i64* %3, align 8 | |
%9 = add i64 %8, 1 | |
store i64 %9, i64* %3, align 8 | |
%10 = load %struct.Map*, %struct.Map** %2, align 8 | |
%11 = getelementptr inbounds %struct.Map, %struct.Map* %10, i32 0, i32 0 | |
%12 = load %struct.Map*, %struct.Map** %11, align 8 | |
store %struct.Map* %12, %struct.Map** %2, align 8 | |
br label %4, !llvm.loop !9 | |
13: ; preds = %4 | |
%14 = load i64, i64* %3, align 8 | |
ret i64 %14 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local void @debug_output_registers(%struct.SinRecord** noundef %0, %struct.SinObj*** noundef %1, %struct.SinObj*** noundef %2, %struct.SinObj** noundef %3) #0 { | |
%5 = alloca %struct.SinRecord**, align 8 | |
%6 = alloca %struct.SinObj***, align 8 | |
%7 = alloca %struct.SinObj***, align 8 | |
%8 = alloca %struct.SinObj**, align 8 | |
store %struct.SinRecord** %0, %struct.SinRecord*** %5, align 8 | |
store %struct.SinObj*** %1, %struct.SinObj**** %6, align 8 | |
store %struct.SinObj*** %2, %struct.SinObj**** %7, align 8 | |
store %struct.SinObj** %3, %struct.SinObj*** %8, align 8 | |
%9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str, i64 0, i64 0)) | |
%10 = load %struct.SinRecord**, %struct.SinRecord*** %5, align 8 | |
%11 = load %struct.SinRecord*, %struct.SinRecord** %10, align 8 | |
%12 = bitcast %struct.SinRecord* %11 to i8* | |
%13 = load %struct.SinObj***, %struct.SinObj**** %6, align 8 | |
%14 = load %struct.SinObj**, %struct.SinObj*** %13, align 8 | |
%15 = bitcast %struct.SinObj** %14 to i8* | |
%16 = load %struct.SinObj***, %struct.SinObj**** %7, align 8 | |
%17 = load %struct.SinObj**, %struct.SinObj*** %16, align 8 | |
%18 = bitcast %struct.SinObj** %17 to i8* | |
%19 = load %struct.SinObj**, %struct.SinObj*** %8, align 8 | |
%20 = load %struct.SinObj*, %struct.SinObj** %19, align 8 | |
%21 = bitcast %struct.SinObj* %20 to i8* | |
%22 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([38 x i8], [38 x i8]* @.str.1, i64 0, i64 0), i8* noundef %12, i8* noundef %15, i8* noundef %18, i8* noundef %21) | |
ret void | |
} | |
declare i32 @printf(i8* noundef, ...) #3 | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @alloc(i64 noundef %0) #2 { | |
%2 = alloca i64, align 8 | |
store i64 %0, i64* %2, align 8 | |
%3 = load i64, i64* %2, align 8 | |
%4 = mul i64 16, %3 | |
%5 = call noalias i8* @malloc(i64 noundef %4) #9 | |
%6 = bitcast i8* %5 to %struct.SinObj* | |
ret %struct.SinObj* %6 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @alloc_atomic(i64 noundef %0) #2 { | |
%2 = alloca i64, align 8 | |
store i64 %0, i64* %2, align 8 | |
%3 = load i64, i64* %2, align 8 | |
%4 = call %struct.SinObj* @alloc(i64 noundef %3) | |
ret %struct.SinObj* %4 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local void @_get_both(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1, %struct.SinObj* noundef %2) #0 { | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca %struct.SinObj*, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
%7 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %4, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %5, align 8 | |
store %struct.SinObj* %2, %struct.SinObj** %6, align 8 | |
%8 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%9 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %8, i8* noundef getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2, i64 0, i64 0)) | |
store %struct.SinObj* %9, %struct.SinObj** %7, align 8 | |
%10 = load %struct.SinObj*, %struct.SinObj** %7, align 8 | |
%11 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %10, i64 0 | |
%12 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%13 = bitcast %struct.SinObj* %12 to i8* | |
%14 = bitcast %struct.SinObj* %11 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 8 %14, i64 16, i1 false) | |
%15 = load %struct.SinObj*, %struct.SinObj** %7, align 8 | |
%16 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %15, i64 1 | |
%17 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%18 = bitcast %struct.SinObj* %17 to i8* | |
%19 = bitcast %struct.SinObj* %16 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %18, i8* align 8 %19, i64 16, i1 false) | |
ret void | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %0, i8* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca i8*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store i8* %1, i8** %4, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%6 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%7 = load i32, i32* %6, align 8 | |
%8 = icmp ne i32 %7, 4 | |
br i1 %8, label %9, label %17 | |
9: ; preds = %2 | |
%10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%11 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%12 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %11, i32 0, i32 1 | |
%13 = load i32, i32* %12, align 8 | |
%14 = load i8*, i8** %4, align 8 | |
%15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([49 x i8], [49 x i8]* @.str.24, i64 0, i64 0), i32 noundef %13, i8* noundef %14) | |
%16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
17: ; preds = %2 | |
%18 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%19 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %18, i32 0, i32 0 | |
%20 = load i8*, i8** %19, align 8 | |
%21 = bitcast i8* %20 to %struct.SinObj* | |
ret %struct.SinObj* %21 | |
} | |
; Function Attrs: argmemonly nofree nounwind willreturn | |
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #4 | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @const_init_int(i64 noundef %0) #2 { | |
%2 = alloca i64, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
store i64 %0, i64* %2, align 8 | |
%4 = call %struct.SinObj* @alloc_atomic(i64 noundef 1) | |
store %struct.SinObj* %4, %struct.SinObj** %3, align 8 | |
%5 = load i64, i64* %2, align 8 | |
%6 = inttoptr i64 %5 to i64* | |
%7 = bitcast i64* %6 to i8* | |
%8 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%9 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %8, i32 0, i32 0 | |
store i8* %7, i8** %9, align 8 | |
%10 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%11 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %10, i32 0, i32 1 | |
store i32 5, i32* %11, align 8 | |
%12 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
ret %struct.SinObj* %12 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @const_init_void() #2 { | |
%1 = alloca %struct.SinObj*, align 8 | |
%2 = call %struct.SinObj* @alloc_atomic(i64 noundef 1) | |
store %struct.SinObj* %2, %struct.SinObj** %1, align 8 | |
%3 = load %struct.SinObj*, %struct.SinObj** %1, align 8 | |
%4 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %3, i32 0, i32 0 | |
store i8* null, i8** %4, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %1, align 8 | |
%6 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
store i32 0, i32* %6, align 8 | |
%7 = load %struct.SinObj*, %struct.SinObj** %1, align 8 | |
ret %struct.SinObj* %7 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @const_init_true() #2 { | |
%1 = alloca %struct.SinObj*, align 8 | |
%2 = call %struct.SinObj* @alloc_atomic(i64 noundef 1) | |
store %struct.SinObj* %2, %struct.SinObj** %1, align 8 | |
%3 = load %struct.SinObj*, %struct.SinObj** %1, align 8 | |
%4 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %3, i32 0, i32 0 | |
store i8* inttoptr (i64 1 to i8*), i8** %4, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %1, align 8 | |
%6 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
store i32 2, i32* %6, align 8 | |
%7 = load %struct.SinObj*, %struct.SinObj** %1, align 8 | |
ret %struct.SinObj* %7 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @const_init_false() #2 { | |
%1 = alloca %struct.SinObj*, align 8 | |
%2 = call %struct.SinObj* @alloc_atomic(i64 noundef 1) | |
store %struct.SinObj* %2, %struct.SinObj** %1, align 8 | |
%3 = load %struct.SinObj*, %struct.SinObj** %1, align 8 | |
%4 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %3, i32 0, i32 0 | |
store i8* null, i8** %4, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %1, align 8 | |
%6 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
store i32 2, i32* %6, align 8 | |
%7 = load %struct.SinObj*, %struct.SinObj** %1, align 8 | |
ret %struct.SinObj* %7 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @const_init_string(i8* noundef %0) #2 { | |
%2 = alloca i8*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
store i8* %0, i8** %2, align 8 | |
%4 = call %struct.SinObj* @alloc(i64 noundef 1) | |
store %struct.SinObj* %4, %struct.SinObj** %3, align 8 | |
%5 = load i8*, i8** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 0 | |
store i8* %5, i8** %7, align 8 | |
%8 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%9 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %8, i32 0, i32 1 | |
store i32 6, i32* %9, align 8 | |
%10 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
ret %struct.SinObj* %10 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @const_init_symbol(i8* noundef %0) #2 { | |
%2 = alloca i8*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
store i8* %0, i8** %2, align 8 | |
%4 = call %struct.SinObj* @alloc(i64 noundef 1) | |
store %struct.SinObj* %4, %struct.SinObj** %3, align 8 | |
%5 = load i8*, i8** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 0 | |
store i8* %5, i8** %7, align 8 | |
%8 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%9 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %8, i32 0, i32 1 | |
store i32 7, i32* %9, align 8 | |
%10 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
ret %struct.SinObj* %10 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinRecord* @make_record(%struct.SinRecord* noundef %0, %struct.SinObj*** noundef %1) #2 { | |
%3 = alloca %struct.SinRecord*, align 8 | |
%4 = alloca %struct.SinObj***, align 8 | |
%5 = alloca %struct.SinRecord*, align 8 | |
%6 = alloca %struct.SinObj**, align 8 | |
store %struct.SinRecord* %0, %struct.SinRecord** %3, align 8 | |
store %struct.SinObj*** %1, %struct.SinObj**** %4, align 8 | |
%7 = call noalias i8* @malloc(i64 noundef 40) #9 | |
%8 = bitcast i8* %7 to %struct.SinRecord* | |
store %struct.SinRecord* %8, %struct.SinRecord** %5, align 8 | |
%9 = call noalias i8* @calloc(i64 noundef 4096, i64 noundef 8) #9 | |
%10 = bitcast i8* %9 to %struct.SinObj** | |
store %struct.SinObj** %10, %struct.SinObj*** %6, align 8 | |
%11 = load %struct.SinObj**, %struct.SinObj*** %6, align 8 | |
%12 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %11, i64 4096 | |
%13 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %12, i64 -100 | |
%14 = load %struct.SinObj***, %struct.SinObj**** %4, align 8 | |
store %struct.SinObj** %13, %struct.SinObj*** %14, align 8 | |
%15 = load %struct.SinObj**, %struct.SinObj*** %6, align 8 | |
%16 = load %struct.SinRecord*, %struct.SinRecord** %5, align 8 | |
%17 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %16, i32 0, i32 0 | |
store %struct.SinObj** %15, %struct.SinObj*** %17, align 8 | |
%18 = load %struct.SinRecord*, %struct.SinRecord** %5, align 8 | |
%19 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %18, i32 0, i32 2 | |
store i64 512, i64* %19, align 8 | |
%20 = load %struct.SinRecord*, %struct.SinRecord** %3, align 8 | |
%21 = load %struct.SinRecord*, %struct.SinRecord** %5, align 8 | |
%22 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %21, i32 0, i32 1 | |
store %struct.SinRecord* %20, %struct.SinRecord** %22, align 8 | |
%23 = load %struct.SinRecord*, %struct.SinRecord** %5, align 8 | |
ret %struct.SinRecord* %23 | |
} | |
; Function Attrs: nounwind | |
declare noalias i8* @calloc(i64 noundef, i64 noundef) #1 | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinRecord* @split_record(%struct.SinRecord* noundef %0, %struct.SinObj** noundef %1, i64 noundef %2, i64 noundef %3, i8* noundef %4) #2 { | |
%6 = alloca %struct.SinRecord*, align 8 | |
%7 = alloca %struct.SinObj**, align 8 | |
%8 = alloca i64, align 8 | |
%9 = alloca i64, align 8 | |
%10 = alloca i8*, align 8 | |
%11 = alloca %struct.SinRecord*, align 8 | |
store %struct.SinRecord* %0, %struct.SinRecord** %6, align 8 | |
store %struct.SinObj** %1, %struct.SinObj*** %7, align 8 | |
store i64 %2, i64* %8, align 8 | |
store i64 %3, i64* %9, align 8 | |
store i8* %4, i8** %10, align 8 | |
%12 = call noalias i8* @malloc(i64 noundef 40) #9 | |
%13 = bitcast i8* %12 to %struct.SinRecord* | |
store %struct.SinRecord* %13, %struct.SinRecord** %11, align 8 | |
%14 = load %struct.SinObj**, %struct.SinObj*** %7, align 8 | |
%15 = load %struct.SinRecord*, %struct.SinRecord** %11, align 8 | |
%16 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %15, i32 0, i32 0 | |
store %struct.SinObj** %14, %struct.SinObj*** %16, align 8 | |
%17 = load %struct.SinRecord*, %struct.SinRecord** %6, align 8 | |
%18 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %17, i32 0, i32 2 | |
%19 = load i64, i64* %18, align 8 | |
%20 = load i64, i64* %8, align 8 | |
%21 = sub nsw i64 %19, %20 | |
%22 = load %struct.SinRecord*, %struct.SinRecord** %11, align 8 | |
%23 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %22, i32 0, i32 2 | |
store i64 %21, i64* %23, align 8 | |
%24 = load %struct.SinRecord*, %struct.SinRecord** %6, align 8 | |
%25 = load %struct.SinRecord*, %struct.SinRecord** %11, align 8 | |
%26 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %25, i32 0, i32 1 | |
store %struct.SinRecord* %24, %struct.SinRecord** %26, align 8 | |
%27 = load i64, i64* %8, align 8 | |
%28 = load %struct.SinRecord*, %struct.SinRecord** %6, align 8 | |
%29 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %28, i32 0, i32 2 | |
store i64 %27, i64* %29, align 8 | |
%30 = load i64, i64* %9, align 8 | |
%31 = load %struct.SinRecord*, %struct.SinRecord** %6, align 8 | |
%32 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %31, i32 0, i32 3 | |
store i64 %30, i64* %32, align 8 | |
%33 = load i8*, i8** %10, align 8 | |
%34 = load %struct.SinRecord*, %struct.SinRecord** %6, align 8 | |
%35 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %34, i32 0, i32 4 | |
store i8* %33, i8** %35, align 8 | |
%36 = load %struct.SinRecord*, %struct.SinRecord** %11, align 8 | |
ret %struct.SinRecord* %36 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @make_continuation_closure(%struct.SinRecord* noundef %0, i8* noundef %1) #2 { | |
%3 = alloca %struct.SinRecord*, align 8 | |
%4 = alloca i8*, align 8 | |
%5 = alloca %struct.SinObj*, align 8 | |
%6 = alloca %struct.SinObj, align 8 | |
%7 = alloca %struct.SinObj, align 8 | |
%8 = alloca %struct.SinObj*, align 8 | |
store %struct.SinRecord* %0, %struct.SinRecord** %3, align 8 | |
store i8* %1, i8** %4, align 8 | |
%9 = call %struct.SinObj* @alloc(i64 noundef 2) | |
store %struct.SinObj* %9, %struct.SinObj** %5, align 8 | |
%10 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
store i32 11, i32* %10, align 8 | |
%11 = load i8*, i8** %4, align 8 | |
%12 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 0 | |
store i8* %11, i8** %12, align 8 | |
%13 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %7, i32 0, i32 1 | |
store i32 12, i32* %13, align 8 | |
%14 = load %struct.SinRecord*, %struct.SinRecord** %3, align 8 | |
%15 = bitcast %struct.SinRecord* %14 to i8* | |
%16 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %7, i32 0, i32 0 | |
store i8* %15, i8** %16, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i64 0 | |
%19 = bitcast %struct.SinObj* %18 to i8* | |
%20 = bitcast %struct.SinObj* %6 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %19, i8* align 8 %20, i64 16, i1 false) | |
%21 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 1 | |
%23 = bitcast %struct.SinObj* %22 to i8* | |
%24 = bitcast %struct.SinObj* %7 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 8 %24, i64 16, i1 false) | |
%25 = call %struct.SinObj* @alloc(i64 noundef 1) | |
store %struct.SinObj* %25, %struct.SinObj** %8, align 8 | |
%26 = load %struct.SinObj*, %struct.SinObj** %8, align 8 | |
%27 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %26, i32 0, i32 1 | |
store i32 3, i32* %27, align 8 | |
%28 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%29 = bitcast %struct.SinObj* %28 to i8* | |
%30 = load %struct.SinObj*, %struct.SinObj** %8, align 8 | |
%31 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %30, i32 0, i32 0 | |
store i8* %29, i8** %31, align 8 | |
%32 = load %struct.SinObj*, %struct.SinObj** %8, align 8 | |
ret %struct.SinObj* %32 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @closure_alloc(i64 noundef %0, i8* noundef %1) #0 { | |
%3 = alloca i64, align 8 | |
%4 = alloca i8*, align 8 | |
%5 = alloca %struct.SinObj*, align 8 | |
%6 = alloca %struct.SinObj, align 8 | |
%7 = alloca %struct.SinObj, align 8 | |
%8 = alloca %struct.SinObj*, align 8 | |
store i64 %0, i64* %3, align 8 | |
store i8* %1, i8** %4, align 8 | |
%9 = call %struct.SinObj* @alloc(i64 noundef 2) | |
store %struct.SinObj* %9, %struct.SinObj** %5, align 8 | |
%10 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
store i32 11, i32* %10, align 8 | |
%11 = load i8*, i8** %4, align 8 | |
%12 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 0 | |
store i8* %11, i8** %12, align 8 | |
%13 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %7, i32 0, i32 1 | |
store i32 11, i32* %13, align 8 | |
%14 = load i64, i64* %3, align 8 | |
%15 = call %struct.SinObj* @const_init_int(i64 noundef %14) | |
%16 = call %struct.SinObj* @const_init_int(i64 noundef 0) | |
%17 = call %struct.SinObj* @prim_make_45vector(%struct.SinObj* noundef %15, %struct.SinObj* noundef %16) | |
%18 = bitcast %struct.SinObj* %17 to i8* | |
%19 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %7, i32 0, i32 0 | |
store i8* %18, i8** %19, align 8 | |
%20 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%21 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %20, i64 0 | |
%22 = bitcast %struct.SinObj* %21 to i8* | |
%23 = bitcast %struct.SinObj* %6 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %22, i8* align 8 %23, i64 16, i1 false) | |
%24 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %24, i64 1 | |
%26 = bitcast %struct.SinObj* %25 to i8* | |
%27 = bitcast %struct.SinObj* %7 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %26, i8* align 8 %27, i64 16, i1 false) | |
%28 = call %struct.SinObj* @alloc(i64 noundef 1) | |
store %struct.SinObj* %28, %struct.SinObj** %8, align 8 | |
%29 = load %struct.SinObj*, %struct.SinObj** %8, align 8 | |
%30 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %29, i32 0, i32 1 | |
store i32 3, i32* %30, align 8 | |
%31 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%32 = bitcast %struct.SinObj* %31 to i8* | |
%33 = load %struct.SinObj*, %struct.SinObj** %8, align 8 | |
%34 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %33, i32 0, i32 0 | |
store i8* %32, i8** %34, align 8 | |
%35 = load %struct.SinObj*, %struct.SinObj** %8, align 8 | |
ret %struct.SinObj* %35 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_make_45vector(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca i64, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
%7 = alloca i64, align 8 | |
%8 = alloca %struct.SinObj*, align 8 | |
%9 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %4, align 8 | |
%10 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%11 = call i64 @unwrap_int(%struct.SinObj* noundef %10, i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.21, i64 0, i64 0)) | |
store i64 %11, i64* %5, align 8 | |
%12 = load i64, i64* %5, align 8 | |
%13 = add i64 1, %12 | |
%14 = call %struct.SinObj* @alloc(i64 noundef %13) | |
store %struct.SinObj* %14, %struct.SinObj** %6, align 8 | |
%15 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%16 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %15, i64 0 | |
%17 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %16, i32 0, i32 1 | |
store i32 5, i32* %17, align 8 | |
%18 = load i64, i64* %5, align 8 | |
%19 = inttoptr i64 %18 to i64* | |
%20 = bitcast i64* %19 to i8* | |
%21 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 0 | |
%23 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %22, i32 0, i32 0 | |
store i8* %20, i8** %23, align 8 | |
store i64 1, i64* %7, align 8 | |
br label %24 | |
24: ; preds = %51, %2 | |
%25 = load i64, i64* %7, align 8 | |
%26 = load i64, i64* %5, align 8 | |
%27 = icmp ule i64 %25, %26 | |
br i1 %27, label %28, label %54 | |
28: ; preds = %24 | |
%29 = call %struct.SinObj* @alloc(i64 noundef 1) | |
store %struct.SinObj* %29, %struct.SinObj** %8, align 8 | |
%30 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%31 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %30, i32 0, i32 1 | |
%32 = load i32, i32* %31, align 8 | |
%33 = load %struct.SinObj*, %struct.SinObj** %8, align 8 | |
%34 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %33, i32 0, i32 1 | |
store i32 %32, i32* %34, align 8 | |
%35 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%36 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %35, i32 0, i32 0 | |
%37 = load i8*, i8** %36, align 8 | |
%38 = load %struct.SinObj*, %struct.SinObj** %8, align 8 | |
%39 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %38, i32 0, i32 0 | |
store i8* %37, i8** %39, align 8 | |
%40 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%41 = load i64, i64* %7, align 8 | |
%42 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %40, i64 %41 | |
%43 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %42, i32 0, i32 1 | |
store i32 11, i32* %43, align 8 | |
%44 = load %struct.SinObj*, %struct.SinObj** %8, align 8 | |
%45 = bitcast %struct.SinObj* %44 to i64* | |
%46 = bitcast i64* %45 to i8* | |
%47 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%48 = load i64, i64* %7, align 8 | |
%49 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %47, i64 %48 | |
%50 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %49, i32 0, i32 0 | |
store i8* %46, i8** %50, align 8 | |
br label %51 | |
51: ; preds = %28 | |
%52 = load i64, i64* %7, align 8 | |
%53 = add i64 %52, 1 | |
store i64 %53, i64* %7, align 8 | |
br label %24, !llvm.loop !10 | |
54: ; preds = %24 | |
%55 = call %struct.SinObj* @alloc(i64 noundef 1) | |
store %struct.SinObj* %55, %struct.SinObj** %9, align 8 | |
%56 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%57 = bitcast %struct.SinObj* %56 to i64* | |
%58 = bitcast i64* %57 to i8* | |
%59 = load %struct.SinObj*, %struct.SinObj** %9, align 8 | |
%60 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %59, i32 0, i32 0 | |
store i8* %58, i8** %60, align 8 | |
%61 = load %struct.SinObj*, %struct.SinObj** %9, align 8 | |
%62 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %61, i32 0, i32 1 | |
store i32 8, i32* %62, align 8 | |
%63 = load %struct.SinObj*, %struct.SinObj** %9, align 8 | |
ret %struct.SinObj* %63 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local void @closure_place_freevar(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1, i64 noundef %2) #0 { | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca %struct.SinObj*, align 8 | |
%6 = alloca i64, align 8 | |
%7 = alloca %struct.SinObj*, align 8 | |
%8 = alloca %struct.SinObj*, align 8 | |
%9 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %4, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %5, align 8 | |
store i64 %2, i64* %6, align 8 | |
%10 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%11 = call %struct.SinObj* @unwrap_clo(%struct.SinObj* noundef %10, i8* noundef getelementptr inbounds ([22 x i8], [22 x i8]* @.str.3, i64 0, i64 0)) | |
store %struct.SinObj* %11, %struct.SinObj** %7, align 8 | |
%12 = load %struct.SinObj*, %struct.SinObj** %7, align 8 | |
%13 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %12, i64 1 | |
%14 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %13, i32 0, i32 0 | |
%15 = load i8*, i8** %14, align 8 | |
%16 = bitcast i8* %15 to %struct.SinObj* | |
store %struct.SinObj* %16, %struct.SinObj** %8, align 8 | |
%17 = load i64, i64* %6, align 8 | |
%18 = call %struct.SinObj* @const_init_int(i64 noundef %17) | |
store %struct.SinObj* %18, %struct.SinObj** %9, align 8 | |
%19 = load %struct.SinObj*, %struct.SinObj** %8, align 8 | |
%20 = load %struct.SinObj*, %struct.SinObj** %9, align 8 | |
%21 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%22 = call %struct.SinObj* @prim_vector_45set_33(%struct.SinObj* noundef %19, %struct.SinObj* noundef %20, %struct.SinObj* noundef %21) | |
ret void | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @unwrap_clo(%struct.SinObj* noundef %0, i8* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca i8*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store i8* %1, i8** %4, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%6 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%7 = load i32, i32* %6, align 8 | |
%8 = icmp ne i32 %7, 3 | |
br i1 %8, label %9, label %17 | |
9: ; preds = %2 | |
%10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%11 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%12 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %11, i32 0, i32 1 | |
%13 = load i32, i32* %12, align 8 | |
%14 = load i8*, i8** %4, align 8 | |
%15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([51 x i8], [51 x i8]* @.str.26, i64 0, i64 0), i32 noundef %13, i8* noundef %14) | |
%16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
17: ; preds = %2 | |
%18 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%19 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %18, i32 0, i32 0 | |
%20 = load i8*, i8** %19, align 8 | |
%21 = bitcast i8* %20 to %struct.SinObj* | |
ret %struct.SinObj* %21 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_vector_45set_33(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1, %struct.SinObj* noundef %2) #0 { | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca %struct.SinObj*, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
%7 = alloca %struct.SinObj*, align 8 | |
%8 = alloca i64, align 8 | |
%9 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %4, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %5, align 8 | |
store %struct.SinObj* %2, %struct.SinObj** %6, align 8 | |
%10 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%11 = call %struct.SinObj* @unwrap_vector(%struct.SinObj* noundef %10, i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.91, i64 0, i64 0)) | |
store %struct.SinObj* %11, %struct.SinObj** %7, align 8 | |
%12 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%13 = call i64 @unwrap_int(%struct.SinObj* noundef %12, i8* noundef getelementptr inbounds ([28 x i8], [28 x i8]* @.str.92, i64 0, i64 0)) | |
store i64 %13, i64* %8, align 8 | |
%14 = load %struct.SinObj*, %struct.SinObj** %7, align 8 | |
%15 = load i64, i64* %8, align 8 | |
call void @bounds_check(%struct.SinObj* noundef %14, i64 noundef %15) | |
%16 = call %struct.SinObj* @alloc(i64 noundef 1) | |
store %struct.SinObj* %16, %struct.SinObj** %9, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i32 0, i32 1 | |
%19 = load i32, i32* %18, align 8 | |
%20 = load %struct.SinObj*, %struct.SinObj** %9, align 8 | |
%21 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %20, i32 0, i32 1 | |
store i32 %19, i32* %21, align 8 | |
%22 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%23 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %22, i32 0, i32 0 | |
%24 = load i8*, i8** %23, align 8 | |
%25 = load %struct.SinObj*, %struct.SinObj** %9, align 8 | |
%26 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %25, i32 0, i32 0 | |
store i8* %24, i8** %26, align 8 | |
%27 = load %struct.SinObj*, %struct.SinObj** %9, align 8 | |
%28 = bitcast %struct.SinObj* %27 to i64* | |
%29 = bitcast i64* %28 to i8* | |
%30 = load %struct.SinObj*, %struct.SinObj** %7, align 8 | |
%31 = load i64, i64* %8, align 8 | |
%32 = add nsw i64 %31, 1 | |
%33 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %30, i64 %32 | |
%34 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %33, i32 0, i32 0 | |
store i8* %29, i8** %34, align 8 | |
%35 = call %struct.SinObj* @const_init_void() | |
ret %struct.SinObj* %35 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local i8* @closure_get_env_part(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%4 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%5 = call %struct.SinObj* @unwrap_clo(%struct.SinObj* noundef %4, i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.4, i64 0, i64 0)) | |
store %struct.SinObj* %5, %struct.SinObj** %3, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i64 1 | |
%8 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %7, i32 0, i32 0 | |
%9 = load i8*, i8** %8, align 8 | |
ret i8* %9 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local i8* @closure_get_fn_part(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%4 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%5 = call %struct.SinObj* @unwrap_clo(%struct.SinObj* noundef %4, i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str.5, i64 0, i64 0)) | |
store %struct.SinObj* %5, %struct.SinObj** %3, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i64 0 | |
%8 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %7, i32 0, i32 0 | |
%9 = load i8*, i8** %8, align 8 | |
ret i8* %9 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local i8* @handle_underflow(%struct.SinRecord** noundef %0, %struct.SinObj*** noundef %1, %struct.SinObj*** noundef %2) #2 { | |
%4 = alloca %struct.SinRecord**, align 8 | |
%5 = alloca %struct.SinObj***, align 8 | |
%6 = alloca %struct.SinObj***, align 8 | |
%7 = alloca %struct.SinRecord*, align 8 | |
%8 = alloca %struct.SinRecord*, align 8 | |
%9 = alloca i64, align 8 | |
%10 = alloca i64, align 8 | |
%11 = alloca i64, align 8 | |
%12 = alloca i8*, align 8 | |
store %struct.SinRecord** %0, %struct.SinRecord*** %4, align 8 | |
store %struct.SinObj*** %1, %struct.SinObj**** %5, align 8 | |
store %struct.SinObj*** %2, %struct.SinObj**** %6, align 8 | |
%13 = load %struct.SinRecord**, %struct.SinRecord*** %4, align 8 | |
%14 = load %struct.SinRecord*, %struct.SinRecord** %13, align 8 | |
store %struct.SinRecord* %14, %struct.SinRecord** %7, align 8 | |
%15 = load %struct.SinRecord*, %struct.SinRecord** %7, align 8 | |
%16 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %15, i32 0, i32 1 | |
%17 = load %struct.SinRecord*, %struct.SinRecord** %16, align 8 | |
store %struct.SinRecord* %17, %struct.SinRecord** %8, align 8 | |
%18 = load %struct.SinRecord*, %struct.SinRecord** %8, align 8 | |
%19 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %18, i32 0, i32 1 | |
%20 = load %struct.SinRecord*, %struct.SinRecord** %19, align 8 | |
%21 = load %struct.SinRecord*, %struct.SinRecord** %7, align 8 | |
%22 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %21, i32 0, i32 1 | |
store %struct.SinRecord* %20, %struct.SinRecord** %22, align 8 | |
%23 = load %struct.SinRecord*, %struct.SinRecord** %7, align 8 | |
%24 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %23, i32 0, i32 2 | |
%25 = load i64, i64* %24, align 8 | |
store i64 %25, i64* %9, align 8 | |
%26 = load %struct.SinRecord*, %struct.SinRecord** %8, align 8 | |
%27 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %26, i32 0, i32 2 | |
%28 = load i64, i64* %27, align 8 | |
store i64 %28, i64* %10, align 8 | |
%29 = load %struct.SinRecord*, %struct.SinRecord** %8, align 8 | |
%30 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %29, i32 0, i32 3 | |
%31 = load i64, i64* %30, align 8 | |
store i64 %31, i64* %11, align 8 | |
%32 = load %struct.SinRecord*, %struct.SinRecord** %8, align 8 | |
%33 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %32, i32 0, i32 4 | |
%34 = load i8*, i8** %33, align 8 | |
store i8* %34, i8** %12, align 8 | |
%35 = load i64, i64* %10, align 8 | |
%36 = load i64, i64* %9, align 8 | |
%37 = icmp sge i64 %35, %36 | |
br i1 %37, label %38, label %49 | |
38: ; preds = %3 | |
%39 = call noalias i8* @calloc(i64 noundef 4096, i64 noundef 8) #9 | |
%40 = bitcast i8* %39 to %struct.SinObj** | |
%41 = load %struct.SinRecord*, %struct.SinRecord** %7, align 8 | |
%42 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %41, i32 0, i32 0 | |
store %struct.SinObj** %40, %struct.SinObj*** %42, align 8 | |
%43 = load %struct.SinRecord*, %struct.SinRecord** %7, align 8 | |
%44 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %43, i32 0, i32 0 | |
%45 = load %struct.SinObj**, %struct.SinObj*** %44, align 8 | |
%46 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %45, i64 4096 | |
%47 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %46, i64 -100 | |
%48 = load %struct.SinObj***, %struct.SinObj**** %6, align 8 | |
store %struct.SinObj** %47, %struct.SinObj*** %48, align 8 | |
br label %49 | |
49: ; preds = %38, %3 | |
%50 = load %struct.SinRecord*, %struct.SinRecord** %7, align 8 | |
%51 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %50, i32 0, i32 0 | |
%52 = load %struct.SinObj**, %struct.SinObj*** %51, align 8 | |
%53 = bitcast %struct.SinObj** %52 to i8* | |
%54 = load %struct.SinRecord*, %struct.SinRecord** %8, align 8 | |
%55 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %54, i32 0, i32 0 | |
%56 = load %struct.SinObj**, %struct.SinObj*** %55, align 8 | |
%57 = bitcast %struct.SinObj** %56 to i8* | |
%58 = load i64, i64* %10, align 8 | |
%59 = mul i64 %58, 8 | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %53, i8* align 8 %57, i64 %59, i1 false) | |
%60 = load %struct.SinRecord*, %struct.SinRecord** %7, align 8 | |
%61 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %60, i32 0, i32 0 | |
%62 = load %struct.SinObj**, %struct.SinObj*** %61, align 8 | |
%63 = load i64, i64* %11, align 8 | |
%64 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %62, i64 %63 | |
%65 = load %struct.SinObj***, %struct.SinObj**** %5, align 8 | |
store %struct.SinObj** %64, %struct.SinObj*** %65, align 8 | |
%66 = load i8*, i8** %12, align 8 | |
ret i8* %66 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local zeroext i1 @check_for_overflow(%struct.SinObj*** noundef %0, %struct.SinObj*** noundef %1, i64 noundef %2) #2 { | |
%4 = alloca %struct.SinObj***, align 8 | |
%5 = alloca %struct.SinObj***, align 8 | |
%6 = alloca i64, align 8 | |
store %struct.SinObj*** %0, %struct.SinObj**** %4, align 8 | |
store %struct.SinObj*** %1, %struct.SinObj**** %5, align 8 | |
store i64 %2, i64* %6, align 8 | |
%7 = load %struct.SinObj***, %struct.SinObj**** %4, align 8 | |
%8 = load %struct.SinObj**, %struct.SinObj*** %7, align 8 | |
%9 = load i64, i64* %6, align 8 | |
%10 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %8, i64 %9 | |
%11 = ptrtoint %struct.SinObj** %10 to i64 | |
%12 = load %struct.SinObj***, %struct.SinObj**** %5, align 8 | |
%13 = load %struct.SinObj**, %struct.SinObj*** %12, align 8 | |
%14 = ptrtoint %struct.SinObj** %13 to i64 | |
%15 = icmp slt i64 %11, %14 | |
ret i1 %15 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local zeroext i1 @callcc_at_base(%struct.SinRecord** noundef %0, %struct.SinObj*** noundef %1) #2 { | |
%3 = alloca %struct.SinRecord**, align 8 | |
%4 = alloca %struct.SinObj***, align 8 | |
store %struct.SinRecord** %0, %struct.SinRecord*** %3, align 8 | |
store %struct.SinObj*** %1, %struct.SinObj**** %4, align 8 | |
%5 = load %struct.SinRecord**, %struct.SinRecord*** %3, align 8 | |
%6 = load %struct.SinRecord*, %struct.SinRecord** %5, align 8 | |
%7 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %6, i32 0, i32 0 | |
%8 = load %struct.SinObj**, %struct.SinObj*** %7, align 8 | |
%9 = load %struct.SinObj***, %struct.SinObj**** %4, align 8 | |
%10 = load %struct.SinObj**, %struct.SinObj*** %9, align 8 | |
%11 = icmp eq %struct.SinObj** %8, %10 | |
ret i1 %11 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local void @handle_overflow(%struct.SinRecord** noundef %0, %struct.SinObj*** noundef %1, %struct.SinObj*** noundef %2, i8* noundef %3, i64 noundef %4) #2 { | |
%6 = alloca %struct.SinRecord**, align 8 | |
%7 = alloca %struct.SinObj***, align 8 | |
%8 = alloca %struct.SinObj***, align 8 | |
%9 = alloca i8*, align 8 | |
%10 = alloca i64, align 8 | |
%11 = alloca i64, align 8 | |
%12 = alloca i64, align 8 | |
%13 = alloca i8, align 1 | |
%14 = alloca %struct.SinObj**, align 8 | |
%15 = alloca i32, align 4 | |
%16 = alloca %struct.SinRecord*, align 8 | |
%17 = alloca %struct.SinRecord*, align 8 | |
%18 = alloca %struct.SinRecord*, align 8 | |
%19 = alloca %struct.SinRecord*, align 8 | |
store %struct.SinRecord** %0, %struct.SinRecord*** %6, align 8 | |
store %struct.SinObj*** %1, %struct.SinObj**** %7, align 8 | |
store %struct.SinObj*** %2, %struct.SinObj**** %8, align 8 | |
store i8* %3, i8** %9, align 8 | |
store i64 %4, i64* %10, align 8 | |
store i64 0, i64* %11, align 8 | |
%20 = load i64, i64* %10, align 8 | |
store i64 %20, i64* %12, align 8 | |
store i8 0, i8* %13, align 1 | |
%21 = load %struct.SinObj***, %struct.SinObj**** %7, align 8 | |
%22 = load %struct.SinObj**, %struct.SinObj*** %21, align 8 | |
store %struct.SinObj** %22, %struct.SinObj*** %14, align 8 | |
store i32 0, i32* %15, align 4 | |
br label %23 | |
23: ; preds = %42, %5 | |
%24 = load i32, i32* %15, align 4 | |
%25 = icmp slt i32 %24, 4 | |
br i1 %25, label %26, label %45 | |
26: ; preds = %23 | |
%27 = load %struct.SinObj**, %struct.SinObj*** %14, align 8 | |
%28 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %27, i64 1 | |
%29 = load %struct.SinObj*, %struct.SinObj** %28, align 8 | |
%30 = ptrtoint %struct.SinObj* %29 to i64 | |
store i64 %30, i64* %11, align 8 | |
%31 = load i64, i64* %11, align 8 | |
%32 = icmp eq i64 %31, -1 | |
br i1 %32, label %33, label %34 | |
33: ; preds = %26 | |
store i8 1, i8* %13, align 1 | |
br label %45 | |
34: ; preds = %26 | |
%35 = load i64, i64* %11, align 8 | |
%36 = load i64, i64* %12, align 8 | |
%37 = add nsw i64 %36, %35 | |
store i64 %37, i64* %12, align 8 | |
%38 = load i64, i64* %11, align 8 | |
%39 = load %struct.SinObj**, %struct.SinObj*** %14, align 8 | |
%40 = sub i64 0, %38 | |
%41 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %39, i64 %40 | |
store %struct.SinObj** %41, %struct.SinObj*** %14, align 8 | |
br label %42 | |
42: ; preds = %34 | |
%43 = load i32, i32* %15, align 4 | |
%44 = add nsw i32 %43, 1 | |
store i32 %44, i32* %15, align 4 | |
br label %23, !llvm.loop !11 | |
45: ; preds = %33, %23 | |
%46 = load i8, i8* %13, align 1 | |
%47 = trunc i8 %46 to i1 | |
br i1 %47, label %48, label %84 | |
48: ; preds = %45 | |
%49 = load %struct.SinRecord**, %struct.SinRecord*** %6, align 8 | |
%50 = load %struct.SinRecord*, %struct.SinRecord** %49, align 8 | |
store %struct.SinRecord* %50, %struct.SinRecord** %16, align 8 | |
%51 = load %struct.SinRecord*, %struct.SinRecord** %16, align 8 | |
%52 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %51, i32 0, i32 1 | |
%53 = load %struct.SinRecord*, %struct.SinRecord** %52, align 8 | |
%54 = load %struct.SinObj***, %struct.SinObj**** %8, align 8 | |
%55 = call %struct.SinRecord* @make_record(%struct.SinRecord* noundef %53, %struct.SinObj*** noundef %54) | |
store %struct.SinRecord* %55, %struct.SinRecord** %17, align 8 | |
%56 = load %struct.SinObj**, %struct.SinObj*** %14, align 8 | |
%57 = load %struct.SinRecord*, %struct.SinRecord** %16, align 8 | |
%58 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %57, i32 0, i32 0 | |
%59 = load %struct.SinObj**, %struct.SinObj*** %58, align 8 | |
%60 = icmp eq %struct.SinObj** %56, %59 | |
br i1 %60, label %61, label %62 | |
61: ; preds = %48 | |
br label %64 | |
62: ; preds = %48 | |
call void @__assert_fail(i8* noundef getelementptr inbounds ([23 x i8], [23 x i8]* @.str.6, i64 0, i64 0), i8* noundef getelementptr inbounds ([22 x i8], [22 x i8]* @.str.7, i64 0, i64 0), i32 noundef 261, i8* noundef getelementptr inbounds ([72 x i8], [72 x i8]* @__PRETTY_FUNCTION__.handle_overflow, i64 0, i64 0)) #11 | |
unreachable | |
63: ; No predecessors! | |
br label %64 | |
64: ; preds = %63, %61 | |
%65 = load %struct.SinRecord*, %struct.SinRecord** %17, align 8 | |
%66 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %65, i32 0, i32 0 | |
%67 = load %struct.SinObj**, %struct.SinObj*** %66, align 8 | |
%68 = bitcast %struct.SinObj** %67 to i8* | |
%69 = load %struct.SinObj**, %struct.SinObj*** %14, align 8 | |
%70 = bitcast %struct.SinObj** %69 to i8* | |
%71 = load i64, i64* %12, align 8 | |
%72 = mul i64 %71, 8 | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %68, i8* align 8 %70, i64 %72, i1 false) | |
%73 = load %struct.SinRecord*, %struct.SinRecord** %17, align 8 | |
%74 = load %struct.SinRecord**, %struct.SinRecord*** %6, align 8 | |
store %struct.SinRecord* %73, %struct.SinRecord** %74, align 8 | |
%75 = load %struct.SinRecord*, %struct.SinRecord** %17, align 8 | |
%76 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %75, i32 0, i32 0 | |
%77 = load %struct.SinObj**, %struct.SinObj*** %76, align 8 | |
%78 = load i64, i64* %12, align 8 | |
%79 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %77, i64 %78 | |
%80 = load i64, i64* %10, align 8 | |
%81 = sub i64 0, %80 | |
%82 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %79, i64 %81 | |
%83 = load %struct.SinObj***, %struct.SinObj**** %7, align 8 | |
store %struct.SinObj** %82, %struct.SinObj*** %83, align 8 | |
br label %142 | |
84: ; preds = %45 | |
%85 = load %struct.SinRecord**, %struct.SinRecord*** %6, align 8 | |
%86 = load %struct.SinRecord*, %struct.SinRecord** %85, align 8 | |
store %struct.SinRecord* %86, %struct.SinRecord** %18, align 8 | |
%87 = load %struct.SinRecord*, %struct.SinRecord** %18, align 8 | |
%88 = load %struct.SinObj***, %struct.SinObj**** %8, align 8 | |
%89 = call %struct.SinRecord* @make_record(%struct.SinRecord* noundef %87, %struct.SinObj*** noundef %88) | |
store %struct.SinRecord* %89, %struct.SinRecord** %19, align 8 | |
%90 = load %struct.SinObj**, %struct.SinObj*** %14, align 8 | |
%91 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %90, i64 0 | |
%92 = load %struct.SinObj*, %struct.SinObj** %91, align 8 | |
%93 = bitcast %struct.SinObj* %92 to i8* | |
%94 = load %struct.SinRecord*, %struct.SinRecord** %18, align 8 | |
%95 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %94, i32 0, i32 4 | |
store i8* %93, i8** %95, align 8 | |
%96 = load %struct.SinObj**, %struct.SinObj*** %14, align 8 | |
%97 = ptrtoint %struct.SinObj** %96 to i64 | |
%98 = load %struct.SinRecord*, %struct.SinRecord** %18, align 8 | |
%99 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %98, i32 0, i32 0 | |
%100 = load %struct.SinObj**, %struct.SinObj*** %99, align 8 | |
%101 = ptrtoint %struct.SinObj** %100 to i64 | |
%102 = sub nsw i64 %97, %101 | |
%103 = sdiv i64 %102, 8 | |
%104 = load %struct.SinRecord*, %struct.SinRecord** %18, align 8 | |
%105 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %104, i32 0, i32 2 | |
store i64 %103, i64* %105, align 8 | |
%106 = load %struct.SinRecord*, %struct.SinRecord** %18, align 8 | |
%107 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %106, i32 0, i32 2 | |
%108 = load i64, i64* %107, align 8 | |
%109 = load i64, i64* %11, align 8 | |
%110 = sub nsw i64 %108, %109 | |
%111 = load %struct.SinRecord*, %struct.SinRecord** %18, align 8 | |
%112 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %111, i32 0, i32 3 | |
store i64 %110, i64* %112, align 8 | |
%113 = load %struct.SinRecord*, %struct.SinRecord** %19, align 8 | |
%114 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %113, i32 0, i32 0 | |
%115 = load %struct.SinObj**, %struct.SinObj*** %114, align 8 | |
%116 = bitcast %struct.SinObj** %115 to i8* | |
%117 = load %struct.SinObj**, %struct.SinObj*** %14, align 8 | |
%118 = bitcast %struct.SinObj** %117 to i8* | |
%119 = load i64, i64* %12, align 8 | |
%120 = mul i64 %119, 8 | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %116, i8* align 8 %118, i64 %120, i1 false) | |
%121 = load i8*, i8** %9, align 8 | |
%122 = bitcast i8* %121 to %struct.SinObj* | |
%123 = load %struct.SinRecord*, %struct.SinRecord** %19, align 8 | |
%124 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %123, i32 0, i32 0 | |
%125 = load %struct.SinObj**, %struct.SinObj*** %124, align 8 | |
%126 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %125, i64 0 | |
store %struct.SinObj* %122, %struct.SinObj** %126, align 8 | |
%127 = load %struct.SinRecord*, %struct.SinRecord** %19, align 8 | |
%128 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %127, i32 0, i32 0 | |
%129 = load %struct.SinObj**, %struct.SinObj*** %128, align 8 | |
%130 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %129, i64 1 | |
store %struct.SinObj* inttoptr (i64 -1 to %struct.SinObj*), %struct.SinObj** %130, align 8 | |
%131 = load %struct.SinRecord*, %struct.SinRecord** %19, align 8 | |
%132 = load %struct.SinRecord**, %struct.SinRecord*** %6, align 8 | |
store %struct.SinRecord* %131, %struct.SinRecord** %132, align 8 | |
%133 = load %struct.SinRecord*, %struct.SinRecord** %19, align 8 | |
%134 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %133, i32 0, i32 0 | |
%135 = load %struct.SinObj**, %struct.SinObj*** %134, align 8 | |
%136 = load i64, i64* %12, align 8 | |
%137 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %135, i64 %136 | |
%138 = load i64, i64* %10, align 8 | |
%139 = sub i64 0, %138 | |
%140 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %137, i64 %139 | |
%141 = load %struct.SinObj***, %struct.SinObj**** %7, align 8 | |
store %struct.SinObj** %140, %struct.SinObj*** %141, align 8 | |
br label %142 | |
142: ; preds = %84, %64 | |
ret void | |
} | |
; Function Attrs: noreturn nounwind | |
declare void @__assert_fail(i8* noundef, i8* noundef, i32 noundef, i8* noundef) #5 | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local i8* @handle_continuation_function(%struct.SinRecord** noundef %0, %struct.SinObj*** noundef %1, %struct.SinObj*** noundef %2, %struct.SinObj** noundef %3) #0 { | |
%5 = alloca %struct.SinRecord**, align 8 | |
%6 = alloca %struct.SinObj***, align 8 | |
%7 = alloca %struct.SinObj***, align 8 | |
%8 = alloca %struct.SinObj**, align 8 | |
%9 = alloca %struct.SinObj**, align 8 | |
%10 = alloca %struct.SinObj*, align 8 | |
%11 = alloca %struct.SinObj*, align 8 | |
%12 = alloca %struct.SinObj*, align 8 | |
%13 = alloca %struct.SinRecord*, align 8 | |
%14 = alloca %struct.SinRecord*, align 8 | |
%15 = alloca %struct.SinRecord*, align 8 | |
store %struct.SinRecord** %0, %struct.SinRecord*** %5, align 8 | |
store %struct.SinObj*** %1, %struct.SinObj**** %6, align 8 | |
store %struct.SinObj*** %2, %struct.SinObj**** %7, align 8 | |
store %struct.SinObj** %3, %struct.SinObj*** %8, align 8 | |
%16 = load %struct.SinObj***, %struct.SinObj**** %6, align 8 | |
%17 = load %struct.SinObj**, %struct.SinObj*** %16, align 8 | |
store %struct.SinObj** %17, %struct.SinObj*** %9, align 8 | |
%18 = load %struct.SinObj**, %struct.SinObj*** %9, align 8 | |
%19 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %18, i64 2 | |
%20 = load %struct.SinObj*, %struct.SinObj** %19, align 8 | |
store %struct.SinObj* %20, %struct.SinObj** %10, align 8 | |
%21 = load %struct.SinObj**, %struct.SinObj*** %9, align 8 | |
%22 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %21, i64 3 | |
%23 = load %struct.SinObj*, %struct.SinObj** %22, align 8 | |
store %struct.SinObj* %23, %struct.SinObj** %11, align 8 | |
%24 = load %struct.SinObj*, %struct.SinObj** %11, align 8 | |
%25 = call %struct.SinObj* @prim_car(%struct.SinObj* noundef %24) | |
store %struct.SinObj* %25, %struct.SinObj** %12, align 8 | |
%26 = load %struct.SinObj*, %struct.SinObj** %10, align 8 | |
%27 = call i8* @closure_get_env_part(%struct.SinObj* noundef %26) | |
%28 = bitcast i8* %27 to %struct.SinRecord* | |
store %struct.SinRecord* %28, %struct.SinRecord** %13, align 8 | |
%29 = load %struct.SinRecord**, %struct.SinRecord*** %5, align 8 | |
%30 = load %struct.SinRecord*, %struct.SinRecord** %29, align 8 | |
store %struct.SinRecord* %30, %struct.SinRecord** %14, align 8 | |
%31 = load %struct.SinRecord*, %struct.SinRecord** %13, align 8 | |
%32 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %31, i32 0, i32 2 | |
%33 = load i64, i64* %32, align 8 | |
%34 = load %struct.SinRecord*, %struct.SinRecord** %14, align 8 | |
%35 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %34, i32 0, i32 2 | |
%36 = load i64, i64* %35, align 8 | |
%37 = icmp sge i64 %33, %36 | |
br i1 %37, label %38, label %47 | |
38: ; preds = %4 | |
%39 = load %struct.SinRecord*, %struct.SinRecord** %13, align 8 | |
%40 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %39, i32 0, i32 1 | |
%41 = load %struct.SinRecord*, %struct.SinRecord** %40, align 8 | |
%42 = load %struct.SinObj***, %struct.SinObj**** %7, align 8 | |
%43 = call %struct.SinRecord* @make_record(%struct.SinRecord* noundef %41, %struct.SinObj*** noundef %42) | |
store %struct.SinRecord* %43, %struct.SinRecord** %15, align 8 | |
%44 = load %struct.SinRecord*, %struct.SinRecord** %15, align 8 | |
store %struct.SinRecord* %44, %struct.SinRecord** %14, align 8 | |
%45 = load %struct.SinRecord*, %struct.SinRecord** %15, align 8 | |
%46 = load %struct.SinRecord**, %struct.SinRecord*** %5, align 8 | |
store %struct.SinRecord* %45, %struct.SinRecord** %46, align 8 | |
br label %47 | |
47: ; preds = %38, %4 | |
%48 = load %struct.SinRecord*, %struct.SinRecord** %14, align 8 | |
%49 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %48, i32 0, i32 0 | |
%50 = load %struct.SinObj**, %struct.SinObj*** %49, align 8 | |
%51 = bitcast %struct.SinObj** %50 to i8* | |
%52 = load %struct.SinRecord*, %struct.SinRecord** %13, align 8 | |
%53 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %52, i32 0, i32 0 | |
%54 = load %struct.SinObj**, %struct.SinObj*** %53, align 8 | |
%55 = bitcast %struct.SinObj** %54 to i8* | |
%56 = load %struct.SinRecord*, %struct.SinRecord** %13, align 8 | |
%57 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %56, i32 0, i32 2 | |
%58 = load i64, i64* %57, align 8 | |
%59 = mul i64 %58, 8 | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %51, i8* align 8 %55, i64 %59, i1 false) | |
%60 = load %struct.SinObj*, %struct.SinObj** %12, align 8 | |
%61 = load %struct.SinObj**, %struct.SinObj*** %8, align 8 | |
store %struct.SinObj* %60, %struct.SinObj** %61, align 8 | |
%62 = load %struct.SinRecord*, %struct.SinRecord** %14, align 8 | |
%63 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %62, i32 0, i32 0 | |
%64 = load %struct.SinObj**, %struct.SinObj*** %63, align 8 | |
%65 = load %struct.SinRecord*, %struct.SinRecord** %13, align 8 | |
%66 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %65, i32 0, i32 3 | |
%67 = load i64, i64* %66, align 8 | |
%68 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %64, i64 %67 | |
%69 = load %struct.SinObj***, %struct.SinObj**** %6, align 8 | |
store %struct.SinObj** %68, %struct.SinObj*** %69, align 8 | |
%70 = load %struct.SinRecord*, %struct.SinRecord** %13, align 8 | |
%71 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %70, i32 0, i32 4 | |
%72 = load i8*, i8** %71, align 8 | |
ret i8* %72 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_car(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%4 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%5 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %4, i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.13, i64 0, i64 0)) | |
store %struct.SinObj* %5, %struct.SinObj** %3, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i64 0 | |
ret %struct.SinObj* %7 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local void @start_runtime(%struct.SinRecord** noundef %0, %struct.SinObj*** noundef %1, %struct.SinObj*** noundef %2) #2 { | |
%4 = alloca %struct.SinRecord**, align 8 | |
%5 = alloca %struct.SinObj***, align 8 | |
%6 = alloca %struct.SinObj***, align 8 | |
store %struct.SinRecord** %0, %struct.SinRecord*** %4, align 8 | |
store %struct.SinObj*** %1, %struct.SinObj**** %5, align 8 | |
store %struct.SinObj*** %2, %struct.SinObj**** %6, align 8 | |
%7 = load %struct.SinObj***, %struct.SinObj**** %6, align 8 | |
%8 = call %struct.SinRecord* @make_record(%struct.SinRecord* noundef null, %struct.SinObj*** noundef %7) | |
%9 = load %struct.SinRecord**, %struct.SinRecord*** %4, align 8 | |
store %struct.SinRecord* %8, %struct.SinRecord** %9, align 8 | |
%10 = load %struct.SinRecord**, %struct.SinRecord*** %4, align 8 | |
%11 = load %struct.SinRecord*, %struct.SinRecord** %10, align 8 | |
%12 = getelementptr inbounds %struct.SinRecord, %struct.SinRecord* %11, i32 0, i32 0 | |
%13 = load %struct.SinObj**, %struct.SinObj*** %12, align 8 | |
%14 = load %struct.SinObj***, %struct.SinObj**** %5, align 8 | |
store %struct.SinObj** %13, %struct.SinObj*** %14, align 8 | |
ret void | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_car(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%8 = load i32, i32* %7, align 8 | |
%9 = icmp ne i32 %8, 4 | |
br i1 %9, label %10, label %14 | |
10: ; preds = %1 | |
%11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.10, i64 0, i64 0)) | |
%13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
14: ; preds = %1 | |
%15 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%16 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %15, i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.10, i64 0, i64 0)) | |
store %struct.SinObj* %16, %struct.SinObj** %3, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i64 0 | |
%19 = bitcast %struct.SinObj* %4 to i8* | |
%20 = bitcast %struct.SinObj* %18 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %19, i8* align 8 %20, i64 16, i1 false) | |
%21 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 1 | |
%23 = bitcast %struct.SinObj* %5 to i8* | |
%24 = bitcast %struct.SinObj* %22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 8 %24, i64 16, i1 false) | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%26 = load i32, i32* %25, align 8 | |
%27 = icmp ne i32 %26, 1 | |
br i1 %27, label %28, label %32 | |
28: ; preds = %14 | |
%29 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%30 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.10, i64 0, i64 0)) | |
%31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
32: ; preds = %14 | |
%33 = call %struct.SinObj* @prim_car(%struct.SinObj* noundef %4) | |
ret %struct.SinObj* %33 | |
} | |
; Function Attrs: noreturn nounwind | |
declare void @exit(i32 noundef) #5 | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim__43(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca i64, align 8 | |
%6 = alloca i64, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %4, align 8 | |
%7 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%8 = call i64 @unwrap_int(%struct.SinObj* noundef %7, i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.14, i64 0, i64 0)) | |
store i64 %8, i64* %5, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%10 = call i64 @unwrap_int(%struct.SinObj* noundef %9, i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0)) | |
store i64 %10, i64* %6, align 8 | |
%11 = load i64, i64* %5, align 8 | |
%12 = load i64, i64* %6, align 8 | |
%13 = add nsw i64 %11, %12 | |
%14 = call %struct.SinObj* @const_init_int(i64 noundef %13) | |
ret %struct.SinObj* %14 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local i64 @unwrap_int(%struct.SinObj* noundef %0, i8* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca i8*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store i8* %1, i8** %4, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%6 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%7 = load i32, i32* %6, align 8 | |
%8 = icmp ne i32 %7, 5 | |
br i1 %8, label %9, label %17 | |
9: ; preds = %2 | |
%10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%11 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%12 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %11, i32 0, i32 1 | |
%13 = load i32, i32* %12, align 8 | |
%14 = load i8*, i8** %4, align 8 | |
%15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([48 x i8], [48 x i8]* @.str.27, i64 0, i64 0), i32 noundef %13, i8* noundef %14) | |
%16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
17: ; preds = %2 | |
%18 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%19 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %18, i32 0, i32 0 | |
%20 = load i8*, i8** %19, align 8 | |
%21 = ptrtoint i8* %20 to i64 | |
ret i64 %21 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim__43(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca i32, align 4 | |
%4 = alloca i64, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
%6 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%7 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%8 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %7, i32 0, i32 1 | |
%9 = load i32, i32* %8, align 8 | |
store i32 %9, i32* %3, align 4 | |
%10 = load i32, i32* %3, align 4 | |
%11 = icmp ne i32 %10, 4 | |
br i1 %11, label %12, label %21 | |
12: ; preds = %1 | |
%13 = load i32, i32* %3, align 4 | |
%14 = icmp ne i32 %13, 1 | |
br i1 %14, label %15, label %21 | |
15: ; preds = %12 | |
%16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%17 = load i32, i32* %3, align 4 | |
%18 = call i8* @get_type_name(i32 noundef %17) | |
%19 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.16, i64 0, i64 0), i8* noundef %18) | |
%20 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
21: ; preds = %12, %1 | |
store i64 0, i64* %4, align 8 | |
br label %22 | |
22: ; preds = %27, %21 | |
%23 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%24 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %23, i32 0, i32 1 | |
%25 = load i32, i32* %24, align 8 | |
%26 = icmp eq i32 %25, 4 | |
br i1 %26, label %27, label %32 | |
27: ; preds = %22 | |
%28 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
call void @_get_both(%struct.SinObj* noundef %28, %struct.SinObj* noundef %5, %struct.SinObj* noundef %6) | |
%29 = call i64 @unwrap_int(%struct.SinObj* noundef %5, i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.17, i64 0, i64 0)) | |
%30 = load i64, i64* %4, align 8 | |
%31 = add nsw i64 %30, %29 | |
store i64 %31, i64* %4, align 8 | |
store %struct.SinObj* %6, %struct.SinObj** %2, align 8 | |
br label %22, !llvm.loop !12 | |
32: ; preds = %22 | |
%33 = load i64, i64* %4, align 8 | |
%34 = call %struct.SinObj* @const_init_int(i64 noundef %33) | |
ret %struct.SinObj* %34 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local i8* @get_type_name(i32 noundef %0) #2 { | |
%2 = alloca i8*, align 8 | |
%3 = alloca i32, align 4 | |
store i32 %0, i32* %3, align 4 | |
%4 = load i32, i32* %3, align 4 | |
switch i32 %4, label %18 [ | |
i32 0, label %5 | |
i32 1, label %6 | |
i32 2, label %7 | |
i32 12, label %8 | |
i32 3, label %9 | |
i32 4, label %10 | |
i32 5, label %11 | |
i32 6, label %12 | |
i32 7, label %13 | |
i32 8, label %14 | |
i32 9, label %15 | |
i32 10, label %16 | |
i32 11, label %17 | |
] | |
5: ; preds = %1 | |
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.63, i64 0, i64 0), i8** %2, align 8 | |
br label %19 | |
6: ; preds = %1 | |
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.64, i64 0, i64 0), i8** %2, align 8 | |
br label %19 | |
7: ; preds = %1 | |
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.65, i64 0, i64 0), i8** %2, align 8 | |
br label %19 | |
8: ; preds = %1 | |
store i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.66, i64 0, i64 0), i8** %2, align 8 | |
br label %19 | |
9: ; preds = %1 | |
store i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.67, i64 0, i64 0), i8** %2, align 8 | |
br label %19 | |
10: ; preds = %1 | |
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.68, i64 0, i64 0), i8** %2, align 8 | |
br label %19 | |
11: ; preds = %1 | |
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.69, i64 0, i64 0), i8** %2, align 8 | |
br label %19 | |
12: ; preds = %1 | |
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.70, i64 0, i64 0), i8** %2, align 8 | |
br label %19 | |
13: ; preds = %1 | |
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.71, i64 0, i64 0), i8** %2, align 8 | |
br label %19 | |
14: ; preds = %1 | |
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.72, i64 0, i64 0), i8** %2, align 8 | |
br label %19 | |
15: ; preds = %1 | |
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.73, i64 0, i64 0), i8** %2, align 8 | |
br label %19 | |
16: ; preds = %1 | |
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.74, i64 0, i64 0), i8** %2, align 8 | |
br label %19 | |
17: ; preds = %1 | |
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.75, i64 0, i64 0), i8** %2, align 8 | |
br label %19 | |
18: ; preds = %1 | |
call void @llvm.trap() | |
unreachable | |
19: ; preds = %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5 | |
%20 = load i8*, i8** %2, align 8 | |
ret i8* %20 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_make_45vector(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
%7 = alloca %struct.SinObj, align 8 | |
%8 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%10 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %9, i32 0, i32 1 | |
%11 = load i32, i32* %10, align 8 | |
%12 = icmp ne i32 %11, 4 | |
br i1 %12, label %13, label %17 | |
13: ; preds = %1 | |
%14 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([24 x i8], [24 x i8]* @.str.18, i64 0, i64 0)) | |
%16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
17: ; preds = %1 | |
%18 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%19 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %18, i8* noundef getelementptr inbounds ([24 x i8], [24 x i8]* @.str.18, i64 0, i64 0)) | |
store %struct.SinObj* %19, %struct.SinObj** %3, align 8 | |
%20 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%21 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %20, i64 0 | |
%22 = bitcast %struct.SinObj* %4 to i8* | |
%23 = bitcast %struct.SinObj* %21 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %22, i8* align 8 %23, i64 16, i1 false) | |
%24 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %24, i64 1 | |
%26 = bitcast %struct.SinObj* %5 to i8* | |
%27 = bitcast %struct.SinObj* %25 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %26, i8* align 8 %27, i64 16, i1 false) | |
%28 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%29 = load i32, i32* %28, align 8 | |
%30 = icmp ne i32 %29, 4 | |
br i1 %30, label %31, label %35 | |
31: ; preds = %17 | |
%32 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%33 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([46 x i8], [46 x i8]* @.str.19, i64 0, i64 0), i8* noundef getelementptr inbounds ([24 x i8], [24 x i8]* @.str.18, i64 0, i64 0)) | |
%34 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
35: ; preds = %17 | |
%36 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %5, i8* noundef getelementptr inbounds ([24 x i8], [24 x i8]* @.str.18, i64 0, i64 0)) | |
store %struct.SinObj* %36, %struct.SinObj** %6, align 8 | |
%37 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%38 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %37, i64 0 | |
%39 = bitcast %struct.SinObj* %7 to i8* | |
%40 = bitcast %struct.SinObj* %38 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %39, i8* align 8 %40, i64 16, i1 false) | |
%41 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%42 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %41, i64 1 | |
%43 = bitcast %struct.SinObj* %8 to i8* | |
%44 = bitcast %struct.SinObj* %42 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %43, i8* align 8 %44, i64 16, i1 false) | |
%45 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %8, i32 0, i32 1 | |
%46 = load i32, i32* %45, align 8 | |
%47 = icmp ne i32 %46, 1 | |
br i1 %47, label %48, label %52 | |
48: ; preds = %35 | |
%49 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%50 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([38 x i8], [38 x i8]* @.str.20, i64 0, i64 0), i8* noundef getelementptr inbounds ([24 x i8], [24 x i8]* @.str.18, i64 0, i64 0)) | |
%51 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
52: ; preds = %35 | |
%53 = call %struct.SinObj* @prim_make_45vector(%struct.SinObj* noundef %4, %struct.SinObj* noundef %7) | |
ret %struct.SinObj* %53 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @closure_env_get(%struct.SinObj* noundef %0, i64 noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca i64, align 8 | |
%5 = alloca %struct.SinObj*, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store i64 %1, i64* %4, align 8 | |
%7 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%8 = call %struct.SinObj* @unwrap_clo(%struct.SinObj* noundef %7, i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.22, i64 0, i64 0)) | |
store %struct.SinObj* %8, %struct.SinObj** %5, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%10 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %9, i64 1 | |
%11 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %10, i32 0, i32 0 | |
%12 = load i8*, i8** %11, align 8 | |
%13 = bitcast i8* %12 to %struct.SinObj* | |
store %struct.SinObj* %13, %struct.SinObj** %6, align 8 | |
%14 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%15 = load i64, i64* %4, align 8 | |
%16 = call %struct.SinObj* @const_init_int(i64 noundef %15) | |
%17 = call %struct.SinObj* @prim_vector_45ref(%struct.SinObj* noundef %14, %struct.SinObj* noundef %16) | |
ret %struct.SinObj* %17 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_vector_45ref(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca %struct.SinObj*, align 8 | |
%6 = alloca i64, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %4, align 8 | |
%7 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%8 = call %struct.SinObj* @unwrap_vector(%struct.SinObj* noundef %7, i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str.85, i64 0, i64 0)) | |
store %struct.SinObj* %8, %struct.SinObj** %5, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%10 = call i64 @unwrap_int(%struct.SinObj* noundef %9, i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.86, i64 0, i64 0)) | |
store i64 %10, i64* %6, align 8 | |
%11 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%12 = load i64, i64* %6, align 8 | |
call void @bounds_check(%struct.SinObj* noundef %11, i64 noundef %12) | |
%13 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%14 = load i64, i64* %6, align 8 | |
%15 = add nsw i64 %14, 1 | |
%16 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %13, i64 %15 | |
%17 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %16, i32 0, i32 0 | |
%18 = load i8*, i8** %17, align 8 | |
%19 = bitcast i8* %18 to %struct.SinObj* | |
ret %struct.SinObj* %19 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.Map* @unwrap_hash(%struct.SinObj* noundef %0, i8* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca i8*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store i8* %1, i8** %4, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%6 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%7 = load i32, i32* %6, align 8 | |
%8 = icmp ne i32 %7, 9 | |
br i1 %8, label %9, label %17 | |
9: ; preds = %2 | |
%10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%11 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%12 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %11, i32 0, i32 1 | |
%13 = load i32, i32* %12, align 8 | |
%14 = load i8*, i8** %4, align 8 | |
%15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([49 x i8], [49 x i8]* @.str.23, i64 0, i64 0), i32 noundef %13, i8* noundef %14) | |
%16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
17: ; preds = %2 | |
%18 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%19 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %18, i32 0, i32 0 | |
%20 = load i8*, i8** %19, align 8 | |
%21 = bitcast i8* %20 to %struct.Map* | |
ret %struct.Map* %21 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @unwrap_vector(%struct.SinObj* noundef %0, i8* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca i8*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store i8* %1, i8** %4, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%6 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%7 = load i32, i32* %6, align 8 | |
%8 = icmp ne i32 %7, 8 | |
br i1 %8, label %9, label %17 | |
9: ; preds = %2 | |
%10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%11 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%12 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %11, i32 0, i32 1 | |
%13 = load i32, i32* %12, align 8 | |
%14 = load i8*, i8** %4, align 8 | |
%15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([53 x i8], [53 x i8]* @.str.25, i64 0, i64 0), i32 noundef %13, i8* noundef %14) | |
%16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
17: ; preds = %2 | |
%18 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%19 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %18, i32 0, i32 0 | |
%20 = load i8*, i8** %19, align 8 | |
%21 = bitcast i8* %20 to %struct.SinObj* | |
ret %struct.SinObj* %21 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local i64 @unwrap_bool(%struct.SinObj* noundef %0, i8* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca i8*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store i8* %1, i8** %4, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%6 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%7 = load i32, i32* %6, align 8 | |
%8 = icmp ne i32 %7, 2 | |
br i1 %8, label %9, label %17 | |
9: ; preds = %2 | |
%10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%11 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%12 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %11, i32 0, i32 1 | |
%13 = load i32, i32* %12, align 8 | |
%14 = load i8*, i8** %4, align 8 | |
%15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([49 x i8], [49 x i8]* @.str.28, i64 0, i64 0), i32 noundef %13, i8* noundef %14) | |
%16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
17: ; preds = %2 | |
%18 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%19 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %18, i32 0, i32 0 | |
%20 = load i8*, i8** %19, align 8 | |
%21 = ptrtoint i8* %20 to i64 | |
ret i64 %21 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local i8* @unwrap_str(%struct.SinObj* noundef %0, i8* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca i8*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store i8* %1, i8** %4, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%6 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%7 = load i32, i32* %6, align 8 | |
%8 = icmp ne i32 %7, 6 | |
br i1 %8, label %9, label %17 | |
9: ; preds = %2 | |
%10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%11 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%12 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %11, i32 0, i32 1 | |
%13 = load i32, i32* %12, align 8 | |
%14 = load i8*, i8** %4, align 8 | |
%15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([47 x i8], [47 x i8]* @.str.29, i64 0, i64 0), i32 noundef %13, i8* noundef %14) | |
%16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
17: ; preds = %2 | |
%18 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%19 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %18, i32 0, i32 0 | |
%20 = load i8*, i8** %19, align 8 | |
ret i8* %20 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local i8* @unwrap_sym(%struct.SinObj* noundef %0, i8* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca i8*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store i8* %1, i8** %4, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%6 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%7 = load i32, i32* %6, align 8 | |
%8 = icmp ne i32 %7, 7 | |
br i1 %8, label %9, label %17 | |
9: ; preds = %2 | |
%10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%11 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%12 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %11, i32 0, i32 1 | |
%13 = load i32, i32* %12, align 8 | |
%14 = load i8*, i8** %4, align 8 | |
%15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([47 x i8], [47 x i8]* @.str.30, i64 0, i64 0), i32 noundef %13, i8* noundef %14) | |
%16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
17: ; preds = %2 | |
%18 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%19 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %18, i32 0, i32 0 | |
%20 = load i8*, i8** %19, align 8 | |
ret i8* %20 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local zeroext i1 @is_truthy_value(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%3 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%4 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %3, i32 0, i32 1 | |
%5 = load i32, i32* %4, align 8 | |
%6 = icmp eq i32 %5, 2 | |
br i1 %6, label %7, label %11 | |
7: ; preds = %1 | |
%8 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%9 = call i64 @unwrap_bool(%struct.SinObj* noundef %8, i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.31, i64 0, i64 0)) | |
%10 = icmp eq i64 %9, 0 | |
br label %11 | |
11: ; preds = %7, %1 | |
%12 = phi i1 [ false, %1 ], [ %10, %7 ] | |
%13 = zext i1 %12 to i64 | |
%14 = select i1 %12, i1 false, i1 true | |
ret i1 %14 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_display(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%8 = load i32, i32* %7, align 8 | |
%9 = icmp ne i32 %8, 4 | |
br i1 %9, label %10, label %14 | |
10: ; preds = %1 | |
%11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.32, i64 0, i64 0)) | |
%13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
14: ; preds = %1 | |
%15 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%16 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %15, i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.32, i64 0, i64 0)) | |
store %struct.SinObj* %16, %struct.SinObj** %3, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i64 0 | |
%19 = bitcast %struct.SinObj* %4 to i8* | |
%20 = bitcast %struct.SinObj* %18 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %19, i8* align 8 %20, i64 16, i1 false) | |
%21 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 1 | |
%23 = bitcast %struct.SinObj* %5 to i8* | |
%24 = bitcast %struct.SinObj* %22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 8 %24, i64 16, i1 false) | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%26 = load i32, i32* %25, align 8 | |
%27 = icmp ne i32 %26, 1 | |
br i1 %27, label %28, label %32 | |
28: ; preds = %14 | |
%29 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%30 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.32, i64 0, i64 0)) | |
%31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
32: ; preds = %14 | |
%33 = call %struct.SinObj* @prim_display(%struct.SinObj* noundef %4) | |
ret %struct.SinObj* %33 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_display(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%3 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%4 = call %struct.SinObj* @prim_print(%struct.SinObj* noundef %3) | |
ret %struct.SinObj* %4 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_print(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca i32, align 4 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%4 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%5 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %4, i32 0, i32 1 | |
%6 = load i32, i32* %5, align 8 | |
store i32 %6, i32* %3, align 4 | |
%7 = load i32, i32* %3, align 4 | |
switch i32 %7, label %23 [ | |
i32 1, label %8 | |
i32 7, label %10 | |
i32 0, label %14 | |
i32 4, label %15 | |
i32 2, label %20 | |
i32 12, label %20 | |
i32 3, label %20 | |
i32 5, label %20 | |
i32 6, label %20 | |
i32 8, label %20 | |
i32 9, label %20 | |
i32 10, label %20 | |
i32 11, label %20 | |
] | |
8: ; preds = %1 | |
%9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.34, i64 0, i64 0)) | |
br label %23 | |
10: ; preds = %1 | |
%11 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%12 = call i8* @unwrap_sym(%struct.SinObj* noundef %11, i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.36, i64 0, i64 0)) | |
%13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.35, i64 0, i64 0), i8* noundef %12) | |
br label %23 | |
14: ; preds = %1 | |
br label %23 | |
15: ; preds = %1 | |
%16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([3 x i8], [3 x i8]* @.str.37, i64 0, i64 0)) | |
%17 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%18 = call %struct.SinObj* @print_cons(%struct.SinObj* noundef %17) | |
%19 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0)) | |
br label %23 | |
20: ; preds = %1, %1, %1, %1, %1, %1, %1, %1, %1 | |
%21 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%22 = call %struct.SinObj* @prim_print_aux(%struct.SinObj* noundef %21) | |
br label %23 | |
23: ; preds = %1, %20, %15, %14, %10, %8 | |
%24 = call %struct.SinObj* @const_init_void() | |
ret %struct.SinObj* %24 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_print(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%8 = load i32, i32* %7, align 8 | |
%9 = icmp ne i32 %8, 4 | |
br i1 %9, label %10, label %14 | |
10: ; preds = %1 | |
%11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.33, i64 0, i64 0)) | |
%13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
14: ; preds = %1 | |
%15 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%16 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %15, i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.33, i64 0, i64 0)) | |
store %struct.SinObj* %16, %struct.SinObj** %3, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i64 0 | |
%19 = bitcast %struct.SinObj* %4 to i8* | |
%20 = bitcast %struct.SinObj* %18 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %19, i8* align 8 %20, i64 16, i1 false) | |
%21 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 1 | |
%23 = bitcast %struct.SinObj* %5 to i8* | |
%24 = bitcast %struct.SinObj* %22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 8 %24, i64 16, i1 false) | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%26 = load i32, i32* %25, align 8 | |
%27 = icmp ne i32 %26, 1 | |
br i1 %27, label %28, label %32 | |
28: ; preds = %14 | |
%29 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%30 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.33, i64 0, i64 0)) | |
%31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
32: ; preds = %14 | |
%33 = call %struct.SinObj* @prim_print(%struct.SinObj* noundef %4) | |
ret %struct.SinObj* %33 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @print_cons(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%7 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %6, i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str.57, i64 0, i64 0)) | |
store %struct.SinObj* %7, %struct.SinObj** %3, align 8 | |
%8 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%9 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %8, i64 0 | |
store %struct.SinObj* %9, %struct.SinObj** %4, align 8 | |
%10 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%11 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %10, i64 1 | |
store %struct.SinObj* %11, %struct.SinObj** %5, align 8 | |
%12 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%13 = call %struct.SinObj* @prim_print_aux(%struct.SinObj* noundef %12) | |
%14 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%15 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %14, i32 0, i32 1 | |
%16 = load i32, i32* %15, align 8 | |
switch i32 %16, label %28 [ | |
i32 1, label %17 | |
i32 0, label %18 | |
i32 4, label %20 | |
i32 12, label %24 | |
i32 7, label %24 | |
i32 2, label %24 | |
i32 3, label %24 | |
i32 5, label %24 | |
i32 6, label %24 | |
i32 8, label %24 | |
i32 9, label %24 | |
i32 10, label %24 | |
i32 11, label %24 | |
] | |
17: ; preds = %1 | |
br label %28 | |
18: ; preds = %1 | |
%19 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([8 x i8], [8 x i8]* @.str.40, i64 0, i64 0)) | |
br label %28 | |
20: ; preds = %1 | |
%21 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.58, i64 0, i64 0)) | |
%22 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%23 = call %struct.SinObj* @print_cons(%struct.SinObj* noundef %22) | |
br label %28 | |
24: ; preds = %1, %1, %1, %1, %1, %1, %1, %1, %1, %1 | |
%25 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.59, i64 0, i64 0)) | |
%26 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%27 = call %struct.SinObj* @prim_print_aux(%struct.SinObj* noundef %26) | |
br label %28 | |
28: ; preds = %1, %24, %20, %18, %17 | |
%29 = call %struct.SinObj* @const_init_void() | |
ret %struct.SinObj* %29 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_print_aux(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca i32, align 4 | |
%4 = alloca i64, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%6 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%7 = load i32, i32* %6, align 8 | |
store i32 %7, i32* %3, align 4 | |
%8 = load i32, i32* %3, align 4 | |
switch i32 %8, label %67 [ | |
i32 0, label %9 | |
i32 1, label %11 | |
i32 2, label %13 | |
i32 12, label %30 | |
i32 3, label %32 | |
i32 4, label %34 | |
i32 5, label %39 | |
i32 6, label %43 | |
i32 7, label %47 | |
i32 8, label %51 | |
i32 9, label %54 | |
i32 10, label %59 | |
i32 11, label %61 | |
] | |
9: ; preds = %1 | |
%10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([8 x i8], [8 x i8]* @.str.40, i64 0, i64 0)) | |
br label %67 | |
11: ; preds = %1 | |
%12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([3 x i8], [3 x i8]* @.str.41, i64 0, i64 0)) | |
br label %67 | |
13: ; preds = %1 | |
%14 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%15 = call i64 @unwrap_bool(%struct.SinObj* noundef %14, i8* noundef getelementptr inbounds ([25 x i8], [25 x i8]* @.str.42, i64 0, i64 0)) | |
store i64 %15, i64* %4, align 8 | |
%16 = load i64, i64* %4, align 8 | |
%17 = icmp eq i64 %16, 0 | |
br i1 %17, label %18, label %20 | |
18: ; preds = %13 | |
%19 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([3 x i8], [3 x i8]* @.str.43, i64 0, i64 0)) | |
br label %29 | |
20: ; preds = %13 | |
%21 = load i64, i64* %4, align 8 | |
%22 = icmp eq i64 %21, 1 | |
br i1 %22, label %23, label %25 | |
23: ; preds = %20 | |
%24 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([3 x i8], [3 x i8]* @.str.44, i64 0, i64 0)) | |
br label %28 | |
25: ; preds = %20 | |
%26 = load i64, i64* %4, align 8 | |
%27 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([27 x i8], [27 x i8]* @.str.45, i64 0, i64 0), i64 noundef %26) | |
br label %28 | |
28: ; preds = %25, %23 | |
br label %29 | |
29: ; preds = %28, %18 | |
br label %67 | |
30: ; preds = %1 | |
%31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.46, i64 0, i64 0)) | |
br label %67 | |
32: ; preds = %1 | |
%33 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([13 x i8], [13 x i8]* @.str.47, i64 0, i64 0)) | |
br label %67 | |
34: ; preds = %1 | |
%35 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.48, i64 0, i64 0)) | |
%36 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%37 = call %struct.SinObj* @print_cons(%struct.SinObj* noundef %36) | |
%38 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0)) | |
br label %67 | |
39: ; preds = %1 | |
%40 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%41 = call i64 @unwrap_int(%struct.SinObj* noundef %40, i8* noundef getelementptr inbounds ([25 x i8], [25 x i8]* @.str.50, i64 0, i64 0)) | |
%42 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.49, i64 0, i64 0), i64 noundef %41) | |
br label %67 | |
43: ; preds = %1 | |
%44 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%45 = call i8* @unwrap_str(%struct.SinObj* noundef %44, i8* noundef getelementptr inbounds ([25 x i8], [25 x i8]* @.str.52, i64 0, i64 0)) | |
%46 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([3 x i8], [3 x i8]* @.str.51, i64 0, i64 0), i8* noundef %45) | |
br label %67 | |
47: ; preds = %1 | |
%48 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%49 = call i8* @unwrap_sym(%struct.SinObj* noundef %48, i8* noundef getelementptr inbounds ([25 x i8], [25 x i8]* @.str.53, i64 0, i64 0)) | |
%50 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([3 x i8], [3 x i8]* @.str.51, i64 0, i64 0), i8* noundef %49) | |
br label %67 | |
51: ; preds = %1 | |
%52 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%53 = call %struct.SinObj* @print_vector(%struct.SinObj* noundef %52) | |
br label %67 | |
54: ; preds = %1 | |
%55 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([7 x i8], [7 x i8]* @.str.54, i64 0, i64 0)) | |
%56 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%57 = call %struct.SinObj* @print_hash(%struct.SinObj* noundef %56) | |
%58 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0)) | |
br label %67 | |
59: ; preds = %1 | |
%60 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([30 x i8], [30 x i8]* @.str.55, i64 0, i64 0)) | |
br label %67 | |
61: ; preds = %1 | |
%62 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%63 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %62, i32 0, i32 0 | |
%64 = load i8*, i8** %63, align 8 | |
%65 = ptrtoint i8* %64 to i64 | |
%66 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([34 x i8], [34 x i8]* @.str.56, i64 0, i64 0), i64 noundef %65) | |
br label %67 | |
67: ; preds = %1, %61, %59, %54, %51, %47, %43, %39, %34, %32, %30, %29, %11, %9 | |
%68 = call %struct.SinObj* @const_init_void() | |
ret %struct.SinObj* %68 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_println(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%8 = load i32, i32* %7, align 8 | |
%9 = icmp ne i32 %8, 4 | |
br i1 %9, label %10, label %14 | |
10: ; preds = %1 | |
%11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.39, i64 0, i64 0)) | |
%13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
14: ; preds = %1 | |
%15 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%16 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %15, i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.39, i64 0, i64 0)) | |
store %struct.SinObj* %16, %struct.SinObj** %3, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i64 0 | |
%19 = bitcast %struct.SinObj* %4 to i8* | |
%20 = bitcast %struct.SinObj* %18 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %19, i8* align 8 %20, i64 16, i1 false) | |
%21 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 1 | |
%23 = bitcast %struct.SinObj* %5 to i8* | |
%24 = bitcast %struct.SinObj* %22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 8 %24, i64 16, i1 false) | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%26 = load i32, i32* %25, align 8 | |
%27 = icmp ne i32 %26, 1 | |
br i1 %27, label %28, label %32 | |
28: ; preds = %14 | |
%29 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%30 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.39, i64 0, i64 0)) | |
%31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
32: ; preds = %14 | |
%33 = call %struct.SinObj* @prim_println(%struct.SinObj* noundef %4) | |
ret %struct.SinObj* %33 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_println(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%3 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%4 = call %struct.SinObj* @prim_print(%struct.SinObj* noundef %3) | |
%5 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
%6 = call %struct.SinObj* @const_init_void() | |
ret %struct.SinObj* %6 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @print_vector(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca i64, align 8 | |
%5 = alloca i64, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%7 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%8 = call %struct.SinObj* @unwrap_vector(%struct.SinObj* noundef %7, i8* noundef getelementptr inbounds ([13 x i8], [13 x i8]* @.str.60, i64 0, i64 0)) | |
store %struct.SinObj* %8, %struct.SinObj** %3, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%10 = call i64 @_get_vector_length(%struct.SinObj* noundef %9) | |
store i64 %10, i64* %4, align 8 | |
%11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([3 x i8], [3 x i8]* @.str.61, i64 0, i64 0)) | |
store i64 1, i64* %5, align 8 | |
br label %12 | |
12: ; preds = %30, %1 | |
%13 = load i64, i64* %5, align 8 | |
%14 = load i64, i64* %4, align 8 | |
%15 = icmp ule i64 %13, %14 | |
br i1 %15, label %16, label %33 | |
16: ; preds = %12 | |
%17 = load i64, i64* %5, align 8 | |
%18 = icmp ne i64 %17, 1 | |
br i1 %18, label %19, label %21 | |
19: ; preds = %16 | |
%20 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.58, i64 0, i64 0)) | |
br label %21 | |
21: ; preds = %19, %16 | |
%22 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%23 = load i64, i64* %5, align 8 | |
%24 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %22, i64 %23 | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %24, i32 0, i32 0 | |
%26 = load i8*, i8** %25, align 8 | |
%27 = bitcast i8* %26 to %struct.SinObj* | |
store %struct.SinObj* %27, %struct.SinObj** %6, align 8 | |
%28 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%29 = call %struct.SinObj* @prim_print_aux(%struct.SinObj* noundef %28) | |
br label %30 | |
30: ; preds = %21 | |
%31 = load i64, i64* %5, align 8 | |
%32 = add i64 %31, 1 | |
store i64 %32, i64* %5, align 8 | |
br label %12, !llvm.loop !13 | |
33: ; preds = %12 | |
%34 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0)) | |
%35 = call %struct.SinObj* @const_init_void() | |
ret %struct.SinObj* %35 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @print_hash(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.Map*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%4 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%5 = call %struct.Map* @unwrap_hash(%struct.SinObj* noundef %4, i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str.62, i64 0, i64 0)) | |
store %struct.Map* %5, %struct.Map** %3, align 8 | |
br label %6 | |
6: ; preds = %27, %1 | |
%7 = load %struct.Map*, %struct.Map** %3, align 8 | |
%8 = icmp ne %struct.Map* %7, null | |
br i1 %8, label %9, label %31 | |
9: ; preds = %6 | |
%10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.48, i64 0, i64 0)) | |
%11 = load %struct.Map*, %struct.Map** %3, align 8 | |
%12 = getelementptr inbounds %struct.Map, %struct.Map* %11, i32 0, i32 1 | |
%13 = load %struct.SinObj*, %struct.SinObj** %12, align 8 | |
%14 = call %struct.SinObj* @prim_print_aux(%struct.SinObj* noundef %13) | |
%15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.59, i64 0, i64 0)) | |
%16 = load %struct.Map*, %struct.Map** %3, align 8 | |
%17 = getelementptr inbounds %struct.Map, %struct.Map* %16, i32 0, i32 2 | |
%18 = load %struct.SinObj*, %struct.SinObj** %17, align 8 | |
%19 = call %struct.SinObj* @prim_print_aux(%struct.SinObj* noundef %18) | |
%20 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0)) | |
%21 = load %struct.Map*, %struct.Map** %3, align 8 | |
%22 = getelementptr inbounds %struct.Map, %struct.Map* %21, i32 0, i32 0 | |
%23 = load %struct.Map*, %struct.Map** %22, align 8 | |
%24 = icmp ne %struct.Map* %23, null | |
br i1 %24, label %25, label %27 | |
25: ; preds = %9 | |
%26 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.58, i64 0, i64 0)) | |
br label %27 | |
27: ; preds = %25, %9 | |
%28 = load %struct.Map*, %struct.Map** %3, align 8 | |
%29 = getelementptr inbounds %struct.Map, %struct.Map* %28, i32 0, i32 0 | |
%30 = load %struct.Map*, %struct.Map** %29, align 8 | |
store %struct.Map* %30, %struct.Map** %3, align 8 | |
br label %6, !llvm.loop !14 | |
31: ; preds = %6 | |
%32 = call %struct.SinObj* @const_init_void() | |
ret %struct.SinObj* %32 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local i64 @_get_vector_length(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%4 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%5 = call %struct.SinObj* @unwrap_vector(%struct.SinObj* noundef %4, i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.77, i64 0, i64 0)) | |
store %struct.SinObj* %5, %struct.SinObj** %3, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i64 0 | |
%8 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %7, i32 0, i32 0 | |
%9 = load i8*, i8** %8, align 8 | |
%10 = ptrtoint i8* %9 to i64 | |
ret i64 %10 | |
} | |
; Function Attrs: cold noreturn nounwind | |
declare void @llvm.trap() #6 | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_halt(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%8 = load i32, i32* %7, align 8 | |
%9 = icmp ne i32 %8, 4 | |
br i1 %9, label %10, label %14 | |
10: ; preds = %1 | |
%11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.76, i64 0, i64 0)) | |
%13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
14: ; preds = %1 | |
%15 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%16 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %15, i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.76, i64 0, i64 0)) | |
store %struct.SinObj* %16, %struct.SinObj** %3, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i64 0 | |
%19 = bitcast %struct.SinObj* %4 to i8* | |
%20 = bitcast %struct.SinObj* %18 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %19, i8* align 8 %20, i64 16, i1 false) | |
%21 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 1 | |
%23 = bitcast %struct.SinObj* %5 to i8* | |
%24 = bitcast %struct.SinObj* %22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 8 %24, i64 16, i1 false) | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%26 = load i32, i32* %25, align 8 | |
%27 = icmp ne i32 %26, 1 | |
br i1 %27, label %28, label %32 | |
28: ; preds = %14 | |
%29 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%30 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.76, i64 0, i64 0)) | |
%31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
32: ; preds = %14 | |
%33 = call %struct.SinObj* @prim_halt(%struct.SinObj* noundef %4) | |
ret %struct.SinObj* %33 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_halt(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%3 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%4 = call %struct.SinObj* @prim_print(%struct.SinObj* noundef %3) | |
%5 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%6 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%7 = load i32, i32* %6, align 8 | |
%8 = icmp ne i32 %7, 0 | |
br i1 %8, label %9, label %11 | |
9: ; preds = %1 | |
%10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
br label %11 | |
11: ; preds = %9, %1 | |
call void @exit(i32 noundef 0) #11 | |
unreachable | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_vector(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj, align 8 | |
%4 = alloca [256 x %struct.SinObj*], align 16 | |
%5 = alloca i64, align 8 | |
%6 = alloca %struct.SinObj, align 8 | |
%7 = alloca %struct.SinObj, align 8 | |
%8 = alloca %struct.SinObj*, align 8 | |
%9 = alloca i64, align 8 | |
%10 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%11 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%12 = bitcast %struct.SinObj* %3 to i8* | |
%13 = bitcast %struct.SinObj* %11 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 8 %13, i64 16, i1 false) | |
%14 = bitcast [256 x %struct.SinObj*]* %4 to i8* | |
call void @llvm.memset.p0i8.i64(i8* align 16 %14, i8 0, i64 2048, i1 false) | |
store i64 0, i64* %5, align 8 | |
br label %15 | |
15: ; preds = %24, %1 | |
%16 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %3, i32 0, i32 1 | |
%17 = load i32, i32* %16, align 8 | |
%18 = icmp eq i32 %17, 4 | |
br i1 %18, label %19, label %22 | |
19: ; preds = %15 | |
%20 = load i64, i64* %5, align 8 | |
%21 = icmp ult i64 %20, 256 | |
br label %22 | |
22: ; preds = %19, %15 | |
%23 = phi i1 [ false, %15 ], [ %21, %19 ] | |
br i1 %23, label %24, label %43 | |
24: ; preds = %22 | |
call void @_get_both(%struct.SinObj* noundef %3, %struct.SinObj* noundef %6, %struct.SinObj* noundef %7) | |
%25 = call %struct.SinObj* @alloc(i64 noundef 1) | |
%26 = load i64, i64* %5, align 8 | |
%27 = getelementptr inbounds [256 x %struct.SinObj*], [256 x %struct.SinObj*]* %4, i64 0, i64 %26 | |
store %struct.SinObj* %25, %struct.SinObj** %27, align 8 | |
%28 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%29 = load i32, i32* %28, align 8 | |
%30 = load i64, i64* %5, align 8 | |
%31 = getelementptr inbounds [256 x %struct.SinObj*], [256 x %struct.SinObj*]* %4, i64 0, i64 %30 | |
%32 = load %struct.SinObj*, %struct.SinObj** %31, align 8 | |
%33 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %32, i32 0, i32 1 | |
store i32 %29, i32* %33, align 8 | |
%34 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 0 | |
%35 = load i8*, i8** %34, align 8 | |
%36 = load i64, i64* %5, align 8 | |
%37 = add i64 %36, 1 | |
store i64 %37, i64* %5, align 8 | |
%38 = getelementptr inbounds [256 x %struct.SinObj*], [256 x %struct.SinObj*]* %4, i64 0, i64 %36 | |
%39 = load %struct.SinObj*, %struct.SinObj** %38, align 8 | |
%40 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %39, i32 0, i32 0 | |
store i8* %35, i8** %40, align 8 | |
%41 = bitcast %struct.SinObj* %3 to i8* | |
%42 = bitcast %struct.SinObj* %7 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %41, i8* align 8 %42, i64 16, i1 false) | |
br label %15, !llvm.loop !15 | |
43: ; preds = %22 | |
%44 = load i64, i64* %5, align 8 | |
%45 = icmp eq i64 %44, 256 | |
br i1 %45, label %46, label %54 | |
46: ; preds = %43 | |
%47 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %3, i32 0, i32 1 | |
%48 = load i32, i32* %47, align 8 | |
%49 = icmp ne i32 %48, 1 | |
br i1 %49, label %50, label %54 | |
50: ; preds = %46 | |
%51 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%52 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([59 x i8], [59 x i8]* @.str.78, i64 0, i64 0)) | |
%53 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
54: ; preds = %46, %43 | |
%55 = load i64, i64* %5, align 8 | |
%56 = add i64 %55, 1 | |
%57 = call %struct.SinObj* @alloc(i64 noundef %56) | |
store %struct.SinObj* %57, %struct.SinObj** %8, align 8 | |
%58 = load %struct.SinObj*, %struct.SinObj** %8, align 8 | |
%59 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %58, i64 0 | |
%60 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %59, i32 0, i32 1 | |
store i32 5, i32* %60, align 8 | |
%61 = load i64, i64* %5, align 8 | |
%62 = inttoptr i64 %61 to i64* | |
%63 = bitcast i64* %62 to i8* | |
%64 = load %struct.SinObj*, %struct.SinObj** %8, align 8 | |
%65 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %64, i64 0 | |
%66 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %65, i32 0, i32 0 | |
store i8* %63, i8** %66, align 8 | |
store i64 0, i64* %9, align 8 | |
br label %67 | |
67: ; preds = %87, %54 | |
%68 = load i64, i64* %9, align 8 | |
%69 = load i64, i64* %5, align 8 | |
%70 = icmp ult i64 %68, %69 | |
br i1 %70, label %71, label %90 | |
71: ; preds = %67 | |
%72 = load %struct.SinObj*, %struct.SinObj** %8, align 8 | |
%73 = load i64, i64* %9, align 8 | |
%74 = add i64 %73, 1 | |
%75 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %72, i64 %74 | |
%76 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %75, i32 0, i32 1 | |
store i32 11, i32* %76, align 8 | |
%77 = load i64, i64* %9, align 8 | |
%78 = getelementptr inbounds [256 x %struct.SinObj*], [256 x %struct.SinObj*]* %4, i64 0, i64 %77 | |
%79 = load %struct.SinObj*, %struct.SinObj** %78, align 8 | |
%80 = bitcast %struct.SinObj* %79 to i64* | |
%81 = bitcast i64* %80 to i8* | |
%82 = load %struct.SinObj*, %struct.SinObj** %8, align 8 | |
%83 = load i64, i64* %9, align 8 | |
%84 = add i64 %83, 1 | |
%85 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %82, i64 %84 | |
%86 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %85, i32 0, i32 0 | |
store i8* %81, i8** %86, align 8 | |
br label %87 | |
87: ; preds = %71 | |
%88 = load i64, i64* %9, align 8 | |
%89 = add i64 %88, 1 | |
store i64 %89, i64* %9, align 8 | |
br label %67, !llvm.loop !16 | |
90: ; preds = %67 | |
%91 = call %struct.SinObj* @alloc(i64 noundef 1) | |
store %struct.SinObj* %91, %struct.SinObj** %10, align 8 | |
%92 = load %struct.SinObj*, %struct.SinObj** %8, align 8 | |
%93 = bitcast %struct.SinObj* %92 to i64* | |
%94 = bitcast i64* %93 to i8* | |
%95 = load %struct.SinObj*, %struct.SinObj** %10, align 8 | |
%96 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %95, i32 0, i32 0 | |
store i8* %94, i8** %96, align 8 | |
%97 = load %struct.SinObj*, %struct.SinObj** %10, align 8 | |
%98 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %97, i32 0, i32 1 | |
store i32 8, i32* %98, align 8 | |
%99 = load %struct.SinObj*, %struct.SinObj** %10, align 8 | |
ret %struct.SinObj* %99 | |
} | |
; Function Attrs: argmemonly nofree nounwind willreturn writeonly | |
declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1 immarg) #7 | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_vector_63(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%8 = load i32, i32* %7, align 8 | |
%9 = icmp ne i32 %8, 4 | |
br i1 %9, label %10, label %14 | |
10: ; preds = %1 | |
%11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str.79, i64 0, i64 0)) | |
%13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
14: ; preds = %1 | |
%15 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%16 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %15, i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str.79, i64 0, i64 0)) | |
store %struct.SinObj* %16, %struct.SinObj** %3, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i64 0 | |
%19 = bitcast %struct.SinObj* %4 to i8* | |
%20 = bitcast %struct.SinObj* %18 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %19, i8* align 8 %20, i64 16, i1 false) | |
%21 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 1 | |
%23 = bitcast %struct.SinObj* %5 to i8* | |
%24 = bitcast %struct.SinObj* %22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 8 %24, i64 16, i1 false) | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%26 = load i32, i32* %25, align 8 | |
%27 = icmp ne i32 %26, 1 | |
br i1 %27, label %28, label %32 | |
28: ; preds = %14 | |
%29 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%30 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str.79, i64 0, i64 0)) | |
%31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
32: ; preds = %14 | |
%33 = call %struct.SinObj* @prim_vector_63(%struct.SinObj* noundef %4) | |
ret %struct.SinObj* %33 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @prim_vector_63(%struct.SinObj* noundef %0) #2 { | |
%2 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%3 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%4 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %3, i32 0, i32 1 | |
%5 = load i32, i32* %4, align 8 | |
%6 = icmp eq i32 %5, 8 | |
br i1 %6, label %7, label %9 | |
7: ; preds = %1 | |
%8 = call %struct.SinObj* @const_init_true() | |
br label %11 | |
9: ; preds = %1 | |
%10 = call %struct.SinObj* @const_init_false() | |
br label %11 | |
11: ; preds = %9, %7 | |
%12 = phi %struct.SinObj* [ %8, %7 ], [ %10, %9 ] | |
ret %struct.SinObj* %12 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_vector_45length(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%8 = load i32, i32* %7, align 8 | |
%9 = icmp ne i32 %8, 4 | |
br i1 %9, label %10, label %14 | |
10: ; preds = %1 | |
%11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([26 x i8], [26 x i8]* @.str.80, i64 0, i64 0)) | |
%13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
14: ; preds = %1 | |
%15 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%16 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %15, i8* noundef getelementptr inbounds ([26 x i8], [26 x i8]* @.str.80, i64 0, i64 0)) | |
store %struct.SinObj* %16, %struct.SinObj** %3, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i64 0 | |
%19 = bitcast %struct.SinObj* %4 to i8* | |
%20 = bitcast %struct.SinObj* %18 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %19, i8* align 8 %20, i64 16, i1 false) | |
%21 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 1 | |
%23 = bitcast %struct.SinObj* %5 to i8* | |
%24 = bitcast %struct.SinObj* %22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 8 %24, i64 16, i1 false) | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%26 = load i32, i32* %25, align 8 | |
%27 = icmp ne i32 %26, 1 | |
br i1 %27, label %28, label %32 | |
28: ; preds = %14 | |
%29 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%30 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i8* noundef getelementptr inbounds ([26 x i8], [26 x i8]* @.str.80, i64 0, i64 0)) | |
%31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
32: ; preds = %14 | |
%33 = call %struct.SinObj* @prim_vector_45length(%struct.SinObj* noundef %4) | |
ret %struct.SinObj* %33 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_vector_45length(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%4 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%5 = call %struct.SinObj* @unwrap_vector(%struct.SinObj* noundef %4, i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.81, i64 0, i64 0)) | |
store %struct.SinObj* %5, %struct.SinObj** %3, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i64 0 | |
ret %struct.SinObj* %7 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local void @bounds_check(%struct.SinObj* noundef %0, i64 noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca i64, align 8 | |
%5 = alloca i64, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store i64 %1, i64* %4, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i64 0 | |
%8 = call i64 @unwrap_int(%struct.SinObj* noundef %7, i8* noundef getelementptr inbounds ([13 x i8], [13 x i8]* @.str.82, i64 0, i64 0)) | |
store i64 %8, i64* %5, align 8 | |
%9 = load i64, i64* %4, align 8 | |
%10 = add nsw i64 %9, 1 | |
%11 = load i64, i64* %5, align 8 | |
%12 = icmp sgt i64 %10, %11 | |
br i1 %12, label %13, label %19 | |
13: ; preds = %2 | |
%14 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%15 = load i64, i64* %4, align 8 | |
%16 = load i64, i64* %5, align 8 | |
%17 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([53 x i8], [53 x i8]* @.str.83, i64 0, i64 0), i64 noundef %15, i64 noundef %16) | |
%18 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
19: ; preds = %2 | |
ret void | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_vector_45ref(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
%7 = alloca %struct.SinObj, align 8 | |
%8 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%10 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %9, i32 0, i32 1 | |
%11 = load i32, i32* %10, align 8 | |
%12 = icmp ne i32 %11, 4 | |
br i1 %12, label %13, label %17 | |
13: ; preds = %1 | |
%14 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([23 x i8], [23 x i8]* @.str.84, i64 0, i64 0)) | |
%16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
17: ; preds = %1 | |
%18 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%19 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %18, i8* noundef getelementptr inbounds ([23 x i8], [23 x i8]* @.str.84, i64 0, i64 0)) | |
store %struct.SinObj* %19, %struct.SinObj** %3, align 8 | |
%20 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%21 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %20, i64 0 | |
%22 = bitcast %struct.SinObj* %4 to i8* | |
%23 = bitcast %struct.SinObj* %21 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %22, i8* align 8 %23, i64 16, i1 false) | |
%24 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %24, i64 1 | |
%26 = bitcast %struct.SinObj* %5 to i8* | |
%27 = bitcast %struct.SinObj* %25 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %26, i8* align 8 %27, i64 16, i1 false) | |
%28 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%29 = load i32, i32* %28, align 8 | |
%30 = icmp ne i32 %29, 4 | |
br i1 %30, label %31, label %35 | |
31: ; preds = %17 | |
%32 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%33 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([46 x i8], [46 x i8]* @.str.19, i64 0, i64 0), i8* noundef getelementptr inbounds ([23 x i8], [23 x i8]* @.str.84, i64 0, i64 0)) | |
%34 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
35: ; preds = %17 | |
%36 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %5, i8* noundef getelementptr inbounds ([23 x i8], [23 x i8]* @.str.84, i64 0, i64 0)) | |
store %struct.SinObj* %36, %struct.SinObj** %6, align 8 | |
%37 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%38 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %37, i64 0 | |
%39 = bitcast %struct.SinObj* %7 to i8* | |
%40 = bitcast %struct.SinObj* %38 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %39, i8* align 8 %40, i64 16, i1 false) | |
%41 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%42 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %41, i64 1 | |
%43 = bitcast %struct.SinObj* %8 to i8* | |
%44 = bitcast %struct.SinObj* %42 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %43, i8* align 8 %44, i64 16, i1 false) | |
%45 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %8, i32 0, i32 1 | |
%46 = load i32, i32* %45, align 8 | |
%47 = icmp ne i32 %46, 1 | |
br i1 %47, label %48, label %52 | |
48: ; preds = %35 | |
%49 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%50 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([38 x i8], [38 x i8]* @.str.20, i64 0, i64 0), i8* noundef getelementptr inbounds ([23 x i8], [23 x i8]* @.str.84, i64 0, i64 0)) | |
%51 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
52: ; preds = %35 | |
%53 = call %struct.SinObj* @prim_vector_45ref(%struct.SinObj* noundef %4, %struct.SinObj* noundef %7) | |
ret %struct.SinObj* %53 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_vector_45set_33(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
%7 = alloca %struct.SinObj, align 8 | |
%8 = alloca %struct.SinObj, align 8 | |
%9 = alloca %struct.SinObj*, align 8 | |
%10 = alloca %struct.SinObj, align 8 | |
%11 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%12 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%13 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %12, i32 0, i32 1 | |
%14 = load i32, i32* %13, align 8 | |
%15 = icmp ne i32 %14, 4 | |
br i1 %15, label %16, label %20 | |
16: ; preds = %1 | |
%17 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%18 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([26 x i8], [26 x i8]* @.str.87, i64 0, i64 0)) | |
%19 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
20: ; preds = %1 | |
%21 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%22 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %21, i8* noundef getelementptr inbounds ([26 x i8], [26 x i8]* @.str.87, i64 0, i64 0)) | |
store %struct.SinObj* %22, %struct.SinObj** %3, align 8 | |
%23 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%24 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %23, i64 0 | |
%25 = bitcast %struct.SinObj* %4 to i8* | |
%26 = bitcast %struct.SinObj* %24 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %25, i8* align 8 %26, i64 16, i1 false) | |
%27 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%28 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %27, i64 1 | |
%29 = bitcast %struct.SinObj* %5 to i8* | |
%30 = bitcast %struct.SinObj* %28 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %29, i8* align 8 %30, i64 16, i1 false) | |
%31 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%32 = load i32, i32* %31, align 8 | |
%33 = icmp ne i32 %32, 4 | |
br i1 %33, label %34, label %38 | |
34: ; preds = %20 | |
%35 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%36 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([46 x i8], [46 x i8]* @.str.88, i64 0, i64 0), i8* noundef getelementptr inbounds ([26 x i8], [26 x i8]* @.str.87, i64 0, i64 0)) | |
%37 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
38: ; preds = %20 | |
%39 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %5, i8* noundef getelementptr inbounds ([26 x i8], [26 x i8]* @.str.87, i64 0, i64 0)) | |
store %struct.SinObj* %39, %struct.SinObj** %6, align 8 | |
%40 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%41 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %40, i64 0 | |
%42 = bitcast %struct.SinObj* %7 to i8* | |
%43 = bitcast %struct.SinObj* %41 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %42, i8* align 8 %43, i64 16, i1 false) | |
%44 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%45 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %44, i64 1 | |
%46 = bitcast %struct.SinObj* %8 to i8* | |
%47 = bitcast %struct.SinObj* %45 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %46, i8* align 8 %47, i64 16, i1 false) | |
%48 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %8, i32 0, i32 1 | |
%49 = load i32, i32* %48, align 8 | |
%50 = icmp ne i32 %49, 4 | |
br i1 %50, label %51, label %55 | |
51: ; preds = %38 | |
%52 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%53 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([46 x i8], [46 x i8]* @.str.89, i64 0, i64 0), i8* noundef getelementptr inbounds ([26 x i8], [26 x i8]* @.str.87, i64 0, i64 0)) | |
%54 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
55: ; preds = %38 | |
%56 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %8, i8* noundef getelementptr inbounds ([26 x i8], [26 x i8]* @.str.87, i64 0, i64 0)) | |
store %struct.SinObj* %56, %struct.SinObj** %9, align 8 | |
%57 = load %struct.SinObj*, %struct.SinObj** %9, align 8 | |
%58 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %57, i64 0 | |
%59 = bitcast %struct.SinObj* %10 to i8* | |
%60 = bitcast %struct.SinObj* %58 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %59, i8* align 8 %60, i64 16, i1 false) | |
%61 = load %struct.SinObj*, %struct.SinObj** %9, align 8 | |
%62 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %61, i64 1 | |
%63 = bitcast %struct.SinObj* %11 to i8* | |
%64 = bitcast %struct.SinObj* %62 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %63, i8* align 8 %64, i64 16, i1 false) | |
%65 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %11, i32 0, i32 1 | |
%66 = load i32, i32* %65, align 8 | |
%67 = icmp ne i32 %66, 1 | |
br i1 %67, label %68, label %72 | |
68: ; preds = %55 | |
%69 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%70 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([38 x i8], [38 x i8]* @.str.90, i64 0, i64 0), i8* noundef getelementptr inbounds ([26 x i8], [26 x i8]* @.str.87, i64 0, i64 0)) | |
%71 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
72: ; preds = %55 | |
%73 = call %struct.SinObj* @prim_vector_45set_33(%struct.SinObj* noundef %4, %struct.SinObj* noundef %7, %struct.SinObj* noundef %10) | |
ret %struct.SinObj* %73 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_void(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%3 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%4 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %3, i32 0, i32 1 | |
%5 = load i32, i32* %4, align 8 | |
%6 = icmp ne i32 %5, 1 | |
br i1 %6, label %7, label %11 | |
7: ; preds = %1 | |
%8 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([64 x i8], [64 x i8]* @.str.93, i64 0, i64 0), i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.94, i64 0, i64 0)) | |
%10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
11: ; preds = %1 | |
%12 = call %struct.SinObj* @prim_void() | |
ret %struct.SinObj* %12 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @prim_void() #2 { | |
%1 = call %struct.SinObj* @const_init_void() | |
ret %struct.SinObj* %1 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local i32 @cons_eq_helper(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
%6 = alloca %struct.SinObj, align 8 | |
%7 = alloca %struct.SinObj, align 8 | |
%8 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %4, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
call void @_get_both(%struct.SinObj* noundef %9, %struct.SinObj* noundef %5, %struct.SinObj* noundef %6) | |
%10 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
call void @_get_both(%struct.SinObj* noundef %10, %struct.SinObj* noundef %7, %struct.SinObj* noundef %8) | |
%11 = call i32 @eq_helper(%struct.SinObj* noundef %5, %struct.SinObj* noundef %7) | |
%12 = icmp eq i32 %11, 1 | |
br i1 %12, label %13, label %16 | |
13: ; preds = %2 | |
%14 = call i32 @eq_helper(%struct.SinObj* noundef %6, %struct.SinObj* noundef %8) | |
%15 = icmp ne i32 %14, 0 | |
br label %16 | |
16: ; preds = %13, %2 | |
%17 = phi i1 [ false, %2 ], [ %15, %13 ] | |
%18 = zext i1 %17 to i32 | |
ret i32 %18 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local i32 @vec_eq_helper(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1) #0 { | |
%3 = alloca i32, align 4 | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca %struct.SinObj*, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
%7 = alloca %struct.SinObj*, align 8 | |
%8 = alloca i64, align 8 | |
%9 = alloca i64, align 8 | |
%10 = alloca i64, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %4, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %5, align 8 | |
%11 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%12 = call %struct.SinObj* @unwrap_vector(%struct.SinObj* noundef %11, i8* noundef getelementptr inbounds ([19 x i8], [19 x i8]* @.str.95, i64 0, i64 0)) | |
store %struct.SinObj* %12, %struct.SinObj** %6, align 8 | |
%13 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%14 = call %struct.SinObj* @unwrap_vector(%struct.SinObj* noundef %13, i8* noundef getelementptr inbounds ([19 x i8], [19 x i8]* @.str.96, i64 0, i64 0)) | |
store %struct.SinObj* %14, %struct.SinObj** %7, align 8 | |
%15 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%16 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %15, i64 0 | |
%17 = call i64 @unwrap_int(%struct.SinObj* noundef %16, i8* noundef getelementptr inbounds ([19 x i8], [19 x i8]* @.str.97, i64 0, i64 0)) | |
store i64 %17, i64* %8, align 8 | |
%18 = load %struct.SinObj*, %struct.SinObj** %7, align 8 | |
%19 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %18, i64 0 | |
%20 = call i64 @unwrap_int(%struct.SinObj* noundef %19, i8* noundef getelementptr inbounds ([19 x i8], [19 x i8]* @.str.98, i64 0, i64 0)) | |
store i64 %20, i64* %9, align 8 | |
%21 = load i64, i64* %8, align 8 | |
%22 = load i64, i64* %9, align 8 | |
%23 = icmp ne i64 %21, %22 | |
br i1 %23, label %24, label %25 | |
24: ; preds = %2 | |
store i32 0, i32* %3, align 4 | |
br label %45 | |
25: ; preds = %2 | |
store i64 0, i64* %10, align 8 | |
br label %26 | |
26: ; preds = %41, %25 | |
%27 = load i64, i64* %10, align 8 | |
%28 = load i64, i64* %8, align 8 | |
%29 = icmp sle i64 %27, %28 | |
br i1 %29, label %30, label %44 | |
30: ; preds = %26 | |
%31 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%32 = load i64, i64* %10, align 8 | |
%33 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %31, i64 %32 | |
%34 = load %struct.SinObj*, %struct.SinObj** %7, align 8 | |
%35 = load i64, i64* %10, align 8 | |
%36 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %34, i64 %35 | |
%37 = call i32 @eq_helper(%struct.SinObj* noundef %33, %struct.SinObj* noundef %36) | |
%38 = icmp eq i32 %37, 0 | |
br i1 %38, label %39, label %40 | |
39: ; preds = %30 | |
store i32 0, i32* %3, align 4 | |
br label %45 | |
40: ; preds = %30 | |
br label %41 | |
41: ; preds = %40 | |
%42 = load i64, i64* %10, align 8 | |
%43 = add nsw i64 %42, 1 | |
store i64 %43, i64* %10, align 8 | |
br label %26, !llvm.loop !17 | |
44: ; preds = %26 | |
store i32 1, i32* %3, align 4 | |
br label %45 | |
45: ; preds = %44, %39, %24 | |
%46 = load i32, i32* %3, align 4 | |
ret i32 %46 | |
} | |
; Function Attrs: nounwind readonly willreturn | |
declare i32 @strcmp(i8* noundef, i8* noundef) #8 | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_eq_63(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
%7 = alloca %struct.SinObj, align 8 | |
%8 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%10 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %9, i32 0, i32 1 | |
%11 = load i32, i32* %10, align 8 | |
%12 = icmp ne i32 %11, 4 | |
br i1 %12, label %13, label %17 | |
13: ; preds = %1 | |
%14 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.110, i64 0, i64 0)) | |
%16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
17: ; preds = %1 | |
%18 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%19 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %18, i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.110, i64 0, i64 0)) | |
store %struct.SinObj* %19, %struct.SinObj** %3, align 8 | |
%20 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%21 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %20, i64 0 | |
%22 = bitcast %struct.SinObj* %4 to i8* | |
%23 = bitcast %struct.SinObj* %21 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %22, i8* align 8 %23, i64 16, i1 false) | |
%24 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %24, i64 1 | |
%26 = bitcast %struct.SinObj* %5 to i8* | |
%27 = bitcast %struct.SinObj* %25 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %26, i8* align 8 %27, i64 16, i1 false) | |
%28 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%29 = load i32, i32* %28, align 8 | |
%30 = icmp ne i32 %29, 4 | |
br i1 %30, label %31, label %35 | |
31: ; preds = %17 | |
%32 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%33 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([46 x i8], [46 x i8]* @.str.19, i64 0, i64 0), i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.110, i64 0, i64 0)) | |
%34 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
35: ; preds = %17 | |
%36 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %5, i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.110, i64 0, i64 0)) | |
store %struct.SinObj* %36, %struct.SinObj** %6, align 8 | |
%37 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%38 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %37, i64 0 | |
%39 = bitcast %struct.SinObj* %7 to i8* | |
%40 = bitcast %struct.SinObj* %38 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %39, i8* align 8 %40, i64 16, i1 false) | |
%41 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%42 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %41, i64 1 | |
%43 = bitcast %struct.SinObj* %8 to i8* | |
%44 = bitcast %struct.SinObj* %42 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %43, i8* align 8 %44, i64 16, i1 false) | |
%45 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %8, i32 0, i32 1 | |
%46 = load i32, i32* %45, align 8 | |
%47 = icmp ne i32 %46, 1 | |
br i1 %47, label %48, label %52 | |
48: ; preds = %35 | |
%49 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%50 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([38 x i8], [38 x i8]* @.str.20, i64 0, i64 0), i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.110, i64 0, i64 0)) | |
%51 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
52: ; preds = %35 | |
%53 = call %struct.SinObj* @prim_eq_63(%struct.SinObj* noundef %4, %struct.SinObj* noundef %7) | |
ret %struct.SinObj* %53 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_eq_63(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %4, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%7 = call i32 @eq_helper(%struct.SinObj* noundef %5, %struct.SinObj* noundef %6) | |
%8 = icmp eq i32 %7, 1 | |
%9 = call %struct.SinObj* @make_predicate(i1 noundef zeroext %8) | |
ret %struct.SinObj* %9 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @make_predicate(i1 noundef zeroext %0) #2 { | |
%2 = alloca i8, align 1 | |
%3 = zext i1 %0 to i8 | |
store i8 %3, i8* %2, align 1 | |
%4 = load i8, i8* %2, align 1 | |
%5 = trunc i8 %4 to i1 | |
br i1 %5, label %6, label %8 | |
6: ; preds = %1 | |
%7 = call %struct.SinObj* @const_init_true() | |
br label %10 | |
8: ; preds = %1 | |
%9 = call %struct.SinObj* @const_init_false() | |
br label %10 | |
10: ; preds = %8, %6 | |
%11 = phi %struct.SinObj* [ %7, %6 ], [ %9, %8 ] | |
ret %struct.SinObj* %11 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_eqv_63(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
%7 = alloca %struct.SinObj, align 8 | |
%8 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%10 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %9, i32 0, i32 1 | |
%11 = load i32, i32* %10, align 8 | |
%12 = icmp ne i32 %11, 4 | |
br i1 %12, label %13, label %17 | |
13: ; preds = %1 | |
%14 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.111, i64 0, i64 0)) | |
%16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
17: ; preds = %1 | |
%18 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%19 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %18, i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.111, i64 0, i64 0)) | |
store %struct.SinObj* %19, %struct.SinObj** %3, align 8 | |
%20 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%21 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %20, i64 0 | |
%22 = bitcast %struct.SinObj* %4 to i8* | |
%23 = bitcast %struct.SinObj* %21 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %22, i8* align 8 %23, i64 16, i1 false) | |
%24 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %24, i64 1 | |
%26 = bitcast %struct.SinObj* %5 to i8* | |
%27 = bitcast %struct.SinObj* %25 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %26, i8* align 8 %27, i64 16, i1 false) | |
%28 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%29 = load i32, i32* %28, align 8 | |
%30 = icmp ne i32 %29, 4 | |
br i1 %30, label %31, label %35 | |
31: ; preds = %17 | |
%32 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%33 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([46 x i8], [46 x i8]* @.str.19, i64 0, i64 0), i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.111, i64 0, i64 0)) | |
%34 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
35: ; preds = %17 | |
%36 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %5, i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.111, i64 0, i64 0)) | |
store %struct.SinObj* %36, %struct.SinObj** %6, align 8 | |
%37 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%38 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %37, i64 0 | |
%39 = bitcast %struct.SinObj* %7 to i8* | |
%40 = bitcast %struct.SinObj* %38 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %39, i8* align 8 %40, i64 16, i1 false) | |
%41 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%42 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %41, i64 1 | |
%43 = bitcast %struct.SinObj* %8 to i8* | |
%44 = bitcast %struct.SinObj* %42 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %43, i8* align 8 %44, i64 16, i1 false) | |
%45 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %8, i32 0, i32 1 | |
%46 = load i32, i32* %45, align 8 | |
%47 = icmp ne i32 %46, 1 | |
br i1 %47, label %48, label %52 | |
48: ; preds = %35 | |
%49 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%50 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([38 x i8], [38 x i8]* @.str.20, i64 0, i64 0), i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.111, i64 0, i64 0)) | |
%51 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
52: ; preds = %35 | |
%53 = call %struct.SinObj* @prim_eqv_63(%struct.SinObj* noundef %4, %struct.SinObj* noundef %7) | |
ret %struct.SinObj* %53 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_eqv_63(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %4, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%7 = call %struct.SinObj* @prim_eq_63(%struct.SinObj* noundef %5, %struct.SinObj* noundef %6) | |
ret %struct.SinObj* %7 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_equal_63(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
%7 = alloca %struct.SinObj, align 8 | |
%8 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%10 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %9, i32 0, i32 1 | |
%11 = load i32, i32* %10, align 8 | |
%12 = icmp ne i32 %11, 4 | |
br i1 %12, label %13, label %17 | |
13: ; preds = %1 | |
%14 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([19 x i8], [19 x i8]* @.str.112, i64 0, i64 0)) | |
%16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
17: ; preds = %1 | |
%18 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%19 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %18, i8* noundef getelementptr inbounds ([19 x i8], [19 x i8]* @.str.112, i64 0, i64 0)) | |
store %struct.SinObj* %19, %struct.SinObj** %3, align 8 | |
%20 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%21 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %20, i64 0 | |
%22 = bitcast %struct.SinObj* %4 to i8* | |
%23 = bitcast %struct.SinObj* %21 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %22, i8* align 8 %23, i64 16, i1 false) | |
%24 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %24, i64 1 | |
%26 = bitcast %struct.SinObj* %5 to i8* | |
%27 = bitcast %struct.SinObj* %25 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %26, i8* align 8 %27, i64 16, i1 false) | |
%28 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%29 = load i32, i32* %28, align 8 | |
%30 = icmp ne i32 %29, 4 | |
br i1 %30, label %31, label %35 | |
31: ; preds = %17 | |
%32 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%33 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([46 x i8], [46 x i8]* @.str.19, i64 0, i64 0), i8* noundef getelementptr inbounds ([19 x i8], [19 x i8]* @.str.112, i64 0, i64 0)) | |
%34 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
35: ; preds = %17 | |
%36 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %5, i8* noundef getelementptr inbounds ([19 x i8], [19 x i8]* @.str.112, i64 0, i64 0)) | |
store %struct.SinObj* %36, %struct.SinObj** %6, align 8 | |
%37 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%38 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %37, i64 0 | |
%39 = bitcast %struct.SinObj* %7 to i8* | |
%40 = bitcast %struct.SinObj* %38 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %39, i8* align 8 %40, i64 16, i1 false) | |
%41 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%42 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %41, i64 1 | |
%43 = bitcast %struct.SinObj* %8 to i8* | |
%44 = bitcast %struct.SinObj* %42 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %43, i8* align 8 %44, i64 16, i1 false) | |
%45 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %8, i32 0, i32 1 | |
%46 = load i32, i32* %45, align 8 | |
%47 = icmp ne i32 %46, 1 | |
br i1 %47, label %48, label %52 | |
48: ; preds = %35 | |
%49 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%50 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([38 x i8], [38 x i8]* @.str.20, i64 0, i64 0), i8* noundef getelementptr inbounds ([19 x i8], [19 x i8]* @.str.112, i64 0, i64 0)) | |
%51 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
52: ; preds = %35 | |
%53 = call %struct.SinObj* @prim_equal_63(%struct.SinObj* noundef %4, %struct.SinObj* noundef %7) | |
ret %struct.SinObj* %53 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_equal_63(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %4, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%7 = call %struct.SinObj* @prim_eq_63(%struct.SinObj* noundef %5, %struct.SinObj* noundef %6) | |
ret %struct.SinObj* %7 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_number_63(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%8 = load i32, i32* %7, align 8 | |
%9 = icmp ne i32 %8, 4 | |
br i1 %9, label %10, label %14 | |
10: ; preds = %1 | |
%11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str.113, i64 0, i64 0)) | |
%13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
14: ; preds = %1 | |
%15 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%16 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %15, i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str.113, i64 0, i64 0)) | |
store %struct.SinObj* %16, %struct.SinObj** %3, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i64 0 | |
%19 = bitcast %struct.SinObj* %4 to i8* | |
%20 = bitcast %struct.SinObj* %18 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %19, i8* align 8 %20, i64 16, i1 false) | |
%21 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 1 | |
%23 = bitcast %struct.SinObj* %5 to i8* | |
%24 = bitcast %struct.SinObj* %22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 8 %24, i64 16, i1 false) | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%26 = load i32, i32* %25, align 8 | |
%27 = icmp ne i32 %26, 1 | |
br i1 %27, label %28, label %32 | |
28: ; preds = %14 | |
%29 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%30 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str.113, i64 0, i64 0)) | |
%31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
32: ; preds = %14 | |
%33 = call %struct.SinObj* @prim_number_63(%struct.SinObj* noundef %4) | |
ret %struct.SinObj* %33 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_number_63(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%3 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%4 = call %struct.SinObj* @prim_integer_63(%struct.SinObj* noundef %3) | |
ret %struct.SinObj* %4 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @prim_integer_63(%struct.SinObj* noundef %0) #2 { | |
%2 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%3 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%4 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %3, i32 0, i32 1 | |
%5 = load i32, i32* %4, align 8 | |
%6 = icmp eq i32 %5, 5 | |
%7 = call %struct.SinObj* @make_predicate(i1 noundef zeroext %6) | |
ret %struct.SinObj* %7 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_integer_63(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%8 = load i32, i32* %7, align 8 | |
%9 = icmp ne i32 %8, 4 | |
br i1 %9, label %10, label %14 | |
10: ; preds = %1 | |
%11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.114, i64 0, i64 0)) | |
%13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
14: ; preds = %1 | |
%15 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%16 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %15, i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.114, i64 0, i64 0)) | |
store %struct.SinObj* %16, %struct.SinObj** %3, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i64 0 | |
%19 = bitcast %struct.SinObj* %4 to i8* | |
%20 = bitcast %struct.SinObj* %18 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %19, i8* align 8 %20, i64 16, i1 false) | |
%21 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 1 | |
%23 = bitcast %struct.SinObj* %5 to i8* | |
%24 = bitcast %struct.SinObj* %22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 8 %24, i64 16, i1 false) | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%26 = load i32, i32* %25, align 8 | |
%27 = icmp ne i32 %26, 1 | |
br i1 %27, label %28, label %32 | |
28: ; preds = %14 | |
%29 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%30 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.114, i64 0, i64 0)) | |
%31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
32: ; preds = %14 | |
%33 = call %struct.SinObj* @prim_integer_63(%struct.SinObj* noundef %4) | |
ret %struct.SinObj* %33 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_boolean_63(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%8 = load i32, i32* %7, align 8 | |
%9 = icmp ne i32 %8, 4 | |
br i1 %9, label %10, label %14 | |
10: ; preds = %1 | |
%11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.115, i64 0, i64 0)) | |
%13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
14: ; preds = %1 | |
%15 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%16 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %15, i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.115, i64 0, i64 0)) | |
store %struct.SinObj* %16, %struct.SinObj** %3, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i64 0 | |
%19 = bitcast %struct.SinObj* %4 to i8* | |
%20 = bitcast %struct.SinObj* %18 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %19, i8* align 8 %20, i64 16, i1 false) | |
%21 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 1 | |
%23 = bitcast %struct.SinObj* %5 to i8* | |
%24 = bitcast %struct.SinObj* %22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 8 %24, i64 16, i1 false) | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%26 = load i32, i32* %25, align 8 | |
%27 = icmp ne i32 %26, 1 | |
br i1 %27, label %28, label %32 | |
28: ; preds = %14 | |
%29 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%30 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.115, i64 0, i64 0)) | |
%31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
32: ; preds = %14 | |
%33 = call %struct.SinObj* @prim_boolean_63(%struct.SinObj* noundef %4) | |
ret %struct.SinObj* %33 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @prim_boolean_63(%struct.SinObj* noundef %0) #2 { | |
%2 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%3 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%4 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %3, i32 0, i32 1 | |
%5 = load i32, i32* %4, align 8 | |
%6 = icmp eq i32 %5, 2 | |
%7 = call %struct.SinObj* @make_predicate(i1 noundef zeroext %6) | |
ret %struct.SinObj* %7 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_void_63(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%8 = load i32, i32* %7, align 8 | |
%9 = icmp ne i32 %8, 4 | |
br i1 %9, label %10, label %14 | |
10: ; preds = %1 | |
%11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.116, i64 0, i64 0)) | |
%13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
14: ; preds = %1 | |
%15 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%16 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %15, i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.116, i64 0, i64 0)) | |
store %struct.SinObj* %16, %struct.SinObj** %3, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i64 0 | |
%19 = bitcast %struct.SinObj* %4 to i8* | |
%20 = bitcast %struct.SinObj* %18 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %19, i8* align 8 %20, i64 16, i1 false) | |
%21 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 1 | |
%23 = bitcast %struct.SinObj* %5 to i8* | |
%24 = bitcast %struct.SinObj* %22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 8 %24, i64 16, i1 false) | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%26 = load i32, i32* %25, align 8 | |
%27 = icmp ne i32 %26, 1 | |
br i1 %27, label %28, label %32 | |
28: ; preds = %14 | |
%29 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%30 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.116, i64 0, i64 0)) | |
%31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
32: ; preds = %14 | |
%33 = call %struct.SinObj* @prim_void_63(%struct.SinObj* noundef %4) | |
ret %struct.SinObj* %33 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @prim_void_63(%struct.SinObj* noundef %0) #2 { | |
%2 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%3 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%4 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %3, i32 0, i32 1 | |
%5 = load i32, i32* %4, align 8 | |
%6 = icmp eq i32 %5, 0 | |
%7 = call %struct.SinObj* @make_predicate(i1 noundef zeroext %6) | |
ret %struct.SinObj* %7 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_procedure_63(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%8 = load i32, i32* %7, align 8 | |
%9 = icmp ne i32 %8, 4 | |
br i1 %9, label %10, label %14 | |
10: ; preds = %1 | |
%11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([23 x i8], [23 x i8]* @.str.117, i64 0, i64 0)) | |
%13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
14: ; preds = %1 | |
%15 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%16 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %15, i8* noundef getelementptr inbounds ([23 x i8], [23 x i8]* @.str.117, i64 0, i64 0)) | |
store %struct.SinObj* %16, %struct.SinObj** %3, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i64 0 | |
%19 = bitcast %struct.SinObj* %4 to i8* | |
%20 = bitcast %struct.SinObj* %18 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %19, i8* align 8 %20, i64 16, i1 false) | |
%21 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 1 | |
%23 = bitcast %struct.SinObj* %5 to i8* | |
%24 = bitcast %struct.SinObj* %22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 8 %24, i64 16, i1 false) | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%26 = load i32, i32* %25, align 8 | |
%27 = icmp ne i32 %26, 1 | |
br i1 %27, label %28, label %32 | |
28: ; preds = %14 | |
%29 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%30 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i8* noundef getelementptr inbounds ([23 x i8], [23 x i8]* @.str.117, i64 0, i64 0)) | |
%31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
32: ; preds = %14 | |
%33 = call %struct.SinObj* @prim_procedure_63(%struct.SinObj* noundef %4) | |
ret %struct.SinObj* %33 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @prim_procedure_63(%struct.SinObj* noundef %0) #2 { | |
%2 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%3 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%4 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %3, i32 0, i32 1 | |
%5 = load i32, i32* %4, align 8 | |
%6 = icmp eq i32 %5, 3 | |
%7 = call %struct.SinObj* @make_predicate(i1 noundef zeroext %6) | |
ret %struct.SinObj* %7 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_null_63(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%8 = load i32, i32* %7, align 8 | |
%9 = icmp ne i32 %8, 4 | |
br i1 %9, label %10, label %14 | |
10: ; preds = %1 | |
%11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.118, i64 0, i64 0)) | |
%13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
14: ; preds = %1 | |
%15 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%16 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %15, i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.118, i64 0, i64 0)) | |
store %struct.SinObj* %16, %struct.SinObj** %3, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i64 0 | |
%19 = bitcast %struct.SinObj* %4 to i8* | |
%20 = bitcast %struct.SinObj* %18 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %19, i8* align 8 %20, i64 16, i1 false) | |
%21 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 1 | |
%23 = bitcast %struct.SinObj* %5 to i8* | |
%24 = bitcast %struct.SinObj* %22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 8 %24, i64 16, i1 false) | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%26 = load i32, i32* %25, align 8 | |
%27 = icmp ne i32 %26, 1 | |
br i1 %27, label %28, label %32 | |
28: ; preds = %14 | |
%29 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%30 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.118, i64 0, i64 0)) | |
%31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
32: ; preds = %14 | |
%33 = call %struct.SinObj* @prim_null_63(%struct.SinObj* noundef %4) | |
ret %struct.SinObj* %33 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @prim_null_63(%struct.SinObj* noundef %0) #2 { | |
%2 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%3 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%4 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %3, i32 0, i32 1 | |
%5 = load i32, i32* %4, align 8 | |
%6 = icmp eq i32 %5, 1 | |
%7 = call %struct.SinObj* @make_predicate(i1 noundef zeroext %6) | |
ret %struct.SinObj* %7 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_cons_63(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%8 = load i32, i32* %7, align 8 | |
%9 = icmp ne i32 %8, 4 | |
br i1 %9, label %10, label %14 | |
10: ; preds = %1 | |
%11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.119, i64 0, i64 0)) | |
%13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
14: ; preds = %1 | |
%15 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%16 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %15, i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.119, i64 0, i64 0)) | |
store %struct.SinObj* %16, %struct.SinObj** %3, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i64 0 | |
%19 = bitcast %struct.SinObj* %4 to i8* | |
%20 = bitcast %struct.SinObj* %18 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %19, i8* align 8 %20, i64 16, i1 false) | |
%21 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 1 | |
%23 = bitcast %struct.SinObj* %5 to i8* | |
%24 = bitcast %struct.SinObj* %22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 8 %24, i64 16, i1 false) | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%26 = load i32, i32* %25, align 8 | |
%27 = icmp ne i32 %26, 1 | |
br i1 %27, label %28, label %32 | |
28: ; preds = %14 | |
%29 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%30 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.119, i64 0, i64 0)) | |
%31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
32: ; preds = %14 | |
%33 = call %struct.SinObj* @prim_cons_63(%struct.SinObj* noundef %4) | |
ret %struct.SinObj* %33 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @prim_cons_63(%struct.SinObj* noundef %0) #2 { | |
%2 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%3 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%4 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %3, i32 0, i32 1 | |
%5 = load i32, i32* %4, align 8 | |
%6 = icmp eq i32 %5, 4 | |
%7 = call %struct.SinObj* @make_predicate(i1 noundef zeroext %6) | |
ret %struct.SinObj* %7 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_cons(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
%7 = alloca %struct.SinObj, align 8 | |
%8 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%10 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %9, i32 0, i32 1 | |
%11 = load i32, i32* %10, align 8 | |
%12 = icmp ne i32 %11, 4 | |
br i1 %12, label %13, label %17 | |
13: ; preds = %1 | |
%14 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.120, i64 0, i64 0)) | |
%16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
17: ; preds = %1 | |
%18 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%19 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %18, i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.120, i64 0, i64 0)) | |
store %struct.SinObj* %19, %struct.SinObj** %3, align 8 | |
%20 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%21 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %20, i64 0 | |
%22 = bitcast %struct.SinObj* %4 to i8* | |
%23 = bitcast %struct.SinObj* %21 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %22, i8* align 8 %23, i64 16, i1 false) | |
%24 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %24, i64 1 | |
%26 = bitcast %struct.SinObj* %5 to i8* | |
%27 = bitcast %struct.SinObj* %25 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %26, i8* align 8 %27, i64 16, i1 false) | |
%28 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%29 = load i32, i32* %28, align 8 | |
%30 = icmp ne i32 %29, 4 | |
br i1 %30, label %31, label %35 | |
31: ; preds = %17 | |
%32 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%33 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([46 x i8], [46 x i8]* @.str.19, i64 0, i64 0), i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.120, i64 0, i64 0)) | |
%34 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
35: ; preds = %17 | |
%36 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %5, i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.120, i64 0, i64 0)) | |
store %struct.SinObj* %36, %struct.SinObj** %6, align 8 | |
%37 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%38 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %37, i64 0 | |
%39 = bitcast %struct.SinObj* %7 to i8* | |
%40 = bitcast %struct.SinObj* %38 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %39, i8* align 8 %40, i64 16, i1 false) | |
%41 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%42 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %41, i64 1 | |
%43 = bitcast %struct.SinObj* %8 to i8* | |
%44 = bitcast %struct.SinObj* %42 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %43, i8* align 8 %44, i64 16, i1 false) | |
%45 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %8, i32 0, i32 1 | |
%46 = load i32, i32* %45, align 8 | |
%47 = icmp ne i32 %46, 1 | |
br i1 %47, label %48, label %52 | |
48: ; preds = %35 | |
%49 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%50 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([38 x i8], [38 x i8]* @.str.20, i64 0, i64 0), i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.120, i64 0, i64 0)) | |
%51 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
52: ; preds = %35 | |
%53 = call %struct.SinObj* @prim_cons(%struct.SinObj* noundef %4, %struct.SinObj* noundef %7) | |
ret %struct.SinObj* %53 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_cdr(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%8 = load i32, i32* %7, align 8 | |
%9 = icmp ne i32 %8, 4 | |
br i1 %9, label %10, label %14 | |
10: ; preds = %1 | |
%11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.121, i64 0, i64 0)) | |
%13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
14: ; preds = %1 | |
%15 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%16 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %15, i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.121, i64 0, i64 0)) | |
store %struct.SinObj* %16, %struct.SinObj** %3, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i64 0 | |
%19 = bitcast %struct.SinObj* %4 to i8* | |
%20 = bitcast %struct.SinObj* %18 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %19, i8* align 8 %20, i64 16, i1 false) | |
%21 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 1 | |
%23 = bitcast %struct.SinObj* %5 to i8* | |
%24 = bitcast %struct.SinObj* %22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 8 %24, i64 16, i1 false) | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%26 = load i32, i32* %25, align 8 | |
%27 = icmp ne i32 %26, 1 | |
br i1 %27, label %28, label %32 | |
28: ; preds = %14 | |
%29 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%30 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.121, i64 0, i64 0)) | |
%31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
32: ; preds = %14 | |
%33 = call %struct.SinObj* @prim_cdr(%struct.SinObj* noundef %4) | |
ret %struct.SinObj* %33 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_cdr(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%4 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%5 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %4, i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.122, i64 0, i64 0)) | |
store %struct.SinObj* %5, %struct.SinObj** %3, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i64 1 | |
ret %struct.SinObj* %7 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim__45(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca i64, align 8 | |
%6 = alloca i64, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %4, align 8 | |
%7 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%8 = call i64 @unwrap_int(%struct.SinObj* noundef %7, i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.123, i64 0, i64 0)) | |
store i64 %8, i64* %5, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%10 = call i64 @unwrap_int(%struct.SinObj* noundef %9, i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.124, i64 0, i64 0)) | |
store i64 %10, i64* %6, align 8 | |
%11 = load i64, i64* %5, align 8 | |
%12 = load i64, i64* %6, align 8 | |
%13 = sub nsw i64 %11, %12 | |
%14 = call %struct.SinObj* @const_init_int(i64 noundef %13) | |
ret %struct.SinObj* %14 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim__45(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
%6 = alloca %struct.SinObj, align 8 | |
%7 = alloca i64, align 8 | |
%8 = alloca i64, align 8 | |
%9 = alloca %struct.SinObj, align 8 | |
%10 = alloca %struct.SinObj, align 8 | |
%11 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
%12 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%13 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %12, i8* noundef getelementptr inbounds ([8 x i8], [8 x i8]* @.str.125, i64 0, i64 0)) | |
store %struct.SinObj* %13, %struct.SinObj** %4, align 8 | |
%14 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%15 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %14, i64 0 | |
%16 = bitcast %struct.SinObj* %5 to i8* | |
%17 = bitcast %struct.SinObj* %15 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %16, i8* align 8 %17, i64 16, i1 false) | |
%18 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%19 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %18, i64 1 | |
%20 = bitcast %struct.SinObj* %6 to i8* | |
%21 = bitcast %struct.SinObj* %19 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %20, i8* align 8 %21, i64 16, i1 false) | |
%22 = call i64 @unwrap_int(%struct.SinObj* noundef %5, i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.126, i64 0, i64 0)) | |
store i64 %22, i64* %7, align 8 | |
%23 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%24 = load i32, i32* %23, align 8 | |
%25 = icmp eq i32 %24, 1 | |
br i1 %25, label %26, label %30 | |
26: ; preds = %1 | |
%27 = load i64, i64* %7, align 8 | |
%28 = sub nsw i64 0, %27 | |
%29 = call %struct.SinObj* @const_init_int(i64 noundef %28) | |
store %struct.SinObj* %29, %struct.SinObj** %2, align 8 | |
br label %47 | |
30: ; preds = %1 | |
%31 = load i64, i64* %7, align 8 | |
store i64 %31, i64* %8, align 8 | |
%32 = bitcast %struct.SinObj* %9 to i8* | |
%33 = bitcast %struct.SinObj* %6 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %32, i8* align 8 %33, i64 16, i1 false) | |
br label %34 | |
34: ; preds = %38, %30 | |
%35 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %9, i32 0, i32 1 | |
%36 = load i32, i32* %35, align 8 | |
%37 = icmp ne i32 %36, 1 | |
br i1 %37, label %38, label %44 | |
38: ; preds = %34 | |
call void @_get_both(%struct.SinObj* noundef %9, %struct.SinObj* noundef %10, %struct.SinObj* noundef %11) | |
%39 = call i64 @unwrap_int(%struct.SinObj* noundef %10, i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str.127, i64 0, i64 0)) | |
%40 = load i64, i64* %8, align 8 | |
%41 = sub nsw i64 %40, %39 | |
store i64 %41, i64* %8, align 8 | |
%42 = bitcast %struct.SinObj* %9 to i8* | |
%43 = bitcast %struct.SinObj* %11 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %42, i8* align 8 %43, i64 16, i1 false) | |
br label %34, !llvm.loop !18 | |
44: ; preds = %34 | |
%45 = load i64, i64* %8, align 8 | |
%46 = call %struct.SinObj* @const_init_int(i64 noundef %45) | |
store %struct.SinObj* %46, %struct.SinObj** %2, align 8 | |
br label %47 | |
47: ; preds = %44, %26 | |
%48 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
ret %struct.SinObj* %48 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim__42(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %4, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%6 = call i64 @unwrap_int(%struct.SinObj* noundef %5, i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.128, i64 0, i64 0)) | |
%7 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%8 = call i64 @unwrap_int(%struct.SinObj* noundef %7, i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.129, i64 0, i64 0)) | |
%9 = mul nsw i64 %6, %8 | |
%10 = call %struct.SinObj* @const_init_int(i64 noundef %9) | |
ret %struct.SinObj* %10 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim__42(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
%6 = alloca %struct.SinObj, align 8 | |
%7 = alloca i64, align 8 | |
%8 = alloca i64, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%10 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %9, i32 0, i32 1 | |
%11 = load i32, i32* %10, align 8 | |
%12 = icmp eq i32 %11, 1 | |
br i1 %12, label %13, label %15 | |
13: ; preds = %1 | |
%14 = call %struct.SinObj* @const_init_int(i64 noundef 1) | |
store %struct.SinObj* %14, %struct.SinObj** %2, align 8 | |
br label %42 | |
15: ; preds = %1 | |
%16 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%17 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %16, i32 0, i32 1 | |
%18 = load i32, i32* %17, align 8 | |
%19 = icmp eq i32 %18, 4 | |
br i1 %19, label %20, label %38 | |
20: ; preds = %15 | |
%21 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%22 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %21, i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.130, i64 0, i64 0)) | |
store %struct.SinObj* %22, %struct.SinObj** %4, align 8 | |
%23 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%24 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %23, i64 0 | |
%25 = bitcast %struct.SinObj* %5 to i8* | |
%26 = bitcast %struct.SinObj* %24 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %25, i8* align 8 %26, i64 16, i1 false) | |
%27 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%28 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %27, i64 1 | |
%29 = bitcast %struct.SinObj* %6 to i8* | |
%30 = bitcast %struct.SinObj* %28 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %29, i8* align 8 %30, i64 16, i1 false) | |
%31 = call i64 @unwrap_int(%struct.SinObj* noundef %5, i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.131, i64 0, i64 0)) | |
store i64 %31, i64* %7, align 8 | |
%32 = call %struct.SinObj* @applyprim__42(%struct.SinObj* noundef %6) | |
%33 = call i64 @unwrap_int(%struct.SinObj* noundef %32, i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.132, i64 0, i64 0)) | |
store i64 %33, i64* %8, align 8 | |
%34 = load i64, i64* %7, align 8 | |
%35 = load i64, i64* %8, align 8 | |
%36 = mul nsw i64 %34, %35 | |
%37 = call %struct.SinObj* @const_init_int(i64 noundef %36) | |
store %struct.SinObj* %37, %struct.SinObj** %2, align 8 | |
br label %42 | |
38: ; preds = %15 | |
%39 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%40 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([36 x i8], [36 x i8]* @.str.133, i64 0, i64 0)) | |
%41 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
42: ; preds = %20, %13 | |
%43 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
ret %struct.SinObj* %43 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim__47(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca i64, align 8 | |
%6 = alloca i64, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %4, align 8 | |
%7 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%8 = call i64 @unwrap_int(%struct.SinObj* noundef %7, i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.134, i64 0, i64 0)) | |
store i64 %8, i64* %5, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%10 = call i64 @unwrap_int(%struct.SinObj* noundef %9, i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.135, i64 0, i64 0)) | |
store i64 %10, i64* %6, align 8 | |
%11 = load i64, i64* %5, align 8 | |
%12 = load i64, i64* %6, align 8 | |
%13 = sdiv i64 %11, %12 | |
%14 = call %struct.SinObj* @const_init_int(i64 noundef %13) | |
ret %struct.SinObj* %14 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim__61(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
%7 = alloca %struct.SinObj, align 8 | |
%8 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%10 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %9, i32 0, i32 1 | |
%11 = load i32, i32* %10, align 8 | |
%12 = icmp ne i32 %11, 4 | |
br i1 %12, label %13, label %17 | |
13: ; preds = %1 | |
%14 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.136, i64 0, i64 0)) | |
%16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
17: ; preds = %1 | |
%18 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%19 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %18, i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.136, i64 0, i64 0)) | |
store %struct.SinObj* %19, %struct.SinObj** %3, align 8 | |
%20 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%21 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %20, i64 0 | |
%22 = bitcast %struct.SinObj* %4 to i8* | |
%23 = bitcast %struct.SinObj* %21 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %22, i8* align 8 %23, i64 16, i1 false) | |
%24 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %24, i64 1 | |
%26 = bitcast %struct.SinObj* %5 to i8* | |
%27 = bitcast %struct.SinObj* %25 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %26, i8* align 8 %27, i64 16, i1 false) | |
%28 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%29 = load i32, i32* %28, align 8 | |
%30 = icmp ne i32 %29, 4 | |
br i1 %30, label %31, label %35 | |
31: ; preds = %17 | |
%32 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%33 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([46 x i8], [46 x i8]* @.str.19, i64 0, i64 0), i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.136, i64 0, i64 0)) | |
%34 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
35: ; preds = %17 | |
%36 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %5, i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.136, i64 0, i64 0)) | |
store %struct.SinObj* %36, %struct.SinObj** %6, align 8 | |
%37 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%38 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %37, i64 0 | |
%39 = bitcast %struct.SinObj* %7 to i8* | |
%40 = bitcast %struct.SinObj* %38 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %39, i8* align 8 %40, i64 16, i1 false) | |
%41 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%42 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %41, i64 1 | |
%43 = bitcast %struct.SinObj* %8 to i8* | |
%44 = bitcast %struct.SinObj* %42 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %43, i8* align 8 %44, i64 16, i1 false) | |
%45 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %8, i32 0, i32 1 | |
%46 = load i32, i32* %45, align 8 | |
%47 = icmp ne i32 %46, 1 | |
br i1 %47, label %48, label %52 | |
48: ; preds = %35 | |
%49 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%50 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([38 x i8], [38 x i8]* @.str.20, i64 0, i64 0), i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.136, i64 0, i64 0)) | |
%51 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
52: ; preds = %35 | |
%53 = call %struct.SinObj* @prim__61(%struct.SinObj* noundef %4, %struct.SinObj* noundef %7) | |
ret %struct.SinObj* %53 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim__61(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %4, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %5, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%7 = call i64 @unwrap_int(%struct.SinObj* noundef %6, i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.137, i64 0, i64 0)) | |
%8 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%9 = call i64 @unwrap_int(%struct.SinObj* noundef %8, i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.138, i64 0, i64 0)) | |
%10 = icmp eq i64 %7, %9 | |
br i1 %10, label %11, label %13 | |
11: ; preds = %2 | |
%12 = call %struct.SinObj* @const_init_true() | |
store %struct.SinObj* %12, %struct.SinObj** %3, align 8 | |
br label %15 | |
13: ; preds = %2 | |
%14 = call %struct.SinObj* @const_init_false() | |
store %struct.SinObj* %14, %struct.SinObj** %3, align 8 | |
br label %15 | |
15: ; preds = %13, %11 | |
%16 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
ret %struct.SinObj* %16 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim__60(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %4, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%6 = call i64 @unwrap_int(%struct.SinObj* noundef %5, i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.139, i64 0, i64 0)) | |
%7 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%8 = call i64 @unwrap_int(%struct.SinObj* noundef %7, i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.140, i64 0, i64 0)) | |
%9 = icmp slt i64 %6, %8 | |
%10 = call %struct.SinObj* @make_predicate(i1 noundef zeroext %9) | |
ret %struct.SinObj* %10 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim__60_61(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
%7 = alloca %struct.SinObj, align 8 | |
%8 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%10 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %9, i32 0, i32 1 | |
%11 = load i32, i32* %10, align 8 | |
%12 = icmp ne i32 %11, 4 | |
br i1 %12, label %13, label %17 | |
13: ; preds = %1 | |
%14 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.141, i64 0, i64 0)) | |
%16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
17: ; preds = %1 | |
%18 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%19 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %18, i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.141, i64 0, i64 0)) | |
store %struct.SinObj* %19, %struct.SinObj** %3, align 8 | |
%20 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%21 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %20, i64 0 | |
%22 = bitcast %struct.SinObj* %4 to i8* | |
%23 = bitcast %struct.SinObj* %21 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %22, i8* align 8 %23, i64 16, i1 false) | |
%24 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %24, i64 1 | |
%26 = bitcast %struct.SinObj* %5 to i8* | |
%27 = bitcast %struct.SinObj* %25 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %26, i8* align 8 %27, i64 16, i1 false) | |
%28 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%29 = load i32, i32* %28, align 8 | |
%30 = icmp ne i32 %29, 4 | |
br i1 %30, label %31, label %35 | |
31: ; preds = %17 | |
%32 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%33 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([46 x i8], [46 x i8]* @.str.19, i64 0, i64 0), i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.141, i64 0, i64 0)) | |
%34 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
35: ; preds = %17 | |
%36 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %5, i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.141, i64 0, i64 0)) | |
store %struct.SinObj* %36, %struct.SinObj** %6, align 8 | |
%37 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%38 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %37, i64 0 | |
%39 = bitcast %struct.SinObj* %7 to i8* | |
%40 = bitcast %struct.SinObj* %38 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %39, i8* align 8 %40, i64 16, i1 false) | |
%41 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%42 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %41, i64 1 | |
%43 = bitcast %struct.SinObj* %8 to i8* | |
%44 = bitcast %struct.SinObj* %42 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %43, i8* align 8 %44, i64 16, i1 false) | |
%45 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %8, i32 0, i32 1 | |
%46 = load i32, i32* %45, align 8 | |
%47 = icmp ne i32 %46, 1 | |
br i1 %47, label %48, label %52 | |
48: ; preds = %35 | |
%49 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%50 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([38 x i8], [38 x i8]* @.str.20, i64 0, i64 0), i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.141, i64 0, i64 0)) | |
%51 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
52: ; preds = %35 | |
%53 = call %struct.SinObj* @prim__60_61(%struct.SinObj* noundef %4, %struct.SinObj* noundef %7) | |
ret %struct.SinObj* %53 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim__60_61(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %4, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%6 = call i64 @unwrap_int(%struct.SinObj* noundef %5, i8* noundef getelementptr inbounds ([5 x i8], [5 x i8]* @.str.142, i64 0, i64 0)) | |
%7 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%8 = call i64 @unwrap_int(%struct.SinObj* noundef %7, i8* noundef getelementptr inbounds ([5 x i8], [5 x i8]* @.str.143, i64 0, i64 0)) | |
%9 = icmp sle i64 %6, %8 | |
%10 = call %struct.SinObj* @make_predicate(i1 noundef zeroext %9) | |
ret %struct.SinObj* %10 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_not(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%8 = load i32, i32* %7, align 8 | |
%9 = icmp ne i32 %8, 4 | |
br i1 %9, label %10, label %14 | |
10: ; preds = %1 | |
%11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.144, i64 0, i64 0)) | |
%13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
14: ; preds = %1 | |
%15 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%16 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %15, i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.144, i64 0, i64 0)) | |
store %struct.SinObj* %16, %struct.SinObj** %3, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i64 0 | |
%19 = bitcast %struct.SinObj* %4 to i8* | |
%20 = bitcast %struct.SinObj* %18 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %19, i8* align 8 %20, i64 16, i1 false) | |
%21 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 1 | |
%23 = bitcast %struct.SinObj* %5 to i8* | |
%24 = bitcast %struct.SinObj* %22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 8 %24, i64 16, i1 false) | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%26 = load i32, i32* %25, align 8 | |
%27 = icmp ne i32 %26, 1 | |
br i1 %27, label %28, label %32 | |
28: ; preds = %14 | |
%29 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%30 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.144, i64 0, i64 0)) | |
%31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
32: ; preds = %14 | |
%33 = call %struct.SinObj* @prim_not(%struct.SinObj* noundef %4) | |
ret %struct.SinObj* %33 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_not(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%3 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%4 = call i64 @unwrap_bool(%struct.SinObj* noundef %3, i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.145, i64 0, i64 0)) | |
%5 = icmp eq i64 %4, 0 | |
%6 = call %struct.SinObj* @make_predicate(i1 noundef zeroext %5) | |
ret %struct.SinObj* %6 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @map_to_sin(%struct.Map* noundef %0) #2 { | |
%2 = alloca %struct.Map*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
store %struct.Map* %0, %struct.Map** %2, align 8 | |
%4 = call %struct.SinObj* @alloc(i64 noundef 1) | |
store %struct.SinObj* %4, %struct.SinObj** %3, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%6 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
store i32 9, i32* %6, align 8 | |
%7 = load %struct.Map*, %struct.Map** %2, align 8 | |
%8 = bitcast %struct.Map* %7 to i64* | |
%9 = bitcast i64* %8 to i8* | |
%10 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%11 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %10, i32 0, i32 0 | |
store i8* %9, i8** %11, align 8 | |
%12 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
ret %struct.SinObj* %12 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_hash_45has_45key_63(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
%7 = alloca %struct.SinObj, align 8 | |
%8 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%10 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %9, i32 0, i32 1 | |
%11 = load i32, i32* %10, align 8 | |
%12 = icmp ne i32 %11, 4 | |
br i1 %12, label %13, label %17 | |
13: ; preds = %1 | |
%14 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([30 x i8], [30 x i8]* @.str.146, i64 0, i64 0)) | |
%16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
17: ; preds = %1 | |
%18 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%19 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %18, i8* noundef getelementptr inbounds ([30 x i8], [30 x i8]* @.str.146, i64 0, i64 0)) | |
store %struct.SinObj* %19, %struct.SinObj** %3, align 8 | |
%20 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%21 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %20, i64 0 | |
%22 = bitcast %struct.SinObj* %4 to i8* | |
%23 = bitcast %struct.SinObj* %21 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %22, i8* align 8 %23, i64 16, i1 false) | |
%24 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %24, i64 1 | |
%26 = bitcast %struct.SinObj* %5 to i8* | |
%27 = bitcast %struct.SinObj* %25 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %26, i8* align 8 %27, i64 16, i1 false) | |
%28 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%29 = load i32, i32* %28, align 8 | |
%30 = icmp ne i32 %29, 4 | |
br i1 %30, label %31, label %35 | |
31: ; preds = %17 | |
%32 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%33 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([46 x i8], [46 x i8]* @.str.19, i64 0, i64 0), i8* noundef getelementptr inbounds ([30 x i8], [30 x i8]* @.str.146, i64 0, i64 0)) | |
%34 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
35: ; preds = %17 | |
%36 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %5, i8* noundef getelementptr inbounds ([30 x i8], [30 x i8]* @.str.146, i64 0, i64 0)) | |
store %struct.SinObj* %36, %struct.SinObj** %6, align 8 | |
%37 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%38 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %37, i64 0 | |
%39 = bitcast %struct.SinObj* %7 to i8* | |
%40 = bitcast %struct.SinObj* %38 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %39, i8* align 8 %40, i64 16, i1 false) | |
%41 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%42 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %41, i64 1 | |
%43 = bitcast %struct.SinObj* %8 to i8* | |
%44 = bitcast %struct.SinObj* %42 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %43, i8* align 8 %44, i64 16, i1 false) | |
%45 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %8, i32 0, i32 1 | |
%46 = load i32, i32* %45, align 8 | |
%47 = icmp ne i32 %46, 1 | |
br i1 %47, label %48, label %52 | |
48: ; preds = %35 | |
%49 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%50 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([38 x i8], [38 x i8]* @.str.20, i64 0, i64 0), i8* noundef getelementptr inbounds ([30 x i8], [30 x i8]* @.str.146, i64 0, i64 0)) | |
%51 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
52: ; preds = %35 | |
%53 = call %struct.SinObj* @prim_hash_45has_45key_63(%struct.SinObj* noundef %4, %struct.SinObj* noundef %7) | |
ret %struct.SinObj* %53 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_hash_45has_45key_63(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca %struct.Map*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %4, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%7 = call %struct.Map* @unwrap_hash(%struct.SinObj* noundef %6, i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.147, i64 0, i64 0)) | |
store %struct.Map* %7, %struct.Map** %5, align 8 | |
%8 = load %struct.Map*, %struct.Map** %5, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%10 = call zeroext i1 @map_has_key(%struct.Map* noundef %8, %struct.SinObj* noundef %9) | |
%11 = call %struct.SinObj* @make_predicate(i1 noundef zeroext %10) | |
ret %struct.SinObj* %11 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_hash(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.Map*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca %struct.SinObj*, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
%7 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
store %struct.Map* null, %struct.Map** %3, align 8 | |
br label %8 | |
8: ; preds = %29, %1 | |
%9 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%10 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %9, i32 0, i32 1 | |
%11 = load i32, i32* %10, align 8 | |
%12 = icmp ne i32 %11, 1 | |
br i1 %12, label %13, label %38 | |
13: ; preds = %8 | |
%14 = call %struct.SinObj* @alloc(i64 noundef 1) | |
store %struct.SinObj* %14, %struct.SinObj** %4, align 8 | |
%15 = call %struct.SinObj* @alloc(i64 noundef 1) | |
store %struct.SinObj* %15, %struct.SinObj** %5, align 8 | |
%16 = call %struct.SinObj* @alloc(i64 noundef 1) | |
store %struct.SinObj* %16, %struct.SinObj** %6, align 8 | |
%17 = call %struct.SinObj* @alloc(i64 noundef 1) | |
store %struct.SinObj* %17, %struct.SinObj** %7, align 8 | |
%18 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%19 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%20 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
call void @_get_both(%struct.SinObj* noundef %18, %struct.SinObj* noundef %19, %struct.SinObj* noundef %20) | |
%21 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i32 0, i32 1 | |
%23 = load i32, i32* %22, align 8 | |
%24 = icmp ne i32 %23, 4 | |
br i1 %24, label %25, label %29 | |
25: ; preds = %13 | |
%26 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%27 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([33 x i8], [33 x i8]* @.str.148, i64 0, i64 0)) | |
%28 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
29: ; preds = %13 | |
%30 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%31 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%32 = load %struct.SinObj*, %struct.SinObj** %7, align 8 | |
call void @_get_both(%struct.SinObj* noundef %30, %struct.SinObj* noundef %31, %struct.SinObj* noundef %32) | |
%33 = load %struct.Map*, %struct.Map** %3, align 8 | |
%34 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%35 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%36 = call %struct.Map* @map_insert(%struct.Map* noundef %33, %struct.SinObj* noundef %34, %struct.SinObj* noundef %35) | |
store %struct.Map* %36, %struct.Map** %3, align 8 | |
%37 = load %struct.SinObj*, %struct.SinObj** %7, align 8 | |
store %struct.SinObj* %37, %struct.SinObj** %2, align 8 | |
br label %8, !llvm.loop !19 | |
38: ; preds = %8 | |
%39 = load %struct.Map*, %struct.Map** %3, align 8 | |
%40 = call %struct.SinObj* @map_to_sin(%struct.Map* noundef %39) | |
ret %struct.SinObj* %40 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_hash_45keys(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%8 = load i32, i32* %7, align 8 | |
%9 = icmp ne i32 %8, 4 | |
br i1 %9, label %10, label %14 | |
10: ; preds = %1 | |
%11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([22 x i8], [22 x i8]* @.str.149, i64 0, i64 0)) | |
%13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
14: ; preds = %1 | |
%15 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%16 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %15, i8* noundef getelementptr inbounds ([22 x i8], [22 x i8]* @.str.149, i64 0, i64 0)) | |
store %struct.SinObj* %16, %struct.SinObj** %3, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i64 0 | |
%19 = bitcast %struct.SinObj* %4 to i8* | |
%20 = bitcast %struct.SinObj* %18 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %19, i8* align 8 %20, i64 16, i1 false) | |
%21 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 1 | |
%23 = bitcast %struct.SinObj* %5 to i8* | |
%24 = bitcast %struct.SinObj* %22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 8 %24, i64 16, i1 false) | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%26 = load i32, i32* %25, align 8 | |
%27 = icmp ne i32 %26, 1 | |
br i1 %27, label %28, label %32 | |
28: ; preds = %14 | |
%29 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%30 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i8* noundef getelementptr inbounds ([22 x i8], [22 x i8]* @.str.149, i64 0, i64 0)) | |
%31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
32: ; preds = %14 | |
%33 = call %struct.SinObj* @prim_hash_45keys(%struct.SinObj* noundef %4) | |
ret %struct.SinObj* %33 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_hash_45keys(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.Map*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%4 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%5 = call %struct.Map* @unwrap_hash(%struct.SinObj* noundef %4, i8* noundef getelementptr inbounds ([10 x i8], [10 x i8]* @.str.150, i64 0, i64 0)) | |
store %struct.Map* %5, %struct.Map** %3, align 8 | |
%6 = load %struct.Map*, %struct.Map** %3, align 8 | |
%7 = call %struct.SinObj* @map_keys(%struct.Map* noundef %6) | |
ret %struct.SinObj* %7 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_hash_45ref(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca %struct.SinObj*, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
%7 = alloca %struct.SinObj, align 8 | |
%8 = alloca %struct.SinObj, align 8 | |
%9 = alloca %struct.SinObj, align 8 | |
%10 = alloca %struct.SinObj, align 8 | |
%11 = alloca %struct.SinObj, align 8 | |
%12 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store %struct.SinObj* null, %struct.SinObj** %4, align 8 | |
store %struct.SinObj* null, %struct.SinObj** %5, align 8 | |
store %struct.SinObj* null, %struct.SinObj** %6, align 8 | |
%13 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%14 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %13, i32 0, i32 1 | |
%15 = load i32, i32* %14, align 8 | |
%16 = icmp eq i32 %15, 4 | |
br i1 %16, label %17, label %51 | |
17: ; preds = %1 | |
%18 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
call void @_get_both(%struct.SinObj* noundef %18, %struct.SinObj* noundef %7, %struct.SinObj* noundef %8) | |
store %struct.SinObj* %7, %struct.SinObj** %4, align 8 | |
%19 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %8, i32 0, i32 1 | |
%20 = load i32, i32* %19, align 8 | |
%21 = icmp eq i32 %20, 4 | |
br i1 %21, label %22, label %50 | |
22: ; preds = %17 | |
call void @_get_both(%struct.SinObj* noundef %8, %struct.SinObj* noundef %9, %struct.SinObj* noundef %10) | |
store %struct.SinObj* %9, %struct.SinObj** %5, align 8 | |
%23 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %10, i32 0, i32 1 | |
%24 = load i32, i32* %23, align 8 | |
%25 = icmp eq i32 %24, 4 | |
br i1 %25, label %26, label %39 | |
26: ; preds = %22 | |
call void @_get_both(%struct.SinObj* noundef %10, %struct.SinObj* noundef %11, %struct.SinObj* noundef %12) | |
store %struct.SinObj* %11, %struct.SinObj** %6, align 8 | |
%27 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %12, i32 0, i32 1 | |
%28 = load i32, i32* %27, align 8 | |
%29 = icmp eq i32 %28, 1 | |
br i1 %29, label %30, label %35 | |
30: ; preds = %26 | |
%31 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%32 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%33 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%34 = call %struct.SinObj* @hash_ref_impl(%struct.SinObj* noundef %31, %struct.SinObj* noundef %32, %struct.SinObj* noundef %33) | |
store %struct.SinObj* %34, %struct.SinObj** %2, align 8 | |
br label %55 | |
35: ; preds = %26 | |
%36 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%37 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.151, i64 0, i64 0)) | |
%38 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
39: ; preds = %22 | |
%40 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %10, i32 0, i32 1 | |
%41 = load i32, i32* %40, align 8 | |
%42 = icmp eq i32 %41, 1 | |
br i1 %42, label %43, label %48 | |
43: ; preds = %39 | |
%44 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%45 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%46 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%47 = call %struct.SinObj* @hash_ref_impl(%struct.SinObj* noundef %44, %struct.SinObj* noundef %45, %struct.SinObj* noundef %46) | |
store %struct.SinObj* %47, %struct.SinObj** %2, align 8 | |
br label %55 | |
48: ; preds = %39 | |
br label %49 | |
49: ; preds = %48 | |
br label %50 | |
50: ; preds = %49, %17 | |
br label %51 | |
51: ; preds = %50, %1 | |
%52 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%53 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([46 x i8], [46 x i8]* @.str.152, i64 0, i64 0)) | |
%54 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
55: ; preds = %43, %30 | |
%56 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
ret %struct.SinObj* %56 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @hash_ref_impl(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1, %struct.SinObj* noundef %2) #0 { | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca %struct.SinObj*, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
%7 = alloca %struct.SinObj*, align 8 | |
%8 = alloca %struct.Map*, align 8 | |
%9 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %5, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %6, align 8 | |
store %struct.SinObj* %2, %struct.SinObj** %7, align 8 | |
%10 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%11 = call %struct.Map* @unwrap_hash(%struct.SinObj* noundef %10, i8* noundef getelementptr inbounds ([9 x i8], [9 x i8]* @.str.153, i64 0, i64 0)) | |
store %struct.Map* %11, %struct.Map** %8, align 8 | |
%12 = load %struct.Map*, %struct.Map** %8, align 8 | |
%13 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%14 = call %struct.SinObj* @map_get(%struct.Map* noundef %12, %struct.SinObj* noundef %13) | |
store %struct.SinObj* %14, %struct.SinObj** %9, align 8 | |
%15 = load %struct.SinObj*, %struct.SinObj** %9, align 8 | |
%16 = icmp eq %struct.SinObj* %15, null | |
br i1 %16, label %17, label %26 | |
17: ; preds = %3 | |
%18 = load %struct.SinObj*, %struct.SinObj** %7, align 8 | |
%19 = icmp eq %struct.SinObj* %18, null | |
br i1 %19, label %20, label %24 | |
20: ; preds = %17 | |
%21 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%22 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.154, i64 0, i64 0)) | |
%23 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
24: ; preds = %17 | |
%25 = load %struct.SinObj*, %struct.SinObj** %7, align 8 | |
store %struct.SinObj* %25, %struct.SinObj** %4, align 8 | |
br label %28 | |
26: ; preds = %3 | |
%27 = load %struct.SinObj*, %struct.SinObj** %9, align 8 | |
store %struct.SinObj* %27, %struct.SinObj** %4, align 8 | |
br label %28 | |
28: ; preds = %26, %24 | |
%29 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
ret %struct.SinObj* %29 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_hash_45ref(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1) #0 { | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %3, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %4, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%7 = call %struct.SinObj* @hash_ref_impl(%struct.SinObj* noundef %5, %struct.SinObj* noundef %6, %struct.SinObj* noundef null) | |
ret %struct.SinObj* %7 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_hash_45set(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
%7 = alloca %struct.SinObj, align 8 | |
%8 = alloca %struct.SinObj, align 8 | |
%9 = alloca %struct.SinObj*, align 8 | |
%10 = alloca %struct.SinObj, align 8 | |
%11 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%12 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%13 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %12, i32 0, i32 1 | |
%14 = load i32, i32* %13, align 8 | |
%15 = icmp ne i32 %14, 4 | |
br i1 %15, label %16, label %20 | |
16: ; preds = %1 | |
%17 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%18 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.155, i64 0, i64 0)) | |
%19 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
20: ; preds = %1 | |
%21 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%22 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %21, i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.155, i64 0, i64 0)) | |
store %struct.SinObj* %22, %struct.SinObj** %3, align 8 | |
%23 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%24 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %23, i64 0 | |
%25 = bitcast %struct.SinObj* %4 to i8* | |
%26 = bitcast %struct.SinObj* %24 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %25, i8* align 8 %26, i64 16, i1 false) | |
%27 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%28 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %27, i64 1 | |
%29 = bitcast %struct.SinObj* %5 to i8* | |
%30 = bitcast %struct.SinObj* %28 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %29, i8* align 8 %30, i64 16, i1 false) | |
%31 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%32 = load i32, i32* %31, align 8 | |
%33 = icmp ne i32 %32, 4 | |
br i1 %33, label %34, label %38 | |
34: ; preds = %20 | |
%35 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%36 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([46 x i8], [46 x i8]* @.str.88, i64 0, i64 0), i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.155, i64 0, i64 0)) | |
%37 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
38: ; preds = %20 | |
%39 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %5, i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.155, i64 0, i64 0)) | |
store %struct.SinObj* %39, %struct.SinObj** %6, align 8 | |
%40 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%41 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %40, i64 0 | |
%42 = bitcast %struct.SinObj* %7 to i8* | |
%43 = bitcast %struct.SinObj* %41 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %42, i8* align 8 %43, i64 16, i1 false) | |
%44 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%45 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %44, i64 1 | |
%46 = bitcast %struct.SinObj* %8 to i8* | |
%47 = bitcast %struct.SinObj* %45 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %46, i8* align 8 %47, i64 16, i1 false) | |
%48 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %8, i32 0, i32 1 | |
%49 = load i32, i32* %48, align 8 | |
%50 = icmp ne i32 %49, 4 | |
br i1 %50, label %51, label %55 | |
51: ; preds = %38 | |
%52 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%53 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([46 x i8], [46 x i8]* @.str.89, i64 0, i64 0), i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.155, i64 0, i64 0)) | |
%54 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
55: ; preds = %38 | |
%56 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %8, i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.155, i64 0, i64 0)) | |
store %struct.SinObj* %56, %struct.SinObj** %9, align 8 | |
%57 = load %struct.SinObj*, %struct.SinObj** %9, align 8 | |
%58 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %57, i64 0 | |
%59 = bitcast %struct.SinObj* %10 to i8* | |
%60 = bitcast %struct.SinObj* %58 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %59, i8* align 8 %60, i64 16, i1 false) | |
%61 = load %struct.SinObj*, %struct.SinObj** %9, align 8 | |
%62 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %61, i64 1 | |
%63 = bitcast %struct.SinObj* %11 to i8* | |
%64 = bitcast %struct.SinObj* %62 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %63, i8* align 8 %64, i64 16, i1 false) | |
%65 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %11, i32 0, i32 1 | |
%66 = load i32, i32* %65, align 8 | |
%67 = icmp ne i32 %66, 1 | |
br i1 %67, label %68, label %72 | |
68: ; preds = %55 | |
%69 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%70 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([38 x i8], [38 x i8]* @.str.90, i64 0, i64 0), i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.155, i64 0, i64 0)) | |
%71 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
72: ; preds = %55 | |
%73 = call %struct.SinObj* @prim_hash_45set(%struct.SinObj* noundef %4, %struct.SinObj* noundef %7, %struct.SinObj* noundef %10) | |
ret %struct.SinObj* %73 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_hash_45set(%struct.SinObj* noundef %0, %struct.SinObj* noundef %1, %struct.SinObj* noundef %2) #0 { | |
%4 = alloca %struct.SinObj*, align 8 | |
%5 = alloca %struct.SinObj*, align 8 | |
%6 = alloca %struct.SinObj*, align 8 | |
%7 = alloca %struct.Map*, align 8 | |
%8 = alloca %struct.Map*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %4, align 8 | |
store %struct.SinObj* %1, %struct.SinObj** %5, align 8 | |
store %struct.SinObj* %2, %struct.SinObj** %6, align 8 | |
%9 = load %struct.SinObj*, %struct.SinObj** %4, align 8 | |
%10 = call %struct.Map* @unwrap_hash(%struct.SinObj* noundef %9, i8* noundef getelementptr inbounds ([9 x i8], [9 x i8]* @.str.156, i64 0, i64 0)) | |
store %struct.Map* %10, %struct.Map** %7, align 8 | |
%11 = load %struct.Map*, %struct.Map** %7, align 8 | |
%12 = load %struct.SinObj*, %struct.SinObj** %5, align 8 | |
%13 = load %struct.SinObj*, %struct.SinObj** %6, align 8 | |
%14 = call %struct.Map* @map_insert(%struct.Map* noundef %11, %struct.SinObj* noundef %12, %struct.SinObj* noundef %13) | |
store %struct.Map* %14, %struct.Map** %8, align 8 | |
%15 = load %struct.Map*, %struct.Map** %8, align 8 | |
%16 = call %struct.SinObj* @map_to_sin(%struct.Map* noundef %15) | |
ret %struct.SinObj* %16 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_hash_63(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%8 = load i32, i32* %7, align 8 | |
%9 = icmp ne i32 %8, 4 | |
br i1 %9, label %10, label %14 | |
10: ; preds = %1 | |
%11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.157, i64 0, i64 0)) | |
%13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
14: ; preds = %1 | |
%15 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%16 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %15, i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.157, i64 0, i64 0)) | |
store %struct.SinObj* %16, %struct.SinObj** %3, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i64 0 | |
%19 = bitcast %struct.SinObj* %4 to i8* | |
%20 = bitcast %struct.SinObj* %18 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %19, i8* align 8 %20, i64 16, i1 false) | |
%21 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 1 | |
%23 = bitcast %struct.SinObj* %5 to i8* | |
%24 = bitcast %struct.SinObj* %22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 8 %24, i64 16, i1 false) | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%26 = load i32, i32* %25, align 8 | |
%27 = icmp ne i32 %26, 1 | |
br i1 %27, label %28, label %32 | |
28: ; preds = %14 | |
%29 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%30 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.157, i64 0, i64 0)) | |
%31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
32: ; preds = %14 | |
%33 = call %struct.SinObj* @prim_hash_63(%struct.SinObj* noundef %4) | |
ret %struct.SinObj* %33 | |
} | |
; Function Attrs: mustprogress noinline nounwind optnone uwtable | |
define dso_local %struct.SinObj* @prim_hash_63(%struct.SinObj* noundef %0) #2 { | |
%2 = alloca %struct.SinObj*, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%3 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%4 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %3, i32 0, i32 1 | |
%5 = load i32, i32* %4, align 8 | |
%6 = icmp eq i32 %5, 9 | |
%7 = call %struct.SinObj* @make_predicate(i1 noundef zeroext %6) | |
ret %struct.SinObj* %7 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @applyprim_hash_45count(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.SinObj*, align 8 | |
%4 = alloca %struct.SinObj, align 8 | |
%5 = alloca %struct.SinObj, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%6 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%7 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %6, i32 0, i32 1 | |
%8 = load i32, i32* %7, align 8 | |
%9 = icmp ne i32 %8, 4 | |
br i1 %9, label %10, label %14 | |
10: ; preds = %1 | |
%11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i8* noundef getelementptr inbounds ([23 x i8], [23 x i8]* @.str.158, i64 0, i64 0)) | |
%13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
14: ; preds = %1 | |
%15 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%16 = call %struct.SinObj* @unwrap_cons(%struct.SinObj* noundef %15, i8* noundef getelementptr inbounds ([23 x i8], [23 x i8]* @.str.158, i64 0, i64 0)) | |
store %struct.SinObj* %16, %struct.SinObj** %3, align 8 | |
%17 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%18 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %17, i64 0 | |
%19 = bitcast %struct.SinObj* %4 to i8* | |
%20 = bitcast %struct.SinObj* %18 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %19, i8* align 8 %20, i64 16, i1 false) | |
%21 = load %struct.SinObj*, %struct.SinObj** %3, align 8 | |
%22 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %21, i64 1 | |
%23 = bitcast %struct.SinObj* %5 to i8* | |
%24 = bitcast %struct.SinObj* %22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 8 %24, i64 16, i1 false) | |
%25 = getelementptr inbounds %struct.SinObj, %struct.SinObj* %5, i32 0, i32 1 | |
%26 = load i32, i32* %25, align 8 | |
%27 = icmp ne i32 %26, 1 | |
br i1 %27, label %28, label %32 | |
28: ; preds = %14 | |
%29 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0)) | |
%30 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i8* noundef getelementptr inbounds ([23 x i8], [23 x i8]* @.str.158, i64 0, i64 0)) | |
%31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0)) | |
call void @exit(i32 noundef 1) #11 | |
unreachable | |
32: ; preds = %14 | |
%33 = call %struct.SinObj* @prim_hash_45count(%struct.SinObj* noundef %4) | |
ret %struct.SinObj* %33 | |
} | |
; Function Attrs: mustprogress noinline optnone uwtable | |
define dso_local %struct.SinObj* @prim_hash_45count(%struct.SinObj* noundef %0) #0 { | |
%2 = alloca %struct.SinObj*, align 8 | |
%3 = alloca %struct.Map*, align 8 | |
%4 = alloca i64, align 8 | |
store %struct.SinObj* %0, %struct.SinObj** %2, align 8 | |
%5 = load %struct.SinObj*, %struct.SinObj** %2, align 8 | |
%6 = call %struct.Map* @unwrap_hash(%struct.SinObj* noundef %5, i8* noundef getelementptr inbounds ([11 x i8], [11 x i8]* @.str.159, i64 0, i64 0)) | |
store %struct.Map* %6, %struct.Map** %3, align 8 | |
%7 = load %struct.Map*, %struct.Map** %3, align 8 | |
%8 = call i64 @map_count(%struct.Map* noundef %7) | |
store i64 %8, i64* %4, align 8 | |
%9 = load i64, i64* %4, align 8 | |
%10 = call %struct.SinObj* @const_init_int(i64 noundef %9) | |
ret %struct.SinObj* %10 | |
} | |
attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #1 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #4 = { argmemonly nofree nounwind willreturn } | |
attributes #5 = { noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #6 = { cold noreturn nounwind } | |
attributes #7 = { argmemonly nofree nounwind willreturn writeonly } | |
attributes #8 = { nounwind readonly willreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #9 = { nounwind } | |
attributes #10 = { nounwind readonly willreturn } | |
attributes #11 = { noreturn nounwind } | |
!llvm.module.flags = !{!0, !1, !2, !3, !4} | |
!llvm.ident = !{!5} | |
!0 = !{i32 1, !"wchar_size", i32 4} | |
!1 = !{i32 7, !"PIC Level", i32 2} | |
!2 = !{i32 7, !"PIE Level", i32 2} | |
!3 = !{i32 7, !"uwtable", i32 1} | |
!4 = !{i32 7, !"frame-pointer", i32 2} | |
!5 = !{!"Ubuntu clang version 14.0.1-++20220426083040+0e27d08cdeb3-1~exp1~20220426083051.129"} | |
!6 = distinct !{!6, !7} | |
!7 = !{!"llvm.loop.mustprogress"} | |
!8 = distinct !{!8, !7} | |
!9 = distinct !{!9, !7} | |
!10 = distinct !{!10, !7} | |
!11 = distinct !{!11, !7} | |
!12 = distinct !{!12, !7} | |
!13 = distinct !{!13, !7} | |
!14 = distinct !{!14, !7} | |
!15 = distinct !{!15, !7} | |
!16 = distinct !{!16, !7} | |
!17 = distinct !{!17, !7} | |
!18 = distinct !{!18, !7} | |
!19 = distinct !{!19, !7} | |
;;;;;;;End Runtime Code;;;;;;; | |
; Begin user globals | |
; solution | |
@.sym.global9824 = private unnamed_addr constant [9 x i8] c"\73\6F\6C\75\74\69\6F\6E\00" | |
; vector-out-of-bounds | |
@.sym.global9827 = private unnamed_addr constant [21 x i8] c"\76\65\63\74\6F\72\2D\6F\75\74\2D\6F\66\2D\62\6F\75\6E\64\73\00" | |
; %%promise | |
@.sym.global9828 = private unnamed_addr constant [10 x i8] c"\25\25\70\72\6F\6D\69\73\65\00" | |
; no-solution | |
@.sym.global9829 = private unnamed_addr constant [12 x i8] c"\6E\6F\2D\73\6F\6C\75\74\69\6F\6E\00" | |
; Uncaught Exception: | |
@.str.global9825 = private unnamed_addr constant [21 x i8] c"\55\6E\63\61\75\67\68\74\20\45\78\63\65\70\74\69\6F\6E\3A\20\00" | |
; | |
@.str.global9826 = private unnamed_addr constant [2 x i8] c"\0A\00" | |
; End user | |
;; Global registers ;; | |
; stack record register, linked list of stack records. | |
@srr = global %struct.SinRecord* null, align 8 | |
; frame pointer register. | |
@fpr = global %struct.SinObj** null, align 8 | |
; Return Value register | |
@retr = global %struct.SinObj* null, align 8 | |
; Stack Protection Register | |
@spr = global %struct.SinObj** null, align 8 | |
;; End global pointers ;; | |
define i32 @main() { | |
call void @start_runtime(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr) | |
%base_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%finished_loc = bitcast i8* blockaddress(@main, %program_finished) to %struct.SinObj* | |
store volatile %struct.SinObj* %finished_loc, %struct.SinObj** %base_fp, align 8 | |
br label %main | |
main: | |
%prologue_cur_fp9830 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%main_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 2 | |
%main_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 3 | |
%main_local171_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 175 | |
%main_local170_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 174 | |
%main_local169_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 173 | |
%main_local168_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 172 | |
%main_local167_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 171 | |
%main_local166_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 170 | |
%main_local165_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 169 | |
%main_local164_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 168 | |
%main_local163_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 167 | |
%main_local162_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 166 | |
%main_local161_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 165 | |
%main_local160_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 164 | |
%main_local159_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 163 | |
%main_local158_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 162 | |
%main_local157_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 161 | |
%main_local156_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 160 | |
%main_local155_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 159 | |
%main_local154_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 158 | |
%main_local153_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 157 | |
%main_local152_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 156 | |
%main_local151_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 155 | |
%main_local150_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 154 | |
%main_local149_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 153 | |
%main_local148_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 152 | |
%main_local147_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 151 | |
%main_local146_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 150 | |
%main_local145_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 149 | |
%main_local144_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 148 | |
%main_local143_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 147 | |
%main_local142_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 146 | |
%main_local141_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 145 | |
%main_local140_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 144 | |
%main_local139_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 143 | |
%main_local138_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 142 | |
%main_local137_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 141 | |
%main_local136_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 140 | |
%main_local135_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 139 | |
%main_local134_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 138 | |
%main_local133_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 137 | |
%main_local132_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 136 | |
%main_local131_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 135 | |
%main_local130_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 134 | |
%main_local129_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 133 | |
%main_local128_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 132 | |
%main_local127_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 131 | |
%main_local126_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 130 | |
%main_local125_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 129 | |
%main_local124_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 128 | |
%main_local123_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 127 | |
%main_local122_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 126 | |
%main_local121_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 125 | |
%main_local120_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 124 | |
%main_local119_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 123 | |
%main_local118_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 122 | |
%main_local117_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 121 | |
%main_local116_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 120 | |
%main_local115_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 119 | |
%main_local114_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 118 | |
%main_local113_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 117 | |
%main_local112_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 116 | |
%main_local111_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 115 | |
%main_local110_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 114 | |
%main_local109_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 113 | |
%main_local108_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 112 | |
%main_local107_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 111 | |
%main_local106_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 110 | |
%main_local105_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 109 | |
%main_local104_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 108 | |
%main_local103_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 107 | |
%main_local102_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 106 | |
%main_local101_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 105 | |
%main_local100_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 104 | |
%main_local99_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 103 | |
%main_local98_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 102 | |
%main_local97_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 101 | |
%main_local96_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 100 | |
%main_local95_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 99 | |
%main_local94_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 98 | |
%main_local93_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 97 | |
%main_local92_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 96 | |
%main_local91_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 95 | |
%main_local90_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 94 | |
%main_local89_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 93 | |
%main_local88_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 92 | |
%main_local87_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 91 | |
%main_local86_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 90 | |
%main_local85_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 89 | |
%main_local84_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 88 | |
%main_local83_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 87 | |
%main_local82_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 86 | |
%main_local81_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 85 | |
%main_local80_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 84 | |
%main_local79_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 83 | |
%main_local78_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 82 | |
%main_local77_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 81 | |
%main_local76_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 80 | |
%main_local75_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 79 | |
%main_local74_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 78 | |
%main_local73_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 77 | |
%main_local72_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 76 | |
%main_local71_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 75 | |
%main_local70_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 74 | |
%main_local69_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 73 | |
%main_local68_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 72 | |
%main_local67_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 71 | |
%main_local66_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 70 | |
%main_local65_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 69 | |
%main_local64_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 68 | |
%main_local63_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 67 | |
%main_local62_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 66 | |
%main_local61_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 65 | |
%main_local60_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 64 | |
%main_local59_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 63 | |
%main_local58_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 62 | |
%main_local57_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 61 | |
%main_local56_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 60 | |
%main_local55_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 59 | |
%main_local54_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 58 | |
%main_local53_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 57 | |
%main_local52_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 56 | |
%main_local51_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 55 | |
%main_local50_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 54 | |
%main_local49_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 53 | |
%main_local48_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 52 | |
%main_local47_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 51 | |
%main_local46_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 50 | |
%main_local45_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 49 | |
%main_local44_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 48 | |
%main_local43_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 47 | |
%main_local42_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 46 | |
%main_local41_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 45 | |
%main_local40_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 44 | |
%main_local39_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 43 | |
%main_local38_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 42 | |
%main_local37_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 41 | |
%main_local36_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 40 | |
%main_local35_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 39 | |
%main_local34_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 38 | |
%main_local33_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 37 | |
%main_local32_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 36 | |
%main_local31_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 35 | |
%main_local30_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 34 | |
%main_local29_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 33 | |
%main_local28_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 32 | |
%main_local27_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 31 | |
%main_local26_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 30 | |
%main_local25_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 29 | |
%main_local24_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 28 | |
%main_local23_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 27 | |
%main_local22_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 26 | |
%main_local21_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 25 | |
%main_local20_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 24 | |
%main_local19_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 23 | |
%main_local18_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 22 | |
%main_local17_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 21 | |
%main_local16_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 20 | |
%main_local15_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 19 | |
%main_local14_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 18 | |
%main_local13_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 17 | |
%main_local12_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 16 | |
%main_local11_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 15 | |
%main_local10_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 14 | |
%main_local9_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 13 | |
%main_local8_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 12 | |
%main_local7_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 11 | |
%main_local6_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 10 | |
%main_local5_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 9 | |
%main_local4_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 8 | |
%main_local3_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 7 | |
%main_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 6 | |
%main_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 5 | |
%main_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp9830, i64 4 | |
; End function Prologue | |
; Starting make-closure | |
%makeclo_anf_45bind6433599831_funcaddr = bitcast i8* blockaddress(@main, %clo646672) to i8* | |
%makeclo_anf_45bind6433599831_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6433599831_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6433599831_val, %struct.SinObj** %main_local0_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6433639832_funcaddr = bitcast i8* blockaddress(@main, %clo646671) to i8* | |
%makeclo_anf_45bind6433639832_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6433639832_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6433639832_val, %struct.SinObj** %main_local1_loc, align 8 | |
; Starting const-null | |
%datnull_args646419$anf_45bind643359$09833_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646419$anf_45bind643359$09833_val, %struct.SinObj** %main_local2_loc, align 8 | |
; Starting prim | |
%primtmp_args646419$anf_45bind643359$19834_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local1_loc, align 8 | |
%primtmp_args646419$anf_45bind643359$19834_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local2_loc, align 8 | |
%primtmp_args646419$anf_45bind643359$19834_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646419$anf_45bind643359$19834_arg_0, %struct.SinObj* %primtmp_args646419$anf_45bind643359$19834_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646419$anf_45bind643359$19834_val, %struct.SinObj** %main_local3_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$Z6404479835_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_$Z6404479835_has_space, label %bind_app_$Z6404479835_do_call, label %bind_app_$Z6404479835_overflow_first | |
bind_app_$Z6404479835_overflow_first: | |
%bind_app_$Z6404479835_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$Z6404479835_overflow_underflow_addr, i64 176) | |
br label %bind_app_$Z6404479835_do_call | |
bind_app_$Z6404479835_do_call: | |
%bind_app_$Z6404479835_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local0_loc, align 8 | |
%bind_app_$Z6404479835_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local3_loc, align 8 | |
%bind_app_$Z6404479835_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$Z6404479835_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$Z6404479835_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_$Z6404479835_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$Z6404479835_return_loc = bitcast i8* blockaddress(@main, %main_ret0) to %struct.SinObj* | |
%bind_app_$Z6404479835_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$Z6404479835_new_fp, i64 1 | |
%bind_app_$Z6404479835_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$Z6404479835_new_fp, i64 2 | |
%bind_app_$Z6404479835_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$Z6404479835_new_fp, i64 3 | |
%bind_app_$Z6404479835_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$Z6404479835_return_loc, %struct.SinObj** %bind_app_$Z6404479835_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$Z6404479835_slotscast, %struct.SinObj** %bind_app_$Z6404479835_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$Z6404479835_closure, %struct.SinObj** %bind_app_$Z6404479835_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$Z6404479835_arglist, %struct.SinObj** %bind_app_$Z6404479835_newarg1loc, align 8 | |
%bind_app_$Z6404479835_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$Z6404479835_closure) | |
indirectbr i8* %bind_app_$Z6404479835_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret0: | |
%bind_app_$Z6404479835_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$Z6404479835_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$Z6404479835_oldfp, i64 1 | |
%bind_app_$Z6404479835_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$Z6404479835_slots_loc, align 8 | |
%bind_app_$Z6404479835_slots = ptrtoint %struct.SinObj* %bind_app_$Z6404479835_slots_ptr to i64 | |
%bind_app_$Z6404479835_offset = mul i64 %bind_app_$Z6404479835_slots, -1 | |
%bind_app_$Z6404479835_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$Z6404479835_oldfp, i64 %bind_app_$Z6404479835_offset | |
store volatile %struct.SinObj** %bind_app_$Z6404479835_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$Z640447 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$Z640447, %struct.SinObj** %main_local4_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6433709836_funcaddr = bitcast i8* blockaddress(@main, %clo646668) to i8* | |
%makeclo_anf_45bind6433709836_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6433709836_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6433709836_val, %struct.SinObj** %main_local5_loc, align 8 | |
; Starting const-null | |
%datnull_args646425$$Z640447$09837_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646425$$Z640447$09837_val, %struct.SinObj** %main_local6_loc, align 8 | |
; Starting prim | |
%primtmp_args646425$$Z640447$19838_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local5_loc, align 8 | |
%primtmp_args646425$$Z640447$19838_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local6_loc, align 8 | |
%primtmp_args646425$$Z640447$19838_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646425$$Z640447$19838_arg_0, %struct.SinObj* %primtmp_args646425$$Z640447$19838_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646425$$Z640447$19838_val, %struct.SinObj** %main_local7_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$_37_37map16404529839_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_$_37_37map16404529839_has_space, label %bind_app_$_37_37map16404529839_do_call, label %bind_app_$_37_37map16404529839_overflow_first | |
bind_app_$_37_37map16404529839_overflow_first: | |
%bind_app_$_37_37map16404529839_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$_37_37map16404529839_overflow_underflow_addr, i64 176) | |
br label %bind_app_$_37_37map16404529839_do_call | |
bind_app_$_37_37map16404529839_do_call: | |
%bind_app_$_37_37map16404529839_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local4_loc, align 8 | |
%bind_app_$_37_37map16404529839_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local7_loc, align 8 | |
%bind_app_$_37_37map16404529839_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$_37_37map16404529839_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37map16404529839_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_$_37_37map16404529839_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$_37_37map16404529839_return_loc = bitcast i8* blockaddress(@main, %main_ret1) to %struct.SinObj* | |
%bind_app_$_37_37map16404529839_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37map16404529839_new_fp, i64 1 | |
%bind_app_$_37_37map16404529839_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37map16404529839_new_fp, i64 2 | |
%bind_app_$_37_37map16404529839_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37map16404529839_new_fp, i64 3 | |
%bind_app_$_37_37map16404529839_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$_37_37map16404529839_return_loc, %struct.SinObj** %bind_app_$_37_37map16404529839_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$_37_37map16404529839_slotscast, %struct.SinObj** %bind_app_$_37_37map16404529839_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$_37_37map16404529839_closure, %struct.SinObj** %bind_app_$_37_37map16404529839_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$_37_37map16404529839_arglist, %struct.SinObj** %bind_app_$_37_37map16404529839_newarg1loc, align 8 | |
%bind_app_$_37_37map16404529839_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$_37_37map16404529839_closure) | |
indirectbr i8* %bind_app_$_37_37map16404529839_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret1: | |
%bind_app_$_37_37map16404529839_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$_37_37map16404529839_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37map16404529839_oldfp, i64 1 | |
%bind_app_$_37_37map16404529839_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37map16404529839_slots_loc, align 8 | |
%bind_app_$_37_37map16404529839_slots = ptrtoint %struct.SinObj* %bind_app_$_37_37map16404529839_slots_ptr to i64 | |
%bind_app_$_37_37map16404529839_offset = mul i64 %bind_app_$_37_37map16404529839_slots, -1 | |
%bind_app_$_37_37map16404529839_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37map16404529839_oldfp, i64 %bind_app_$_37_37map16404529839_offset | |
store volatile %struct.SinObj** %bind_app_$_37_37map16404529839_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$_37_37map1640452 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$_37_37map1640452, %struct.SinObj** %main_local8_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6433759840_funcaddr = bitcast i8* blockaddress(@main, %clo646665) to i8* | |
%makeclo_anf_45bind6433759840_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6433759840_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6433759840_val, %struct.SinObj** %main_local9_loc, align 8 | |
; Starting const-null | |
%datnull_args646430$$Z640447$09841_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646430$$Z640447$09841_val, %struct.SinObj** %main_local10_loc, align 8 | |
; Starting prim | |
%primtmp_args646430$$Z640447$19842_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local9_loc, align 8 | |
%primtmp_args646430$$Z640447$19842_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local10_loc, align 8 | |
%primtmp_args646430$$Z640447$19842_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646430$$Z640447$19842_arg_0, %struct.SinObj* %primtmp_args646430$$Z640447$19842_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646430$$Z640447$19842_val, %struct.SinObj** %main_local11_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$_37_37foldl16404579843_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_$_37_37foldl16404579843_has_space, label %bind_app_$_37_37foldl16404579843_do_call, label %bind_app_$_37_37foldl16404579843_overflow_first | |
bind_app_$_37_37foldl16404579843_overflow_first: | |
%bind_app_$_37_37foldl16404579843_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$_37_37foldl16404579843_overflow_underflow_addr, i64 176) | |
br label %bind_app_$_37_37foldl16404579843_do_call | |
bind_app_$_37_37foldl16404579843_do_call: | |
%bind_app_$_37_37foldl16404579843_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local4_loc, align 8 | |
%bind_app_$_37_37foldl16404579843_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local11_loc, align 8 | |
%bind_app_$_37_37foldl16404579843_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$_37_37foldl16404579843_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37foldl16404579843_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_$_37_37foldl16404579843_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$_37_37foldl16404579843_return_loc = bitcast i8* blockaddress(@main, %main_ret2) to %struct.SinObj* | |
%bind_app_$_37_37foldl16404579843_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37foldl16404579843_new_fp, i64 1 | |
%bind_app_$_37_37foldl16404579843_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37foldl16404579843_new_fp, i64 2 | |
%bind_app_$_37_37foldl16404579843_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37foldl16404579843_new_fp, i64 3 | |
%bind_app_$_37_37foldl16404579843_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$_37_37foldl16404579843_return_loc, %struct.SinObj** %bind_app_$_37_37foldl16404579843_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$_37_37foldl16404579843_slotscast, %struct.SinObj** %bind_app_$_37_37foldl16404579843_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$_37_37foldl16404579843_closure, %struct.SinObj** %bind_app_$_37_37foldl16404579843_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$_37_37foldl16404579843_arglist, %struct.SinObj** %bind_app_$_37_37foldl16404579843_newarg1loc, align 8 | |
%bind_app_$_37_37foldl16404579843_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$_37_37foldl16404579843_closure) | |
indirectbr i8* %bind_app_$_37_37foldl16404579843_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret2: | |
%bind_app_$_37_37foldl16404579843_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$_37_37foldl16404579843_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37foldl16404579843_oldfp, i64 1 | |
%bind_app_$_37_37foldl16404579843_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37foldl16404579843_slots_loc, align 8 | |
%bind_app_$_37_37foldl16404579843_slots = ptrtoint %struct.SinObj* %bind_app_$_37_37foldl16404579843_slots_ptr to i64 | |
%bind_app_$_37_37foldl16404579843_offset = mul i64 %bind_app_$_37_37foldl16404579843_slots, -1 | |
%bind_app_$_37_37foldl16404579843_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37foldl16404579843_oldfp, i64 %bind_app_$_37_37foldl16404579843_offset | |
store volatile %struct.SinObj** %bind_app_$_37_37foldl16404579843_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$_37_37foldl1640457 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$_37_37foldl1640457, %struct.SinObj** %main_local12_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6433809844_funcaddr = bitcast i8* blockaddress(@main, %clo646663) to i8* | |
%makeclo_anf_45bind6433809844_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6433809844_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6433809844_val, %struct.SinObj** %main_local13_loc, align 8 | |
; Starting const-null | |
%datnull_args646435$$Z640447$09845_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646435$$Z640447$09845_val, %struct.SinObj** %main_local14_loc, align 8 | |
; Starting prim | |
%primtmp_args646435$$Z640447$19846_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local13_loc, align 8 | |
%primtmp_args646435$$Z640447$19846_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local14_loc, align 8 | |
%primtmp_args646435$$Z640447$19846_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646435$$Z640447$19846_arg_0, %struct.SinObj* %primtmp_args646435$$Z640447$19846_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646435$$Z640447$19846_val, %struct.SinObj** %main_local15_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$_37_37foldr16404629847_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_$_37_37foldr16404629847_has_space, label %bind_app_$_37_37foldr16404629847_do_call, label %bind_app_$_37_37foldr16404629847_overflow_first | |
bind_app_$_37_37foldr16404629847_overflow_first: | |
%bind_app_$_37_37foldr16404629847_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$_37_37foldr16404629847_overflow_underflow_addr, i64 176) | |
br label %bind_app_$_37_37foldr16404629847_do_call | |
bind_app_$_37_37foldr16404629847_do_call: | |
%bind_app_$_37_37foldr16404629847_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local4_loc, align 8 | |
%bind_app_$_37_37foldr16404629847_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local15_loc, align 8 | |
%bind_app_$_37_37foldr16404629847_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$_37_37foldr16404629847_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37foldr16404629847_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_$_37_37foldr16404629847_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$_37_37foldr16404629847_return_loc = bitcast i8* blockaddress(@main, %main_ret3) to %struct.SinObj* | |
%bind_app_$_37_37foldr16404629847_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37foldr16404629847_new_fp, i64 1 | |
%bind_app_$_37_37foldr16404629847_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37foldr16404629847_new_fp, i64 2 | |
%bind_app_$_37_37foldr16404629847_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37foldr16404629847_new_fp, i64 3 | |
%bind_app_$_37_37foldr16404629847_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$_37_37foldr16404629847_return_loc, %struct.SinObj** %bind_app_$_37_37foldr16404629847_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$_37_37foldr16404629847_slotscast, %struct.SinObj** %bind_app_$_37_37foldr16404629847_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$_37_37foldr16404629847_closure, %struct.SinObj** %bind_app_$_37_37foldr16404629847_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$_37_37foldr16404629847_arglist, %struct.SinObj** %bind_app_$_37_37foldr16404629847_newarg1loc, align 8 | |
%bind_app_$_37_37foldr16404629847_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$_37_37foldr16404629847_closure) | |
indirectbr i8* %bind_app_$_37_37foldr16404629847_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret3: | |
%bind_app_$_37_37foldr16404629847_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$_37_37foldr16404629847_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37foldr16404629847_oldfp, i64 1 | |
%bind_app_$_37_37foldr16404629847_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37foldr16404629847_slots_loc, align 8 | |
%bind_app_$_37_37foldr16404629847_slots = ptrtoint %struct.SinObj* %bind_app_$_37_37foldr16404629847_slots_ptr to i64 | |
%bind_app_$_37_37foldr16404629847_offset = mul i64 %bind_app_$_37_37foldr16404629847_slots, -1 | |
%bind_app_$_37_37foldr16404629847_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37foldr16404629847_oldfp, i64 %bind_app_$_37_37foldr16404629847_offset | |
store volatile %struct.SinObj** %bind_app_$_37_37foldr16404629847_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$_37_37foldr1640462 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$_37_37foldr1640462, %struct.SinObj** %main_local16_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6433869848_funcaddr = bitcast i8* blockaddress(@main, %clo646661) to i8* | |
%makeclo_anf_45bind6433869848_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6433869848_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6433869848_val, %struct.SinObj** %main_local17_loc, align 8 | |
; Starting const-null | |
%datnull_args646439$$Z640447$09849_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646439$$Z640447$09849_val, %struct.SinObj** %main_local18_loc, align 8 | |
; Starting prim | |
%primtmp_args646439$$Z640447$19850_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local17_loc, align 8 | |
%primtmp_args646439$$Z640447$19850_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local18_loc, align 8 | |
%primtmp_args646439$$Z640447$19850_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646439$$Z640447$19850_arg_0, %struct.SinObj* %primtmp_args646439$$Z640447$19850_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646439$$Z640447$19850_val, %struct.SinObj** %main_local19_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$length6404679851_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_$length6404679851_has_space, label %bind_app_$length6404679851_do_call, label %bind_app_$length6404679851_overflow_first | |
bind_app_$length6404679851_overflow_first: | |
%bind_app_$length6404679851_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$length6404679851_overflow_underflow_addr, i64 176) | |
br label %bind_app_$length6404679851_do_call | |
bind_app_$length6404679851_do_call: | |
%bind_app_$length6404679851_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local4_loc, align 8 | |
%bind_app_$length6404679851_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local19_loc, align 8 | |
%bind_app_$length6404679851_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$length6404679851_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$length6404679851_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_$length6404679851_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$length6404679851_return_loc = bitcast i8* blockaddress(@main, %main_ret4) to %struct.SinObj* | |
%bind_app_$length6404679851_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$length6404679851_new_fp, i64 1 | |
%bind_app_$length6404679851_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$length6404679851_new_fp, i64 2 | |
%bind_app_$length6404679851_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$length6404679851_new_fp, i64 3 | |
%bind_app_$length6404679851_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$length6404679851_return_loc, %struct.SinObj** %bind_app_$length6404679851_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$length6404679851_slotscast, %struct.SinObj** %bind_app_$length6404679851_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$length6404679851_closure, %struct.SinObj** %bind_app_$length6404679851_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$length6404679851_arglist, %struct.SinObj** %bind_app_$length6404679851_newarg1loc, align 8 | |
%bind_app_$length6404679851_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$length6404679851_closure) | |
indirectbr i8* %bind_app_$length6404679851_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret4: | |
%bind_app_$length6404679851_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$length6404679851_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$length6404679851_oldfp, i64 1 | |
%bind_app_$length6404679851_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$length6404679851_slots_loc, align 8 | |
%bind_app_$length6404679851_slots = ptrtoint %struct.SinObj* %bind_app_$length6404679851_slots_ptr to i64 | |
%bind_app_$length6404679851_offset = mul i64 %bind_app_$length6404679851_slots, -1 | |
%bind_app_$length6404679851_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$length6404679851_oldfp, i64 %bind_app_$length6404679851_offset | |
store volatile %struct.SinObj** %bind_app_$length6404679851_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$length640467 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$length640467, %struct.SinObj** %main_local20_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6433979852_funcaddr = bitcast i8* blockaddress(@main, %clo646659) to i8* | |
%makeclo_anf_45bind6433979852_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6433979852_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6433979852_val, %struct.SinObj** %main_local21_loc, align 8 | |
; Starting const-null | |
%datnull_args646445$$Z640447$09853_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646445$$Z640447$09853_val, %struct.SinObj** %main_local22_loc, align 8 | |
; Starting prim | |
%primtmp_args646445$$Z640447$19854_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local21_loc, align 8 | |
%primtmp_args646445$$Z640447$19854_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local22_loc, align 8 | |
%primtmp_args646445$$Z640447$19854_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646445$$Z640447$19854_arg_0, %struct.SinObj* %primtmp_args646445$$Z640447$19854_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646445$$Z640447$19854_val, %struct.SinObj** %main_local23_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$take6404709855_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_$take6404709855_has_space, label %bind_app_$take6404709855_do_call, label %bind_app_$take6404709855_overflow_first | |
bind_app_$take6404709855_overflow_first: | |
%bind_app_$take6404709855_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$take6404709855_overflow_underflow_addr, i64 176) | |
br label %bind_app_$take6404709855_do_call | |
bind_app_$take6404709855_do_call: | |
%bind_app_$take6404709855_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local4_loc, align 8 | |
%bind_app_$take6404709855_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local23_loc, align 8 | |
%bind_app_$take6404709855_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$take6404709855_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$take6404709855_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_$take6404709855_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$take6404709855_return_loc = bitcast i8* blockaddress(@main, %main_ret5) to %struct.SinObj* | |
%bind_app_$take6404709855_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$take6404709855_new_fp, i64 1 | |
%bind_app_$take6404709855_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$take6404709855_new_fp, i64 2 | |
%bind_app_$take6404709855_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$take6404709855_new_fp, i64 3 | |
%bind_app_$take6404709855_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$take6404709855_return_loc, %struct.SinObj** %bind_app_$take6404709855_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$take6404709855_slotscast, %struct.SinObj** %bind_app_$take6404709855_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$take6404709855_closure, %struct.SinObj** %bind_app_$take6404709855_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$take6404709855_arglist, %struct.SinObj** %bind_app_$take6404709855_newarg1loc, align 8 | |
%bind_app_$take6404709855_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$take6404709855_closure) | |
indirectbr i8* %bind_app_$take6404709855_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret5: | |
%bind_app_$take6404709855_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$take6404709855_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$take6404709855_oldfp, i64 1 | |
%bind_app_$take6404709855_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$take6404709855_slots_loc, align 8 | |
%bind_app_$take6404709855_slots = ptrtoint %struct.SinObj* %bind_app_$take6404709855_slots_ptr to i64 | |
%bind_app_$take6404709855_offset = mul i64 %bind_app_$take6404709855_slots, -1 | |
%bind_app_$take6404709855_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$take6404709855_oldfp, i64 %bind_app_$take6404709855_offset | |
store volatile %struct.SinObj** %bind_app_$take6404709855_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$take640470 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$take640470, %struct.SinObj** %main_local24_loc, align 8 | |
; Starting make-closure | |
%makeclo_$drop_45right6404769856_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local20_loc, align 8 | |
%makeclo_$drop_45right6404769856_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local24_loc, align 8 | |
%makeclo_$drop_45right6404769856_funcaddr = bitcast i8* blockaddress(@main, %clo646655) to i8* | |
%makeclo_$drop_45right6404769856_val = call %struct.SinObj* @closure_alloc(i64 2, i8* %makeclo_$drop_45right6404769856_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_$drop_45right6404769856_val, %struct.SinObj* %makeclo_$drop_45right6404769856_arg_0, i64 0) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_$drop_45right6404769856_val, %struct.SinObj* %makeclo_$drop_45right6404769856_arg_1, i64 1) | |
store volatile %struct.SinObj* %makeclo_$drop_45right6404769856_val, %struct.SinObj** %main_local25_loc, align 8 | |
; Starting make-closure | |
%makeclo_$last6404799857_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local12_loc, align 8 | |
%makeclo_$last6404799857_funcaddr = bitcast i8* blockaddress(@main, %clo646654) to i8* | |
%makeclo_$last6404799857_val = call %struct.SinObj* @closure_alloc(i64 1, i8* %makeclo_$last6404799857_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_$last6404799857_val, %struct.SinObj* %makeclo_$last6404799857_arg_0, i64 0) | |
store volatile %struct.SinObj* %makeclo_$last6404799857_val, %struct.SinObj** %main_local26_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6434169858_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local12_loc, align 8 | |
%makeclo_anf_45bind6434169858_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local16_loc, align 8 | |
%makeclo_anf_45bind6434169858_arg_2 = load volatile %struct.SinObj*, %struct.SinObj** %main_local8_loc, align 8 | |
%makeclo_anf_45bind6434169858_funcaddr = bitcast i8* blockaddress(@main, %clo646651) to i8* | |
%makeclo_anf_45bind6434169858_val = call %struct.SinObj* @closure_alloc(i64 3, i8* %makeclo_anf_45bind6434169858_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_anf_45bind6434169858_val, %struct.SinObj* %makeclo_anf_45bind6434169858_arg_0, i64 0) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_anf_45bind6434169858_val, %struct.SinObj* %makeclo_anf_45bind6434169858_arg_1, i64 1) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_anf_45bind6434169858_val, %struct.SinObj* %makeclo_anf_45bind6434169858_arg_2, i64 2) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6434169858_val, %struct.SinObj** %main_local27_loc, align 8 | |
; Starting const-null | |
%datnull_args646461$$Z640447$09859_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646461$$Z640447$09859_val, %struct.SinObj** %main_local28_loc, align 8 | |
; Starting prim | |
%primtmp_args646461$$Z640447$19860_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local27_loc, align 8 | |
%primtmp_args646461$$Z640447$19860_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local28_loc, align 8 | |
%primtmp_args646461$$Z640447$19860_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646461$$Z640447$19860_arg_0, %struct.SinObj* %primtmp_args646461$$Z640447$19860_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646461$$Z640447$19860_val, %struct.SinObj** %main_local29_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$foldr6404849861_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_$foldr6404849861_has_space, label %bind_app_$foldr6404849861_do_call, label %bind_app_$foldr6404849861_overflow_first | |
bind_app_$foldr6404849861_overflow_first: | |
%bind_app_$foldr6404849861_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$foldr6404849861_overflow_underflow_addr, i64 176) | |
br label %bind_app_$foldr6404849861_do_call | |
bind_app_$foldr6404849861_do_call: | |
%bind_app_$foldr6404849861_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local4_loc, align 8 | |
%bind_app_$foldr6404849861_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local29_loc, align 8 | |
%bind_app_$foldr6404849861_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$foldr6404849861_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$foldr6404849861_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_$foldr6404849861_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$foldr6404849861_return_loc = bitcast i8* blockaddress(@main, %main_ret6) to %struct.SinObj* | |
%bind_app_$foldr6404849861_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$foldr6404849861_new_fp, i64 1 | |
%bind_app_$foldr6404849861_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$foldr6404849861_new_fp, i64 2 | |
%bind_app_$foldr6404849861_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$foldr6404849861_new_fp, i64 3 | |
%bind_app_$foldr6404849861_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$foldr6404849861_return_loc, %struct.SinObj** %bind_app_$foldr6404849861_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$foldr6404849861_slotscast, %struct.SinObj** %bind_app_$foldr6404849861_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$foldr6404849861_closure, %struct.SinObj** %bind_app_$foldr6404849861_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$foldr6404849861_arglist, %struct.SinObj** %bind_app_$foldr6404849861_newarg1loc, align 8 | |
%bind_app_$foldr6404849861_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$foldr6404849861_closure) | |
indirectbr i8* %bind_app_$foldr6404849861_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret6: | |
%bind_app_$foldr6404849861_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$foldr6404849861_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$foldr6404849861_oldfp, i64 1 | |
%bind_app_$foldr6404849861_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$foldr6404849861_slots_loc, align 8 | |
%bind_app_$foldr6404849861_slots = ptrtoint %struct.SinObj* %bind_app_$foldr6404849861_slots_ptr to i64 | |
%bind_app_$foldr6404849861_offset = mul i64 %bind_app_$foldr6404849861_slots, -1 | |
%bind_app_$foldr6404849861_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$foldr6404849861_oldfp, i64 %bind_app_$foldr6404849861_offset | |
store volatile %struct.SinObj** %bind_app_$foldr6404849861_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$foldr640484 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$foldr640484, %struct.SinObj** %main_local30_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6434269862_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local30_loc, align 8 | |
%makeclo_anf_45bind6434269862_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local26_loc, align 8 | |
%makeclo_anf_45bind6434269862_arg_2 = load volatile %struct.SinObj*, %struct.SinObj** %main_local25_loc, align 8 | |
%makeclo_anf_45bind6434269862_funcaddr = bitcast i8* blockaddress(@main, %clo646644) to i8* | |
%makeclo_anf_45bind6434269862_val = call %struct.SinObj* @closure_alloc(i64 3, i8* %makeclo_anf_45bind6434269862_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_anf_45bind6434269862_val, %struct.SinObj* %makeclo_anf_45bind6434269862_arg_0, i64 0) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_anf_45bind6434269862_val, %struct.SinObj* %makeclo_anf_45bind6434269862_arg_1, i64 1) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_anf_45bind6434269862_val, %struct.SinObj* %makeclo_anf_45bind6434269862_arg_2, i64 2) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6434269862_val, %struct.SinObj** %main_local31_loc, align 8 | |
; Starting const-null | |
%datnull_args646466$$Z640447$09863_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646466$$Z640447$09863_val, %struct.SinObj** %main_local32_loc, align 8 | |
; Starting prim | |
%primtmp_args646466$$Z640447$19864_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local31_loc, align 8 | |
%primtmp_args646466$$Z640447$19864_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local32_loc, align 8 | |
%primtmp_args646466$$Z640447$19864_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646466$$Z640447$19864_arg_0, %struct.SinObj* %primtmp_args646466$$Z640447$19864_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646466$$Z640447$19864_val, %struct.SinObj** %main_local33_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$map6405019865_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_$map6405019865_has_space, label %bind_app_$map6405019865_do_call, label %bind_app_$map6405019865_overflow_first | |
bind_app_$map6405019865_overflow_first: | |
%bind_app_$map6405019865_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$map6405019865_overflow_underflow_addr, i64 176) | |
br label %bind_app_$map6405019865_do_call | |
bind_app_$map6405019865_do_call: | |
%bind_app_$map6405019865_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local4_loc, align 8 | |
%bind_app_$map6405019865_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local33_loc, align 8 | |
%bind_app_$map6405019865_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$map6405019865_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$map6405019865_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_$map6405019865_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$map6405019865_return_loc = bitcast i8* blockaddress(@main, %main_ret7) to %struct.SinObj* | |
%bind_app_$map6405019865_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$map6405019865_new_fp, i64 1 | |
%bind_app_$map6405019865_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$map6405019865_new_fp, i64 2 | |
%bind_app_$map6405019865_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$map6405019865_new_fp, i64 3 | |
%bind_app_$map6405019865_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$map6405019865_return_loc, %struct.SinObj** %bind_app_$map6405019865_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$map6405019865_slotscast, %struct.SinObj** %bind_app_$map6405019865_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$map6405019865_closure, %struct.SinObj** %bind_app_$map6405019865_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$map6405019865_arglist, %struct.SinObj** %bind_app_$map6405019865_newarg1loc, align 8 | |
%bind_app_$map6405019865_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$map6405019865_closure) | |
indirectbr i8* %bind_app_$map6405019865_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret7: | |
%bind_app_$map6405019865_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$map6405019865_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$map6405019865_oldfp, i64 1 | |
%bind_app_$map6405019865_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$map6405019865_slots_loc, align 8 | |
%bind_app_$map6405019865_slots = ptrtoint %struct.SinObj* %bind_app_$map6405019865_slots_ptr to i64 | |
%bind_app_$map6405019865_offset = mul i64 %bind_app_$map6405019865_slots, -1 | |
%bind_app_$map6405019865_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$map6405019865_oldfp, i64 %bind_app_$map6405019865_offset | |
store volatile %struct.SinObj** %bind_app_$map6405019865_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$map640501 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$map640501, %struct.SinObj** %main_local34_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6434399866_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local12_loc, align 8 | |
%makeclo_anf_45bind6434399866_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local16_loc, align 8 | |
%makeclo_anf_45bind6434399866_arg_2 = load volatile %struct.SinObj*, %struct.SinObj** %main_local8_loc, align 8 | |
%makeclo_anf_45bind6434399866_funcaddr = bitcast i8* blockaddress(@main, %clo646640) to i8* | |
%makeclo_anf_45bind6434399866_val = call %struct.SinObj* @closure_alloc(i64 3, i8* %makeclo_anf_45bind6434399866_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_anf_45bind6434399866_val, %struct.SinObj* %makeclo_anf_45bind6434399866_arg_0, i64 0) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_anf_45bind6434399866_val, %struct.SinObj* %makeclo_anf_45bind6434399866_arg_1, i64 1) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_anf_45bind6434399866_val, %struct.SinObj* %makeclo_anf_45bind6434399866_arg_2, i64 2) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6434399866_val, %struct.SinObj** %main_local35_loc, align 8 | |
; Starting const-null | |
%datnull_args646474$$Z640447$09867_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646474$$Z640447$09867_val, %struct.SinObj** %main_local36_loc, align 8 | |
; Starting prim | |
%primtmp_args646474$$Z640447$19868_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local35_loc, align 8 | |
%primtmp_args646474$$Z640447$19868_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local36_loc, align 8 | |
%primtmp_args646474$$Z640447$19868_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646474$$Z640447$19868_arg_0, %struct.SinObj* %primtmp_args646474$$Z640447$19868_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646474$$Z640447$19868_val, %struct.SinObj** %main_local37_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$foldl6405099869_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_$foldl6405099869_has_space, label %bind_app_$foldl6405099869_do_call, label %bind_app_$foldl6405099869_overflow_first | |
bind_app_$foldl6405099869_overflow_first: | |
%bind_app_$foldl6405099869_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$foldl6405099869_overflow_underflow_addr, i64 176) | |
br label %bind_app_$foldl6405099869_do_call | |
bind_app_$foldl6405099869_do_call: | |
%bind_app_$foldl6405099869_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local4_loc, align 8 | |
%bind_app_$foldl6405099869_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local37_loc, align 8 | |
%bind_app_$foldl6405099869_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$foldl6405099869_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$foldl6405099869_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_$foldl6405099869_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$foldl6405099869_return_loc = bitcast i8* blockaddress(@main, %main_ret8) to %struct.SinObj* | |
%bind_app_$foldl6405099869_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$foldl6405099869_new_fp, i64 1 | |
%bind_app_$foldl6405099869_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$foldl6405099869_new_fp, i64 2 | |
%bind_app_$foldl6405099869_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$foldl6405099869_new_fp, i64 3 | |
%bind_app_$foldl6405099869_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$foldl6405099869_return_loc, %struct.SinObj** %bind_app_$foldl6405099869_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$foldl6405099869_slotscast, %struct.SinObj** %bind_app_$foldl6405099869_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$foldl6405099869_closure, %struct.SinObj** %bind_app_$foldl6405099869_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$foldl6405099869_arglist, %struct.SinObj** %bind_app_$foldl6405099869_newarg1loc, align 8 | |
%bind_app_$foldl6405099869_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$foldl6405099869_closure) | |
indirectbr i8* %bind_app_$foldl6405099869_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret8: | |
%bind_app_$foldl6405099869_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$foldl6405099869_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$foldl6405099869_oldfp, i64 1 | |
%bind_app_$foldl6405099869_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$foldl6405099869_slots_loc, align 8 | |
%bind_app_$foldl6405099869_slots = ptrtoint %struct.SinObj* %bind_app_$foldl6405099869_slots_ptr to i64 | |
%bind_app_$foldl6405099869_offset = mul i64 %bind_app_$foldl6405099869_slots, -1 | |
%bind_app_$foldl6405099869_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$foldl6405099869_oldfp, i64 %bind_app_$foldl6405099869_offset | |
store volatile %struct.SinObj** %bind_app_$foldl6405099869_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$foldl640509 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$foldl640509, %struct.SinObj** %main_local38_loc, align 8 | |
; Starting make-closure | |
%makeclo_$_62_616405269870_funcaddr = bitcast i8* blockaddress(@main, %clo646633) to i8* | |
%makeclo_$_62_616405269870_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_$_62_616405269870_funcaddr) | |
store volatile %struct.SinObj* %makeclo_$_62_616405269870_val, %struct.SinObj** %main_local39_loc, align 8 | |
; Starting make-closure | |
%makeclo_$_626405299871_funcaddr = bitcast i8* blockaddress(@main, %clo646632) to i8* | |
%makeclo_$_626405299871_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_$_626405299871_funcaddr) | |
store volatile %struct.SinObj* %makeclo_$_626405299871_val, %struct.SinObj** %main_local40_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6434469872_funcaddr = bitcast i8* blockaddress(@main, %clo646631) to i8* | |
%makeclo_anf_45bind6434469872_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6434469872_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6434469872_val, %struct.SinObj** %main_local41_loc, align 8 | |
; Starting const-null | |
%datnull_args646480$$Z640447$09873_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646480$$Z640447$09873_val, %struct.SinObj** %main_local42_loc, align 8 | |
; Starting prim | |
%primtmp_args646480$$Z640447$19874_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local41_loc, align 8 | |
%primtmp_args646480$$Z640447$19874_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local42_loc, align 8 | |
%primtmp_args646480$$Z640447$19874_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646480$$Z640447$19874_arg_0, %struct.SinObj* %primtmp_args646480$$Z640447$19874_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646480$$Z640447$19874_val, %struct.SinObj** %main_local43_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$append6405329875_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_$append6405329875_has_space, label %bind_app_$append6405329875_do_call, label %bind_app_$append6405329875_overflow_first | |
bind_app_$append6405329875_overflow_first: | |
%bind_app_$append6405329875_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$append6405329875_overflow_underflow_addr, i64 176) | |
br label %bind_app_$append6405329875_do_call | |
bind_app_$append6405329875_do_call: | |
%bind_app_$append6405329875_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local4_loc, align 8 | |
%bind_app_$append6405329875_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local43_loc, align 8 | |
%bind_app_$append6405329875_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$append6405329875_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$append6405329875_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_$append6405329875_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$append6405329875_return_loc = bitcast i8* blockaddress(@main, %main_ret9) to %struct.SinObj* | |
%bind_app_$append6405329875_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$append6405329875_new_fp, i64 1 | |
%bind_app_$append6405329875_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$append6405329875_new_fp, i64 2 | |
%bind_app_$append6405329875_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$append6405329875_new_fp, i64 3 | |
%bind_app_$append6405329875_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$append6405329875_return_loc, %struct.SinObj** %bind_app_$append6405329875_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$append6405329875_slotscast, %struct.SinObj** %bind_app_$append6405329875_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$append6405329875_closure, %struct.SinObj** %bind_app_$append6405329875_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$append6405329875_arglist, %struct.SinObj** %bind_app_$append6405329875_newarg1loc, align 8 | |
%bind_app_$append6405329875_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$append6405329875_closure) | |
indirectbr i8* %bind_app_$append6405329875_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret9: | |
%bind_app_$append6405329875_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$append6405329875_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$append6405329875_oldfp, i64 1 | |
%bind_app_$append6405329875_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$append6405329875_slots_loc, align 8 | |
%bind_app_$append6405329875_slots = ptrtoint %struct.SinObj* %bind_app_$append6405329875_slots_ptr to i64 | |
%bind_app_$append6405329875_offset = mul i64 %bind_app_$append6405329875_slots, -1 | |
%bind_app_$append6405329875_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$append6405329875_oldfp, i64 %bind_app_$append6405329875_offset | |
store volatile %struct.SinObj** %bind_app_$append6405329875_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$append640532 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$append640532, %struct.SinObj** %main_local44_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6434529876_funcaddr = bitcast i8* blockaddress(@main, %clo646629) to i8* | |
%makeclo_anf_45bind6434529876_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6434529876_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6434529876_val, %struct.SinObj** %main_local45_loc, align 8 | |
; Starting const-null | |
%datnull_args646484$$Z640447$09877_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646484$$Z640447$09877_val, %struct.SinObj** %main_local46_loc, align 8 | |
; Starting prim | |
%primtmp_args646484$$Z640447$19878_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local45_loc, align 8 | |
%primtmp_args646484$$Z640447$19878_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local46_loc, align 8 | |
%primtmp_args646484$$Z640447$19878_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646484$$Z640447$19878_arg_0, %struct.SinObj* %primtmp_args646484$$Z640447$19878_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646484$$Z640447$19878_val, %struct.SinObj** %main_local47_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$list_636405369879_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_$list_636405369879_has_space, label %bind_app_$list_636405369879_do_call, label %bind_app_$list_636405369879_overflow_first | |
bind_app_$list_636405369879_overflow_first: | |
%bind_app_$list_636405369879_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$list_636405369879_overflow_underflow_addr, i64 176) | |
br label %bind_app_$list_636405369879_do_call | |
bind_app_$list_636405369879_do_call: | |
%bind_app_$list_636405369879_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local4_loc, align 8 | |
%bind_app_$list_636405369879_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local47_loc, align 8 | |
%bind_app_$list_636405369879_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$list_636405369879_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$list_636405369879_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_$list_636405369879_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$list_636405369879_return_loc = bitcast i8* blockaddress(@main, %main_ret10) to %struct.SinObj* | |
%bind_app_$list_636405369879_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$list_636405369879_new_fp, i64 1 | |
%bind_app_$list_636405369879_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$list_636405369879_new_fp, i64 2 | |
%bind_app_$list_636405369879_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$list_636405369879_new_fp, i64 3 | |
%bind_app_$list_636405369879_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$list_636405369879_return_loc, %struct.SinObj** %bind_app_$list_636405369879_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$list_636405369879_slotscast, %struct.SinObj** %bind_app_$list_636405369879_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$list_636405369879_closure, %struct.SinObj** %bind_app_$list_636405369879_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$list_636405369879_arglist, %struct.SinObj** %bind_app_$list_636405369879_newarg1loc, align 8 | |
%bind_app_$list_636405369879_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$list_636405369879_closure) | |
indirectbr i8* %bind_app_$list_636405369879_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret10: | |
%bind_app_$list_636405369879_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$list_636405369879_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$list_636405369879_oldfp, i64 1 | |
%bind_app_$list_636405369879_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$list_636405369879_slots_loc, align 8 | |
%bind_app_$list_636405369879_slots = ptrtoint %struct.SinObj* %bind_app_$list_636405369879_slots_ptr to i64 | |
%bind_app_$list_636405369879_offset = mul i64 %bind_app_$list_636405369879_slots, -1 | |
%bind_app_$list_636405369879_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$list_636405369879_oldfp, i64 %bind_app_$list_636405369879_offset | |
store volatile %struct.SinObj** %bind_app_$list_636405369879_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$list_63640536 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$list_63640536, %struct.SinObj** %main_local48_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6434589880_funcaddr = bitcast i8* blockaddress(@main, %clo646627) to i8* | |
%makeclo_anf_45bind6434589880_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6434589880_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6434589880_val, %struct.SinObj** %main_local49_loc, align 8 | |
; Starting const-null | |
%datnull_args646488$$Z640447$09881_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646488$$Z640447$09881_val, %struct.SinObj** %main_local50_loc, align 8 | |
; Starting prim | |
%primtmp_args646488$$Z640447$19882_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local49_loc, align 8 | |
%primtmp_args646488$$Z640447$19882_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local50_loc, align 8 | |
%primtmp_args646488$$Z640447$19882_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646488$$Z640447$19882_arg_0, %struct.SinObj* %primtmp_args646488$$Z640447$19882_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646488$$Z640447$19882_val, %struct.SinObj** %main_local51_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$drop6405399883_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_$drop6405399883_has_space, label %bind_app_$drop6405399883_do_call, label %bind_app_$drop6405399883_overflow_first | |
bind_app_$drop6405399883_overflow_first: | |
%bind_app_$drop6405399883_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$drop6405399883_overflow_underflow_addr, i64 176) | |
br label %bind_app_$drop6405399883_do_call | |
bind_app_$drop6405399883_do_call: | |
%bind_app_$drop6405399883_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local4_loc, align 8 | |
%bind_app_$drop6405399883_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local51_loc, align 8 | |
%bind_app_$drop6405399883_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$drop6405399883_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$drop6405399883_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_$drop6405399883_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$drop6405399883_return_loc = bitcast i8* blockaddress(@main, %main_ret11) to %struct.SinObj* | |
%bind_app_$drop6405399883_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$drop6405399883_new_fp, i64 1 | |
%bind_app_$drop6405399883_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$drop6405399883_new_fp, i64 2 | |
%bind_app_$drop6405399883_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$drop6405399883_new_fp, i64 3 | |
%bind_app_$drop6405399883_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$drop6405399883_return_loc, %struct.SinObj** %bind_app_$drop6405399883_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$drop6405399883_slotscast, %struct.SinObj** %bind_app_$drop6405399883_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$drop6405399883_closure, %struct.SinObj** %bind_app_$drop6405399883_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$drop6405399883_arglist, %struct.SinObj** %bind_app_$drop6405399883_newarg1loc, align 8 | |
%bind_app_$drop6405399883_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$drop6405399883_closure) | |
indirectbr i8* %bind_app_$drop6405399883_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret11: | |
%bind_app_$drop6405399883_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$drop6405399883_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$drop6405399883_oldfp, i64 1 | |
%bind_app_$drop6405399883_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$drop6405399883_slots_loc, align 8 | |
%bind_app_$drop6405399883_slots = ptrtoint %struct.SinObj* %bind_app_$drop6405399883_slots_ptr to i64 | |
%bind_app_$drop6405399883_offset = mul i64 %bind_app_$drop6405399883_slots, -1 | |
%bind_app_$drop6405399883_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$drop6405399883_oldfp, i64 %bind_app_$drop6405399883_offset | |
store volatile %struct.SinObj** %bind_app_$drop6405399883_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$drop640539 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$drop640539, %struct.SinObj** %main_local52_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6434649884_funcaddr = bitcast i8* blockaddress(@main, %clo646625) to i8* | |
%makeclo_anf_45bind6434649884_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6434649884_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6434649884_val, %struct.SinObj** %main_local53_loc, align 8 | |
; Starting const-null | |
%datnull_args646492$$Z640447$09885_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646492$$Z640447$09885_val, %struct.SinObj** %main_local54_loc, align 8 | |
; Starting prim | |
%primtmp_args646492$$Z640447$19886_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local53_loc, align 8 | |
%primtmp_args646492$$Z640447$19886_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local54_loc, align 8 | |
%primtmp_args646492$$Z640447$19886_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646492$$Z640447$19886_arg_0, %struct.SinObj* %primtmp_args646492$$Z640447$19886_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646492$$Z640447$19886_val, %struct.SinObj** %main_local55_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$memv6405439887_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_$memv6405439887_has_space, label %bind_app_$memv6405439887_do_call, label %bind_app_$memv6405439887_overflow_first | |
bind_app_$memv6405439887_overflow_first: | |
%bind_app_$memv6405439887_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$memv6405439887_overflow_underflow_addr, i64 176) | |
br label %bind_app_$memv6405439887_do_call | |
bind_app_$memv6405439887_do_call: | |
%bind_app_$memv6405439887_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local4_loc, align 8 | |
%bind_app_$memv6405439887_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local55_loc, align 8 | |
%bind_app_$memv6405439887_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$memv6405439887_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$memv6405439887_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_$memv6405439887_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$memv6405439887_return_loc = bitcast i8* blockaddress(@main, %main_ret12) to %struct.SinObj* | |
%bind_app_$memv6405439887_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$memv6405439887_new_fp, i64 1 | |
%bind_app_$memv6405439887_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$memv6405439887_new_fp, i64 2 | |
%bind_app_$memv6405439887_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$memv6405439887_new_fp, i64 3 | |
%bind_app_$memv6405439887_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$memv6405439887_return_loc, %struct.SinObj** %bind_app_$memv6405439887_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$memv6405439887_slotscast, %struct.SinObj** %bind_app_$memv6405439887_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$memv6405439887_closure, %struct.SinObj** %bind_app_$memv6405439887_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$memv6405439887_arglist, %struct.SinObj** %bind_app_$memv6405439887_newarg1loc, align 8 | |
%bind_app_$memv6405439887_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$memv6405439887_closure) | |
indirectbr i8* %bind_app_$memv6405439887_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret12: | |
%bind_app_$memv6405439887_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$memv6405439887_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$memv6405439887_oldfp, i64 1 | |
%bind_app_$memv6405439887_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$memv6405439887_slots_loc, align 8 | |
%bind_app_$memv6405439887_slots = ptrtoint %struct.SinObj* %bind_app_$memv6405439887_slots_ptr to i64 | |
%bind_app_$memv6405439887_offset = mul i64 %bind_app_$memv6405439887_slots, -1 | |
%bind_app_$memv6405439887_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$memv6405439887_oldfp, i64 %bind_app_$memv6405439887_offset | |
store volatile %struct.SinObj** %bind_app_$memv6405439887_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$memv640543 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$memv640543, %struct.SinObj** %main_local56_loc, align 8 | |
; Starting make-closure | |
%makeclo_$first6405479888_funcaddr = bitcast i8* blockaddress(@main, %clo646623) to i8* | |
%makeclo_$first6405479888_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_$first6405479888_funcaddr) | |
store volatile %struct.SinObj* %makeclo_$first6405479888_val, %struct.SinObj** %main_local57_loc, align 8 | |
; Starting make-closure | |
%makeclo_$second6405499889_funcaddr = bitcast i8* blockaddress(@main, %clo646622) to i8* | |
%makeclo_$second6405499889_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_$second6405499889_funcaddr) | |
store volatile %struct.SinObj* %makeclo_$second6405499889_val, %struct.SinObj** %main_local58_loc, align 8 | |
; Starting make-closure | |
%makeclo_$third6405519890_funcaddr = bitcast i8* blockaddress(@main, %clo646621) to i8* | |
%makeclo_$third6405519890_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_$third6405519890_funcaddr) | |
store volatile %struct.SinObj* %makeclo_$third6405519890_val, %struct.SinObj** %main_local59_loc, align 8 | |
; Starting make-closure | |
%makeclo_$fourth6405539891_funcaddr = bitcast i8* blockaddress(@main, %clo646620) to i8* | |
%makeclo_$fourth6405539891_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_$fourth6405539891_funcaddr) | |
store volatile %struct.SinObj* %makeclo_$fourth6405539891_val, %struct.SinObj** %main_local60_loc, align 8 | |
; Starting make-closure | |
%makeclo_$fifth6405559892_funcaddr = bitcast i8* blockaddress(@main, %clo646619) to i8* | |
%makeclo_$fifth6405559892_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_$fifth6405559892_funcaddr) | |
store volatile %struct.SinObj* %makeclo_$fifth6405559892_val, %struct.SinObj** %main_local61_loc, align 8 | |
; Starting make-closure | |
%makeclo_$_37raise_45handler6405579893_funcaddr = bitcast i8* blockaddress(@main, %clo646618) to i8* | |
%makeclo_$_37raise_45handler6405579893_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_$_37raise_45handler6405579893_funcaddr) | |
store volatile %struct.SinObj* %makeclo_$_37raise_45handler6405579893_val, %struct.SinObj** %main_local62_loc, align 8 | |
; Starting make-closure | |
%makeclo_$promise_636405629894_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local62_loc, align 8 | |
%makeclo_$promise_636405629894_funcaddr = bitcast i8* blockaddress(@main, %clo646617) to i8* | |
%makeclo_$promise_636405629894_val = call %struct.SinObj* @closure_alloc(i64 1, i8* %makeclo_$promise_636405629894_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_$promise_636405629894_val, %struct.SinObj* %makeclo_$promise_636405629894_arg_0, i64 0) | |
store volatile %struct.SinObj* %makeclo_$promise_636405629894_val, %struct.SinObj** %main_local63_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6434929895_val = call %struct.SinObj* @const_init_int(i64 1) | |
store volatile %struct.SinObj* %datint_anf_45datum6434929895_val, %struct.SinObj** %main_local64_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6434939896_funcaddr = bitcast i8* blockaddress(@main, %clo646616) to i8* | |
%makeclo_anf_45bind6434939896_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6434939896_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6434939896_val, %struct.SinObj** %main_local65_loc, align 8 | |
; Starting const-null | |
%datnull_args646501$anf_45bind643493$09897_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646501$anf_45bind643493$09897_val, %struct.SinObj** %main_local66_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind6434949898_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_anf_45bind6434949898_has_space, label %bind_app_anf_45bind6434949898_do_call, label %bind_app_anf_45bind6434949898_overflow_first | |
bind_app_anf_45bind6434949898_overflow_first: | |
%bind_app_anf_45bind6434949898_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind6434949898_overflow_underflow_addr, i64 176) | |
br label %bind_app_anf_45bind6434949898_do_call | |
bind_app_anf_45bind6434949898_do_call: | |
%bind_app_anf_45bind6434949898_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local65_loc, align 8 | |
%bind_app_anf_45bind6434949898_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local66_loc, align 8 | |
%bind_app_anf_45bind6434949898_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6434949898_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6434949898_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_anf_45bind6434949898_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6434949898_return_loc = bitcast i8* blockaddress(@main, %main_ret13) to %struct.SinObj* | |
%bind_app_anf_45bind6434949898_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6434949898_new_fp, i64 1 | |
%bind_app_anf_45bind6434949898_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6434949898_new_fp, i64 2 | |
%bind_app_anf_45bind6434949898_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6434949898_new_fp, i64 3 | |
%bind_app_anf_45bind6434949898_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind6434949898_return_loc, %struct.SinObj** %bind_app_anf_45bind6434949898_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6434949898_slotscast, %struct.SinObj** %bind_app_anf_45bind6434949898_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6434949898_closure, %struct.SinObj** %bind_app_anf_45bind6434949898_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6434949898_arglist, %struct.SinObj** %bind_app_anf_45bind6434949898_newarg1loc, align 8 | |
%bind_app_anf_45bind6434949898_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind6434949898_closure) | |
indirectbr i8* %bind_app_anf_45bind6434949898_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret13: | |
%bind_app_anf_45bind6434949898_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6434949898_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6434949898_oldfp, i64 1 | |
%bind_app_anf_45bind6434949898_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6434949898_slots_loc, align 8 | |
%bind_app_anf_45bind6434949898_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind6434949898_slots_ptr to i64 | |
%bind_app_anf_45bind6434949898_offset = mul i64 %bind_app_anf_45bind6434949898_slots, -1 | |
%bind_app_anf_45bind6434949898_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6434949898_oldfp, i64 %bind_app_anf_45bind6434949898_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind6434949898_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643494 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643494, %struct.SinObj** %main_local67_loc, align 8 | |
; Starting prim | |
%primtmp_$_37wind_45stack6405659899_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local64_loc, align 8 | |
%primtmp_$_37wind_45stack6405659899_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local67_loc, align 8 | |
%primtmp_$_37wind_45stack6405659899_val = call %struct.SinObj* @prim_make_45vector(%struct.SinObj* %primtmp_$_37wind_45stack6405659899_arg_0, %struct.SinObj* %primtmp_$_37wind_45stack6405659899_arg_1) | |
store volatile %struct.SinObj* %primtmp_$_37wind_45stack6405659899_val, %struct.SinObj** %main_local68_loc, align 8 | |
; Starting make-closure | |
%makeclo_$_37common_45tail6405679900_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local40_loc, align 8 | |
%makeclo_$_37common_45tail6405679900_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local20_loc, align 8 | |
%makeclo_$_37common_45tail6405679900_arg_2 = load volatile %struct.SinObj*, %struct.SinObj** %main_local52_loc, align 8 | |
%makeclo_$_37common_45tail6405679900_funcaddr = bitcast i8* blockaddress(@main, %clo646615) to i8* | |
%makeclo_$_37common_45tail6405679900_val = call %struct.SinObj* @closure_alloc(i64 3, i8* %makeclo_$_37common_45tail6405679900_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_$_37common_45tail6405679900_val, %struct.SinObj* %makeclo_$_37common_45tail6405679900_arg_0, i64 0) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_$_37common_45tail6405679900_val, %struct.SinObj* %makeclo_$_37common_45tail6405679900_arg_1, i64 1) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_$_37common_45tail6405679900_val, %struct.SinObj* %makeclo_$_37common_45tail6405679900_arg_2, i64 2) | |
store volatile %struct.SinObj* %makeclo_$_37common_45tail6405679900_val, %struct.SinObj** %main_local69_loc, align 8 | |
; Starting make-closure | |
%makeclo_$_37do_45wind6405779901_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local68_loc, align 8 | |
%makeclo_$_37do_45wind6405779901_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local69_loc, align 8 | |
%makeclo_$_37do_45wind6405779901_funcaddr = bitcast i8* blockaddress(@main, %clo646612) to i8* | |
%makeclo_$_37do_45wind6405779901_val = call %struct.SinObj* @closure_alloc(i64 2, i8* %makeclo_$_37do_45wind6405779901_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_$_37do_45wind6405779901_val, %struct.SinObj* %makeclo_$_37do_45wind6405779901_arg_0, i64 0) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_$_37do_45wind6405779901_val, %struct.SinObj* %makeclo_$_37do_45wind6405779901_arg_1, i64 1) | |
store volatile %struct.SinObj* %makeclo_$_37do_45wind6405779901_val, %struct.SinObj** %main_local70_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6435499902_val = call %struct.SinObj* @const_init_int(i64 1) | |
store volatile %struct.SinObj* %datint_anf_45datum6435499902_val, %struct.SinObj** %main_local71_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6435509903_funcaddr = bitcast i8* blockaddress(@main, %clo646607) to i8* | |
%makeclo_anf_45bind6435509903_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6435509903_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6435509903_val, %struct.SinObj** %main_local72_loc, align 8 | |
; Starting const-null | |
%datnull_args646525$anf_45bind643550$09904_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646525$anf_45bind643550$09904_val, %struct.SinObj** %main_local73_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind6435519905_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_anf_45bind6435519905_has_space, label %bind_app_anf_45bind6435519905_do_call, label %bind_app_anf_45bind6435519905_overflow_first | |
bind_app_anf_45bind6435519905_overflow_first: | |
%bind_app_anf_45bind6435519905_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind6435519905_overflow_underflow_addr, i64 176) | |
br label %bind_app_anf_45bind6435519905_do_call | |
bind_app_anf_45bind6435519905_do_call: | |
%bind_app_anf_45bind6435519905_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local72_loc, align 8 | |
%bind_app_anf_45bind6435519905_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local73_loc, align 8 | |
%bind_app_anf_45bind6435519905_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6435519905_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435519905_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_anf_45bind6435519905_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6435519905_return_loc = bitcast i8* blockaddress(@main, %main_ret14) to %struct.SinObj* | |
%bind_app_anf_45bind6435519905_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435519905_new_fp, i64 1 | |
%bind_app_anf_45bind6435519905_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435519905_new_fp, i64 2 | |
%bind_app_anf_45bind6435519905_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435519905_new_fp, i64 3 | |
%bind_app_anf_45bind6435519905_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind6435519905_return_loc, %struct.SinObj** %bind_app_anf_45bind6435519905_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6435519905_slotscast, %struct.SinObj** %bind_app_anf_45bind6435519905_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6435519905_closure, %struct.SinObj** %bind_app_anf_45bind6435519905_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6435519905_arglist, %struct.SinObj** %bind_app_anf_45bind6435519905_newarg1loc, align 8 | |
%bind_app_anf_45bind6435519905_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind6435519905_closure) | |
indirectbr i8* %bind_app_anf_45bind6435519905_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret14: | |
%bind_app_anf_45bind6435519905_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6435519905_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435519905_oldfp, i64 1 | |
%bind_app_anf_45bind6435519905_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435519905_slots_loc, align 8 | |
%bind_app_anf_45bind6435519905_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind6435519905_slots_ptr to i64 | |
%bind_app_anf_45bind6435519905_offset = mul i64 %bind_app_anf_45bind6435519905_slots, -1 | |
%bind_app_anf_45bind6435519905_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435519905_oldfp, i64 %bind_app_anf_45bind6435519905_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind6435519905_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643551 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643551, %struct.SinObj** %main_local74_loc, align 8 | |
; Starting prim | |
%primtmp_$ccstack6405939906_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local71_loc, align 8 | |
%primtmp_$ccstack6405939906_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local74_loc, align 8 | |
%primtmp_$ccstack6405939906_val = call %struct.SinObj* @prim_make_45vector(%struct.SinObj* %primtmp_$ccstack6405939906_arg_0, %struct.SinObj* %primtmp_$ccstack6405939906_arg_1) | |
store volatile %struct.SinObj* %primtmp_$ccstack6405939906_val, %struct.SinObj** %main_local75_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6435529907_val = call %struct.SinObj* @const_init_int(i64 1) | |
store volatile %struct.SinObj* %datint_anf_45datum6435529907_val, %struct.SinObj** %main_local76_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6435539908_funcaddr = bitcast i8* blockaddress(@main, %clo646606) to i8* | |
%makeclo_anf_45bind6435539908_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6435539908_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6435539908_val, %struct.SinObj** %main_local77_loc, align 8 | |
; Starting const-null | |
%datnull_args646526$anf_45bind643553$09909_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646526$anf_45bind643553$09909_val, %struct.SinObj** %main_local78_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind6435549910_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_anf_45bind6435549910_has_space, label %bind_app_anf_45bind6435549910_do_call, label %bind_app_anf_45bind6435549910_overflow_first | |
bind_app_anf_45bind6435549910_overflow_first: | |
%bind_app_anf_45bind6435549910_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind6435549910_overflow_underflow_addr, i64 176) | |
br label %bind_app_anf_45bind6435549910_do_call | |
bind_app_anf_45bind6435549910_do_call: | |
%bind_app_anf_45bind6435549910_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local77_loc, align 8 | |
%bind_app_anf_45bind6435549910_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local78_loc, align 8 | |
%bind_app_anf_45bind6435549910_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6435549910_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435549910_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_anf_45bind6435549910_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6435549910_return_loc = bitcast i8* blockaddress(@main, %main_ret15) to %struct.SinObj* | |
%bind_app_anf_45bind6435549910_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435549910_new_fp, i64 1 | |
%bind_app_anf_45bind6435549910_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435549910_new_fp, i64 2 | |
%bind_app_anf_45bind6435549910_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435549910_new_fp, i64 3 | |
%bind_app_anf_45bind6435549910_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind6435549910_return_loc, %struct.SinObj** %bind_app_anf_45bind6435549910_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6435549910_slotscast, %struct.SinObj** %bind_app_anf_45bind6435549910_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6435549910_closure, %struct.SinObj** %bind_app_anf_45bind6435549910_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6435549910_arglist, %struct.SinObj** %bind_app_anf_45bind6435549910_newarg1loc, align 8 | |
%bind_app_anf_45bind6435549910_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind6435549910_closure) | |
indirectbr i8* %bind_app_anf_45bind6435549910_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret15: | |
%bind_app_anf_45bind6435549910_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6435549910_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435549910_oldfp, i64 1 | |
%bind_app_anf_45bind6435549910_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435549910_slots_loc, align 8 | |
%bind_app_anf_45bind6435549910_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind6435549910_slots_ptr to i64 | |
%bind_app_anf_45bind6435549910_offset = mul i64 %bind_app_anf_45bind6435549910_slots, -1 | |
%bind_app_anf_45bind6435549910_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435549910_oldfp, i64 %bind_app_anf_45bind6435549910_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind6435549910_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643554 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643554, %struct.SinObj** %main_local79_loc, align 8 | |
; Starting prim | |
%primtmp_$fail6405959911_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local76_loc, align 8 | |
%primtmp_$fail6405959911_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local79_loc, align 8 | |
%primtmp_$fail6405959911_val = call %struct.SinObj* @prim_make_45vector(%struct.SinObj* %primtmp_$fail6405959911_arg_0, %struct.SinObj* %primtmp_$fail6405959911_arg_1) | |
store volatile %struct.SinObj* %primtmp_$fail6405959911_val, %struct.SinObj** %main_local80_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6435559912_val = call %struct.SinObj* @const_init_int(i64 1) | |
store volatile %struct.SinObj* %datint_anf_45datum6435559912_val, %struct.SinObj** %main_local81_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6435569913_funcaddr = bitcast i8* blockaddress(@main, %clo646605) to i8* | |
%makeclo_anf_45bind6435569913_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6435569913_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6435569913_val, %struct.SinObj** %main_local82_loc, align 8 | |
; Starting const-null | |
%datnull_args646527$anf_45bind643556$09914_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646527$anf_45bind643556$09914_val, %struct.SinObj** %main_local83_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind6435579915_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_anf_45bind6435579915_has_space, label %bind_app_anf_45bind6435579915_do_call, label %bind_app_anf_45bind6435579915_overflow_first | |
bind_app_anf_45bind6435579915_overflow_first: | |
%bind_app_anf_45bind6435579915_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind6435579915_overflow_underflow_addr, i64 176) | |
br label %bind_app_anf_45bind6435579915_do_call | |
bind_app_anf_45bind6435579915_do_call: | |
%bind_app_anf_45bind6435579915_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local82_loc, align 8 | |
%bind_app_anf_45bind6435579915_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local83_loc, align 8 | |
%bind_app_anf_45bind6435579915_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6435579915_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435579915_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_anf_45bind6435579915_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6435579915_return_loc = bitcast i8* blockaddress(@main, %main_ret16) to %struct.SinObj* | |
%bind_app_anf_45bind6435579915_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435579915_new_fp, i64 1 | |
%bind_app_anf_45bind6435579915_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435579915_new_fp, i64 2 | |
%bind_app_anf_45bind6435579915_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435579915_new_fp, i64 3 | |
%bind_app_anf_45bind6435579915_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind6435579915_return_loc, %struct.SinObj** %bind_app_anf_45bind6435579915_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6435579915_slotscast, %struct.SinObj** %bind_app_anf_45bind6435579915_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6435579915_closure, %struct.SinObj** %bind_app_anf_45bind6435579915_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6435579915_arglist, %struct.SinObj** %bind_app_anf_45bind6435579915_newarg1loc, align 8 | |
%bind_app_anf_45bind6435579915_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind6435579915_closure) | |
indirectbr i8* %bind_app_anf_45bind6435579915_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret16: | |
%bind_app_anf_45bind6435579915_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6435579915_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435579915_oldfp, i64 1 | |
%bind_app_anf_45bind6435579915_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435579915_slots_loc, align 8 | |
%bind_app_anf_45bind6435579915_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind6435579915_slots_ptr to i64 | |
%bind_app_anf_45bind6435579915_offset = mul i64 %bind_app_anf_45bind6435579915_slots, -1 | |
%bind_app_anf_45bind6435579915_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435579915_oldfp, i64 %bind_app_anf_45bind6435579915_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind6435579915_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643557 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643557, %struct.SinObj** %main_local84_loc, align 8 | |
; Starting prim | |
%primtmp_$assert6405979916_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local81_loc, align 8 | |
%primtmp_$assert6405979916_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local84_loc, align 8 | |
%primtmp_$assert6405979916_val = call %struct.SinObj* @prim_make_45vector(%struct.SinObj* %primtmp_$assert6405979916_arg_0, %struct.SinObj* %primtmp_$assert6405979916_arg_1) | |
store volatile %struct.SinObj* %primtmp_$assert6405979916_val, %struct.SinObj** %main_local85_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6435589917_val = call %struct.SinObj* @const_init_int(i64 1) | |
store volatile %struct.SinObj* %datint_anf_45datum6435589917_val, %struct.SinObj** %main_local86_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6435599918_funcaddr = bitcast i8* blockaddress(@main, %clo646604) to i8* | |
%makeclo_anf_45bind6435599918_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6435599918_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6435599918_val, %struct.SinObj** %main_local87_loc, align 8 | |
; Starting const-null | |
%datnull_args646528$anf_45bind643559$09919_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646528$anf_45bind643559$09919_val, %struct.SinObj** %main_local88_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind6435609920_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_anf_45bind6435609920_has_space, label %bind_app_anf_45bind6435609920_do_call, label %bind_app_anf_45bind6435609920_overflow_first | |
bind_app_anf_45bind6435609920_overflow_first: | |
%bind_app_anf_45bind6435609920_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind6435609920_overflow_underflow_addr, i64 176) | |
br label %bind_app_anf_45bind6435609920_do_call | |
bind_app_anf_45bind6435609920_do_call: | |
%bind_app_anf_45bind6435609920_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local87_loc, align 8 | |
%bind_app_anf_45bind6435609920_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local88_loc, align 8 | |
%bind_app_anf_45bind6435609920_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6435609920_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435609920_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_anf_45bind6435609920_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6435609920_return_loc = bitcast i8* blockaddress(@main, %main_ret17) to %struct.SinObj* | |
%bind_app_anf_45bind6435609920_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435609920_new_fp, i64 1 | |
%bind_app_anf_45bind6435609920_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435609920_new_fp, i64 2 | |
%bind_app_anf_45bind6435609920_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435609920_new_fp, i64 3 | |
%bind_app_anf_45bind6435609920_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind6435609920_return_loc, %struct.SinObj** %bind_app_anf_45bind6435609920_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6435609920_slotscast, %struct.SinObj** %bind_app_anf_45bind6435609920_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6435609920_closure, %struct.SinObj** %bind_app_anf_45bind6435609920_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6435609920_arglist, %struct.SinObj** %bind_app_anf_45bind6435609920_newarg1loc, align 8 | |
%bind_app_anf_45bind6435609920_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind6435609920_closure) | |
indirectbr i8* %bind_app_anf_45bind6435609920_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret17: | |
%bind_app_anf_45bind6435609920_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6435609920_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435609920_oldfp, i64 1 | |
%bind_app_anf_45bind6435609920_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435609920_slots_loc, align 8 | |
%bind_app_anf_45bind6435609920_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind6435609920_slots_ptr to i64 | |
%bind_app_anf_45bind6435609920_offset = mul i64 %bind_app_anf_45bind6435609920_slots, -1 | |
%bind_app_anf_45bind6435609920_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6435609920_oldfp, i64 %bind_app_anf_45bind6435609920_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind6435609920_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643560 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643560, %struct.SinObj** %main_local89_loc, align 8 | |
; Starting prim | |
%primtmp_$amb6405999921_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local86_loc, align 8 | |
%primtmp_$amb6405999921_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local89_loc, align 8 | |
%primtmp_$amb6405999921_val = call %struct.SinObj* @prim_make_45vector(%struct.SinObj* %primtmp_$amb6405999921_arg_0, %struct.SinObj* %primtmp_$amb6405999921_arg_1) | |
store volatile %struct.SinObj* %primtmp_$amb6405999921_val, %struct.SinObj** %main_local90_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6435619922_funcaddr = bitcast i8* blockaddress(@main, %clo646603) to i8* | |
%makeclo_anf_45bind6435619922_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6435619922_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6435619922_val, %struct.SinObj** %main_local91_loc, align 8 | |
; Starting const-null | |
%datnull_args646529$anf_45bind643561$09923_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646529$anf_45bind643561$09923_val, %struct.SinObj** %main_local92_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$letrec_45temp_45ccstack6306456406019924_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_$letrec_45temp_45ccstack6306456406019924_has_space, label %bind_app_$letrec_45temp_45ccstack6306456406019924_do_call, label %bind_app_$letrec_45temp_45ccstack6306456406019924_overflow_first | |
bind_app_$letrec_45temp_45ccstack6306456406019924_overflow_first: | |
%bind_app_$letrec_45temp_45ccstack6306456406019924_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$letrec_45temp_45ccstack6306456406019924_overflow_underflow_addr, i64 176) | |
br label %bind_app_$letrec_45temp_45ccstack6306456406019924_do_call | |
bind_app_$letrec_45temp_45ccstack6306456406019924_do_call: | |
%bind_app_$letrec_45temp_45ccstack6306456406019924_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local91_loc, align 8 | |
%bind_app_$letrec_45temp_45ccstack6306456406019924_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local92_loc, align 8 | |
%bind_app_$letrec_45temp_45ccstack6306456406019924_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$letrec_45temp_45ccstack6306456406019924_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$letrec_45temp_45ccstack6306456406019924_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_$letrec_45temp_45ccstack6306456406019924_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$letrec_45temp_45ccstack6306456406019924_return_loc = bitcast i8* blockaddress(@main, %main_ret18) to %struct.SinObj* | |
%bind_app_$letrec_45temp_45ccstack6306456406019924_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$letrec_45temp_45ccstack6306456406019924_new_fp, i64 1 | |
%bind_app_$letrec_45temp_45ccstack6306456406019924_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$letrec_45temp_45ccstack6306456406019924_new_fp, i64 2 | |
%bind_app_$letrec_45temp_45ccstack6306456406019924_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$letrec_45temp_45ccstack6306456406019924_new_fp, i64 3 | |
%bind_app_$letrec_45temp_45ccstack6306456406019924_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$letrec_45temp_45ccstack6306456406019924_return_loc, %struct.SinObj** %bind_app_$letrec_45temp_45ccstack6306456406019924_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$letrec_45temp_45ccstack6306456406019924_slotscast, %struct.SinObj** %bind_app_$letrec_45temp_45ccstack6306456406019924_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$letrec_45temp_45ccstack6306456406019924_closure, %struct.SinObj** %bind_app_$letrec_45temp_45ccstack6306456406019924_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$letrec_45temp_45ccstack6306456406019924_arglist, %struct.SinObj** %bind_app_$letrec_45temp_45ccstack6306456406019924_newarg1loc, align 8 | |
%bind_app_$letrec_45temp_45ccstack6306456406019924_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$letrec_45temp_45ccstack6306456406019924_closure) | |
indirectbr i8* %bind_app_$letrec_45temp_45ccstack6306456406019924_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret18: | |
%bind_app_$letrec_45temp_45ccstack6306456406019924_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$letrec_45temp_45ccstack6306456406019924_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$letrec_45temp_45ccstack6306456406019924_oldfp, i64 1 | |
%bind_app_$letrec_45temp_45ccstack6306456406019924_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$letrec_45temp_45ccstack6306456406019924_slots_loc, align 8 | |
%bind_app_$letrec_45temp_45ccstack6306456406019924_slots = ptrtoint %struct.SinObj* %bind_app_$letrec_45temp_45ccstack6306456406019924_slots_ptr to i64 | |
%bind_app_$letrec_45temp_45ccstack6306456406019924_offset = mul i64 %bind_app_$letrec_45temp_45ccstack6306456406019924_slots, -1 | |
%bind_app_$letrec_45temp_45ccstack6306456406019924_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$letrec_45temp_45ccstack6306456406019924_oldfp, i64 %bind_app_$letrec_45temp_45ccstack6306456406019924_offset | |
store volatile %struct.SinObj** %bind_app_$letrec_45temp_45ccstack6306456406019924_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$letrec_45temp_45ccstack630645640601 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$letrec_45temp_45ccstack630645640601, %struct.SinObj** %main_local93_loc, align 8 | |
; Starting make-closure | |
%makeclo_$letrec_45temp_45fail6306466406039925_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local62_loc, align 8 | |
%makeclo_$letrec_45temp_45fail6306466406039925_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local75_loc, align 8 | |
%makeclo_$letrec_45temp_45fail6306466406039925_funcaddr = bitcast i8* blockaddress(@main, %clo646602) to i8* | |
%makeclo_$letrec_45temp_45fail6306466406039925_val = call %struct.SinObj* @closure_alloc(i64 2, i8* %makeclo_$letrec_45temp_45fail6306466406039925_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_$letrec_45temp_45fail6306466406039925_val, %struct.SinObj* %makeclo_$letrec_45temp_45fail6306466406039925_arg_0, i64 0) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_$letrec_45temp_45fail6306466406039925_val, %struct.SinObj* %makeclo_$letrec_45temp_45fail6306466406039925_arg_1, i64 1) | |
store volatile %struct.SinObj* %makeclo_$letrec_45temp_45fail6306466406039925_val, %struct.SinObj** %main_local94_loc, align 8 | |
; Starting make-closure | |
%makeclo_$letrec_45temp_45assert6306476406069926_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local80_loc, align 8 | |
%makeclo_$letrec_45temp_45assert6306476406069926_funcaddr = bitcast i8* blockaddress(@main, %clo646601) to i8* | |
%makeclo_$letrec_45temp_45assert6306476406069926_val = call %struct.SinObj* @closure_alloc(i64 1, i8* %makeclo_$letrec_45temp_45assert6306476406069926_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_$letrec_45temp_45assert6306476406069926_val, %struct.SinObj* %makeclo_$letrec_45temp_45assert6306476406069926_arg_0, i64 0) | |
store volatile %struct.SinObj* %makeclo_$letrec_45temp_45assert6306476406069926_val, %struct.SinObj** %main_local95_loc, align 8 | |
; Starting make-closure | |
%makeclo_$letrec_45temp_45amb6306486406089927_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local68_loc, align 8 | |
%makeclo_$letrec_45temp_45amb6306486406089927_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local80_loc, align 8 | |
%makeclo_$letrec_45temp_45amb6306486406089927_arg_2 = load volatile %struct.SinObj*, %struct.SinObj** %main_local75_loc, align 8 | |
%makeclo_$letrec_45temp_45amb6306486406089927_arg_3 = load volatile %struct.SinObj*, %struct.SinObj** %main_local70_loc, align 8 | |
%makeclo_$letrec_45temp_45amb6306486406089927_funcaddr = bitcast i8* blockaddress(@main, %clo646600) to i8* | |
%makeclo_$letrec_45temp_45amb6306486406089927_val = call %struct.SinObj* @closure_alloc(i64 4, i8* %makeclo_$letrec_45temp_45amb6306486406089927_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_$letrec_45temp_45amb6306486406089927_val, %struct.SinObj* %makeclo_$letrec_45temp_45amb6306486406089927_arg_0, i64 0) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_$letrec_45temp_45amb6306486406089927_val, %struct.SinObj* %makeclo_$letrec_45temp_45amb6306486406089927_arg_1, i64 1) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_$letrec_45temp_45amb6306486406089927_val, %struct.SinObj* %makeclo_$letrec_45temp_45amb6306486406089927_arg_2, i64 2) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_$letrec_45temp_45amb6306486406089927_val, %struct.SinObj* %makeclo_$letrec_45temp_45amb6306486406089927_arg_3, i64 3) | |
store volatile %struct.SinObj* %makeclo_$letrec_45temp_45amb6306486406089927_val, %struct.SinObj** %main_local96_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6435989928_val = call %struct.SinObj* @const_init_int(i64 0) | |
store volatile %struct.SinObj* %datint_anf_45datum6435989928_val, %struct.SinObj** %main_local97_loc, align 8 | |
; Starting prim | |
%primtmp_$_37_37_956306566406209929_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local75_loc, align 8 | |
%primtmp_$_37_37_956306566406209929_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local97_loc, align 8 | |
%primtmp_$_37_37_956306566406209929_arg_2 = load volatile %struct.SinObj*, %struct.SinObj** %main_local93_loc, align 8 | |
%primtmp_$_37_37_956306566406209929_val = call %struct.SinObj* @prim_vector_45set_33(%struct.SinObj* %primtmp_$_37_37_956306566406209929_arg_0, %struct.SinObj* %primtmp_$_37_37_956306566406209929_arg_1, %struct.SinObj* %primtmp_$_37_37_956306566406209929_arg_2) | |
store volatile %struct.SinObj* %primtmp_$_37_37_956306566406209929_val, %struct.SinObj** %main_local98_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6435999930_val = call %struct.SinObj* @const_init_int(i64 0) | |
store volatile %struct.SinObj* %datint_anf_45datum6435999930_val, %struct.SinObj** %main_local99_loc, align 8 | |
; Starting prim | |
%primtmp_$_37_37_956306576406219931_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local80_loc, align 8 | |
%primtmp_$_37_37_956306576406219931_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local99_loc, align 8 | |
%primtmp_$_37_37_956306576406219931_arg_2 = load volatile %struct.SinObj*, %struct.SinObj** %main_local94_loc, align 8 | |
%primtmp_$_37_37_956306576406219931_val = call %struct.SinObj* @prim_vector_45set_33(%struct.SinObj* %primtmp_$_37_37_956306576406219931_arg_0, %struct.SinObj* %primtmp_$_37_37_956306576406219931_arg_1, %struct.SinObj* %primtmp_$_37_37_956306576406219931_arg_2) | |
store volatile %struct.SinObj* %primtmp_$_37_37_956306576406219931_val, %struct.SinObj** %main_local100_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6436009932_val = call %struct.SinObj* @const_init_int(i64 0) | |
store volatile %struct.SinObj* %datint_anf_45datum6436009932_val, %struct.SinObj** %main_local101_loc, align 8 | |
; Starting prim | |
%primtmp_$_37_37_956306586406229933_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local85_loc, align 8 | |
%primtmp_$_37_37_956306586406229933_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local101_loc, align 8 | |
%primtmp_$_37_37_956306586406229933_arg_2 = load volatile %struct.SinObj*, %struct.SinObj** %main_local95_loc, align 8 | |
%primtmp_$_37_37_956306586406229933_val = call %struct.SinObj* @prim_vector_45set_33(%struct.SinObj* %primtmp_$_37_37_956306586406229933_arg_0, %struct.SinObj* %primtmp_$_37_37_956306586406229933_arg_1, %struct.SinObj* %primtmp_$_37_37_956306586406229933_arg_2) | |
store volatile %struct.SinObj* %primtmp_$_37_37_956306586406229933_val, %struct.SinObj** %main_local102_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6436019934_val = call %struct.SinObj* @const_init_int(i64 0) | |
store volatile %struct.SinObj* %datint_anf_45datum6436019934_val, %struct.SinObj** %main_local103_loc, align 8 | |
; Starting prim | |
%primtmp_$_37_37_956306596406239935_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local90_loc, align 8 | |
%primtmp_$_37_37_956306596406239935_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local103_loc, align 8 | |
%primtmp_$_37_37_956306596406239935_arg_2 = load volatile %struct.SinObj*, %struct.SinObj** %main_local96_loc, align 8 | |
%primtmp_$_37_37_956306596406239935_val = call %struct.SinObj* @prim_vector_45set_33(%struct.SinObj* %primtmp_$_37_37_956306596406239935_arg_0, %struct.SinObj* %primtmp_$_37_37_956306596406239935_arg_1, %struct.SinObj* %primtmp_$_37_37_956306596406239935_arg_2) | |
store volatile %struct.SinObj* %primtmp_$_37_37_956306596406239935_val, %struct.SinObj** %main_local104_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6436029936_val = call %struct.SinObj* @const_init_int(i64 0) | |
store volatile %struct.SinObj* %datint_anf_45datum6436029936_val, %struct.SinObj** %main_local105_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind6436039937_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local90_loc, align 8 | |
%primtmp_anf_45bind6436039937_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local105_loc, align 8 | |
%primtmp_anf_45bind6436039937_val = call %struct.SinObj* @prim_vector_45ref(%struct.SinObj* %primtmp_anf_45bind6436039937_arg_0, %struct.SinObj* %primtmp_anf_45bind6436039937_arg_1) | |
store volatile %struct.SinObj* %primtmp_anf_45bind6436039937_val, %struct.SinObj** %main_local106_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6436049938_funcaddr = bitcast i8* blockaddress(@main, %clo646596) to i8* | |
%makeclo_anf_45bind6436049938_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6436049938_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6436049938_val, %struct.SinObj** %main_local107_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6436059939_val = call %struct.SinObj* @const_init_int(i64 2) | |
store volatile %struct.SinObj* %datint_anf_45datum6436059939_val, %struct.SinObj** %main_local108_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6436069940_val = call %struct.SinObj* @const_init_int(i64 3) | |
store volatile %struct.SinObj* %datint_anf_45datum6436069940_val, %struct.SinObj** %main_local109_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6436079941_val = call %struct.SinObj* @const_init_int(i64 4) | |
store volatile %struct.SinObj* %datint_anf_45datum6436079941_val, %struct.SinObj** %main_local110_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6436089942_val = call %struct.SinObj* @const_init_int(i64 5) | |
store volatile %struct.SinObj* %datint_anf_45datum6436089942_val, %struct.SinObj** %main_local111_loc, align 8 | |
; Starting const-null | |
%datnull_args646544$anf_45bind643604$09943_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646544$anf_45bind643604$09943_val, %struct.SinObj** %main_local112_loc, align 8 | |
; Starting prim | |
%primtmp_args646544$anf_45bind643604$19944_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local111_loc, align 8 | |
%primtmp_args646544$anf_45bind643604$19944_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local112_loc, align 8 | |
%primtmp_args646544$anf_45bind643604$19944_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646544$anf_45bind643604$19944_arg_0, %struct.SinObj* %primtmp_args646544$anf_45bind643604$19944_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646544$anf_45bind643604$19944_val, %struct.SinObj** %main_local113_loc, align 8 | |
; Starting prim | |
%primtmp_args646544$anf_45bind643604$29945_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local110_loc, align 8 | |
%primtmp_args646544$anf_45bind643604$29945_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local113_loc, align 8 | |
%primtmp_args646544$anf_45bind643604$29945_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646544$anf_45bind643604$29945_arg_0, %struct.SinObj* %primtmp_args646544$anf_45bind643604$29945_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646544$anf_45bind643604$29945_val, %struct.SinObj** %main_local114_loc, align 8 | |
; Starting prim | |
%primtmp_args646544$anf_45bind643604$39946_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local109_loc, align 8 | |
%primtmp_args646544$anf_45bind643604$39946_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local114_loc, align 8 | |
%primtmp_args646544$anf_45bind643604$39946_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646544$anf_45bind643604$39946_arg_0, %struct.SinObj* %primtmp_args646544$anf_45bind643604$39946_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646544$anf_45bind643604$39946_val, %struct.SinObj** %main_local115_loc, align 8 | |
; Starting prim | |
%primtmp_args646544$anf_45bind643604$49947_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local108_loc, align 8 | |
%primtmp_args646544$anf_45bind643604$49947_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local115_loc, align 8 | |
%primtmp_args646544$anf_45bind643604$49947_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646544$anf_45bind643604$49947_arg_0, %struct.SinObj* %primtmp_args646544$anf_45bind643604$49947_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646544$anf_45bind643604$49947_val, %struct.SinObj** %main_local116_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind6436099948_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_anf_45bind6436099948_has_space, label %bind_app_anf_45bind6436099948_do_call, label %bind_app_anf_45bind6436099948_overflow_first | |
bind_app_anf_45bind6436099948_overflow_first: | |
%bind_app_anf_45bind6436099948_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind6436099948_overflow_underflow_addr, i64 176) | |
br label %bind_app_anf_45bind6436099948_do_call | |
bind_app_anf_45bind6436099948_do_call: | |
%bind_app_anf_45bind6436099948_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local107_loc, align 8 | |
%bind_app_anf_45bind6436099948_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local116_loc, align 8 | |
%bind_app_anf_45bind6436099948_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6436099948_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436099948_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_anf_45bind6436099948_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6436099948_return_loc = bitcast i8* blockaddress(@main, %main_ret19) to %struct.SinObj* | |
%bind_app_anf_45bind6436099948_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436099948_new_fp, i64 1 | |
%bind_app_anf_45bind6436099948_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436099948_new_fp, i64 2 | |
%bind_app_anf_45bind6436099948_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436099948_new_fp, i64 3 | |
%bind_app_anf_45bind6436099948_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind6436099948_return_loc, %struct.SinObj** %bind_app_anf_45bind6436099948_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6436099948_slotscast, %struct.SinObj** %bind_app_anf_45bind6436099948_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6436099948_closure, %struct.SinObj** %bind_app_anf_45bind6436099948_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6436099948_arglist, %struct.SinObj** %bind_app_anf_45bind6436099948_newarg1loc, align 8 | |
%bind_app_anf_45bind6436099948_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind6436099948_closure) | |
indirectbr i8* %bind_app_anf_45bind6436099948_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret19: | |
%bind_app_anf_45bind6436099948_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6436099948_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436099948_oldfp, i64 1 | |
%bind_app_anf_45bind6436099948_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436099948_slots_loc, align 8 | |
%bind_app_anf_45bind6436099948_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind6436099948_slots_ptr to i64 | |
%bind_app_anf_45bind6436099948_offset = mul i64 %bind_app_anf_45bind6436099948_slots, -1 | |
%bind_app_anf_45bind6436099948_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436099948_oldfp, i64 %bind_app_anf_45bind6436099948_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind6436099948_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643609 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643609, %struct.SinObj** %main_local117_loc, align 8 | |
; Starting const-null | |
%datnull_args646545$anf_45bind643603$09949_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646545$anf_45bind643603$09949_val, %struct.SinObj** %main_local118_loc, align 8 | |
; Starting prim | |
%primtmp_args646545$anf_45bind643603$19950_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local117_loc, align 8 | |
%primtmp_args646545$anf_45bind643603$19950_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local118_loc, align 8 | |
%primtmp_args646545$anf_45bind643603$19950_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646545$anf_45bind643603$19950_arg_0, %struct.SinObj* %primtmp_args646545$anf_45bind643603$19950_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646545$anf_45bind643603$19950_val, %struct.SinObj** %main_local119_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$a6406249951_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_$a6406249951_has_space, label %bind_app_$a6406249951_do_call, label %bind_app_$a6406249951_overflow_first | |
bind_app_$a6406249951_overflow_first: | |
%bind_app_$a6406249951_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$a6406249951_overflow_underflow_addr, i64 176) | |
br label %bind_app_$a6406249951_do_call | |
bind_app_$a6406249951_do_call: | |
%bind_app_$a6406249951_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local106_loc, align 8 | |
%bind_app_$a6406249951_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local119_loc, align 8 | |
%bind_app_$a6406249951_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$a6406249951_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$a6406249951_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_$a6406249951_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$a6406249951_return_loc = bitcast i8* blockaddress(@main, %main_ret20) to %struct.SinObj* | |
%bind_app_$a6406249951_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$a6406249951_new_fp, i64 1 | |
%bind_app_$a6406249951_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$a6406249951_new_fp, i64 2 | |
%bind_app_$a6406249951_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$a6406249951_new_fp, i64 3 | |
%bind_app_$a6406249951_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$a6406249951_return_loc, %struct.SinObj** %bind_app_$a6406249951_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$a6406249951_slotscast, %struct.SinObj** %bind_app_$a6406249951_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$a6406249951_closure, %struct.SinObj** %bind_app_$a6406249951_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$a6406249951_arglist, %struct.SinObj** %bind_app_$a6406249951_newarg1loc, align 8 | |
%bind_app_$a6406249951_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$a6406249951_closure) | |
indirectbr i8* %bind_app_$a6406249951_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret20: | |
%bind_app_$a6406249951_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$a6406249951_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$a6406249951_oldfp, i64 1 | |
%bind_app_$a6406249951_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$a6406249951_slots_loc, align 8 | |
%bind_app_$a6406249951_slots = ptrtoint %struct.SinObj* %bind_app_$a6406249951_slots_ptr to i64 | |
%bind_app_$a6406249951_offset = mul i64 %bind_app_$a6406249951_slots, -1 | |
%bind_app_$a6406249951_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$a6406249951_oldfp, i64 %bind_app_$a6406249951_offset | |
store volatile %struct.SinObj** %bind_app_$a6406249951_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$a640624 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$a640624, %struct.SinObj** %main_local120_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6436109952_val = call %struct.SinObj* @const_init_int(i64 0) | |
store volatile %struct.SinObj* %datint_anf_45datum6436109952_val, %struct.SinObj** %main_local121_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind6436119953_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local90_loc, align 8 | |
%primtmp_anf_45bind6436119953_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local121_loc, align 8 | |
%primtmp_anf_45bind6436119953_val = call %struct.SinObj* @prim_vector_45ref(%struct.SinObj* %primtmp_anf_45bind6436119953_arg_0, %struct.SinObj* %primtmp_anf_45bind6436119953_arg_1) | |
store volatile %struct.SinObj* %primtmp_anf_45bind6436119953_val, %struct.SinObj** %main_local122_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6436129954_funcaddr = bitcast i8* blockaddress(@main, %clo646595) to i8* | |
%makeclo_anf_45bind6436129954_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6436129954_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6436129954_val, %struct.SinObj** %main_local123_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6436139955_val = call %struct.SinObj* @const_init_int(i64 2) | |
store volatile %struct.SinObj* %datint_anf_45datum6436139955_val, %struct.SinObj** %main_local124_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6436149956_val = call %struct.SinObj* @const_init_int(i64 3) | |
store volatile %struct.SinObj* %datint_anf_45datum6436149956_val, %struct.SinObj** %main_local125_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6436159957_val = call %struct.SinObj* @const_init_int(i64 4) | |
store volatile %struct.SinObj* %datint_anf_45datum6436159957_val, %struct.SinObj** %main_local126_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6436169958_val = call %struct.SinObj* @const_init_int(i64 5) | |
store volatile %struct.SinObj* %datint_anf_45datum6436169958_val, %struct.SinObj** %main_local127_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6436179959_val = call %struct.SinObj* @const_init_int(i64 6) | |
store volatile %struct.SinObj* %datint_anf_45datum6436179959_val, %struct.SinObj** %main_local128_loc, align 8 | |
; Starting const-null | |
%datnull_args646546$anf_45bind643612$09960_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646546$anf_45bind643612$09960_val, %struct.SinObj** %main_local129_loc, align 8 | |
; Starting prim | |
%primtmp_args646546$anf_45bind643612$19961_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local128_loc, align 8 | |
%primtmp_args646546$anf_45bind643612$19961_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local129_loc, align 8 | |
%primtmp_args646546$anf_45bind643612$19961_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646546$anf_45bind643612$19961_arg_0, %struct.SinObj* %primtmp_args646546$anf_45bind643612$19961_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646546$anf_45bind643612$19961_val, %struct.SinObj** %main_local130_loc, align 8 | |
; Starting prim | |
%primtmp_args646546$anf_45bind643612$29962_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local127_loc, align 8 | |
%primtmp_args646546$anf_45bind643612$29962_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local130_loc, align 8 | |
%primtmp_args646546$anf_45bind643612$29962_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646546$anf_45bind643612$29962_arg_0, %struct.SinObj* %primtmp_args646546$anf_45bind643612$29962_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646546$anf_45bind643612$29962_val, %struct.SinObj** %main_local131_loc, align 8 | |
; Starting prim | |
%primtmp_args646546$anf_45bind643612$39963_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local126_loc, align 8 | |
%primtmp_args646546$anf_45bind643612$39963_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local131_loc, align 8 | |
%primtmp_args646546$anf_45bind643612$39963_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646546$anf_45bind643612$39963_arg_0, %struct.SinObj* %primtmp_args646546$anf_45bind643612$39963_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646546$anf_45bind643612$39963_val, %struct.SinObj** %main_local132_loc, align 8 | |
; Starting prim | |
%primtmp_args646546$anf_45bind643612$49964_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local125_loc, align 8 | |
%primtmp_args646546$anf_45bind643612$49964_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local132_loc, align 8 | |
%primtmp_args646546$anf_45bind643612$49964_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646546$anf_45bind643612$49964_arg_0, %struct.SinObj* %primtmp_args646546$anf_45bind643612$49964_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646546$anf_45bind643612$49964_val, %struct.SinObj** %main_local133_loc, align 8 | |
; Starting prim | |
%primtmp_args646546$anf_45bind643612$59965_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local124_loc, align 8 | |
%primtmp_args646546$anf_45bind643612$59965_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local133_loc, align 8 | |
%primtmp_args646546$anf_45bind643612$59965_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646546$anf_45bind643612$59965_arg_0, %struct.SinObj* %primtmp_args646546$anf_45bind643612$59965_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646546$anf_45bind643612$59965_val, %struct.SinObj** %main_local134_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind6436189966_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_anf_45bind6436189966_has_space, label %bind_app_anf_45bind6436189966_do_call, label %bind_app_anf_45bind6436189966_overflow_first | |
bind_app_anf_45bind6436189966_overflow_first: | |
%bind_app_anf_45bind6436189966_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind6436189966_overflow_underflow_addr, i64 176) | |
br label %bind_app_anf_45bind6436189966_do_call | |
bind_app_anf_45bind6436189966_do_call: | |
%bind_app_anf_45bind6436189966_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local123_loc, align 8 | |
%bind_app_anf_45bind6436189966_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local134_loc, align 8 | |
%bind_app_anf_45bind6436189966_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6436189966_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436189966_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_anf_45bind6436189966_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6436189966_return_loc = bitcast i8* blockaddress(@main, %main_ret21) to %struct.SinObj* | |
%bind_app_anf_45bind6436189966_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436189966_new_fp, i64 1 | |
%bind_app_anf_45bind6436189966_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436189966_new_fp, i64 2 | |
%bind_app_anf_45bind6436189966_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436189966_new_fp, i64 3 | |
%bind_app_anf_45bind6436189966_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind6436189966_return_loc, %struct.SinObj** %bind_app_anf_45bind6436189966_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6436189966_slotscast, %struct.SinObj** %bind_app_anf_45bind6436189966_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6436189966_closure, %struct.SinObj** %bind_app_anf_45bind6436189966_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6436189966_arglist, %struct.SinObj** %bind_app_anf_45bind6436189966_newarg1loc, align 8 | |
%bind_app_anf_45bind6436189966_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind6436189966_closure) | |
indirectbr i8* %bind_app_anf_45bind6436189966_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret21: | |
%bind_app_anf_45bind6436189966_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6436189966_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436189966_oldfp, i64 1 | |
%bind_app_anf_45bind6436189966_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436189966_slots_loc, align 8 | |
%bind_app_anf_45bind6436189966_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind6436189966_slots_ptr to i64 | |
%bind_app_anf_45bind6436189966_offset = mul i64 %bind_app_anf_45bind6436189966_slots, -1 | |
%bind_app_anf_45bind6436189966_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436189966_oldfp, i64 %bind_app_anf_45bind6436189966_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind6436189966_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643618 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643618, %struct.SinObj** %main_local135_loc, align 8 | |
; Starting const-null | |
%datnull_args646547$anf_45bind643611$09967_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646547$anf_45bind643611$09967_val, %struct.SinObj** %main_local136_loc, align 8 | |
; Starting prim | |
%primtmp_args646547$anf_45bind643611$19968_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local135_loc, align 8 | |
%primtmp_args646547$anf_45bind643611$19968_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local136_loc, align 8 | |
%primtmp_args646547$anf_45bind643611$19968_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646547$anf_45bind643611$19968_arg_0, %struct.SinObj* %primtmp_args646547$anf_45bind643611$19968_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646547$anf_45bind643611$19968_val, %struct.SinObj** %main_local137_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$b6406269969_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_$b6406269969_has_space, label %bind_app_$b6406269969_do_call, label %bind_app_$b6406269969_overflow_first | |
bind_app_$b6406269969_overflow_first: | |
%bind_app_$b6406269969_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$b6406269969_overflow_underflow_addr, i64 176) | |
br label %bind_app_$b6406269969_do_call | |
bind_app_$b6406269969_do_call: | |
%bind_app_$b6406269969_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local122_loc, align 8 | |
%bind_app_$b6406269969_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local137_loc, align 8 | |
%bind_app_$b6406269969_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$b6406269969_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$b6406269969_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_$b6406269969_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$b6406269969_return_loc = bitcast i8* blockaddress(@main, %main_ret22) to %struct.SinObj* | |
%bind_app_$b6406269969_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$b6406269969_new_fp, i64 1 | |
%bind_app_$b6406269969_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$b6406269969_new_fp, i64 2 | |
%bind_app_$b6406269969_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$b6406269969_new_fp, i64 3 | |
%bind_app_$b6406269969_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$b6406269969_return_loc, %struct.SinObj** %bind_app_$b6406269969_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$b6406269969_slotscast, %struct.SinObj** %bind_app_$b6406269969_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$b6406269969_closure, %struct.SinObj** %bind_app_$b6406269969_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$b6406269969_arglist, %struct.SinObj** %bind_app_$b6406269969_newarg1loc, align 8 | |
%bind_app_$b6406269969_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$b6406269969_closure) | |
indirectbr i8* %bind_app_$b6406269969_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret22: | |
%bind_app_$b6406269969_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$b6406269969_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$b6406269969_oldfp, i64 1 | |
%bind_app_$b6406269969_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$b6406269969_slots_loc, align 8 | |
%bind_app_$b6406269969_slots = ptrtoint %struct.SinObj* %bind_app_$b6406269969_slots_ptr to i64 | |
%bind_app_$b6406269969_offset = mul i64 %bind_app_$b6406269969_slots, -1 | |
%bind_app_$b6406269969_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$b6406269969_oldfp, i64 %bind_app_$b6406269969_offset | |
store volatile %struct.SinObj** %bind_app_$b6406269969_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$b640626 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$b640626, %struct.SinObj** %main_local138_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6436199970_val = call %struct.SinObj* @const_init_int(i64 0) | |
store volatile %struct.SinObj* %datint_anf_45datum6436199970_val, %struct.SinObj** %main_local139_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind6436209971_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local90_loc, align 8 | |
%primtmp_anf_45bind6436209971_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local139_loc, align 8 | |
%primtmp_anf_45bind6436209971_val = call %struct.SinObj* @prim_vector_45ref(%struct.SinObj* %primtmp_anf_45bind6436209971_arg_0, %struct.SinObj* %primtmp_anf_45bind6436209971_arg_1) | |
store volatile %struct.SinObj* %primtmp_anf_45bind6436209971_val, %struct.SinObj** %main_local140_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6436219972_funcaddr = bitcast i8* blockaddress(@main, %clo646594) to i8* | |
%makeclo_anf_45bind6436219972_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6436219972_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6436219972_val, %struct.SinObj** %main_local141_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6436229973_val = call %struct.SinObj* @const_init_int(i64 2) | |
store volatile %struct.SinObj* %datint_anf_45datum6436229973_val, %struct.SinObj** %main_local142_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6436239974_val = call %struct.SinObj* @const_init_int(i64 3) | |
store volatile %struct.SinObj* %datint_anf_45datum6436239974_val, %struct.SinObj** %main_local143_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6436249975_val = call %struct.SinObj* @const_init_int(i64 4) | |
store volatile %struct.SinObj* %datint_anf_45datum6436249975_val, %struct.SinObj** %main_local144_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6436259976_val = call %struct.SinObj* @const_init_int(i64 5) | |
store volatile %struct.SinObj* %datint_anf_45datum6436259976_val, %struct.SinObj** %main_local145_loc, align 8 | |
; Starting const-null | |
%datnull_args646548$anf_45bind643621$09977_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646548$anf_45bind643621$09977_val, %struct.SinObj** %main_local146_loc, align 8 | |
; Starting prim | |
%primtmp_args646548$anf_45bind643621$19978_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local145_loc, align 8 | |
%primtmp_args646548$anf_45bind643621$19978_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local146_loc, align 8 | |
%primtmp_args646548$anf_45bind643621$19978_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646548$anf_45bind643621$19978_arg_0, %struct.SinObj* %primtmp_args646548$anf_45bind643621$19978_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646548$anf_45bind643621$19978_val, %struct.SinObj** %main_local147_loc, align 8 | |
; Starting prim | |
%primtmp_args646548$anf_45bind643621$29979_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local144_loc, align 8 | |
%primtmp_args646548$anf_45bind643621$29979_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local147_loc, align 8 | |
%primtmp_args646548$anf_45bind643621$29979_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646548$anf_45bind643621$29979_arg_0, %struct.SinObj* %primtmp_args646548$anf_45bind643621$29979_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646548$anf_45bind643621$29979_val, %struct.SinObj** %main_local148_loc, align 8 | |
; Starting prim | |
%primtmp_args646548$anf_45bind643621$39980_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local143_loc, align 8 | |
%primtmp_args646548$anf_45bind643621$39980_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local148_loc, align 8 | |
%primtmp_args646548$anf_45bind643621$39980_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646548$anf_45bind643621$39980_arg_0, %struct.SinObj* %primtmp_args646548$anf_45bind643621$39980_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646548$anf_45bind643621$39980_val, %struct.SinObj** %main_local149_loc, align 8 | |
; Starting prim | |
%primtmp_args646548$anf_45bind643621$49981_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local142_loc, align 8 | |
%primtmp_args646548$anf_45bind643621$49981_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local149_loc, align 8 | |
%primtmp_args646548$anf_45bind643621$49981_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646548$anf_45bind643621$49981_arg_0, %struct.SinObj* %primtmp_args646548$anf_45bind643621$49981_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646548$anf_45bind643621$49981_val, %struct.SinObj** %main_local150_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind6436269982_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_anf_45bind6436269982_has_space, label %bind_app_anf_45bind6436269982_do_call, label %bind_app_anf_45bind6436269982_overflow_first | |
bind_app_anf_45bind6436269982_overflow_first: | |
%bind_app_anf_45bind6436269982_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind6436269982_overflow_underflow_addr, i64 176) | |
br label %bind_app_anf_45bind6436269982_do_call | |
bind_app_anf_45bind6436269982_do_call: | |
%bind_app_anf_45bind6436269982_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local141_loc, align 8 | |
%bind_app_anf_45bind6436269982_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local150_loc, align 8 | |
%bind_app_anf_45bind6436269982_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6436269982_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436269982_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_anf_45bind6436269982_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6436269982_return_loc = bitcast i8* blockaddress(@main, %main_ret23) to %struct.SinObj* | |
%bind_app_anf_45bind6436269982_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436269982_new_fp, i64 1 | |
%bind_app_anf_45bind6436269982_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436269982_new_fp, i64 2 | |
%bind_app_anf_45bind6436269982_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436269982_new_fp, i64 3 | |
%bind_app_anf_45bind6436269982_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind6436269982_return_loc, %struct.SinObj** %bind_app_anf_45bind6436269982_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6436269982_slotscast, %struct.SinObj** %bind_app_anf_45bind6436269982_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6436269982_closure, %struct.SinObj** %bind_app_anf_45bind6436269982_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind6436269982_arglist, %struct.SinObj** %bind_app_anf_45bind6436269982_newarg1loc, align 8 | |
%bind_app_anf_45bind6436269982_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind6436269982_closure) | |
indirectbr i8* %bind_app_anf_45bind6436269982_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret23: | |
%bind_app_anf_45bind6436269982_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind6436269982_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436269982_oldfp, i64 1 | |
%bind_app_anf_45bind6436269982_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436269982_slots_loc, align 8 | |
%bind_app_anf_45bind6436269982_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind6436269982_slots_ptr to i64 | |
%bind_app_anf_45bind6436269982_offset = mul i64 %bind_app_anf_45bind6436269982_slots, -1 | |
%bind_app_anf_45bind6436269982_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind6436269982_oldfp, i64 %bind_app_anf_45bind6436269982_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind6436269982_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643626 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643626, %struct.SinObj** %main_local151_loc, align 8 | |
; Starting const-null | |
%datnull_args646549$anf_45bind643620$09983_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646549$anf_45bind643620$09983_val, %struct.SinObj** %main_local152_loc, align 8 | |
; Starting prim | |
%primtmp_args646549$anf_45bind643620$19984_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local151_loc, align 8 | |
%primtmp_args646549$anf_45bind643620$19984_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local152_loc, align 8 | |
%primtmp_args646549$anf_45bind643620$19984_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646549$anf_45bind643620$19984_arg_0, %struct.SinObj* %primtmp_args646549$anf_45bind643620$19984_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646549$anf_45bind643620$19984_val, %struct.SinObj** %main_local153_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$c6406289985_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_$c6406289985_has_space, label %bind_app_$c6406289985_do_call, label %bind_app_$c6406289985_overflow_first | |
bind_app_$c6406289985_overflow_first: | |
%bind_app_$c6406289985_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$c6406289985_overflow_underflow_addr, i64 176) | |
br label %bind_app_$c6406289985_do_call | |
bind_app_$c6406289985_do_call: | |
%bind_app_$c6406289985_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local140_loc, align 8 | |
%bind_app_$c6406289985_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local153_loc, align 8 | |
%bind_app_$c6406289985_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$c6406289985_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$c6406289985_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_$c6406289985_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$c6406289985_return_loc = bitcast i8* blockaddress(@main, %main_ret24) to %struct.SinObj* | |
%bind_app_$c6406289985_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$c6406289985_new_fp, i64 1 | |
%bind_app_$c6406289985_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$c6406289985_new_fp, i64 2 | |
%bind_app_$c6406289985_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$c6406289985_new_fp, i64 3 | |
%bind_app_$c6406289985_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$c6406289985_return_loc, %struct.SinObj** %bind_app_$c6406289985_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$c6406289985_slotscast, %struct.SinObj** %bind_app_$c6406289985_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$c6406289985_closure, %struct.SinObj** %bind_app_$c6406289985_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$c6406289985_arglist, %struct.SinObj** %bind_app_$c6406289985_newarg1loc, align 8 | |
%bind_app_$c6406289985_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$c6406289985_closure) | |
indirectbr i8* %bind_app_$c6406289985_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret24: | |
%bind_app_$c6406289985_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$c6406289985_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$c6406289985_oldfp, i64 1 | |
%bind_app_$c6406289985_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$c6406289985_slots_loc, align 8 | |
%bind_app_$c6406289985_slots = ptrtoint %struct.SinObj* %bind_app_$c6406289985_slots_ptr to i64 | |
%bind_app_$c6406289985_offset = mul i64 %bind_app_$c6406289985_slots, -1 | |
%bind_app_$c6406289985_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$c6406289985_oldfp, i64 %bind_app_$c6406289985_offset | |
store volatile %struct.SinObj** %bind_app_$c6406289985_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$c640628 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$c640628, %struct.SinObj** %main_local154_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum6436279986_val = call %struct.SinObj* @const_init_int(i64 0) | |
store volatile %struct.SinObj* %datint_anf_45datum6436279986_val, %struct.SinObj** %main_local155_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind6436289987_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local85_loc, align 8 | |
%primtmp_anf_45bind6436289987_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local155_loc, align 8 | |
%primtmp_anf_45bind6436289987_val = call %struct.SinObj* @prim_vector_45ref(%struct.SinObj* %primtmp_anf_45bind6436289987_arg_0, %struct.SinObj* %primtmp_anf_45bind6436289987_arg_1) | |
store volatile %struct.SinObj* %primtmp_anf_45bind6436289987_val, %struct.SinObj** %main_local156_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind6436299988_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local120_loc, align 8 | |
%primtmp_anf_45bind6436299988_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local120_loc, align 8 | |
%primtmp_anf_45bind6436299988_val = call %struct.SinObj* @prim__42(%struct.SinObj* %primtmp_anf_45bind6436299988_arg_0, %struct.SinObj* %primtmp_anf_45bind6436299988_arg_1) | |
store volatile %struct.SinObj* %primtmp_anf_45bind6436299988_val, %struct.SinObj** %main_local157_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind6436309989_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local138_loc, align 8 | |
%primtmp_anf_45bind6436309989_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local138_loc, align 8 | |
%primtmp_anf_45bind6436309989_val = call %struct.SinObj* @prim__42(%struct.SinObj* %primtmp_anf_45bind6436309989_arg_0, %struct.SinObj* %primtmp_anf_45bind6436309989_arg_1) | |
store volatile %struct.SinObj* %primtmp_anf_45bind6436309989_val, %struct.SinObj** %main_local158_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind6436319990_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local157_loc, align 8 | |
%primtmp_anf_45bind6436319990_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local158_loc, align 8 | |
%primtmp_anf_45bind6436319990_val = call %struct.SinObj* @prim__43(%struct.SinObj* %primtmp_anf_45bind6436319990_arg_0, %struct.SinObj* %primtmp_anf_45bind6436319990_arg_1) | |
store volatile %struct.SinObj* %primtmp_anf_45bind6436319990_val, %struct.SinObj** %main_local159_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind6436329991_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local154_loc, align 8 | |
%primtmp_anf_45bind6436329991_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local154_loc, align 8 | |
%primtmp_anf_45bind6436329991_val = call %struct.SinObj* @prim__42(%struct.SinObj* %primtmp_anf_45bind6436329991_arg_0, %struct.SinObj* %primtmp_anf_45bind6436329991_arg_1) | |
store volatile %struct.SinObj* %primtmp_anf_45bind6436329991_val, %struct.SinObj** %main_local160_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind6436339992_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local159_loc, align 8 | |
%primtmp_anf_45bind6436339992_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local160_loc, align 8 | |
%primtmp_anf_45bind6436339992_val = call %struct.SinObj* @prim__61(%struct.SinObj* %primtmp_anf_45bind6436339992_arg_0, %struct.SinObj* %primtmp_anf_45bind6436339992_arg_1) | |
store volatile %struct.SinObj* %primtmp_anf_45bind6436339992_val, %struct.SinObj** %main_local161_loc, align 8 | |
; Starting const-null | |
%datnull_args646550$anf_45bind643628$09993_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646550$anf_45bind643628$09993_val, %struct.SinObj** %main_local162_loc, align 8 | |
; Starting prim | |
%primtmp_args646550$anf_45bind643628$19994_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local161_loc, align 8 | |
%primtmp_args646550$anf_45bind643628$19994_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local162_loc, align 8 | |
%primtmp_args646550$anf_45bind643628$19994_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646550$anf_45bind643628$19994_arg_0, %struct.SinObj* %primtmp_args646550$anf_45bind643628$19994_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646550$anf_45bind643628$19994_val, %struct.SinObj** %main_local163_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$_37_37_956306606406309995_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 176) | |
br i1 %bind_app_$_37_37_956306606406309995_has_space, label %bind_app_$_37_37_956306606406309995_do_call, label %bind_app_$_37_37_956306606406309995_overflow_first | |
bind_app_$_37_37_956306606406309995_overflow_first: | |
%bind_app_$_37_37_956306606406309995_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$_37_37_956306606406309995_overflow_underflow_addr, i64 176) | |
br label %bind_app_$_37_37_956306606406309995_do_call | |
bind_app_$_37_37_956306606406309995_do_call: | |
%bind_app_$_37_37_956306606406309995_closure = load volatile %struct.SinObj*, %struct.SinObj** %main_local156_loc, align 8 | |
%bind_app_$_37_37_956306606406309995_arglist = load volatile %struct.SinObj*, %struct.SinObj** %main_local163_loc, align 8 | |
%bind_app_$_37_37_956306606406309995_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$_37_37_956306606406309995_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37_956306606406309995_cur_fp, i64 176 | |
store volatile %struct.SinObj** %bind_app_$_37_37_956306606406309995_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$_37_37_956306606406309995_return_loc = bitcast i8* blockaddress(@main, %main_ret25) to %struct.SinObj* | |
%bind_app_$_37_37_956306606406309995_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37_956306606406309995_new_fp, i64 1 | |
%bind_app_$_37_37_956306606406309995_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37_956306606406309995_new_fp, i64 2 | |
%bind_app_$_37_37_956306606406309995_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37_956306606406309995_new_fp, i64 3 | |
%bind_app_$_37_37_956306606406309995_slotscast = inttoptr i64 176 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$_37_37_956306606406309995_return_loc, %struct.SinObj** %bind_app_$_37_37_956306606406309995_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$_37_37_956306606406309995_slotscast, %struct.SinObj** %bind_app_$_37_37_956306606406309995_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$_37_37_956306606406309995_closure, %struct.SinObj** %bind_app_$_37_37_956306606406309995_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$_37_37_956306606406309995_arglist, %struct.SinObj** %bind_app_$_37_37_956306606406309995_newarg1loc, align 8 | |
%bind_app_$_37_37_956306606406309995_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$_37_37_956306606406309995_closure) | |
indirectbr i8* %bind_app_$_37_37_956306606406309995_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
main_ret25: | |
%bind_app_$_37_37_956306606406309995_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$_37_37_956306606406309995_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37_956306606406309995_oldfp, i64 1 | |
%bind_app_$_37_37_956306606406309995_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37_956306606406309995_slots_loc, align 8 | |
%bind_app_$_37_37_956306606406309995_slots = ptrtoint %struct.SinObj* %bind_app_$_37_37_956306606406309995_slots_ptr to i64 | |
%bind_app_$_37_37_956306606406309995_offset = mul i64 %bind_app_$_37_37_956306606406309995_slots, -1 | |
%bind_app_$_37_37_956306606406309995_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$_37_37_956306606406309995_oldfp, i64 %bind_app_$_37_37_956306606406309995_offset | |
store volatile %struct.SinObj** %bind_app_$_37_37_956306606406309995_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$_37_37_95630660640630 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$_37_37_95630660640630, %struct.SinObj** %main_local164_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind6436349996_funcaddr = bitcast i8* blockaddress(@main, %clo646593) to i8* | |
%makeclo_anf_45bind6436349996_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind6436349996_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind6436349996_val, %struct.SinObj** %main_local165_loc, align 8 | |
; Starting const-global | |
%datsym_anf_45datum6436359997_rawglobal = getelementptr inbounds [9 x i8], [9 x i8]* @.sym.global9824, i64 0, i64 0 | |
%datsym_anf_45datum6436359997_val = call %struct.SinObj* @const_init_symbol(i8* %datsym_anf_45datum6436359997_rawglobal) | |
store volatile %struct.SinObj* %datsym_anf_45datum6436359997_val, %struct.SinObj** %main_local166_loc, align 8 | |
; Starting const-null | |
%datnull_args646551$anf_45bind643634$09998_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646551$anf_45bind643634$09998_val, %struct.SinObj** %main_local167_loc, align 8 | |
; Starting prim | |
%primtmp_args646551$anf_45bind643634$19999_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local154_loc, align 8 | |
%primtmp_args646551$anf_45bind643634$19999_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local167_loc, align 8 | |
%primtmp_args646551$anf_45bind643634$19999_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646551$anf_45bind643634$19999_arg_0, %struct.SinObj* %primtmp_args646551$anf_45bind643634$19999_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646551$anf_45bind643634$19999_val, %struct.SinObj** %main_local168_loc, align 8 | |
; Starting prim | |
%primtmp_args646551$anf_45bind643634$210000_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local138_loc, align 8 | |
%primtmp_args646551$anf_45bind643634$210000_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local168_loc, align 8 | |
%primtmp_args646551$anf_45bind643634$210000_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646551$anf_45bind643634$210000_arg_0, %struct.SinObj* %primtmp_args646551$anf_45bind643634$210000_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646551$anf_45bind643634$210000_val, %struct.SinObj** %main_local169_loc, align 8 | |
; Starting prim | |
%primtmp_args646551$anf_45bind643634$310001_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local120_loc, align 8 | |
%primtmp_args646551$anf_45bind643634$310001_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local169_loc, align 8 | |
%primtmp_args646551$anf_45bind643634$310001_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646551$anf_45bind643634$310001_arg_0, %struct.SinObj* %primtmp_args646551$anf_45bind643634$310001_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646551$anf_45bind643634$310001_val, %struct.SinObj** %main_local170_loc, align 8 | |
; Starting prim | |
%primtmp_args646551$anf_45bind643634$410002_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %main_local166_loc, align 8 | |
%primtmp_args646551$anf_45bind643634$410002_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %main_local170_loc, align 8 | |
%primtmp_args646551$anf_45bind643634$410002_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646551$anf_45bind643634$410002_arg_0, %struct.SinObj* %primtmp_args646551$anf_45bind643634$410002_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646551$anf_45bind643634$410002_val, %struct.SinObj** %main_local171_loc, align 8 | |
; Starting tail-clo-app | |
%_tailapp_anf_45bind64363410003_clo = load volatile %struct.SinObj*, %struct.SinObj** %main_local165_loc, align 8 | |
%_tailapp_anf_45bind64363410003_args = load volatile %struct.SinObj*, %struct.SinObj** %main_local171_loc, align 8 | |
%_tailapp_anf_45bind64363410003_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%_tailapp_anf_45bind64363410003_arg0 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_anf_45bind64363410003_fp, i64 2 | |
%_tailapp_anf_45bind64363410003_arg1 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_anf_45bind64363410003_fp, i64 3 | |
store volatile %struct.SinObj* %_tailapp_anf_45bind64363410003_clo, %struct.SinObj** %_tailapp_anf_45bind64363410003_arg0, align 8 | |
store volatile %struct.SinObj* %_tailapp_anf_45bind64363410003_args, %struct.SinObj** %_tailapp_anf_45bind64363410003_arg1, align 8 | |
%_tailapp_anf_45bind64363410003_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %_tailapp_anf_45bind64363410003_clo) | |
indirectbr i8* %_tailapp_anf_45bind64363410003_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
; Function main finished | |
clo646672: | |
%prologue_cur_fp10004 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646672_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10004, i64 2 | |
%clo646672_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10004, i64 3 | |
%clo646672_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10004, i64 6 | |
%clo646672_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10004, i64 5 | |
%clo646672_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10004, i64 4 | |
; End function Prologue | |
; Starting prim | |
%primtmp_$u64044810005_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646672_arg1_loc, align 8 | |
%primtmp_$u64044810005_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$u64044810005_arg_0) | |
store volatile %struct.SinObj* %primtmp_$u64044810005_val, %struct.SinObj** %clo646672_local0_loc, align 8 | |
; Starting const-null | |
%datnull_args646413$$u640448$010006_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646413$$u640448$010006_val, %struct.SinObj** %clo646672_local1_loc, align 8 | |
; Starting prim | |
%primtmp_args646413$$u640448$110007_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646672_local0_loc, align 8 | |
%primtmp_args646413$$u640448$110007_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646672_local1_loc, align 8 | |
%primtmp_args646413$$u640448$110007_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646413$$u640448$110007_arg_0, %struct.SinObj* %primtmp_args646413$$u640448$110007_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646413$$u640448$110007_val, %struct.SinObj** %clo646672_local2_loc, align 8 | |
; Starting tail-clo-app | |
%_tailapp_$u64044810008_clo = load volatile %struct.SinObj*, %struct.SinObj** %clo646672_local0_loc, align 8 | |
%_tailapp_$u64044810008_args = load volatile %struct.SinObj*, %struct.SinObj** %clo646672_local2_loc, align 8 | |
%_tailapp_$u64044810008_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%_tailapp_$u64044810008_arg0 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_$u64044810008_fp, i64 2 | |
%_tailapp_$u64044810008_arg1 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_$u64044810008_fp, i64 3 | |
store volatile %struct.SinObj* %_tailapp_$u64044810008_clo, %struct.SinObj** %_tailapp_$u64044810008_arg0, align 8 | |
store volatile %struct.SinObj* %_tailapp_$u64044810008_args, %struct.SinObj** %_tailapp_$u64044810008_arg1, align 8 | |
%_tailapp_$u64044810008_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %_tailapp_$u64044810008_clo) | |
indirectbr i8* %_tailapp_$u64044810008_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
; Function clo646672 finished | |
clo646671: | |
%prologue_cur_fp10009 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646671_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10009, i64 2 | |
%clo646671_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10009, i64 3 | |
%clo646671_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10009, i64 5 | |
%clo646671_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10009, i64 4 | |
; End function Prologue | |
; Starting prim | |
%primtmp_$y64044910010_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646671_arg1_loc, align 8 | |
%primtmp_$y64044910010_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$y64044910010_arg_0) | |
store volatile %struct.SinObj* %primtmp_$y64044910010_val, %struct.SinObj** %clo646671_local0_loc, align 8 | |
; Starting make-closure | |
%makeclo_admin_45toplevel_45bnd64655210011_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646671_local0_loc, align 8 | |
%makeclo_admin_45toplevel_45bnd64655210011_funcaddr = bitcast i8* blockaddress(@main, %clo646670) to i8* | |
%makeclo_admin_45toplevel_45bnd64655210011_val = call %struct.SinObj* @closure_alloc(i64 1, i8* %makeclo_admin_45toplevel_45bnd64655210011_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_admin_45toplevel_45bnd64655210011_val, %struct.SinObj* %makeclo_admin_45toplevel_45bnd64655210011_arg_0, i64 0) | |
store volatile %struct.SinObj* %makeclo_admin_45toplevel_45bnd64655210011_val, %struct.SinObj** %clo646671_local1_loc, align 8 | |
; Starting return value. | |
%retval_admin_45toplevel_45bnd64655210012_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646671_local1_loc, align 8 | |
store volatile %struct.SinObj* %retval_admin_45toplevel_45bnd64655210012_val, %struct.SinObj** @retr, align 8 | |
%retval_admin_45toplevel_45bnd64655210012_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_admin_45toplevel_45bnd64655210012_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_admin_45toplevel_45bnd64655210012_fp, align 8 | |
%retval_admin_45toplevel_45bnd64655210012_ra_raw = bitcast %struct.SinObj* %retval_admin_45toplevel_45bnd64655210012_ra to i8* | |
indirectbr i8* %retval_admin_45toplevel_45bnd64655210012_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646671 finished | |
clo646670: | |
%prologue_cur_fp10013 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646670_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10013, i64 2 | |
%clo646670_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10013, i64 3 | |
%clo646670_local4_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10013, i64 8 | |
%clo646670_local3_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10013, i64 7 | |
%clo646670_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10013, i64 6 | |
%clo646670_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10013, i64 5 | |
%clo646670_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10013, i64 4 | |
; End function Prologue | |
; Starting env-ref | |
%envref_$y64044910014_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$y64044910014_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$y64044910014_cur_fp, i64 2 | |
%envref_$y64044910014_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$y64044910014_cur_fp, align 8 | |
%envref_$y64044910014_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$y64044910014_clo, i64 0) | |
store volatile %struct.SinObj* %envref_$y64044910014_val, %struct.SinObj** %clo646670_local0_loc, align 8 | |
; Starting prim | |
%primtmp_$f64045010015_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646670_arg1_loc, align 8 | |
%primtmp_$f64045010015_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$f64045010015_arg_0) | |
store volatile %struct.SinObj* %primtmp_$f64045010015_val, %struct.SinObj** %clo646670_local1_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind64336210016_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646670_local0_loc, align 8 | |
%makeclo_anf_45bind64336210016_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646670_local1_loc, align 8 | |
%makeclo_anf_45bind64336210016_funcaddr = bitcast i8* blockaddress(@main, %clo646669) to i8* | |
%makeclo_anf_45bind64336210016_val = call %struct.SinObj* @closure_alloc(i64 2, i8* %makeclo_anf_45bind64336210016_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_anf_45bind64336210016_val, %struct.SinObj* %makeclo_anf_45bind64336210016_arg_0, i64 0) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_anf_45bind64336210016_val, %struct.SinObj* %makeclo_anf_45bind64336210016_arg_1, i64 1) | |
store volatile %struct.SinObj* %makeclo_anf_45bind64336210016_val, %struct.SinObj** %clo646670_local2_loc, align 8 | |
; Starting const-null | |
%datnull_args646418$$f640450$010017_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646418$$f640450$010017_val, %struct.SinObj** %clo646670_local3_loc, align 8 | |
; Starting prim | |
%primtmp_args646418$$f640450$110018_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646670_local2_loc, align 8 | |
%primtmp_args646418$$f640450$110018_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646670_local3_loc, align 8 | |
%primtmp_args646418$$f640450$110018_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646418$$f640450$110018_arg_0, %struct.SinObj* %primtmp_args646418$$f640450$110018_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646418$$f640450$110018_val, %struct.SinObj** %clo646670_local4_loc, align 8 | |
; Starting tail-clo-app | |
%_tailapp_$f64045010019_clo = load volatile %struct.SinObj*, %struct.SinObj** %clo646670_local1_loc, align 8 | |
%_tailapp_$f64045010019_args = load volatile %struct.SinObj*, %struct.SinObj** %clo646670_local4_loc, align 8 | |
%_tailapp_$f64045010019_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%_tailapp_$f64045010019_arg0 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_$f64045010019_fp, i64 2 | |
%_tailapp_$f64045010019_arg1 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_$f64045010019_fp, i64 3 | |
store volatile %struct.SinObj* %_tailapp_$f64045010019_clo, %struct.SinObj** %_tailapp_$f64045010019_arg0, align 8 | |
store volatile %struct.SinObj* %_tailapp_$f64045010019_args, %struct.SinObj** %_tailapp_$f64045010019_arg1, align 8 | |
%_tailapp_$f64045010019_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %_tailapp_$f64045010019_clo) | |
indirectbr i8* %_tailapp_$f64045010019_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
; Function clo646670 finished | |
clo646669: | |
%prologue_cur_fp10020 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646669_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10020, i64 2 | |
%clo646669_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10020, i64 3 | |
%clo646669_local7_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10020, i64 11 | |
%clo646669_local6_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10020, i64 10 | |
%clo646669_local5_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10020, i64 9 | |
%clo646669_local4_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10020, i64 8 | |
%clo646669_local3_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10020, i64 7 | |
%clo646669_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10020, i64 6 | |
%clo646669_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10020, i64 5 | |
%clo646669_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10020, i64 4 | |
; End function Prologue | |
; Starting env-ref | |
%envref_$y64044910021_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$y64044910021_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$y64044910021_cur_fp, i64 2 | |
%envref_$y64044910021_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$y64044910021_cur_fp, align 8 | |
%envref_$y64044910021_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$y64044910021_clo, i64 0) | |
store volatile %struct.SinObj* %envref_$y64044910021_val, %struct.SinObj** %clo646669_local0_loc, align 8 | |
; Starting env-ref | |
%envref_$f64045010022_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$f64045010022_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$f64045010022_cur_fp, i64 2 | |
%envref_$f64045010022_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$f64045010022_cur_fp, align 8 | |
%envref_$f64045010022_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$f64045010022_clo, i64 1) | |
store volatile %struct.SinObj* %envref_$f64045010022_val, %struct.SinObj** %clo646669_local1_loc, align 8 | |
; Starting const-null | |
%datnull_args646416$$y640449$010023_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646416$$y640449$010023_val, %struct.SinObj** %clo646669_local2_loc, align 8 | |
; Starting prim | |
%primtmp_args646416$$y640449$110024_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646669_local0_loc, align 8 | |
%primtmp_args646416$$y640449$110024_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646669_local2_loc, align 8 | |
%primtmp_args646416$$y640449$110024_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646416$$y640449$110024_arg_0, %struct.SinObj* %primtmp_args646416$$y640449$110024_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646416$$y640449$110024_val, %struct.SinObj** %clo646669_local3_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64336010025_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 12) | |
br i1 %bind_app_anf_45bind64336010025_has_space, label %bind_app_anf_45bind64336010025_do_call, label %bind_app_anf_45bind64336010025_overflow_first | |
bind_app_anf_45bind64336010025_overflow_first: | |
%bind_app_anf_45bind64336010025_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64336010025_overflow_underflow_addr, i64 12) | |
br label %bind_app_anf_45bind64336010025_do_call | |
bind_app_anf_45bind64336010025_do_call: | |
%bind_app_anf_45bind64336010025_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646669_local0_loc, align 8 | |
%bind_app_anf_45bind64336010025_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646669_local3_loc, align 8 | |
%bind_app_anf_45bind64336010025_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64336010025_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336010025_cur_fp, i64 12 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64336010025_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64336010025_return_loc = bitcast i8* blockaddress(@main, %clo646669_ret0) to %struct.SinObj* | |
%bind_app_anf_45bind64336010025_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336010025_new_fp, i64 1 | |
%bind_app_anf_45bind64336010025_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336010025_new_fp, i64 2 | |
%bind_app_anf_45bind64336010025_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336010025_new_fp, i64 3 | |
%bind_app_anf_45bind64336010025_slotscast = inttoptr i64 12 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64336010025_return_loc, %struct.SinObj** %bind_app_anf_45bind64336010025_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64336010025_slotscast, %struct.SinObj** %bind_app_anf_45bind64336010025_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64336010025_closure, %struct.SinObj** %bind_app_anf_45bind64336010025_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64336010025_arglist, %struct.SinObj** %bind_app_anf_45bind64336010025_newarg1loc, align 8 | |
%bind_app_anf_45bind64336010025_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64336010025_closure) | |
indirectbr i8* %bind_app_anf_45bind64336010025_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646669_ret0: | |
%bind_app_anf_45bind64336010025_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64336010025_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336010025_oldfp, i64 1 | |
%bind_app_anf_45bind64336010025_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336010025_slots_loc, align 8 | |
%bind_app_anf_45bind64336010025_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64336010025_slots_ptr to i64 | |
%bind_app_anf_45bind64336010025_offset = mul i64 %bind_app_anf_45bind64336010025_slots, -1 | |
%bind_app_anf_45bind64336010025_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336010025_oldfp, i64 %bind_app_anf_45bind64336010025_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64336010025_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643360 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643360, %struct.SinObj** %clo646669_local4_loc, align 8 | |
; Starting const-null | |
%datnull_args646417$anf_45bind643360$010026_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646417$anf_45bind643360$010026_val, %struct.SinObj** %clo646669_local5_loc, align 8 | |
; Starting prim | |
%primtmp_args646417$anf_45bind643360$110027_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646669_local1_loc, align 8 | |
%primtmp_args646417$anf_45bind643360$110027_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646669_local5_loc, align 8 | |
%primtmp_args646417$anf_45bind643360$110027_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646417$anf_45bind643360$110027_arg_0, %struct.SinObj* %primtmp_args646417$anf_45bind643360$110027_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646417$anf_45bind643360$110027_val, %struct.SinObj** %clo646669_local6_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64336110028_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 12) | |
br i1 %bind_app_anf_45bind64336110028_has_space, label %bind_app_anf_45bind64336110028_do_call, label %bind_app_anf_45bind64336110028_overflow_first | |
bind_app_anf_45bind64336110028_overflow_first: | |
%bind_app_anf_45bind64336110028_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64336110028_overflow_underflow_addr, i64 12) | |
br label %bind_app_anf_45bind64336110028_do_call | |
bind_app_anf_45bind64336110028_do_call: | |
%bind_app_anf_45bind64336110028_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646669_local4_loc, align 8 | |
%bind_app_anf_45bind64336110028_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646669_local6_loc, align 8 | |
%bind_app_anf_45bind64336110028_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64336110028_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336110028_cur_fp, i64 12 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64336110028_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64336110028_return_loc = bitcast i8* blockaddress(@main, %clo646669_ret1) to %struct.SinObj* | |
%bind_app_anf_45bind64336110028_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336110028_new_fp, i64 1 | |
%bind_app_anf_45bind64336110028_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336110028_new_fp, i64 2 | |
%bind_app_anf_45bind64336110028_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336110028_new_fp, i64 3 | |
%bind_app_anf_45bind64336110028_slotscast = inttoptr i64 12 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64336110028_return_loc, %struct.SinObj** %bind_app_anf_45bind64336110028_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64336110028_slotscast, %struct.SinObj** %bind_app_anf_45bind64336110028_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64336110028_closure, %struct.SinObj** %bind_app_anf_45bind64336110028_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64336110028_arglist, %struct.SinObj** %bind_app_anf_45bind64336110028_newarg1loc, align 8 | |
%bind_app_anf_45bind64336110028_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64336110028_closure) | |
indirectbr i8* %bind_app_anf_45bind64336110028_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646669_ret1: | |
%bind_app_anf_45bind64336110028_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64336110028_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336110028_oldfp, i64 1 | |
%bind_app_anf_45bind64336110028_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336110028_slots_loc, align 8 | |
%bind_app_anf_45bind64336110028_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64336110028_slots_ptr to i64 | |
%bind_app_anf_45bind64336110028_offset = mul i64 %bind_app_anf_45bind64336110028_slots, -1 | |
%bind_app_anf_45bind64336110028_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336110028_oldfp, i64 %bind_app_anf_45bind64336110028_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64336110028_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643361 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643361, %struct.SinObj** %clo646669_local7_loc, align 8 | |
; Starting tail-clo-app | |
%_tailapp_anf_45bind64336110029_clo = load volatile %struct.SinObj*, %struct.SinObj** %clo646669_local7_loc, align 8 | |
%_tailapp_anf_45bind64336110029_args = load volatile %struct.SinObj*, %struct.SinObj** %clo646669_arg1_loc, align 8 | |
%_tailapp_anf_45bind64336110029_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%_tailapp_anf_45bind64336110029_arg0 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_anf_45bind64336110029_fp, i64 2 | |
%_tailapp_anf_45bind64336110029_arg1 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_anf_45bind64336110029_fp, i64 3 | |
store volatile %struct.SinObj* %_tailapp_anf_45bind64336110029_clo, %struct.SinObj** %_tailapp_anf_45bind64336110029_arg0, align 8 | |
store volatile %struct.SinObj* %_tailapp_anf_45bind64336110029_args, %struct.SinObj** %_tailapp_anf_45bind64336110029_arg1, align 8 | |
%_tailapp_anf_45bind64336110029_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %_tailapp_anf_45bind64336110029_clo) | |
indirectbr i8* %_tailapp_anf_45bind64336110029_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
; Function clo646669 finished | |
clo646668: | |
%prologue_cur_fp10030 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646668_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10030, i64 2 | |
%clo646668_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10030, i64 3 | |
%clo646668_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10030, i64 5 | |
%clo646668_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10030, i64 4 | |
; End function Prologue | |
; Starting prim | |
%primtmp_$map64045310031_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646668_arg1_loc, align 8 | |
%primtmp_$map64045310031_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$map64045310031_arg_0) | |
store volatile %struct.SinObj* %primtmp_$map64045310031_val, %struct.SinObj** %clo646668_local0_loc, align 8 | |
; Starting make-closure | |
%makeclo_admin_45toplevel_45bnd64655310032_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646668_local0_loc, align 8 | |
%makeclo_admin_45toplevel_45bnd64655310032_funcaddr = bitcast i8* blockaddress(@main, %clo646667) to i8* | |
%makeclo_admin_45toplevel_45bnd64655310032_val = call %struct.SinObj* @closure_alloc(i64 1, i8* %makeclo_admin_45toplevel_45bnd64655310032_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_admin_45toplevel_45bnd64655310032_val, %struct.SinObj* %makeclo_admin_45toplevel_45bnd64655310032_arg_0, i64 0) | |
store volatile %struct.SinObj* %makeclo_admin_45toplevel_45bnd64655310032_val, %struct.SinObj** %clo646668_local1_loc, align 8 | |
; Starting return value. | |
%retval_admin_45toplevel_45bnd64655310033_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646668_local1_loc, align 8 | |
store volatile %struct.SinObj* %retval_admin_45toplevel_45bnd64655310033_val, %struct.SinObj** @retr, align 8 | |
%retval_admin_45toplevel_45bnd64655310033_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_admin_45toplevel_45bnd64655310033_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_admin_45toplevel_45bnd64655310033_fp, align 8 | |
%retval_admin_45toplevel_45bnd64655310033_ra_raw = bitcast %struct.SinObj* %retval_admin_45toplevel_45bnd64655310033_ra to i8* | |
indirectbr i8* %retval_admin_45toplevel_45bnd64655310033_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646668 finished | |
clo646667: | |
%prologue_cur_fp10034 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646667_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10034, i64 2 | |
%clo646667_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10034, i64 3 | |
%clo646667_local16_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10034, i64 20 | |
%clo646667_local15_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10034, i64 19 | |
%clo646667_local14_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10034, i64 18 | |
%clo646667_local13_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10034, i64 17 | |
%clo646667_local12_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10034, i64 16 | |
%clo646667_local11_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10034, i64 15 | |
%clo646667_local10_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10034, i64 14 | |
%clo646667_local9_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10034, i64 13 | |
%clo646667_local8_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10034, i64 12 | |
%clo646667_local7_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10034, i64 11 | |
%clo646667_local6_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10034, i64 10 | |
%clo646667_local5_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10034, i64 9 | |
%clo646667_local4_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10034, i64 8 | |
%clo646667_local3_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10034, i64 7 | |
%clo646667_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10034, i64 6 | |
%clo646667_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10034, i64 5 | |
%clo646667_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10034, i64 4 | |
; End function Prologue | |
; Starting env-ref | |
%envref_$map64045310035_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$map64045310035_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$map64045310035_cur_fp, i64 2 | |
%envref_$map64045310035_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$map64045310035_cur_fp, align 8 | |
%envref_$map64045310035_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$map64045310035_clo, i64 0) | |
store volatile %struct.SinObj* %envref_$map64045310035_val, %struct.SinObj** %clo646667_local0_loc, align 8 | |
; Starting prim | |
%primtmp_$f64045410036_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_arg1_loc, align 8 | |
%primtmp_$f64045410036_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$f64045410036_arg_0) | |
store volatile %struct.SinObj* %primtmp_$f64045410036_val, %struct.SinObj** %clo646667_local1_loc, align 8 | |
; Starting prim | |
%primtmp_arglist646421110037_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_arg1_loc, align 8 | |
%primtmp_arglist646421110037_val = call %struct.SinObj* @prim_cdr(%struct.SinObj* %primtmp_arglist646421110037_arg_0) | |
store volatile %struct.SinObj* %primtmp_arglist646421110037_val, %struct.SinObj** %clo646667_local2_loc, align 8 | |
; Starting prim | |
%primtmp_$xs64045510038_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_local2_loc, align 8 | |
%primtmp_$xs64045510038_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$xs64045510038_arg_0) | |
store volatile %struct.SinObj* %primtmp_$xs64045510038_val, %struct.SinObj** %clo646667_local3_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind64336410039_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_local3_loc, align 8 | |
%primtmp_anf_45bind64336410039_val = call %struct.SinObj* @prim_null_63(%struct.SinObj* %primtmp_anf_45bind64336410039_arg_0) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64336410039_val, %struct.SinObj** %clo646667_local4_loc, align 8 | |
; Starting if | |
%if10040_reg = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_local4_loc, align 8 | |
%if10040istrue = call i1 @is_truthy_value(%struct.SinObj* %if10040_reg) | |
br i1 %if10040istrue, label %branch9791_45true, label %branch9791_45false | |
branch9791_45true: | |
; Starting make-closure | |
%makeclo_anf_45bind64336510041_funcaddr = bitcast i8* blockaddress(@main, %clo646666) to i8* | |
%makeclo_anf_45bind64336510041_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind64336510041_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind64336510041_val, %struct.SinObj** %clo646667_local5_loc, align 8 | |
; Starting const-null | |
%datnull_args646422$anf_45bind643365$010042_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646422$anf_45bind643365$010042_val, %struct.SinObj** %clo646667_local6_loc, align 8 | |
; Starting tail-clo-app | |
%_tailapp_anf_45bind64336510043_clo = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_local5_loc, align 8 | |
%_tailapp_anf_45bind64336510043_args = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_local6_loc, align 8 | |
%_tailapp_anf_45bind64336510043_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%_tailapp_anf_45bind64336510043_arg0 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_anf_45bind64336510043_fp, i64 2 | |
%_tailapp_anf_45bind64336510043_arg1 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_anf_45bind64336510043_fp, i64 3 | |
store volatile %struct.SinObj* %_tailapp_anf_45bind64336510043_clo, %struct.SinObj** %_tailapp_anf_45bind64336510043_arg0, align 8 | |
store volatile %struct.SinObj* %_tailapp_anf_45bind64336510043_args, %struct.SinObj** %_tailapp_anf_45bind64336510043_arg1, align 8 | |
%_tailapp_anf_45bind64336510043_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %_tailapp_anf_45bind64336510043_clo) | |
indirectbr i8* %_tailapp_anf_45bind64336510043_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
branch9791_45false: | |
; Starting prim | |
%primtmp_anf_45bind64336610044_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_local3_loc, align 8 | |
%primtmp_anf_45bind64336610044_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_anf_45bind64336610044_arg_0) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64336610044_val, %struct.SinObj** %clo646667_local7_loc, align 8 | |
; Starting const-null | |
%datnull_args646423$$f640454$010045_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646423$$f640454$010045_val, %struct.SinObj** %clo646667_local8_loc, align 8 | |
; Starting prim | |
%primtmp_args646423$$f640454$110046_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_local7_loc, align 8 | |
%primtmp_args646423$$f640454$110046_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_local8_loc, align 8 | |
%primtmp_args646423$$f640454$110046_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646423$$f640454$110046_arg_0, %struct.SinObj* %primtmp_args646423$$f640454$110046_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646423$$f640454$110046_val, %struct.SinObj** %clo646667_local9_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64336710047_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 21) | |
br i1 %bind_app_anf_45bind64336710047_has_space, label %bind_app_anf_45bind64336710047_do_call, label %bind_app_anf_45bind64336710047_overflow_first | |
bind_app_anf_45bind64336710047_overflow_first: | |
%bind_app_anf_45bind64336710047_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64336710047_overflow_underflow_addr, i64 21) | |
br label %bind_app_anf_45bind64336710047_do_call | |
bind_app_anf_45bind64336710047_do_call: | |
%bind_app_anf_45bind64336710047_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_local1_loc, align 8 | |
%bind_app_anf_45bind64336710047_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_local9_loc, align 8 | |
%bind_app_anf_45bind64336710047_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64336710047_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336710047_cur_fp, i64 21 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64336710047_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64336710047_return_loc = bitcast i8* blockaddress(@main, %clo646667_ret0) to %struct.SinObj* | |
%bind_app_anf_45bind64336710047_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336710047_new_fp, i64 1 | |
%bind_app_anf_45bind64336710047_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336710047_new_fp, i64 2 | |
%bind_app_anf_45bind64336710047_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336710047_new_fp, i64 3 | |
%bind_app_anf_45bind64336710047_slotscast = inttoptr i64 21 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64336710047_return_loc, %struct.SinObj** %bind_app_anf_45bind64336710047_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64336710047_slotscast, %struct.SinObj** %bind_app_anf_45bind64336710047_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64336710047_closure, %struct.SinObj** %bind_app_anf_45bind64336710047_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64336710047_arglist, %struct.SinObj** %bind_app_anf_45bind64336710047_newarg1loc, align 8 | |
%bind_app_anf_45bind64336710047_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64336710047_closure) | |
indirectbr i8* %bind_app_anf_45bind64336710047_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646667_ret0: | |
%bind_app_anf_45bind64336710047_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64336710047_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336710047_oldfp, i64 1 | |
%bind_app_anf_45bind64336710047_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336710047_slots_loc, align 8 | |
%bind_app_anf_45bind64336710047_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64336710047_slots_ptr to i64 | |
%bind_app_anf_45bind64336710047_offset = mul i64 %bind_app_anf_45bind64336710047_slots, -1 | |
%bind_app_anf_45bind64336710047_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336710047_oldfp, i64 %bind_app_anf_45bind64336710047_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64336710047_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643367 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643367, %struct.SinObj** %clo646667_local10_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind64336810048_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_local3_loc, align 8 | |
%primtmp_anf_45bind64336810048_val = call %struct.SinObj* @prim_cdr(%struct.SinObj* %primtmp_anf_45bind64336810048_arg_0) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64336810048_val, %struct.SinObj** %clo646667_local11_loc, align 8 | |
; Starting const-null | |
%datnull_args646424$$map640453$010049_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646424$$map640453$010049_val, %struct.SinObj** %clo646667_local12_loc, align 8 | |
; Starting prim | |
%primtmp_args646424$$map640453$110050_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_local11_loc, align 8 | |
%primtmp_args646424$$map640453$110050_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_local12_loc, align 8 | |
%primtmp_args646424$$map640453$110050_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646424$$map640453$110050_arg_0, %struct.SinObj* %primtmp_args646424$$map640453$110050_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646424$$map640453$110050_val, %struct.SinObj** %clo646667_local13_loc, align 8 | |
; Starting prim | |
%primtmp_args646424$$map640453$210051_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_local1_loc, align 8 | |
%primtmp_args646424$$map640453$210051_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_local13_loc, align 8 | |
%primtmp_args646424$$map640453$210051_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646424$$map640453$210051_arg_0, %struct.SinObj* %primtmp_args646424$$map640453$210051_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646424$$map640453$210051_val, %struct.SinObj** %clo646667_local14_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64336910052_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 21) | |
br i1 %bind_app_anf_45bind64336910052_has_space, label %bind_app_anf_45bind64336910052_do_call, label %bind_app_anf_45bind64336910052_overflow_first | |
bind_app_anf_45bind64336910052_overflow_first: | |
%bind_app_anf_45bind64336910052_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64336910052_overflow_underflow_addr, i64 21) | |
br label %bind_app_anf_45bind64336910052_do_call | |
bind_app_anf_45bind64336910052_do_call: | |
%bind_app_anf_45bind64336910052_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_local0_loc, align 8 | |
%bind_app_anf_45bind64336910052_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_local14_loc, align 8 | |
%bind_app_anf_45bind64336910052_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64336910052_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336910052_cur_fp, i64 21 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64336910052_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64336910052_return_loc = bitcast i8* blockaddress(@main, %clo646667_ret1) to %struct.SinObj* | |
%bind_app_anf_45bind64336910052_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336910052_new_fp, i64 1 | |
%bind_app_anf_45bind64336910052_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336910052_new_fp, i64 2 | |
%bind_app_anf_45bind64336910052_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336910052_new_fp, i64 3 | |
%bind_app_anf_45bind64336910052_slotscast = inttoptr i64 21 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64336910052_return_loc, %struct.SinObj** %bind_app_anf_45bind64336910052_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64336910052_slotscast, %struct.SinObj** %bind_app_anf_45bind64336910052_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64336910052_closure, %struct.SinObj** %bind_app_anf_45bind64336910052_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64336910052_arglist, %struct.SinObj** %bind_app_anf_45bind64336910052_newarg1loc, align 8 | |
%bind_app_anf_45bind64336910052_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64336910052_closure) | |
indirectbr i8* %bind_app_anf_45bind64336910052_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646667_ret1: | |
%bind_app_anf_45bind64336910052_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64336910052_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336910052_oldfp, i64 1 | |
%bind_app_anf_45bind64336910052_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336910052_slots_loc, align 8 | |
%bind_app_anf_45bind64336910052_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64336910052_slots_ptr to i64 | |
%bind_app_anf_45bind64336910052_offset = mul i64 %bind_app_anf_45bind64336910052_slots, -1 | |
%bind_app_anf_45bind64336910052_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64336910052_oldfp, i64 %bind_app_anf_45bind64336910052_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64336910052_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643369 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643369, %struct.SinObj** %clo646667_local15_loc, align 8 | |
; Starting prim | |
%primtmp_admin_45toplevel_45bnd64655410053_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_local10_loc, align 8 | |
%primtmp_admin_45toplevel_45bnd64655410053_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_local15_loc, align 8 | |
%primtmp_admin_45toplevel_45bnd64655410053_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_admin_45toplevel_45bnd64655410053_arg_0, %struct.SinObj* %primtmp_admin_45toplevel_45bnd64655410053_arg_1) | |
store volatile %struct.SinObj* %primtmp_admin_45toplevel_45bnd64655410053_val, %struct.SinObj** %clo646667_local16_loc, align 8 | |
; Starting return value. | |
%retval_admin_45toplevel_45bnd64655410054_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646667_local16_loc, align 8 | |
store volatile %struct.SinObj* %retval_admin_45toplevel_45bnd64655410054_val, %struct.SinObj** @retr, align 8 | |
%retval_admin_45toplevel_45bnd64655410054_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_admin_45toplevel_45bnd64655410054_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_admin_45toplevel_45bnd64655410054_fp, align 8 | |
%retval_admin_45toplevel_45bnd64655410054_ra_raw = bitcast %struct.SinObj* %retval_admin_45toplevel_45bnd64655410054_ra to i8* | |
indirectbr i8* %retval_admin_45toplevel_45bnd64655410054_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646667 finished | |
clo646666: | |
%prologue_cur_fp10055 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646666_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10055, i64 2 | |
%clo646666_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10055, i64 3 | |
; End function Prologue | |
; Starting return value. | |
%retval_xs64045610056_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646666_arg1_loc, align 8 | |
store volatile %struct.SinObj* %retval_xs64045610056_val, %struct.SinObj** @retr, align 8 | |
%retval_xs64045610056_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_xs64045610056_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_xs64045610056_fp, align 8 | |
%retval_xs64045610056_ra_raw = bitcast %struct.SinObj* %retval_xs64045610056_ra to i8* | |
indirectbr i8* %retval_xs64045610056_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646666 finished | |
clo646665: | |
%prologue_cur_fp10057 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646665_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10057, i64 2 | |
%clo646665_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10057, i64 3 | |
%clo646665_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10057, i64 5 | |
%clo646665_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10057, i64 4 | |
; End function Prologue | |
; Starting prim | |
%primtmp_$foldl64045810058_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646665_arg1_loc, align 8 | |
%primtmp_$foldl64045810058_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$foldl64045810058_arg_0) | |
store volatile %struct.SinObj* %primtmp_$foldl64045810058_val, %struct.SinObj** %clo646665_local0_loc, align 8 | |
; Starting make-closure | |
%makeclo_admin_45toplevel_45bnd64655510059_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646665_local0_loc, align 8 | |
%makeclo_admin_45toplevel_45bnd64655510059_funcaddr = bitcast i8* blockaddress(@main, %clo646664) to i8* | |
%makeclo_admin_45toplevel_45bnd64655510059_val = call %struct.SinObj* @closure_alloc(i64 1, i8* %makeclo_admin_45toplevel_45bnd64655510059_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_admin_45toplevel_45bnd64655510059_val, %struct.SinObj* %makeclo_admin_45toplevel_45bnd64655510059_arg_0, i64 0) | |
store volatile %struct.SinObj* %makeclo_admin_45toplevel_45bnd64655510059_val, %struct.SinObj** %clo646665_local1_loc, align 8 | |
; Starting return value. | |
%retval_admin_45toplevel_45bnd64655510060_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646665_local1_loc, align 8 | |
store volatile %struct.SinObj* %retval_admin_45toplevel_45bnd64655510060_val, %struct.SinObj** @retr, align 8 | |
%retval_admin_45toplevel_45bnd64655510060_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_admin_45toplevel_45bnd64655510060_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_admin_45toplevel_45bnd64655510060_fp, align 8 | |
%retval_admin_45toplevel_45bnd64655510060_ra_raw = bitcast %struct.SinObj* %retval_admin_45toplevel_45bnd64655510060_ra to i8* | |
indirectbr i8* %retval_admin_45toplevel_45bnd64655510060_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646665 finished | |
clo646664: | |
%prologue_cur_fp10061 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646664_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10061, i64 2 | |
%clo646664_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10061, i64 3 | |
%clo646664_local16_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10061, i64 20 | |
%clo646664_local15_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10061, i64 19 | |
%clo646664_local14_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10061, i64 18 | |
%clo646664_local13_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10061, i64 17 | |
%clo646664_local12_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10061, i64 16 | |
%clo646664_local11_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10061, i64 15 | |
%clo646664_local10_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10061, i64 14 | |
%clo646664_local9_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10061, i64 13 | |
%clo646664_local8_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10061, i64 12 | |
%clo646664_local7_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10061, i64 11 | |
%clo646664_local6_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10061, i64 10 | |
%clo646664_local5_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10061, i64 9 | |
%clo646664_local4_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10061, i64 8 | |
%clo646664_local3_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10061, i64 7 | |
%clo646664_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10061, i64 6 | |
%clo646664_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10061, i64 5 | |
%clo646664_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10061, i64 4 | |
; End function Prologue | |
; Starting env-ref | |
%envref_$foldl64045810062_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$foldl64045810062_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$foldl64045810062_cur_fp, i64 2 | |
%envref_$foldl64045810062_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$foldl64045810062_cur_fp, align 8 | |
%envref_$foldl64045810062_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$foldl64045810062_clo, i64 0) | |
store volatile %struct.SinObj* %envref_$foldl64045810062_val, %struct.SinObj** %clo646664_local0_loc, align 8 | |
; Starting prim | |
%primtmp_$f64045910063_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_arg1_loc, align 8 | |
%primtmp_$f64045910063_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$f64045910063_arg_0) | |
store volatile %struct.SinObj* %primtmp_$f64045910063_val, %struct.SinObj** %clo646664_local1_loc, align 8 | |
; Starting prim | |
%primtmp_arglist646427110064_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_arg1_loc, align 8 | |
%primtmp_arglist646427110064_val = call %struct.SinObj* @prim_cdr(%struct.SinObj* %primtmp_arglist646427110064_arg_0) | |
store volatile %struct.SinObj* %primtmp_arglist646427110064_val, %struct.SinObj** %clo646664_local2_loc, align 8 | |
; Starting prim | |
%primtmp_$acc64046010065_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local2_loc, align 8 | |
%primtmp_$acc64046010065_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$acc64046010065_arg_0) | |
store volatile %struct.SinObj* %primtmp_$acc64046010065_val, %struct.SinObj** %clo646664_local3_loc, align 8 | |
; Starting prim | |
%primtmp_arglist646427210066_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local2_loc, align 8 | |
%primtmp_arglist646427210066_val = call %struct.SinObj* @prim_cdr(%struct.SinObj* %primtmp_arglist646427210066_arg_0) | |
store volatile %struct.SinObj* %primtmp_arglist646427210066_val, %struct.SinObj** %clo646664_local4_loc, align 8 | |
; Starting prim | |
%primtmp_$xs64046110067_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local4_loc, align 8 | |
%primtmp_$xs64046110067_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$xs64046110067_arg_0) | |
store volatile %struct.SinObj* %primtmp_$xs64046110067_val, %struct.SinObj** %clo646664_local5_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind64337110068_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local5_loc, align 8 | |
%primtmp_anf_45bind64337110068_val = call %struct.SinObj* @prim_null_63(%struct.SinObj* %primtmp_anf_45bind64337110068_arg_0) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64337110068_val, %struct.SinObj** %clo646664_local6_loc, align 8 | |
; Starting if | |
%if10069_reg = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local6_loc, align 8 | |
%if10069istrue = call i1 @is_truthy_value(%struct.SinObj* %if10069_reg) | |
br i1 %if10069istrue, label %branch9792_45true, label %branch9792_45false | |
branch9792_45true: | |
; Starting return value. | |
%retval_$acc64046010070_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local3_loc, align 8 | |
store volatile %struct.SinObj* %retval_$acc64046010070_val, %struct.SinObj** @retr, align 8 | |
%retval_$acc64046010070_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_$acc64046010070_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_$acc64046010070_fp, align 8 | |
%retval_$acc64046010070_ra_raw = bitcast %struct.SinObj* %retval_$acc64046010070_ra to i8* | |
indirectbr i8* %retval_$acc64046010070_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
branch9792_45false: | |
; Starting prim | |
%primtmp_anf_45bind64337210071_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local5_loc, align 8 | |
%primtmp_anf_45bind64337210071_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_anf_45bind64337210071_arg_0) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64337210071_val, %struct.SinObj** %clo646664_local7_loc, align 8 | |
; Starting const-null | |
%datnull_args646428$$f640459$010072_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646428$$f640459$010072_val, %struct.SinObj** %clo646664_local8_loc, align 8 | |
; Starting prim | |
%primtmp_args646428$$f640459$110073_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local3_loc, align 8 | |
%primtmp_args646428$$f640459$110073_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local8_loc, align 8 | |
%primtmp_args646428$$f640459$110073_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646428$$f640459$110073_arg_0, %struct.SinObj* %primtmp_args646428$$f640459$110073_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646428$$f640459$110073_val, %struct.SinObj** %clo646664_local9_loc, align 8 | |
; Starting prim | |
%primtmp_args646428$$f640459$210074_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local7_loc, align 8 | |
%primtmp_args646428$$f640459$210074_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local9_loc, align 8 | |
%primtmp_args646428$$f640459$210074_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646428$$f640459$210074_arg_0, %struct.SinObj* %primtmp_args646428$$f640459$210074_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646428$$f640459$210074_val, %struct.SinObj** %clo646664_local10_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64337310075_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 21) | |
br i1 %bind_app_anf_45bind64337310075_has_space, label %bind_app_anf_45bind64337310075_do_call, label %bind_app_anf_45bind64337310075_overflow_first | |
bind_app_anf_45bind64337310075_overflow_first: | |
%bind_app_anf_45bind64337310075_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64337310075_overflow_underflow_addr, i64 21) | |
br label %bind_app_anf_45bind64337310075_do_call | |
bind_app_anf_45bind64337310075_do_call: | |
%bind_app_anf_45bind64337310075_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local1_loc, align 8 | |
%bind_app_anf_45bind64337310075_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local10_loc, align 8 | |
%bind_app_anf_45bind64337310075_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64337310075_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64337310075_cur_fp, i64 21 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64337310075_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64337310075_return_loc = bitcast i8* blockaddress(@main, %clo646664_ret0) to %struct.SinObj* | |
%bind_app_anf_45bind64337310075_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64337310075_new_fp, i64 1 | |
%bind_app_anf_45bind64337310075_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64337310075_new_fp, i64 2 | |
%bind_app_anf_45bind64337310075_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64337310075_new_fp, i64 3 | |
%bind_app_anf_45bind64337310075_slotscast = inttoptr i64 21 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64337310075_return_loc, %struct.SinObj** %bind_app_anf_45bind64337310075_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64337310075_slotscast, %struct.SinObj** %bind_app_anf_45bind64337310075_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64337310075_closure, %struct.SinObj** %bind_app_anf_45bind64337310075_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64337310075_arglist, %struct.SinObj** %bind_app_anf_45bind64337310075_newarg1loc, align 8 | |
%bind_app_anf_45bind64337310075_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64337310075_closure) | |
indirectbr i8* %bind_app_anf_45bind64337310075_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646664_ret0: | |
%bind_app_anf_45bind64337310075_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64337310075_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64337310075_oldfp, i64 1 | |
%bind_app_anf_45bind64337310075_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64337310075_slots_loc, align 8 | |
%bind_app_anf_45bind64337310075_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64337310075_slots_ptr to i64 | |
%bind_app_anf_45bind64337310075_offset = mul i64 %bind_app_anf_45bind64337310075_slots, -1 | |
%bind_app_anf_45bind64337310075_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64337310075_oldfp, i64 %bind_app_anf_45bind64337310075_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64337310075_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643373 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643373, %struct.SinObj** %clo646664_local11_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind64337410076_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local5_loc, align 8 | |
%primtmp_anf_45bind64337410076_val = call %struct.SinObj* @prim_cdr(%struct.SinObj* %primtmp_anf_45bind64337410076_arg_0) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64337410076_val, %struct.SinObj** %clo646664_local12_loc, align 8 | |
; Starting const-null | |
%datnull_args646429$$foldl640458$010077_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646429$$foldl640458$010077_val, %struct.SinObj** %clo646664_local13_loc, align 8 | |
; Starting prim | |
%primtmp_args646429$$foldl640458$110078_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local12_loc, align 8 | |
%primtmp_args646429$$foldl640458$110078_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local13_loc, align 8 | |
%primtmp_args646429$$foldl640458$110078_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646429$$foldl640458$110078_arg_0, %struct.SinObj* %primtmp_args646429$$foldl640458$110078_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646429$$foldl640458$110078_val, %struct.SinObj** %clo646664_local14_loc, align 8 | |
; Starting prim | |
%primtmp_args646429$$foldl640458$210079_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local11_loc, align 8 | |
%primtmp_args646429$$foldl640458$210079_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local14_loc, align 8 | |
%primtmp_args646429$$foldl640458$210079_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646429$$foldl640458$210079_arg_0, %struct.SinObj* %primtmp_args646429$$foldl640458$210079_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646429$$foldl640458$210079_val, %struct.SinObj** %clo646664_local15_loc, align 8 | |
; Starting prim | |
%primtmp_args646429$$foldl640458$310080_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local1_loc, align 8 | |
%primtmp_args646429$$foldl640458$310080_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local15_loc, align 8 | |
%primtmp_args646429$$foldl640458$310080_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646429$$foldl640458$310080_arg_0, %struct.SinObj* %primtmp_args646429$$foldl640458$310080_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646429$$foldl640458$310080_val, %struct.SinObj** %clo646664_local16_loc, align 8 | |
; Starting tail-clo-app | |
%_tailapp_$foldl64045810081_clo = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local0_loc, align 8 | |
%_tailapp_$foldl64045810081_args = load volatile %struct.SinObj*, %struct.SinObj** %clo646664_local16_loc, align 8 | |
%_tailapp_$foldl64045810081_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%_tailapp_$foldl64045810081_arg0 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_$foldl64045810081_fp, i64 2 | |
%_tailapp_$foldl64045810081_arg1 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_$foldl64045810081_fp, i64 3 | |
store volatile %struct.SinObj* %_tailapp_$foldl64045810081_clo, %struct.SinObj** %_tailapp_$foldl64045810081_arg0, align 8 | |
store volatile %struct.SinObj* %_tailapp_$foldl64045810081_args, %struct.SinObj** %_tailapp_$foldl64045810081_arg1, align 8 | |
%_tailapp_$foldl64045810081_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %_tailapp_$foldl64045810081_clo) | |
indirectbr i8* %_tailapp_$foldl64045810081_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
; Function clo646664 finished | |
clo646663: | |
%prologue_cur_fp10082 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646663_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10082, i64 2 | |
%clo646663_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10082, i64 3 | |
%clo646663_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10082, i64 5 | |
%clo646663_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10082, i64 4 | |
; End function Prologue | |
; Starting prim | |
%primtmp_$foldr64046310083_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646663_arg1_loc, align 8 | |
%primtmp_$foldr64046310083_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$foldr64046310083_arg_0) | |
store volatile %struct.SinObj* %primtmp_$foldr64046310083_val, %struct.SinObj** %clo646663_local0_loc, align 8 | |
; Starting make-closure | |
%makeclo_admin_45toplevel_45bnd64655610084_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646663_local0_loc, align 8 | |
%makeclo_admin_45toplevel_45bnd64655610084_funcaddr = bitcast i8* blockaddress(@main, %clo646662) to i8* | |
%makeclo_admin_45toplevel_45bnd64655610084_val = call %struct.SinObj* @closure_alloc(i64 1, i8* %makeclo_admin_45toplevel_45bnd64655610084_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_admin_45toplevel_45bnd64655610084_val, %struct.SinObj* %makeclo_admin_45toplevel_45bnd64655610084_arg_0, i64 0) | |
store volatile %struct.SinObj* %makeclo_admin_45toplevel_45bnd64655610084_val, %struct.SinObj** %clo646663_local1_loc, align 8 | |
; Starting return value. | |
%retval_admin_45toplevel_45bnd64655610085_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646663_local1_loc, align 8 | |
store volatile %struct.SinObj* %retval_admin_45toplevel_45bnd64655610085_val, %struct.SinObj** @retr, align 8 | |
%retval_admin_45toplevel_45bnd64655610085_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_admin_45toplevel_45bnd64655610085_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_admin_45toplevel_45bnd64655610085_fp, align 8 | |
%retval_admin_45toplevel_45bnd64655610085_ra_raw = bitcast %struct.SinObj* %retval_admin_45toplevel_45bnd64655610085_ra to i8* | |
indirectbr i8* %retval_admin_45toplevel_45bnd64655610085_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646663 finished | |
clo646662: | |
%prologue_cur_fp10086 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646662_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10086, i64 2 | |
%clo646662_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10086, i64 3 | |
%clo646662_local16_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10086, i64 20 | |
%clo646662_local15_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10086, i64 19 | |
%clo646662_local14_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10086, i64 18 | |
%clo646662_local13_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10086, i64 17 | |
%clo646662_local12_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10086, i64 16 | |
%clo646662_local11_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10086, i64 15 | |
%clo646662_local10_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10086, i64 14 | |
%clo646662_local9_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10086, i64 13 | |
%clo646662_local8_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10086, i64 12 | |
%clo646662_local7_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10086, i64 11 | |
%clo646662_local6_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10086, i64 10 | |
%clo646662_local5_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10086, i64 9 | |
%clo646662_local4_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10086, i64 8 | |
%clo646662_local3_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10086, i64 7 | |
%clo646662_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10086, i64 6 | |
%clo646662_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10086, i64 5 | |
%clo646662_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10086, i64 4 | |
; End function Prologue | |
; Starting env-ref | |
%envref_$foldr64046310087_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$foldr64046310087_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$foldr64046310087_cur_fp, i64 2 | |
%envref_$foldr64046310087_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$foldr64046310087_cur_fp, align 8 | |
%envref_$foldr64046310087_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$foldr64046310087_clo, i64 0) | |
store volatile %struct.SinObj* %envref_$foldr64046310087_val, %struct.SinObj** %clo646662_local0_loc, align 8 | |
; Starting prim | |
%primtmp_$f64046410088_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_arg1_loc, align 8 | |
%primtmp_$f64046410088_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$f64046410088_arg_0) | |
store volatile %struct.SinObj* %primtmp_$f64046410088_val, %struct.SinObj** %clo646662_local1_loc, align 8 | |
; Starting prim | |
%primtmp_arglist646432110089_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_arg1_loc, align 8 | |
%primtmp_arglist646432110089_val = call %struct.SinObj* @prim_cdr(%struct.SinObj* %primtmp_arglist646432110089_arg_0) | |
store volatile %struct.SinObj* %primtmp_arglist646432110089_val, %struct.SinObj** %clo646662_local2_loc, align 8 | |
; Starting prim | |
%primtmp_$acc64046510090_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local2_loc, align 8 | |
%primtmp_$acc64046510090_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$acc64046510090_arg_0) | |
store volatile %struct.SinObj* %primtmp_$acc64046510090_val, %struct.SinObj** %clo646662_local3_loc, align 8 | |
; Starting prim | |
%primtmp_arglist646432210091_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local2_loc, align 8 | |
%primtmp_arglist646432210091_val = call %struct.SinObj* @prim_cdr(%struct.SinObj* %primtmp_arglist646432210091_arg_0) | |
store volatile %struct.SinObj* %primtmp_arglist646432210091_val, %struct.SinObj** %clo646662_local4_loc, align 8 | |
; Starting prim | |
%primtmp_$xs64046610092_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local4_loc, align 8 | |
%primtmp_$xs64046610092_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$xs64046610092_arg_0) | |
store volatile %struct.SinObj* %primtmp_$xs64046610092_val, %struct.SinObj** %clo646662_local5_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind64337610093_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local5_loc, align 8 | |
%primtmp_anf_45bind64337610093_val = call %struct.SinObj* @prim_null_63(%struct.SinObj* %primtmp_anf_45bind64337610093_arg_0) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64337610093_val, %struct.SinObj** %clo646662_local6_loc, align 8 | |
; Starting if | |
%if10094_reg = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local6_loc, align 8 | |
%if10094istrue = call i1 @is_truthy_value(%struct.SinObj* %if10094_reg) | |
br i1 %if10094istrue, label %branch9793_45true, label %branch9793_45false | |
branch9793_45true: | |
; Starting return value. | |
%retval_$acc64046510095_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local3_loc, align 8 | |
store volatile %struct.SinObj* %retval_$acc64046510095_val, %struct.SinObj** @retr, align 8 | |
%retval_$acc64046510095_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_$acc64046510095_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_$acc64046510095_fp, align 8 | |
%retval_$acc64046510095_ra_raw = bitcast %struct.SinObj* %retval_$acc64046510095_ra to i8* | |
indirectbr i8* %retval_$acc64046510095_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
branch9793_45false: | |
; Starting prim | |
%primtmp_anf_45bind64337710096_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local5_loc, align 8 | |
%primtmp_anf_45bind64337710096_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_anf_45bind64337710096_arg_0) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64337710096_val, %struct.SinObj** %clo646662_local7_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind64337810097_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local5_loc, align 8 | |
%primtmp_anf_45bind64337810097_val = call %struct.SinObj* @prim_cdr(%struct.SinObj* %primtmp_anf_45bind64337810097_arg_0) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64337810097_val, %struct.SinObj** %clo646662_local8_loc, align 8 | |
; Starting const-null | |
%datnull_args646433$$foldr640463$010098_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646433$$foldr640463$010098_val, %struct.SinObj** %clo646662_local9_loc, align 8 | |
; Starting prim | |
%primtmp_args646433$$foldr640463$110099_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local8_loc, align 8 | |
%primtmp_args646433$$foldr640463$110099_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local9_loc, align 8 | |
%primtmp_args646433$$foldr640463$110099_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646433$$foldr640463$110099_arg_0, %struct.SinObj* %primtmp_args646433$$foldr640463$110099_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646433$$foldr640463$110099_val, %struct.SinObj** %clo646662_local10_loc, align 8 | |
; Starting prim | |
%primtmp_args646433$$foldr640463$210100_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local3_loc, align 8 | |
%primtmp_args646433$$foldr640463$210100_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local10_loc, align 8 | |
%primtmp_args646433$$foldr640463$210100_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646433$$foldr640463$210100_arg_0, %struct.SinObj* %primtmp_args646433$$foldr640463$210100_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646433$$foldr640463$210100_val, %struct.SinObj** %clo646662_local11_loc, align 8 | |
; Starting prim | |
%primtmp_args646433$$foldr640463$310101_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local1_loc, align 8 | |
%primtmp_args646433$$foldr640463$310101_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local11_loc, align 8 | |
%primtmp_args646433$$foldr640463$310101_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646433$$foldr640463$310101_arg_0, %struct.SinObj* %primtmp_args646433$$foldr640463$310101_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646433$$foldr640463$310101_val, %struct.SinObj** %clo646662_local12_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64337910102_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 21) | |
br i1 %bind_app_anf_45bind64337910102_has_space, label %bind_app_anf_45bind64337910102_do_call, label %bind_app_anf_45bind64337910102_overflow_first | |
bind_app_anf_45bind64337910102_overflow_first: | |
%bind_app_anf_45bind64337910102_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64337910102_overflow_underflow_addr, i64 21) | |
br label %bind_app_anf_45bind64337910102_do_call | |
bind_app_anf_45bind64337910102_do_call: | |
%bind_app_anf_45bind64337910102_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local0_loc, align 8 | |
%bind_app_anf_45bind64337910102_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local12_loc, align 8 | |
%bind_app_anf_45bind64337910102_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64337910102_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64337910102_cur_fp, i64 21 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64337910102_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64337910102_return_loc = bitcast i8* blockaddress(@main, %clo646662_ret0) to %struct.SinObj* | |
%bind_app_anf_45bind64337910102_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64337910102_new_fp, i64 1 | |
%bind_app_anf_45bind64337910102_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64337910102_new_fp, i64 2 | |
%bind_app_anf_45bind64337910102_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64337910102_new_fp, i64 3 | |
%bind_app_anf_45bind64337910102_slotscast = inttoptr i64 21 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64337910102_return_loc, %struct.SinObj** %bind_app_anf_45bind64337910102_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64337910102_slotscast, %struct.SinObj** %bind_app_anf_45bind64337910102_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64337910102_closure, %struct.SinObj** %bind_app_anf_45bind64337910102_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64337910102_arglist, %struct.SinObj** %bind_app_anf_45bind64337910102_newarg1loc, align 8 | |
%bind_app_anf_45bind64337910102_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64337910102_closure) | |
indirectbr i8* %bind_app_anf_45bind64337910102_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646662_ret0: | |
%bind_app_anf_45bind64337910102_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64337910102_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64337910102_oldfp, i64 1 | |
%bind_app_anf_45bind64337910102_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64337910102_slots_loc, align 8 | |
%bind_app_anf_45bind64337910102_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64337910102_slots_ptr to i64 | |
%bind_app_anf_45bind64337910102_offset = mul i64 %bind_app_anf_45bind64337910102_slots, -1 | |
%bind_app_anf_45bind64337910102_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64337910102_oldfp, i64 %bind_app_anf_45bind64337910102_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64337910102_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643379 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643379, %struct.SinObj** %clo646662_local13_loc, align 8 | |
; Starting const-null | |
%datnull_args646434$$f640464$010103_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646434$$f640464$010103_val, %struct.SinObj** %clo646662_local14_loc, align 8 | |
; Starting prim | |
%primtmp_args646434$$f640464$110104_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local13_loc, align 8 | |
%primtmp_args646434$$f640464$110104_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local14_loc, align 8 | |
%primtmp_args646434$$f640464$110104_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646434$$f640464$110104_arg_0, %struct.SinObj* %primtmp_args646434$$f640464$110104_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646434$$f640464$110104_val, %struct.SinObj** %clo646662_local15_loc, align 8 | |
; Starting prim | |
%primtmp_args646434$$f640464$210105_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local7_loc, align 8 | |
%primtmp_args646434$$f640464$210105_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local15_loc, align 8 | |
%primtmp_args646434$$f640464$210105_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646434$$f640464$210105_arg_0, %struct.SinObj* %primtmp_args646434$$f640464$210105_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646434$$f640464$210105_val, %struct.SinObj** %clo646662_local16_loc, align 8 | |
; Starting tail-clo-app | |
%_tailapp_$f64046410106_clo = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local1_loc, align 8 | |
%_tailapp_$f64046410106_args = load volatile %struct.SinObj*, %struct.SinObj** %clo646662_local16_loc, align 8 | |
%_tailapp_$f64046410106_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%_tailapp_$f64046410106_arg0 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_$f64046410106_fp, i64 2 | |
%_tailapp_$f64046410106_arg1 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_$f64046410106_fp, i64 3 | |
store volatile %struct.SinObj* %_tailapp_$f64046410106_clo, %struct.SinObj** %_tailapp_$f64046410106_arg0, align 8 | |
store volatile %struct.SinObj* %_tailapp_$f64046410106_args, %struct.SinObj** %_tailapp_$f64046410106_arg1, align 8 | |
%_tailapp_$f64046410106_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %_tailapp_$f64046410106_clo) | |
indirectbr i8* %_tailapp_$f64046410106_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
; Function clo646662 finished | |
clo646661: | |
%prologue_cur_fp10107 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646661_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10107, i64 2 | |
%clo646661_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10107, i64 3 | |
%clo646661_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10107, i64 5 | |
%clo646661_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10107, i64 4 | |
; End function Prologue | |
; Starting prim | |
%primtmp_$length64046810108_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646661_arg1_loc, align 8 | |
%primtmp_$length64046810108_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$length64046810108_arg_0) | |
store volatile %struct.SinObj* %primtmp_$length64046810108_val, %struct.SinObj** %clo646661_local0_loc, align 8 | |
; Starting make-closure | |
%makeclo_admin_45toplevel_45bnd64655710109_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646661_local0_loc, align 8 | |
%makeclo_admin_45toplevel_45bnd64655710109_funcaddr = bitcast i8* blockaddress(@main, %clo646660) to i8* | |
%makeclo_admin_45toplevel_45bnd64655710109_val = call %struct.SinObj* @closure_alloc(i64 1, i8* %makeclo_admin_45toplevel_45bnd64655710109_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_admin_45toplevel_45bnd64655710109_val, %struct.SinObj* %makeclo_admin_45toplevel_45bnd64655710109_arg_0, i64 0) | |
store volatile %struct.SinObj* %makeclo_admin_45toplevel_45bnd64655710109_val, %struct.SinObj** %clo646661_local1_loc, align 8 | |
; Starting return value. | |
%retval_admin_45toplevel_45bnd64655710110_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646661_local1_loc, align 8 | |
store volatile %struct.SinObj* %retval_admin_45toplevel_45bnd64655710110_val, %struct.SinObj** @retr, align 8 | |
%retval_admin_45toplevel_45bnd64655710110_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_admin_45toplevel_45bnd64655710110_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_admin_45toplevel_45bnd64655710110_fp, align 8 | |
%retval_admin_45toplevel_45bnd64655710110_ra_raw = bitcast %struct.SinObj* %retval_admin_45toplevel_45bnd64655710110_ra to i8* | |
indirectbr i8* %retval_admin_45toplevel_45bnd64655710110_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646661 finished | |
clo646660: | |
%prologue_cur_fp10111 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646660_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10111, i64 2 | |
%clo646660_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10111, i64 3 | |
%clo646660_local9_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10111, i64 13 | |
%clo646660_local8_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10111, i64 12 | |
%clo646660_local7_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10111, i64 11 | |
%clo646660_local6_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10111, i64 10 | |
%clo646660_local5_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10111, i64 9 | |
%clo646660_local4_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10111, i64 8 | |
%clo646660_local3_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10111, i64 7 | |
%clo646660_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10111, i64 6 | |
%clo646660_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10111, i64 5 | |
%clo646660_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10111, i64 4 | |
; End function Prologue | |
; Starting env-ref | |
%envref_$length64046810112_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$length64046810112_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$length64046810112_cur_fp, i64 2 | |
%envref_$length64046810112_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$length64046810112_cur_fp, align 8 | |
%envref_$length64046810112_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$length64046810112_clo, i64 0) | |
store volatile %struct.SinObj* %envref_$length64046810112_val, %struct.SinObj** %clo646660_local0_loc, align 8 | |
; Starting prim | |
%primtmp_$xs64046910113_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646660_arg1_loc, align 8 | |
%primtmp_$xs64046910113_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$xs64046910113_arg_0) | |
store volatile %struct.SinObj* %primtmp_$xs64046910113_val, %struct.SinObj** %clo646660_local1_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind64338110114_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646660_local1_loc, align 8 | |
%primtmp_anf_45bind64338110114_val = call %struct.SinObj* @prim_null_63(%struct.SinObj* %primtmp_anf_45bind64338110114_arg_0) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64338110114_val, %struct.SinObj** %clo646660_local2_loc, align 8 | |
; Starting if | |
%if10115_reg = load volatile %struct.SinObj*, %struct.SinObj** %clo646660_local2_loc, align 8 | |
%if10115istrue = call i1 @is_truthy_value(%struct.SinObj* %if10115_reg) | |
br i1 %if10115istrue, label %branch9794_45true, label %branch9794_45false | |
branch9794_45true: | |
; Starting const-int | |
%datint_anf_45datum64338210116_val = call %struct.SinObj* @const_init_int(i64 0) | |
store volatile %struct.SinObj* %datint_anf_45datum64338210116_val, %struct.SinObj** %clo646660_local3_loc, align 8 | |
; Starting return value. | |
%retval_anf_45datum64338210117_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646660_local3_loc, align 8 | |
store volatile %struct.SinObj* %retval_anf_45datum64338210117_val, %struct.SinObj** @retr, align 8 | |
%retval_anf_45datum64338210117_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_anf_45datum64338210117_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_anf_45datum64338210117_fp, align 8 | |
%retval_anf_45datum64338210117_ra_raw = bitcast %struct.SinObj* %retval_anf_45datum64338210117_ra to i8* | |
indirectbr i8* %retval_anf_45datum64338210117_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
branch9794_45false: | |
; Starting const-int | |
%datint_anf_45datum64338310118_val = call %struct.SinObj* @const_init_int(i64 1) | |
store volatile %struct.SinObj* %datint_anf_45datum64338310118_val, %struct.SinObj** %clo646660_local4_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind64338410119_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646660_local1_loc, align 8 | |
%primtmp_anf_45bind64338410119_val = call %struct.SinObj* @prim_cdr(%struct.SinObj* %primtmp_anf_45bind64338410119_arg_0) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64338410119_val, %struct.SinObj** %clo646660_local5_loc, align 8 | |
; Starting const-null | |
%datnull_args646438$$length640468$010120_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646438$$length640468$010120_val, %struct.SinObj** %clo646660_local6_loc, align 8 | |
; Starting prim | |
%primtmp_args646438$$length640468$110121_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646660_local5_loc, align 8 | |
%primtmp_args646438$$length640468$110121_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646660_local6_loc, align 8 | |
%primtmp_args646438$$length640468$110121_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646438$$length640468$110121_arg_0, %struct.SinObj* %primtmp_args646438$$length640468$110121_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646438$$length640468$110121_val, %struct.SinObj** %clo646660_local7_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64338510122_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 14) | |
br i1 %bind_app_anf_45bind64338510122_has_space, label %bind_app_anf_45bind64338510122_do_call, label %bind_app_anf_45bind64338510122_overflow_first | |
bind_app_anf_45bind64338510122_overflow_first: | |
%bind_app_anf_45bind64338510122_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64338510122_overflow_underflow_addr, i64 14) | |
br label %bind_app_anf_45bind64338510122_do_call | |
bind_app_anf_45bind64338510122_do_call: | |
%bind_app_anf_45bind64338510122_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646660_local0_loc, align 8 | |
%bind_app_anf_45bind64338510122_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646660_local7_loc, align 8 | |
%bind_app_anf_45bind64338510122_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64338510122_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64338510122_cur_fp, i64 14 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64338510122_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64338510122_return_loc = bitcast i8* blockaddress(@main, %clo646660_ret0) to %struct.SinObj* | |
%bind_app_anf_45bind64338510122_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64338510122_new_fp, i64 1 | |
%bind_app_anf_45bind64338510122_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64338510122_new_fp, i64 2 | |
%bind_app_anf_45bind64338510122_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64338510122_new_fp, i64 3 | |
%bind_app_anf_45bind64338510122_slotscast = inttoptr i64 14 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64338510122_return_loc, %struct.SinObj** %bind_app_anf_45bind64338510122_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64338510122_slotscast, %struct.SinObj** %bind_app_anf_45bind64338510122_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64338510122_closure, %struct.SinObj** %bind_app_anf_45bind64338510122_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64338510122_arglist, %struct.SinObj** %bind_app_anf_45bind64338510122_newarg1loc, align 8 | |
%bind_app_anf_45bind64338510122_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64338510122_closure) | |
indirectbr i8* %bind_app_anf_45bind64338510122_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646660_ret0: | |
%bind_app_anf_45bind64338510122_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64338510122_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64338510122_oldfp, i64 1 | |
%bind_app_anf_45bind64338510122_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64338510122_slots_loc, align 8 | |
%bind_app_anf_45bind64338510122_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64338510122_slots_ptr to i64 | |
%bind_app_anf_45bind64338510122_offset = mul i64 %bind_app_anf_45bind64338510122_slots, -1 | |
%bind_app_anf_45bind64338510122_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64338510122_oldfp, i64 %bind_app_anf_45bind64338510122_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64338510122_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643385 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643385, %struct.SinObj** %clo646660_local8_loc, align 8 | |
; Starting prim | |
%primtmp_admin_45toplevel_45bnd64655810123_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646660_local4_loc, align 8 | |
%primtmp_admin_45toplevel_45bnd64655810123_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646660_local8_loc, align 8 | |
%primtmp_admin_45toplevel_45bnd64655810123_val = call %struct.SinObj* @prim__43(%struct.SinObj* %primtmp_admin_45toplevel_45bnd64655810123_arg_0, %struct.SinObj* %primtmp_admin_45toplevel_45bnd64655810123_arg_1) | |
store volatile %struct.SinObj* %primtmp_admin_45toplevel_45bnd64655810123_val, %struct.SinObj** %clo646660_local9_loc, align 8 | |
; Starting return value. | |
%retval_admin_45toplevel_45bnd64655810124_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646660_local9_loc, align 8 | |
store volatile %struct.SinObj* %retval_admin_45toplevel_45bnd64655810124_val, %struct.SinObj** @retr, align 8 | |
%retval_admin_45toplevel_45bnd64655810124_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_admin_45toplevel_45bnd64655810124_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_admin_45toplevel_45bnd64655810124_fp, align 8 | |
%retval_admin_45toplevel_45bnd64655810124_ra_raw = bitcast %struct.SinObj* %retval_admin_45toplevel_45bnd64655810124_ra to i8* | |
indirectbr i8* %retval_admin_45toplevel_45bnd64655810124_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646660 finished | |
clo646659: | |
%prologue_cur_fp10125 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646659_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10125, i64 2 | |
%clo646659_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10125, i64 3 | |
%clo646659_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10125, i64 5 | |
%clo646659_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10125, i64 4 | |
; End function Prologue | |
; Starting prim | |
%primtmp_$take64047110126_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646659_arg1_loc, align 8 | |
%primtmp_$take64047110126_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$take64047110126_arg_0) | |
store volatile %struct.SinObj* %primtmp_$take64047110126_val, %struct.SinObj** %clo646659_local0_loc, align 8 | |
; Starting make-closure | |
%makeclo_admin_45toplevel_45bnd64655910127_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646659_local0_loc, align 8 | |
%makeclo_admin_45toplevel_45bnd64655910127_funcaddr = bitcast i8* blockaddress(@main, %clo646658) to i8* | |
%makeclo_admin_45toplevel_45bnd64655910127_val = call %struct.SinObj* @closure_alloc(i64 1, i8* %makeclo_admin_45toplevel_45bnd64655910127_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_admin_45toplevel_45bnd64655910127_val, %struct.SinObj* %makeclo_admin_45toplevel_45bnd64655910127_arg_0, i64 0) | |
store volatile %struct.SinObj* %makeclo_admin_45toplevel_45bnd64655910127_val, %struct.SinObj** %clo646659_local1_loc, align 8 | |
; Starting return value. | |
%retval_admin_45toplevel_45bnd64655910128_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646659_local1_loc, align 8 | |
store volatile %struct.SinObj* %retval_admin_45toplevel_45bnd64655910128_val, %struct.SinObj** @retr, align 8 | |
%retval_admin_45toplevel_45bnd64655910128_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_admin_45toplevel_45bnd64655910128_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_admin_45toplevel_45bnd64655910128_fp, align 8 | |
%retval_admin_45toplevel_45bnd64655910128_ra_raw = bitcast %struct.SinObj* %retval_admin_45toplevel_45bnd64655910128_ra to i8* | |
indirectbr i8* %retval_admin_45toplevel_45bnd64655910128_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646659 finished | |
clo646658: | |
%prologue_cur_fp10129 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646658_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 2 | |
%clo646658_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 3 | |
%clo646658_local19_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 23 | |
%clo646658_local18_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 22 | |
%clo646658_local17_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 21 | |
%clo646658_local16_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 20 | |
%clo646658_local15_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 19 | |
%clo646658_local14_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 18 | |
%clo646658_local13_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 17 | |
%clo646658_local12_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 16 | |
%clo646658_local11_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 15 | |
%clo646658_local10_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 14 | |
%clo646658_local9_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 13 | |
%clo646658_local8_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 12 | |
%clo646658_local7_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 11 | |
%clo646658_local6_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 10 | |
%clo646658_local5_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 9 | |
%clo646658_local4_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 8 | |
%clo646658_local3_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 7 | |
%clo646658_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 6 | |
%clo646658_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 5 | |
%clo646658_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10129, i64 4 | |
; End function Prologue | |
; Starting env-ref | |
%envref_$take64047110130_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$take64047110130_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$take64047110130_cur_fp, i64 2 | |
%envref_$take64047110130_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$take64047110130_cur_fp, align 8 | |
%envref_$take64047110130_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$take64047110130_clo, i64 0) | |
store volatile %struct.SinObj* %envref_$take64047110130_val, %struct.SinObj** %clo646658_local0_loc, align 8 | |
; Starting prim | |
%primtmp_$xs64047210131_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_arg1_loc, align 8 | |
%primtmp_$xs64047210131_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$xs64047210131_arg_0) | |
store volatile %struct.SinObj* %primtmp_$xs64047210131_val, %struct.SinObj** %clo646658_local1_loc, align 8 | |
; Starting prim | |
%primtmp_arglist646441110132_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_arg1_loc, align 8 | |
%primtmp_arglist646441110132_val = call %struct.SinObj* @prim_cdr(%struct.SinObj* %primtmp_arglist646441110132_arg_0) | |
store volatile %struct.SinObj* %primtmp_arglist646441110132_val, %struct.SinObj** %clo646658_local2_loc, align 8 | |
; Starting prim | |
%primtmp_$n64047310133_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local2_loc, align 8 | |
%primtmp_$n64047310133_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$n64047310133_arg_0) | |
store volatile %struct.SinObj* %primtmp_$n64047310133_val, %struct.SinObj** %clo646658_local3_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum64338710134_val = call %struct.SinObj* @const_init_int(i64 0) | |
store volatile %struct.SinObj* %datint_anf_45datum64338710134_val, %struct.SinObj** %clo646658_local4_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind64338810135_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local3_loc, align 8 | |
%primtmp_anf_45bind64338810135_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local4_loc, align 8 | |
%primtmp_anf_45bind64338810135_val = call %struct.SinObj* @prim__61(%struct.SinObj* %primtmp_anf_45bind64338810135_arg_0, %struct.SinObj* %primtmp_anf_45bind64338810135_arg_1) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64338810135_val, %struct.SinObj** %clo646658_local5_loc, align 8 | |
; Starting if | |
%if10136_reg = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local5_loc, align 8 | |
%if10136istrue = call i1 @is_truthy_value(%struct.SinObj* %if10136_reg) | |
br i1 %if10136istrue, label %branch9795_45true, label %branch9795_45false | |
branch9795_45true: | |
; Starting make-closure | |
%makeclo_anf_45bind64338910137_funcaddr = bitcast i8* blockaddress(@main, %clo646656) to i8* | |
%makeclo_anf_45bind64338910137_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind64338910137_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind64338910137_val, %struct.SinObj** %clo646658_local6_loc, align 8 | |
; Starting const-null | |
%datnull_args646442$anf_45bind643389$010138_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646442$anf_45bind643389$010138_val, %struct.SinObj** %clo646658_local7_loc, align 8 | |
; Starting tail-clo-app | |
%_tailapp_anf_45bind64338910139_clo = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local6_loc, align 8 | |
%_tailapp_anf_45bind64338910139_args = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local7_loc, align 8 | |
%_tailapp_anf_45bind64338910139_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%_tailapp_anf_45bind64338910139_arg0 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_anf_45bind64338910139_fp, i64 2 | |
%_tailapp_anf_45bind64338910139_arg1 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_anf_45bind64338910139_fp, i64 3 | |
store volatile %struct.SinObj* %_tailapp_anf_45bind64338910139_clo, %struct.SinObj** %_tailapp_anf_45bind64338910139_arg0, align 8 | |
store volatile %struct.SinObj* %_tailapp_anf_45bind64338910139_args, %struct.SinObj** %_tailapp_anf_45bind64338910139_arg1, align 8 | |
%_tailapp_anf_45bind64338910139_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %_tailapp_anf_45bind64338910139_clo) | |
indirectbr i8* %_tailapp_anf_45bind64338910139_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
branch9795_45false: | |
; Starting prim | |
%primtmp_anf_45bind64339010140_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local1_loc, align 8 | |
%primtmp_anf_45bind64339010140_val = call %struct.SinObj* @prim_null_63(%struct.SinObj* %primtmp_anf_45bind64339010140_arg_0) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64339010140_val, %struct.SinObj** %clo646658_local8_loc, align 8 | |
; Starting if | |
%if10141_reg = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local8_loc, align 8 | |
%if10141istrue = call i1 @is_truthy_value(%struct.SinObj* %if10141_reg) | |
br i1 %if10141istrue, label %branch9796_45true, label %branch9796_45false | |
branch9796_45true: | |
; Starting make-closure | |
%makeclo_anf_45bind64339110142_funcaddr = bitcast i8* blockaddress(@main, %clo646657) to i8* | |
%makeclo_anf_45bind64339110142_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind64339110142_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind64339110142_val, %struct.SinObj** %clo646658_local9_loc, align 8 | |
; Starting const-null | |
%datnull_args646443$anf_45bind643391$010143_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646443$anf_45bind643391$010143_val, %struct.SinObj** %clo646658_local10_loc, align 8 | |
; Starting tail-clo-app | |
%_tailapp_anf_45bind64339110144_clo = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local9_loc, align 8 | |
%_tailapp_anf_45bind64339110144_args = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local10_loc, align 8 | |
%_tailapp_anf_45bind64339110144_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%_tailapp_anf_45bind64339110144_arg0 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_anf_45bind64339110144_fp, i64 2 | |
%_tailapp_anf_45bind64339110144_arg1 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_anf_45bind64339110144_fp, i64 3 | |
store volatile %struct.SinObj* %_tailapp_anf_45bind64339110144_clo, %struct.SinObj** %_tailapp_anf_45bind64339110144_arg0, align 8 | |
store volatile %struct.SinObj* %_tailapp_anf_45bind64339110144_args, %struct.SinObj** %_tailapp_anf_45bind64339110144_arg1, align 8 | |
%_tailapp_anf_45bind64339110144_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %_tailapp_anf_45bind64339110144_clo) | |
indirectbr i8* %_tailapp_anf_45bind64339110144_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
branch9796_45false: | |
; Starting prim | |
%primtmp_anf_45bind64339210145_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local1_loc, align 8 | |
%primtmp_anf_45bind64339210145_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_anf_45bind64339210145_arg_0) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64339210145_val, %struct.SinObj** %clo646658_local11_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind64339310146_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local1_loc, align 8 | |
%primtmp_anf_45bind64339310146_val = call %struct.SinObj* @prim_cdr(%struct.SinObj* %primtmp_anf_45bind64339310146_arg_0) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64339310146_val, %struct.SinObj** %clo646658_local12_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum64339410147_val = call %struct.SinObj* @const_init_int(i64 1) | |
store volatile %struct.SinObj* %datint_anf_45datum64339410147_val, %struct.SinObj** %clo646658_local13_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind64339510148_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local3_loc, align 8 | |
%primtmp_anf_45bind64339510148_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local13_loc, align 8 | |
%primtmp_anf_45bind64339510148_val = call %struct.SinObj* @prim__45(%struct.SinObj* %primtmp_anf_45bind64339510148_arg_0, %struct.SinObj* %primtmp_anf_45bind64339510148_arg_1) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64339510148_val, %struct.SinObj** %clo646658_local14_loc, align 8 | |
; Starting const-null | |
%datnull_args646444$$take640471$010149_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646444$$take640471$010149_val, %struct.SinObj** %clo646658_local15_loc, align 8 | |
; Starting prim | |
%primtmp_args646444$$take640471$110150_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local14_loc, align 8 | |
%primtmp_args646444$$take640471$110150_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local15_loc, align 8 | |
%primtmp_args646444$$take640471$110150_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646444$$take640471$110150_arg_0, %struct.SinObj* %primtmp_args646444$$take640471$110150_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646444$$take640471$110150_val, %struct.SinObj** %clo646658_local16_loc, align 8 | |
; Starting prim | |
%primtmp_args646444$$take640471$210151_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local12_loc, align 8 | |
%primtmp_args646444$$take640471$210151_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local16_loc, align 8 | |
%primtmp_args646444$$take640471$210151_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646444$$take640471$210151_arg_0, %struct.SinObj* %primtmp_args646444$$take640471$210151_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646444$$take640471$210151_val, %struct.SinObj** %clo646658_local17_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64339610152_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 24) | |
br i1 %bind_app_anf_45bind64339610152_has_space, label %bind_app_anf_45bind64339610152_do_call, label %bind_app_anf_45bind64339610152_overflow_first | |
bind_app_anf_45bind64339610152_overflow_first: | |
%bind_app_anf_45bind64339610152_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64339610152_overflow_underflow_addr, i64 24) | |
br label %bind_app_anf_45bind64339610152_do_call | |
bind_app_anf_45bind64339610152_do_call: | |
%bind_app_anf_45bind64339610152_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local0_loc, align 8 | |
%bind_app_anf_45bind64339610152_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local17_loc, align 8 | |
%bind_app_anf_45bind64339610152_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64339610152_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64339610152_cur_fp, i64 24 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64339610152_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64339610152_return_loc = bitcast i8* blockaddress(@main, %clo646658_ret0) to %struct.SinObj* | |
%bind_app_anf_45bind64339610152_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64339610152_new_fp, i64 1 | |
%bind_app_anf_45bind64339610152_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64339610152_new_fp, i64 2 | |
%bind_app_anf_45bind64339610152_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64339610152_new_fp, i64 3 | |
%bind_app_anf_45bind64339610152_slotscast = inttoptr i64 24 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64339610152_return_loc, %struct.SinObj** %bind_app_anf_45bind64339610152_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64339610152_slotscast, %struct.SinObj** %bind_app_anf_45bind64339610152_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64339610152_closure, %struct.SinObj** %bind_app_anf_45bind64339610152_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64339610152_arglist, %struct.SinObj** %bind_app_anf_45bind64339610152_newarg1loc, align 8 | |
%bind_app_anf_45bind64339610152_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64339610152_closure) | |
indirectbr i8* %bind_app_anf_45bind64339610152_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646658_ret0: | |
%bind_app_anf_45bind64339610152_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64339610152_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64339610152_oldfp, i64 1 | |
%bind_app_anf_45bind64339610152_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64339610152_slots_loc, align 8 | |
%bind_app_anf_45bind64339610152_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64339610152_slots_ptr to i64 | |
%bind_app_anf_45bind64339610152_offset = mul i64 %bind_app_anf_45bind64339610152_slots, -1 | |
%bind_app_anf_45bind64339610152_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64339610152_oldfp, i64 %bind_app_anf_45bind64339610152_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64339610152_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643396 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643396, %struct.SinObj** %clo646658_local18_loc, align 8 | |
; Starting prim | |
%primtmp_admin_45toplevel_45bnd64656010153_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local11_loc, align 8 | |
%primtmp_admin_45toplevel_45bnd64656010153_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local18_loc, align 8 | |
%primtmp_admin_45toplevel_45bnd64656010153_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_admin_45toplevel_45bnd64656010153_arg_0, %struct.SinObj* %primtmp_admin_45toplevel_45bnd64656010153_arg_1) | |
store volatile %struct.SinObj* %primtmp_admin_45toplevel_45bnd64656010153_val, %struct.SinObj** %clo646658_local19_loc, align 8 | |
; Starting return value. | |
%retval_admin_45toplevel_45bnd64656010154_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646658_local19_loc, align 8 | |
store volatile %struct.SinObj* %retval_admin_45toplevel_45bnd64656010154_val, %struct.SinObj** @retr, align 8 | |
%retval_admin_45toplevel_45bnd64656010154_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_admin_45toplevel_45bnd64656010154_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_admin_45toplevel_45bnd64656010154_fp, align 8 | |
%retval_admin_45toplevel_45bnd64656010154_ra_raw = bitcast %struct.SinObj* %retval_admin_45toplevel_45bnd64656010154_ra to i8* | |
indirectbr i8* %retval_admin_45toplevel_45bnd64656010154_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646658 finished | |
clo646656: | |
%prologue_cur_fp10155 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646656_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10155, i64 2 | |
%clo646656_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10155, i64 3 | |
; End function Prologue | |
; Starting return value. | |
%retval_xs64047410156_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646656_arg1_loc, align 8 | |
store volatile %struct.SinObj* %retval_xs64047410156_val, %struct.SinObj** @retr, align 8 | |
%retval_xs64047410156_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_xs64047410156_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_xs64047410156_fp, align 8 | |
%retval_xs64047410156_ra_raw = bitcast %struct.SinObj* %retval_xs64047410156_ra to i8* | |
indirectbr i8* %retval_xs64047410156_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646656 finished | |
clo646657: | |
%prologue_cur_fp10157 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646657_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10157, i64 2 | |
%clo646657_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10157, i64 3 | |
; End function Prologue | |
; Starting return value. | |
%retval_xs64047510158_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646657_arg1_loc, align 8 | |
store volatile %struct.SinObj* %retval_xs64047510158_val, %struct.SinObj** @retr, align 8 | |
%retval_xs64047510158_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_xs64047510158_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_xs64047510158_fp, align 8 | |
%retval_xs64047510158_ra_raw = bitcast %struct.SinObj* %retval_xs64047510158_ra to i8* | |
indirectbr i8* %retval_xs64047510158_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646657 finished | |
clo646655: | |
%prologue_cur_fp10159 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646655_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10159, i64 2 | |
%clo646655_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10159, i64 3 | |
%clo646655_local11_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10159, i64 15 | |
%clo646655_local10_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10159, i64 14 | |
%clo646655_local9_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10159, i64 13 | |
%clo646655_local8_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10159, i64 12 | |
%clo646655_local7_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10159, i64 11 | |
%clo646655_local6_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10159, i64 10 | |
%clo646655_local5_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10159, i64 9 | |
%clo646655_local4_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10159, i64 8 | |
%clo646655_local3_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10159, i64 7 | |
%clo646655_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10159, i64 6 | |
%clo646655_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10159, i64 5 | |
%clo646655_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10159, i64 4 | |
; End function Prologue | |
; Starting env-ref | |
%envref_$length64046710160_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$length64046710160_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$length64046710160_cur_fp, i64 2 | |
%envref_$length64046710160_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$length64046710160_cur_fp, align 8 | |
%envref_$length64046710160_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$length64046710160_clo, i64 0) | |
store volatile %struct.SinObj* %envref_$length64046710160_val, %struct.SinObj** %clo646655_local0_loc, align 8 | |
; Starting env-ref | |
%envref_$take64047010161_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$take64047010161_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$take64047010161_cur_fp, i64 2 | |
%envref_$take64047010161_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$take64047010161_cur_fp, align 8 | |
%envref_$take64047010161_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$take64047010161_clo, i64 1) | |
store volatile %struct.SinObj* %envref_$take64047010161_val, %struct.SinObj** %clo646655_local1_loc, align 8 | |
; Starting prim | |
%primtmp_$xs64047710162_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646655_arg1_loc, align 8 | |
%primtmp_$xs64047710162_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$xs64047710162_arg_0) | |
store volatile %struct.SinObj* %primtmp_$xs64047710162_val, %struct.SinObj** %clo646655_local2_loc, align 8 | |
; Starting prim | |
%primtmp_arglist646446110163_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646655_arg1_loc, align 8 | |
%primtmp_arglist646446110163_val = call %struct.SinObj* @prim_cdr(%struct.SinObj* %primtmp_arglist646446110163_arg_0) | |
store volatile %struct.SinObj* %primtmp_arglist646446110163_val, %struct.SinObj** %clo646655_local3_loc, align 8 | |
; Starting prim | |
%primtmp_$n64047810164_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646655_local3_loc, align 8 | |
%primtmp_$n64047810164_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$n64047810164_arg_0) | |
store volatile %struct.SinObj* %primtmp_$n64047810164_val, %struct.SinObj** %clo646655_local4_loc, align 8 | |
; Starting const-null | |
%datnull_args646447$$length640467$010165_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646447$$length640467$010165_val, %struct.SinObj** %clo646655_local5_loc, align 8 | |
; Starting prim | |
%primtmp_args646447$$length640467$110166_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646655_local2_loc, align 8 | |
%primtmp_args646447$$length640467$110166_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646655_local5_loc, align 8 | |
%primtmp_args646447$$length640467$110166_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646447$$length640467$110166_arg_0, %struct.SinObj* %primtmp_args646447$$length640467$110166_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646447$$length640467$110166_val, %struct.SinObj** %clo646655_local6_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64339810167_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 16) | |
br i1 %bind_app_anf_45bind64339810167_has_space, label %bind_app_anf_45bind64339810167_do_call, label %bind_app_anf_45bind64339810167_overflow_first | |
bind_app_anf_45bind64339810167_overflow_first: | |
%bind_app_anf_45bind64339810167_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64339810167_overflow_underflow_addr, i64 16) | |
br label %bind_app_anf_45bind64339810167_do_call | |
bind_app_anf_45bind64339810167_do_call: | |
%bind_app_anf_45bind64339810167_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646655_local0_loc, align 8 | |
%bind_app_anf_45bind64339810167_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646655_local6_loc, align 8 | |
%bind_app_anf_45bind64339810167_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64339810167_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64339810167_cur_fp, i64 16 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64339810167_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64339810167_return_loc = bitcast i8* blockaddress(@main, %clo646655_ret0) to %struct.SinObj* | |
%bind_app_anf_45bind64339810167_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64339810167_new_fp, i64 1 | |
%bind_app_anf_45bind64339810167_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64339810167_new_fp, i64 2 | |
%bind_app_anf_45bind64339810167_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64339810167_new_fp, i64 3 | |
%bind_app_anf_45bind64339810167_slotscast = inttoptr i64 16 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64339810167_return_loc, %struct.SinObj** %bind_app_anf_45bind64339810167_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64339810167_slotscast, %struct.SinObj** %bind_app_anf_45bind64339810167_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64339810167_closure, %struct.SinObj** %bind_app_anf_45bind64339810167_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64339810167_arglist, %struct.SinObj** %bind_app_anf_45bind64339810167_newarg1loc, align 8 | |
%bind_app_anf_45bind64339810167_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64339810167_closure) | |
indirectbr i8* %bind_app_anf_45bind64339810167_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646655_ret0: | |
%bind_app_anf_45bind64339810167_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64339810167_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64339810167_oldfp, i64 1 | |
%bind_app_anf_45bind64339810167_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64339810167_slots_loc, align 8 | |
%bind_app_anf_45bind64339810167_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64339810167_slots_ptr to i64 | |
%bind_app_anf_45bind64339810167_offset = mul i64 %bind_app_anf_45bind64339810167_slots, -1 | |
%bind_app_anf_45bind64339810167_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64339810167_oldfp, i64 %bind_app_anf_45bind64339810167_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64339810167_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643398 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643398, %struct.SinObj** %clo646655_local7_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind64339910168_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646655_local7_loc, align 8 | |
%primtmp_anf_45bind64339910168_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646655_local4_loc, align 8 | |
%primtmp_anf_45bind64339910168_val = call %struct.SinObj* @prim__45(%struct.SinObj* %primtmp_anf_45bind64339910168_arg_0, %struct.SinObj* %primtmp_anf_45bind64339910168_arg_1) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64339910168_val, %struct.SinObj** %clo646655_local8_loc, align 8 | |
; Starting const-null | |
%datnull_args646448$$take640470$010169_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646448$$take640470$010169_val, %struct.SinObj** %clo646655_local9_loc, align 8 | |
; Starting prim | |
%primtmp_args646448$$take640470$110170_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646655_local8_loc, align 8 | |
%primtmp_args646448$$take640470$110170_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646655_local9_loc, align 8 | |
%primtmp_args646448$$take640470$110170_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646448$$take640470$110170_arg_0, %struct.SinObj* %primtmp_args646448$$take640470$110170_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646448$$take640470$110170_val, %struct.SinObj** %clo646655_local10_loc, align 8 | |
; Starting prim | |
%primtmp_args646448$$take640470$210171_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646655_local2_loc, align 8 | |
%primtmp_args646448$$take640470$210171_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646655_local10_loc, align 8 | |
%primtmp_args646448$$take640470$210171_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646448$$take640470$210171_arg_0, %struct.SinObj* %primtmp_args646448$$take640470$210171_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646448$$take640470$210171_val, %struct.SinObj** %clo646655_local11_loc, align 8 | |
; Starting tail-clo-app | |
%_tailapp_$take64047010172_clo = load volatile %struct.SinObj*, %struct.SinObj** %clo646655_local1_loc, align 8 | |
%_tailapp_$take64047010172_args = load volatile %struct.SinObj*, %struct.SinObj** %clo646655_local11_loc, align 8 | |
%_tailapp_$take64047010172_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%_tailapp_$take64047010172_arg0 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_$take64047010172_fp, i64 2 | |
%_tailapp_$take64047010172_arg1 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_$take64047010172_fp, i64 3 | |
store volatile %struct.SinObj* %_tailapp_$take64047010172_clo, %struct.SinObj** %_tailapp_$take64047010172_arg0, align 8 | |
store volatile %struct.SinObj* %_tailapp_$take64047010172_args, %struct.SinObj** %_tailapp_$take64047010172_arg1, align 8 | |
%_tailapp_$take64047010172_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %_tailapp_$take64047010172_clo) | |
indirectbr i8* %_tailapp_$take64047010172_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
; Function clo646655 finished | |
clo646654: | |
%prologue_cur_fp10173 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646654_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10173, i64 2 | |
%clo646654_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10173, i64 3 | |
%clo646654_local9_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10173, i64 13 | |
%clo646654_local8_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10173, i64 12 | |
%clo646654_local7_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10173, i64 11 | |
%clo646654_local6_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10173, i64 10 | |
%clo646654_local5_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10173, i64 9 | |
%clo646654_local4_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10173, i64 8 | |
%clo646654_local3_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10173, i64 7 | |
%clo646654_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10173, i64 6 | |
%clo646654_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10173, i64 5 | |
%clo646654_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10173, i64 4 | |
; End function Prologue | |
; Starting env-ref | |
%envref_$_37_37foldl164045710174_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$_37_37foldl164045710174_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$_37_37foldl164045710174_cur_fp, i64 2 | |
%envref_$_37_37foldl164045710174_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$_37_37foldl164045710174_cur_fp, align 8 | |
%envref_$_37_37foldl164045710174_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$_37_37foldl164045710174_clo, i64 0) | |
store volatile %struct.SinObj* %envref_$_37_37foldl164045710174_val, %struct.SinObj** %clo646654_local0_loc, align 8 | |
; Starting prim | |
%primtmp_$xs64048010175_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646654_arg1_loc, align 8 | |
%primtmp_$xs64048010175_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$xs64048010175_arg_0) | |
store volatile %struct.SinObj* %primtmp_$xs64048010175_val, %struct.SinObj** %clo646654_local1_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind64340010176_funcaddr = bitcast i8* blockaddress(@main, %clo646653) to i8* | |
%makeclo_anf_45bind64340010176_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind64340010176_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind64340010176_val, %struct.SinObj** %clo646654_local2_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind64340110177_funcaddr = bitcast i8* blockaddress(@main, %clo646652) to i8* | |
%makeclo_anf_45bind64340110177_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind64340110177_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind64340110177_val, %struct.SinObj** %clo646654_local3_loc, align 8 | |
; Starting const-null | |
%datnull_args646451$anf_45bind643401$010178_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646451$anf_45bind643401$010178_val, %struct.SinObj** %clo646654_local4_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64340210179_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 14) | |
br i1 %bind_app_anf_45bind64340210179_has_space, label %bind_app_anf_45bind64340210179_do_call, label %bind_app_anf_45bind64340210179_overflow_first | |
bind_app_anf_45bind64340210179_overflow_first: | |
%bind_app_anf_45bind64340210179_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64340210179_overflow_underflow_addr, i64 14) | |
br label %bind_app_anf_45bind64340210179_do_call | |
bind_app_anf_45bind64340210179_do_call: | |
%bind_app_anf_45bind64340210179_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646654_local3_loc, align 8 | |
%bind_app_anf_45bind64340210179_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646654_local4_loc, align 8 | |
%bind_app_anf_45bind64340210179_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64340210179_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64340210179_cur_fp, i64 14 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64340210179_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64340210179_return_loc = bitcast i8* blockaddress(@main, %clo646654_ret0) to %struct.SinObj* | |
%bind_app_anf_45bind64340210179_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64340210179_new_fp, i64 1 | |
%bind_app_anf_45bind64340210179_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64340210179_new_fp, i64 2 | |
%bind_app_anf_45bind64340210179_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64340210179_new_fp, i64 3 | |
%bind_app_anf_45bind64340210179_slotscast = inttoptr i64 14 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64340210179_return_loc, %struct.SinObj** %bind_app_anf_45bind64340210179_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64340210179_slotscast, %struct.SinObj** %bind_app_anf_45bind64340210179_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64340210179_closure, %struct.SinObj** %bind_app_anf_45bind64340210179_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64340210179_arglist, %struct.SinObj** %bind_app_anf_45bind64340210179_newarg1loc, align 8 | |
%bind_app_anf_45bind64340210179_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64340210179_closure) | |
indirectbr i8* %bind_app_anf_45bind64340210179_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646654_ret0: | |
%bind_app_anf_45bind64340210179_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64340210179_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64340210179_oldfp, i64 1 | |
%bind_app_anf_45bind64340210179_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64340210179_slots_loc, align 8 | |
%bind_app_anf_45bind64340210179_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64340210179_slots_ptr to i64 | |
%bind_app_anf_45bind64340210179_offset = mul i64 %bind_app_anf_45bind64340210179_slots, -1 | |
%bind_app_anf_45bind64340210179_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64340210179_oldfp, i64 %bind_app_anf_45bind64340210179_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64340210179_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643402 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643402, %struct.SinObj** %clo646654_local5_loc, align 8 | |
; Starting const-null | |
%datnull_args646452$$_37_37foldl1640457$010180_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646452$$_37_37foldl1640457$010180_val, %struct.SinObj** %clo646654_local6_loc, align 8 | |
; Starting prim | |
%primtmp_args646452$$_37_37foldl1640457$110181_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646654_local1_loc, align 8 | |
%primtmp_args646452$$_37_37foldl1640457$110181_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646654_local6_loc, align 8 | |
%primtmp_args646452$$_37_37foldl1640457$110181_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646452$$_37_37foldl1640457$110181_arg_0, %struct.SinObj* %primtmp_args646452$$_37_37foldl1640457$110181_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646452$$_37_37foldl1640457$110181_val, %struct.SinObj** %clo646654_local7_loc, align 8 | |
; Starting prim | |
%primtmp_args646452$$_37_37foldl1640457$210182_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646654_local5_loc, align 8 | |
%primtmp_args646452$$_37_37foldl1640457$210182_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646654_local7_loc, align 8 | |
%primtmp_args646452$$_37_37foldl1640457$210182_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646452$$_37_37foldl1640457$210182_arg_0, %struct.SinObj* %primtmp_args646452$$_37_37foldl1640457$210182_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646452$$_37_37foldl1640457$210182_val, %struct.SinObj** %clo646654_local8_loc, align 8 | |
; Starting prim | |
%primtmp_args646452$$_37_37foldl1640457$310183_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646654_local2_loc, align 8 | |
%primtmp_args646452$$_37_37foldl1640457$310183_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646654_local8_loc, align 8 | |
%primtmp_args646452$$_37_37foldl1640457$310183_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646452$$_37_37foldl1640457$310183_arg_0, %struct.SinObj* %primtmp_args646452$$_37_37foldl1640457$310183_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646452$$_37_37foldl1640457$310183_val, %struct.SinObj** %clo646654_local9_loc, align 8 | |
; Starting tail-clo-app | |
%_tailapp_$_37_37foldl164045710184_clo = load volatile %struct.SinObj*, %struct.SinObj** %clo646654_local0_loc, align 8 | |
%_tailapp_$_37_37foldl164045710184_args = load volatile %struct.SinObj*, %struct.SinObj** %clo646654_local9_loc, align 8 | |
%_tailapp_$_37_37foldl164045710184_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%_tailapp_$_37_37foldl164045710184_arg0 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_$_37_37foldl164045710184_fp, i64 2 | |
%_tailapp_$_37_37foldl164045710184_arg1 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_$_37_37foldl164045710184_fp, i64 3 | |
store volatile %struct.SinObj* %_tailapp_$_37_37foldl164045710184_clo, %struct.SinObj** %_tailapp_$_37_37foldl164045710184_arg0, align 8 | |
store volatile %struct.SinObj* %_tailapp_$_37_37foldl164045710184_args, %struct.SinObj** %_tailapp_$_37_37foldl164045710184_arg1, align 8 | |
%_tailapp_$_37_37foldl164045710184_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %_tailapp_$_37_37foldl164045710184_clo) | |
indirectbr i8* %_tailapp_$_37_37foldl164045710184_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
; Function clo646654 finished | |
clo646653: | |
%prologue_cur_fp10185 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646653_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10185, i64 2 | |
%clo646653_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10185, i64 3 | |
%clo646653_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10185, i64 6 | |
%clo646653_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10185, i64 5 | |
%clo646653_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10185, i64 4 | |
; End function Prologue | |
; Starting prim | |
%primtmp_$x64048110186_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646653_arg1_loc, align 8 | |
%primtmp_$x64048110186_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$x64048110186_arg_0) | |
store volatile %struct.SinObj* %primtmp_$x64048110186_val, %struct.SinObj** %clo646653_local0_loc, align 8 | |
; Starting prim | |
%primtmp_arglist646450110187_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646653_arg1_loc, align 8 | |
%primtmp_arglist646450110187_val = call %struct.SinObj* @prim_cdr(%struct.SinObj* %primtmp_arglist646450110187_arg_0) | |
store volatile %struct.SinObj* %primtmp_arglist646450110187_val, %struct.SinObj** %clo646653_local1_loc, align 8 | |
; Starting prim | |
%primtmp_$y64048210188_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646653_local1_loc, align 8 | |
%primtmp_$y64048210188_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$y64048210188_arg_0) | |
store volatile %struct.SinObj* %primtmp_$y64048210188_val, %struct.SinObj** %clo646653_local2_loc, align 8 | |
; Starting return value. | |
%retval_$x64048110189_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646653_local0_loc, align 8 | |
store volatile %struct.SinObj* %retval_$x64048110189_val, %struct.SinObj** @retr, align 8 | |
%retval_$x64048110189_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_$x64048110189_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_$x64048110189_fp, align 8 | |
%retval_$x64048110189_ra_raw = bitcast %struct.SinObj* %retval_$x64048110189_ra to i8* | |
indirectbr i8* %retval_$x64048110189_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646653 finished | |
clo646652: | |
%prologue_cur_fp10190 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646652_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10190, i64 2 | |
%clo646652_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10190, i64 3 | |
; End function Prologue | |
; Starting return value. | |
%retval_xs64048310191_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646652_arg1_loc, align 8 | |
store volatile %struct.SinObj* %retval_xs64048310191_val, %struct.SinObj** @retr, align 8 | |
%retval_xs64048310191_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_xs64048310191_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_xs64048310191_fp, align 8 | |
%retval_xs64048310191_ra_raw = bitcast %struct.SinObj* %retval_xs64048310191_ra to i8* | |
indirectbr i8* %retval_xs64048310191_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646652 finished | |
clo646651: | |
%prologue_cur_fp10192 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646651_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10192, i64 2 | |
%clo646651_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10192, i64 3 | |
%clo646651_local4_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10192, i64 8 | |
%clo646651_local3_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10192, i64 7 | |
%clo646651_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10192, i64 6 | |
%clo646651_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10192, i64 5 | |
%clo646651_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10192, i64 4 | |
; End function Prologue | |
; Starting env-ref | |
%envref_$_37_37foldl164045710193_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$_37_37foldl164045710193_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$_37_37foldl164045710193_cur_fp, i64 2 | |
%envref_$_37_37foldl164045710193_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$_37_37foldl164045710193_cur_fp, align 8 | |
%envref_$_37_37foldl164045710193_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$_37_37foldl164045710193_clo, i64 0) | |
store volatile %struct.SinObj* %envref_$_37_37foldl164045710193_val, %struct.SinObj** %clo646651_local0_loc, align 8 | |
; Starting env-ref | |
%envref_$_37_37foldr164046210194_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$_37_37foldr164046210194_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$_37_37foldr164046210194_cur_fp, i64 2 | |
%envref_$_37_37foldr164046210194_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$_37_37foldr164046210194_cur_fp, align 8 | |
%envref_$_37_37foldr164046210194_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$_37_37foldr164046210194_clo, i64 1) | |
store volatile %struct.SinObj* %envref_$_37_37foldr164046210194_val, %struct.SinObj** %clo646651_local1_loc, align 8 | |
; Starting env-ref | |
%envref_$_37_37map164045210195_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$_37_37map164045210195_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$_37_37map164045210195_cur_fp, i64 2 | |
%envref_$_37_37map164045210195_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$_37_37map164045210195_cur_fp, align 8 | |
%envref_$_37_37map164045210195_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$_37_37map164045210195_clo, i64 2) | |
store volatile %struct.SinObj* %envref_$_37_37map164045210195_val, %struct.SinObj** %clo646651_local2_loc, align 8 | |
; Starting prim | |
%primtmp_$foldr64048510196_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646651_arg1_loc, align 8 | |
%primtmp_$foldr64048510196_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$foldr64048510196_arg_0) | |
store volatile %struct.SinObj* %primtmp_$foldr64048510196_val, %struct.SinObj** %clo646651_local3_loc, align 8 | |
; Starting make-closure | |
%makeclo_admin_45toplevel_45bnd64656110197_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646651_local3_loc, align 8 | |
%makeclo_admin_45toplevel_45bnd64656110197_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646651_local0_loc, align 8 | |
%makeclo_admin_45toplevel_45bnd64656110197_arg_2 = load volatile %struct.SinObj*, %struct.SinObj** %clo646651_local1_loc, align 8 | |
%makeclo_admin_45toplevel_45bnd64656110197_arg_3 = load volatile %struct.SinObj*, %struct.SinObj** %clo646651_local2_loc, align 8 | |
%makeclo_admin_45toplevel_45bnd64656110197_funcaddr = bitcast i8* blockaddress(@main, %clo646650) to i8* | |
%makeclo_admin_45toplevel_45bnd64656110197_val = call %struct.SinObj* @closure_alloc(i64 4, i8* %makeclo_admin_45toplevel_45bnd64656110197_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_admin_45toplevel_45bnd64656110197_val, %struct.SinObj* %makeclo_admin_45toplevel_45bnd64656110197_arg_0, i64 0) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_admin_45toplevel_45bnd64656110197_val, %struct.SinObj* %makeclo_admin_45toplevel_45bnd64656110197_arg_1, i64 1) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_admin_45toplevel_45bnd64656110197_val, %struct.SinObj* %makeclo_admin_45toplevel_45bnd64656110197_arg_2, i64 2) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_admin_45toplevel_45bnd64656110197_val, %struct.SinObj* %makeclo_admin_45toplevel_45bnd64656110197_arg_3, i64 3) | |
store volatile %struct.SinObj* %makeclo_admin_45toplevel_45bnd64656110197_val, %struct.SinObj** %clo646651_local4_loc, align 8 | |
; Starting return value. | |
%retval_admin_45toplevel_45bnd64656110198_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646651_local4_loc, align 8 | |
store volatile %struct.SinObj* %retval_admin_45toplevel_45bnd64656110198_val, %struct.SinObj** @retr, align 8 | |
%retval_admin_45toplevel_45bnd64656110198_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_admin_45toplevel_45bnd64656110198_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_admin_45toplevel_45bnd64656110198_fp, align 8 | |
%retval_admin_45toplevel_45bnd64656110198_ra_raw = bitcast %struct.SinObj* %retval_admin_45toplevel_45bnd64656110198_ra to i8* | |
indirectbr i8* %retval_admin_45toplevel_45bnd64656110198_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646651 finished | |
clo646650: | |
%prologue_cur_fp10199 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646650_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 2 | |
%clo646650_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 3 | |
%clo646650_local38_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 42 | |
%clo646650_local37_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 41 | |
%clo646650_local36_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 40 | |
%clo646650_local35_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 39 | |
%clo646650_local34_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 38 | |
%clo646650_local33_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 37 | |
%clo646650_local32_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 36 | |
%clo646650_local31_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 35 | |
%clo646650_local30_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 34 | |
%clo646650_local29_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 33 | |
%clo646650_local28_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 32 | |
%clo646650_local27_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 31 | |
%clo646650_local26_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 30 | |
%clo646650_local25_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 29 | |
%clo646650_local24_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 28 | |
%clo646650_local23_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 27 | |
%clo646650_local22_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 26 | |
%clo646650_local21_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 25 | |
%clo646650_local20_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 24 | |
%clo646650_local19_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 23 | |
%clo646650_local18_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 22 | |
%clo646650_local17_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 21 | |
%clo646650_local16_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 20 | |
%clo646650_local15_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 19 | |
%clo646650_local14_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 18 | |
%clo646650_local13_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 17 | |
%clo646650_local12_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 16 | |
%clo646650_local11_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 15 | |
%clo646650_local10_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 14 | |
%clo646650_local9_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 13 | |
%clo646650_local8_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 12 | |
%clo646650_local7_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 11 | |
%clo646650_local6_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 10 | |
%clo646650_local5_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 9 | |
%clo646650_local4_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 8 | |
%clo646650_local3_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 7 | |
%clo646650_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 6 | |
%clo646650_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 5 | |
%clo646650_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10199, i64 4 | |
; End function Prologue | |
; Starting env-ref | |
%envref_$foldr64048510200_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$foldr64048510200_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$foldr64048510200_cur_fp, i64 2 | |
%envref_$foldr64048510200_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$foldr64048510200_cur_fp, align 8 | |
%envref_$foldr64048510200_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$foldr64048510200_clo, i64 0) | |
store volatile %struct.SinObj* %envref_$foldr64048510200_val, %struct.SinObj** %clo646650_local0_loc, align 8 | |
; Starting env-ref | |
%envref_$_37_37foldl164045710201_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$_37_37foldl164045710201_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$_37_37foldl164045710201_cur_fp, i64 2 | |
%envref_$_37_37foldl164045710201_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$_37_37foldl164045710201_cur_fp, align 8 | |
%envref_$_37_37foldl164045710201_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$_37_37foldl164045710201_clo, i64 1) | |
store volatile %struct.SinObj* %envref_$_37_37foldl164045710201_val, %struct.SinObj** %clo646650_local1_loc, align 8 | |
; Starting env-ref | |
%envref_$_37_37foldr164046210202_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$_37_37foldr164046210202_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$_37_37foldr164046210202_cur_fp, i64 2 | |
%envref_$_37_37foldr164046210202_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$_37_37foldr164046210202_cur_fp, align 8 | |
%envref_$_37_37foldr164046210202_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$_37_37foldr164046210202_clo, i64 2) | |
store volatile %struct.SinObj* %envref_$_37_37foldr164046210202_val, %struct.SinObj** %clo646650_local2_loc, align 8 | |
; Starting env-ref | |
%envref_$_37_37map164045210203_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$_37_37map164045210203_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$_37_37map164045210203_cur_fp, i64 2 | |
%envref_$_37_37map164045210203_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$_37_37map164045210203_cur_fp, align 8 | |
%envref_$_37_37map164045210203_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$_37_37map164045210203_clo, i64 3) | |
store volatile %struct.SinObj* %envref_$_37_37map164045210203_val, %struct.SinObj** %clo646650_local3_loc, align 8 | |
; Starting prim | |
%primtmp_$f64048710204_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_arg1_loc, align 8 | |
%primtmp_$f64048710204_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$f64048710204_arg_0) | |
store volatile %struct.SinObj* %primtmp_$f64048710204_val, %struct.SinObj** %clo646650_local4_loc, align 8 | |
; Starting prim | |
%primtmp_$_37_37vararg63062664048810205_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_arg1_loc, align 8 | |
%primtmp_$_37_37vararg63062664048810205_val = call %struct.SinObj* @prim_cdr(%struct.SinObj* %primtmp_$_37_37vararg63062664048810205_arg_0) | |
store volatile %struct.SinObj* %primtmp_$_37_37vararg63062664048810205_val, %struct.SinObj** %clo646650_local5_loc, align 8 | |
; Starting prim | |
%primtmp_$acc64048910206_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local5_loc, align 8 | |
%primtmp_$acc64048910206_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$acc64048910206_arg_0) | |
store volatile %struct.SinObj* %primtmp_$acc64048910206_val, %struct.SinObj** %clo646650_local6_loc, align 8 | |
; Starting prim | |
%primtmp_$_37_37vararg63062664049010207_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local5_loc, align 8 | |
%primtmp_$_37_37vararg63062664049010207_val = call %struct.SinObj* @prim_cdr(%struct.SinObj* %primtmp_$_37_37vararg63062664049010207_arg_0) | |
store volatile %struct.SinObj* %primtmp_$_37_37vararg63062664049010207_val, %struct.SinObj** %clo646650_local7_loc, align 8 | |
; Starting alias | |
%$lsts640491 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local7_loc, align 8 | |
store volatile %struct.SinObj* %$lsts640491, %struct.SinObj** %clo646650_local8_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind64340310209_funcaddr = bitcast i8* blockaddress(@main, %clo646649) to i8* | |
%makeclo_anf_45bind64340310209_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind64340310209_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind64340310209_val, %struct.SinObj** %clo646650_local9_loc, align 8 | |
; Starting const-bool | |
%datbool_anf_45datum64340410210_val = call %struct.SinObj* @const_init_false() | |
store volatile %struct.SinObj* %datbool_anf_45datum64340410210_val, %struct.SinObj** %clo646650_local10_loc, align 8 | |
; Starting const-null | |
%datnull_args646455$$_37_37foldl1640457$010211_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646455$$_37_37foldl1640457$010211_val, %struct.SinObj** %clo646650_local11_loc, align 8 | |
; Starting prim | |
%primtmp_args646455$$_37_37foldl1640457$110212_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local8_loc, align 8 | |
%primtmp_args646455$$_37_37foldl1640457$110212_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local11_loc, align 8 | |
%primtmp_args646455$$_37_37foldl1640457$110212_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646455$$_37_37foldl1640457$110212_arg_0, %struct.SinObj* %primtmp_args646455$$_37_37foldl1640457$110212_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646455$$_37_37foldl1640457$110212_val, %struct.SinObj** %clo646650_local12_loc, align 8 | |
; Starting prim | |
%primtmp_args646455$$_37_37foldl1640457$210213_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local10_loc, align 8 | |
%primtmp_args646455$$_37_37foldl1640457$210213_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local12_loc, align 8 | |
%primtmp_args646455$$_37_37foldl1640457$210213_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646455$$_37_37foldl1640457$210213_arg_0, %struct.SinObj* %primtmp_args646455$$_37_37foldl1640457$210213_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646455$$_37_37foldl1640457$210213_val, %struct.SinObj** %clo646650_local13_loc, align 8 | |
; Starting prim | |
%primtmp_args646455$$_37_37foldl1640457$310214_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local9_loc, align 8 | |
%primtmp_args646455$$_37_37foldl1640457$310214_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local13_loc, align 8 | |
%primtmp_args646455$$_37_37foldl1640457$310214_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646455$$_37_37foldl1640457$310214_arg_0, %struct.SinObj* %primtmp_args646455$$_37_37foldl1640457$310214_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646455$$_37_37foldl1640457$310214_val, %struct.SinObj** %clo646650_local14_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64340510215_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 43) | |
br i1 %bind_app_anf_45bind64340510215_has_space, label %bind_app_anf_45bind64340510215_do_call, label %bind_app_anf_45bind64340510215_overflow_first | |
bind_app_anf_45bind64340510215_overflow_first: | |
%bind_app_anf_45bind64340510215_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64340510215_overflow_underflow_addr, i64 43) | |
br label %bind_app_anf_45bind64340510215_do_call | |
bind_app_anf_45bind64340510215_do_call: | |
%bind_app_anf_45bind64340510215_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local1_loc, align 8 | |
%bind_app_anf_45bind64340510215_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local14_loc, align 8 | |
%bind_app_anf_45bind64340510215_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64340510215_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64340510215_cur_fp, i64 43 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64340510215_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64340510215_return_loc = bitcast i8* blockaddress(@main, %clo646650_ret0) to %struct.SinObj* | |
%bind_app_anf_45bind64340510215_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64340510215_new_fp, i64 1 | |
%bind_app_anf_45bind64340510215_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64340510215_new_fp, i64 2 | |
%bind_app_anf_45bind64340510215_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64340510215_new_fp, i64 3 | |
%bind_app_anf_45bind64340510215_slotscast = inttoptr i64 43 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64340510215_return_loc, %struct.SinObj** %bind_app_anf_45bind64340510215_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64340510215_slotscast, %struct.SinObj** %bind_app_anf_45bind64340510215_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64340510215_closure, %struct.SinObj** %bind_app_anf_45bind64340510215_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64340510215_arglist, %struct.SinObj** %bind_app_anf_45bind64340510215_newarg1loc, align 8 | |
%bind_app_anf_45bind64340510215_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64340510215_closure) | |
indirectbr i8* %bind_app_anf_45bind64340510215_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646650_ret0: | |
%bind_app_anf_45bind64340510215_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64340510215_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64340510215_oldfp, i64 1 | |
%bind_app_anf_45bind64340510215_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64340510215_slots_loc, align 8 | |
%bind_app_anf_45bind64340510215_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64340510215_slots_ptr to i64 | |
%bind_app_anf_45bind64340510215_offset = mul i64 %bind_app_anf_45bind64340510215_slots, -1 | |
%bind_app_anf_45bind64340510215_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64340510215_oldfp, i64 %bind_app_anf_45bind64340510215_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64340510215_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643405 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643405, %struct.SinObj** %clo646650_local15_loc, align 8 | |
; Starting if | |
%if10216_reg = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local15_loc, align 8 | |
%if10216istrue = call i1 @is_truthy_value(%struct.SinObj* %if10216_reg) | |
br i1 %if10216istrue, label %branch9797_45true, label %branch9797_45false | |
branch9797_45true: | |
; Starting return value. | |
%retval_$acc64048910217_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local6_loc, align 8 | |
store volatile %struct.SinObj* %retval_$acc64048910217_val, %struct.SinObj** @retr, align 8 | |
%retval_$acc64048910217_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_$acc64048910217_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_$acc64048910217_fp, align 8 | |
%retval_$acc64048910217_ra_raw = bitcast %struct.SinObj* %retval_$acc64048910217_ra to i8* | |
indirectbr i8* %retval_$acc64048910217_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
branch9797_45false: | |
; Starting make-closure | |
%makeclo_anf_45bind64340610218_funcaddr = bitcast i8* blockaddress(@main, %clo646648) to i8* | |
%makeclo_anf_45bind64340610218_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind64340610218_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind64340610218_val, %struct.SinObj** %clo646650_local16_loc, align 8 | |
; Starting const-null | |
%datnull_args646456$$_37_37map1640452$010219_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646456$$_37_37map1640452$010219_val, %struct.SinObj** %clo646650_local17_loc, align 8 | |
; Starting prim | |
%primtmp_args646456$$_37_37map1640452$110220_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local8_loc, align 8 | |
%primtmp_args646456$$_37_37map1640452$110220_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local17_loc, align 8 | |
%primtmp_args646456$$_37_37map1640452$110220_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646456$$_37_37map1640452$110220_arg_0, %struct.SinObj* %primtmp_args646456$$_37_37map1640452$110220_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646456$$_37_37map1640452$110220_val, %struct.SinObj** %clo646650_local18_loc, align 8 | |
; Starting prim | |
%primtmp_args646456$$_37_37map1640452$210221_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local16_loc, align 8 | |
%primtmp_args646456$$_37_37map1640452$210221_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local18_loc, align 8 | |
%primtmp_args646456$$_37_37map1640452$210221_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646456$$_37_37map1640452$210221_arg_0, %struct.SinObj* %primtmp_args646456$$_37_37map1640452$210221_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646456$$_37_37map1640452$210221_val, %struct.SinObj** %clo646650_local19_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$lsts_4364049410222_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 43) | |
br i1 %bind_app_$lsts_4364049410222_has_space, label %bind_app_$lsts_4364049410222_do_call, label %bind_app_$lsts_4364049410222_overflow_first | |
bind_app_$lsts_4364049410222_overflow_first: | |
%bind_app_$lsts_4364049410222_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$lsts_4364049410222_overflow_underflow_addr, i64 43) | |
br label %bind_app_$lsts_4364049410222_do_call | |
bind_app_$lsts_4364049410222_do_call: | |
%bind_app_$lsts_4364049410222_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local3_loc, align 8 | |
%bind_app_$lsts_4364049410222_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local19_loc, align 8 | |
%bind_app_$lsts_4364049410222_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$lsts_4364049410222_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$lsts_4364049410222_cur_fp, i64 43 | |
store volatile %struct.SinObj** %bind_app_$lsts_4364049410222_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$lsts_4364049410222_return_loc = bitcast i8* blockaddress(@main, %clo646650_ret1) to %struct.SinObj* | |
%bind_app_$lsts_4364049410222_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$lsts_4364049410222_new_fp, i64 1 | |
%bind_app_$lsts_4364049410222_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$lsts_4364049410222_new_fp, i64 2 | |
%bind_app_$lsts_4364049410222_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$lsts_4364049410222_new_fp, i64 3 | |
%bind_app_$lsts_4364049410222_slotscast = inttoptr i64 43 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$lsts_4364049410222_return_loc, %struct.SinObj** %bind_app_$lsts_4364049410222_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$lsts_4364049410222_slotscast, %struct.SinObj** %bind_app_$lsts_4364049410222_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$lsts_4364049410222_closure, %struct.SinObj** %bind_app_$lsts_4364049410222_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$lsts_4364049410222_arglist, %struct.SinObj** %bind_app_$lsts_4364049410222_newarg1loc, align 8 | |
%bind_app_$lsts_4364049410222_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$lsts_4364049410222_closure) | |
indirectbr i8* %bind_app_$lsts_4364049410222_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646650_ret1: | |
%bind_app_$lsts_4364049410222_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$lsts_4364049410222_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$lsts_4364049410222_oldfp, i64 1 | |
%bind_app_$lsts_4364049410222_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$lsts_4364049410222_slots_loc, align 8 | |
%bind_app_$lsts_4364049410222_slots = ptrtoint %struct.SinObj* %bind_app_$lsts_4364049410222_slots_ptr to i64 | |
%bind_app_$lsts_4364049410222_offset = mul i64 %bind_app_$lsts_4364049410222_slots, -1 | |
%bind_app_$lsts_4364049410222_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$lsts_4364049410222_oldfp, i64 %bind_app_$lsts_4364049410222_offset | |
store volatile %struct.SinObj** %bind_app_$lsts_4364049410222_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$lsts_43640494 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$lsts_43640494, %struct.SinObj** %clo646650_local20_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind64340710223_funcaddr = bitcast i8* blockaddress(@main, %clo646647) to i8* | |
%makeclo_anf_45bind64340710223_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind64340710223_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind64340710223_val, %struct.SinObj** %clo646650_local21_loc, align 8 | |
; Starting const-null | |
%datnull_args646457$$_37_37map1640452$010224_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646457$$_37_37map1640452$010224_val, %struct.SinObj** %clo646650_local22_loc, align 8 | |
; Starting prim | |
%primtmp_args646457$$_37_37map1640452$110225_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local8_loc, align 8 | |
%primtmp_args646457$$_37_37map1640452$110225_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local22_loc, align 8 | |
%primtmp_args646457$$_37_37map1640452$110225_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646457$$_37_37map1640452$110225_arg_0, %struct.SinObj* %primtmp_args646457$$_37_37map1640452$110225_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646457$$_37_37map1640452$110225_val, %struct.SinObj** %clo646650_local23_loc, align 8 | |
; Starting prim | |
%primtmp_args646457$$_37_37map1640452$210226_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local21_loc, align 8 | |
%primtmp_args646457$$_37_37map1640452$210226_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local23_loc, align 8 | |
%primtmp_args646457$$_37_37map1640452$210226_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646457$$_37_37map1640452$210226_arg_0, %struct.SinObj* %primtmp_args646457$$_37_37map1640452$210226_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646457$$_37_37map1640452$210226_val, %struct.SinObj** %clo646650_local24_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$vs64049610227_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 43) | |
br i1 %bind_app_$vs64049610227_has_space, label %bind_app_$vs64049610227_do_call, label %bind_app_$vs64049610227_overflow_first | |
bind_app_$vs64049610227_overflow_first: | |
%bind_app_$vs64049610227_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$vs64049610227_overflow_underflow_addr, i64 43) | |
br label %bind_app_$vs64049610227_do_call | |
bind_app_$vs64049610227_do_call: | |
%bind_app_$vs64049610227_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local3_loc, align 8 | |
%bind_app_$vs64049610227_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local24_loc, align 8 | |
%bind_app_$vs64049610227_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$vs64049610227_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$vs64049610227_cur_fp, i64 43 | |
store volatile %struct.SinObj** %bind_app_$vs64049610227_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$vs64049610227_return_loc = bitcast i8* blockaddress(@main, %clo646650_ret2) to %struct.SinObj* | |
%bind_app_$vs64049610227_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$vs64049610227_new_fp, i64 1 | |
%bind_app_$vs64049610227_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$vs64049610227_new_fp, i64 2 | |
%bind_app_$vs64049610227_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$vs64049610227_new_fp, i64 3 | |
%bind_app_$vs64049610227_slotscast = inttoptr i64 43 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$vs64049610227_return_loc, %struct.SinObj** %bind_app_$vs64049610227_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$vs64049610227_slotscast, %struct.SinObj** %bind_app_$vs64049610227_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$vs64049610227_closure, %struct.SinObj** %bind_app_$vs64049610227_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$vs64049610227_arglist, %struct.SinObj** %bind_app_$vs64049610227_newarg1loc, align 8 | |
%bind_app_$vs64049610227_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$vs64049610227_closure) | |
indirectbr i8* %bind_app_$vs64049610227_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646650_ret2: | |
%bind_app_$vs64049610227_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$vs64049610227_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$vs64049610227_oldfp, i64 1 | |
%bind_app_$vs64049610227_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$vs64049610227_slots_loc, align 8 | |
%bind_app_$vs64049610227_slots = ptrtoint %struct.SinObj* %bind_app_$vs64049610227_slots_ptr to i64 | |
%bind_app_$vs64049610227_offset = mul i64 %bind_app_$vs64049610227_slots, -1 | |
%bind_app_$vs64049610227_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$vs64049610227_oldfp, i64 %bind_app_$vs64049610227_offset | |
store volatile %struct.SinObj** %bind_app_$vs64049610227_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$vs640496 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$vs640496, %struct.SinObj** %clo646650_local25_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind64340810228_funcaddr = bitcast i8* blockaddress(@main, %clo646646) to i8* | |
%makeclo_anf_45bind64340810228_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind64340810228_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind64340810228_val, %struct.SinObj** %clo646650_local26_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind64340910229_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local6_loc, align 8 | |
%primtmp_anf_45bind64340910229_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local20_loc, align 8 | |
%primtmp_anf_45bind64340910229_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_anf_45bind64340910229_arg_0, %struct.SinObj* %primtmp_anf_45bind64340910229_arg_1) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64340910229_val, %struct.SinObj** %clo646650_local27_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind64341010230_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local4_loc, align 8 | |
%primtmp_anf_45bind64341010230_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local27_loc, align 8 | |
%primtmp_anf_45bind64341010230_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_anf_45bind64341010230_arg_0, %struct.SinObj* %primtmp_anf_45bind64341010230_arg_1) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64341010230_val, %struct.SinObj** %clo646650_local28_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64341110231_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 43) | |
br i1 %bind_app_anf_45bind64341110231_has_space, label %bind_app_anf_45bind64341110231_do_call, label %bind_app_anf_45bind64341110231_overflow_first | |
bind_app_anf_45bind64341110231_overflow_first: | |
%bind_app_anf_45bind64341110231_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64341110231_overflow_underflow_addr, i64 43) | |
br label %bind_app_anf_45bind64341110231_do_call | |
bind_app_anf_45bind64341110231_do_call: | |
%bind_app_anf_45bind64341110231_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local0_loc, align 8 | |
%bind_app_anf_45bind64341110231_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local28_loc, align 8 | |
%bind_app_anf_45bind64341110231_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64341110231_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341110231_cur_fp, i64 43 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64341110231_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64341110231_return_loc = bitcast i8* blockaddress(@main, %clo646650_ret3) to %struct.SinObj* | |
%bind_app_anf_45bind64341110231_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341110231_new_fp, i64 1 | |
%bind_app_anf_45bind64341110231_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341110231_new_fp, i64 2 | |
%bind_app_anf_45bind64341110231_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341110231_new_fp, i64 3 | |
%bind_app_anf_45bind64341110231_slotscast = inttoptr i64 43 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64341110231_return_loc, %struct.SinObj** %bind_app_anf_45bind64341110231_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64341110231_slotscast, %struct.SinObj** %bind_app_anf_45bind64341110231_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64341110231_closure, %struct.SinObj** %bind_app_anf_45bind64341110231_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64341110231_arglist, %struct.SinObj** %bind_app_anf_45bind64341110231_newarg1loc, align 8 | |
%bind_app_anf_45bind64341110231_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64341110231_closure) | |
indirectbr i8* %bind_app_anf_45bind64341110231_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646650_ret3: | |
%bind_app_anf_45bind64341110231_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64341110231_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341110231_oldfp, i64 1 | |
%bind_app_anf_45bind64341110231_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341110231_slots_loc, align 8 | |
%bind_app_anf_45bind64341110231_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64341110231_slots_ptr to i64 | |
%bind_app_anf_45bind64341110231_offset = mul i64 %bind_app_anf_45bind64341110231_slots, -1 | |
%bind_app_anf_45bind64341110231_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341110231_oldfp, i64 %bind_app_anf_45bind64341110231_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64341110231_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643411 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643411, %struct.SinObj** %clo646650_local29_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind64341210232_funcaddr = bitcast i8* blockaddress(@main, %clo646645) to i8* | |
%makeclo_anf_45bind64341210232_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind64341210232_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind64341210232_val, %struct.SinObj** %clo646650_local30_loc, align 8 | |
; Starting const-null | |
%datnull_args646459$anf_45bind643412$010233_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646459$anf_45bind643412$010233_val, %struct.SinObj** %clo646650_local31_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64341310234_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 43) | |
br i1 %bind_app_anf_45bind64341310234_has_space, label %bind_app_anf_45bind64341310234_do_call, label %bind_app_anf_45bind64341310234_overflow_first | |
bind_app_anf_45bind64341310234_overflow_first: | |
%bind_app_anf_45bind64341310234_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64341310234_overflow_underflow_addr, i64 43) | |
br label %bind_app_anf_45bind64341310234_do_call | |
bind_app_anf_45bind64341310234_do_call: | |
%bind_app_anf_45bind64341310234_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local30_loc, align 8 | |
%bind_app_anf_45bind64341310234_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local31_loc, align 8 | |
%bind_app_anf_45bind64341310234_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64341310234_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341310234_cur_fp, i64 43 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64341310234_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64341310234_return_loc = bitcast i8* blockaddress(@main, %clo646650_ret4) to %struct.SinObj* | |
%bind_app_anf_45bind64341310234_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341310234_new_fp, i64 1 | |
%bind_app_anf_45bind64341310234_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341310234_new_fp, i64 2 | |
%bind_app_anf_45bind64341310234_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341310234_new_fp, i64 3 | |
%bind_app_anf_45bind64341310234_slotscast = inttoptr i64 43 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64341310234_return_loc, %struct.SinObj** %bind_app_anf_45bind64341310234_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64341310234_slotscast, %struct.SinObj** %bind_app_anf_45bind64341310234_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64341310234_closure, %struct.SinObj** %bind_app_anf_45bind64341310234_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64341310234_arglist, %struct.SinObj** %bind_app_anf_45bind64341310234_newarg1loc, align 8 | |
%bind_app_anf_45bind64341310234_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64341310234_closure) | |
indirectbr i8* %bind_app_anf_45bind64341310234_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646650_ret4: | |
%bind_app_anf_45bind64341310234_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64341310234_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341310234_oldfp, i64 1 | |
%bind_app_anf_45bind64341310234_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341310234_slots_loc, align 8 | |
%bind_app_anf_45bind64341310234_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64341310234_slots_ptr to i64 | |
%bind_app_anf_45bind64341310234_offset = mul i64 %bind_app_anf_45bind64341310234_slots, -1 | |
%bind_app_anf_45bind64341310234_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341310234_oldfp, i64 %bind_app_anf_45bind64341310234_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64341310234_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643413 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643413, %struct.SinObj** %clo646650_local32_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind64341410235_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local29_loc, align 8 | |
%primtmp_anf_45bind64341410235_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local32_loc, align 8 | |
%primtmp_anf_45bind64341410235_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_anf_45bind64341410235_arg_0, %struct.SinObj* %primtmp_anf_45bind64341410235_arg_1) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64341410235_val, %struct.SinObj** %clo646650_local33_loc, align 8 | |
; Starting const-null | |
%datnull_args646460$$_37_37foldr1640462$010236_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646460$$_37_37foldr1640462$010236_val, %struct.SinObj** %clo646650_local34_loc, align 8 | |
; Starting prim | |
%primtmp_args646460$$_37_37foldr1640462$110237_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local25_loc, align 8 | |
%primtmp_args646460$$_37_37foldr1640462$110237_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local34_loc, align 8 | |
%primtmp_args646460$$_37_37foldr1640462$110237_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646460$$_37_37foldr1640462$110237_arg_0, %struct.SinObj* %primtmp_args646460$$_37_37foldr1640462$110237_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646460$$_37_37foldr1640462$110237_val, %struct.SinObj** %clo646650_local35_loc, align 8 | |
; Starting prim | |
%primtmp_args646460$$_37_37foldr1640462$210238_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local33_loc, align 8 | |
%primtmp_args646460$$_37_37foldr1640462$210238_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local35_loc, align 8 | |
%primtmp_args646460$$_37_37foldr1640462$210238_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646460$$_37_37foldr1640462$210238_arg_0, %struct.SinObj* %primtmp_args646460$$_37_37foldr1640462$210238_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646460$$_37_37foldr1640462$210238_val, %struct.SinObj** %clo646650_local36_loc, align 8 | |
; Starting prim | |
%primtmp_args646460$$_37_37foldr1640462$310239_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local26_loc, align 8 | |
%primtmp_args646460$$_37_37foldr1640462$310239_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local36_loc, align 8 | |
%primtmp_args646460$$_37_37foldr1640462$310239_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646460$$_37_37foldr1640462$310239_arg_0, %struct.SinObj* %primtmp_args646460$$_37_37foldr1640462$310239_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646460$$_37_37foldr1640462$310239_val, %struct.SinObj** %clo646650_local37_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64341510240_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 43) | |
br i1 %bind_app_anf_45bind64341510240_has_space, label %bind_app_anf_45bind64341510240_do_call, label %bind_app_anf_45bind64341510240_overflow_first | |
bind_app_anf_45bind64341510240_overflow_first: | |
%bind_app_anf_45bind64341510240_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64341510240_overflow_underflow_addr, i64 43) | |
br label %bind_app_anf_45bind64341510240_do_call | |
bind_app_anf_45bind64341510240_do_call: | |
%bind_app_anf_45bind64341510240_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local2_loc, align 8 | |
%bind_app_anf_45bind64341510240_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local37_loc, align 8 | |
%bind_app_anf_45bind64341510240_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64341510240_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341510240_cur_fp, i64 43 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64341510240_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64341510240_return_loc = bitcast i8* blockaddress(@main, %clo646650_ret5) to %struct.SinObj* | |
%bind_app_anf_45bind64341510240_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341510240_new_fp, i64 1 | |
%bind_app_anf_45bind64341510240_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341510240_new_fp, i64 2 | |
%bind_app_anf_45bind64341510240_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341510240_new_fp, i64 3 | |
%bind_app_anf_45bind64341510240_slotscast = inttoptr i64 43 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64341510240_return_loc, %struct.SinObj** %bind_app_anf_45bind64341510240_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64341510240_slotscast, %struct.SinObj** %bind_app_anf_45bind64341510240_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64341510240_closure, %struct.SinObj** %bind_app_anf_45bind64341510240_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64341510240_arglist, %struct.SinObj** %bind_app_anf_45bind64341510240_newarg1loc, align 8 | |
%bind_app_anf_45bind64341510240_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64341510240_closure) | |
indirectbr i8* %bind_app_anf_45bind64341510240_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646650_ret5: | |
%bind_app_anf_45bind64341510240_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64341510240_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341510240_oldfp, i64 1 | |
%bind_app_anf_45bind64341510240_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341510240_slots_loc, align 8 | |
%bind_app_anf_45bind64341510240_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64341510240_slots_ptr to i64 | |
%bind_app_anf_45bind64341510240_offset = mul i64 %bind_app_anf_45bind64341510240_slots, -1 | |
%bind_app_anf_45bind64341510240_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341510240_oldfp, i64 %bind_app_anf_45bind64341510240_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64341510240_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643415 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643415, %struct.SinObj** %clo646650_local38_loc, align 8 | |
; Starting tail-clo-app | |
%_tailapp_$f64048710241_clo = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local4_loc, align 8 | |
%_tailapp_$f64048710241_args = load volatile %struct.SinObj*, %struct.SinObj** %clo646650_local38_loc, align 8 | |
%_tailapp_$f64048710241_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%_tailapp_$f64048710241_arg0 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_$f64048710241_fp, i64 2 | |
%_tailapp_$f64048710241_arg1 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_$f64048710241_fp, i64 3 | |
store volatile %struct.SinObj* %_tailapp_$f64048710241_clo, %struct.SinObj** %_tailapp_$f64048710241_arg0, align 8 | |
store volatile %struct.SinObj* %_tailapp_$f64048710241_args, %struct.SinObj** %_tailapp_$f64048710241_arg1, align 8 | |
%_tailapp_$f64048710241_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %_tailapp_$f64048710241_clo) | |
indirectbr i8* %_tailapp_$f64048710241_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
; Function clo646650 finished | |
clo646649: | |
%prologue_cur_fp10242 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646649_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10242, i64 2 | |
%clo646649_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10242, i64 3 | |
%clo646649_local3_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10242, i64 7 | |
%clo646649_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10242, i64 6 | |
%clo646649_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10242, i64 5 | |
%clo646649_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10242, i64 4 | |
; End function Prologue | |
; Starting prim | |
%primtmp_$lst64049210243_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646649_arg1_loc, align 8 | |
%primtmp_$lst64049210243_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$lst64049210243_arg_0) | |
store volatile %struct.SinObj* %primtmp_$lst64049210243_val, %struct.SinObj** %clo646649_local0_loc, align 8 | |
; Starting prim | |
%primtmp_arglist646454110244_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646649_arg1_loc, align 8 | |
%primtmp_arglist646454110244_val = call %struct.SinObj* @prim_cdr(%struct.SinObj* %primtmp_arglist646454110244_arg_0) | |
store volatile %struct.SinObj* %primtmp_arglist646454110244_val, %struct.SinObj** %clo646649_local1_loc, align 8 | |
; Starting prim | |
%primtmp_$b64049310245_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646649_local1_loc, align 8 | |
%primtmp_$b64049310245_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$b64049310245_arg_0) | |
store volatile %struct.SinObj* %primtmp_$b64049310245_val, %struct.SinObj** %clo646649_local2_loc, align 8 | |
; Starting if | |
%if10246_reg = load volatile %struct.SinObj*, %struct.SinObj** %clo646649_local2_loc, align 8 | |
%if10246istrue = call i1 @is_truthy_value(%struct.SinObj* %if10246_reg) | |
br i1 %if10246istrue, label %branch9798_45true, label %branch9798_45false | |
branch9798_45true: | |
; Starting return value. | |
%retval_$b64049310247_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646649_local2_loc, align 8 | |
store volatile %struct.SinObj* %retval_$b64049310247_val, %struct.SinObj** @retr, align 8 | |
%retval_$b64049310247_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_$b64049310247_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_$b64049310247_fp, align 8 | |
%retval_$b64049310247_ra_raw = bitcast %struct.SinObj* %retval_$b64049310247_ra to i8* | |
indirectbr i8* %retval_$b64049310247_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
branch9798_45false: | |
; Starting prim | |
%primtmp_admin_45toplevel_45bnd64656210248_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646649_local0_loc, align 8 | |
%primtmp_admin_45toplevel_45bnd64656210248_val = call %struct.SinObj* @prim_null_63(%struct.SinObj* %primtmp_admin_45toplevel_45bnd64656210248_arg_0) | |
store volatile %struct.SinObj* %primtmp_admin_45toplevel_45bnd64656210248_val, %struct.SinObj** %clo646649_local3_loc, align 8 | |
; Starting return value. | |
%retval_admin_45toplevel_45bnd64656210249_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646649_local3_loc, align 8 | |
store volatile %struct.SinObj* %retval_admin_45toplevel_45bnd64656210249_val, %struct.SinObj** @retr, align 8 | |
%retval_admin_45toplevel_45bnd64656210249_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_admin_45toplevel_45bnd64656210249_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_admin_45toplevel_45bnd64656210249_fp, align 8 | |
%retval_admin_45toplevel_45bnd64656210249_ra_raw = bitcast %struct.SinObj* %retval_admin_45toplevel_45bnd64656210249_ra to i8* | |
indirectbr i8* %retval_admin_45toplevel_45bnd64656210249_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646649 finished | |
clo646648: | |
%prologue_cur_fp10250 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646648_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10250, i64 2 | |
%clo646648_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10250, i64 3 | |
%clo646648_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10250, i64 4 | |
; End function Prologue | |
; starting apply-prim | |
%applyprimtmp_admin_45toplevel_45bnd64656310251_arg = load volatile %struct.SinObj*, %struct.SinObj** %clo646648_arg1_loc, align 8 | |
%applyprimtmp_admin_45toplevel_45bnd64656310251_val = call %struct.SinObj* @applyprim_cdr(%struct.SinObj* %applyprimtmp_admin_45toplevel_45bnd64656310251_arg) | |
store volatile %struct.SinObj* %applyprimtmp_admin_45toplevel_45bnd64656310251_val, %struct.SinObj** %clo646648_local0_loc, align 8 | |
; Starting return value. | |
%retval_admin_45toplevel_45bnd64656310252_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646648_local0_loc, align 8 | |
store volatile %struct.SinObj* %retval_admin_45toplevel_45bnd64656310252_val, %struct.SinObj** @retr, align 8 | |
%retval_admin_45toplevel_45bnd64656310252_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_admin_45toplevel_45bnd64656310252_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_admin_45toplevel_45bnd64656310252_fp, align 8 | |
%retval_admin_45toplevel_45bnd64656310252_ra_raw = bitcast %struct.SinObj* %retval_admin_45toplevel_45bnd64656310252_ra to i8* | |
indirectbr i8* %retval_admin_45toplevel_45bnd64656310252_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646648 finished | |
clo646647: | |
%prologue_cur_fp10253 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646647_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10253, i64 2 | |
%clo646647_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10253, i64 3 | |
%clo646647_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10253, i64 4 | |
; End function Prologue | |
; starting apply-prim | |
%applyprimtmp_admin_45toplevel_45bnd64656410254_arg = load volatile %struct.SinObj*, %struct.SinObj** %clo646647_arg1_loc, align 8 | |
%applyprimtmp_admin_45toplevel_45bnd64656410254_val = call %struct.SinObj* @applyprim_car(%struct.SinObj* %applyprimtmp_admin_45toplevel_45bnd64656410254_arg) | |
store volatile %struct.SinObj* %applyprimtmp_admin_45toplevel_45bnd64656410254_val, %struct.SinObj** %clo646647_local0_loc, align 8 | |
; Starting return value. | |
%retval_admin_45toplevel_45bnd64656410255_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646647_local0_loc, align 8 | |
store volatile %struct.SinObj* %retval_admin_45toplevel_45bnd64656410255_val, %struct.SinObj** @retr, align 8 | |
%retval_admin_45toplevel_45bnd64656410255_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_admin_45toplevel_45bnd64656410255_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_admin_45toplevel_45bnd64656410255_fp, align 8 | |
%retval_admin_45toplevel_45bnd64656410255_ra_raw = bitcast %struct.SinObj* %retval_admin_45toplevel_45bnd64656410255_ra to i8* | |
indirectbr i8* %retval_admin_45toplevel_45bnd64656410255_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646647 finished | |
clo646646: | |
%prologue_cur_fp10256 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646646_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10256, i64 2 | |
%clo646646_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10256, i64 3 | |
%clo646646_local3_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10256, i64 7 | |
%clo646646_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10256, i64 6 | |
%clo646646_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10256, i64 5 | |
%clo646646_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10256, i64 4 | |
; End function Prologue | |
; Starting prim | |
%primtmp_$a64049810257_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646646_arg1_loc, align 8 | |
%primtmp_$a64049810257_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$a64049810257_arg_0) | |
store volatile %struct.SinObj* %primtmp_$a64049810257_val, %struct.SinObj** %clo646646_local0_loc, align 8 | |
; Starting prim | |
%primtmp_arglist646458110258_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646646_arg1_loc, align 8 | |
%primtmp_arglist646458110258_val = call %struct.SinObj* @prim_cdr(%struct.SinObj* %primtmp_arglist646458110258_arg_0) | |
store volatile %struct.SinObj* %primtmp_arglist646458110258_val, %struct.SinObj** %clo646646_local1_loc, align 8 | |
; Starting prim | |
%primtmp_$b64049910259_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646646_local1_loc, align 8 | |
%primtmp_$b64049910259_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$b64049910259_arg_0) | |
store volatile %struct.SinObj* %primtmp_$b64049910259_val, %struct.SinObj** %clo646646_local2_loc, align 8 | |
; Starting prim | |
%primtmp_admin_45toplevel_45bnd64656510260_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646646_local0_loc, align 8 | |
%primtmp_admin_45toplevel_45bnd64656510260_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646646_local2_loc, align 8 | |
%primtmp_admin_45toplevel_45bnd64656510260_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_admin_45toplevel_45bnd64656510260_arg_0, %struct.SinObj* %primtmp_admin_45toplevel_45bnd64656510260_arg_1) | |
store volatile %struct.SinObj* %primtmp_admin_45toplevel_45bnd64656510260_val, %struct.SinObj** %clo646646_local3_loc, align 8 | |
; Starting return value. | |
%retval_admin_45toplevel_45bnd64656510261_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646646_local3_loc, align 8 | |
store volatile %struct.SinObj* %retval_admin_45toplevel_45bnd64656510261_val, %struct.SinObj** @retr, align 8 | |
%retval_admin_45toplevel_45bnd64656510261_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_admin_45toplevel_45bnd64656510261_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_admin_45toplevel_45bnd64656510261_fp, align 8 | |
%retval_admin_45toplevel_45bnd64656510261_ra_raw = bitcast %struct.SinObj* %retval_admin_45toplevel_45bnd64656510261_ra to i8* | |
indirectbr i8* %retval_admin_45toplevel_45bnd64656510261_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646646 finished | |
clo646645: | |
%prologue_cur_fp10262 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646645_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10262, i64 2 | |
%clo646645_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10262, i64 3 | |
; End function Prologue | |
; Starting return value. | |
%retval_xs64050010263_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646645_arg1_loc, align 8 | |
store volatile %struct.SinObj* %retval_xs64050010263_val, %struct.SinObj** @retr, align 8 | |
%retval_xs64050010263_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_xs64050010263_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_xs64050010263_fp, align 8 | |
%retval_xs64050010263_ra_raw = bitcast %struct.SinObj* %retval_xs64050010263_ra to i8* | |
indirectbr i8* %retval_xs64050010263_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646645 finished | |
clo646644: | |
%prologue_cur_fp10264 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646644_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10264, i64 2 | |
%clo646644_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10264, i64 3 | |
%clo646644_local4_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10264, i64 8 | |
%clo646644_local3_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10264, i64 7 | |
%clo646644_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10264, i64 6 | |
%clo646644_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10264, i64 5 | |
%clo646644_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10264, i64 4 | |
; End function Prologue | |
; Starting env-ref | |
%envref_$foldr64048410265_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$foldr64048410265_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$foldr64048410265_cur_fp, i64 2 | |
%envref_$foldr64048410265_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$foldr64048410265_cur_fp, align 8 | |
%envref_$foldr64048410265_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$foldr64048410265_clo, i64 0) | |
store volatile %struct.SinObj* %envref_$foldr64048410265_val, %struct.SinObj** %clo646644_local0_loc, align 8 | |
; Starting env-ref | |
%envref_$last64047910266_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$last64047910266_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$last64047910266_cur_fp, i64 2 | |
%envref_$last64047910266_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$last64047910266_cur_fp, align 8 | |
%envref_$last64047910266_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$last64047910266_clo, i64 1) | |
store volatile %struct.SinObj* %envref_$last64047910266_val, %struct.SinObj** %clo646644_local1_loc, align 8 | |
; Starting env-ref | |
%envref_$drop_45right64047610267_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$drop_45right64047610267_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$drop_45right64047610267_cur_fp, i64 2 | |
%envref_$drop_45right64047610267_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$drop_45right64047610267_cur_fp, align 8 | |
%envref_$drop_45right64047610267_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$drop_45right64047610267_clo, i64 2) | |
store volatile %struct.SinObj* %envref_$drop_45right64047610267_val, %struct.SinObj** %clo646644_local2_loc, align 8 | |
; Starting prim | |
%primtmp_$map64050210268_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646644_arg1_loc, align 8 | |
%primtmp_$map64050210268_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$map64050210268_arg_0) | |
store volatile %struct.SinObj* %primtmp_$map64050210268_val, %struct.SinObj** %clo646644_local3_loc, align 8 | |
; Starting make-closure | |
%makeclo_admin_45toplevel_45bnd64656610269_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646644_local0_loc, align 8 | |
%makeclo_admin_45toplevel_45bnd64656610269_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646644_local1_loc, align 8 | |
%makeclo_admin_45toplevel_45bnd64656610269_arg_2 = load volatile %struct.SinObj*, %struct.SinObj** %clo646644_local2_loc, align 8 | |
%makeclo_admin_45toplevel_45bnd64656610269_funcaddr = bitcast i8* blockaddress(@main, %clo646643) to i8* | |
%makeclo_admin_45toplevel_45bnd64656610269_val = call %struct.SinObj* @closure_alloc(i64 3, i8* %makeclo_admin_45toplevel_45bnd64656610269_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_admin_45toplevel_45bnd64656610269_val, %struct.SinObj* %makeclo_admin_45toplevel_45bnd64656610269_arg_0, i64 0) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_admin_45toplevel_45bnd64656610269_val, %struct.SinObj* %makeclo_admin_45toplevel_45bnd64656610269_arg_1, i64 1) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_admin_45toplevel_45bnd64656610269_val, %struct.SinObj* %makeclo_admin_45toplevel_45bnd64656610269_arg_2, i64 2) | |
store volatile %struct.SinObj* %makeclo_admin_45toplevel_45bnd64656610269_val, %struct.SinObj** %clo646644_local4_loc, align 8 | |
; Starting return value. | |
%retval_admin_45toplevel_45bnd64656610270_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646644_local4_loc, align 8 | |
store volatile %struct.SinObj* %retval_admin_45toplevel_45bnd64656610270_val, %struct.SinObj** @retr, align 8 | |
%retval_admin_45toplevel_45bnd64656610270_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_admin_45toplevel_45bnd64656610270_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_admin_45toplevel_45bnd64656610270_fp, align 8 | |
%retval_admin_45toplevel_45bnd64656610270_ra_raw = bitcast %struct.SinObj* %retval_admin_45toplevel_45bnd64656610270_ra to i8* | |
indirectbr i8* %retval_admin_45toplevel_45bnd64656610270_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646644 finished | |
clo646643: | |
%prologue_cur_fp10271 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646643_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10271, i64 2 | |
%clo646643_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10271, i64 3 | |
%clo646643_local11_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10271, i64 15 | |
%clo646643_local10_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10271, i64 14 | |
%clo646643_local9_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10271, i64 13 | |
%clo646643_local8_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10271, i64 12 | |
%clo646643_local7_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10271, i64 11 | |
%clo646643_local6_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10271, i64 10 | |
%clo646643_local5_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10271, i64 9 | |
%clo646643_local4_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10271, i64 8 | |
%clo646643_local3_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10271, i64 7 | |
%clo646643_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10271, i64 6 | |
%clo646643_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10271, i64 5 | |
%clo646643_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10271, i64 4 | |
; End function Prologue | |
; Starting env-ref | |
%envref_$foldr64048410272_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$foldr64048410272_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$foldr64048410272_cur_fp, i64 2 | |
%envref_$foldr64048410272_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$foldr64048410272_cur_fp, align 8 | |
%envref_$foldr64048410272_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$foldr64048410272_clo, i64 0) | |
store volatile %struct.SinObj* %envref_$foldr64048410272_val, %struct.SinObj** %clo646643_local0_loc, align 8 | |
; Starting env-ref | |
%envref_$last64047910273_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$last64047910273_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$last64047910273_cur_fp, i64 2 | |
%envref_$last64047910273_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$last64047910273_cur_fp, align 8 | |
%envref_$last64047910273_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$last64047910273_clo, i64 1) | |
store volatile %struct.SinObj* %envref_$last64047910273_val, %struct.SinObj** %clo646643_local1_loc, align 8 | |
; Starting env-ref | |
%envref_$drop_45right64047610274_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$drop_45right64047610274_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$drop_45right64047610274_cur_fp, i64 2 | |
%envref_$drop_45right64047610274_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$drop_45right64047610274_cur_fp, align 8 | |
%envref_$drop_45right64047610274_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$drop_45right64047610274_clo, i64 2) | |
store volatile %struct.SinObj* %envref_$drop_45right64047610274_val, %struct.SinObj** %clo646643_local2_loc, align 8 | |
; Starting prim | |
%primtmp_$f64050410275_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646643_arg1_loc, align 8 | |
%primtmp_$f64050410275_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$f64050410275_arg_0) | |
store volatile %struct.SinObj* %primtmp_$f64050410275_val, %struct.SinObj** %clo646643_local3_loc, align 8 | |
; Starting prim | |
%primtmp_$_37_37vararg63062764050510276_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646643_arg1_loc, align 8 | |
%primtmp_$_37_37vararg63062764050510276_val = call %struct.SinObj* @prim_cdr(%struct.SinObj* %primtmp_$_37_37vararg63062764050510276_arg_0) | |
store volatile %struct.SinObj* %primtmp_$_37_37vararg63062764050510276_val, %struct.SinObj** %clo646643_local4_loc, align 8 | |
; Starting alias | |
%$lsts640506 = load volatile %struct.SinObj*, %struct.SinObj** %clo646643_local4_loc, align 8 | |
store volatile %struct.SinObj* %$lsts640506, %struct.SinObj** %clo646643_local5_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind64342110278_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646643_local1_loc, align 8 | |
%makeclo_anf_45bind64342110278_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646643_local3_loc, align 8 | |
%makeclo_anf_45bind64342110278_arg_2 = load volatile %struct.SinObj*, %struct.SinObj** %clo646643_local2_loc, align 8 | |
%makeclo_anf_45bind64342110278_funcaddr = bitcast i8* blockaddress(@main, %clo646642) to i8* | |
%makeclo_anf_45bind64342110278_val = call %struct.SinObj* @closure_alloc(i64 3, i8* %makeclo_anf_45bind64342110278_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_anf_45bind64342110278_val, %struct.SinObj* %makeclo_anf_45bind64342110278_arg_0, i64 0) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_anf_45bind64342110278_val, %struct.SinObj* %makeclo_anf_45bind64342110278_arg_1, i64 1) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_anf_45bind64342110278_val, %struct.SinObj* %makeclo_anf_45bind64342110278_arg_2, i64 2) | |
store volatile %struct.SinObj* %makeclo_anf_45bind64342110278_val, %struct.SinObj** %clo646643_local6_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind64342210279_funcaddr = bitcast i8* blockaddress(@main, %clo646641) to i8* | |
%makeclo_anf_45bind64342210279_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind64342210279_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind64342210279_val, %struct.SinObj** %clo646643_local7_loc, align 8 | |
; Starting const-null | |
%datnull_args646465$anf_45bind643422$010280_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646465$anf_45bind643422$010280_val, %struct.SinObj** %clo646643_local8_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64342310281_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 16) | |
br i1 %bind_app_anf_45bind64342310281_has_space, label %bind_app_anf_45bind64342310281_do_call, label %bind_app_anf_45bind64342310281_overflow_first | |
bind_app_anf_45bind64342310281_overflow_first: | |
%bind_app_anf_45bind64342310281_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64342310281_overflow_underflow_addr, i64 16) | |
br label %bind_app_anf_45bind64342310281_do_call | |
bind_app_anf_45bind64342310281_do_call: | |
%bind_app_anf_45bind64342310281_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646643_local7_loc, align 8 | |
%bind_app_anf_45bind64342310281_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646643_local8_loc, align 8 | |
%bind_app_anf_45bind64342310281_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64342310281_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342310281_cur_fp, i64 16 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64342310281_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64342310281_return_loc = bitcast i8* blockaddress(@main, %clo646643_ret0) to %struct.SinObj* | |
%bind_app_anf_45bind64342310281_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342310281_new_fp, i64 1 | |
%bind_app_anf_45bind64342310281_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342310281_new_fp, i64 2 | |
%bind_app_anf_45bind64342310281_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342310281_new_fp, i64 3 | |
%bind_app_anf_45bind64342310281_slotscast = inttoptr i64 16 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64342310281_return_loc, %struct.SinObj** %bind_app_anf_45bind64342310281_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64342310281_slotscast, %struct.SinObj** %bind_app_anf_45bind64342310281_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64342310281_closure, %struct.SinObj** %bind_app_anf_45bind64342310281_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64342310281_arglist, %struct.SinObj** %bind_app_anf_45bind64342310281_newarg1loc, align 8 | |
%bind_app_anf_45bind64342310281_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64342310281_closure) | |
indirectbr i8* %bind_app_anf_45bind64342310281_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646643_ret0: | |
%bind_app_anf_45bind64342310281_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64342310281_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342310281_oldfp, i64 1 | |
%bind_app_anf_45bind64342310281_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342310281_slots_loc, align 8 | |
%bind_app_anf_45bind64342310281_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64342310281_slots_ptr to i64 | |
%bind_app_anf_45bind64342310281_offset = mul i64 %bind_app_anf_45bind64342310281_slots, -1 | |
%bind_app_anf_45bind64342310281_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342310281_oldfp, i64 %bind_app_anf_45bind64342310281_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64342310281_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643423 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643423, %struct.SinObj** %clo646643_local9_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind64342410282_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646643_local9_loc, align 8 | |
%primtmp_anf_45bind64342410282_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646643_local5_loc, align 8 | |
%primtmp_anf_45bind64342410282_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_anf_45bind64342410282_arg_0, %struct.SinObj* %primtmp_anf_45bind64342410282_arg_1) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64342410282_val, %struct.SinObj** %clo646643_local10_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind64342510283_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646643_local6_loc, align 8 | |
%primtmp_anf_45bind64342510283_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646643_local10_loc, align 8 | |
%primtmp_anf_45bind64342510283_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_anf_45bind64342510283_arg_0, %struct.SinObj* %primtmp_anf_45bind64342510283_arg_1) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64342510283_val, %struct.SinObj** %clo646643_local11_loc, align 8 | |
; Starting tail-clo-app | |
%_tailapp_$foldr64048410284_clo = load volatile %struct.SinObj*, %struct.SinObj** %clo646643_local0_loc, align 8 | |
%_tailapp_$foldr64048410284_args = load volatile %struct.SinObj*, %struct.SinObj** %clo646643_local11_loc, align 8 | |
%_tailapp_$foldr64048410284_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%_tailapp_$foldr64048410284_arg0 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_$foldr64048410284_fp, i64 2 | |
%_tailapp_$foldr64048410284_arg1 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_$foldr64048410284_fp, i64 3 | |
store volatile %struct.SinObj* %_tailapp_$foldr64048410284_clo, %struct.SinObj** %_tailapp_$foldr64048410284_arg0, align 8 | |
store volatile %struct.SinObj* %_tailapp_$foldr64048410284_args, %struct.SinObj** %_tailapp_$foldr64048410284_arg1, align 8 | |
%_tailapp_$foldr64048410284_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %_tailapp_$foldr64048410284_clo) | |
indirectbr i8* %_tailapp_$foldr64048410284_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
; Function clo646643 finished | |
clo646642: | |
%prologue_cur_fp10285 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646642_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10285, i64 2 | |
%clo646642_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10285, i64 3 | |
%clo646642_local12_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10285, i64 16 | |
%clo646642_local11_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10285, i64 15 | |
%clo646642_local10_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10285, i64 14 | |
%clo646642_local9_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10285, i64 13 | |
%clo646642_local8_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10285, i64 12 | |
%clo646642_local7_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10285, i64 11 | |
%clo646642_local6_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10285, i64 10 | |
%clo646642_local5_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10285, i64 9 | |
%clo646642_local4_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10285, i64 8 | |
%clo646642_local3_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10285, i64 7 | |
%clo646642_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10285, i64 6 | |
%clo646642_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10285, i64 5 | |
%clo646642_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10285, i64 4 | |
; End function Prologue | |
; Starting env-ref | |
%envref_$last64047910286_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$last64047910286_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$last64047910286_cur_fp, i64 2 | |
%envref_$last64047910286_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$last64047910286_cur_fp, align 8 | |
%envref_$last64047910286_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$last64047910286_clo, i64 0) | |
store volatile %struct.SinObj* %envref_$last64047910286_val, %struct.SinObj** %clo646642_local0_loc, align 8 | |
; Starting env-ref | |
%envref_$f64050410287_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$f64050410287_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$f64050410287_cur_fp, i64 2 | |
%envref_$f64050410287_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$f64050410287_cur_fp, align 8 | |
%envref_$f64050410287_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$f64050410287_clo, i64 1) | |
store volatile %struct.SinObj* %envref_$f64050410287_val, %struct.SinObj** %clo646642_local1_loc, align 8 | |
; Starting env-ref | |
%envref_$drop_45right64047610288_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$drop_45right64047610288_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$drop_45right64047610288_cur_fp, i64 2 | |
%envref_$drop_45right64047610288_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$drop_45right64047610288_cur_fp, align 8 | |
%envref_$drop_45right64047610288_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$drop_45right64047610288_clo, i64 2) | |
store volatile %struct.SinObj* %envref_$drop_45right64047610288_val, %struct.SinObj** %clo646642_local2_loc, align 8 | |
; Starting const-int | |
%datint_anf_45datum64341710289_val = call %struct.SinObj* @const_init_int(i64 1) | |
store volatile %struct.SinObj* %datint_anf_45datum64341710289_val, %struct.SinObj** %clo646642_local3_loc, align 8 | |
; Starting const-null | |
%datnull_args646463$$drop_45right640476$010290_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646463$$drop_45right640476$010290_val, %struct.SinObj** %clo646642_local4_loc, align 8 | |
; Starting prim | |
%primtmp_args646463$$drop_45right640476$110291_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646642_local3_loc, align 8 | |
%primtmp_args646463$$drop_45right640476$110291_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646642_local4_loc, align 8 | |
%primtmp_args646463$$drop_45right640476$110291_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646463$$drop_45right640476$110291_arg_0, %struct.SinObj* %primtmp_args646463$$drop_45right640476$110291_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646463$$drop_45right640476$110291_val, %struct.SinObj** %clo646642_local5_loc, align 8 | |
; Starting prim | |
%primtmp_args646463$$drop_45right640476$210292_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646642_arg1_loc, align 8 | |
%primtmp_args646463$$drop_45right640476$210292_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646642_local5_loc, align 8 | |
%primtmp_args646463$$drop_45right640476$210292_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646463$$drop_45right640476$210292_arg_0, %struct.SinObj* %primtmp_args646463$$drop_45right640476$210292_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646463$$drop_45right640476$210292_val, %struct.SinObj** %clo646642_local6_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64341810293_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 17) | |
br i1 %bind_app_anf_45bind64341810293_has_space, label %bind_app_anf_45bind64341810293_do_call, label %bind_app_anf_45bind64341810293_overflow_first | |
bind_app_anf_45bind64341810293_overflow_first: | |
%bind_app_anf_45bind64341810293_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64341810293_overflow_underflow_addr, i64 17) | |
br label %bind_app_anf_45bind64341810293_do_call | |
bind_app_anf_45bind64341810293_do_call: | |
%bind_app_anf_45bind64341810293_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646642_local2_loc, align 8 | |
%bind_app_anf_45bind64341810293_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646642_local6_loc, align 8 | |
%bind_app_anf_45bind64341810293_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64341810293_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341810293_cur_fp, i64 17 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64341810293_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64341810293_return_loc = bitcast i8* blockaddress(@main, %clo646642_ret0) to %struct.SinObj* | |
%bind_app_anf_45bind64341810293_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341810293_new_fp, i64 1 | |
%bind_app_anf_45bind64341810293_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341810293_new_fp, i64 2 | |
%bind_app_anf_45bind64341810293_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341810293_new_fp, i64 3 | |
%bind_app_anf_45bind64341810293_slotscast = inttoptr i64 17 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64341810293_return_loc, %struct.SinObj** %bind_app_anf_45bind64341810293_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64341810293_slotscast, %struct.SinObj** %bind_app_anf_45bind64341810293_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64341810293_closure, %struct.SinObj** %bind_app_anf_45bind64341810293_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64341810293_arglist, %struct.SinObj** %bind_app_anf_45bind64341810293_newarg1loc, align 8 | |
%bind_app_anf_45bind64341810293_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64341810293_closure) | |
indirectbr i8* %bind_app_anf_45bind64341810293_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646642_ret0: | |
%bind_app_anf_45bind64341810293_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64341810293_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341810293_oldfp, i64 1 | |
%bind_app_anf_45bind64341810293_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341810293_slots_loc, align 8 | |
%bind_app_anf_45bind64341810293_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64341810293_slots_ptr to i64 | |
%bind_app_anf_45bind64341810293_offset = mul i64 %bind_app_anf_45bind64341810293_slots, -1 | |
%bind_app_anf_45bind64341810293_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341810293_oldfp, i64 %bind_app_anf_45bind64341810293_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64341810293_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643418 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643418, %struct.SinObj** %clo646642_local7_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64341910294_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 17) | |
br i1 %bind_app_anf_45bind64341910294_has_space, label %bind_app_anf_45bind64341910294_do_call, label %bind_app_anf_45bind64341910294_overflow_first | |
bind_app_anf_45bind64341910294_overflow_first: | |
%bind_app_anf_45bind64341910294_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64341910294_overflow_underflow_addr, i64 17) | |
br label %bind_app_anf_45bind64341910294_do_call | |
bind_app_anf_45bind64341910294_do_call: | |
%bind_app_anf_45bind64341910294_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646642_local1_loc, align 8 | |
%bind_app_anf_45bind64341910294_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646642_local7_loc, align 8 | |
%bind_app_anf_45bind64341910294_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64341910294_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341910294_cur_fp, i64 17 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64341910294_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64341910294_return_loc = bitcast i8* blockaddress(@main, %clo646642_ret1) to %struct.SinObj* | |
%bind_app_anf_45bind64341910294_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341910294_new_fp, i64 1 | |
%bind_app_anf_45bind64341910294_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341910294_new_fp, i64 2 | |
%bind_app_anf_45bind64341910294_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341910294_new_fp, i64 3 | |
%bind_app_anf_45bind64341910294_slotscast = inttoptr i64 17 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64341910294_return_loc, %struct.SinObj** %bind_app_anf_45bind64341910294_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64341910294_slotscast, %struct.SinObj** %bind_app_anf_45bind64341910294_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64341910294_closure, %struct.SinObj** %bind_app_anf_45bind64341910294_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64341910294_arglist, %struct.SinObj** %bind_app_anf_45bind64341910294_newarg1loc, align 8 | |
%bind_app_anf_45bind64341910294_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64341910294_closure) | |
indirectbr i8* %bind_app_anf_45bind64341910294_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646642_ret1: | |
%bind_app_anf_45bind64341910294_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64341910294_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341910294_oldfp, i64 1 | |
%bind_app_anf_45bind64341910294_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341910294_slots_loc, align 8 | |
%bind_app_anf_45bind64341910294_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64341910294_slots_ptr to i64 | |
%bind_app_anf_45bind64341910294_offset = mul i64 %bind_app_anf_45bind64341910294_slots, -1 | |
%bind_app_anf_45bind64341910294_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64341910294_oldfp, i64 %bind_app_anf_45bind64341910294_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64341910294_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643419 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643419, %struct.SinObj** %clo646642_local8_loc, align 8 | |
; Starting const-null | |
%datnull_args646464$$last640479$010295_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646464$$last640479$010295_val, %struct.SinObj** %clo646642_local9_loc, align 8 | |
; Starting prim | |
%primtmp_args646464$$last640479$110296_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646642_arg1_loc, align 8 | |
%primtmp_args646464$$last640479$110296_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646642_local9_loc, align 8 | |
%primtmp_args646464$$last640479$110296_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646464$$last640479$110296_arg_0, %struct.SinObj* %primtmp_args646464$$last640479$110296_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646464$$last640479$110296_val, %struct.SinObj** %clo646642_local10_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64342010297_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 17) | |
br i1 %bind_app_anf_45bind64342010297_has_space, label %bind_app_anf_45bind64342010297_do_call, label %bind_app_anf_45bind64342010297_overflow_first | |
bind_app_anf_45bind64342010297_overflow_first: | |
%bind_app_anf_45bind64342010297_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64342010297_overflow_underflow_addr, i64 17) | |
br label %bind_app_anf_45bind64342010297_do_call | |
bind_app_anf_45bind64342010297_do_call: | |
%bind_app_anf_45bind64342010297_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646642_local0_loc, align 8 | |
%bind_app_anf_45bind64342010297_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646642_local10_loc, align 8 | |
%bind_app_anf_45bind64342010297_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64342010297_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342010297_cur_fp, i64 17 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64342010297_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64342010297_return_loc = bitcast i8* blockaddress(@main, %clo646642_ret2) to %struct.SinObj* | |
%bind_app_anf_45bind64342010297_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342010297_new_fp, i64 1 | |
%bind_app_anf_45bind64342010297_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342010297_new_fp, i64 2 | |
%bind_app_anf_45bind64342010297_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342010297_new_fp, i64 3 | |
%bind_app_anf_45bind64342010297_slotscast = inttoptr i64 17 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64342010297_return_loc, %struct.SinObj** %bind_app_anf_45bind64342010297_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64342010297_slotscast, %struct.SinObj** %bind_app_anf_45bind64342010297_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64342010297_closure, %struct.SinObj** %bind_app_anf_45bind64342010297_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64342010297_arglist, %struct.SinObj** %bind_app_anf_45bind64342010297_newarg1loc, align 8 | |
%bind_app_anf_45bind64342010297_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64342010297_closure) | |
indirectbr i8* %bind_app_anf_45bind64342010297_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646642_ret2: | |
%bind_app_anf_45bind64342010297_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64342010297_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342010297_oldfp, i64 1 | |
%bind_app_anf_45bind64342010297_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342010297_slots_loc, align 8 | |
%bind_app_anf_45bind64342010297_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64342010297_slots_ptr to i64 | |
%bind_app_anf_45bind64342010297_offset = mul i64 %bind_app_anf_45bind64342010297_slots, -1 | |
%bind_app_anf_45bind64342010297_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342010297_oldfp, i64 %bind_app_anf_45bind64342010297_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64342010297_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643420 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643420, %struct.SinObj** %clo646642_local11_loc, align 8 | |
; Starting prim | |
%primtmp_admin_45toplevel_45bnd64656710298_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646642_local8_loc, align 8 | |
%primtmp_admin_45toplevel_45bnd64656710298_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646642_local11_loc, align 8 | |
%primtmp_admin_45toplevel_45bnd64656710298_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_admin_45toplevel_45bnd64656710298_arg_0, %struct.SinObj* %primtmp_admin_45toplevel_45bnd64656710298_arg_1) | |
store volatile %struct.SinObj* %primtmp_admin_45toplevel_45bnd64656710298_val, %struct.SinObj** %clo646642_local12_loc, align 8 | |
; Starting return value. | |
%retval_admin_45toplevel_45bnd64656710299_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646642_local12_loc, align 8 | |
store volatile %struct.SinObj* %retval_admin_45toplevel_45bnd64656710299_val, %struct.SinObj** @retr, align 8 | |
%retval_admin_45toplevel_45bnd64656710299_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_admin_45toplevel_45bnd64656710299_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_admin_45toplevel_45bnd64656710299_fp, align 8 | |
%retval_admin_45toplevel_45bnd64656710299_ra_raw = bitcast %struct.SinObj* %retval_admin_45toplevel_45bnd64656710299_ra to i8* | |
indirectbr i8* %retval_admin_45toplevel_45bnd64656710299_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646642 finished | |
clo646641: | |
%prologue_cur_fp10300 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646641_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10300, i64 2 | |
%clo646641_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10300, i64 3 | |
; End function Prologue | |
; Starting return value. | |
%retval_xs64050810301_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646641_arg1_loc, align 8 | |
store volatile %struct.SinObj* %retval_xs64050810301_val, %struct.SinObj** @retr, align 8 | |
%retval_xs64050810301_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_xs64050810301_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_xs64050810301_fp, align 8 | |
%retval_xs64050810301_ra_raw = bitcast %struct.SinObj* %retval_xs64050810301_ra to i8* | |
indirectbr i8* %retval_xs64050810301_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646641 finished | |
clo646640: | |
%prologue_cur_fp10302 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646640_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10302, i64 2 | |
%clo646640_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10302, i64 3 | |
%clo646640_local4_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10302, i64 8 | |
%clo646640_local3_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10302, i64 7 | |
%clo646640_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10302, i64 6 | |
%clo646640_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10302, i64 5 | |
%clo646640_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10302, i64 4 | |
; End function Prologue | |
; Starting env-ref | |
%envref_$_37_37foldl164045710303_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$_37_37foldl164045710303_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$_37_37foldl164045710303_cur_fp, i64 2 | |
%envref_$_37_37foldl164045710303_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$_37_37foldl164045710303_cur_fp, align 8 | |
%envref_$_37_37foldl164045710303_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$_37_37foldl164045710303_clo, i64 0) | |
store volatile %struct.SinObj* %envref_$_37_37foldl164045710303_val, %struct.SinObj** %clo646640_local0_loc, align 8 | |
; Starting env-ref | |
%envref_$_37_37foldr164046210304_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$_37_37foldr164046210304_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$_37_37foldr164046210304_cur_fp, i64 2 | |
%envref_$_37_37foldr164046210304_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$_37_37foldr164046210304_cur_fp, align 8 | |
%envref_$_37_37foldr164046210304_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$_37_37foldr164046210304_clo, i64 1) | |
store volatile %struct.SinObj* %envref_$_37_37foldr164046210304_val, %struct.SinObj** %clo646640_local1_loc, align 8 | |
; Starting env-ref | |
%envref_$_37_37map164045210305_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$_37_37map164045210305_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$_37_37map164045210305_cur_fp, i64 2 | |
%envref_$_37_37map164045210305_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$_37_37map164045210305_cur_fp, align 8 | |
%envref_$_37_37map164045210305_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$_37_37map164045210305_clo, i64 2) | |
store volatile %struct.SinObj* %envref_$_37_37map164045210305_val, %struct.SinObj** %clo646640_local2_loc, align 8 | |
; Starting prim | |
%primtmp_$foldl64051010306_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646640_arg1_loc, align 8 | |
%primtmp_$foldl64051010306_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$foldl64051010306_arg_0) | |
store volatile %struct.SinObj* %primtmp_$foldl64051010306_val, %struct.SinObj** %clo646640_local3_loc, align 8 | |
; Starting make-closure | |
%makeclo_admin_45toplevel_45bnd64656810307_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646640_local2_loc, align 8 | |
%makeclo_admin_45toplevel_45bnd64656810307_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646640_local3_loc, align 8 | |
%makeclo_admin_45toplevel_45bnd64656810307_arg_2 = load volatile %struct.SinObj*, %struct.SinObj** %clo646640_local0_loc, align 8 | |
%makeclo_admin_45toplevel_45bnd64656810307_arg_3 = load volatile %struct.SinObj*, %struct.SinObj** %clo646640_local1_loc, align 8 | |
%makeclo_admin_45toplevel_45bnd64656810307_funcaddr = bitcast i8* blockaddress(@main, %clo646639) to i8* | |
%makeclo_admin_45toplevel_45bnd64656810307_val = call %struct.SinObj* @closure_alloc(i64 4, i8* %makeclo_admin_45toplevel_45bnd64656810307_funcaddr) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_admin_45toplevel_45bnd64656810307_val, %struct.SinObj* %makeclo_admin_45toplevel_45bnd64656810307_arg_0, i64 0) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_admin_45toplevel_45bnd64656810307_val, %struct.SinObj* %makeclo_admin_45toplevel_45bnd64656810307_arg_1, i64 1) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_admin_45toplevel_45bnd64656810307_val, %struct.SinObj* %makeclo_admin_45toplevel_45bnd64656810307_arg_2, i64 2) | |
call void @closure_place_freevar(%struct.SinObj* %makeclo_admin_45toplevel_45bnd64656810307_val, %struct.SinObj* %makeclo_admin_45toplevel_45bnd64656810307_arg_3, i64 3) | |
store volatile %struct.SinObj* %makeclo_admin_45toplevel_45bnd64656810307_val, %struct.SinObj** %clo646640_local4_loc, align 8 | |
; Starting return value. | |
%retval_admin_45toplevel_45bnd64656810308_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646640_local4_loc, align 8 | |
store volatile %struct.SinObj* %retval_admin_45toplevel_45bnd64656810308_val, %struct.SinObj** @retr, align 8 | |
%retval_admin_45toplevel_45bnd64656810308_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_admin_45toplevel_45bnd64656810308_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_admin_45toplevel_45bnd64656810308_fp, align 8 | |
%retval_admin_45toplevel_45bnd64656810308_ra_raw = bitcast %struct.SinObj* %retval_admin_45toplevel_45bnd64656810308_ra to i8* | |
indirectbr i8* %retval_admin_45toplevel_45bnd64656810308_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
; Function clo646640 finished | |
clo646639: | |
%prologue_cur_fp10309 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646639_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 2 | |
%clo646639_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 3 | |
%clo646639_local38_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 42 | |
%clo646639_local37_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 41 | |
%clo646639_local36_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 40 | |
%clo646639_local35_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 39 | |
%clo646639_local34_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 38 | |
%clo646639_local33_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 37 | |
%clo646639_local32_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 36 | |
%clo646639_local31_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 35 | |
%clo646639_local30_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 34 | |
%clo646639_local29_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 33 | |
%clo646639_local28_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 32 | |
%clo646639_local27_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 31 | |
%clo646639_local26_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 30 | |
%clo646639_local25_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 29 | |
%clo646639_local24_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 28 | |
%clo646639_local23_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 27 | |
%clo646639_local22_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 26 | |
%clo646639_local21_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 25 | |
%clo646639_local20_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 24 | |
%clo646639_local19_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 23 | |
%clo646639_local18_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 22 | |
%clo646639_local17_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 21 | |
%clo646639_local16_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 20 | |
%clo646639_local15_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 19 | |
%clo646639_local14_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 18 | |
%clo646639_local13_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 17 | |
%clo646639_local12_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 16 | |
%clo646639_local11_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 15 | |
%clo646639_local10_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 14 | |
%clo646639_local9_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 13 | |
%clo646639_local8_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 12 | |
%clo646639_local7_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 11 | |
%clo646639_local6_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 10 | |
%clo646639_local5_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 9 | |
%clo646639_local4_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 8 | |
%clo646639_local3_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 7 | |
%clo646639_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 6 | |
%clo646639_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 5 | |
%clo646639_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10309, i64 4 | |
; End function Prologue | |
; Starting env-ref | |
%envref_$_37_37map164045210310_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$_37_37map164045210310_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$_37_37map164045210310_cur_fp, i64 2 | |
%envref_$_37_37map164045210310_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$_37_37map164045210310_cur_fp, align 8 | |
%envref_$_37_37map164045210310_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$_37_37map164045210310_clo, i64 0) | |
store volatile %struct.SinObj* %envref_$_37_37map164045210310_val, %struct.SinObj** %clo646639_local0_loc, align 8 | |
; Starting env-ref | |
%envref_$foldl64051010311_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$foldl64051010311_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$foldl64051010311_cur_fp, i64 2 | |
%envref_$foldl64051010311_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$foldl64051010311_cur_fp, align 8 | |
%envref_$foldl64051010311_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$foldl64051010311_clo, i64 1) | |
store volatile %struct.SinObj* %envref_$foldl64051010311_val, %struct.SinObj** %clo646639_local1_loc, align 8 | |
; Starting env-ref | |
%envref_$_37_37foldl164045710312_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$_37_37foldl164045710312_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$_37_37foldl164045710312_cur_fp, i64 2 | |
%envref_$_37_37foldl164045710312_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$_37_37foldl164045710312_cur_fp, align 8 | |
%envref_$_37_37foldl164045710312_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$_37_37foldl164045710312_clo, i64 2) | |
store volatile %struct.SinObj* %envref_$_37_37foldl164045710312_val, %struct.SinObj** %clo646639_local2_loc, align 8 | |
; Starting env-ref | |
%envref_$_37_37foldr164046210313_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%envref_$_37_37foldr164046210313_cloloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %envref_$_37_37foldr164046210313_cur_fp, i64 2 | |
%envref_$_37_37foldr164046210313_clo = load volatile %struct.SinObj*, %struct.SinObj** %envref_$_37_37foldr164046210313_cur_fp, align 8 | |
%envref_$_37_37foldr164046210313_val = call %struct.SinObj* @closure_env_get(%struct.SinObj* %envref_$_37_37foldr164046210313_clo, i64 3) | |
store volatile %struct.SinObj* %envref_$_37_37foldr164046210313_val, %struct.SinObj** %clo646639_local3_loc, align 8 | |
; Starting prim | |
%primtmp_$f64051210314_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_arg1_loc, align 8 | |
%primtmp_$f64051210314_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$f64051210314_arg_0) | |
store volatile %struct.SinObj* %primtmp_$f64051210314_val, %struct.SinObj** %clo646639_local4_loc, align 8 | |
; Starting prim | |
%primtmp_$_37_37vararg63062864051310315_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_arg1_loc, align 8 | |
%primtmp_$_37_37vararg63062864051310315_val = call %struct.SinObj* @prim_cdr(%struct.SinObj* %primtmp_$_37_37vararg63062864051310315_arg_0) | |
store volatile %struct.SinObj* %primtmp_$_37_37vararg63062864051310315_val, %struct.SinObj** %clo646639_local5_loc, align 8 | |
; Starting prim | |
%primtmp_$acc64051410316_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local5_loc, align 8 | |
%primtmp_$acc64051410316_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$acc64051410316_arg_0) | |
store volatile %struct.SinObj* %primtmp_$acc64051410316_val, %struct.SinObj** %clo646639_local6_loc, align 8 | |
; Starting prim | |
%primtmp_$_37_37vararg63062864051510317_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local5_loc, align 8 | |
%primtmp_$_37_37vararg63062864051510317_val = call %struct.SinObj* @prim_cdr(%struct.SinObj* %primtmp_$_37_37vararg63062864051510317_arg_0) | |
store volatile %struct.SinObj* %primtmp_$_37_37vararg63062864051510317_val, %struct.SinObj** %clo646639_local7_loc, align 8 | |
; Starting alias | |
%$lsts640516 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local7_loc, align 8 | |
store volatile %struct.SinObj* %$lsts640516, %struct.SinObj** %clo646639_local8_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind64342710319_funcaddr = bitcast i8* blockaddress(@main, %clo646638) to i8* | |
%makeclo_anf_45bind64342710319_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind64342710319_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind64342710319_val, %struct.SinObj** %clo646639_local9_loc, align 8 | |
; Starting const-bool | |
%datbool_anf_45datum64342810320_val = call %struct.SinObj* @const_init_false() | |
store volatile %struct.SinObj* %datbool_anf_45datum64342810320_val, %struct.SinObj** %clo646639_local10_loc, align 8 | |
; Starting const-null | |
%datnull_args646469$$_37_37foldl1640457$010321_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646469$$_37_37foldl1640457$010321_val, %struct.SinObj** %clo646639_local11_loc, align 8 | |
; Starting prim | |
%primtmp_args646469$$_37_37foldl1640457$110322_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local8_loc, align 8 | |
%primtmp_args646469$$_37_37foldl1640457$110322_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local11_loc, align 8 | |
%primtmp_args646469$$_37_37foldl1640457$110322_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646469$$_37_37foldl1640457$110322_arg_0, %struct.SinObj* %primtmp_args646469$$_37_37foldl1640457$110322_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646469$$_37_37foldl1640457$110322_val, %struct.SinObj** %clo646639_local12_loc, align 8 | |
; Starting prim | |
%primtmp_args646469$$_37_37foldl1640457$210323_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local10_loc, align 8 | |
%primtmp_args646469$$_37_37foldl1640457$210323_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local12_loc, align 8 | |
%primtmp_args646469$$_37_37foldl1640457$210323_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646469$$_37_37foldl1640457$210323_arg_0, %struct.SinObj* %primtmp_args646469$$_37_37foldl1640457$210323_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646469$$_37_37foldl1640457$210323_val, %struct.SinObj** %clo646639_local13_loc, align 8 | |
; Starting prim | |
%primtmp_args646469$$_37_37foldl1640457$310324_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local9_loc, align 8 | |
%primtmp_args646469$$_37_37foldl1640457$310324_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local13_loc, align 8 | |
%primtmp_args646469$$_37_37foldl1640457$310324_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646469$$_37_37foldl1640457$310324_arg_0, %struct.SinObj* %primtmp_args646469$$_37_37foldl1640457$310324_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646469$$_37_37foldl1640457$310324_val, %struct.SinObj** %clo646639_local14_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64342910325_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 43) | |
br i1 %bind_app_anf_45bind64342910325_has_space, label %bind_app_anf_45bind64342910325_do_call, label %bind_app_anf_45bind64342910325_overflow_first | |
bind_app_anf_45bind64342910325_overflow_first: | |
%bind_app_anf_45bind64342910325_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64342910325_overflow_underflow_addr, i64 43) | |
br label %bind_app_anf_45bind64342910325_do_call | |
bind_app_anf_45bind64342910325_do_call: | |
%bind_app_anf_45bind64342910325_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local2_loc, align 8 | |
%bind_app_anf_45bind64342910325_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local14_loc, align 8 | |
%bind_app_anf_45bind64342910325_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64342910325_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342910325_cur_fp, i64 43 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64342910325_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64342910325_return_loc = bitcast i8* blockaddress(@main, %clo646639_ret0) to %struct.SinObj* | |
%bind_app_anf_45bind64342910325_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342910325_new_fp, i64 1 | |
%bind_app_anf_45bind64342910325_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342910325_new_fp, i64 2 | |
%bind_app_anf_45bind64342910325_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342910325_new_fp, i64 3 | |
%bind_app_anf_45bind64342910325_slotscast = inttoptr i64 43 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64342910325_return_loc, %struct.SinObj** %bind_app_anf_45bind64342910325_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64342910325_slotscast, %struct.SinObj** %bind_app_anf_45bind64342910325_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64342910325_closure, %struct.SinObj** %bind_app_anf_45bind64342910325_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64342910325_arglist, %struct.SinObj** %bind_app_anf_45bind64342910325_newarg1loc, align 8 | |
%bind_app_anf_45bind64342910325_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64342910325_closure) | |
indirectbr i8* %bind_app_anf_45bind64342910325_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646639_ret0: | |
%bind_app_anf_45bind64342910325_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64342910325_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342910325_oldfp, i64 1 | |
%bind_app_anf_45bind64342910325_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342910325_slots_loc, align 8 | |
%bind_app_anf_45bind64342910325_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64342910325_slots_ptr to i64 | |
%bind_app_anf_45bind64342910325_offset = mul i64 %bind_app_anf_45bind64342910325_slots, -1 | |
%bind_app_anf_45bind64342910325_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64342910325_oldfp, i64 %bind_app_anf_45bind64342910325_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64342910325_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643429 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643429, %struct.SinObj** %clo646639_local15_loc, align 8 | |
; Starting if | |
%if10326_reg = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local15_loc, align 8 | |
%if10326istrue = call i1 @is_truthy_value(%struct.SinObj* %if10326_reg) | |
br i1 %if10326istrue, label %branch9799_45true, label %branch9799_45false | |
branch9799_45true: | |
; Starting return value. | |
%retval_$acc64051410327_val = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local6_loc, align 8 | |
store volatile %struct.SinObj* %retval_$acc64051410327_val, %struct.SinObj** @retr, align 8 | |
%retval_$acc64051410327_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%retval_$acc64051410327_ra = load volatile %struct.SinObj*, %struct.SinObj** %retval_$acc64051410327_fp, align 8 | |
%retval_$acc64051410327_ra_raw = bitcast %struct.SinObj* %retval_$acc64051410327_ra to i8* | |
indirectbr i8* %retval_$acc64051410327_ra_raw, [label %clo646597_ret0, label %clo646600_ret0, label %clo646608_ret1, label %clo646608_ret0, label %clo646610_ret0, label %clo646612_ret3, label %clo646612_ret2, label %clo646612_ret1, label %clo646612_ret0, label %clo646615_ret6, label %clo646615_ret5, label %clo646615_ret4, label %clo646615_ret3, label %clo646615_ret2, label %clo646615_ret1, label %clo646615_ret0, label %clo646617_ret0, label %clo646630_ret0, label %clo646639_ret5, label %clo646639_ret4, label %clo646639_ret3, label %clo646639_ret2, label %clo646639_ret1, label %clo646639_ret0, label %clo646642_ret2, label %clo646642_ret1, label %clo646642_ret0, label %clo646643_ret0, label %clo646650_ret5, label %clo646650_ret4, label %clo646650_ret3, label %clo646650_ret2, label %clo646650_ret1, label %clo646650_ret0, label %clo646654_ret0, label %clo646655_ret0, label %clo646658_ret0, label %clo646660_ret0, label %clo646662_ret0, label %clo646664_ret0, label %clo646667_ret1, label %clo646667_ret0, label %clo646669_ret1, label %clo646669_ret0, label %main_ret25, label %main_ret24, label %main_ret23, label %main_ret22, label %main_ret21, label %main_ret20, label %main_ret19, label %main_ret18, label %main_ret17, label %main_ret16, label %main_ret15, label %main_ret14, label %main_ret13, label %main_ret12, label %main_ret11, label %main_ret10, label %main_ret9, label %main_ret8, label %main_ret7, label %main_ret6, label %main_ret5, label %main_ret4, label %main_ret3, label %main_ret2, label %main_ret1, label %main_ret0, label %underflow_handler, label %program_finished] | |
branch9799_45false: | |
; Starting make-closure | |
%makeclo_anf_45bind64343010328_funcaddr = bitcast i8* blockaddress(@main, %clo646637) to i8* | |
%makeclo_anf_45bind64343010328_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind64343010328_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind64343010328_val, %struct.SinObj** %clo646639_local16_loc, align 8 | |
; Starting const-null | |
%datnull_args646470$$_37_37map1640452$010329_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646470$$_37_37map1640452$010329_val, %struct.SinObj** %clo646639_local17_loc, align 8 | |
; Starting prim | |
%primtmp_args646470$$_37_37map1640452$110330_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local8_loc, align 8 | |
%primtmp_args646470$$_37_37map1640452$110330_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local17_loc, align 8 | |
%primtmp_args646470$$_37_37map1640452$110330_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646470$$_37_37map1640452$110330_arg_0, %struct.SinObj* %primtmp_args646470$$_37_37map1640452$110330_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646470$$_37_37map1640452$110330_val, %struct.SinObj** %clo646639_local18_loc, align 8 | |
; Starting prim | |
%primtmp_args646470$$_37_37map1640452$210331_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local16_loc, align 8 | |
%primtmp_args646470$$_37_37map1640452$210331_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local18_loc, align 8 | |
%primtmp_args646470$$_37_37map1640452$210331_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646470$$_37_37map1640452$210331_arg_0, %struct.SinObj* %primtmp_args646470$$_37_37map1640452$210331_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646470$$_37_37map1640452$210331_val, %struct.SinObj** %clo646639_local19_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$lsts_4364051910332_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 43) | |
br i1 %bind_app_$lsts_4364051910332_has_space, label %bind_app_$lsts_4364051910332_do_call, label %bind_app_$lsts_4364051910332_overflow_first | |
bind_app_$lsts_4364051910332_overflow_first: | |
%bind_app_$lsts_4364051910332_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$lsts_4364051910332_overflow_underflow_addr, i64 43) | |
br label %bind_app_$lsts_4364051910332_do_call | |
bind_app_$lsts_4364051910332_do_call: | |
%bind_app_$lsts_4364051910332_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local0_loc, align 8 | |
%bind_app_$lsts_4364051910332_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local19_loc, align 8 | |
%bind_app_$lsts_4364051910332_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$lsts_4364051910332_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$lsts_4364051910332_cur_fp, i64 43 | |
store volatile %struct.SinObj** %bind_app_$lsts_4364051910332_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$lsts_4364051910332_return_loc = bitcast i8* blockaddress(@main, %clo646639_ret1) to %struct.SinObj* | |
%bind_app_$lsts_4364051910332_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$lsts_4364051910332_new_fp, i64 1 | |
%bind_app_$lsts_4364051910332_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$lsts_4364051910332_new_fp, i64 2 | |
%bind_app_$lsts_4364051910332_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$lsts_4364051910332_new_fp, i64 3 | |
%bind_app_$lsts_4364051910332_slotscast = inttoptr i64 43 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$lsts_4364051910332_return_loc, %struct.SinObj** %bind_app_$lsts_4364051910332_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$lsts_4364051910332_slotscast, %struct.SinObj** %bind_app_$lsts_4364051910332_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$lsts_4364051910332_closure, %struct.SinObj** %bind_app_$lsts_4364051910332_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$lsts_4364051910332_arglist, %struct.SinObj** %bind_app_$lsts_4364051910332_newarg1loc, align 8 | |
%bind_app_$lsts_4364051910332_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$lsts_4364051910332_closure) | |
indirectbr i8* %bind_app_$lsts_4364051910332_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646639_ret1: | |
%bind_app_$lsts_4364051910332_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$lsts_4364051910332_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$lsts_4364051910332_oldfp, i64 1 | |
%bind_app_$lsts_4364051910332_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$lsts_4364051910332_slots_loc, align 8 | |
%bind_app_$lsts_4364051910332_slots = ptrtoint %struct.SinObj* %bind_app_$lsts_4364051910332_slots_ptr to i64 | |
%bind_app_$lsts_4364051910332_offset = mul i64 %bind_app_$lsts_4364051910332_slots, -1 | |
%bind_app_$lsts_4364051910332_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$lsts_4364051910332_oldfp, i64 %bind_app_$lsts_4364051910332_offset | |
store volatile %struct.SinObj** %bind_app_$lsts_4364051910332_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$lsts_43640519 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$lsts_43640519, %struct.SinObj** %clo646639_local20_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind64343110333_funcaddr = bitcast i8* blockaddress(@main, %clo646636) to i8* | |
%makeclo_anf_45bind64343110333_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind64343110333_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind64343110333_val, %struct.SinObj** %clo646639_local21_loc, align 8 | |
; Starting const-null | |
%datnull_args646471$$_37_37map1640452$010334_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646471$$_37_37map1640452$010334_val, %struct.SinObj** %clo646639_local22_loc, align 8 | |
; Starting prim | |
%primtmp_args646471$$_37_37map1640452$110335_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local8_loc, align 8 | |
%primtmp_args646471$$_37_37map1640452$110335_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local22_loc, align 8 | |
%primtmp_args646471$$_37_37map1640452$110335_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646471$$_37_37map1640452$110335_arg_0, %struct.SinObj* %primtmp_args646471$$_37_37map1640452$110335_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646471$$_37_37map1640452$110335_val, %struct.SinObj** %clo646639_local23_loc, align 8 | |
; Starting prim | |
%primtmp_args646471$$_37_37map1640452$210336_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local21_loc, align 8 | |
%primtmp_args646471$$_37_37map1640452$210336_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local23_loc, align 8 | |
%primtmp_args646471$$_37_37map1640452$210336_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646471$$_37_37map1640452$210336_arg_0, %struct.SinObj* %primtmp_args646471$$_37_37map1640452$210336_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646471$$_37_37map1640452$210336_val, %struct.SinObj** %clo646639_local24_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$vs64052110337_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 43) | |
br i1 %bind_app_$vs64052110337_has_space, label %bind_app_$vs64052110337_do_call, label %bind_app_$vs64052110337_overflow_first | |
bind_app_$vs64052110337_overflow_first: | |
%bind_app_$vs64052110337_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$vs64052110337_overflow_underflow_addr, i64 43) | |
br label %bind_app_$vs64052110337_do_call | |
bind_app_$vs64052110337_do_call: | |
%bind_app_$vs64052110337_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local0_loc, align 8 | |
%bind_app_$vs64052110337_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local24_loc, align 8 | |
%bind_app_$vs64052110337_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$vs64052110337_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$vs64052110337_cur_fp, i64 43 | |
store volatile %struct.SinObj** %bind_app_$vs64052110337_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$vs64052110337_return_loc = bitcast i8* blockaddress(@main, %clo646639_ret2) to %struct.SinObj* | |
%bind_app_$vs64052110337_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$vs64052110337_new_fp, i64 1 | |
%bind_app_$vs64052110337_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$vs64052110337_new_fp, i64 2 | |
%bind_app_$vs64052110337_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$vs64052110337_new_fp, i64 3 | |
%bind_app_$vs64052110337_slotscast = inttoptr i64 43 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$vs64052110337_return_loc, %struct.SinObj** %bind_app_$vs64052110337_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$vs64052110337_slotscast, %struct.SinObj** %bind_app_$vs64052110337_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$vs64052110337_closure, %struct.SinObj** %bind_app_$vs64052110337_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$vs64052110337_arglist, %struct.SinObj** %bind_app_$vs64052110337_newarg1loc, align 8 | |
%bind_app_$vs64052110337_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$vs64052110337_closure) | |
indirectbr i8* %bind_app_$vs64052110337_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646639_ret2: | |
%bind_app_$vs64052110337_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$vs64052110337_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$vs64052110337_oldfp, i64 1 | |
%bind_app_$vs64052110337_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$vs64052110337_slots_loc, align 8 | |
%bind_app_$vs64052110337_slots = ptrtoint %struct.SinObj* %bind_app_$vs64052110337_slots_ptr to i64 | |
%bind_app_$vs64052110337_offset = mul i64 %bind_app_$vs64052110337_slots, -1 | |
%bind_app_$vs64052110337_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$vs64052110337_oldfp, i64 %bind_app_$vs64052110337_offset | |
store volatile %struct.SinObj** %bind_app_$vs64052110337_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$vs640521 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$vs640521, %struct.SinObj** %clo646639_local25_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind64343210338_funcaddr = bitcast i8* blockaddress(@main, %clo646635) to i8* | |
%makeclo_anf_45bind64343210338_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind64343210338_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind64343210338_val, %struct.SinObj** %clo646639_local26_loc, align 8 | |
; Starting make-closure | |
%makeclo_anf_45bind64343310339_funcaddr = bitcast i8* blockaddress(@main, %clo646634) to i8* | |
%makeclo_anf_45bind64343310339_val = call %struct.SinObj* @closure_alloc(i64 0, i8* %makeclo_anf_45bind64343310339_funcaddr) | |
store volatile %struct.SinObj* %makeclo_anf_45bind64343310339_val, %struct.SinObj** %clo646639_local27_loc, align 8 | |
; Starting const-null | |
%datnull_args646472$anf_45bind643433$010340_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646472$anf_45bind643433$010340_val, %struct.SinObj** %clo646639_local28_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64343410341_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 43) | |
br i1 %bind_app_anf_45bind64343410341_has_space, label %bind_app_anf_45bind64343410341_do_call, label %bind_app_anf_45bind64343410341_overflow_first | |
bind_app_anf_45bind64343410341_overflow_first: | |
%bind_app_anf_45bind64343410341_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64343410341_overflow_underflow_addr, i64 43) | |
br label %bind_app_anf_45bind64343410341_do_call | |
bind_app_anf_45bind64343410341_do_call: | |
%bind_app_anf_45bind64343410341_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local27_loc, align 8 | |
%bind_app_anf_45bind64343410341_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local28_loc, align 8 | |
%bind_app_anf_45bind64343410341_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64343410341_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64343410341_cur_fp, i64 43 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64343410341_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64343410341_return_loc = bitcast i8* blockaddress(@main, %clo646639_ret3) to %struct.SinObj* | |
%bind_app_anf_45bind64343410341_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64343410341_new_fp, i64 1 | |
%bind_app_anf_45bind64343410341_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64343410341_new_fp, i64 2 | |
%bind_app_anf_45bind64343410341_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64343410341_new_fp, i64 3 | |
%bind_app_anf_45bind64343410341_slotscast = inttoptr i64 43 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64343410341_return_loc, %struct.SinObj** %bind_app_anf_45bind64343410341_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64343410341_slotscast, %struct.SinObj** %bind_app_anf_45bind64343410341_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64343410341_closure, %struct.SinObj** %bind_app_anf_45bind64343410341_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64343410341_arglist, %struct.SinObj** %bind_app_anf_45bind64343410341_newarg1loc, align 8 | |
%bind_app_anf_45bind64343410341_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64343410341_closure) | |
indirectbr i8* %bind_app_anf_45bind64343410341_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646639_ret3: | |
%bind_app_anf_45bind64343410341_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64343410341_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64343410341_oldfp, i64 1 | |
%bind_app_anf_45bind64343410341_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64343410341_slots_loc, align 8 | |
%bind_app_anf_45bind64343410341_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64343410341_slots_ptr to i64 | |
%bind_app_anf_45bind64343410341_offset = mul i64 %bind_app_anf_45bind64343410341_slots, -1 | |
%bind_app_anf_45bind64343410341_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64343410341_oldfp, i64 %bind_app_anf_45bind64343410341_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64343410341_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643434 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643434, %struct.SinObj** %clo646639_local29_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind64343510342_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local6_loc, align 8 | |
%primtmp_anf_45bind64343510342_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local29_loc, align 8 | |
%primtmp_anf_45bind64343510342_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_anf_45bind64343510342_arg_0, %struct.SinObj* %primtmp_anf_45bind64343510342_arg_1) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64343510342_val, %struct.SinObj** %clo646639_local30_loc, align 8 | |
; Starting const-null | |
%datnull_args646473$$_37_37foldr1640462$010343_val = call %struct.SinObj* @const_init_null() | |
store volatile %struct.SinObj* %datnull_args646473$$_37_37foldr1640462$010343_val, %struct.SinObj** %clo646639_local31_loc, align 8 | |
; Starting prim | |
%primtmp_args646473$$_37_37foldr1640462$110344_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local25_loc, align 8 | |
%primtmp_args646473$$_37_37foldr1640462$110344_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local31_loc, align 8 | |
%primtmp_args646473$$_37_37foldr1640462$110344_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646473$$_37_37foldr1640462$110344_arg_0, %struct.SinObj* %primtmp_args646473$$_37_37foldr1640462$110344_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646473$$_37_37foldr1640462$110344_val, %struct.SinObj** %clo646639_local32_loc, align 8 | |
; Starting prim | |
%primtmp_args646473$$_37_37foldr1640462$210345_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local30_loc, align 8 | |
%primtmp_args646473$$_37_37foldr1640462$210345_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local32_loc, align 8 | |
%primtmp_args646473$$_37_37foldr1640462$210345_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646473$$_37_37foldr1640462$210345_arg_0, %struct.SinObj* %primtmp_args646473$$_37_37foldr1640462$210345_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646473$$_37_37foldr1640462$210345_val, %struct.SinObj** %clo646639_local33_loc, align 8 | |
; Starting prim | |
%primtmp_args646473$$_37_37foldr1640462$310346_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local26_loc, align 8 | |
%primtmp_args646473$$_37_37foldr1640462$310346_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local33_loc, align 8 | |
%primtmp_args646473$$_37_37foldr1640462$310346_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_args646473$$_37_37foldr1640462$310346_arg_0, %struct.SinObj* %primtmp_args646473$$_37_37foldr1640462$310346_arg_1) | |
store volatile %struct.SinObj* %primtmp_args646473$$_37_37foldr1640462$310346_val, %struct.SinObj** %clo646639_local34_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_anf_45bind64343610347_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 43) | |
br i1 %bind_app_anf_45bind64343610347_has_space, label %bind_app_anf_45bind64343610347_do_call, label %bind_app_anf_45bind64343610347_overflow_first | |
bind_app_anf_45bind64343610347_overflow_first: | |
%bind_app_anf_45bind64343610347_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_anf_45bind64343610347_overflow_underflow_addr, i64 43) | |
br label %bind_app_anf_45bind64343610347_do_call | |
bind_app_anf_45bind64343610347_do_call: | |
%bind_app_anf_45bind64343610347_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local3_loc, align 8 | |
%bind_app_anf_45bind64343610347_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local34_loc, align 8 | |
%bind_app_anf_45bind64343610347_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64343610347_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64343610347_cur_fp, i64 43 | |
store volatile %struct.SinObj** %bind_app_anf_45bind64343610347_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64343610347_return_loc = bitcast i8* blockaddress(@main, %clo646639_ret4) to %struct.SinObj* | |
%bind_app_anf_45bind64343610347_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64343610347_new_fp, i64 1 | |
%bind_app_anf_45bind64343610347_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64343610347_new_fp, i64 2 | |
%bind_app_anf_45bind64343610347_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64343610347_new_fp, i64 3 | |
%bind_app_anf_45bind64343610347_slotscast = inttoptr i64 43 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_anf_45bind64343610347_return_loc, %struct.SinObj** %bind_app_anf_45bind64343610347_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64343610347_slotscast, %struct.SinObj** %bind_app_anf_45bind64343610347_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64343610347_closure, %struct.SinObj** %bind_app_anf_45bind64343610347_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_anf_45bind64343610347_arglist, %struct.SinObj** %bind_app_anf_45bind64343610347_newarg1loc, align 8 | |
%bind_app_anf_45bind64343610347_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_anf_45bind64343610347_closure) | |
indirectbr i8* %bind_app_anf_45bind64343610347_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646639_ret4: | |
%bind_app_anf_45bind64343610347_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_anf_45bind64343610347_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64343610347_oldfp, i64 1 | |
%bind_app_anf_45bind64343610347_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64343610347_slots_loc, align 8 | |
%bind_app_anf_45bind64343610347_slots = ptrtoint %struct.SinObj* %bind_app_anf_45bind64343610347_slots_ptr to i64 | |
%bind_app_anf_45bind64343610347_offset = mul i64 %bind_app_anf_45bind64343610347_slots, -1 | |
%bind_app_anf_45bind64343610347_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_anf_45bind64343610347_oldfp, i64 %bind_app_anf_45bind64343610347_offset | |
store volatile %struct.SinObj** %bind_app_anf_45bind64343610347_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%anf_45bind643436 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %anf_45bind643436, %struct.SinObj** %clo646639_local35_loc, align 8 | |
; Starting direct clo-app | |
%bind_app_$acc_4364052310348_has_space = call i1 @check_for_overflow(%struct.SinObj*** @fpr, %struct.SinObj*** @spr, i64 43) | |
br i1 %bind_app_$acc_4364052310348_has_space, label %bind_app_$acc_4364052310348_do_call, label %bind_app_$acc_4364052310348_overflow_first | |
bind_app_$acc_4364052310348_overflow_first: | |
%bind_app_$acc_4364052310348_overflow_underflow_addr = bitcast i8* blockaddress(@main, %underflow_handler) to i8* | |
call void @handle_overflow(%struct.SinRecord** @srr, %struct.SinObj*** @fpr, %struct.SinObj*** @spr, i8* %bind_app_$acc_4364052310348_overflow_underflow_addr, i64 43) | |
br label %bind_app_$acc_4364052310348_do_call | |
bind_app_$acc_4364052310348_do_call: | |
%bind_app_$acc_4364052310348_closure = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local4_loc, align 8 | |
%bind_app_$acc_4364052310348_arglist = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local35_loc, align 8 | |
%bind_app_$acc_4364052310348_cur_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$acc_4364052310348_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$acc_4364052310348_cur_fp, i64 43 | |
store volatile %struct.SinObj** %bind_app_$acc_4364052310348_new_fp, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$acc_4364052310348_return_loc = bitcast i8* blockaddress(@main, %clo646639_ret5) to %struct.SinObj* | |
%bind_app_$acc_4364052310348_newsizeloc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$acc_4364052310348_new_fp, i64 1 | |
%bind_app_$acc_4364052310348_newarg0loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$acc_4364052310348_new_fp, i64 2 | |
%bind_app_$acc_4364052310348_newarg1loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$acc_4364052310348_new_fp, i64 3 | |
%bind_app_$acc_4364052310348_slotscast = inttoptr i64 43 to %struct.SinObj* | |
store volatile %struct.SinObj* %bind_app_$acc_4364052310348_return_loc, %struct.SinObj** %bind_app_$acc_4364052310348_new_fp, align 8 | |
store volatile %struct.SinObj* %bind_app_$acc_4364052310348_slotscast, %struct.SinObj** %bind_app_$acc_4364052310348_newsizeloc, align 8 | |
store volatile %struct.SinObj* %bind_app_$acc_4364052310348_closure, %struct.SinObj** %bind_app_$acc_4364052310348_newarg0loc, align 8 | |
store volatile %struct.SinObj* %bind_app_$acc_4364052310348_arglist, %struct.SinObj** %bind_app_$acc_4364052310348_newarg1loc, align 8 | |
%bind_app_$acc_4364052310348_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %bind_app_$acc_4364052310348_closure) | |
indirectbr i8* %bind_app_$acc_4364052310348_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
clo646639_ret5: | |
%bind_app_$acc_4364052310348_oldfp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%bind_app_$acc_4364052310348_slots_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$acc_4364052310348_oldfp, i64 1 | |
%bind_app_$acc_4364052310348_slots_ptr = load volatile %struct.SinObj*, %struct.SinObj** %bind_app_$acc_4364052310348_slots_loc, align 8 | |
%bind_app_$acc_4364052310348_slots = ptrtoint %struct.SinObj* %bind_app_$acc_4364052310348_slots_ptr to i64 | |
%bind_app_$acc_4364052310348_offset = mul i64 %bind_app_$acc_4364052310348_slots, -1 | |
%bind_app_$acc_4364052310348_after_new_fp = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %bind_app_$acc_4364052310348_oldfp, i64 %bind_app_$acc_4364052310348_offset | |
store volatile %struct.SinObj** %bind_app_$acc_4364052310348_after_new_fp, %struct.SinObj*** @fpr, align 8 | |
%$acc_43640523 = load volatile %struct.SinObj*, %struct.SinObj** @retr, align 8 | |
store volatile %struct.SinObj* %$acc_43640523, %struct.SinObj** %clo646639_local36_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind64343710349_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local36_loc, align 8 | |
%primtmp_anf_45bind64343710349_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local20_loc, align 8 | |
%primtmp_anf_45bind64343710349_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_anf_45bind64343710349_arg_0, %struct.SinObj* %primtmp_anf_45bind64343710349_arg_1) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64343710349_val, %struct.SinObj** %clo646639_local37_loc, align 8 | |
; Starting prim | |
%primtmp_anf_45bind64343810350_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local4_loc, align 8 | |
%primtmp_anf_45bind64343810350_arg_1 = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local37_loc, align 8 | |
%primtmp_anf_45bind64343810350_val = call %struct.SinObj* @prim_cons(%struct.SinObj* %primtmp_anf_45bind64343810350_arg_0, %struct.SinObj* %primtmp_anf_45bind64343810350_arg_1) | |
store volatile %struct.SinObj* %primtmp_anf_45bind64343810350_val, %struct.SinObj** %clo646639_local38_loc, align 8 | |
; Starting tail-clo-app | |
%_tailapp_$foldl64051010351_clo = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local1_loc, align 8 | |
%_tailapp_$foldl64051010351_args = load volatile %struct.SinObj*, %struct.SinObj** %clo646639_local38_loc, align 8 | |
%_tailapp_$foldl64051010351_fp = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
%_tailapp_$foldl64051010351_arg0 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_$foldl64051010351_fp, i64 2 | |
%_tailapp_$foldl64051010351_arg1 = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %_tailapp_$foldl64051010351_fp, i64 3 | |
store volatile %struct.SinObj* %_tailapp_$foldl64051010351_clo, %struct.SinObj** %_tailapp_$foldl64051010351_arg0, align 8 | |
store volatile %struct.SinObj* %_tailapp_$foldl64051010351_args, %struct.SinObj** %_tailapp_$foldl64051010351_arg1, align 8 | |
%_tailapp_$foldl64051010351_funcptr = call i8* @closure_get_fn_part(%struct.SinObj* %_tailapp_$foldl64051010351_clo) | |
indirectbr i8* %_tailapp_$foldl64051010351_funcptr, [label %clo646593, label %clo646594, label %clo646595, label %clo646596, label %clo646597, label %clo646598, label %clo646599, label %clo646600, label %clo646601, label %clo646602, label %clo646603, label %clo646604, label %clo646605, label %clo646606, label %clo646607, label %clo646608, label %clo646609, label %clo646610, label %clo646611, label %clo646612, label %clo646613, label %clo646614, label %clo646615, label %clo646616, label %clo646617, label %clo646618, label %clo646619, label %clo646620, label %clo646621, label %clo646622, label %clo646623, label %clo646624, label %clo646625, label %clo646626, label %clo646627, label %clo646628, label %clo646629, label %clo646630, label %clo646631, label %clo646632, label %clo646633, label %clo646634, label %clo646635, label %clo646636, label %clo646637, label %clo646638, label %clo646639, label %clo646640, label %clo646641, label %clo646642, label %clo646643, label %clo646644, label %clo646645, label %clo646646, label %clo646647, label %clo646648, label %clo646649, label %clo646650, label %clo646651, label %clo646652, label %clo646653, label %clo646654, label %clo646655, label %clo646657, label %clo646656, label %clo646658, label %clo646659, label %clo646660, label %clo646661, label %clo646662, label %clo646663, label %clo646664, label %clo646665, label %clo646666, label %clo646667, label %clo646668, label %clo646669, label %clo646670, label %clo646671, label %clo646672, label %main] | |
; Function clo646639 finished | |
clo646638: | |
%prologue_cur_fp10352 = load volatile %struct.SinObj**, %struct.SinObj*** @fpr, align 8 | |
; Create stack slots | |
%clo646638_arg0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10352, i64 2 | |
%clo646638_arg1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10352, i64 3 | |
%clo646638_local3_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10352, i64 7 | |
%clo646638_local2_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10352, i64 6 | |
%clo646638_local1_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10352, i64 5 | |
%clo646638_local0_loc = getelementptr inbounds %struct.SinObj*, %struct.SinObj** %prologue_cur_fp10352, i64 4 | |
; End function Prologue | |
; Starting prim | |
%primtmp_$xs64051710353_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** %clo646638_arg1_loc, align 8 | |
%primtmp_$xs64051710353_val = call %struct.SinObj* @prim_car(%struct.SinObj* %primtmp_$xs64051710353_arg_0) | |
store volatile %struct.SinObj* %primtmp_$xs64051710353_val, %struct.SinObj** %clo646638_local0_loc, align 8 | |
; Starting prim | |
%primtmp_arglist646468110354_arg_0 = load volatile %struct.SinObj*, %struct.SinObj** |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment