fix(0109): hoist all per-instruction allocas to the function entry block
An alloca built at its use site re-executes on every pass through that block, and LLVM reclaims allocas only at ret — so loop-body locals, nested-loop index slots, and emitter spill temps (ig.tmp, sret slots, ABI coercion temps, byval materialization) grew the stack per iteration and long loops segfaulted on stack exhaustion. New LLVMEmitter.buildEntryAlloca inserts after existing entry-block allocas and restores the builder position; every LLVMBuildAlloca site reachable during instruction emission now routes through it. Initialization stores stay at the use site (per-iteration re-init is unchanged), and entry slots become mem2reg-promotable. The 35 .ir snapshot diffs are pure alloca position moves (type multisets verified identical per file). Regression: examples/0047-basic-loop-local-stack-reuse.sx (segfaulted pre-fix on both the 1M-iteration body-local loop and the 3M-iteration nested loop).
This commit is contained in:
26
examples/0047-basic-loop-local-stack-reuse.sx
Normal file
26
examples/0047-basic-loop-local-stack-reuse.sx
Normal file
@@ -0,0 +1,26 @@
|
||||
// Loop-body locals reuse one stack slot per frame: a body-declared local
|
||||
// (and every compiler temp) must not grow the stack per iteration, so
|
||||
// million-iteration loops run in constant stack. Covers body locals,
|
||||
// nested loops (the inner loop's hidden index slot), and element reads.
|
||||
// Regression (issue 0109): allocas were emitted at their use site, so each
|
||||
// iteration re-executed them — LLVM only reclaims allocas at `ret`, and
|
||||
// these loops segfaulted on stack exhaustion.
|
||||
|
||||
#import "modules/std.sx";
|
||||
|
||||
main :: () -> s32 {
|
||||
sum := 0;
|
||||
for 0..1000000: (i) {
|
||||
buf : [128]s64 = ---;
|
||||
buf[0] = i;
|
||||
sum += buf[0];
|
||||
}
|
||||
print("sum={}\n", sum);
|
||||
|
||||
n := 0;
|
||||
for 0..3000000: (i) {
|
||||
for 0..1: (j) { n += 1; }
|
||||
}
|
||||
print("n={}\n", n);
|
||||
0
|
||||
}
|
||||
@@ -458,6 +458,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -469,15 +474,11 @@ if.then.14: ; preds = %entry
|
||||
if.merge.15: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.16
|
||||
|
||||
@@ -489,7 +490,6 @@ while.hdr.16: ; preds = %if.merge.20, %if.me
|
||||
while.body.17: ; preds = %while.hdr.16
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -547,6 +547,17 @@ if.merge.22: ; preds = %if.then.21, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -558,18 +569,14 @@ if.then.56: ; preds = %entry
|
||||
if.merge.57: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.66
|
||||
|
||||
while.hdr.66: ; preds = %while.exit.77, %if.merge.57
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -577,9 +584,7 @@ while.hdr.66: ; preds = %while.exit.77, %if.
|
||||
br i1 %icmpN, label %or.merge.70, label %or.rhs.69
|
||||
|
||||
while.body.67: ; preds = %or.merge.74
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.75
|
||||
|
||||
@@ -594,7 +599,6 @@ while.exit.68: ; preds = %or.merge.74
|
||||
|
||||
or.rhs.69: ; preds = %while.hdr.66
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -607,7 +611,6 @@ or.merge.70: ; preds = %or.rhs.69, %while.h
|
||||
|
||||
or.rhs.71: ; preds = %or.merge.70
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -620,7 +623,6 @@ or.merge.72: ; preds = %or.rhs.71, %or.merg
|
||||
|
||||
or.rhs.73: ; preds = %or.merge.72
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -641,12 +643,10 @@ while.body.76: ; preds = %while.hdr.75
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -699,6 +699,18 @@ if.merge.80: ; preds = %if.else.79, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -718,11 +730,9 @@ if.else.85: ; preds = %entry
|
||||
|
||||
if.merge.86: ; preds = %if.else.85, %if.then.84
|
||||
%bp = phi double [ %fsub, %if.then.84 ], [ %loadN, %if.else.85 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -730,7 +740,6 @@ if.merge.86: ; preds = %if.else.85, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -745,19 +754,15 @@ if.then.87: ; preds = %if.merge.86
|
||||
if.merge.88: ; preds = %if.then.87, %if.merge.86
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.89, label %if.else.90
|
||||
@@ -770,20 +775,16 @@ if.else.90: ; preds = %if.merge.88
|
||||
|
||||
if.merge.91: ; preds = %if.else.90, %if.then.89
|
||||
%bpN = phi i64 [ 1, %if.then.89 ], [ 0, %if.else.90 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.92, label %if.merge.93
|
||||
@@ -819,7 +820,6 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -847,6 +847,7 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -870,7 +871,6 @@ while.hdr.241: ; preds = %if.merge.246, %entr
|
||||
while.body.242: ; preds = %while.hdr.241
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -911,6 +911,13 @@ if.merge.246: ; preds = %if.else.245, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -931,11 +938,9 @@ if.merge.59: ; preds = %if.then.58, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -952,11 +957,9 @@ if.merge.61: ; preds = %if.then.60, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -973,11 +976,9 @@ if.merge.63: ; preds = %if.then.62, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -990,7 +991,6 @@ if.then.64: ; preds = %if.merge.63
|
||||
br label %if.merge.65
|
||||
|
||||
if.merge.65: ; preds = %if.then.64, %if.merge.63
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -1012,6 +1012,13 @@ if.merge.65: ; preds = %if.then.64, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -1023,40 +1030,33 @@ if.then.239: ; preds = %entry
|
||||
if.merge.240: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.247
|
||||
|
||||
@@ -1167,6 +1167,13 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.40, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1256,7 +1263,6 @@ match.arm.39: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.53, label %if.else.54
|
||||
|
||||
match.arm.40: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1276,7 +1282,6 @@ match.arm.41: ; preds = %entry
|
||||
|
||||
match.arm.42: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82
|
||||
@@ -1285,7 +1290,6 @@ match.arm.43: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.95 [
|
||||
i64 19, label %dispatch.case.96
|
||||
i64 20, label %dispatch.case.97
|
||||
@@ -1305,7 +1309,6 @@ match.arm.44: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw20 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw20, label %dispatch.default.169 [
|
||||
i64 37, label %dispatch.case.170
|
||||
i64 38, label %dispatch.case.171
|
||||
@@ -1322,7 +1325,6 @@ match.arm.47: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw24 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw24, label %dispatch.default.180 [
|
||||
i64 35, label %dispatch.case.181
|
||||
i64 55, label %dispatch.case.182
|
||||
@@ -1333,7 +1335,6 @@ match.arm.48: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw28 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw28, label %dispatch.default.200 [
|
||||
i64 36, label %dispatch.case.201
|
||||
i64 48, label %dispatch.case.202
|
||||
@@ -1343,7 +1344,6 @@ match.arm.49: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw32 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw32, label %dispatch.default.214 [
|
||||
i64 18, label %dispatch.case.215
|
||||
i64 22, label %dispatch.case.216
|
||||
@@ -2510,6 +2510,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.159, i64 15 }, { ptr, i64 } { ptr @str.160, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2574,7 +2576,6 @@ fv.default: ; preds = %if.merge.112
|
||||
|
||||
fv.case: ; preds = %if.merge.112
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2594,7 +2595,6 @@ fv.case20: ; preds = %if.merge.112
|
||||
|
||||
fv.case24: ; preds = %if.merge.112
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -2889,6 +2889,7 @@ fv.case17: ; preds = %if.merge.132
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.197, i64 5 }, { ptr, i64 } { ptr @str.198, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2963,7 +2964,6 @@ fv.case17: ; preds = %if.merge.137
|
||||
|
||||
fv.case20: ; preds = %if.merge.137
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3056,6 +3056,7 @@ fv.case20: ; preds = %if.merge.142
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.215, i64 17 }, { ptr, i64 } { ptr @str.216, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3120,7 +3121,6 @@ fv.default: ; preds = %if.merge.147
|
||||
|
||||
fv.case: ; preds = %if.merge.147
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3146,6 +3146,7 @@ fv.case23: ; preds = %if.merge.147
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.225, i64 7 }, { ptr, i64 } { ptr @str.226, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3208,7 +3209,6 @@ fv.default: ; preds = %if.merge.152
|
||||
|
||||
fv.case: ; preds = %if.merge.152
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3518,6 +3518,11 @@ if.merge.176: ; preds = %if.then.175, %entry
|
||||
define internal { ptr, i64 } @enum_to_string__Shape(ptr %0, { i64, [8 x i8] } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, [8 x i8] }, align 8
|
||||
%fv.utmp = alloca { i64, [8 x i8] }, align 8
|
||||
%fv.utmp7 = alloca { i64, [8 x i8] }, align 8
|
||||
%ba.tmp = alloca { float, float }, align 8
|
||||
%allocaN = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, [8 x i8] } %1, ptr %alloca, align 8
|
||||
%load = load { i64, [8 x i8] }, ptr %alloca, align 8
|
||||
%etag = extractvalue { i64, [8 x i8] } %load, 0
|
||||
@@ -3552,11 +3557,9 @@ if.merge.178: ; preds = %if.then.177, %fv.me
|
||||
|
||||
fv.merge: ; preds = %fv.default, %fv.case11, %fv.case6, %fv.case
|
||||
%fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val10, %fv.case6 ], [ { i64 17, i64 0 }, %fv.case11 ], [ undef, %fv.default ]
|
||||
%allocaN = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %fv.phi, ptr %allocaN, align 8
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
@@ -3567,7 +3570,6 @@ fv.default: ; preds = %entry
|
||||
br label %fv.merge
|
||||
|
||||
fv.case: ; preds = %entry
|
||||
%fv.utmp = alloca { i64, [8 x i8] }, align 8
|
||||
store { i64, [8 x i8] } %loadN, ptr %fv.utmp, align 8
|
||||
%fv.pp = getelementptr inbounds { i64, [8 x i8] }, ptr %fv.utmp, i32 0, i32 1
|
||||
%fv.field = load float, ptr %fv.pp, align 4
|
||||
@@ -3577,11 +3579,9 @@ fv.case: ; preds = %entry
|
||||
br label %fv.merge
|
||||
|
||||
fv.case6: ; preds = %entry
|
||||
%fv.utmp7 = alloca { i64, [8 x i8] }, align 8
|
||||
store { i64, [8 x i8] } %loadN, ptr %fv.utmp7, align 8
|
||||
%fv.pp8 = getelementptr inbounds { i64, [8 x i8] }, ptr %fv.utmp7, i32 0, i32 1
|
||||
%fv.field9 = load { float, float }, ptr %fv.pp8, align 4
|
||||
%ba.tmp = alloca { float, float }, align 8
|
||||
store { float, float } %fv.field9, ptr %ba.tmp, align 4
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val10 = insertvalue { i64, i64 } { i64 42, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3595,6 +3595,7 @@ fv.case11: ; preds = %entry
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.282, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3627,7 +3628,6 @@ if.merge.188: ; preds = %if.then.187, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -3645,6 +3645,8 @@ if.merge.188: ; preds = %if.then.187, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_2_Any(ptr %0, [2 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [2 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [2 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [2 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.285, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3677,11 +3679,9 @@ if.merge.193: ; preds = %if.then.192, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [2 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [2 x { i64, i64 }], align 8
|
||||
store [2 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [2 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3698,6 +3698,8 @@ if.merge.193: ; preds = %if.then.192, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.288, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3730,11 +3732,9 @@ if.merge.198: ; preds = %if.then.197, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3751,6 +3751,7 @@ if.merge.198: ; preds = %if.then.197, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.291, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3788,7 +3789,6 @@ if.merge.207: ; preds = %if.then.206, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3805,6 +3805,7 @@ if.merge.207: ; preds = %if.then.206, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.294, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3842,7 +3843,6 @@ if.merge.212: ; preds = %if.then.211, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -426,6 +426,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -437,15 +442,11 @@ if.then.14: ; preds = %entry
|
||||
if.merge.15: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.16
|
||||
|
||||
@@ -457,7 +458,6 @@ while.hdr.16: ; preds = %if.merge.20, %if.me
|
||||
while.body.17: ; preds = %while.hdr.16
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -515,6 +515,17 @@ if.merge.22: ; preds = %if.then.21, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -526,18 +537,14 @@ if.then.56: ; preds = %entry
|
||||
if.merge.57: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.66
|
||||
|
||||
while.hdr.66: ; preds = %while.exit.77, %if.merge.57
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -545,9 +552,7 @@ while.hdr.66: ; preds = %while.exit.77, %if.
|
||||
br i1 %icmpN, label %or.merge.70, label %or.rhs.69
|
||||
|
||||
while.body.67: ; preds = %or.merge.74
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.75
|
||||
|
||||
@@ -562,7 +567,6 @@ while.exit.68: ; preds = %or.merge.74
|
||||
|
||||
or.rhs.69: ; preds = %while.hdr.66
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -575,7 +579,6 @@ or.merge.70: ; preds = %or.rhs.69, %while.h
|
||||
|
||||
or.rhs.71: ; preds = %or.merge.70
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -588,7 +591,6 @@ or.merge.72: ; preds = %or.rhs.71, %or.merg
|
||||
|
||||
or.rhs.73: ; preds = %or.merge.72
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -609,12 +611,10 @@ while.body.76: ; preds = %while.hdr.75
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -667,6 +667,18 @@ if.merge.80: ; preds = %if.else.79, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -686,11 +698,9 @@ if.else.85: ; preds = %entry
|
||||
|
||||
if.merge.86: ; preds = %if.else.85, %if.then.84
|
||||
%bp = phi double [ %fsub, %if.then.84 ], [ %loadN, %if.else.85 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -698,7 +708,6 @@ if.merge.86: ; preds = %if.else.85, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -713,19 +722,15 @@ if.then.87: ; preds = %if.merge.86
|
||||
if.merge.88: ; preds = %if.then.87, %if.merge.86
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.89, label %if.else.90
|
||||
@@ -738,20 +743,16 @@ if.else.90: ; preds = %if.merge.88
|
||||
|
||||
if.merge.91: ; preds = %if.else.90, %if.then.89
|
||||
%bpN = phi i64 [ 1, %if.then.89 ], [ 0, %if.else.90 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.92, label %if.merge.93
|
||||
@@ -787,7 +788,6 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -815,6 +815,7 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -838,7 +839,6 @@ while.hdr.224: ; preds = %if.merge.229, %entr
|
||||
while.body.225: ; preds = %while.hdr.224
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -879,6 +879,13 @@ if.merge.229: ; preds = %if.else.228, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -899,11 +906,9 @@ if.merge.59: ; preds = %if.then.58, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -920,11 +925,9 @@ if.merge.61: ; preds = %if.then.60, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -941,11 +944,9 @@ if.merge.63: ; preds = %if.then.62, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -958,7 +959,6 @@ if.then.64: ; preds = %if.merge.63
|
||||
br label %if.merge.65
|
||||
|
||||
if.merge.65: ; preds = %if.then.64, %if.merge.63
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -980,6 +980,13 @@ if.merge.65: ; preds = %if.then.64, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -991,40 +998,33 @@ if.then.222: ; preds = %entry
|
||||
if.merge.223: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.230
|
||||
|
||||
@@ -1135,6 +1135,13 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.40, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1219,7 +1226,6 @@ match.arm.39: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.53, label %if.else.54
|
||||
|
||||
match.arm.40: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1239,7 +1245,6 @@ match.arm.41: ; preds = %entry
|
||||
|
||||
match.arm.42: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82
|
||||
@@ -1248,7 +1253,6 @@ match.arm.43: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.95 [
|
||||
i64 19, label %dispatch.case.96
|
||||
i64 20, label %dispatch.case.97
|
||||
@@ -1267,7 +1271,6 @@ match.arm.44: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw20 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw20, label %dispatch.default.163 [
|
||||
i64 37, label %dispatch.case.164
|
||||
i64 38, label %dispatch.case.165
|
||||
@@ -1283,7 +1286,6 @@ match.arm.47: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw24 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw24, label %dispatch.default.171 [
|
||||
i64 35, label %dispatch.case.172
|
||||
i64 53, label %dispatch.case.173
|
||||
@@ -1293,7 +1295,6 @@ match.arm.48: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw28 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw28, label %dispatch.default.185 [
|
||||
i64 36, label %dispatch.case.186
|
||||
i64 46, label %dispatch.case.187
|
||||
@@ -1303,7 +1304,6 @@ match.arm.49: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw32 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw32, label %dispatch.default.199 [
|
||||
i64 18, label %dispatch.case.200
|
||||
i64 22, label %dispatch.case.201
|
||||
@@ -2397,6 +2397,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.151, i64 15 }, { ptr, i64 } { ptr @str.152, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2461,7 +2463,6 @@ fv.default: ; preds = %if.merge.111
|
||||
|
||||
fv.case: ; preds = %if.merge.111
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2481,7 +2482,6 @@ fv.case20: ; preds = %if.merge.111
|
||||
|
||||
fv.case24: ; preds = %if.merge.111
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -2776,6 +2776,7 @@ fv.case17: ; preds = %if.merge.131
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.189, i64 5 }, { ptr, i64 } { ptr @str.190, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2850,7 +2851,6 @@ fv.case17: ; preds = %if.merge.136
|
||||
|
||||
fv.case20: ; preds = %if.merge.136
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2943,6 +2943,7 @@ fv.case20: ; preds = %if.merge.141
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.207, i64 17 }, { ptr, i64 } { ptr @str.208, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3007,7 +3008,6 @@ fv.default: ; preds = %if.merge.146
|
||||
|
||||
fv.case: ; preds = %if.merge.146
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3033,6 +3033,7 @@ fv.case23: ; preds = %if.merge.146
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.217, i64 7 }, { ptr, i64 } { ptr @str.218, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3095,7 +3096,6 @@ fv.default: ; preds = %if.merge.151
|
||||
|
||||
fv.case: ; preds = %if.merge.151
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3326,6 +3326,7 @@ if.merge.169: ; preds = %if.then.168, %entry
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.259, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3358,7 +3359,6 @@ if.merge.178: ; preds = %if.then.177, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -3376,6 +3376,8 @@ if.merge.178: ; preds = %if.then.177, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.262, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3408,11 +3410,9 @@ if.merge.183: ; preds = %if.then.182, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3429,6 +3429,7 @@ if.merge.183: ; preds = %if.then.182, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.265, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3466,7 +3467,6 @@ if.merge.192: ; preds = %if.then.191, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3483,6 +3483,7 @@ if.merge.192: ; preds = %if.then.191, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.268, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3520,7 +3521,6 @@ if.merge.197: ; preds = %if.then.196, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -390,6 +390,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -401,15 +406,11 @@ if.then.14: ; preds = %entry
|
||||
if.merge.15: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.16
|
||||
|
||||
@@ -421,7 +422,6 @@ while.hdr.16: ; preds = %if.merge.20, %if.me
|
||||
while.body.17: ; preds = %while.hdr.16
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -479,6 +479,17 @@ if.merge.22: ; preds = %if.then.21, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -490,18 +501,14 @@ if.then.56: ; preds = %entry
|
||||
if.merge.57: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.66
|
||||
|
||||
while.hdr.66: ; preds = %while.exit.77, %if.merge.57
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -509,9 +516,7 @@ while.hdr.66: ; preds = %while.exit.77, %if.
|
||||
br i1 %icmpN, label %or.merge.70, label %or.rhs.69
|
||||
|
||||
while.body.67: ; preds = %or.merge.74
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.75
|
||||
|
||||
@@ -526,7 +531,6 @@ while.exit.68: ; preds = %or.merge.74
|
||||
|
||||
or.rhs.69: ; preds = %while.hdr.66
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -539,7 +543,6 @@ or.merge.70: ; preds = %or.rhs.69, %while.h
|
||||
|
||||
or.rhs.71: ; preds = %or.merge.70
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -552,7 +555,6 @@ or.merge.72: ; preds = %or.rhs.71, %or.merg
|
||||
|
||||
or.rhs.73: ; preds = %or.merge.72
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -573,12 +575,10 @@ while.body.76: ; preds = %while.hdr.75
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -631,6 +631,18 @@ if.merge.80: ; preds = %if.else.79, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -650,11 +662,9 @@ if.else.85: ; preds = %entry
|
||||
|
||||
if.merge.86: ; preds = %if.else.85, %if.then.84
|
||||
%bp = phi double [ %fsub, %if.then.84 ], [ %loadN, %if.else.85 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -662,7 +672,6 @@ if.merge.86: ; preds = %if.else.85, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -677,19 +686,15 @@ if.then.87: ; preds = %if.merge.86
|
||||
if.merge.88: ; preds = %if.then.87, %if.merge.86
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.89, label %if.else.90
|
||||
@@ -702,20 +707,16 @@ if.else.90: ; preds = %if.merge.88
|
||||
|
||||
if.merge.91: ; preds = %if.else.90, %if.then.89
|
||||
%bpN = phi i64 [ 1, %if.then.89 ], [ 0, %if.else.90 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.92, label %if.merge.93
|
||||
@@ -751,7 +752,6 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -779,6 +779,7 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -802,7 +803,6 @@ while.hdr.210: ; preds = %if.merge.215, %entr
|
||||
while.body.211: ; preds = %while.hdr.210
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -843,6 +843,13 @@ if.merge.215: ; preds = %if.else.214, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -863,11 +870,9 @@ if.merge.59: ; preds = %if.then.58, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -884,11 +889,9 @@ if.merge.61: ; preds = %if.then.60, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -905,11 +908,9 @@ if.merge.63: ; preds = %if.then.62, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -922,7 +923,6 @@ if.then.64: ; preds = %if.merge.63
|
||||
br label %if.merge.65
|
||||
|
||||
if.merge.65: ; preds = %if.then.64, %if.merge.63
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -944,6 +944,13 @@ if.merge.65: ; preds = %if.then.64, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -955,40 +962,33 @@ if.then.208: ; preds = %entry
|
||||
if.merge.209: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.216
|
||||
|
||||
@@ -1099,6 +1099,12 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.5, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1180,7 +1186,6 @@ match.arm.39: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.53, label %if.else.54
|
||||
|
||||
match.arm.40: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1200,7 +1205,6 @@ match.arm.41: ; preds = %entry
|
||||
|
||||
match.arm.42: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82
|
||||
@@ -1209,7 +1213,6 @@ match.arm.43: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.95 [
|
||||
i64 19, label %dispatch.case.96
|
||||
i64 20, label %dispatch.case.97
|
||||
@@ -1235,7 +1238,6 @@ match.arm.47: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw20 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw20, label %dispatch.default.151 [
|
||||
i64 35, label %dispatch.case.152
|
||||
i64 44, label %dispatch.case.153
|
||||
@@ -1246,7 +1248,6 @@ match.arm.48: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw24 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw24, label %dispatch.default.171 [
|
||||
i64 36, label %dispatch.case.172
|
||||
i64 42, label %dispatch.case.173
|
||||
@@ -1256,7 +1257,6 @@ match.arm.49: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw28 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw28, label %dispatch.default.185 [
|
||||
i64 18, label %dispatch.case.186
|
||||
i64 22, label %dispatch.case.187
|
||||
@@ -2154,6 +2154,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.114, i64 15 }, { ptr, i64 } { ptr @str.115, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2218,7 +2220,6 @@ fv.default: ; preds = %if.merge.109
|
||||
|
||||
fv.case: ; preds = %if.merge.109
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2238,7 +2239,6 @@ fv.case20: ; preds = %if.merge.109
|
||||
|
||||
fv.case24: ; preds = %if.merge.109
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -2533,6 +2533,7 @@ fv.case17: ; preds = %if.merge.129
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.152, i64 5 }, { ptr, i64 } { ptr @str.153, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2607,7 +2608,6 @@ fv.case17: ; preds = %if.merge.134
|
||||
|
||||
fv.case20: ; preds = %if.merge.134
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2700,6 +2700,7 @@ fv.case20: ; preds = %if.merge.139
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.170, i64 17 }, { ptr, i64 } { ptr @str.171, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2764,7 +2765,6 @@ fv.default: ; preds = %if.merge.144
|
||||
|
||||
fv.case: ; preds = %if.merge.144
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2790,6 +2790,7 @@ fv.case23: ; preds = %if.merge.144
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.180, i64 7 }, { ptr, i64 } { ptr @str.181, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2852,7 +2853,6 @@ fv.default: ; preds = %if.merge.149
|
||||
|
||||
fv.case: ; preds = %if.merge.149
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2869,6 +2869,7 @@ fv.case17: ; preds = %if.merge.149
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.188, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2901,7 +2902,6 @@ if.merge.159: ; preds = %if.then.158, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -2919,6 +2919,8 @@ if.merge.159: ; preds = %if.then.158, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.191, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2951,11 +2953,9 @@ if.merge.164: ; preds = %if.then.163, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2972,6 +2972,8 @@ if.merge.164: ; preds = %if.then.163, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [3 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [3 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [3 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.194, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3004,11 +3006,9 @@ if.merge.169: ; preds = %if.then.168, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [3 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [3 x { i64, i64 }], align 8
|
||||
store [3 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [3 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3025,6 +3025,7 @@ if.merge.169: ; preds = %if.then.168, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.197, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3062,7 +3063,6 @@ if.merge.178: ; preds = %if.then.177, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3079,6 +3079,7 @@ if.merge.178: ; preds = %if.then.177, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.200, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3116,7 +3117,6 @@ if.merge.183: ; preds = %if.then.182, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
1
examples/expected/0047-basic-loop-local-stack-reuse.exit
Normal file
1
examples/expected/0047-basic-loop-local-stack-reuse.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
sum=499999500000
|
||||
n=3000000
|
||||
@@ -370,6 +370,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -381,15 +386,11 @@ if.then.19: ; preds = %entry
|
||||
if.merge.20: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.21
|
||||
|
||||
@@ -401,7 +402,6 @@ while.hdr.21: ; preds = %if.merge.25, %if.me
|
||||
while.body.22: ; preds = %while.hdr.21
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -459,6 +459,17 @@ if.merge.27: ; preds = %if.then.26, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -470,18 +481,14 @@ if.then.61: ; preds = %entry
|
||||
if.merge.62: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.71
|
||||
|
||||
while.hdr.71: ; preds = %while.exit.82, %if.merge.62
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -489,9 +496,7 @@ while.hdr.71: ; preds = %while.exit.82, %if.
|
||||
br i1 %icmpN, label %or.merge.75, label %or.rhs.74
|
||||
|
||||
while.body.72: ; preds = %or.merge.79
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.80
|
||||
|
||||
@@ -506,7 +511,6 @@ while.exit.73: ; preds = %or.merge.79
|
||||
|
||||
or.rhs.74: ; preds = %while.hdr.71
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -519,7 +523,6 @@ or.merge.75: ; preds = %or.rhs.74, %while.h
|
||||
|
||||
or.rhs.76: ; preds = %or.merge.75
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -532,7 +535,6 @@ or.merge.77: ; preds = %or.rhs.76, %or.merg
|
||||
|
||||
or.rhs.78: ; preds = %or.merge.77
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -553,12 +555,10 @@ while.body.81: ; preds = %while.hdr.80
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -611,6 +611,18 @@ if.merge.85: ; preds = %if.else.84, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -630,11 +642,9 @@ if.else.90: ; preds = %entry
|
||||
|
||||
if.merge.91: ; preds = %if.else.90, %if.then.89
|
||||
%bp = phi double [ %fsub, %if.then.89 ], [ %loadN, %if.else.90 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -642,7 +652,6 @@ if.merge.91: ; preds = %if.else.90, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -657,19 +666,15 @@ if.then.92: ; preds = %if.merge.91
|
||||
if.merge.93: ; preds = %if.then.92, %if.merge.91
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.94, label %if.else.95
|
||||
@@ -682,20 +687,16 @@ if.else.95: ; preds = %if.merge.93
|
||||
|
||||
if.merge.96: ; preds = %if.else.95, %if.then.94
|
||||
%bpN = phi i64 [ 1, %if.then.94 ], [ 0, %if.else.95 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.97, label %if.merge.98
|
||||
@@ -731,7 +732,6 @@ if.merge.98: ; preds = %if.then.97, %if.mer
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -759,6 +759,7 @@ if.merge.98: ; preds = %if.then.97, %if.mer
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -782,7 +783,6 @@ while.hdr.208: ; preds = %if.merge.213, %entr
|
||||
while.body.209: ; preds = %while.hdr.208
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -823,6 +823,13 @@ if.merge.213: ; preds = %if.else.212, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -843,11 +850,9 @@ if.merge.64: ; preds = %if.then.63, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -864,11 +869,9 @@ if.merge.66: ; preds = %if.then.65, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -885,11 +888,9 @@ if.merge.68: ; preds = %if.then.67, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -902,7 +903,6 @@ if.then.69: ; preds = %if.merge.68
|
||||
br label %if.merge.70
|
||||
|
||||
if.merge.70: ; preds = %if.then.69, %if.merge.68
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -924,6 +924,13 @@ if.merge.70: ; preds = %if.then.69, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -935,40 +942,33 @@ if.then.206: ; preds = %entry
|
||||
if.merge.207: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.214
|
||||
|
||||
@@ -1079,6 +1079,12 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.5, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1158,7 +1164,6 @@ match.arm.44: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.58, label %if.else.59
|
||||
|
||||
match.arm.45: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1178,7 +1183,6 @@ match.arm.46: ; preds = %entry
|
||||
|
||||
match.arm.47: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.86, label %fN.unbox.87
|
||||
@@ -1187,7 +1191,6 @@ match.arm.48: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.100 [
|
||||
i64 19, label %dispatch.case.101
|
||||
i64 20, label %dispatch.case.102
|
||||
@@ -1213,7 +1216,6 @@ match.arm.52: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw20 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw20, label %dispatch.default.156 [
|
||||
i64 35, label %dispatch.case.157
|
||||
i64 44, label %dispatch.case.158
|
||||
@@ -1223,7 +1225,6 @@ match.arm.53: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw24 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw24, label %dispatch.default.170 [
|
||||
i64 36, label %dispatch.case.171
|
||||
i64 42, label %dispatch.case.172
|
||||
@@ -1233,7 +1234,6 @@ match.arm.54: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw28 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw28, label %dispatch.default.184 [
|
||||
i64 18, label %dispatch.case.185
|
||||
i64 22, label %dispatch.case.186
|
||||
@@ -1871,6 +1871,7 @@ if.merge.41: ; preds = %if.then.40, %while.
|
||||
define i32 @main() #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca float, align 4
|
||||
store i64 42, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp ne i64 %load, 0
|
||||
@@ -1881,7 +1882,6 @@ if.then.0: ; preds = %entry
|
||||
br label %if.merge.1
|
||||
|
||||
if.merge.1: ; preds = %if.then.0, %entry
|
||||
%allocaN = alloca float, align 4
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp ne i64 %loadN, 0
|
||||
br i1 %icmpN, label %if.then.2, label %if.else.3
|
||||
@@ -1973,6 +1973,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.100, i64 15 }, { ptr, i64 } { ptr @str.101, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2037,7 +2039,6 @@ fv.default: ; preds = %if.merge.114
|
||||
|
||||
fv.case: ; preds = %if.merge.114
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2057,7 +2058,6 @@ fv.case20: ; preds = %if.merge.114
|
||||
|
||||
fv.case24: ; preds = %if.merge.114
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -2352,6 +2352,7 @@ fv.case17: ; preds = %if.merge.134
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.138, i64 5 }, { ptr, i64 } { ptr @str.139, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2426,7 +2427,6 @@ fv.case17: ; preds = %if.merge.139
|
||||
|
||||
fv.case20: ; preds = %if.merge.139
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2519,6 +2519,7 @@ fv.case20: ; preds = %if.merge.144
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.156, i64 17 }, { ptr, i64 } { ptr @str.157, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2583,7 +2584,6 @@ fv.default: ; preds = %if.merge.149
|
||||
|
||||
fv.case: ; preds = %if.merge.149
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2609,6 +2609,7 @@ fv.case23: ; preds = %if.merge.149
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.166, i64 7 }, { ptr, i64 } { ptr @str.167, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2671,7 +2672,6 @@ fv.default: ; preds = %if.merge.154
|
||||
|
||||
fv.case: ; preds = %if.merge.154
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2688,6 +2688,7 @@ fv.case17: ; preds = %if.merge.154
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.174, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2720,7 +2721,6 @@ if.merge.163: ; preds = %if.then.162, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -2738,6 +2738,8 @@ if.merge.163: ; preds = %if.then.162, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.177, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2770,11 +2772,9 @@ if.merge.168: ; preds = %if.then.167, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2791,6 +2791,7 @@ if.merge.168: ; preds = %if.then.167, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.180, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2828,7 +2829,6 @@ if.merge.177: ; preds = %if.then.176, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2845,6 +2845,7 @@ if.merge.177: ; preds = %if.then.176, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.183, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2882,7 +2883,6 @@ if.merge.182: ; preds = %if.then.181, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -371,6 +371,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -382,15 +387,11 @@ if.then.14: ; preds = %entry
|
||||
if.merge.15: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.16
|
||||
|
||||
@@ -402,7 +403,6 @@ while.hdr.16: ; preds = %if.merge.20, %if.me
|
||||
while.body.17: ; preds = %while.hdr.16
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -460,6 +460,17 @@ if.merge.22: ; preds = %if.then.21, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -471,18 +482,14 @@ if.then.56: ; preds = %entry
|
||||
if.merge.57: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.66
|
||||
|
||||
while.hdr.66: ; preds = %while.exit.77, %if.merge.57
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -490,9 +497,7 @@ while.hdr.66: ; preds = %while.exit.77, %if.
|
||||
br i1 %icmpN, label %or.merge.70, label %or.rhs.69
|
||||
|
||||
while.body.67: ; preds = %or.merge.74
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.75
|
||||
|
||||
@@ -507,7 +512,6 @@ while.exit.68: ; preds = %or.merge.74
|
||||
|
||||
or.rhs.69: ; preds = %while.hdr.66
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -520,7 +524,6 @@ or.merge.70: ; preds = %or.rhs.69, %while.h
|
||||
|
||||
or.rhs.71: ; preds = %or.merge.70
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -533,7 +536,6 @@ or.merge.72: ; preds = %or.rhs.71, %or.merg
|
||||
|
||||
or.rhs.73: ; preds = %or.merge.72
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -554,12 +556,10 @@ while.body.76: ; preds = %while.hdr.75
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -612,6 +612,18 @@ if.merge.80: ; preds = %if.else.79, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -631,11 +643,9 @@ if.else.85: ; preds = %entry
|
||||
|
||||
if.merge.86: ; preds = %if.else.85, %if.then.84
|
||||
%bp = phi double [ %fsub, %if.then.84 ], [ %loadN, %if.else.85 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -643,7 +653,6 @@ if.merge.86: ; preds = %if.else.85, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -658,19 +667,15 @@ if.then.87: ; preds = %if.merge.86
|
||||
if.merge.88: ; preds = %if.then.87, %if.merge.86
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.89, label %if.else.90
|
||||
@@ -683,20 +688,16 @@ if.else.90: ; preds = %if.merge.88
|
||||
|
||||
if.merge.91: ; preds = %if.else.90, %if.then.89
|
||||
%bpN = phi i64 [ 1, %if.then.89 ], [ 0, %if.else.90 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.92, label %if.merge.93
|
||||
@@ -732,7 +733,6 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -760,6 +760,7 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -783,7 +784,6 @@ while.hdr.203: ; preds = %if.merge.208, %entr
|
||||
while.body.204: ; preds = %while.hdr.203
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -824,6 +824,13 @@ if.merge.208: ; preds = %if.else.207, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -844,11 +851,9 @@ if.merge.59: ; preds = %if.then.58, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -865,11 +870,9 @@ if.merge.61: ; preds = %if.then.60, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -886,11 +889,9 @@ if.merge.63: ; preds = %if.then.62, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -903,7 +904,6 @@ if.then.64: ; preds = %if.merge.63
|
||||
br label %if.merge.65
|
||||
|
||||
if.merge.65: ; preds = %if.then.64, %if.merge.63
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -925,6 +925,13 @@ if.merge.65: ; preds = %if.then.64, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -936,40 +943,33 @@ if.then.201: ; preds = %entry
|
||||
if.merge.202: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.209
|
||||
|
||||
@@ -1080,6 +1080,12 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.5, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1159,7 +1165,6 @@ match.arm.39: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.53, label %if.else.54
|
||||
|
||||
match.arm.40: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1179,7 +1184,6 @@ match.arm.41: ; preds = %entry
|
||||
|
||||
match.arm.42: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82
|
||||
@@ -1188,7 +1192,6 @@ match.arm.43: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.95 [
|
||||
i64 19, label %dispatch.case.96
|
||||
i64 20, label %dispatch.case.97
|
||||
@@ -1214,7 +1217,6 @@ match.arm.47: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw20 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw20, label %dispatch.default.151 [
|
||||
i64 35, label %dispatch.case.152
|
||||
i64 43, label %dispatch.case.153
|
||||
@@ -1224,7 +1226,6 @@ match.arm.48: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw24 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw24, label %dispatch.default.165 [
|
||||
i64 36, label %dispatch.case.166
|
||||
i64 41, label %dispatch.case.167
|
||||
@@ -1234,7 +1235,6 @@ match.arm.49: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw28 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw28, label %dispatch.default.179 [
|
||||
i64 18, label %dispatch.case.180
|
||||
i64 22, label %dispatch.case.181
|
||||
@@ -2029,6 +2029,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.101, i64 15 }, { ptr, i64 } { ptr @str.102, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2093,7 +2095,6 @@ fv.default: ; preds = %if.merge.109
|
||||
|
||||
fv.case: ; preds = %if.merge.109
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2113,7 +2114,6 @@ fv.case20: ; preds = %if.merge.109
|
||||
|
||||
fv.case24: ; preds = %if.merge.109
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -2408,6 +2408,7 @@ fv.case17: ; preds = %if.merge.129
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.139, i64 5 }, { ptr, i64 } { ptr @str.140, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2482,7 +2483,6 @@ fv.case17: ; preds = %if.merge.134
|
||||
|
||||
fv.case20: ; preds = %if.merge.134
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2575,6 +2575,7 @@ fv.case20: ; preds = %if.merge.139
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.157, i64 17 }, { ptr, i64 } { ptr @str.158, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2639,7 +2640,6 @@ fv.default: ; preds = %if.merge.144
|
||||
|
||||
fv.case: ; preds = %if.merge.144
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2665,6 +2665,7 @@ fv.case23: ; preds = %if.merge.144
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.167, i64 7 }, { ptr, i64 } { ptr @str.168, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2727,7 +2728,6 @@ fv.default: ; preds = %if.merge.149
|
||||
|
||||
fv.case: ; preds = %if.merge.149
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2744,6 +2744,7 @@ fv.case17: ; preds = %if.merge.149
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.175, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2776,7 +2777,6 @@ if.merge.158: ; preds = %if.then.157, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -2794,6 +2794,8 @@ if.merge.158: ; preds = %if.then.157, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.178, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2826,11 +2828,9 @@ if.merge.163: ; preds = %if.then.162, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2847,6 +2847,7 @@ if.merge.163: ; preds = %if.then.162, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.181, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2884,7 +2885,6 @@ if.merge.172: ; preds = %if.then.171, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2901,6 +2901,7 @@ if.merge.172: ; preds = %if.then.171, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.184, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2938,7 +2939,6 @@ if.merge.177: ; preds = %if.then.176, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -508,6 +508,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -519,15 +524,11 @@ if.then.14: ; preds = %entry
|
||||
if.merge.15: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.16
|
||||
|
||||
@@ -539,7 +540,6 @@ while.hdr.16: ; preds = %if.merge.20, %if.me
|
||||
while.body.17: ; preds = %while.hdr.16
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -597,6 +597,17 @@ if.merge.22: ; preds = %if.then.21, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -608,18 +619,14 @@ if.then.56: ; preds = %entry
|
||||
if.merge.57: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.66
|
||||
|
||||
while.hdr.66: ; preds = %while.exit.77, %if.merge.57
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -627,9 +634,7 @@ while.hdr.66: ; preds = %while.exit.77, %if.
|
||||
br i1 %icmpN, label %or.merge.70, label %or.rhs.69
|
||||
|
||||
while.body.67: ; preds = %or.merge.74
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.75
|
||||
|
||||
@@ -644,7 +649,6 @@ while.exit.68: ; preds = %or.merge.74
|
||||
|
||||
or.rhs.69: ; preds = %while.hdr.66
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -657,7 +661,6 @@ or.merge.70: ; preds = %or.rhs.69, %while.h
|
||||
|
||||
or.rhs.71: ; preds = %or.merge.70
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -670,7 +673,6 @@ or.merge.72: ; preds = %or.rhs.71, %or.merg
|
||||
|
||||
or.rhs.73: ; preds = %or.merge.72
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -691,12 +693,10 @@ while.body.76: ; preds = %while.hdr.75
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -749,6 +749,18 @@ if.merge.80: ; preds = %if.else.79, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -768,11 +780,9 @@ if.else.85: ; preds = %entry
|
||||
|
||||
if.merge.86: ; preds = %if.else.85, %if.then.84
|
||||
%bp = phi double [ %fsub, %if.then.84 ], [ %loadN, %if.else.85 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -780,7 +790,6 @@ if.merge.86: ; preds = %if.else.85, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -795,19 +804,15 @@ if.then.87: ; preds = %if.merge.86
|
||||
if.merge.88: ; preds = %if.then.87, %if.merge.86
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.89, label %if.else.90
|
||||
@@ -820,20 +825,16 @@ if.else.90: ; preds = %if.merge.88
|
||||
|
||||
if.merge.91: ; preds = %if.else.90, %if.then.89
|
||||
%bpN = phi i64 [ 1, %if.then.89 ], [ 0, %if.else.90 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.92, label %if.merge.93
|
||||
@@ -869,7 +870,6 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -897,6 +897,7 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -920,7 +921,6 @@ while.hdr.270: ; preds = %if.merge.275, %entr
|
||||
while.body.271: ; preds = %while.hdr.270
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -961,6 +961,13 @@ if.merge.275: ; preds = %if.else.274, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -981,11 +988,9 @@ if.merge.59: ; preds = %if.then.58, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -1002,11 +1007,9 @@ if.merge.61: ; preds = %if.then.60, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -1023,11 +1026,9 @@ if.merge.63: ; preds = %if.then.62, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -1040,7 +1041,6 @@ if.then.64: ; preds = %if.merge.63
|
||||
br label %if.merge.65
|
||||
|
||||
if.merge.65: ; preds = %if.then.64, %if.merge.63
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -1062,6 +1062,13 @@ if.merge.65: ; preds = %if.then.64, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -1073,40 +1080,33 @@ if.then.268: ; preds = %entry
|
||||
if.merge.269: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.276
|
||||
|
||||
@@ -1217,6 +1217,14 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.5, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1312,7 +1320,6 @@ match.arm.39: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.53, label %if.else.54
|
||||
|
||||
match.arm.40: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1332,7 +1339,6 @@ match.arm.41: ; preds = %entry
|
||||
|
||||
match.arm.42: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82
|
||||
@@ -1341,7 +1347,6 @@ match.arm.43: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.95 [
|
||||
i64 19, label %dispatch.case.96
|
||||
i64 20, label %dispatch.case.97
|
||||
@@ -1364,7 +1369,6 @@ match.arm.44: ; preds = %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw20 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw20, label %dispatch.default.187 [
|
||||
i64 63, label %dispatch.case.188
|
||||
]
|
||||
@@ -1376,7 +1380,6 @@ match.arm.46: ; preds = %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw24 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw24, label %dispatch.default.192 [
|
||||
i64 40, label %dispatch.case.193
|
||||
]
|
||||
@@ -1385,7 +1388,6 @@ match.arm.47: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw28 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw28, label %dispatch.default.200 [
|
||||
i64 35, label %dispatch.case.201
|
||||
i64 37, label %dispatch.case.202
|
||||
@@ -1397,7 +1399,6 @@ match.arm.48: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw32 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw32, label %dispatch.default.226 [
|
||||
i64 36, label %dispatch.case.227
|
||||
i64 50, label %dispatch.case.228
|
||||
@@ -1407,7 +1408,6 @@ match.arm.49: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw36 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw36, label %dispatch.default.240 [
|
||||
i64 18, label %dispatch.case.241
|
||||
i64 22, label %dispatch.case.242
|
||||
@@ -3021,6 +3021,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.160, i64 15 }, { ptr, i64 } { ptr @str.161, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3085,7 +3087,6 @@ fv.default: ; preds = %if.merge.115
|
||||
|
||||
fv.case: ; preds = %if.merge.115
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3105,7 +3106,6 @@ fv.case20: ; preds = %if.merge.115
|
||||
|
||||
fv.case24: ; preds = %if.merge.115
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -3400,6 +3400,7 @@ fv.case17: ; preds = %if.merge.135
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.198, i64 5 }, { ptr, i64 } { ptr @str.199, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3474,7 +3475,6 @@ fv.case17: ; preds = %if.merge.140
|
||||
|
||||
fv.case20: ; preds = %if.merge.140
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3567,6 +3567,7 @@ fv.case20: ; preds = %if.merge.145
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.216, i64 17 }, { ptr, i64 } { ptr @str.217, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3631,7 +3632,6 @@ fv.default: ; preds = %if.merge.150
|
||||
|
||||
fv.case: ; preds = %if.merge.150
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3657,6 +3657,7 @@ fv.case23: ; preds = %if.merge.150
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.226, i64 7 }, { ptr, i64 } { ptr @str.227, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3719,7 +3720,6 @@ fv.default: ; preds = %if.merge.155
|
||||
|
||||
fv.case: ; preds = %if.merge.155
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3736,6 +3736,7 @@ fv.case17: ; preds = %if.merge.155
|
||||
define internal { ptr, i64 } @struct_to_string__Mat4(ptr %0, { [16 x float] } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { [16 x float] }, align 8
|
||||
%ba.tmp = alloca [16 x float], align 4
|
||||
store { [16 x float] } %1, ptr %alloca, align 4
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.234, i64 4 }, { ptr, i64 } { ptr @str.235, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3797,7 +3798,6 @@ fv.default: ; preds = %if.merge.160
|
||||
|
||||
fv.case: ; preds = %if.merge.160
|
||||
%fv.field = extractvalue { [16 x float] } %loadN, 0
|
||||
%ba.tmp = alloca [16 x float], align 4
|
||||
store [16 x float] %fv.field, ptr %ba.tmp, align 4
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 37, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3887,6 +3887,7 @@ fv.case17: ; preds = %if.merge.165
|
||||
define internal { ptr, i64 } @struct_to_string__Vec__3__f32(ptr %0, { <3 x float> } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { <3 x float> }, align 16
|
||||
%ba.tmp = alloca <3 x float>, align 16
|
||||
store { <3 x float> } %1, ptr %alloca, align 16
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.249, i64 11 }, { ptr, i64 } { ptr @str.250, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3948,7 +3949,6 @@ fv.default: ; preds = %if.merge.170
|
||||
|
||||
fv.case: ; preds = %if.merge.170
|
||||
%fv.field = extractvalue { <3 x float> } %loadN, 0
|
||||
%ba.tmp = alloca <3 x float>, align 16
|
||||
store <3 x float> %fv.field, ptr %ba.tmp, align 16
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 40, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3959,6 +3959,7 @@ fv.case: ; preds = %if.merge.170
|
||||
define internal { ptr, i64 } @struct_to_string__Vec3(ptr %0, { <3 x float> } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { <3 x float> }, align 16
|
||||
%ba.tmp = alloca <3 x float>, align 16
|
||||
store { <3 x float> } %1, ptr %alloca, align 16
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.256, i64 4 }, { ptr, i64 } { ptr @str.257, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -4020,7 +4021,6 @@ fv.default: ; preds = %if.merge.175
|
||||
|
||||
fv.case: ; preds = %if.merge.175
|
||||
%fv.field = extractvalue { <3 x float> } %loadN, 0
|
||||
%ba.tmp = alloca <3 x float>, align 16
|
||||
store <3 x float> %fv.field, ptr %ba.tmp, align 16
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 40, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -4185,6 +4185,10 @@ fv.case17: ; preds = %if.merge.185
|
||||
define internal { ptr, i64 } @enum_to_string__Sx__f32(ptr %0, { i64, [4 x i8] } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, [4 x i8] }, align 8
|
||||
%fv.utmp = alloca { i64, [4 x i8] }, align 8
|
||||
%fv.utmp7 = alloca { i64, [4 x i8] }, align 8
|
||||
%allocaN = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, [4 x i8] } %1, ptr %alloca, align 8
|
||||
%load = load { i64, [4 x i8] }, ptr %alloca, align 8
|
||||
%etag = extractvalue { i64, [4 x i8] } %load, 0
|
||||
@@ -4218,11 +4222,9 @@ if.merge.190: ; preds = %if.then.189, %fv.me
|
||||
|
||||
fv.merge: ; preds = %fv.default, %fv.case6, %fv.case
|
||||
%fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val10, %fv.case6 ], [ undef, %fv.default ]
|
||||
%allocaN = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %fv.phi, ptr %allocaN, align 8
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
@@ -4233,7 +4235,6 @@ fv.default: ; preds = %entry
|
||||
br label %fv.merge
|
||||
|
||||
fv.case: ; preds = %entry
|
||||
%fv.utmp = alloca { i64, [4 x i8] }, align 8
|
||||
store { i64, [4 x i8] } %loadN, ptr %fv.utmp, align 8
|
||||
%fv.pp = getelementptr inbounds { i64, [4 x i8] }, ptr %fv.utmp, i32 0, i32 1
|
||||
%fv.field = load i32, ptr %fv.pp, align 4
|
||||
@@ -4242,7 +4243,6 @@ fv.case: ; preds = %entry
|
||||
br label %fv.merge
|
||||
|
||||
fv.case6: ; preds = %entry
|
||||
%fv.utmp7 = alloca { i64, [4 x i8] }, align 8
|
||||
store { i64, [4 x i8] } %loadN, ptr %fv.utmp7, align 8
|
||||
%fv.pp8 = getelementptr inbounds { i64, [4 x i8] }, ptr %fv.utmp7, i32 0, i32 1
|
||||
%fv.field9 = load float, ptr %fv.pp8, align 4
|
||||
@@ -4306,6 +4306,7 @@ if.merge.198: ; preds = %if.then.197, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.288, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -4338,7 +4339,6 @@ if.merge.209: ; preds = %if.then.208, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -4356,6 +4356,7 @@ if.merge.209: ; preds = %if.then.208, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_16_f32(ptr %0, [16 x float] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [16 x float], align 4
|
||||
%ig.tmp = alloca [16 x float], align 4
|
||||
store [16 x float] %1, ptr %alloca, align 4
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.291, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -4388,7 +4389,6 @@ if.merge.214: ; preds = %if.then.213, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [16 x float], ptr %alloca, align 4
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [16 x float], align 4
|
||||
store [16 x float] %loadN, ptr %ig.tmp, align 4
|
||||
%ig.ptr = getelementptr [16 x float], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load float, ptr %ig.ptr, align 4
|
||||
@@ -4408,6 +4408,8 @@ if.merge.214: ; preds = %if.then.213, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.294, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -4440,11 +4442,9 @@ if.merge.219: ; preds = %if.then.218, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -4461,6 +4461,7 @@ if.merge.219: ; preds = %if.then.218, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_5_f32(ptr %0, [5 x float] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [5 x float], align 4
|
||||
%ig.tmp = alloca [5 x float], align 4
|
||||
store [5 x float] %1, ptr %alloca, align 4
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.297, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -4493,7 +4494,6 @@ if.merge.224: ; preds = %if.then.223, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [5 x float], ptr %alloca, align 4
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [5 x float], align 4
|
||||
store [5 x float] %loadN, ptr %ig.tmp, align 4
|
||||
%ig.ptr = getelementptr [5 x float], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load float, ptr %ig.ptr, align 4
|
||||
@@ -4513,6 +4513,7 @@ if.merge.224: ; preds = %if.then.223, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.300, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -4550,7 +4551,6 @@ if.merge.233: ; preds = %if.then.232, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -4567,6 +4567,7 @@ if.merge.233: ; preds = %if.then.232, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.303, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -4604,7 +4605,6 @@ if.merge.238: ; preds = %if.then.237, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -381,6 +381,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -392,15 +397,11 @@ if.then.14: ; preds = %entry
|
||||
if.merge.15: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.16
|
||||
|
||||
@@ -412,7 +413,6 @@ while.hdr.16: ; preds = %if.merge.20, %if.me
|
||||
while.body.17: ; preds = %while.hdr.16
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -470,6 +470,17 @@ if.merge.22: ; preds = %if.then.21, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -481,18 +492,14 @@ if.then.56: ; preds = %entry
|
||||
if.merge.57: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.66
|
||||
|
||||
while.hdr.66: ; preds = %while.exit.77, %if.merge.57
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -500,9 +507,7 @@ while.hdr.66: ; preds = %while.exit.77, %if.
|
||||
br i1 %icmpN, label %or.merge.70, label %or.rhs.69
|
||||
|
||||
while.body.67: ; preds = %or.merge.74
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.75
|
||||
|
||||
@@ -517,7 +522,6 @@ while.exit.68: ; preds = %or.merge.74
|
||||
|
||||
or.rhs.69: ; preds = %while.hdr.66
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -530,7 +534,6 @@ or.merge.70: ; preds = %or.rhs.69, %while.h
|
||||
|
||||
or.rhs.71: ; preds = %or.merge.70
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -543,7 +546,6 @@ or.merge.72: ; preds = %or.rhs.71, %or.merg
|
||||
|
||||
or.rhs.73: ; preds = %or.merge.72
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -564,12 +566,10 @@ while.body.76: ; preds = %while.hdr.75
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -622,6 +622,18 @@ if.merge.80: ; preds = %if.else.79, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -641,11 +653,9 @@ if.else.85: ; preds = %entry
|
||||
|
||||
if.merge.86: ; preds = %if.else.85, %if.then.84
|
||||
%bp = phi double [ %fsub, %if.then.84 ], [ %loadN, %if.else.85 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -653,7 +663,6 @@ if.merge.86: ; preds = %if.else.85, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -668,19 +677,15 @@ if.then.87: ; preds = %if.merge.86
|
||||
if.merge.88: ; preds = %if.then.87, %if.merge.86
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.89, label %if.else.90
|
||||
@@ -693,20 +698,16 @@ if.else.90: ; preds = %if.merge.88
|
||||
|
||||
if.merge.91: ; preds = %if.else.90, %if.then.89
|
||||
%bpN = phi i64 [ 1, %if.then.89 ], [ 0, %if.else.90 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.92, label %if.merge.93
|
||||
@@ -742,7 +743,6 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -770,6 +770,7 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -793,7 +794,6 @@ while.hdr.204: ; preds = %if.merge.209, %entr
|
||||
while.body.205: ; preds = %while.hdr.204
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -834,6 +834,13 @@ if.merge.209: ; preds = %if.else.208, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -854,11 +861,9 @@ if.merge.59: ; preds = %if.then.58, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -875,11 +880,9 @@ if.merge.61: ; preds = %if.then.60, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -896,11 +899,9 @@ if.merge.63: ; preds = %if.then.62, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -913,7 +914,6 @@ if.then.64: ; preds = %if.merge.63
|
||||
br label %if.merge.65
|
||||
|
||||
if.merge.65: ; preds = %if.then.64, %if.merge.63
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -935,6 +935,13 @@ if.merge.65: ; preds = %if.then.64, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -946,40 +953,33 @@ if.then.202: ; preds = %entry
|
||||
if.merge.203: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.210
|
||||
|
||||
@@ -1090,6 +1090,12 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.5, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1170,7 +1176,6 @@ match.arm.39: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.53, label %if.else.54
|
||||
|
||||
match.arm.40: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1190,7 +1195,6 @@ match.arm.41: ; preds = %entry
|
||||
|
||||
match.arm.42: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82
|
||||
@@ -1199,7 +1203,6 @@ match.arm.43: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.95 [
|
||||
i64 19, label %dispatch.case.96
|
||||
i64 20, label %dispatch.case.97
|
||||
@@ -1225,7 +1228,6 @@ match.arm.47: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw20 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw20, label %dispatch.default.151 [
|
||||
i64 35, label %dispatch.case.152
|
||||
i64 46, label %dispatch.case.153
|
||||
@@ -1235,7 +1237,6 @@ match.arm.48: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw24 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw24, label %dispatch.default.165 [
|
||||
i64 36, label %dispatch.case.166
|
||||
i64 44, label %dispatch.case.167
|
||||
@@ -1245,7 +1246,6 @@ match.arm.49: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw28 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw28, label %dispatch.default.179 [
|
||||
i64 18, label %dispatch.case.180
|
||||
i64 22, label %dispatch.case.181
|
||||
@@ -2122,6 +2122,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.108, i64 15 }, { ptr, i64 } { ptr @str.109, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2186,7 +2188,6 @@ fv.default: ; preds = %if.merge.109
|
||||
|
||||
fv.case: ; preds = %if.merge.109
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2206,7 +2207,6 @@ fv.case20: ; preds = %if.merge.109
|
||||
|
||||
fv.case24: ; preds = %if.merge.109
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -2501,6 +2501,7 @@ fv.case17: ; preds = %if.merge.129
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.146, i64 5 }, { ptr, i64 } { ptr @str.147, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2575,7 +2576,6 @@ fv.case17: ; preds = %if.merge.134
|
||||
|
||||
fv.case20: ; preds = %if.merge.134
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2668,6 +2668,7 @@ fv.case20: ; preds = %if.merge.139
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.164, i64 17 }, { ptr, i64 } { ptr @str.165, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2732,7 +2733,6 @@ fv.default: ; preds = %if.merge.144
|
||||
|
||||
fv.case: ; preds = %if.merge.144
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2758,6 +2758,7 @@ fv.case23: ; preds = %if.merge.144
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.174, i64 7 }, { ptr, i64 } { ptr @str.175, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2820,7 +2821,6 @@ fv.default: ; preds = %if.merge.149
|
||||
|
||||
fv.case: ; preds = %if.merge.149
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2837,6 +2837,7 @@ fv.case17: ; preds = %if.merge.149
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.182, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2869,7 +2870,6 @@ if.merge.158: ; preds = %if.then.157, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -2887,6 +2887,8 @@ if.merge.158: ; preds = %if.then.157, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.185, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2919,11 +2921,9 @@ if.merge.163: ; preds = %if.then.162, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2940,6 +2940,7 @@ if.merge.163: ; preds = %if.then.162, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.188, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2977,7 +2978,6 @@ if.merge.172: ; preds = %if.then.171, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2994,6 +2994,7 @@ if.merge.172: ; preds = %if.then.171, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.191, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3031,7 +3032,6 @@ if.merge.177: ; preds = %if.then.176, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -456,6 +456,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -467,15 +472,11 @@ if.then.14: ; preds = %entry
|
||||
if.merge.15: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.16
|
||||
|
||||
@@ -487,7 +488,6 @@ while.hdr.16: ; preds = %if.merge.20, %if.me
|
||||
while.body.17: ; preds = %while.hdr.16
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -545,6 +545,17 @@ if.merge.22: ; preds = %if.then.21, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -556,18 +567,14 @@ if.then.56: ; preds = %entry
|
||||
if.merge.57: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.66
|
||||
|
||||
while.hdr.66: ; preds = %while.exit.77, %if.merge.57
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -575,9 +582,7 @@ while.hdr.66: ; preds = %while.exit.77, %if.
|
||||
br i1 %icmpN, label %or.merge.70, label %or.rhs.69
|
||||
|
||||
while.body.67: ; preds = %or.merge.74
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.75
|
||||
|
||||
@@ -592,7 +597,6 @@ while.exit.68: ; preds = %or.merge.74
|
||||
|
||||
or.rhs.69: ; preds = %while.hdr.66
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -605,7 +609,6 @@ or.merge.70: ; preds = %or.rhs.69, %while.h
|
||||
|
||||
or.rhs.71: ; preds = %or.merge.70
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -618,7 +621,6 @@ or.merge.72: ; preds = %or.rhs.71, %or.merg
|
||||
|
||||
or.rhs.73: ; preds = %or.merge.72
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -639,12 +641,10 @@ while.body.76: ; preds = %while.hdr.75
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -697,6 +697,18 @@ if.merge.80: ; preds = %if.else.79, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -716,11 +728,9 @@ if.else.85: ; preds = %entry
|
||||
|
||||
if.merge.86: ; preds = %if.else.85, %if.then.84
|
||||
%bp = phi double [ %fsub, %if.then.84 ], [ %loadN, %if.else.85 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -728,7 +738,6 @@ if.merge.86: ; preds = %if.else.85, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -743,19 +752,15 @@ if.then.87: ; preds = %if.merge.86
|
||||
if.merge.88: ; preds = %if.then.87, %if.merge.86
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.89, label %if.else.90
|
||||
@@ -768,20 +773,16 @@ if.else.90: ; preds = %if.merge.88
|
||||
|
||||
if.merge.91: ; preds = %if.else.90, %if.then.89
|
||||
%bpN = phi i64 [ 1, %if.then.89 ], [ 0, %if.else.90 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.92, label %if.merge.93
|
||||
@@ -817,7 +818,6 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -845,6 +845,7 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -868,7 +869,6 @@ while.hdr.211: ; preds = %if.merge.216, %entr
|
||||
while.body.212: ; preds = %while.hdr.211
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -909,6 +909,13 @@ if.merge.216: ; preds = %if.else.215, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -929,11 +936,9 @@ if.merge.59: ; preds = %if.then.58, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -950,11 +955,9 @@ if.merge.61: ; preds = %if.then.60, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -971,11 +974,9 @@ if.merge.63: ; preds = %if.then.62, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -988,7 +989,6 @@ if.then.64: ; preds = %if.merge.63
|
||||
br label %if.merge.65
|
||||
|
||||
if.merge.65: ; preds = %if.then.64, %if.merge.63
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -1010,6 +1010,13 @@ if.merge.65: ; preds = %if.then.64, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -1021,40 +1028,33 @@ if.then.209: ; preds = %entry
|
||||
if.merge.210: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.217
|
||||
|
||||
@@ -1165,6 +1165,12 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.5, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1247,7 +1253,6 @@ match.arm.39: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.53, label %if.else.54
|
||||
|
||||
match.arm.40: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1267,7 +1272,6 @@ match.arm.41: ; preds = %entry
|
||||
|
||||
match.arm.42: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82
|
||||
@@ -1276,7 +1280,6 @@ match.arm.43: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.95 [
|
||||
i64 19, label %dispatch.case.96
|
||||
i64 20, label %dispatch.case.97
|
||||
@@ -1303,7 +1306,6 @@ match.arm.47: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw20 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw20, label %dispatch.default.157 [
|
||||
i64 36, label %dispatch.case.158
|
||||
i64 45, label %dispatch.case.159
|
||||
@@ -1313,7 +1315,6 @@ match.arm.48: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw24 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw24, label %dispatch.default.171 [
|
||||
i64 37, label %dispatch.case.172
|
||||
i64 43, label %dispatch.case.173
|
||||
@@ -1323,7 +1324,6 @@ match.arm.49: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw28 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw28, label %dispatch.default.185 [
|
||||
i64 18, label %dispatch.case.186
|
||||
i64 23, label %dispatch.case.187
|
||||
@@ -2195,6 +2195,8 @@ fv.case17: ; preds = %if.merge.110
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.112, i64 15 }, { ptr, i64 } { ptr @str.113, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2259,7 +2261,6 @@ fv.default: ; preds = %if.merge.115
|
||||
|
||||
fv.case: ; preds = %if.merge.115
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2279,7 +2280,6 @@ fv.case20: ; preds = %if.merge.115
|
||||
|
||||
fv.case24: ; preds = %if.merge.115
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -2574,6 +2574,7 @@ fv.case17: ; preds = %if.merge.135
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.152, i64 5 }, { ptr, i64 } { ptr @str.153, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2648,7 +2649,6 @@ fv.case17: ; preds = %if.merge.140
|
||||
|
||||
fv.case20: ; preds = %if.merge.140
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 21, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2741,6 +2741,7 @@ fv.case20: ; preds = %if.merge.145
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.170, i64 17 }, { ptr, i64 } { ptr @str.171, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2805,7 +2806,6 @@ fv.default: ; preds = %if.merge.150
|
||||
|
||||
fv.case: ; preds = %if.merge.150
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 21, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2831,6 +2831,7 @@ fv.case23: ; preds = %if.merge.150
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.180, i64 7 }, { ptr, i64 } { ptr @str.181, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2893,7 +2894,6 @@ fv.default: ; preds = %if.merge.155
|
||||
|
||||
fv.case: ; preds = %if.merge.155
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 21, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2910,6 +2910,7 @@ fv.case17: ; preds = %if.merge.155
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.188, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2942,7 +2943,6 @@ if.merge.164: ; preds = %if.then.163, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -2960,6 +2960,8 @@ if.merge.164: ; preds = %if.then.163, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.191, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2992,11 +2994,9 @@ if.merge.169: ; preds = %if.then.168, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3013,6 +3013,7 @@ if.merge.169: ; preds = %if.then.168, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.194, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3050,7 +3051,6 @@ if.merge.178: ; preds = %if.then.177, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3067,6 +3067,7 @@ if.merge.178: ; preds = %if.then.177, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.197, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3104,7 +3105,6 @@ if.merge.183: ; preds = %if.then.182, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -458,6 +458,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -469,15 +474,11 @@ if.then.14: ; preds = %entry
|
||||
if.merge.15: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.16
|
||||
|
||||
@@ -489,7 +490,6 @@ while.hdr.16: ; preds = %if.merge.20, %if.me
|
||||
while.body.17: ; preds = %while.hdr.16
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -547,6 +547,17 @@ if.merge.22: ; preds = %if.then.21, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -558,18 +569,14 @@ if.then.56: ; preds = %entry
|
||||
if.merge.57: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.66
|
||||
|
||||
while.hdr.66: ; preds = %while.exit.77, %if.merge.57
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -577,9 +584,7 @@ while.hdr.66: ; preds = %while.exit.77, %if.
|
||||
br i1 %icmpN, label %or.merge.70, label %or.rhs.69
|
||||
|
||||
while.body.67: ; preds = %or.merge.74
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.75
|
||||
|
||||
@@ -594,7 +599,6 @@ while.exit.68: ; preds = %or.merge.74
|
||||
|
||||
or.rhs.69: ; preds = %while.hdr.66
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -607,7 +611,6 @@ or.merge.70: ; preds = %or.rhs.69, %while.h
|
||||
|
||||
or.rhs.71: ; preds = %or.merge.70
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -620,7 +623,6 @@ or.merge.72: ; preds = %or.rhs.71, %or.merg
|
||||
|
||||
or.rhs.73: ; preds = %or.merge.72
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -641,12 +643,10 @@ while.body.76: ; preds = %while.hdr.75
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -699,6 +699,18 @@ if.merge.80: ; preds = %if.else.79, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -718,11 +730,9 @@ if.else.85: ; preds = %entry
|
||||
|
||||
if.merge.86: ; preds = %if.else.85, %if.then.84
|
||||
%bp = phi double [ %fsub, %if.then.84 ], [ %loadN, %if.else.85 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -730,7 +740,6 @@ if.merge.86: ; preds = %if.else.85, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -745,19 +754,15 @@ if.then.87: ; preds = %if.merge.86
|
||||
if.merge.88: ; preds = %if.then.87, %if.merge.86
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.89, label %if.else.90
|
||||
@@ -770,20 +775,16 @@ if.else.90: ; preds = %if.merge.88
|
||||
|
||||
if.merge.91: ; preds = %if.else.90, %if.then.89
|
||||
%bpN = phi i64 [ 1, %if.then.89 ], [ 0, %if.else.90 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.92, label %if.merge.93
|
||||
@@ -819,7 +820,6 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -847,6 +847,7 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -870,7 +871,6 @@ while.hdr.246: ; preds = %if.merge.251, %entr
|
||||
while.body.247: ; preds = %while.hdr.246
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -911,6 +911,13 @@ if.merge.251: ; preds = %if.else.250, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -931,11 +938,9 @@ if.merge.59: ; preds = %if.then.58, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -952,11 +957,9 @@ if.merge.61: ; preds = %if.then.60, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -973,11 +976,9 @@ if.merge.63: ; preds = %if.then.62, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -990,7 +991,6 @@ if.then.64: ; preds = %if.merge.63
|
||||
br label %if.merge.65
|
||||
|
||||
if.merge.65: ; preds = %if.then.64, %if.merge.63
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -1012,6 +1012,13 @@ if.merge.65: ; preds = %if.then.64, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -1023,40 +1030,33 @@ if.then.244: ; preds = %entry
|
||||
if.merge.245: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.252
|
||||
|
||||
@@ -1167,6 +1167,12 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.5, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1259,7 +1265,6 @@ match.arm.39: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.53, label %if.else.54
|
||||
|
||||
match.arm.40: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1279,7 +1284,6 @@ match.arm.41: ; preds = %entry
|
||||
|
||||
match.arm.42: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82
|
||||
@@ -1288,7 +1292,6 @@ match.arm.43: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.95 [
|
||||
i64 19, label %dispatch.case.96
|
||||
i64 20, label %dispatch.case.97
|
||||
@@ -1320,7 +1323,6 @@ match.arm.47: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw20 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw20, label %dispatch.default.187 [
|
||||
i64 35, label %dispatch.case.188
|
||||
i64 52, label %dispatch.case.189
|
||||
@@ -1330,7 +1332,6 @@ match.arm.48: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw24 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw24, label %dispatch.default.201 [
|
||||
i64 36, label %dispatch.case.202
|
||||
i64 50, label %dispatch.case.203
|
||||
@@ -1340,7 +1341,6 @@ match.arm.49: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw28 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw28, label %dispatch.default.215 [
|
||||
i64 18, label %dispatch.case.216
|
||||
i64 22, label %dispatch.case.217
|
||||
@@ -2282,6 +2282,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.121, i64 15 }, { ptr, i64 } { ptr @str.122, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2346,7 +2348,6 @@ fv.default: ; preds = %if.merge.115
|
||||
|
||||
fv.case: ; preds = %if.merge.115
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2366,7 +2367,6 @@ fv.case20: ; preds = %if.merge.115
|
||||
|
||||
fv.case24: ; preds = %if.merge.115
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -2661,6 +2661,7 @@ fv.case17: ; preds = %if.merge.135
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.159, i64 5 }, { ptr, i64 } { ptr @str.160, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2735,7 +2736,6 @@ fv.case17: ; preds = %if.merge.140
|
||||
|
||||
fv.case20: ; preds = %if.merge.140
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2828,6 +2828,7 @@ fv.case20: ; preds = %if.merge.145
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.177, i64 17 }, { ptr, i64 } { ptr @str.178, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2892,7 +2893,6 @@ fv.default: ; preds = %if.merge.150
|
||||
|
||||
fv.case: ; preds = %if.merge.150
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2918,6 +2918,7 @@ fv.case23: ; preds = %if.merge.150
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.187, i64 7 }, { ptr, i64 } { ptr @str.188, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2980,7 +2981,6 @@ fv.default: ; preds = %if.merge.155
|
||||
|
||||
fv.case: ; preds = %if.merge.155
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3066,6 +3066,7 @@ fv.case: ; preds = %if.merge.160
|
||||
define internal { ptr, i64 } @struct_to_string__StrCell(ptr %0, { { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.202, i64 7 }, { ptr, i64 } { ptr @str.203, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3127,7 +3128,6 @@ fv.default: ; preds = %if.merge.165
|
||||
|
||||
fv.case: ; preds = %if.merge.165
|
||||
%fv.field = extractvalue { { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3432,6 +3432,7 @@ fv.case: ; preds = %if.merge.185
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.239, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3464,7 +3465,6 @@ if.merge.194: ; preds = %if.then.193, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -3482,6 +3482,8 @@ if.merge.194: ; preds = %if.then.193, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.242, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3514,11 +3516,9 @@ if.merge.199: ; preds = %if.then.198, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3535,6 +3535,7 @@ if.merge.199: ; preds = %if.then.198, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.245, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3572,7 +3573,6 @@ if.merge.208: ; preds = %if.then.207, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3589,6 +3589,7 @@ if.merge.208: ; preds = %if.then.207, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.248, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3626,7 +3627,6 @@ if.merge.213: ; preds = %if.then.212, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -463,6 +463,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -474,15 +479,11 @@ if.then.14: ; preds = %entry
|
||||
if.merge.15: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.16
|
||||
|
||||
@@ -494,7 +495,6 @@ while.hdr.16: ; preds = %if.merge.20, %if.me
|
||||
while.body.17: ; preds = %while.hdr.16
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -552,6 +552,17 @@ if.merge.22: ; preds = %if.then.21, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -563,18 +574,14 @@ if.then.56: ; preds = %entry
|
||||
if.merge.57: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.66
|
||||
|
||||
while.hdr.66: ; preds = %while.exit.77, %if.merge.57
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -582,9 +589,7 @@ while.hdr.66: ; preds = %while.exit.77, %if.
|
||||
br i1 %icmpN, label %or.merge.70, label %or.rhs.69
|
||||
|
||||
while.body.67: ; preds = %or.merge.74
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.75
|
||||
|
||||
@@ -599,7 +604,6 @@ while.exit.68: ; preds = %or.merge.74
|
||||
|
||||
or.rhs.69: ; preds = %while.hdr.66
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -612,7 +616,6 @@ or.merge.70: ; preds = %or.rhs.69, %while.h
|
||||
|
||||
or.rhs.71: ; preds = %or.merge.70
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -625,7 +628,6 @@ or.merge.72: ; preds = %or.rhs.71, %or.merg
|
||||
|
||||
or.rhs.73: ; preds = %or.merge.72
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -646,12 +648,10 @@ while.body.76: ; preds = %while.hdr.75
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -704,6 +704,18 @@ if.merge.80: ; preds = %if.else.79, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -723,11 +735,9 @@ if.else.85: ; preds = %entry
|
||||
|
||||
if.merge.86: ; preds = %if.else.85, %if.then.84
|
||||
%bp = phi double [ %fsub, %if.then.84 ], [ %loadN, %if.else.85 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -735,7 +745,6 @@ if.merge.86: ; preds = %if.else.85, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -750,19 +759,15 @@ if.then.87: ; preds = %if.merge.86
|
||||
if.merge.88: ; preds = %if.then.87, %if.merge.86
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.89, label %if.else.90
|
||||
@@ -775,20 +780,16 @@ if.else.90: ; preds = %if.merge.88
|
||||
|
||||
if.merge.91: ; preds = %if.else.90, %if.then.89
|
||||
%bpN = phi i64 [ 1, %if.then.89 ], [ 0, %if.else.90 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.92, label %if.merge.93
|
||||
@@ -824,7 +825,6 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -852,6 +852,7 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -875,7 +876,6 @@ while.hdr.257: ; preds = %if.merge.262, %entr
|
||||
while.body.258: ; preds = %while.hdr.257
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -916,6 +916,13 @@ if.merge.262: ; preds = %if.else.261, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -936,11 +943,9 @@ if.merge.59: ; preds = %if.then.58, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -957,11 +962,9 @@ if.merge.61: ; preds = %if.then.60, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -978,11 +981,9 @@ if.merge.63: ; preds = %if.then.62, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -995,7 +996,6 @@ if.then.64: ; preds = %if.merge.63
|
||||
br label %if.merge.65
|
||||
|
||||
if.merge.65: ; preds = %if.then.64, %if.merge.63
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -1017,6 +1017,13 @@ if.merge.65: ; preds = %if.then.64, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -1028,40 +1035,33 @@ if.then.255: ; preds = %entry
|
||||
if.merge.256: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.263
|
||||
|
||||
@@ -1172,6 +1172,12 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.5, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1265,7 +1271,6 @@ match.arm.39: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.53, label %if.else.54
|
||||
|
||||
match.arm.40: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1285,7 +1290,6 @@ match.arm.41: ; preds = %entry
|
||||
|
||||
match.arm.42: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82
|
||||
@@ -1294,7 +1298,6 @@ match.arm.43: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.95 [
|
||||
i64 19, label %dispatch.case.96
|
||||
i64 20, label %dispatch.case.97
|
||||
@@ -1327,7 +1330,6 @@ match.arm.47: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw20 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw20, label %dispatch.default.193 [
|
||||
i64 35, label %dispatch.case.194
|
||||
i64 50, label %dispatch.case.195
|
||||
@@ -1337,7 +1339,6 @@ match.arm.48: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw24 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw24, label %dispatch.default.207 [
|
||||
i64 36, label %dispatch.case.208
|
||||
i64 44, label %dispatch.case.209
|
||||
@@ -1348,7 +1349,6 @@ match.arm.49: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw28 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw28, label %dispatch.default.227 [
|
||||
i64 18, label %dispatch.case.228
|
||||
i64 22, label %dispatch.case.229
|
||||
@@ -2247,6 +2247,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.122, i64 15 }, { ptr, i64 } { ptr @str.123, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2311,7 +2313,6 @@ fv.default: ; preds = %if.merge.116
|
||||
|
||||
fv.case: ; preds = %if.merge.116
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2331,7 +2332,6 @@ fv.case20: ; preds = %if.merge.116
|
||||
|
||||
fv.case24: ; preds = %if.merge.116
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -2626,6 +2626,7 @@ fv.case17: ; preds = %if.merge.136
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.160, i64 5 }, { ptr, i64 } { ptr @str.161, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2700,7 +2701,6 @@ fv.case17: ; preds = %if.merge.141
|
||||
|
||||
fv.case20: ; preds = %if.merge.141
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2793,6 +2793,7 @@ fv.case20: ; preds = %if.merge.146
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.178, i64 17 }, { ptr, i64 } { ptr @str.179, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2857,7 +2858,6 @@ fv.default: ; preds = %if.merge.151
|
||||
|
||||
fv.case: ; preds = %if.merge.151
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2883,6 +2883,7 @@ fv.case23: ; preds = %if.merge.151
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.188, i64 7 }, { ptr, i64 } { ptr @str.189, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2945,7 +2946,6 @@ fv.default: ; preds = %if.merge.156
|
||||
|
||||
fv.case: ; preds = %if.merge.156
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3343,6 +3343,7 @@ if.merge.186: ; preds = %if.then.185, %while
|
||||
define internal { ptr, i64 } @struct_to_string__Combined__s64__s64(ptr %0, { { { ptr, ptr } }, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { { ptr, ptr } }, i64 }, align 8
|
||||
%ba.tmp = alloca { { ptr, ptr } }, align 8
|
||||
store { { { ptr, ptr } }, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.236, i64 18 }, { ptr, i64 } { ptr @str.237, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3405,7 +3406,6 @@ fv.default: ; preds = %if.merge.191
|
||||
|
||||
fv.case: ; preds = %if.merge.191
|
||||
%fv.field = extractvalue { { { ptr, ptr } }, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { { ptr, ptr } }, align 8
|
||||
store { { ptr, ptr } } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 53, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3421,6 +3421,7 @@ fv.case17: ; preds = %if.merge.191
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.244, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3453,7 +3454,6 @@ if.merge.200: ; preds = %if.then.199, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -3471,6 +3471,8 @@ if.merge.200: ; preds = %if.then.199, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.247, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3503,11 +3505,9 @@ if.merge.205: ; preds = %if.then.204, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3524,6 +3524,7 @@ if.merge.205: ; preds = %if.then.204, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.250, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3561,7 +3562,6 @@ if.merge.215: ; preds = %if.then.214, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3578,6 +3578,7 @@ if.merge.215: ; preds = %if.then.214, %while
|
||||
define internal { ptr, i64 } @slice_to_string__VL(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca {}, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.253, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3615,7 +3616,6 @@ if.merge.220: ; preds = %if.then.219, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr {}, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load {}, ptr %ig.ptr, align 1
|
||||
%ba.tmp = alloca {}, align 8
|
||||
store {} %ig.val, ptr %ba.tmp, align 1
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 43, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3632,6 +3632,7 @@ if.merge.220: ; preds = %if.then.219, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.256, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3669,7 +3670,6 @@ if.merge.225: ; preds = %if.then.224, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -532,6 +532,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -543,15 +548,11 @@ if.then.14: ; preds = %entry
|
||||
if.merge.15: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.16
|
||||
|
||||
@@ -563,7 +564,6 @@ while.hdr.16: ; preds = %if.merge.20, %if.me
|
||||
while.body.17: ; preds = %while.hdr.16
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -621,6 +621,17 @@ if.merge.22: ; preds = %if.then.21, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -632,18 +643,14 @@ if.then.56: ; preds = %entry
|
||||
if.merge.57: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.66
|
||||
|
||||
while.hdr.66: ; preds = %while.exit.77, %if.merge.57
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -651,9 +658,7 @@ while.hdr.66: ; preds = %while.exit.77, %if.
|
||||
br i1 %icmpN, label %or.merge.70, label %or.rhs.69
|
||||
|
||||
while.body.67: ; preds = %or.merge.74
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.75
|
||||
|
||||
@@ -668,7 +673,6 @@ while.exit.68: ; preds = %or.merge.74
|
||||
|
||||
or.rhs.69: ; preds = %while.hdr.66
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -681,7 +685,6 @@ or.merge.70: ; preds = %or.rhs.69, %while.h
|
||||
|
||||
or.rhs.71: ; preds = %or.merge.70
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -694,7 +697,6 @@ or.merge.72: ; preds = %or.rhs.71, %or.merg
|
||||
|
||||
or.rhs.73: ; preds = %or.merge.72
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -715,12 +717,10 @@ while.body.76: ; preds = %while.hdr.75
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -773,6 +773,18 @@ if.merge.80: ; preds = %if.else.79, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -792,11 +804,9 @@ if.else.85: ; preds = %entry
|
||||
|
||||
if.merge.86: ; preds = %if.else.85, %if.then.84
|
||||
%bp = phi double [ %fsub, %if.then.84 ], [ %loadN, %if.else.85 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -804,7 +814,6 @@ if.merge.86: ; preds = %if.else.85, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -819,19 +828,15 @@ if.then.87: ; preds = %if.merge.86
|
||||
if.merge.88: ; preds = %if.then.87, %if.merge.86
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.89, label %if.else.90
|
||||
@@ -844,20 +849,16 @@ if.else.90: ; preds = %if.merge.88
|
||||
|
||||
if.merge.91: ; preds = %if.else.90, %if.then.89
|
||||
%bpN = phi i64 [ 1, %if.then.89 ], [ 0, %if.else.90 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.92, label %if.merge.93
|
||||
@@ -893,7 +894,6 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -921,6 +921,7 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -944,7 +945,6 @@ while.hdr.273: ; preds = %if.merge.278, %entr
|
||||
while.body.274: ; preds = %while.hdr.273
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -985,6 +985,13 @@ if.merge.278: ; preds = %if.else.277, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -1005,11 +1012,9 @@ if.merge.59: ; preds = %if.then.58, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -1026,11 +1031,9 @@ if.merge.61: ; preds = %if.then.60, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -1047,11 +1050,9 @@ if.merge.63: ; preds = %if.then.62, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -1064,7 +1065,6 @@ if.then.64: ; preds = %if.merge.63
|
||||
br label %if.merge.65
|
||||
|
||||
if.merge.65: ; preds = %if.then.64, %if.merge.63
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -1086,6 +1086,13 @@ if.merge.65: ; preds = %if.then.64, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -1097,40 +1104,33 @@ if.then.271: ; preds = %entry
|
||||
if.merge.272: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.279
|
||||
|
||||
@@ -1241,6 +1241,13 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.41, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1339,7 +1346,6 @@ match.arm.39: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.53, label %if.else.54
|
||||
|
||||
match.arm.40: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1359,7 +1365,6 @@ match.arm.41: ; preds = %entry
|
||||
|
||||
match.arm.42: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82
|
||||
@@ -1368,7 +1373,6 @@ match.arm.43: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.95 [
|
||||
i64 19, label %dispatch.case.96
|
||||
i64 20, label %dispatch.case.97
|
||||
@@ -1394,7 +1398,6 @@ match.arm.44: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw20 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw20, label %dispatch.default.205 [
|
||||
i64 37, label %dispatch.case.206
|
||||
i64 38, label %dispatch.case.207
|
||||
@@ -1410,7 +1413,6 @@ match.arm.47: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw24 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw24, label %dispatch.default.213 [
|
||||
i64 35, label %dispatch.case.214
|
||||
i64 65, label %dispatch.case.215
|
||||
@@ -1420,7 +1422,6 @@ match.arm.48: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw28 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw28, label %dispatch.default.227 [
|
||||
i64 36, label %dispatch.case.228
|
||||
i64 56, label %dispatch.case.229
|
||||
@@ -1430,7 +1431,6 @@ match.arm.49: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw32 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw32, label %dispatch.default.241 [
|
||||
i64 18, label %dispatch.case.242
|
||||
i64 22, label %dispatch.case.243
|
||||
@@ -3021,6 +3021,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.182, i64 15 }, { ptr, i64 } { ptr @str.183, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3085,7 +3087,6 @@ fv.default: ; preds = %if.merge.118
|
||||
|
||||
fv.case: ; preds = %if.merge.118
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3105,7 +3106,6 @@ fv.case20: ; preds = %if.merge.118
|
||||
|
||||
fv.case24: ; preds = %if.merge.118
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -3400,6 +3400,7 @@ fv.case17: ; preds = %if.merge.138
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.220, i64 5 }, { ptr, i64 } { ptr @str.221, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3474,7 +3475,6 @@ fv.case17: ; preds = %if.merge.143
|
||||
|
||||
fv.case20: ; preds = %if.merge.143
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3567,6 +3567,7 @@ fv.case20: ; preds = %if.merge.148
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.238, i64 17 }, { ptr, i64 } { ptr @str.239, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3631,7 +3632,6 @@ fv.default: ; preds = %if.merge.153
|
||||
|
||||
fv.case: ; preds = %if.merge.153
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3657,6 +3657,7 @@ fv.case23: ; preds = %if.merge.153
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.248, i64 7 }, { ptr, i64 } { ptr @str.249, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3719,7 +3720,6 @@ fv.default: ; preds = %if.merge.158
|
||||
|
||||
fv.case: ; preds = %if.merge.158
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -4475,6 +4475,7 @@ if.merge.211: ; preds = %if.then.210, %entry
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.344, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -4507,7 +4508,6 @@ if.merge.220: ; preds = %if.then.219, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -4525,6 +4525,8 @@ if.merge.220: ; preds = %if.then.219, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.347, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -4557,11 +4559,9 @@ if.merge.225: ; preds = %if.then.224, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -4578,6 +4578,7 @@ if.merge.225: ; preds = %if.then.224, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.350, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -4615,7 +4616,6 @@ if.merge.234: ; preds = %if.then.233, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -4632,6 +4632,7 @@ if.merge.234: ; preds = %if.then.233, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.353, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -4669,7 +4670,6 @@ if.merge.239: ; preds = %if.then.238, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -392,6 +392,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -403,15 +408,11 @@ if.then.14: ; preds = %entry
|
||||
if.merge.15: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.16
|
||||
|
||||
@@ -423,7 +424,6 @@ while.hdr.16: ; preds = %if.merge.20, %if.me
|
||||
while.body.17: ; preds = %while.hdr.16
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -481,6 +481,17 @@ if.merge.22: ; preds = %if.then.21, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -492,18 +503,14 @@ if.then.56: ; preds = %entry
|
||||
if.merge.57: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.66
|
||||
|
||||
while.hdr.66: ; preds = %while.exit.77, %if.merge.57
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -511,9 +518,7 @@ while.hdr.66: ; preds = %while.exit.77, %if.
|
||||
br i1 %icmpN, label %or.merge.70, label %or.rhs.69
|
||||
|
||||
while.body.67: ; preds = %or.merge.74
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.75
|
||||
|
||||
@@ -528,7 +533,6 @@ while.exit.68: ; preds = %or.merge.74
|
||||
|
||||
or.rhs.69: ; preds = %while.hdr.66
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -541,7 +545,6 @@ or.merge.70: ; preds = %or.rhs.69, %while.h
|
||||
|
||||
or.rhs.71: ; preds = %or.merge.70
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -554,7 +557,6 @@ or.merge.72: ; preds = %or.rhs.71, %or.merg
|
||||
|
||||
or.rhs.73: ; preds = %or.merge.72
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -575,12 +577,10 @@ while.body.76: ; preds = %while.hdr.75
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -633,6 +633,18 @@ if.merge.80: ; preds = %if.else.79, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -652,11 +664,9 @@ if.else.85: ; preds = %entry
|
||||
|
||||
if.merge.86: ; preds = %if.else.85, %if.then.84
|
||||
%bp = phi double [ %fsub, %if.then.84 ], [ %loadN, %if.else.85 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -664,7 +674,6 @@ if.merge.86: ; preds = %if.else.85, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -679,19 +688,15 @@ if.then.87: ; preds = %if.merge.86
|
||||
if.merge.88: ; preds = %if.then.87, %if.merge.86
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.89, label %if.else.90
|
||||
@@ -704,20 +709,16 @@ if.else.90: ; preds = %if.merge.88
|
||||
|
||||
if.merge.91: ; preds = %if.else.90, %if.then.89
|
||||
%bpN = phi i64 [ 1, %if.then.89 ], [ 0, %if.else.90 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.92, label %if.merge.93
|
||||
@@ -753,7 +754,6 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -781,6 +781,7 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -804,7 +805,6 @@ while.hdr.223: ; preds = %if.merge.228, %entr
|
||||
while.body.224: ; preds = %while.hdr.223
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -845,6 +845,13 @@ if.merge.228: ; preds = %if.else.227, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -865,11 +872,9 @@ if.merge.59: ; preds = %if.then.58, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -886,11 +891,9 @@ if.merge.61: ; preds = %if.then.60, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -907,11 +910,9 @@ if.merge.63: ; preds = %if.then.62, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -924,7 +925,6 @@ if.then.64: ; preds = %if.merge.63
|
||||
br label %if.merge.65
|
||||
|
||||
if.merge.65: ; preds = %if.then.64, %if.merge.63
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -946,6 +946,13 @@ if.merge.65: ; preds = %if.then.64, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -957,40 +964,33 @@ if.then.221: ; preds = %entry
|
||||
if.merge.222: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.229
|
||||
|
||||
@@ -1101,6 +1101,12 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.5, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1185,7 +1191,6 @@ match.arm.39: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.53, label %if.else.54
|
||||
|
||||
match.arm.40: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1205,7 +1210,6 @@ match.arm.41: ; preds = %entry
|
||||
|
||||
match.arm.42: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82
|
||||
@@ -1214,7 +1218,6 @@ match.arm.43: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.95 [
|
||||
i64 19, label %dispatch.case.96
|
||||
i64 20, label %dispatch.case.97
|
||||
@@ -1240,7 +1243,6 @@ match.arm.47: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw20 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw20, label %dispatch.default.151 [
|
||||
i64 35, label %dispatch.case.152
|
||||
i64 43, label %dispatch.case.153
|
||||
@@ -1253,7 +1255,6 @@ match.arm.48: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw24 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw24, label %dispatch.default.183 [
|
||||
i64 36, label %dispatch.case.184
|
||||
i64 40, label %dispatch.case.185
|
||||
@@ -1263,7 +1264,6 @@ match.arm.49: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw28 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw28, label %dispatch.default.197 [
|
||||
i64 18, label %dispatch.case.198
|
||||
i64 22, label %dispatch.case.199
|
||||
@@ -2185,6 +2185,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.107, i64 15 }, { ptr, i64 } { ptr @str.108, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2249,7 +2251,6 @@ fv.default: ; preds = %if.merge.109
|
||||
|
||||
fv.case: ; preds = %if.merge.109
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2269,7 +2270,6 @@ fv.case20: ; preds = %if.merge.109
|
||||
|
||||
fv.case24: ; preds = %if.merge.109
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -2564,6 +2564,7 @@ fv.case17: ; preds = %if.merge.129
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.145, i64 5 }, { ptr, i64 } { ptr @str.146, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2638,7 +2639,6 @@ fv.case17: ; preds = %if.merge.134
|
||||
|
||||
fv.case20: ; preds = %if.merge.134
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2731,6 +2731,7 @@ fv.case20: ; preds = %if.merge.139
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.163, i64 17 }, { ptr, i64 } { ptr @str.164, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2795,7 +2796,6 @@ fv.default: ; preds = %if.merge.144
|
||||
|
||||
fv.case: ; preds = %if.merge.144
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2821,6 +2821,7 @@ fv.case23: ; preds = %if.merge.144
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.173, i64 7 }, { ptr, i64 } { ptr @str.174, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2883,7 +2884,6 @@ fv.default: ; preds = %if.merge.149
|
||||
|
||||
fv.case: ; preds = %if.merge.149
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2900,6 +2900,7 @@ fv.case17: ; preds = %if.merge.149
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.181, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2932,7 +2933,6 @@ if.merge.161: ; preds = %if.then.160, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -2950,6 +2950,8 @@ if.merge.161: ; preds = %if.then.160, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.184, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2982,11 +2984,9 @@ if.merge.166: ; preds = %if.then.165, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3003,6 +3003,8 @@ if.merge.166: ; preds = %if.then.165, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [3 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [3 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [3 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.187, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3035,11 +3037,9 @@ if.merge.171: ; preds = %if.then.170, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [3 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [3 x { i64, i64 }], align 8
|
||||
store [3 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [3 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3056,6 +3056,8 @@ if.merge.171: ; preds = %if.then.170, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_2_Any(ptr %0, [2 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [2 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [2 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [2 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.190, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3088,11 +3090,9 @@ if.merge.176: ; preds = %if.then.175, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [2 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [2 x { i64, i64 }], align 8
|
||||
store [2 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [2 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3109,6 +3109,8 @@ if.merge.176: ; preds = %if.then.175, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_5_Any(ptr %0, [5 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [5 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [5 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [5 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.193, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3141,11 +3143,9 @@ if.merge.181: ; preds = %if.then.180, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [5 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [5 x { i64, i64 }], align 8
|
||||
store [5 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [5 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3162,6 +3162,7 @@ if.merge.181: ; preds = %if.then.180, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.196, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3199,7 +3200,6 @@ if.merge.190: ; preds = %if.then.189, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3216,6 +3216,7 @@ if.merge.190: ; preds = %if.then.189, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.199, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3253,7 +3254,6 @@ if.merge.195: ; preds = %if.then.194, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -373,6 +373,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -384,15 +389,11 @@ if.then.14: ; preds = %entry
|
||||
if.merge.15: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.16
|
||||
|
||||
@@ -404,7 +405,6 @@ while.hdr.16: ; preds = %if.merge.20, %if.me
|
||||
while.body.17: ; preds = %while.hdr.16
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -462,6 +462,17 @@ if.merge.22: ; preds = %if.then.21, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -473,18 +484,14 @@ if.then.56: ; preds = %entry
|
||||
if.merge.57: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.66
|
||||
|
||||
while.hdr.66: ; preds = %while.exit.77, %if.merge.57
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -492,9 +499,7 @@ while.hdr.66: ; preds = %while.exit.77, %if.
|
||||
br i1 %icmpN, label %or.merge.70, label %or.rhs.69
|
||||
|
||||
while.body.67: ; preds = %or.merge.74
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.75
|
||||
|
||||
@@ -509,7 +514,6 @@ while.exit.68: ; preds = %or.merge.74
|
||||
|
||||
or.rhs.69: ; preds = %while.hdr.66
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -522,7 +526,6 @@ or.merge.70: ; preds = %or.rhs.69, %while.h
|
||||
|
||||
or.rhs.71: ; preds = %or.merge.70
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -535,7 +538,6 @@ or.merge.72: ; preds = %or.rhs.71, %or.merg
|
||||
|
||||
or.rhs.73: ; preds = %or.merge.72
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -556,12 +558,10 @@ while.body.76: ; preds = %while.hdr.75
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -614,6 +614,18 @@ if.merge.80: ; preds = %if.else.79, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -633,11 +645,9 @@ if.else.85: ; preds = %entry
|
||||
|
||||
if.merge.86: ; preds = %if.else.85, %if.then.84
|
||||
%bp = phi double [ %fsub, %if.then.84 ], [ %loadN, %if.else.85 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -645,7 +655,6 @@ if.merge.86: ; preds = %if.else.85, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -660,19 +669,15 @@ if.then.87: ; preds = %if.merge.86
|
||||
if.merge.88: ; preds = %if.then.87, %if.merge.86
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.89, label %if.else.90
|
||||
@@ -685,20 +690,16 @@ if.else.90: ; preds = %if.merge.88
|
||||
|
||||
if.merge.91: ; preds = %if.else.90, %if.then.89
|
||||
%bpN = phi i64 [ 1, %if.then.89 ], [ 0, %if.else.90 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.92, label %if.merge.93
|
||||
@@ -734,7 +735,6 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -762,6 +762,7 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -785,7 +786,6 @@ while.hdr.209: ; preds = %if.merge.214, %entr
|
||||
while.body.210: ; preds = %while.hdr.209
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -826,6 +826,13 @@ if.merge.214: ; preds = %if.else.213, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -846,11 +853,9 @@ if.merge.59: ; preds = %if.then.58, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -867,11 +872,9 @@ if.merge.61: ; preds = %if.then.60, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -888,11 +891,9 @@ if.merge.63: ; preds = %if.then.62, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -905,7 +906,6 @@ if.then.64: ; preds = %if.merge.63
|
||||
br label %if.merge.65
|
||||
|
||||
if.merge.65: ; preds = %if.then.64, %if.merge.63
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -927,6 +927,13 @@ if.merge.65: ; preds = %if.then.64, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -938,40 +945,33 @@ if.then.207: ; preds = %entry
|
||||
if.merge.208: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.215
|
||||
|
||||
@@ -1082,6 +1082,12 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.5, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1162,7 +1168,6 @@ match.arm.39: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.53, label %if.else.54
|
||||
|
||||
match.arm.40: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1182,7 +1187,6 @@ match.arm.41: ; preds = %entry
|
||||
|
||||
match.arm.42: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82
|
||||
@@ -1191,7 +1195,6 @@ match.arm.43: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.95 [
|
||||
i64 19, label %dispatch.case.96
|
||||
i64 20, label %dispatch.case.97
|
||||
@@ -1217,7 +1220,6 @@ match.arm.47: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw20 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw20, label %dispatch.default.151 [
|
||||
i64 35, label %dispatch.case.152
|
||||
i64 42, label %dispatch.case.153
|
||||
@@ -1228,7 +1230,6 @@ match.arm.48: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw24 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw24, label %dispatch.default.171 [
|
||||
i64 36, label %dispatch.case.172
|
||||
i64 40, label %dispatch.case.173
|
||||
@@ -1238,7 +1239,6 @@ match.arm.49: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw28 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw28, label %dispatch.default.185 [
|
||||
i64 18, label %dispatch.case.186
|
||||
i64 22, label %dispatch.case.187
|
||||
@@ -2005,6 +2005,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.100, i64 15 }, { ptr, i64 } { ptr @str.101, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2069,7 +2071,6 @@ fv.default: ; preds = %if.merge.109
|
||||
|
||||
fv.case: ; preds = %if.merge.109
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2089,7 +2090,6 @@ fv.case20: ; preds = %if.merge.109
|
||||
|
||||
fv.case24: ; preds = %if.merge.109
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -2384,6 +2384,7 @@ fv.case17: ; preds = %if.merge.129
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.138, i64 5 }, { ptr, i64 } { ptr @str.139, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2458,7 +2459,6 @@ fv.case17: ; preds = %if.merge.134
|
||||
|
||||
fv.case20: ; preds = %if.merge.134
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2551,6 +2551,7 @@ fv.case20: ; preds = %if.merge.139
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.156, i64 17 }, { ptr, i64 } { ptr @str.157, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2615,7 +2616,6 @@ fv.default: ; preds = %if.merge.144
|
||||
|
||||
fv.case: ; preds = %if.merge.144
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2641,6 +2641,7 @@ fv.case23: ; preds = %if.merge.144
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.166, i64 7 }, { ptr, i64 } { ptr @str.167, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2703,7 +2704,6 @@ fv.default: ; preds = %if.merge.149
|
||||
|
||||
fv.case: ; preds = %if.merge.149
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2720,6 +2720,7 @@ fv.case17: ; preds = %if.merge.149
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.174, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2752,7 +2753,6 @@ if.merge.159: ; preds = %if.then.158, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -2770,6 +2770,8 @@ if.merge.159: ; preds = %if.then.158, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [3 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [3 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [3 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.177, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2802,11 +2804,9 @@ if.merge.164: ; preds = %if.then.163, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [3 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [3 x { i64, i64 }], align 8
|
||||
store [3 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [3 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2823,6 +2823,8 @@ if.merge.164: ; preds = %if.then.163, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.180, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2855,11 +2857,9 @@ if.merge.169: ; preds = %if.then.168, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2876,6 +2876,7 @@ if.merge.169: ; preds = %if.then.168, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.183, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2913,7 +2914,6 @@ if.merge.178: ; preds = %if.then.177, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2930,6 +2930,7 @@ if.merge.178: ; preds = %if.then.177, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.186, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2967,7 +2968,6 @@ if.merge.183: ; preds = %if.then.182, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -377,6 +377,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -388,15 +393,11 @@ if.then.14: ; preds = %entry
|
||||
if.merge.15: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.16
|
||||
|
||||
@@ -408,7 +409,6 @@ while.hdr.16: ; preds = %if.merge.20, %if.me
|
||||
while.body.17: ; preds = %while.hdr.16
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -466,6 +466,17 @@ if.merge.22: ; preds = %if.then.21, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -477,18 +488,14 @@ if.then.56: ; preds = %entry
|
||||
if.merge.57: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.66
|
||||
|
||||
while.hdr.66: ; preds = %while.exit.77, %if.merge.57
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -496,9 +503,7 @@ while.hdr.66: ; preds = %while.exit.77, %if.
|
||||
br i1 %icmpN, label %or.merge.70, label %or.rhs.69
|
||||
|
||||
while.body.67: ; preds = %or.merge.74
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.75
|
||||
|
||||
@@ -513,7 +518,6 @@ while.exit.68: ; preds = %or.merge.74
|
||||
|
||||
or.rhs.69: ; preds = %while.hdr.66
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -526,7 +530,6 @@ or.merge.70: ; preds = %or.rhs.69, %while.h
|
||||
|
||||
or.rhs.71: ; preds = %or.merge.70
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -539,7 +542,6 @@ or.merge.72: ; preds = %or.rhs.71, %or.merg
|
||||
|
||||
or.rhs.73: ; preds = %or.merge.72
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -560,12 +562,10 @@ while.body.76: ; preds = %while.hdr.75
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -618,6 +618,18 @@ if.merge.80: ; preds = %if.else.79, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -637,11 +649,9 @@ if.else.85: ; preds = %entry
|
||||
|
||||
if.merge.86: ; preds = %if.else.85, %if.then.84
|
||||
%bp = phi double [ %fsub, %if.then.84 ], [ %loadN, %if.else.85 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -649,7 +659,6 @@ if.merge.86: ; preds = %if.else.85, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -664,19 +673,15 @@ if.then.87: ; preds = %if.merge.86
|
||||
if.merge.88: ; preds = %if.then.87, %if.merge.86
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.89, label %if.else.90
|
||||
@@ -689,20 +694,16 @@ if.else.90: ; preds = %if.merge.88
|
||||
|
||||
if.merge.91: ; preds = %if.else.90, %if.then.89
|
||||
%bpN = phi i64 [ 1, %if.then.89 ], [ 0, %if.else.90 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.92, label %if.merge.93
|
||||
@@ -738,7 +739,6 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -766,6 +766,7 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -789,7 +790,6 @@ while.hdr.203: ; preds = %if.merge.208, %entr
|
||||
while.body.204: ; preds = %while.hdr.203
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -830,6 +830,13 @@ if.merge.208: ; preds = %if.else.207, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -850,11 +857,9 @@ if.merge.59: ; preds = %if.then.58, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -871,11 +876,9 @@ if.merge.61: ; preds = %if.then.60, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -892,11 +895,9 @@ if.merge.63: ; preds = %if.then.62, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -909,7 +910,6 @@ if.then.64: ; preds = %if.merge.63
|
||||
br label %if.merge.65
|
||||
|
||||
if.merge.65: ; preds = %if.then.64, %if.merge.63
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -931,6 +931,13 @@ if.merge.65: ; preds = %if.then.64, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -942,40 +949,33 @@ if.then.201: ; preds = %entry
|
||||
if.merge.202: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.209
|
||||
|
||||
@@ -1086,6 +1086,12 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.5, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1165,7 +1171,6 @@ match.arm.39: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.53, label %if.else.54
|
||||
|
||||
match.arm.40: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1185,7 +1190,6 @@ match.arm.41: ; preds = %entry
|
||||
|
||||
match.arm.42: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82
|
||||
@@ -1194,7 +1198,6 @@ match.arm.43: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.95 [
|
||||
i64 19, label %dispatch.case.96
|
||||
i64 20, label %dispatch.case.97
|
||||
@@ -1220,7 +1223,6 @@ match.arm.47: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw20 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw20, label %dispatch.default.151 [
|
||||
i64 35, label %dispatch.case.152
|
||||
i64 42, label %dispatch.case.153
|
||||
@@ -1230,7 +1232,6 @@ match.arm.48: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw24 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw24, label %dispatch.default.165 [
|
||||
i64 36, label %dispatch.case.166
|
||||
i64 40, label %dispatch.case.167
|
||||
@@ -1240,7 +1241,6 @@ match.arm.49: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw28 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw28, label %dispatch.default.179 [
|
||||
i64 18, label %dispatch.case.180
|
||||
i64 22, label %dispatch.case.181
|
||||
@@ -2105,6 +2105,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.107, i64 15 }, { ptr, i64 } { ptr @str.108, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2169,7 +2171,6 @@ fv.default: ; preds = %if.merge.109
|
||||
|
||||
fv.case: ; preds = %if.merge.109
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2189,7 +2190,6 @@ fv.case20: ; preds = %if.merge.109
|
||||
|
||||
fv.case24: ; preds = %if.merge.109
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -2484,6 +2484,7 @@ fv.case17: ; preds = %if.merge.129
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.145, i64 5 }, { ptr, i64 } { ptr @str.146, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2558,7 +2559,6 @@ fv.case17: ; preds = %if.merge.134
|
||||
|
||||
fv.case20: ; preds = %if.merge.134
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2651,6 +2651,7 @@ fv.case20: ; preds = %if.merge.139
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.163, i64 17 }, { ptr, i64 } { ptr @str.164, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2715,7 +2716,6 @@ fv.default: ; preds = %if.merge.144
|
||||
|
||||
fv.case: ; preds = %if.merge.144
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2741,6 +2741,7 @@ fv.case23: ; preds = %if.merge.144
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.173, i64 7 }, { ptr, i64 } { ptr @str.174, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2803,7 +2804,6 @@ fv.default: ; preds = %if.merge.149
|
||||
|
||||
fv.case: ; preds = %if.merge.149
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2820,6 +2820,7 @@ fv.case17: ; preds = %if.merge.149
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.181, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2852,7 +2853,6 @@ if.merge.158: ; preds = %if.then.157, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -2870,6 +2870,8 @@ if.merge.158: ; preds = %if.then.157, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.184, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2902,11 +2904,9 @@ if.merge.163: ; preds = %if.then.162, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2923,6 +2923,7 @@ if.merge.163: ; preds = %if.then.162, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.187, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2960,7 +2961,6 @@ if.merge.172: ; preds = %if.then.171, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2977,6 +2977,7 @@ if.merge.172: ; preds = %if.then.171, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.190, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3014,7 +3015,6 @@ if.merge.177: ; preds = %if.then.176, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -437,6 +437,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -448,15 +453,11 @@ if.then.14: ; preds = %entry
|
||||
if.merge.15: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.16
|
||||
|
||||
@@ -468,7 +469,6 @@ while.hdr.16: ; preds = %if.merge.20, %if.me
|
||||
while.body.17: ; preds = %while.hdr.16
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -526,6 +526,17 @@ if.merge.22: ; preds = %if.then.21, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -537,18 +548,14 @@ if.then.56: ; preds = %entry
|
||||
if.merge.57: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.66
|
||||
|
||||
while.hdr.66: ; preds = %while.exit.77, %if.merge.57
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -556,9 +563,7 @@ while.hdr.66: ; preds = %while.exit.77, %if.
|
||||
br i1 %icmpN, label %or.merge.70, label %or.rhs.69
|
||||
|
||||
while.body.67: ; preds = %or.merge.74
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.75
|
||||
|
||||
@@ -573,7 +578,6 @@ while.exit.68: ; preds = %or.merge.74
|
||||
|
||||
or.rhs.69: ; preds = %while.hdr.66
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -586,7 +590,6 @@ or.merge.70: ; preds = %or.rhs.69, %while.h
|
||||
|
||||
or.rhs.71: ; preds = %or.merge.70
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -599,7 +602,6 @@ or.merge.72: ; preds = %or.rhs.71, %or.merg
|
||||
|
||||
or.rhs.73: ; preds = %or.merge.72
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -620,12 +622,10 @@ while.body.76: ; preds = %while.hdr.75
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -678,6 +678,18 @@ if.merge.80: ; preds = %if.else.79, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -697,11 +709,9 @@ if.else.85: ; preds = %entry
|
||||
|
||||
if.merge.86: ; preds = %if.else.85, %if.then.84
|
||||
%bp = phi double [ %fsub, %if.then.84 ], [ %loadN, %if.else.85 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -709,7 +719,6 @@ if.merge.86: ; preds = %if.else.85, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -724,19 +733,15 @@ if.then.87: ; preds = %if.merge.86
|
||||
if.merge.88: ; preds = %if.then.87, %if.merge.86
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.89, label %if.else.90
|
||||
@@ -749,20 +754,16 @@ if.else.90: ; preds = %if.merge.88
|
||||
|
||||
if.merge.91: ; preds = %if.else.90, %if.then.89
|
||||
%bpN = phi i64 [ 1, %if.then.89 ], [ 0, %if.else.90 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.92, label %if.merge.93
|
||||
@@ -798,7 +799,6 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -826,6 +826,7 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -849,7 +850,6 @@ while.hdr.243: ; preds = %if.merge.248, %entr
|
||||
while.body.244: ; preds = %while.hdr.243
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -890,6 +890,13 @@ if.merge.248: ; preds = %if.else.247, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -910,11 +917,9 @@ if.merge.59: ; preds = %if.then.58, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -931,11 +936,9 @@ if.merge.61: ; preds = %if.then.60, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -952,11 +955,9 @@ if.merge.63: ; preds = %if.then.62, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -969,7 +970,6 @@ if.then.64: ; preds = %if.merge.63
|
||||
br label %if.merge.65
|
||||
|
||||
if.merge.65: ; preds = %if.then.64, %if.merge.63
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -991,6 +991,13 @@ if.merge.65: ; preds = %if.then.64, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -1002,40 +1009,33 @@ if.then.241: ; preds = %entry
|
||||
if.merge.242: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.249
|
||||
|
||||
@@ -1146,6 +1146,12 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.5, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1235,7 +1241,6 @@ match.arm.39: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.53, label %if.else.54
|
||||
|
||||
match.arm.40: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1255,7 +1260,6 @@ match.arm.41: ; preds = %entry
|
||||
|
||||
match.arm.42: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82
|
||||
@@ -1264,7 +1268,6 @@ match.arm.43: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.95 [
|
||||
i64 19, label %dispatch.case.96
|
||||
i64 20, label %dispatch.case.97
|
||||
@@ -1294,7 +1297,6 @@ match.arm.47: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw20 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw20, label %dispatch.default.175 [
|
||||
i64 35, label %dispatch.case.176
|
||||
i64 49, label %dispatch.case.177
|
||||
@@ -1305,7 +1307,6 @@ match.arm.48: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw24 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw24, label %dispatch.default.195 [
|
||||
i64 36, label %dispatch.case.196
|
||||
i64 43, label %dispatch.case.197
|
||||
@@ -1316,7 +1317,6 @@ match.arm.49: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw28 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw28, label %dispatch.default.215 [
|
||||
i64 18, label %dispatch.case.216
|
||||
i64 22, label %dispatch.case.217
|
||||
@@ -2365,6 +2365,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.120, i64 15 }, { ptr, i64 } { ptr @str.121, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2429,7 +2431,6 @@ fv.default: ; preds = %if.merge.113
|
||||
|
||||
fv.case: ; preds = %if.merge.113
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2449,7 +2450,6 @@ fv.case20: ; preds = %if.merge.113
|
||||
|
||||
fv.case24: ; preds = %if.merge.113
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -2744,6 +2744,7 @@ fv.case17: ; preds = %if.merge.133
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.158, i64 5 }, { ptr, i64 } { ptr @str.159, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2818,7 +2819,6 @@ fv.case17: ; preds = %if.merge.138
|
||||
|
||||
fv.case20: ; preds = %if.merge.138
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2911,6 +2911,7 @@ fv.case20: ; preds = %if.merge.143
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.176, i64 17 }, { ptr, i64 } { ptr @str.177, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2975,7 +2976,6 @@ fv.default: ; preds = %if.merge.148
|
||||
|
||||
fv.case: ; preds = %if.merge.148
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3001,6 +3001,7 @@ fv.case23: ; preds = %if.merge.148
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.186, i64 7 }, { ptr, i64 } { ptr @str.187, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3063,7 +3064,6 @@ fv.default: ; preds = %if.merge.153
|
||||
|
||||
fv.case: ; preds = %if.merge.153
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3365,6 +3365,7 @@ fv.case: ; preds = %if.merge.173
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.223, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3397,7 +3398,6 @@ if.merge.183: ; preds = %if.then.182, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -3415,6 +3415,8 @@ if.merge.183: ; preds = %if.then.182, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_2_Any(ptr %0, [2 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [2 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [2 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [2 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.226, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3447,11 +3449,9 @@ if.merge.188: ; preds = %if.then.187, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [2 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [2 x { i64, i64 }], align 8
|
||||
store [2 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [2 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3468,6 +3468,8 @@ if.merge.188: ; preds = %if.then.187, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.229, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3500,11 +3502,9 @@ if.merge.193: ; preds = %if.then.192, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3521,6 +3521,7 @@ if.merge.193: ; preds = %if.then.192, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.232, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3558,7 +3559,6 @@ if.merge.203: ; preds = %if.then.202, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3575,6 +3575,7 @@ if.merge.203: ; preds = %if.then.202, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Greeter(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.235, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3612,7 +3613,6 @@ if.merge.208: ; preds = %if.then.207, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, ptr }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, ptr }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, ptr }, align 8
|
||||
store { ptr, ptr } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 37, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3629,6 +3629,7 @@ if.merge.208: ; preds = %if.then.207, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.238, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3666,7 +3667,6 @@ if.merge.213: ; preds = %if.then.212, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -462,6 +462,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -473,15 +478,11 @@ if.then.14: ; preds = %entry
|
||||
if.merge.15: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.16
|
||||
|
||||
@@ -493,7 +494,6 @@ while.hdr.16: ; preds = %if.merge.20, %if.me
|
||||
while.body.17: ; preds = %while.hdr.16
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -551,6 +551,17 @@ if.merge.22: ; preds = %if.then.21, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -562,18 +573,14 @@ if.then.68: ; preds = %entry
|
||||
if.merge.69: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.78
|
||||
|
||||
while.hdr.78: ; preds = %while.exit.89, %if.merge.69
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -581,9 +588,7 @@ while.hdr.78: ; preds = %while.exit.89, %if.
|
||||
br i1 %icmpN, label %or.merge.82, label %or.rhs.81
|
||||
|
||||
while.body.79: ; preds = %or.merge.86
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.87
|
||||
|
||||
@@ -598,7 +603,6 @@ while.exit.80: ; preds = %or.merge.86
|
||||
|
||||
or.rhs.81: ; preds = %while.hdr.78
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -611,7 +615,6 @@ or.merge.82: ; preds = %or.rhs.81, %while.h
|
||||
|
||||
or.rhs.83: ; preds = %or.merge.82
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -624,7 +627,6 @@ or.merge.84: ; preds = %or.rhs.83, %or.merg
|
||||
|
||||
or.rhs.85: ; preds = %or.merge.84
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -645,12 +647,10 @@ while.body.88: ; preds = %while.hdr.87
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -703,6 +703,18 @@ if.merge.92: ; preds = %if.else.91, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -722,11 +734,9 @@ if.else.97: ; preds = %entry
|
||||
|
||||
if.merge.98: ; preds = %if.else.97, %if.then.96
|
||||
%bp = phi double [ %fsub, %if.then.96 ], [ %loadN, %if.else.97 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -734,7 +744,6 @@ if.merge.98: ; preds = %if.else.97, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -749,19 +758,15 @@ if.then.99: ; preds = %if.merge.98
|
||||
if.merge.100: ; preds = %if.then.99, %if.merge.98
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.101, label %if.else.102
|
||||
@@ -774,20 +779,16 @@ if.else.102: ; preds = %if.merge.100
|
||||
|
||||
if.merge.103: ; preds = %if.else.102, %if.then.101
|
||||
%bpN = phi i64 [ 1, %if.then.101 ], [ 0, %if.else.102 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.104, label %if.merge.105
|
||||
@@ -823,7 +824,6 @@ if.merge.105: ; preds = %if.then.104, %if.me
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -851,6 +851,7 @@ if.merge.105: ; preds = %if.then.104, %if.me
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -874,7 +875,6 @@ while.hdr.245: ; preds = %if.merge.250, %entr
|
||||
while.body.246: ; preds = %while.hdr.245
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -915,6 +915,13 @@ if.merge.250: ; preds = %if.else.249, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -935,11 +942,9 @@ if.merge.71: ; preds = %if.then.70, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -956,11 +961,9 @@ if.merge.73: ; preds = %if.then.72, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -977,11 +980,9 @@ if.merge.75: ; preds = %if.then.74, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -994,7 +995,6 @@ if.then.76: ; preds = %if.merge.75
|
||||
br label %if.merge.77
|
||||
|
||||
if.merge.77: ; preds = %if.then.76, %if.merge.75
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -1016,6 +1016,13 @@ if.merge.77: ; preds = %if.then.76, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -1027,40 +1034,33 @@ if.then.243: ; preds = %entry
|
||||
if.merge.244: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.251
|
||||
|
||||
@@ -1171,6 +1171,13 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.5, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1261,7 +1268,6 @@ match.arm.51: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.65, label %if.else.66
|
||||
|
||||
match.arm.52: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1281,7 +1287,6 @@ match.arm.53: ; preds = %entry
|
||||
|
||||
match.arm.54: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.93, label %fN.unbox.94
|
||||
@@ -1290,7 +1295,6 @@ match.arm.55: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.107 [
|
||||
i64 19, label %dispatch.case.108
|
||||
i64 20, label %dispatch.case.109
|
||||
@@ -1320,7 +1324,6 @@ match.arm.59: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw20 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw20, label %dispatch.default.187 [
|
||||
i64 35, label %dispatch.case.188
|
||||
i64 55, label %dispatch.case.189
|
||||
@@ -1330,7 +1333,6 @@ match.arm.60: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw24 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw24, label %dispatch.default.201 [
|
||||
i64 36, label %dispatch.case.202
|
||||
i64 47, label %dispatch.case.203
|
||||
@@ -1340,7 +1342,6 @@ match.arm.61: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw28 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw28, label %dispatch.default.215 [
|
||||
i64 18, label %dispatch.case.216
|
||||
i64 22, label %dispatch.case.217
|
||||
@@ -1372,7 +1373,6 @@ match.arm.62: ; preds = %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw32 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw32, label %dispatch.default.326 [
|
||||
i64 37, label %dispatch.case.327
|
||||
]
|
||||
@@ -2081,6 +2081,10 @@ if.merge.36: ; preds = %if.then.35, %while.
|
||||
define internal float @direct_size(ptr %0, { { float, i1 }, { float, i1 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { float, i1 }, { float, i1 } }, align 8
|
||||
%allocaN = alloca float, align 4
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca float, align 4
|
||||
%allocaN = alloca double, align 8
|
||||
store { { float, i1 }, { float, i1 } } %1, ptr %alloca, align 4
|
||||
%load = load { { float, i1 }, { float, i1 } }, ptr %alloca, align 4
|
||||
%sg = extractvalue { { float, i1 }, { float, i1 } } %load, 0
|
||||
@@ -2089,7 +2093,6 @@ entry:
|
||||
|
||||
if.then.37: ; preds = %entry
|
||||
%ou.val = extractvalue { float, i1 } %sg, 0
|
||||
%allocaN = alloca float, align 4
|
||||
store float %ou.val, ptr %allocaN, align 4
|
||||
%loadN = load float, ptr %allocaN, align 4
|
||||
%fpext = fpext float %loadN to double
|
||||
@@ -2100,7 +2103,6 @@ if.else.38: ; preds = %entry
|
||||
|
||||
if.merge.39: ; preds = %if.else.38, %if.then.37
|
||||
%bp = phi double [ %fpext, %if.then.37 ], [ 1.000000e+02, %if.else.38 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load { { float, i1 }, { float, i1 } }, ptr %alloca, align 4
|
||||
%sgN = extractvalue { { float, i1 }, { float, i1 } } %loadN, 1
|
||||
@@ -2109,7 +2111,6 @@ if.merge.39: ; preds = %if.else.38, %if.the
|
||||
|
||||
if.then.40: ; preds = %if.merge.39
|
||||
%ou.val7 = extractvalue { float, i1 } %sgN, 0
|
||||
%allocaN = alloca float, align 4
|
||||
store float %ou.val7, ptr %allocaN, align 4
|
||||
%loadN = load float, ptr %allocaN, align 4
|
||||
%fpextN = fpext float %loadN to double
|
||||
@@ -2120,7 +2121,6 @@ if.else.41: ; preds = %if.merge.39
|
||||
|
||||
if.merge.42: ; preds = %if.else.41, %if.then.40
|
||||
%bpN = phi double [ %fpextN, %if.then.40 ], [ 1.000000e+02, %if.else.41 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bpN, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
@@ -2133,6 +2133,10 @@ if.merge.42: ; preds = %if.else.41, %if.the
|
||||
define internal float @Widget.size(ptr %0, ptr %1, { { float, i1 }, { float, i1 } } %2) #0 {
|
||||
entry:
|
||||
%alloca = alloca ptr, align 8
|
||||
%allocaN = alloca float, align 4
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca float, align 4
|
||||
%allocaN = alloca double, align 8
|
||||
store ptr %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { { float, i1 }, { float, i1 } }, align 8
|
||||
store { { float, i1 }, { float, i1 } } %2, ptr %allocaN, align 4
|
||||
@@ -2143,7 +2147,6 @@ entry:
|
||||
|
||||
if.then.43: ; preds = %entry
|
||||
%ou.val = extractvalue { float, i1 } %sg, 0
|
||||
%allocaN = alloca float, align 4
|
||||
store float %ou.val, ptr %allocaN, align 4
|
||||
%loadN = load float, ptr %allocaN, align 4
|
||||
%fpext = fpext float %loadN to double
|
||||
@@ -2154,7 +2157,6 @@ if.else.44: ; preds = %entry
|
||||
|
||||
if.merge.45: ; preds = %if.else.44, %if.then.43
|
||||
%bp = phi double [ %fpext, %if.then.43 ], [ 1.000000e+02, %if.else.44 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load { { float, i1 }, { float, i1 } }, ptr %allocaN, align 4
|
||||
%sgN = extractvalue { { float, i1 }, { float, i1 } } %loadN, 1
|
||||
@@ -2163,7 +2165,6 @@ if.merge.45: ; preds = %if.else.44, %if.the
|
||||
|
||||
if.then.46: ; preds = %if.merge.45
|
||||
%ou.val8 = extractvalue { float, i1 } %sgN, 0
|
||||
%allocaN = alloca float, align 4
|
||||
store float %ou.val8, ptr %allocaN, align 4
|
||||
%loadN = load float, ptr %allocaN, align 4
|
||||
%fpextN = fpext float %loadN to double
|
||||
@@ -2174,7 +2175,6 @@ if.else.47: ; preds = %if.merge.45
|
||||
|
||||
if.merge.48: ; preds = %if.else.47, %if.then.46
|
||||
%bpN = phi double [ %fpextN, %if.then.46 ], [ 1.000000e+02, %if.else.47 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bpN, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
@@ -2777,6 +2777,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.143, i64 15 }, { ptr, i64 } { ptr @str.144, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2841,7 +2843,6 @@ fv.default: ; preds = %if.merge.125
|
||||
|
||||
fv.case: ; preds = %if.merge.125
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2861,7 +2862,6 @@ fv.case20: ; preds = %if.merge.125
|
||||
|
||||
fv.case24: ; preds = %if.merge.125
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -3156,6 +3156,7 @@ fv.case17: ; preds = %if.merge.145
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.181, i64 5 }, { ptr, i64 } { ptr @str.182, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3230,7 +3231,6 @@ fv.case17: ; preds = %if.merge.150
|
||||
|
||||
fv.case20: ; preds = %if.merge.150
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3323,6 +3323,7 @@ fv.case20: ; preds = %if.merge.155
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.199, i64 17 }, { ptr, i64 } { ptr @str.200, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3387,7 +3388,6 @@ fv.default: ; preds = %if.merge.160
|
||||
|
||||
fv.case: ; preds = %if.merge.160
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3413,6 +3413,7 @@ fv.case23: ; preds = %if.merge.160
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.209, i64 7 }, { ptr, i64 } { ptr @str.210, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3475,7 +3476,6 @@ fv.default: ; preds = %if.merge.165
|
||||
|
||||
fv.case: ; preds = %if.merge.165
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3492,6 +3492,8 @@ fv.case17: ; preds = %if.merge.165
|
||||
define internal { ptr, i64 } @struct_to_string__ProposedSize(ptr %0, { { float, i1 }, { float, i1 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { float, i1 }, { float, i1 } }, align 8
|
||||
%ba.tmp = alloca { float, i1 }, align 8
|
||||
%ba.tmp19 = alloca { float, i1 }, align 8
|
||||
store { { float, i1 }, { float, i1 } } %1, ptr %alloca, align 4
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.217, i64 12 }, { ptr, i64 } { ptr @str.218, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3554,7 +3556,6 @@ fv.default: ; preds = %if.merge.170
|
||||
|
||||
fv.case: ; preds = %if.merge.170
|
||||
%fv.field = extractvalue { { float, i1 }, { float, i1 } } %loadN, 0
|
||||
%ba.tmp = alloca { float, i1 }, align 8
|
||||
store { float, i1 } %fv.field, ptr %ba.tmp, align 4
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 37, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3562,7 +3563,6 @@ fv.case: ; preds = %if.merge.170
|
||||
|
||||
fv.case17: ; preds = %if.merge.170
|
||||
%fv.field18 = extractvalue { { float, i1 }, { float, i1 } } %loadN, 1
|
||||
%ba.tmp19 = alloca { float, i1 }, align 8
|
||||
store { float, i1 } %fv.field18, ptr %ba.tmp19, align 4
|
||||
%ba.p2i20 = ptrtoint ptr %ba.tmp19 to i64
|
||||
%fv.val21 = insertvalue { i64, i64 } { i64 37, i64 undef }, i64 %ba.p2i20, 1
|
||||
@@ -3775,6 +3775,7 @@ if.merge.185: ; preds = %if.then.184, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.246, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3807,7 +3808,6 @@ if.merge.194: ; preds = %if.then.193, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -3825,6 +3825,8 @@ if.merge.194: ; preds = %if.then.193, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.249, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3857,11 +3859,9 @@ if.merge.199: ; preds = %if.then.198, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3878,6 +3878,7 @@ if.merge.199: ; preds = %if.then.198, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.252, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3915,7 +3916,6 @@ if.merge.208: ; preds = %if.then.207, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3932,6 +3932,7 @@ if.merge.208: ; preds = %if.then.207, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.255, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3969,7 +3970,6 @@ if.merge.213: ; preds = %if.then.212, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -390,6 +390,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -401,15 +406,11 @@ if.then.14: ; preds = %entry
|
||||
if.merge.15: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.16
|
||||
|
||||
@@ -421,7 +422,6 @@ while.hdr.16: ; preds = %if.merge.20, %if.me
|
||||
while.body.17: ; preds = %while.hdr.16
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -479,6 +479,17 @@ if.merge.22: ; preds = %if.then.21, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -490,18 +501,14 @@ if.then.56: ; preds = %entry
|
||||
if.merge.57: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.66
|
||||
|
||||
while.hdr.66: ; preds = %while.exit.77, %if.merge.57
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -509,9 +516,7 @@ while.hdr.66: ; preds = %while.exit.77, %if.
|
||||
br i1 %icmpN, label %or.merge.70, label %or.rhs.69
|
||||
|
||||
while.body.67: ; preds = %or.merge.74
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.75
|
||||
|
||||
@@ -526,7 +531,6 @@ while.exit.68: ; preds = %or.merge.74
|
||||
|
||||
or.rhs.69: ; preds = %while.hdr.66
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -539,7 +543,6 @@ or.merge.70: ; preds = %or.rhs.69, %while.h
|
||||
|
||||
or.rhs.71: ; preds = %or.merge.70
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -552,7 +555,6 @@ or.merge.72: ; preds = %or.rhs.71, %or.merg
|
||||
|
||||
or.rhs.73: ; preds = %or.merge.72
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -573,12 +575,10 @@ while.body.76: ; preds = %while.hdr.75
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -631,6 +631,18 @@ if.merge.80: ; preds = %if.else.79, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -650,11 +662,9 @@ if.else.85: ; preds = %entry
|
||||
|
||||
if.merge.86: ; preds = %if.else.85, %if.then.84
|
||||
%bp = phi double [ %fsub, %if.then.84 ], [ %loadN, %if.else.85 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -662,7 +672,6 @@ if.merge.86: ; preds = %if.else.85, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -677,19 +686,15 @@ if.then.87: ; preds = %if.merge.86
|
||||
if.merge.88: ; preds = %if.then.87, %if.merge.86
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.89, label %if.else.90
|
||||
@@ -702,20 +707,16 @@ if.else.90: ; preds = %if.merge.88
|
||||
|
||||
if.merge.91: ; preds = %if.else.90, %if.then.89
|
||||
%bpN = phi i64 [ 1, %if.then.89 ], [ 0, %if.else.90 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.92, label %if.merge.93
|
||||
@@ -751,7 +752,6 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -779,6 +779,7 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -802,7 +803,6 @@ while.hdr.209: ; preds = %if.merge.214, %entr
|
||||
while.body.210: ; preds = %while.hdr.209
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -843,6 +843,13 @@ if.merge.214: ; preds = %if.else.213, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -863,11 +870,9 @@ if.merge.59: ; preds = %if.then.58, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -884,11 +889,9 @@ if.merge.61: ; preds = %if.then.60, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -905,11 +908,9 @@ if.merge.63: ; preds = %if.then.62, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -922,7 +923,6 @@ if.then.64: ; preds = %if.merge.63
|
||||
br label %if.merge.65
|
||||
|
||||
if.merge.65: ; preds = %if.then.64, %if.merge.63
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -944,6 +944,13 @@ if.merge.65: ; preds = %if.then.64, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -955,40 +962,33 @@ if.then.207: ; preds = %entry
|
||||
if.merge.208: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.215
|
||||
|
||||
@@ -1099,6 +1099,13 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.5, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1182,7 +1189,6 @@ match.arm.39: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.53, label %if.else.54
|
||||
|
||||
match.arm.40: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1202,7 +1208,6 @@ match.arm.41: ; preds = %entry
|
||||
|
||||
match.arm.42: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82
|
||||
@@ -1211,7 +1216,6 @@ match.arm.43: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.95 [
|
||||
i64 19, label %dispatch.case.96
|
||||
i64 20, label %dispatch.case.97
|
||||
@@ -1238,7 +1242,6 @@ match.arm.47: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw20 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw20, label %dispatch.default.157 [
|
||||
i64 35, label %dispatch.case.158
|
||||
i64 48, label %dispatch.case.159
|
||||
@@ -1248,7 +1251,6 @@ match.arm.48: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw24 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw24, label %dispatch.default.171 [
|
||||
i64 36, label %dispatch.case.172
|
||||
i64 46, label %dispatch.case.173
|
||||
@@ -1258,7 +1260,6 @@ match.arm.49: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw28 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw28, label %dispatch.default.185 [
|
||||
i64 18, label %dispatch.case.186
|
||||
i64 22, label %dispatch.case.187
|
||||
@@ -1284,7 +1285,6 @@ match.arm.50: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw32 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw32, label %dispatch.default.272 [
|
||||
i64 37, label %dispatch.case.273
|
||||
i64 38, label %dispatch.case.274
|
||||
@@ -2024,6 +2024,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.108, i64 15 }, { ptr, i64 } { ptr @str.109, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2088,7 +2090,6 @@ fv.default: ; preds = %if.merge.110
|
||||
|
||||
fv.case: ; preds = %if.merge.110
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2108,7 +2109,6 @@ fv.case20: ; preds = %if.merge.110
|
||||
|
||||
fv.case24: ; preds = %if.merge.110
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -2403,6 +2403,7 @@ fv.case17: ; preds = %if.merge.130
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.146, i64 5 }, { ptr, i64 } { ptr @str.147, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2477,7 +2478,6 @@ fv.case17: ; preds = %if.merge.135
|
||||
|
||||
fv.case20: ; preds = %if.merge.135
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2570,6 +2570,7 @@ fv.case20: ; preds = %if.merge.140
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.164, i64 17 }, { ptr, i64 } { ptr @str.165, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2634,7 +2635,6 @@ fv.default: ; preds = %if.merge.145
|
||||
|
||||
fv.case: ; preds = %if.merge.145
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2660,6 +2660,7 @@ fv.case23: ; preds = %if.merge.145
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.174, i64 7 }, { ptr, i64 } { ptr @str.175, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2722,7 +2723,6 @@ fv.default: ; preds = %if.merge.150
|
||||
|
||||
fv.case: ; preds = %if.merge.150
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2739,6 +2739,9 @@ fv.case17: ; preds = %if.merge.150
|
||||
define internal { ptr, i64 } @struct_to_string__S(ptr %0, { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } }, align 8
|
||||
%ba.tmp = alloca { i64, i1 }, align 8
|
||||
%ba.tmp19 = alloca { { ptr, i64 }, i1 }, align 8
|
||||
%ba.tmp24 = alloca { i1, i1 }, align 8
|
||||
store { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.182, i64 1 }, { ptr, i64 } { ptr @str.183, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2802,7 +2805,6 @@ fv.default: ; preds = %if.merge.155
|
||||
|
||||
fv.case: ; preds = %if.merge.155
|
||||
%fv.field = extractvalue { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } %loadN, 0
|
||||
%ba.tmp = alloca { i64, i1 }, align 8
|
||||
store { i64, i1 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 37, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2810,7 +2812,6 @@ fv.case: ; preds = %if.merge.155
|
||||
|
||||
fv.case17: ; preds = %if.merge.155
|
||||
%fv.field18 = extractvalue { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } %loadN, 1
|
||||
%ba.tmp19 = alloca { { ptr, i64 }, i1 }, align 8
|
||||
store { { ptr, i64 }, i1 } %fv.field18, ptr %ba.tmp19, align 8
|
||||
%ba.p2i20 = ptrtoint ptr %ba.tmp19 to i64
|
||||
%fv.val21 = insertvalue { i64, i64 } { i64 38, i64 undef }, i64 %ba.p2i20, 1
|
||||
@@ -2818,7 +2819,6 @@ fv.case17: ; preds = %if.merge.155
|
||||
|
||||
fv.case22: ; preds = %if.merge.155
|
||||
%fv.field23 = extractvalue { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } %loadN, 2
|
||||
%ba.tmp24 = alloca { i1, i1 }, align 8
|
||||
store { i1, i1 } %fv.field23, ptr %ba.tmp24, align 1
|
||||
%ba.p2i25 = ptrtoint ptr %ba.tmp24 to i64
|
||||
%fv.val26 = insertvalue { i64, i64 } { i64 39, i64 undef }, i64 %ba.p2i25, 1
|
||||
@@ -2829,6 +2829,7 @@ fv.case22: ; preds = %if.merge.155
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.191, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2861,7 +2862,6 @@ if.merge.164: ; preds = %if.then.163, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -2879,6 +2879,8 @@ if.merge.164: ; preds = %if.then.163, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.194, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2911,11 +2913,9 @@ if.merge.169: ; preds = %if.then.168, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2932,6 +2932,7 @@ if.merge.169: ; preds = %if.then.168, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.197, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2969,7 +2970,6 @@ if.merge.178: ; preds = %if.then.177, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2986,6 +2986,7 @@ if.merge.178: ; preds = %if.then.177, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.200, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3023,7 +3024,6 @@ if.merge.183: ; preds = %if.then.182, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3564,6 +3564,7 @@ if.merge.277: ; preds = %entry
|
||||
define internal { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i1 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i1 } %1, ptr %alloca, align 8
|
||||
%load = load { { ptr, i64 }, i1 }, ptr %alloca, align 8
|
||||
%oh.has = extractvalue { { ptr, i64 }, i1 } %load, 1
|
||||
@@ -3576,7 +3577,6 @@ if.then.278: ; preds = %entry
|
||||
if.merge.279: ; preds = %entry
|
||||
%loadN = load { { ptr, i64 }, i1 }, ptr %alloca, align 8
|
||||
%ou.val = extractvalue { { ptr, i64 }, i1 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ou.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -387,6 +387,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -398,15 +403,11 @@ if.then.24: ; preds = %entry
|
||||
if.merge.25: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.26
|
||||
|
||||
@@ -418,7 +419,6 @@ while.hdr.26: ; preds = %if.merge.30, %if.me
|
||||
while.body.27: ; preds = %while.hdr.26
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -476,6 +476,17 @@ if.merge.32: ; preds = %if.then.31, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -487,18 +498,14 @@ if.then.66: ; preds = %entry
|
||||
if.merge.67: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.76
|
||||
|
||||
while.hdr.76: ; preds = %while.exit.87, %if.merge.67
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -506,9 +513,7 @@ while.hdr.76: ; preds = %while.exit.87, %if.
|
||||
br i1 %icmpN, label %or.merge.80, label %or.rhs.79
|
||||
|
||||
while.body.77: ; preds = %or.merge.84
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.85
|
||||
|
||||
@@ -523,7 +528,6 @@ while.exit.78: ; preds = %or.merge.84
|
||||
|
||||
or.rhs.79: ; preds = %while.hdr.76
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -536,7 +540,6 @@ or.merge.80: ; preds = %or.rhs.79, %while.h
|
||||
|
||||
or.rhs.81: ; preds = %or.merge.80
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -549,7 +552,6 @@ or.merge.82: ; preds = %or.rhs.81, %or.merg
|
||||
|
||||
or.rhs.83: ; preds = %or.merge.82
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -570,12 +572,10 @@ while.body.86: ; preds = %while.hdr.85
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -628,6 +628,18 @@ if.merge.90: ; preds = %if.else.89, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -647,11 +659,9 @@ if.else.95: ; preds = %entry
|
||||
|
||||
if.merge.96: ; preds = %if.else.95, %if.then.94
|
||||
%bp = phi double [ %fsub, %if.then.94 ], [ %loadN, %if.else.95 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -659,7 +669,6 @@ if.merge.96: ; preds = %if.else.95, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -674,19 +683,15 @@ if.then.97: ; preds = %if.merge.96
|
||||
if.merge.98: ; preds = %if.then.97, %if.merge.96
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.99, label %if.else.100
|
||||
@@ -699,20 +704,16 @@ if.else.100: ; preds = %if.merge.98
|
||||
|
||||
if.merge.101: ; preds = %if.else.100, %if.then.99
|
||||
%bpN = phi i64 [ 1, %if.then.99 ], [ 0, %if.else.100 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.102, label %if.merge.103
|
||||
@@ -748,7 +749,6 @@ if.merge.103: ; preds = %if.then.102, %if.me
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -776,6 +776,7 @@ if.merge.103: ; preds = %if.then.102, %if.me
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -799,7 +800,6 @@ while.hdr.214: ; preds = %if.merge.219, %entr
|
||||
while.body.215: ; preds = %while.hdr.214
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -840,6 +840,13 @@ if.merge.219: ; preds = %if.else.218, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -860,11 +867,9 @@ if.merge.69: ; preds = %if.then.68, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -881,11 +886,9 @@ if.merge.71: ; preds = %if.then.70, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -902,11 +905,9 @@ if.merge.73: ; preds = %if.then.72, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -919,7 +920,6 @@ if.then.74: ; preds = %if.merge.73
|
||||
br label %if.merge.75
|
||||
|
||||
if.merge.75: ; preds = %if.then.74, %if.merge.73
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -941,6 +941,13 @@ if.merge.75: ; preds = %if.then.74, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -952,40 +959,33 @@ if.then.212: ; preds = %entry
|
||||
if.merge.213: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.220
|
||||
|
||||
@@ -1096,6 +1096,13 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i32, align 4
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.5, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1177,7 +1184,6 @@ match.arm.49: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.63, label %if.else.64
|
||||
|
||||
match.arm.50: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1197,7 +1203,6 @@ match.arm.51: ; preds = %entry
|
||||
|
||||
match.arm.52: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.91, label %fN.unbox.92
|
||||
@@ -1206,7 +1211,6 @@ match.arm.53: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.105 [
|
||||
i64 19, label %dispatch.case.106
|
||||
i64 20, label %dispatch.case.107
|
||||
@@ -1223,7 +1227,6 @@ match.arm.54: ; No predecessors!
|
||||
unreachable
|
||||
|
||||
match.arm.55: ; preds = %entry
|
||||
%allocaN = alloca i32, align 4
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw21 = extractvalue { i64, i64 } %loadN, 1
|
||||
%trN = trunc i64 %ua.raw21 to i32
|
||||
@@ -1242,7 +1245,6 @@ match.arm.57: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw25 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw25, label %dispatch.default.161 [
|
||||
i64 35, label %dispatch.case.162
|
||||
i64 46, label %dispatch.case.163
|
||||
@@ -1252,7 +1254,6 @@ match.arm.58: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw29 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw29, label %dispatch.default.175 [
|
||||
i64 36, label %dispatch.case.176
|
||||
i64 44, label %dispatch.case.177
|
||||
@@ -1262,7 +1263,6 @@ match.arm.59: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw33 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw33, label %dispatch.default.189 [
|
||||
i64 18, label %dispatch.case.190
|
||||
i64 22, label %dispatch.case.191
|
||||
@@ -2058,6 +2058,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.110, i64 15 }, { ptr, i64 } { ptr @str.111, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2122,7 +2124,6 @@ fv.default: ; preds = %if.merge.119
|
||||
|
||||
fv.case: ; preds = %if.merge.119
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2142,7 +2143,6 @@ fv.case20: ; preds = %if.merge.119
|
||||
|
||||
fv.case24: ; preds = %if.merge.119
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -2437,6 +2437,7 @@ fv.case17: ; preds = %if.merge.139
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.148, i64 5 }, { ptr, i64 } { ptr @str.149, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2511,7 +2512,6 @@ fv.case17: ; preds = %if.merge.144
|
||||
|
||||
fv.case20: ; preds = %if.merge.144
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2604,6 +2604,7 @@ fv.case20: ; preds = %if.merge.149
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.166, i64 17 }, { ptr, i64 } { ptr @str.167, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2668,7 +2669,6 @@ fv.default: ; preds = %if.merge.154
|
||||
|
||||
fv.case: ; preds = %if.merge.154
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2694,6 +2694,7 @@ fv.case23: ; preds = %if.merge.154
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.176, i64 7 }, { ptr, i64 } { ptr @str.177, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2756,7 +2757,6 @@ fv.default: ; preds = %if.merge.159
|
||||
|
||||
fv.case: ; preds = %if.merge.159
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2773,6 +2773,7 @@ fv.case17: ; preds = %if.merge.159
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.184, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2805,7 +2806,6 @@ if.merge.168: ; preds = %if.then.167, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -2823,6 +2823,8 @@ if.merge.168: ; preds = %if.then.167, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.187, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2855,11 +2857,9 @@ if.merge.173: ; preds = %if.then.172, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2876,6 +2876,7 @@ if.merge.173: ; preds = %if.then.172, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.190, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2913,7 +2914,6 @@ if.merge.182: ; preds = %if.then.181, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2930,6 +2930,7 @@ if.merge.182: ; preds = %if.then.181, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.193, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2967,7 +2968,6 @@ if.merge.187: ; preds = %if.then.186, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -393,6 +393,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -404,15 +409,11 @@ if.then.26: ; preds = %entry
|
||||
if.merge.27: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.28
|
||||
|
||||
@@ -424,7 +425,6 @@ while.hdr.28: ; preds = %if.merge.32, %if.me
|
||||
while.body.29: ; preds = %while.hdr.28
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -482,6 +482,17 @@ if.merge.34: ; preds = %if.then.33, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -493,18 +504,14 @@ if.then.68: ; preds = %entry
|
||||
if.merge.69: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.78
|
||||
|
||||
while.hdr.78: ; preds = %while.exit.89, %if.merge.69
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -512,9 +519,7 @@ while.hdr.78: ; preds = %while.exit.89, %if.
|
||||
br i1 %icmpN, label %or.merge.82, label %or.rhs.81
|
||||
|
||||
while.body.79: ; preds = %or.merge.86
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.87
|
||||
|
||||
@@ -529,7 +534,6 @@ while.exit.80: ; preds = %or.merge.86
|
||||
|
||||
or.rhs.81: ; preds = %while.hdr.78
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -542,7 +546,6 @@ or.merge.82: ; preds = %or.rhs.81, %while.h
|
||||
|
||||
or.rhs.83: ; preds = %or.merge.82
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -555,7 +558,6 @@ or.merge.84: ; preds = %or.rhs.83, %or.merg
|
||||
|
||||
or.rhs.85: ; preds = %or.merge.84
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -576,12 +578,10 @@ while.body.88: ; preds = %while.hdr.87
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -634,6 +634,18 @@ if.merge.92: ; preds = %if.else.91, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -653,11 +665,9 @@ if.else.97: ; preds = %entry
|
||||
|
||||
if.merge.98: ; preds = %if.else.97, %if.then.96
|
||||
%bp = phi double [ %fsub, %if.then.96 ], [ %loadN, %if.else.97 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -665,7 +675,6 @@ if.merge.98: ; preds = %if.else.97, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -680,19 +689,15 @@ if.then.99: ; preds = %if.merge.98
|
||||
if.merge.100: ; preds = %if.then.99, %if.merge.98
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.101, label %if.else.102
|
||||
@@ -705,20 +710,16 @@ if.else.102: ; preds = %if.merge.100
|
||||
|
||||
if.merge.103: ; preds = %if.else.102, %if.then.101
|
||||
%bpN = phi i64 [ 1, %if.then.101 ], [ 0, %if.else.102 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.104, label %if.merge.105
|
||||
@@ -754,7 +755,6 @@ if.merge.105: ; preds = %if.then.104, %if.me
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -782,6 +782,7 @@ if.merge.105: ; preds = %if.then.104, %if.me
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -805,7 +806,6 @@ while.hdr.216: ; preds = %if.merge.221, %entr
|
||||
while.body.217: ; preds = %while.hdr.216
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -846,6 +846,13 @@ if.merge.221: ; preds = %if.else.220, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -866,11 +873,9 @@ if.merge.71: ; preds = %if.then.70, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -887,11 +892,9 @@ if.merge.73: ; preds = %if.then.72, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -908,11 +911,9 @@ if.merge.75: ; preds = %if.then.74, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -925,7 +926,6 @@ if.then.76: ; preds = %if.merge.75
|
||||
br label %if.merge.77
|
||||
|
||||
if.merge.77: ; preds = %if.then.76, %if.merge.75
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -947,6 +947,13 @@ if.merge.77: ; preds = %if.then.76, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -958,40 +965,33 @@ if.then.214: ; preds = %entry
|
||||
if.merge.215: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.222
|
||||
|
||||
@@ -1102,6 +1102,13 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i32, align 4
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.5, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1184,7 +1191,6 @@ match.arm.51: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.65, label %if.else.66
|
||||
|
||||
match.arm.52: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1204,7 +1210,6 @@ match.arm.53: ; preds = %entry
|
||||
|
||||
match.arm.54: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.93, label %fN.unbox.94
|
||||
@@ -1213,7 +1218,6 @@ match.arm.55: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.107 [
|
||||
i64 19, label %dispatch.case.108
|
||||
i64 20, label %dispatch.case.109
|
||||
@@ -1230,7 +1234,6 @@ match.arm.56: ; No predecessors!
|
||||
unreachable
|
||||
|
||||
match.arm.57: ; preds = %entry, %entry
|
||||
%allocaN = alloca i32, align 4
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw21 = extractvalue { i64, i64 } %loadN, 1
|
||||
%trN = trunc i64 %ua.raw21 to i32
|
||||
@@ -1249,7 +1252,6 @@ match.arm.59: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw25 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw25, label %dispatch.default.163 [
|
||||
i64 35, label %dispatch.case.164
|
||||
i64 47, label %dispatch.case.165
|
||||
@@ -1259,7 +1261,6 @@ match.arm.60: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw29 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw29, label %dispatch.default.177 [
|
||||
i64 36, label %dispatch.case.178
|
||||
i64 45, label %dispatch.case.179
|
||||
@@ -1269,7 +1270,6 @@ match.arm.61: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw33 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw33, label %dispatch.default.191 [
|
||||
i64 18, label %dispatch.case.192
|
||||
i64 22, label %dispatch.case.193
|
||||
@@ -2077,6 +2077,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.116, i64 15 }, { ptr, i64 } { ptr @str.117, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2141,7 +2143,6 @@ fv.default: ; preds = %if.merge.121
|
||||
|
||||
fv.case: ; preds = %if.merge.121
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2161,7 +2162,6 @@ fv.case20: ; preds = %if.merge.121
|
||||
|
||||
fv.case24: ; preds = %if.merge.121
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -2456,6 +2456,7 @@ fv.case17: ; preds = %if.merge.141
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.154, i64 5 }, { ptr, i64 } { ptr @str.155, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2530,7 +2531,6 @@ fv.case17: ; preds = %if.merge.146
|
||||
|
||||
fv.case20: ; preds = %if.merge.146
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2623,6 +2623,7 @@ fv.case20: ; preds = %if.merge.151
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.172, i64 17 }, { ptr, i64 } { ptr @str.173, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2687,7 +2688,6 @@ fv.default: ; preds = %if.merge.156
|
||||
|
||||
fv.case: ; preds = %if.merge.156
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2713,6 +2713,7 @@ fv.case23: ; preds = %if.merge.156
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.182, i64 7 }, { ptr, i64 } { ptr @str.183, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2775,7 +2776,6 @@ fv.default: ; preds = %if.merge.161
|
||||
|
||||
fv.case: ; preds = %if.merge.161
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2792,6 +2792,7 @@ fv.case17: ; preds = %if.merge.161
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.190, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2824,7 +2825,6 @@ if.merge.170: ; preds = %if.then.169, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -2842,6 +2842,8 @@ if.merge.170: ; preds = %if.then.169, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.193, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2874,11 +2876,9 @@ if.merge.175: ; preds = %if.then.174, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2895,6 +2895,7 @@ if.merge.175: ; preds = %if.then.174, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.196, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2932,7 +2933,6 @@ if.merge.184: ; preds = %if.then.183, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2949,6 +2949,7 @@ if.merge.184: ; preds = %if.then.183, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.199, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2986,7 +2987,6 @@ if.merge.189: ; preds = %if.then.188, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -389,6 +389,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -400,15 +405,11 @@ if.then.44: ; preds = %entry
|
||||
if.merge.45: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.46
|
||||
|
||||
@@ -420,7 +421,6 @@ while.hdr.46: ; preds = %if.merge.50, %if.me
|
||||
while.body.47: ; preds = %while.hdr.46
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -478,6 +478,17 @@ if.merge.52: ; preds = %if.then.51, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -489,18 +500,14 @@ if.then.86: ; preds = %entry
|
||||
if.merge.87: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.96
|
||||
|
||||
while.hdr.96: ; preds = %while.exit.107, %if.merge.87
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -508,9 +515,7 @@ while.hdr.96: ; preds = %while.exit.107, %if
|
||||
br i1 %icmpN, label %or.merge.100, label %or.rhs.99
|
||||
|
||||
while.body.97: ; preds = %or.merge.104
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.105
|
||||
|
||||
@@ -525,7 +530,6 @@ while.exit.98: ; preds = %or.merge.104
|
||||
|
||||
or.rhs.99: ; preds = %while.hdr.96
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -538,7 +542,6 @@ or.merge.100: ; preds = %or.rhs.99, %while.h
|
||||
|
||||
or.rhs.101: ; preds = %or.merge.100
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -551,7 +554,6 @@ or.merge.102: ; preds = %or.rhs.101, %or.mer
|
||||
|
||||
or.rhs.103: ; preds = %or.merge.102
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -572,12 +574,10 @@ while.body.106: ; preds = %while.hdr.105
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -630,6 +630,18 @@ if.merge.110: ; preds = %if.else.109, %if.th
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -649,11 +661,9 @@ if.else.115: ; preds = %entry
|
||||
|
||||
if.merge.116: ; preds = %if.else.115, %if.then.114
|
||||
%bp = phi double [ %fsub, %if.then.114 ], [ %loadN, %if.else.115 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -661,7 +671,6 @@ if.merge.116: ; preds = %if.else.115, %if.th
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -676,19 +685,15 @@ if.then.117: ; preds = %if.merge.116
|
||||
if.merge.118: ; preds = %if.then.117, %if.merge.116
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.119, label %if.else.120
|
||||
@@ -701,20 +706,16 @@ if.else.120: ; preds = %if.merge.118
|
||||
|
||||
if.merge.121: ; preds = %if.else.120, %if.then.119
|
||||
%bpN = phi i64 [ 1, %if.then.119 ], [ 0, %if.else.120 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.122, label %if.merge.123
|
||||
@@ -750,7 +751,6 @@ if.merge.123: ; preds = %if.then.122, %if.me
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -778,6 +778,7 @@ if.merge.123: ; preds = %if.then.122, %if.me
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -801,7 +802,6 @@ while.hdr.234: ; preds = %if.merge.239, %entr
|
||||
while.body.235: ; preds = %while.hdr.234
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -842,6 +842,13 @@ if.merge.239: ; preds = %if.else.238, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -862,11 +869,9 @@ if.merge.89: ; preds = %if.then.88, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -883,11 +888,9 @@ if.merge.91: ; preds = %if.then.90, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -904,11 +907,9 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -921,7 +922,6 @@ if.then.94: ; preds = %if.merge.93
|
||||
br label %if.merge.95
|
||||
|
||||
if.merge.95: ; preds = %if.then.94, %if.merge.93
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -943,6 +943,13 @@ if.merge.95: ; preds = %if.then.94, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -954,40 +961,33 @@ if.then.232: ; preds = %entry
|
||||
if.merge.233: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.240
|
||||
|
||||
@@ -1098,6 +1098,13 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i32, align 4
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.5, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1179,7 +1186,6 @@ match.arm.69: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.83, label %if.else.84
|
||||
|
||||
match.arm.70: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1199,7 +1205,6 @@ match.arm.71: ; preds = %entry
|
||||
|
||||
match.arm.72: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.111, label %fN.unbox.112
|
||||
@@ -1208,7 +1213,6 @@ match.arm.73: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.125 [
|
||||
i64 19, label %dispatch.case.126
|
||||
i64 20, label %dispatch.case.127
|
||||
@@ -1225,7 +1229,6 @@ match.arm.74: ; No predecessors!
|
||||
unreachable
|
||||
|
||||
match.arm.75: ; preds = %entry
|
||||
%allocaN = alloca i32, align 4
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw21 = extractvalue { i64, i64 } %loadN, 1
|
||||
%trN = trunc i64 %ua.raw21 to i32
|
||||
@@ -1244,7 +1247,6 @@ match.arm.77: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw25 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw25, label %dispatch.default.181 [
|
||||
i64 35, label %dispatch.case.182
|
||||
i64 46, label %dispatch.case.183
|
||||
@@ -1254,7 +1256,6 @@ match.arm.78: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw29 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw29, label %dispatch.default.195 [
|
||||
i64 36, label %dispatch.case.196
|
||||
i64 44, label %dispatch.case.197
|
||||
@@ -1264,7 +1265,6 @@ match.arm.79: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw33 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw33, label %dispatch.default.209 [
|
||||
i64 18, label %dispatch.case.210
|
||||
i64 22, label %dispatch.case.211
|
||||
@@ -2023,6 +2023,8 @@ if.merge.19: ; preds = %catch.handle.16
|
||||
define i32 @main() #0 {
|
||||
entry:
|
||||
%alloca = alloca i32, align 4
|
||||
%allocaN = alloca i32, align 4
|
||||
%allocaN = alloca i32, align 4
|
||||
store i32 0, ptr %alloca, align 4
|
||||
%call = call i32 @must(ptr @__sx_default_context, i32 -1)
|
||||
%icmp = icmp ne i32 %call, 0
|
||||
@@ -2062,7 +2064,6 @@ catch.merge.9: ; preds = %catch.handle.8, %ca
|
||||
%addN = add i32 %loadN, %callN
|
||||
store i32 %addN, ptr %alloca, align 4
|
||||
%callN = call i32 @handle_some(ptr @__sx_default_context, i32 0)
|
||||
%allocaN = alloca i32, align 4
|
||||
store i32 %callN, ptr %allocaN, align 4
|
||||
%loadN = load i32, ptr %allocaN, align 4
|
||||
%icmpN = icmp eq i32 %loadN, 2
|
||||
@@ -2076,7 +2077,6 @@ if.then.20: ; preds = %catch.merge.9
|
||||
|
||||
if.merge.21: ; preds = %if.then.20, %catch.merge.9
|
||||
%callN = call i32 @handle_some(ptr @__sx_default_context, i32 -1)
|
||||
%allocaN = alloca i32, align 4
|
||||
store i32 %callN, ptr %allocaN, align 4
|
||||
%loadN = load i32, ptr %allocaN, align 4
|
||||
%icmpN = icmp eq i32 %loadN, 1
|
||||
@@ -2169,6 +2169,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.112, i64 15 }, { ptr, i64 } { ptr @str.113, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2233,7 +2235,6 @@ fv.default: ; preds = %if.merge.139
|
||||
|
||||
fv.case: ; preds = %if.merge.139
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2253,7 +2254,6 @@ fv.case20: ; preds = %if.merge.139
|
||||
|
||||
fv.case24: ; preds = %if.merge.139
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -2548,6 +2548,7 @@ fv.case17: ; preds = %if.merge.159
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.150, i64 5 }, { ptr, i64 } { ptr @str.151, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2622,7 +2623,6 @@ fv.case17: ; preds = %if.merge.164
|
||||
|
||||
fv.case20: ; preds = %if.merge.164
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2715,6 +2715,7 @@ fv.case20: ; preds = %if.merge.169
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.168, i64 17 }, { ptr, i64 } { ptr @str.169, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2779,7 +2780,6 @@ fv.default: ; preds = %if.merge.174
|
||||
|
||||
fv.case: ; preds = %if.merge.174
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2805,6 +2805,7 @@ fv.case23: ; preds = %if.merge.174
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.178, i64 7 }, { ptr, i64 } { ptr @str.179, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2867,7 +2868,6 @@ fv.default: ; preds = %if.merge.179
|
||||
|
||||
fv.case: ; preds = %if.merge.179
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2884,6 +2884,7 @@ fv.case17: ; preds = %if.merge.179
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.186, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2916,7 +2917,6 @@ if.merge.188: ; preds = %if.then.187, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -2934,6 +2934,8 @@ if.merge.188: ; preds = %if.then.187, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.189, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -2966,11 +2968,9 @@ if.merge.193: ; preds = %if.then.192, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2987,6 +2987,7 @@ if.merge.193: ; preds = %if.then.192, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.192, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3024,7 +3025,6 @@ if.merge.202: ; preds = %if.then.201, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3041,6 +3041,7 @@ if.merge.202: ; preds = %if.then.201, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.195, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3078,7 +3079,6 @@ if.merge.207: ; preds = %if.then.206, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -160,6 +160,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -171,15 +176,11 @@ if.then.14: ; preds = %entry
|
||||
if.merge.15: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.16
|
||||
|
||||
@@ -191,7 +192,6 @@ while.hdr.16: ; preds = %if.merge.20, %if.me
|
||||
while.body.17: ; preds = %while.hdr.16
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
|
||||
@@ -176,6 +176,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -187,15 +192,11 @@ if.then.16: ; preds = %entry
|
||||
if.merge.17: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.18
|
||||
|
||||
@@ -207,7 +208,6 @@ while.hdr.18: ; preds = %if.merge.22, %if.me
|
||||
while.body.19: ; preds = %while.hdr.18
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -831,6 +831,14 @@ define i32 @main() #0 {
|
||||
entry:
|
||||
call void @__sx_objc_defined_class_init()
|
||||
%alloca = alloca ptr, align 8
|
||||
%allocaN = alloca ptr, align 8
|
||||
%allocaN = alloca ptr, align 8
|
||||
%allocaN = alloca ptr, align 8
|
||||
%allocaN = alloca ptr, align 8
|
||||
%allocaN = alloca ptr, align 8
|
||||
%allocaN = alloca ptr, align 8
|
||||
%allocaN = alloca ptr, align 8
|
||||
%allocaN = alloca ptr, align 8
|
||||
%call = call ptr @objc_getClass(ptr @str.16)
|
||||
store ptr %call, ptr %alloca, align 8
|
||||
%load = load ptr, ptr %alloca, align 8
|
||||
@@ -842,10 +850,8 @@ if.then.0: ; preds = %entry
|
||||
ret i32 1
|
||||
|
||||
if.merge.1: ; preds = %entry
|
||||
%allocaN = alloca ptr, align 8
|
||||
%callN = call ptr @sel_registerName(ptr @str.17)
|
||||
store ptr %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca ptr, align 8
|
||||
%loadN = load ptr, ptr %alloca, align 8
|
||||
%loadN = load ptr, ptr %allocaN, align 8
|
||||
%callN = call ptr @class_getMethodImplementation(ptr %loadN, ptr %loadN)
|
||||
@@ -859,12 +865,9 @@ if.then.39: ; preds = %if.merge.1
|
||||
ret i32 1
|
||||
|
||||
if.merge.40: ; preds = %if.merge.1
|
||||
%allocaN = alloca ptr, align 8
|
||||
%callN = call ptr @sel_registerName(ptr @str.18)
|
||||
store ptr %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca ptr, align 8
|
||||
store ptr @objc_msgSend, ptr %allocaN, align 8
|
||||
%allocaN = alloca ptr, align 8
|
||||
%loadN = load ptr, ptr %alloca, align 8
|
||||
%loadN = load ptr, ptr %allocaN, align 8
|
||||
%loadN = load ptr, ptr %allocaN, align 8
|
||||
@@ -879,16 +882,13 @@ if.then.41: ; preds = %if.merge.40
|
||||
ret i32 1
|
||||
|
||||
if.merge.42: ; preds = %if.merge.40
|
||||
%allocaN = alloca ptr, align 8
|
||||
%callN = call ptr @sel_registerName(ptr @str.19)
|
||||
store ptr %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca ptr, align 8
|
||||
store ptr @objc_msgSend, ptr %allocaN, align 8
|
||||
%loadN = load ptr, ptr %allocaN, align 8
|
||||
%loadN = load ptr, ptr %allocaN, align 8
|
||||
%loadN = load ptr, ptr %allocaN, align 8
|
||||
call void %loadN(ptr %loadN, ptr %loadN)
|
||||
%allocaN = alloca ptr, align 8
|
||||
%loadN = load ptr, ptr %alloca, align 8
|
||||
%loadN = load ptr, ptr %allocaN, align 8
|
||||
%loadN = load ptr, ptr %allocaN, align 8
|
||||
|
||||
@@ -506,6 +506,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -517,15 +522,11 @@ if.then.18: ; preds = %entry
|
||||
if.merge.19: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.20
|
||||
|
||||
@@ -537,7 +538,6 @@ while.hdr.20: ; preds = %if.merge.24, %if.me
|
||||
while.body.21: ; preds = %while.hdr.20
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -595,6 +595,17 @@ if.merge.26: ; preds = %if.then.25, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -606,18 +617,14 @@ if.then.64: ; preds = %entry
|
||||
if.merge.65: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.74
|
||||
|
||||
while.hdr.74: ; preds = %while.exit.85, %if.merge.65
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -625,9 +632,7 @@ while.hdr.74: ; preds = %while.exit.85, %if.
|
||||
br i1 %icmpN, label %or.merge.78, label %or.rhs.77
|
||||
|
||||
while.body.75: ; preds = %or.merge.82
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.83
|
||||
|
||||
@@ -642,7 +647,6 @@ while.exit.76: ; preds = %or.merge.82
|
||||
|
||||
or.rhs.77: ; preds = %while.hdr.74
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -655,7 +659,6 @@ or.merge.78: ; preds = %or.rhs.77, %while.h
|
||||
|
||||
or.rhs.79: ; preds = %or.merge.78
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -668,7 +671,6 @@ or.merge.80: ; preds = %or.rhs.79, %or.merg
|
||||
|
||||
or.rhs.81: ; preds = %or.merge.80
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -689,12 +691,10 @@ while.body.84: ; preds = %while.hdr.83
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -747,6 +747,18 @@ if.merge.88: ; preds = %if.else.87, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -766,11 +778,9 @@ if.else.93: ; preds = %entry
|
||||
|
||||
if.merge.94: ; preds = %if.else.93, %if.then.92
|
||||
%bp = phi double [ %fsub, %if.then.92 ], [ %loadN, %if.else.93 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -778,7 +788,6 @@ if.merge.94: ; preds = %if.else.93, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -793,19 +802,15 @@ if.then.95: ; preds = %if.merge.94
|
||||
if.merge.96: ; preds = %if.then.95, %if.merge.94
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.97, label %if.else.98
|
||||
@@ -818,20 +823,16 @@ if.else.98: ; preds = %if.merge.96
|
||||
|
||||
if.merge.99: ; preds = %if.else.98, %if.then.97
|
||||
%bpN = phi i64 [ 1, %if.then.97 ], [ 0, %if.else.98 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.100, label %if.merge.101
|
||||
@@ -867,7 +868,6 @@ if.merge.101: ; preds = %if.then.100, %if.me
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -895,6 +895,7 @@ if.merge.101: ; preds = %if.then.100, %if.me
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -918,7 +919,6 @@ while.hdr.253: ; preds = %if.merge.258, %entr
|
||||
while.body.254: ; preds = %while.hdr.253
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -959,6 +959,13 @@ if.merge.258: ; preds = %if.else.257, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -979,11 +986,9 @@ if.merge.67: ; preds = %if.then.66, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -1000,11 +1005,9 @@ if.merge.69: ; preds = %if.then.68, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -1021,11 +1024,9 @@ if.merge.71: ; preds = %if.then.70, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -1038,7 +1039,6 @@ if.then.72: ; preds = %if.merge.71
|
||||
br label %if.merge.73
|
||||
|
||||
if.merge.73: ; preds = %if.then.72, %if.merge.71
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -1060,6 +1060,13 @@ if.merge.73: ; preds = %if.then.72, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -1071,40 +1078,33 @@ if.then.251: ; preds = %entry
|
||||
if.merge.252: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.259
|
||||
|
||||
@@ -1215,6 +1215,13 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.5, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1305,7 +1312,6 @@ match.arm.47: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.61, label %if.else.62
|
||||
|
||||
match.arm.48: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1325,7 +1331,6 @@ match.arm.49: ; preds = %entry
|
||||
|
||||
match.arm.50: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.89, label %fN.unbox.90
|
||||
@@ -1334,7 +1339,6 @@ match.arm.51: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.103 [
|
||||
i64 19, label %dispatch.case.104
|
||||
i64 20, label %dispatch.case.105
|
||||
@@ -1355,7 +1359,6 @@ match.arm.52: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw20 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw20, label %dispatch.default.183 [
|
||||
i64 37, label %dispatch.case.184
|
||||
i64 38, label %dispatch.case.185
|
||||
@@ -1371,7 +1374,6 @@ match.arm.55: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw24 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw24, label %dispatch.default.191 [
|
||||
i64 35, label %dispatch.case.192
|
||||
i64 58, label %dispatch.case.193
|
||||
@@ -1382,7 +1384,6 @@ match.arm.56: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw28 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw28, label %dispatch.default.211 [
|
||||
i64 36, label %dispatch.case.212
|
||||
i64 53, label %dispatch.case.213
|
||||
@@ -1392,7 +1393,6 @@ match.arm.57: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw32 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw32, label %dispatch.default.225 [
|
||||
i64 18, label %dispatch.case.226
|
||||
i64 22, label %dispatch.case.227
|
||||
@@ -2290,6 +2290,10 @@ entry:
|
||||
call void @__sx_objc_selector_init()
|
||||
call void @__sx_objc_defined_class_init()
|
||||
call void @__sx_objc_class_init()
|
||||
%allocaN = alloca i32, align 4
|
||||
%allocaN = alloca ptr, align 8
|
||||
%allocaN = alloca ptr, align 8
|
||||
%allocaN = alloca ptr, align 8
|
||||
%load = load ptr, ptr @OBJC_CLASSLIST_REFERENCES_SxBox, align 8
|
||||
%call = call ptr @class_createInstance(ptr %load, i64 0)
|
||||
%loadN = load { { ptr, ptr, ptr }, ptr }, ptr @__sx_default_context, align 8
|
||||
@@ -2345,7 +2349,6 @@ if.merge.3: ; preds = %or.merge.1
|
||||
%loadN = load ptr, ptr %alloca, align 8
|
||||
%loadN = load ptr, ptr @OBJC_SELECTOR_REFERENCES_area, align 8
|
||||
%objc.msg25 = call i32 @objc_msgSend(ptr %loadN, ptr %loadN)
|
||||
%allocaN = alloca i32, align 4
|
||||
store i32 %objc.msg25, ptr %allocaN, align 4
|
||||
%loadN = load i32, ptr %allocaN, align 4
|
||||
%cmp.ext28 = sext i32 %loadN to i64
|
||||
@@ -2358,16 +2361,13 @@ if.then.41: ; preds = %if.merge.3
|
||||
ret i32 1
|
||||
|
||||
if.merge.42: ; preds = %if.merge.3
|
||||
%allocaN = alloca ptr, align 8
|
||||
%callN = call ptr @objc_getClass(ptr @str.120)
|
||||
store ptr %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca ptr, align 8
|
||||
%callN = call ptr @sel_registerName(ptr @str.121)
|
||||
store ptr %callN, ptr %allocaN, align 8
|
||||
%loadN = load ptr, ptr %allocaN, align 8
|
||||
%loadN = load ptr, ptr %allocaN, align 8
|
||||
%callN = call ptr @class_getInstanceMethod(ptr %loadN, ptr %loadN)
|
||||
%allocaN = alloca ptr, align 8
|
||||
store ptr %callN, ptr %allocaN, align 8
|
||||
%loadN = load ptr, ptr %allocaN, align 8
|
||||
%icmpN = icmp ne ptr %loadN, null
|
||||
@@ -2607,6 +2607,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.134, i64 15 }, { ptr, i64 } { ptr @str.135, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2671,7 +2673,6 @@ fv.default: ; preds = %if.merge.121
|
||||
|
||||
fv.case: ; preds = %if.merge.121
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2691,7 +2692,6 @@ fv.case20: ; preds = %if.merge.121
|
||||
|
||||
fv.case24: ; preds = %if.merge.121
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -2986,6 +2986,7 @@ fv.case17: ; preds = %if.merge.141
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.172, i64 5 }, { ptr, i64 } { ptr @str.173, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3060,7 +3061,6 @@ fv.case17: ; preds = %if.merge.146
|
||||
|
||||
fv.case20: ; preds = %if.merge.146
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3153,6 +3153,7 @@ fv.case20: ; preds = %if.merge.151
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.190, i64 17 }, { ptr, i64 } { ptr @str.191, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3217,7 +3218,6 @@ fv.default: ; preds = %if.merge.156
|
||||
|
||||
fv.case: ; preds = %if.merge.156
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3243,6 +3243,7 @@ fv.case23: ; preds = %if.merge.156
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.200, i64 7 }, { ptr, i64 } { ptr @str.201, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3305,7 +3306,6 @@ fv.default: ; preds = %if.merge.161
|
||||
|
||||
fv.case: ; preds = %if.merge.161
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3487,6 +3487,7 @@ if.merge.176: ; preds = %if.then.175, %while
|
||||
define internal { ptr, i64 } @struct_to_string____SxBoxState(ptr %0, { { ptr, ptr, ptr }, i32, i32, i32 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i32, i32, i32 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i32, i32, i32 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.226, i64 12 }, { ptr, i64 } { ptr @str.227, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3551,7 +3552,6 @@ fv.default: ; preds = %if.merge.181
|
||||
|
||||
fv.case: ; preds = %if.merge.181
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i32, i32, i32 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3662,6 +3662,7 @@ if.merge.189: ; preds = %if.then.188, %entry
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.256, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3694,7 +3695,6 @@ if.merge.199: ; preds = %if.then.198, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -3712,6 +3712,8 @@ if.merge.199: ; preds = %if.then.198, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.259, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3744,11 +3746,9 @@ if.merge.204: ; preds = %if.then.203, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3765,6 +3765,8 @@ if.merge.204: ; preds = %if.then.203, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [3 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [3 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [3 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.262, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3797,11 +3799,9 @@ if.merge.209: ; preds = %if.then.208, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [3 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [3 x { i64, i64 }], align 8
|
||||
store [3 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [3 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3818,6 +3818,7 @@ if.merge.209: ; preds = %if.then.208, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.265, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3855,7 +3856,6 @@ if.merge.218: ; preds = %if.then.217, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3872,6 +3872,7 @@ if.merge.218: ; preds = %if.then.217, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.268, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3909,7 +3910,6 @@ if.merge.223: ; preds = %if.then.222, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -152,6 +152,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -163,15 +168,11 @@ if.then.14: ; preds = %entry
|
||||
if.merge.15: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.16
|
||||
|
||||
@@ -183,7 +184,6 @@ while.hdr.16: ; preds = %if.merge.20, %if.me
|
||||
while.body.17: ; preds = %while.hdr.16
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
|
||||
@@ -448,6 +448,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -459,15 +464,11 @@ if.then.14: ; preds = %entry
|
||||
if.merge.15: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.16
|
||||
|
||||
@@ -479,7 +480,6 @@ while.hdr.16: ; preds = %if.merge.20, %if.me
|
||||
while.body.17: ; preds = %while.hdr.16
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -537,6 +537,17 @@ if.merge.22: ; preds = %if.then.21, %while.
|
||||
define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -548,18 +559,14 @@ if.then.56: ; preds = %entry
|
||||
if.merge.57: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
br label %while.hdr.66
|
||||
|
||||
while.hdr.66: ; preds = %while.exit.77, %if.merge.57
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -567,9 +574,7 @@ while.hdr.66: ; preds = %while.exit.77, %if.
|
||||
br i1 %icmpN, label %or.merge.70, label %or.rhs.69
|
||||
|
||||
while.body.67: ; preds = %or.merge.74
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.75
|
||||
|
||||
@@ -584,7 +589,6 @@ while.exit.68: ; preds = %or.merge.74
|
||||
|
||||
or.rhs.69: ; preds = %while.hdr.66
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp15 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp15, align 8
|
||||
%ig.ptr16 = getelementptr [4 x i64], ptr %ig.tmp15, i64 0, i64 1
|
||||
%ig.val17 = load i64, ptr %ig.ptr16, align 8
|
||||
@@ -597,7 +601,6 @@ or.merge.70: ; preds = %or.rhs.69, %while.h
|
||||
|
||||
or.rhs.71: ; preds = %or.merge.70
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp20 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp20, align 8
|
||||
%ig.ptr21 = getelementptr [4 x i64], ptr %ig.tmp20, i64 0, i64 2
|
||||
%ig.val22 = load i64, ptr %ig.ptr21, align 8
|
||||
@@ -610,7 +613,6 @@ or.merge.72: ; preds = %or.rhs.71, %or.merg
|
||||
|
||||
or.rhs.73: ; preds = %or.merge.72
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp26 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp26, align 8
|
||||
%ig.ptr27 = getelementptr [4 x i64], ptr %ig.tmp26, i64 0, i64 3
|
||||
%ig.val28 = load i64, ptr %ig.ptr27, align 8
|
||||
@@ -631,12 +633,10 @@ while.body.76: ; preds = %while.hdr.75
|
||||
%mul = mul i64 %loadN, 65536
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp36 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp36, align 8
|
||||
%ig.ptr37 = getelementptr [4 x i64], ptr %ig.tmp36, i64 0, i64 %loadN
|
||||
%ig.val38 = load i64, ptr %ig.ptr37, align 8
|
||||
%addN = add i64 %mul, %ig.val38
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sdiv = sdiv i64 %loadN, 10
|
||||
@@ -689,6 +689,18 @@ if.merge.80: ; preds = %if.else.79, %if.the
|
||||
define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store double %1, ptr %alloca, align 8
|
||||
%load = load double, ptr %alloca, align 8
|
||||
%fcmp = fcmp olt double %load, 0.000000e+00
|
||||
@@ -708,11 +720,9 @@ if.else.85: ; preds = %entry
|
||||
|
||||
if.merge.86: ; preds = %if.else.85, %if.then.84
|
||||
%bp = phi double [ %fsub, %if.then.84 ], [ %loadN, %if.else.85 ]
|
||||
%allocaN = alloca double, align 8
|
||||
store double %bp, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%fptosi = fptosi double %loadN to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosi, ptr %allocaN, align 8
|
||||
%loadN = load double, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
@@ -720,7 +730,6 @@ if.merge.86: ; preds = %if.else.85, %if.the
|
||||
%fsubN = fsub double %loadN, %sitofp
|
||||
%fmul = fmul double %fsubN, 1.000000e+06
|
||||
%fptosiN = fptosi double %fmul to i64
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %fptosiN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmp = icmp slt i64 %loadN, 0
|
||||
@@ -735,19 +744,15 @@ if.then.87: ; preds = %if.merge.86
|
||||
if.merge.88: ; preds = %if.then.87, %if.merge.86
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%len = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %len, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%lenN = extractvalue { ptr, i64 } %loadN, 1
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %lenN, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.89, label %if.else.90
|
||||
@@ -760,20 +765,16 @@ if.else.90: ; preds = %if.merge.88
|
||||
|
||||
if.merge.91: ; preds = %if.else.90, %if.then.89
|
||||
%bpN = phi i64 [ 1, %if.then.89 ], [ 0, %if.else.90 ]
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %bpN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%add = add i64 %loadN, %loadN
|
||||
%addN = add i64 %add, 1
|
||||
%addN = add i64 %addN, 6
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
%loadN = load i1, ptr %allocaN, align 1
|
||||
br i1 %loadN, label %if.then.92, label %if.merge.93
|
||||
@@ -809,7 +810,6 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
store i64 %addN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 6, %loadN
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %subN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
@@ -837,6 +837,7 @@ if.merge.93: ; preds = %if.then.92, %if.mer
|
||||
define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %2, ptr %allocaN, align 8
|
||||
@@ -860,7 +861,6 @@ while.hdr.237: ; preds = %if.merge.242, %entr
|
||||
while.body.238: ; preds = %while.hdr.237
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 16
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 10
|
||||
@@ -901,6 +901,13 @@ if.merge.242: ; preds = %if.else.241, %if.th
|
||||
define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%srem = srem i64 %load, 65536
|
||||
@@ -921,11 +928,9 @@ if.merge.59: ; preds = %if.then.58, %entry
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sub = sub i64 %loadN, %loadN
|
||||
%sdiv = sdiv i64 %sub, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdiv, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -942,11 +947,9 @@ if.merge.61: ; preds = %if.then.60, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -963,11 +966,9 @@ if.merge.63: ; preds = %if.then.62, %if.mer
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%subN = sub i64 %loadN, %loadN
|
||||
%sdivN = sdiv i64 %subN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sdivN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%sremN = srem i64 %loadN, 65536
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %sremN, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -980,7 +981,6 @@ if.then.64: ; preds = %if.merge.63
|
||||
br label %if.merge.65
|
||||
|
||||
if.merge.65: ; preds = %if.then.64, %if.merge.63
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] undef, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%igp.ptr = getelementptr i64, ptr %allocaN, i64 0
|
||||
@@ -1002,6 +1002,13 @@ if.merge.65: ; preds = %if.then.64, %if.mer
|
||||
define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -1013,40 +1020,33 @@ if.then.235: ; preds = %entry
|
||||
if.merge.236: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN)
|
||||
%allocaN = alloca [4 x i64], align 8
|
||||
store [4 x i64] %call, ptr %allocaN, align 8
|
||||
%callN = call { ptr, i64 } @cstring(ptr %0, i64 16)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %callN, ptr %allocaN, align 8
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 0
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %ig.val)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp9 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp9, align 8
|
||||
%ig.ptr10 = getelementptr [4 x i64], ptr %ig.tmp9, i64 0, i64 1
|
||||
%ig.val11 = load i64, ptr %ig.ptr10, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %ig.val11)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp14 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp14, align 8
|
||||
%ig.ptr15 = getelementptr [4 x i64], ptr %ig.tmp14, i64 0, i64 2
|
||||
%ig.val16 = load i64, ptr %ig.ptr15, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %ig.val16)
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %allocaN, align 8
|
||||
%ig.tmp19 = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp19, align 8
|
||||
%ig.ptr20 = getelementptr [4 x i64], ptr %ig.tmp19, i64 0, i64 3
|
||||
%ig.val21 = load i64, ptr %ig.ptr20, align 8
|
||||
call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21)
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 0, ptr %allocaN, align 8
|
||||
br label %while.hdr.243
|
||||
|
||||
@@ -1157,6 +1157,13 @@ declare ptr @path_join(ptr, ptr) #0
|
||||
define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { i64, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { i64, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.5, i64 3 }, ptr %allocaN, align 8
|
||||
@@ -1244,7 +1251,6 @@ match.arm.39: ; preds = %entry, %entry, %ent
|
||||
br i1 %tiu.load, label %if.then.53, label %if.else.54
|
||||
|
||||
match.arm.40: ; preds = %entry
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%ua.raw8 = extractvalue { i64, i64 } %loadN, 1
|
||||
%ua.ptr = inttoptr i64 %ua.raw8 to ptr
|
||||
@@ -1264,7 +1270,6 @@ match.arm.41: ; preds = %entry
|
||||
|
||||
match.arm.42: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca double, align 8
|
||||
%sgN = extractvalue { i64, i64 } %loadN, 0
|
||||
%icmp = icmp eq i64 %sgN, 10
|
||||
br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82
|
||||
@@ -1273,7 +1278,6 @@ match.arm.43: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw16 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw16, label %dispatch.default.95 [
|
||||
i64 19, label %dispatch.case.96
|
||||
i64 20, label %dispatch.case.97
|
||||
@@ -1293,7 +1297,6 @@ match.arm.44: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw20 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw20, label %dispatch.default.169 [
|
||||
i64 37, label %dispatch.case.170
|
||||
i64 38, label %dispatch.case.171
|
||||
@@ -1309,7 +1312,6 @@ match.arm.47: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw24 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw24, label %dispatch.default.177 [
|
||||
i64 35, label %dispatch.case.178
|
||||
i64 52, label %dispatch.case.179
|
||||
@@ -1320,7 +1322,6 @@ match.arm.48: ; preds = %entry, %entry
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw28 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw28, label %dispatch.default.197 [
|
||||
i64 36, label %dispatch.case.198
|
||||
i64 50, label %dispatch.case.199
|
||||
@@ -1330,7 +1331,6 @@ match.arm.49: ; preds = %entry, %entry, %ent
|
||||
%loadN = load { i64, i64 }, ptr %allocaN, align 8
|
||||
%ua.raw32 = extractvalue { i64, i64 } %loadN, 1
|
||||
%loadN = load { i64, i64 }, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
switch i64 %ua.raw32, label %dispatch.default.211 [
|
||||
i64 18, label %dispatch.case.212
|
||||
i64 22, label %dispatch.case.213
|
||||
@@ -2404,6 +2404,8 @@ entry:
|
||||
define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.122, i64 15 }, { ptr, i64 } { ptr @str.123, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2468,7 +2470,6 @@ fv.default: ; preds = %if.merge.112
|
||||
|
||||
fv.case: ; preds = %if.merge.112
|
||||
%fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2488,7 +2489,6 @@ fv.case20: ; preds = %if.merge.112
|
||||
|
||||
fv.case24: ; preds = %if.merge.112
|
||||
%fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3
|
||||
%ba.tmp26 = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8
|
||||
%ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64
|
||||
%fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1
|
||||
@@ -2783,6 +2783,7 @@ fv.case17: ; preds = %if.merge.132
|
||||
define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.160, i64 5 }, { ptr, i64 } { ptr @str.161, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -2857,7 +2858,6 @@ fv.case17: ; preds = %if.merge.137
|
||||
|
||||
fv.case20: ; preds = %if.merge.137
|
||||
%fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val22 = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -2950,6 +2950,7 @@ fv.case20: ; preds = %if.merge.142
|
||||
define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.178, i64 17 }, { ptr, i64 } { ptr @str.179, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3014,7 +3015,6 @@ fv.default: ; preds = %if.merge.147
|
||||
|
||||
fv.case: ; preds = %if.merge.147
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3040,6 +3040,7 @@ fv.case23: ; preds = %if.merge.147
|
||||
define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8
|
||||
%call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.188, i64 7 }, { ptr, i64 } { ptr @str.189, i64 1 })
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
@@ -3102,7 +3103,6 @@ fv.default: ; preds = %if.merge.152
|
||||
|
||||
fv.case: ; preds = %if.merge.152
|
||||
%fv.field = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0
|
||||
%ba.tmp = alloca { ptr, ptr, ptr }, align 8
|
||||
store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%fv.val = insertvalue { i64, i64 } { i64 20, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3392,6 +3392,7 @@ if.merge.175: ; preds = %if.then.174, %entry
|
||||
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [4 x i64], align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.237, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3424,7 +3425,6 @@ if.merge.185: ; preds = %if.then.184, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [4 x i64], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [4 x i64], align 8
|
||||
store [4 x i64] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [4 x i64], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load i64, ptr %ig.ptr, align 8
|
||||
@@ -3442,6 +3442,8 @@ if.merge.185: ; preds = %if.then.184, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [1 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [1 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.240, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3474,11 +3476,9 @@ if.merge.190: ; preds = %if.then.189, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [1 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [1 x { i64, i64 }], align 8
|
||||
store [1 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [1 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3495,6 +3495,8 @@ if.merge.190: ; preds = %if.then.189, %while
|
||||
define internal { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca [3 x { i64, i64 }], align 8
|
||||
%ig.tmp = alloca [3 x { i64, i64 }], align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store [3 x { i64, i64 }] %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.243, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3527,11 +3529,9 @@ if.merge.195: ; preds = %if.then.194, %while
|
||||
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
|
||||
%loadN = load [3 x { i64, i64 }], ptr %alloca, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%ig.tmp = alloca [3 x { i64, i64 }], align 8
|
||||
store [3 x { i64, i64 }] %loadN, ptr %ig.tmp, align 8
|
||||
%ig.ptr = getelementptr [3 x { i64, i64 }], ptr %ig.tmp, i64 0, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3548,6 +3548,7 @@ if.merge.195: ; preds = %if.then.194, %while
|
||||
define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.246, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3585,7 +3586,6 @@ if.merge.204: ; preds = %if.then.203, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1
|
||||
@@ -3602,6 +3602,7 @@ if.merge.204: ; preds = %if.then.203, %while
|
||||
define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca { ptr, i64 }, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { ptr, i64 } %1, ptr %alloca, align 8
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } { ptr @str.249, i64 1 }, ptr %allocaN, align 8
|
||||
@@ -3639,7 +3640,6 @@ if.merge.209: ; preds = %if.then.208, %while
|
||||
%ig.data = extractvalue { ptr, i64 } %loadN, 0
|
||||
%ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN
|
||||
%ig.val = load { i64, i64 }, ptr %ig.ptr, align 8
|
||||
%ba.tmp = alloca { i64, i64 }, align 8
|
||||
store { i64, i64 } %ig.val, ptr %ba.tmp, align 8
|
||||
%ba.p2i = ptrtoint ptr %ba.tmp to i64
|
||||
%ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1
|
||||
|
||||
@@ -178,6 +178,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -189,15 +194,11 @@ if.then.14: ; preds = %entry
|
||||
if.merge.15: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.16
|
||||
|
||||
@@ -209,7 +210,6 @@ while.hdr.16: ; preds = %if.merge.20, %if.me
|
||||
while.body.17: ; preds = %while.hdr.16
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
|
||||
@@ -151,6 +151,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -162,15 +167,11 @@ if.then.16: ; preds = %entry
|
||||
if.merge.17: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.18
|
||||
|
||||
@@ -182,7 +183,6 @@ while.hdr.18: ; preds = %if.merge.22, %if.me
|
||||
while.body.19: ; preds = %while.hdr.18
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
|
||||
@@ -149,6 +149,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -160,15 +165,11 @@ if.then.16: ; preds = %entry
|
||||
if.merge.17: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.18
|
||||
|
||||
@@ -180,7 +181,6 @@ while.hdr.18: ; preds = %if.merge.22, %if.me
|
||||
while.body.19: ; preds = %while.hdr.18
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -658,12 +658,12 @@ jni.cont: ; preds = %jni.miss, %entry
|
||||
; Function Attrs: nounwind
|
||||
define i32 @main() #0 {
|
||||
entry:
|
||||
%alloca = alloca i32, align 4
|
||||
%gload = load i1, ptr @g_should_call, align 1
|
||||
br i1 %gload, label %if.then.0, label %if.merge.1
|
||||
|
||||
if.then.0: ; preds = %entry
|
||||
%call = call i32 @read_int(ptr @__sx_default_context, ptr null, ptr null)
|
||||
%alloca = alloca i32, align 4
|
||||
store i32 %call, ptr %alloca, align 4
|
||||
br label %if.merge.1
|
||||
|
||||
|
||||
@@ -149,6 +149,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -160,15 +165,11 @@ if.then.16: ; preds = %entry
|
||||
if.merge.17: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.18
|
||||
|
||||
@@ -180,7 +181,6 @@ while.hdr.18: ; preds = %if.merge.22, %if.me
|
||||
while.body.19: ; preds = %while.hdr.18
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -658,12 +658,12 @@ jni.cont: ; preds = %jni.miss, %entry
|
||||
; Function Attrs: nounwind
|
||||
define i32 @main() #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%gload = load i1, ptr @g_should_call, align 1
|
||||
br i1 %gload, label %if.then.0, label %if.merge.1
|
||||
|
||||
if.then.0: ; preds = %entry
|
||||
%call = call i64 @read_long(ptr @__sx_default_context, ptr null, ptr null)
|
||||
%alloca = alloca i64, align 8
|
||||
store i64 %call, ptr %alloca, align 8
|
||||
br label %if.merge.1
|
||||
|
||||
|
||||
@@ -149,6 +149,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -160,15 +165,11 @@ if.then.16: ; preds = %entry
|
||||
if.merge.17: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.18
|
||||
|
||||
@@ -180,7 +181,6 @@ while.hdr.18: ; preds = %if.merge.22, %if.me
|
||||
while.body.19: ; preds = %while.hdr.18
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -658,12 +658,12 @@ jni.cont: ; preds = %jni.miss, %entry
|
||||
; Function Attrs: nounwind
|
||||
define i32 @main() #0 {
|
||||
entry:
|
||||
%alloca = alloca double, align 8
|
||||
%gload = load i1, ptr @g_should_call, align 1
|
||||
br i1 %gload, label %if.then.0, label %if.merge.1
|
||||
|
||||
if.then.0: ; preds = %entry
|
||||
%call = call double @read_double(ptr @__sx_default_context, ptr null, ptr null)
|
||||
%alloca = alloca double, align 8
|
||||
store double %call, ptr %alloca, align 8
|
||||
br label %if.merge.1
|
||||
|
||||
|
||||
@@ -149,6 +149,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -160,15 +165,11 @@ if.then.16: ; preds = %entry
|
||||
if.merge.17: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.18
|
||||
|
||||
@@ -180,7 +181,6 @@ while.hdr.18: ; preds = %if.merge.22, %if.me
|
||||
while.body.19: ; preds = %while.hdr.18
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -658,12 +658,12 @@ jni.cont: ; preds = %jni.miss, %entry
|
||||
; Function Attrs: nounwind
|
||||
define i32 @main() #0 {
|
||||
entry:
|
||||
%alloca = alloca i1, align 1
|
||||
%gload = load i1, ptr @g_should_call, align 1
|
||||
br i1 %gload, label %if.then.0, label %if.merge.1
|
||||
|
||||
if.then.0: ; preds = %entry
|
||||
%call = call i1 @read_bool(ptr @__sx_default_context, ptr null, ptr null)
|
||||
%alloca = alloca i1, align 1
|
||||
store i1 %call, ptr %alloca, align 1
|
||||
br label %if.merge.1
|
||||
|
||||
|
||||
@@ -149,6 +149,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -160,15 +165,11 @@ if.then.16: ; preds = %entry
|
||||
if.merge.17: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.18
|
||||
|
||||
@@ -180,7 +181,6 @@ while.hdr.18: ; preds = %if.merge.22, %if.me
|
||||
while.body.19: ; preds = %while.hdr.18
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -658,12 +658,12 @@ jni.cont: ; preds = %jni.miss, %entry
|
||||
; Function Attrs: nounwind
|
||||
define i32 @main() #0 {
|
||||
entry:
|
||||
%alloca = alloca ptr, align 8
|
||||
%gload = load i1, ptr @g_should_call, align 1
|
||||
br i1 %gload, label %if.then.0, label %if.merge.1
|
||||
|
||||
if.then.0: ; preds = %entry
|
||||
%call = call ptr @get_window(ptr @__sx_default_context, ptr null, ptr null)
|
||||
%alloca = alloca ptr, align 8
|
||||
store ptr %call, ptr %alloca, align 8
|
||||
br label %if.merge.1
|
||||
|
||||
|
||||
@@ -149,6 +149,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -160,15 +165,11 @@ if.then.16: ; preds = %entry
|
||||
if.merge.17: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.18
|
||||
|
||||
@@ -180,7 +181,6 @@ while.hdr.18: ; preds = %if.merge.22, %if.me
|
||||
while.body.19: ; preds = %while.hdr.18
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -655,12 +655,12 @@ jni.cont: ; preds = %jni.miss, %entry
|
||||
; Function Attrs: nounwind
|
||||
define i32 @main() #0 {
|
||||
entry:
|
||||
%alloca = alloca i32, align 4
|
||||
%gload = load i1, ptr @g_should_call, align 1
|
||||
br i1 %gload, label %if.then.0, label %if.merge.1
|
||||
|
||||
if.then.0: ; preds = %entry
|
||||
%call = call i32 @call_static_max(ptr @__sx_default_context, ptr null, ptr null)
|
||||
%alloca = alloca i32, align 4
|
||||
store i32 %call, ptr %alloca, align 4
|
||||
br label %if.merge.1
|
||||
|
||||
|
||||
@@ -149,6 +149,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -160,15 +165,11 @@ if.then.16: ; preds = %entry
|
||||
if.merge.17: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.18
|
||||
|
||||
@@ -180,7 +181,6 @@ while.hdr.18: ; preds = %if.merge.22, %if.me
|
||||
while.body.19: ; preds = %while.hdr.18
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
@@ -620,6 +620,7 @@ if.merge.38: ; preds = %if.then.37, %while.
|
||||
define internal void @unused_jni(ptr %0, ptr %1, ptr %2) #0 {
|
||||
entry:
|
||||
%alloca = alloca ptr, align 8
|
||||
%allocaN = alloca ptr, align 8
|
||||
store ptr %1, ptr %alloca, align 8
|
||||
%allocaN = alloca ptr, align 8
|
||||
store ptr %2, ptr %allocaN, align 8
|
||||
@@ -651,7 +652,6 @@ jni.cont: ; preds = %jni.miss, %entry
|
||||
%6 = getelementptr inbounds ptr, ptr %jni.ifs, i32 34
|
||||
%jni.callfn = load ptr, ptr %6, align 8
|
||||
%jni.ret = call ptr %jni.callfn(ptr %load, ptr %loadN, ptr %jni.mid)
|
||||
%allocaN = alloca ptr, align 8
|
||||
store ptr %jni.ret, ptr %allocaN, align 8
|
||||
call void @sx_jni_env_tl_set(ptr %call)
|
||||
ret void
|
||||
|
||||
@@ -149,6 +149,11 @@ entry:
|
||||
define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 {
|
||||
entry:
|
||||
%alloca = alloca i64, align 8
|
||||
%allocaN = alloca i1, align 1
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %1, ptr %alloca, align 8
|
||||
%load = load i64, ptr %alloca, align 8
|
||||
%icmp = icmp eq i64 %load, 0
|
||||
@@ -160,15 +165,11 @@ if.then.16: ; preds = %entry
|
||||
if.merge.17: ; preds = %entry
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
%allocaN = alloca i1, align 1
|
||||
store i1 %icmpN, ptr %allocaN, align 1
|
||||
%call = call { ptr, i64 } @cstring(ptr %0, i64 20)
|
||||
%allocaN = alloca { ptr, i64 }, align 8
|
||||
store { ptr, i64 } %call, ptr %allocaN, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 19, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %alloca, align 8
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %loadN, ptr %allocaN, align 8
|
||||
br label %while.hdr.18
|
||||
|
||||
@@ -180,7 +181,6 @@ while.hdr.18: ; preds = %if.merge.22, %if.me
|
||||
while.body.19: ; preds = %while.hdr.18
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%srem = srem i64 %loadN, 10
|
||||
%allocaN = alloca i64, align 8
|
||||
store i64 %srem, ptr %allocaN, align 8
|
||||
%loadN = load i64, ptr %allocaN, align 8
|
||||
%icmpN = icmp slt i64 %loadN, 0
|
||||
|
||||
Reference in New Issue
Block a user