@sml_check_flag=external local_unnamed_addr global i32
@a=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(void(i32)*@_SMLLN10JSONSource10openStreamE_35 to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN10JSONSource10openStreamE_60 to void(...)*),i32 -2147483647}>,align 8
@b=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLFN10JSONSource10openStreamE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN10JSONSource10openStreamE_61 to void(...)*),i32 -2147483647}>,align 8
@c=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLFN10JSONSource8openFileE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN10JSONSource8openFileE_63 to void(...)*),i32 -2147483647}>,align 8
@d=private unnamed_addr constant<{[4x i8],i32,[1x i8]}><{[4x i8]zeroinitializer,i32 -2147483647,[1x i8]zeroinitializer}>,align 8
@e=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(void(i32)*@_SMLLN10JSONSource10openStringE_44 to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN10JSONSource10openStringE_65 to void(...)*),i32 -2147483647}>,align 8
@f=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLFN10JSONSource10openStringE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN10JSONSource10openStringE_66 to void(...)*),i32 -2147483647}>,align 8
@g=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(void(i8*)*@_SMLFN10JSONSource5closeE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN10JSONSource5closeE_67 to void(...)*),i32 -2147483647}>,align 8
@h=private unnamed_addr constant<{[4x i8],i32,[2x i8]}><{[4x i8]zeroinitializer,i32 -2147483646,[2x i8]c"'\00"}>,align 8
@i=private unnamed_addr constant<{[4x i8],i32,i8*,i8*,i32}><{[4x i8]zeroinitializer,i32 -805306352,i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,[2x i8]}>,<{[4x i8],i32,[2x i8]}>*@h,i32 0,i32 0,i32 0),i32 8),i8*null,i32 3}>,align 8
@j=private unnamed_addr constant<{[4x i8],i32,[10x i8]}><{[4x i8]zeroinitializer,i32 -2147483638,[10x i8]c", found '\00"}>,align 8
@k=private unnamed_addr constant<{[4x i8],i32,[3x i8]}><{[4x i8]zeroinitializer,i32 -2147483645,[3x i8]c": \00"}>,align 8
@l=private unnamed_addr constant<{[4x i8],i32,[7x i8]}><{[4x i8]zeroinitializer,i32 -2147483641,[7x i8]c"error \00"}>,align 8
@m=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLFN10JSONSource8errorMsgE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN10JSONSource8errorMsgE_68 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN10JSONSource10openStreamE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@b,i64 0,i32 2)to i8*)
@_SMLZN10JSONSource8openFileE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@c,i64 0,i32 2)to i8*)
@_SMLZN10JSONSource10openStringE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@f,i64 0,i32 2)to i8*)
@_SMLZN10JSONSource5closeE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@g,i64 0,i32 2)to i8*)
@_SMLZN10JSONSource8errorMsgE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@m,i64 0,i32 2)to i8*)
@_SML_ftab14a451e690d4b107_json_source=external global i8
@n=private unnamed_addr global i8 0
declare void@llvm.gcroot(i8**,i8*)#0
declare i8*@sml_alloc(i32 inreg)local_unnamed_addr#0
declare void@sml_check(i32 inreg)local_unnamed_addr
declare void@sml_gcroot(i8*,void()*,i8*,i8*)local_unnamed_addr#0
declare void@sml_write(i8*inreg,i8**inreg,i8*inreg)local_unnamed_addr#0
declare i8*@_SMLFN10CharVector6concatE(i8*inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN10JSONTokens8toStringE(i8*inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN14AntlrStreamPos11mkSourcemapE(i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN14AntlrStreamPos12spanToStringE(i8*inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN6TextIO6openInE(i8*inreg)local_unnamed_addr#1 gc"smlsharp"
declare void@_SMLFN6TextIO7closeInE(i8*inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN9JSONLexer17streamifyInstreamE(i8*inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN9JSONLexer9streamifyE(i8*inreg)local_unnamed_addr#1 gc"smlsharp"
declare void@_SML_mainadbb5309e852b68c_CharVector()local_unnamed_addr#1 gc"smlsharp"
declare void@_SML_main3446b7b079949ccf_text_io()local_unnamed_addr#1 gc"smlsharp"
declare void@_SML_main5ce8eb658c69eaff_antlr_stream_pos()local_unnamed_addr#1 gc"smlsharp"
declare void@_SML_main1b21066d594226d8_json_tokens()local_unnamed_addr#1 gc"smlsharp"
declare void@_SML_maina7af6f5db7f24fae_json_lex()local_unnamed_addr#1 gc"smlsharp"
declare void@_SML_loadadbb5309e852b68c_CharVector(i8*)local_unnamed_addr
declare void@_SML_load3446b7b079949ccf_text_io(i8*)local_unnamed_addr
declare void@_SML_load5ce8eb658c69eaff_antlr_stream_pos(i8*)local_unnamed_addr
declare void@_SML_load1b21066d594226d8_json_tokens(i8*)local_unnamed_addr
declare void@_SML_loada7af6f5db7f24fae_json_lex(i8*)local_unnamed_addr
define private void@_SML_tabb14a451e690d4b107_json_source()#2{
unreachable
}
define void@_SML_load14a451e690d4b107_json_source(i8*%a)local_unnamed_addr#0{
%b=load i8,i8*@n,align 1
%c=icmp eq i8%b,0
br i1%c,label%e,label%d
d:
ret void
e:
store i8 1,i8*@n,align 1
tail call void@_SML_loadadbb5309e852b68c_CharVector(i8*%a)#0
tail call void@_SML_load3446b7b079949ccf_text_io(i8*%a)#0
tail call void@_SML_load5ce8eb658c69eaff_antlr_stream_pos(i8*%a)#0
tail call void@_SML_load1b21066d594226d8_json_tokens(i8*%a)#0
tail call void@_SML_loada7af6f5db7f24fae_json_lex(i8*%a)#0
tail call void@sml_gcroot(i8*%a,void()*@_SML_tabb14a451e690d4b107_json_source,i8*@_SML_ftab14a451e690d4b107_json_source,i8*null)#0
ret void
}
define void@_SML_main14a451e690d4b107_json_source()local_unnamed_addr#1 gc"smlsharp"{
%a=load i8,i8*@n,align 1
%b=and i8%a,2
%c=icmp eq i8%b,0
br i1%c,label%e,label%d
d:
ret void
e:
store i8 3,i8*@n,align 1
tail call void@_SML_mainadbb5309e852b68c_CharVector()#1
tail call void@_SML_main3446b7b079949ccf_text_io()#1
tail call void@_SML_main5ce8eb658c69eaff_antlr_stream_pos()#1
tail call void@_SML_main1b21066d594226d8_json_tokens()#1
tail call void@_SML_maina7af6f5db7f24fae_json_lex()#1
br label%d
}
define internal fastcc void@_SMLLN10JSONSource10openStreamE_35(i32 inreg%a)#3 gc"smlsharp"{
ret void
}
define fastcc i8*@_SMLFN10JSONSource10openStreamE(i8*inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
%d=alloca i8*,align 8
%e=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
call void@llvm.gcroot(i8**%e,i8*null)#0
store i8*%a,i8**%b,align 8
%f=load atomic i32,i32*@sml_check_flag unordered,align 4
%g=icmp eq i32%f,0
br i1%g,label%i,label%h
h:
call void@sml_check(i32 inreg%f)
br label%i
i:
%j=call i8*@sml_alloc(i32 inreg 4)#0
%k=bitcast i8*%j to i32*
%l=getelementptr inbounds i8,i8*%j,i64 -4
%m=bitcast i8*%l to i32*
store i32 536870916,i32*%m,align 4
store i8*%j,i8**%d,align 8
store i32 0,i32*%k,align 4
%n=call fastcc i8*@_SMLFN14AntlrStreamPos11mkSourcemapE(i32 inreg 0)
store i8*%n,i8**%c,align 8
%o=call i8*@sml_alloc(i32 inreg 8)#0
%p=getelementptr inbounds i8,i8*%o,i64 -4
%q=bitcast i8*%p to i32*
store i32 805306376,i32*%q,align 4
store i8*%o,i8**%e,align 8
%r=bitcast i8*%o to i64*
store i64 0,i64*%r,align 1
%s=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%t=call fastcc i8*@_SMLFN9JSONLexer17streamifyInstreamE(i8*inreg%s)
%u=load i8*,i8**%e,align 8
%v=bitcast i8*%u to i8**
call void@sml_write(i8*inreg%u,i8**inreg%v,i8*inreg%t)#0
%w=call i8*@sml_alloc(i32 inreg 36)#0
%x=getelementptr inbounds i8,i8*%w,i64 -4
%y=bitcast i8*%x to i32*
store i32 1342177312,i32*%y,align 4
%z=bitcast i8*%w to i8**
store i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@a,i64 0,i32 2)to i8*),i8**%z,align 8
%A=load i8*,i8**%d,align 8
%B=getelementptr inbounds i8,i8*%w,i64 8
%C=bitcast i8*%B to i8**
store i8*%A,i8**%C,align 8
%D=load i8*,i8**%c,align 8
%E=getelementptr inbounds i8,i8*%w,i64 16
%F=bitcast i8*%E to i8**
store i8*%D,i8**%F,align 8
%G=load i8*,i8**%e,align 8
%H=getelementptr inbounds i8,i8*%w,i64 24
%I=bitcast i8*%H to i8**
store i8*%G,i8**%I,align 8
%J=getelementptr inbounds i8,i8*%w,i64 32
%K=bitcast i8*%J to i32*
store i32 15,i32*%K,align 4
ret i8*%w
}
define internal fastcc void@_SMLLN10JSONSource8openFileE_39(i8*inreg%a,i32 inreg%b)#1 gc"smlsharp"{
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
store i8*%a,i8**%c,align 8
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%f,label%h
f:
%g=bitcast i8*%a to i8**
br label%k
h:
call void@sml_check(i32 inreg%d)
%i=bitcast i8**%c to i8***
%j=load i8**,i8***%i,align 8
br label%k
k:
%l=phi i8**[%j,%h],[%g,%f]
%m=load i8*,i8**%l,align 8
tail call fastcc void@_SMLFN6TextIO7closeInE(i8*inreg%m)
ret void
}
define fastcc i8*@_SMLFN10JSONSource8openFileE(i8*inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
%d=alloca i8*,align 8
%e=alloca i8*,align 8
%f=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
call void@llvm.gcroot(i8**%e,i8*null)#0
call void@llvm.gcroot(i8**%f,i8*null)#0
store i8*%a,i8**%b,align 8
%g=load atomic i32,i32*@sml_check_flag unordered,align 4
%h=icmp eq i32%g,0
br i1%h,label%j,label%i
i:
call void@sml_check(i32 inreg%g)
br label%j
j:
%k=call i8*@sml_alloc(i32 inreg 4)#0
%l=bitcast i8*%k to i32*
%m=getelementptr inbounds i8,i8*%k,i64 -4
%n=bitcast i8*%m to i32*
store i32 536870916,i32*%n,align 4
store i8*%k,i8**%d,align 8
store i32 0,i32*%l,align 4
%o=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%p=call fastcc i8*@_SMLFN6TextIO6openInE(i8*inreg%o)
store i8*%p,i8**%b,align 8
%q=call fastcc i8*@_SMLFN14AntlrStreamPos11mkSourcemapE(i32 inreg 0)
store i8*%q,i8**%c,align 8
%r=call i8*@sml_alloc(i32 inreg 8)#0
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
store i32 805306376,i32*%t,align 4
store i8*%r,i8**%e,align 8
%u=bitcast i8*%r to i64*
store i64 0,i64*%u,align 1
%v=load i8*,i8**%b,align 8
%w=call fastcc i8*@_SMLFN9JSONLexer17streamifyInstreamE(i8*inreg%v)
%x=load i8*,i8**%e,align 8
%y=bitcast i8*%x to i8**
call void@sml_write(i8*inreg%x,i8**inreg%y,i8*inreg%w)#0
%z=call i8*@sml_alloc(i32 inreg 12)#0
%A=getelementptr inbounds i8,i8*%z,i64 -4
%B=bitcast i8*%A to i32*
store i32 1342177288,i32*%B,align 4
store i8*%z,i8**%f,align 8
%C=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%D=bitcast i8*%z to i8**
store i8*%C,i8**%D,align 8
%E=getelementptr inbounds i8,i8*%z,i64 8
%F=bitcast i8*%E to i32*
store i32 1,i32*%F,align 4
%G=call i8*@sml_alloc(i32 inreg 28)#0
%H=getelementptr inbounds i8,i8*%G,i64 -4
%I=bitcast i8*%H to i32*
store i32 1342177304,i32*%I,align 4
store i8*%G,i8**%b,align 8
%J=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%K=bitcast i8*%G to i8**
store i8*%J,i8**%K,align 8
%L=getelementptr inbounds i8,i8*%G,i64 8
%M=bitcast i8*%L to void(...)**
store void(...)*bitcast(void(i8*,i32)*@_SMLLN10JSONSource8openFileE_39 to void(...)*),void(...)**%M,align 8
%N=getelementptr inbounds i8,i8*%G,i64 16
%O=bitcast i8*%N to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN10JSONSource8openFileE_62 to void(...)*),void(...)**%O,align 8
%P=getelementptr inbounds i8,i8*%G,i64 24
%Q=bitcast i8*%P to i32*
store i32 -2147483647,i32*%Q,align 4
%R=call i8*@sml_alloc(i32 inreg 36)#0
%S=getelementptr inbounds i8,i8*%R,i64 -4
%T=bitcast i8*%S to i32*
store i32 1342177312,i32*%T,align 4
%U=load i8*,i8**%b,align 8
%V=bitcast i8*%R to i8**
store i8*%U,i8**%V,align 8
%W=load i8*,i8**%d,align 8
%X=getelementptr inbounds i8,i8*%R,i64 8
%Y=bitcast i8*%X to i8**
store i8*%W,i8**%Y,align 8
%Z=load i8*,i8**%c,align 8
%aa=getelementptr inbounds i8,i8*%R,i64 16
%ab=bitcast i8*%aa to i8**
store i8*%Z,i8**%ab,align 8
%ac=load i8*,i8**%e,align 8
%ad=getelementptr inbounds i8,i8*%R,i64 24
%ae=bitcast i8*%ad to i8**
store i8*%ac,i8**%ae,align 8
%af=getelementptr inbounds i8,i8*%R,i64 32
%ag=bitcast i8*%af to i32*
store i32 15,i32*%ag,align 4
ret i8*%R
}
define internal fastcc i8*@_SMLLN10JSONSource10openStringE_43(i8*inreg%a,i32 inreg%b)#3 gc"smlsharp"{
%c=bitcast i8*%a to i8**
%d=load i8*,i8**%c,align 8
%e=bitcast i8*%d to i8**
%f=load i8*,i8**%e,align 8
tail call void@sml_write(i8*inreg%d,i8**inreg%e,i8*inreg getelementptr inbounds(<{[4x i8],i32,[1x i8]}>,<{[4x i8],i32,[1x i8]}>*@d,i64 0,i32 2,i64 0))#0
ret i8*%f
}
define internal fastcc void@_SMLLN10JSONSource10openStringE_44(i32 inreg%a)#3 gc"smlsharp"{
ret void
}
define fastcc i8*@_SMLFN10JSONSource10openStringE(i8*inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
%d=alloca i8*,align 8
%e=alloca i8*,align 8
%f=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
call void@llvm.gcroot(i8**%e,i8*null)#0
call void@llvm.gcroot(i8**%f,i8*null)#0
store i8*%a,i8**%b,align 8
%g=load atomic i32,i32*@sml_check_flag unordered,align 4
%h=icmp eq i32%g,0
br i1%h,label%j,label%i
i:
call void@sml_check(i32 inreg%g)
br label%j
j:
%k=call i8*@sml_alloc(i32 inreg 4)#0
%l=bitcast i8*%k to i32*
%m=getelementptr inbounds i8,i8*%k,i64 -4
%n=bitcast i8*%m to i32*
store i32 536870916,i32*%n,align 4
store i8*%k,i8**%c,align 8
store i32 0,i32*%l,align 4
%o=call i8*@sml_alloc(i32 inreg 8)#0
%p=getelementptr inbounds i8,i8*%o,i64 -4
%q=bitcast i8*%p to i32*
store i32 805306376,i32*%q,align 4
store i8*%o,i8**%d,align 8
%r=bitcast i8*%o to i64*
store i64 0,i64*%r,align 1
%s=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%t=bitcast i8*%o to i8**
call void@sml_write(i8*inreg%o,i8**inreg%t,i8*inreg%s)#0
%u=call fastcc i8*@_SMLFN14AntlrStreamPos11mkSourcemapE(i32 inreg 0)
store i8*%u,i8**%b,align 8
%v=call i8*@sml_alloc(i32 inreg 8)#0
%w=getelementptr inbounds i8,i8*%v,i64 -4
%x=bitcast i8*%w to i32*
store i32 805306376,i32*%x,align 4
store i8*%v,i8**%e,align 8
%y=bitcast i8*%v to i64*
store i64 0,i64*%y,align 1
%z=call i8*@sml_alloc(i32 inreg 12)#0
%A=getelementptr inbounds i8,i8*%z,i64 -4
%B=bitcast i8*%A to i32*
store i32 1342177288,i32*%B,align 4
store i8*%z,i8**%f,align 8
%C=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%D=bitcast i8*%z to i8**
store i8*%C,i8**%D,align 8
%E=getelementptr inbounds i8,i8*%z,i64 8
%F=bitcast i8*%E to i32*
store i32 1,i32*%F,align 4
%G=call i8*@sml_alloc(i32 inreg 28)#0
%H=getelementptr inbounds i8,i8*%G,i64 -4
%I=bitcast i8*%H to i32*
store i32 1342177304,i32*%I,align 4
%J=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%K=bitcast i8*%G to i8**
store i8*%J,i8**%K,align 8
%L=getelementptr inbounds i8,i8*%G,i64 8
%M=bitcast i8*%L to void(...)**
store void(...)*bitcast(i8*(i8*,i32)*@_SMLLN10JSONSource10openStringE_43 to void(...)*),void(...)**%M,align 8
%N=getelementptr inbounds i8,i8*%G,i64 16
%O=bitcast i8*%N to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN10JSONSource10openStringE_64 to void(...)*),void(...)**%O,align 8
%P=getelementptr inbounds i8,i8*%G,i64 24
%Q=bitcast i8*%P to i32*
store i32 -2147483647,i32*%Q,align 4
%R=call fastcc i8*@_SMLFN9JSONLexer9streamifyE(i8*inreg%G)
%S=load i8*,i8**%e,align 8
%T=bitcast i8*%S to i8**
call void@sml_write(i8*inreg%S,i8**inreg%T,i8*inreg%R)#0
%U=call i8*@sml_alloc(i32 inreg 36)#0
%V=getelementptr inbounds i8,i8*%U,i64 -4
%W=bitcast i8*%V to i32*
store i32 1342177312,i32*%W,align 4
%X=bitcast i8*%U to i8**
store i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@e,i64 0,i32 2)to i8*),i8**%X,align 8
%Y=load i8*,i8**%c,align 8
%Z=getelementptr inbounds i8,i8*%U,i64 8
%aa=bitcast i8*%Z to i8**
store i8*%Y,i8**%aa,align 8
%ab=load i8*,i8**%b,align 8
%ac=getelementptr inbounds i8,i8*%U,i64 16
%ad=bitcast i8*%ac to i8**
store i8*%ab,i8**%ad,align 8
%ae=load i8*,i8**%e,align 8
%af=getelementptr inbounds i8,i8*%U,i64 24
%ag=bitcast i8*%af to i8**
store i8*%ae,i8**%ag,align 8
%ah=getelementptr inbounds i8,i8*%U,i64 32
%ai=bitcast i8*%ah to i32*
store i32 15,i32*%ai,align 4
ret i8*%U
}
define fastcc void@_SMLFN10JSONSource5closeE(i8*inreg%a)#1 gc"smlsharp"{
i:
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
store i8*%a,i8**%b,align 8
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=getelementptr inbounds i8,i8*%h,i64 8
%k=bitcast i8*%j to i32**
%l=load i32*,i32**%k,align 8
%m=load i32,i32*%l,align 4
%n=icmp eq i32%m,0
br i1%n,label%p,label%o
o:
ret void
p:
store i32 1,i32*%l,align 4
%q=bitcast i8*%h to i8**
%r=load i8*,i8**%q,align 8
%s=getelementptr inbounds i8,i8*%r,i64 16
%t=bitcast i8*%s to i8*(i8*,i8*)**
%u=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%t,align 8
%v=bitcast i8*%r to i8**
%w=load i8*,i8**%v,align 8
store i8*%w,i8**%b,align 8
%x=call i8*@sml_alloc(i32 inreg 4)#0
%y=bitcast i8*%x to i32*
%z=getelementptr inbounds i8,i8*%x,i64 -4
%A=bitcast i8*%z to i32*
store i32 4,i32*%A,align 4
store i32 0,i32*%y,align 4
%B=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%C=call fastcc i8*%u(i8*inreg%B,i8*inreg%x)
ret void
}
define internal fastcc i8*@_SMLLN10JSONSource8errorMsgE_57(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
%e=alloca i8*,align 8
%f=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
call void@llvm.gcroot(i8**%e,i8*null)#0
call void@llvm.gcroot(i8**%f,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%g=load atomic i32,i32*@sml_check_flag unordered,align 4
%h=icmp eq i32%g,0
br i1%h,label%i,label%k
i:
%j=bitcast i8*%a to i8**
br label%o
k:
call void@sml_check(i32 inreg%g)
%l=load i8*,i8**%c,align 8
%m=bitcast i8**%d to i8***
%n=load i8**,i8***%m,align 8
br label%o
o:
%p=phi i8**[%n,%k],[%j,%i]
%q=phi i8*[%l,%k],[%b,%i]
%r=load i8*,i8**%p,align 8
%s=getelementptr inbounds i8,i8*%q,i64 8
%t=bitcast i8*%s to i8**
%u=load i8*,i8**%t,align 8
store i8*%u,i8**%e,align 8
%v=getelementptr inbounds i8,i8*%q,i64 16
%w=bitcast i8*%v to i8**
%x=load i8*,i8**%w,align 8
%y=bitcast i8*%x to i32*
%z=load i32,i32*%y,align 4
%A=icmp eq i32%z,3
br i1%A,label%aZ,label%B
B:
%C=getelementptr inbounds i8,i8*%r,i64 16
%D=bitcast i8*%C to i8**
%E=load i8*,i8**%D,align 8
%F=call fastcc i8*@_SMLFN14AntlrStreamPos12spanToStringE(i8*inreg%E)
%G=getelementptr inbounds i8,i8*%F,i64 16
%H=bitcast i8*%G to i8*(i8*,i8*)**
%I=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%H,align 8
%J=bitcast i8*%F to i8**
%K=load i8*,i8**%J,align 8
%L=bitcast i8**%c to i8***
%M=load i8**,i8***%L,align 8
%N=load i8*,i8**%M,align 8
%O=call fastcc i8*%I(i8*inreg%K,i8*inreg%N)
store i8*%O,i8**%d,align 8
%P=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Q=getelementptr inbounds i8,i8*%P,i64 16
%R=bitcast i8*%Q to i8**
%S=load i8*,i8**%R,align 8
%T=call fastcc i8*@_SMLFN10JSONTokens8toStringE(i8*inreg%S)
store i8*%T,i8**%c,align 8
%U=call i8*@sml_alloc(i32 inreg 20)#0
%V=getelementptr inbounds i8,i8*%U,i64 -4
%W=bitcast i8*%V to i32*
store i32 1342177296,i32*%W,align 4
store i8*%U,i8**%f,align 8
%X=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Y=bitcast i8*%U to i8**
store i8*%X,i8**%Y,align 8
%Z=getelementptr inbounds i8,i8*%U,i64 8
%aa=bitcast i8*%Z to i8**
store i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,i8*,i32}>,<{[4x i8],i32,i8*,i8*,i32}>*@i,i64 0,i32 2)to i8*),i8**%aa,align 8
%ab=getelementptr inbounds i8,i8*%U,i64 16
%ac=bitcast i8*%ab to i32*
store i32 3,i32*%ac,align 4
%ad=call i8*@sml_alloc(i32 inreg 20)#0
%ae=getelementptr inbounds i8,i8*%ad,i64 -4
%af=bitcast i8*%ae to i32*
store i32 1342177296,i32*%af,align 4
store i8*%ad,i8**%c,align 8
%ag=bitcast i8*%ad to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[10x i8]}>,<{[4x i8],i32,[10x i8]}>*@j,i64 0,i32 2,i64 0),i8**%ag,align 8
%ah=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%ai=getelementptr inbounds i8,i8*%ad,i64 8
%aj=bitcast i8*%ai to i8**
store i8*%ah,i8**%aj,align 8
%ak=getelementptr inbounds i8,i8*%ad,i64 16
%al=bitcast i8*%ak to i32*
store i32 3,i32*%al,align 4
%am=call i8*@sml_alloc(i32 inreg 20)#0
%an=getelementptr inbounds i8,i8*%am,i64 -4
%ao=bitcast i8*%an to i32*
store i32 1342177296,i32*%ao,align 4
store i8*%am,i8**%f,align 8
%ap=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aq=bitcast i8*%am to i8**
store i8*%ap,i8**%aq,align 8
%ar=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%as=getelementptr inbounds i8,i8*%am,i64 8
%at=bitcast i8*%as to i8**
store i8*%ar,i8**%at,align 8
%au=getelementptr inbounds i8,i8*%am,i64 16
%av=bitcast i8*%au to i32*
store i32 3,i32*%av,align 4
%aw=call i8*@sml_alloc(i32 inreg 20)#0
%ax=getelementptr inbounds i8,i8*%aw,i64 -4
%ay=bitcast i8*%ax to i32*
store i32 1342177296,i32*%ay,align 4
store i8*%aw,i8**%c,align 8
%az=bitcast i8*%aw to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[3x i8]}>,<{[4x i8],i32,[3x i8]}>*@k,i64 0,i32 2,i64 0),i8**%az,align 8
%aA=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%aB=getelementptr inbounds i8,i8*%aw,i64 8
%aC=bitcast i8*%aB to i8**
store i8*%aA,i8**%aC,align 8
%aD=getelementptr inbounds i8,i8*%aw,i64 16
%aE=bitcast i8*%aD to i32*
store i32 3,i32*%aE,align 4
%aF=call i8*@sml_alloc(i32 inreg 20)#0
%aG=getelementptr inbounds i8,i8*%aF,i64 -4
%aH=bitcast i8*%aG to i32*
store i32 1342177296,i32*%aH,align 4
store i8*%aF,i8**%e,align 8
%aI=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aJ=bitcast i8*%aF to i8**
store i8*%aI,i8**%aJ,align 8
%aK=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aL=getelementptr inbounds i8,i8*%aF,i64 8
%aM=bitcast i8*%aL to i8**
store i8*%aK,i8**%aM,align 8
%aN=getelementptr inbounds i8,i8*%aF,i64 16
%aO=bitcast i8*%aN to i32*
store i32 3,i32*%aO,align 4
%aP=call i8*@sml_alloc(i32 inreg 20)#0
%aQ=getelementptr inbounds i8,i8*%aP,i64 -4
%aR=bitcast i8*%aQ to i32*
store i32 1342177296,i32*%aR,align 4
%aS=bitcast i8*%aP to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[7x i8]}>,<{[4x i8],i32,[7x i8]}>*@l,i64 0,i32 2,i64 0),i8**%aS,align 8
%aT=load i8*,i8**%e,align 8
%aU=getelementptr inbounds i8,i8*%aP,i64 8
%aV=bitcast i8*%aU to i8**
store i8*%aT,i8**%aV,align 8
%aW=getelementptr inbounds i8,i8*%aP,i64 16
%aX=bitcast i8*%aW to i32*
store i32 3,i32*%aX,align 4
%aY=tail call fastcc i8*@_SMLFN10CharVector6concatE(i8*inreg%aP)
ret i8*%aY
aZ:
store i8*null,i8**%e,align 8
%a0=getelementptr inbounds i8,i8*%x,i64 8
%a1=bitcast i8*%a0 to i8**
%a2=load i8*,i8**%a1,align 8
store i8*%a2,i8**%d,align 8
%a3=getelementptr inbounds i8,i8*%r,i64 16
%a4=bitcast i8*%a3 to i8**
%a5=load i8*,i8**%a4,align 8
%a6=call fastcc i8*@_SMLFN14AntlrStreamPos12spanToStringE(i8*inreg%a5)
%a7=getelementptr inbounds i8,i8*%a6,i64 16
%a8=bitcast i8*%a7 to i8*(i8*,i8*)**
%a9=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%a8,align 8
%ba=bitcast i8*%a6 to i8**
%bb=load i8*,i8**%ba,align 8
%bc=bitcast i8**%c to i8***
%bd=load i8**,i8***%bc,align 8
store i8*null,i8**%c,align 8
%be=load i8*,i8**%bd,align 8
%bf=call fastcc i8*%a9(i8*inreg%bb,i8*inreg%be)
store i8*%bf,i8**%c,align 8
%bg=call i8*@sml_alloc(i32 inreg 20)#0
%bh=getelementptr inbounds i8,i8*%bg,i64 -4
%bi=bitcast i8*%bh to i32*
store i32 1342177296,i32*%bi,align 4
store i8*%bg,i8**%e,align 8
%bj=bitcast i8*%bg to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[3x i8]}>,<{[4x i8],i32,[3x i8]}>*@k,i64 0,i32 2,i64 0),i8**%bj,align 8
%bk=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bl=getelementptr inbounds i8,i8*%bg,i64 8
%bm=bitcast i8*%bl to i8**
store i8*%bk,i8**%bm,align 8
%bn=getelementptr inbounds i8,i8*%bg,i64 16
%bo=bitcast i8*%bn to i32*
store i32 3,i32*%bo,align 4
%bp=call i8*@sml_alloc(i32 inreg 20)#0
%bq=getelementptr inbounds i8,i8*%bp,i64 -4
%br=bitcast i8*%bq to i32*
store i32 1342177296,i32*%br,align 4
store i8*%bp,i8**%d,align 8
%bs=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bt=bitcast i8*%bp to i8**
store i8*%bs,i8**%bt,align 8
%bu=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%bv=getelementptr inbounds i8,i8*%bp,i64 8
%bw=bitcast i8*%bv to i8**
store i8*%bu,i8**%bw,align 8
%bx=getelementptr inbounds i8,i8*%bp,i64 16
%by=bitcast i8*%bx to i32*
store i32 3,i32*%by,align 4
%bz=call i8*@sml_alloc(i32 inreg 20)#0
%bA=getelementptr inbounds i8,i8*%bz,i64 -4
%bB=bitcast i8*%bA to i32*
store i32 1342177296,i32*%bB,align 4
%bC=bitcast i8*%bz to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[7x i8]}>,<{[4x i8],i32,[7x i8]}>*@l,i64 0,i32 2,i64 0),i8**%bC,align 8
%bD=load i8*,i8**%d,align 8
%bE=getelementptr inbounds i8,i8*%bz,i64 8
%bF=bitcast i8*%bE to i8**
store i8*%bD,i8**%bF,align 8
%bG=getelementptr inbounds i8,i8*%bz,i64 16
%bH=bitcast i8*%bG to i32*
store i32 3,i32*%bH,align 4
%bI=tail call fastcc i8*@_SMLFN10CharVector6concatE(i8*inreg%bz)
ret i8*%bI
}
define fastcc i8*@_SMLFN10JSONSource8errorMsgE(i8*inreg%a)#3 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
store i8*%a,i8**%b,align 8
%d=call i8*@sml_alloc(i32 inreg 12)#0
%e=getelementptr inbounds i8,i8*%d,i64 -4
%f=bitcast i8*%e to i32*
store i32 1342177288,i32*%f,align 4
store i8*%d,i8**%c,align 8
%g=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%h=bitcast i8*%d to i8**
store i8*%g,i8**%h,align 8
%i=getelementptr inbounds i8,i8*%d,i64 8
%j=bitcast i8*%i to i32*
store i32 1,i32*%j,align 4
%k=call i8*@sml_alloc(i32 inreg 28)#0
%l=getelementptr inbounds i8,i8*%k,i64 -4
%m=bitcast i8*%l to i32*
store i32 1342177304,i32*%m,align 4
%n=load i8*,i8**%c,align 8
%o=bitcast i8*%k to i8**
store i8*%n,i8**%o,align 8
%p=getelementptr inbounds i8,i8*%k,i64 8
%q=bitcast i8*%p to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN10JSONSource8errorMsgE_57 to void(...)*),void(...)**%q,align 8
%r=getelementptr inbounds i8,i8*%k,i64 16
%s=bitcast i8*%r to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN10JSONSource8errorMsgE_57 to void(...)*),void(...)**%s,align 8
%t=getelementptr inbounds i8,i8*%k,i64 24
%u=bitcast i8*%t to i32*
store i32 -2147483647,i32*%u,align 4
ret i8*%k
}
define internal fastcc i8*@_SMLLN10JSONSource10openStreamE_60(i8*inreg%a,i8*inreg%b)#3 gc"smlsharp"{
%c=tail call i8*@sml_alloc(i32 inreg 4)#0
%d=bitcast i8*%c to i32*
%e=getelementptr inbounds i8,i8*%c,i64 -4
%f=bitcast i8*%e to i32*
store i32 4,i32*%f,align 4
store i32 0,i32*%d,align 4
ret i8*%c
}
define internal fastcc i8*@_SMLLN10JSONSource10openStreamE_61(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN10JSONSource10openStreamE(i8*inreg%b)
ret i8*%c
}
define internal fastcc i8*@_SMLLN10JSONSource8openFileE_62(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
tail call fastcc void@_SMLLN10JSONSource8openFileE_39(i8*inreg%a,i32 inreg%d)
%e=tail call i8*@sml_alloc(i32 inreg 4)#0
%f=bitcast i8*%e to i32*
%g=getelementptr inbounds i8,i8*%e,i64 -4
%h=bitcast i8*%g to i32*
store i32 4,i32*%h,align 4
store i32 0,i32*%f,align 4
ret i8*%e
}
define internal fastcc i8*@_SMLLN10JSONSource8openFileE_63(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN10JSONSource8openFileE(i8*inreg%b)
ret i8*%c
}
define internal fastcc i8*@_SMLLN10JSONSource10openStringE_64(i8*inreg%a,i8*inreg%b)#3 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLN10JSONSource10openStringE_43(i8*inreg%a,i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLN10JSONSource10openStringE_65(i8*inreg%a,i8*inreg%b)#3 gc"smlsharp"{
%c=tail call i8*@sml_alloc(i32 inreg 4)#0
%d=bitcast i8*%c to i32*
%e=getelementptr inbounds i8,i8*%c,i64 -4
%f=bitcast i8*%e to i32*
store i32 4,i32*%f,align 4
store i32 0,i32*%d,align 4
ret i8*%c
}
define internal fastcc i8*@_SMLLN10JSONSource10openStringE_66(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN10JSONSource10openStringE(i8*inreg%b)
ret i8*%c
}
define internal fastcc i8*@_SMLLN10JSONSource5closeE_67(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
tail call fastcc void@_SMLFN10JSONSource5closeE(i8*inreg%b)
%c=tail call i8*@sml_alloc(i32 inreg 4)#0
%d=bitcast i8*%c to i32*
%e=getelementptr inbounds i8,i8*%c,i64 -4
%f=bitcast i8*%e to i32*
store i32 4,i32*%f,align 4
store i32 0,i32*%d,align 4
ret i8*%c
}
define internal fastcc i8*@_SMLLN10JSONSource8errorMsgE_68(i8*inreg%a,i8*inreg%b)#3 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN10JSONSource8errorMsgE(i8*inreg%b)
ret i8*%c
}
attributes#0={nounwind}
attributes#1={uwtable}
attributes#2={noreturn nounwind}
attributes#3={nounwind uwtable}
