@sml_check_flag=external local_unnamed_addr global i32
@_SMLZN19SMLSharp__SQL__Config6DLLEXTE=external local_unnamed_addr global i8*
@a=private unnamed_addr constant<{[4x i8],i32,[17x i8]}><{[4x i8]zeroinitializer,i32 -2147483631,[17x i8]c"SMLSHARP_LIBODBC\00"}>,align 8
@b=private unnamed_addr constant<{[4x i8],i32,[11x i8]}><{[4x i8]zeroinitializer,i32 -2147483637,[11x i8]c"libodbc.2.\00"}>,align 8
@c=private unnamed_addr constant<{[4x i8],i32,[13x i8]}><{[4x i8]zeroinitializer,i32 -2147483635,[13x i8]c"libodbc.so.2\00"}>,align 8
@d=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32)*@_SMLLN8UNIXODBC3libE_42 to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC3libE_106 to void(...)*),i32 -2147483647}>,align 8
@e=private unnamed_addr constant<{[4x i8],i32,[15x i8]}><{[4x i8]zeroinitializer,i32 -2147483633,[15x i8]c"SQLAllocHandle\00"}>,align 8
@f=private unnamed_addr constant<{[4x i8],i32,[11x i8]}><{[4x i8]zeroinitializer,i32 -2147483637,[11x i8]c"SQLConnect\00"}>,align 8
@g=private unnamed_addr constant<{[4x i8],i32,[14x i8]}><{[4x i8]zeroinitializer,i32 -2147483634,[14x i8]c"SQLSetEnvAttr\00"}>,align 8
@h=private unnamed_addr constant<{[4x i8],i32,[15x i8]}><{[4x i8]zeroinitializer,i32 -2147483633,[15x i8]c"SQLSetStmtAttr\00"}>,align 8
@i=private unnamed_addr constant<{[4x i8],i32,[14x i8]}><{[4x i8]zeroinitializer,i32 -2147483634,[14x i8]c"SQLExecDirect\00"}>,align 8
@j=private unnamed_addr constant<{[4x i8],i32,[12x i8]}><{[4x i8]zeroinitializer,i32 -2147483636,[12x i8]c"SQLRowCount\00"}>,align 8
@k=private unnamed_addr constant<{[4x i8],i32,[17x i8]}><{[4x i8]zeroinitializer,i32 -2147483631,[17x i8]c"SQLNumResultCols\00"}>,align 8
@l=private unnamed_addr constant<{[4x i8],i32,[9x i8]}><{[4x i8]zeroinitializer,i32 -2147483639,[9x i8]c"SQLFetch\00"}>,align 8
@m=private unnamed_addr constant<{[4x i8],i32,[11x i8]}><{[4x i8]zeroinitializer,i32 -2147483637,[11x i8]c"SQLGetData\00"}>,align 8
@n=private unnamed_addr constant<{[4x i8],i32,[10x i8]}><{[4x i8]zeroinitializer,i32 -2147483638,[10x i8]c"SQLSetPos\00"}>,align 8
@o=private unnamed_addr constant<{[4x i8],i32,[11x i8]}><{[4x i8]zeroinitializer,i32 -2147483637,[11x i8]c"SQLColumns\00"}>,align 8
@p=private unnamed_addr constant<{[4x i8],i32,[10x i8]}><{[4x i8]zeroinitializer,i32 -2147483638,[10x i8]c"SQLTables\00"}>,align 8
@q=private unnamed_addr constant<{[4x i8],i32,[14x i8]}><{[4x i8]zeroinitializer,i32 -2147483634,[14x i8]c"SQLDisconnect\00"}>,align 8
@r=private unnamed_addr constant<{[4x i8],i32,[14x i8]}><{[4x i8]zeroinitializer,i32 -2147483634,[14x i8]c"SQLFreeHandle\00"}>,align 8
@s=private unnamed_addr constant<{[4x i8],i32,[14x i8]}><{[4x i8]zeroinitializer,i32 -2147483634,[14x i8]c"SQLGetDiagRec\00"}>,align 8
@_SMLZN8UNIXODBC14SQL__HANDLE__ENVE=local_unnamed_addr constant i32 1
@_SMLZN8UNIXODBC14SQL__HANDLE__DBCE=local_unnamed_addr constant i32 2
@_SMLZN8UNIXODBC15SQL__HANDLE__DESCE=local_unnamed_addr constant i32 4
@_SMLZN8UNIXODBC15SQL__HANDLE__STMTE=local_unnamed_addr constant i32 3
@_SMLZN8UNIXODBC11NULL__HANDLEE=local_unnamed_addr constant i8*null
@_SMLZN8UNIXODBC17ATTR__ODBC__VERSIONE=local_unnamed_addr constant i32 200
@_SMLZN8UNIXODBC8OV__ODBC3E=local_unnamed_addr constant i32 3
@_SMLZN8UNIXODBC3NTSE=local_unnamed_addr constant i32 -3
@_SMLZN8UNIXODBC9NULL__DATAE=local_unnamed_addr constant i32 -1
@_SMLZN8UNIXODBC6C__CHARE=local_unnamed_addr constant i32 1
@_SMLZN8UNIXODBC8POSITIONE=local_unnamed_addr constant i32 0
@_SMLZN8UNIXODBC7REFRESHE=local_unnamed_addr constant i32 1
@_SMLZN8UNIXODBC14LOCK__NO__CHANGEE=local_unnamed_addr constant i32 0
@_SMLZN8UNIXODBC19ATTR__ROW__ARRAY__SIZEE=local_unnamed_addr constant i32 27
@_SMLZN8UNIXODBC11COLUMN__NAMEE=local_unnamed_addr constant i32 4
@_SMLZN8UNIXODBC9DATA__TYPEE=local_unnamed_addr constant i32 5
@_SMLZN8UNIXODBC8NULLABLEE=local_unnamed_addr constant i32 11
@_SMLZN8UNIXODBC11SQL__SUCCESSE=local_unnamed_addr constant i32 0
@_SMLZN8UNIXODBC21SQL__SUCCESS__WITH__INFOE=local_unnamed_addr constant i32 1
@_SMLZN8UNIXODBC17SQL__INALID__HANDLEE=local_unnamed_addr constant i32 -2
@_SMLZN8UNIXODBC9SQL__ERRORE=local_unnamed_addr constant i32 -1
@_SMLZN8UNIXODBC19SQL__STILL__EXECUTINGE=local_unnamed_addr constant i32 2
@_SMLZN8UNIXODBC13SQL__NEED__DATAE=local_unnamed_addr constant i32 99
@_SMLZN8UNIXODBC11SQL__NO__DATAE=local_unnamed_addr constant i32 100
@_SML_gvar896833c3ab7437b2_UNIXODBC=private global<{[4x i8],i32,[15x i8*]}><{[4x i8]zeroinitializer,i32 -1342177160,[15x i8*]zeroinitializer}>,align 8
@t=private unnamed_addr global[2x i64][i64 1,i64 sub(i64 ptrtoint(i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i32 0,i32 2,i32 0)to i64),i64 ptrtoint([2x i64]*@t to i64))]
@_SML_ftab896833c3ab7437b2_UNIXODBC=external global i8
@u=private unnamed_addr global i8 0
@_SMLZN8UNIXODBC11AllocHandleE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i32 0,i32 2,i32 0)
@_SMLZN8UNIXODBC7ConnectE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i32 0,i32 2,i32 1)
@_SMLZN8UNIXODBC10SetEnvAttrE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i32 0,i32 2,i32 2)
@_SMLZN8UNIXODBC11SetStmtAttrE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i32 0,i32 2,i32 3)
@_SMLZN8UNIXODBC10ExecDirectE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i32 0,i32 2,i32 4)
@_SMLZN8UNIXODBC8RowCountE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i32 0,i32 2,i32 5)
@_SMLZN8UNIXODBC13NumResultColsE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i32 0,i32 2,i32 6)
@_SMLZN8UNIXODBC5FetchE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i32 0,i32 2,i32 7)
@_SMLZN8UNIXODBC7GetDataE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i32 0,i32 2,i32 8)
@_SMLZN8UNIXODBC6SetPosE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i32 0,i32 2,i32 9)
@_SMLZN8UNIXODBC7ColumnsE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i32 0,i32 2,i32 10)
@_SMLZN8UNIXODBC6TablesE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i32 0,i32 2,i32 11)
@_SMLZN8UNIXODBC10DisconnectE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i32 0,i32 2,i32 12)
@_SMLZN8UNIXODBC10FreeHandleE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i32 0,i32 2,i32 13)
@_SMLZN8UNIXODBC10GetDiagRecE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i32 0,i32 2,i32 14)
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_end()local_unnamed_addr#0
declare void@sml_enter()local_unnamed_addr#0
declare void@sml_gcroot(i8*,void()*,i8*,i8*)local_unnamed_addr#0
declare void@sml_leave()local_unnamed_addr#0
declare i32@sml_personality(...)#0
declare void@sml_save_exn(i8*inreg)local_unnamed_addr#0
declare void@sml_start(i8*inreg)local_unnamed_addr#0
declare i8*@sml_unsave_exn(i8*inreg)local_unnamed_addr#0
declare void@sml_write(i8*inreg,i8**inreg,i8*inreg)local_unnamed_addr#0
declare void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN11DynamicLink6dlopenE(i8*inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN18SMLSharp__OSProcess6getEnvE(i8*inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN6String1_ZE(i8*inreg)local_unnamed_addr#1 gc"smlsharp"
declare void@_SML_main19a59bcdb325454c_SMLSharp_OSProcess()local_unnamed_addr#1 gc"smlsharp"
declare void@_SML_main1ef93e13728790b1_String()local_unnamed_addr#1 gc"smlsharp"
declare void@_SML_mainfb23865721a0c043_SQLConfig()local_unnamed_addr#1 gc"smlsharp"
declare void@_SML_main82bd5aec591c098a_DynamicLink()local_unnamed_addr#1 gc"smlsharp"
declare void@_SML_load19a59bcdb325454c_SMLSharp_OSProcess(i8*)local_unnamed_addr
declare void@_SML_load1ef93e13728790b1_String(i8*)local_unnamed_addr
declare void@_SML_loadfb23865721a0c043_SQLConfig(i8*)local_unnamed_addr
declare void@_SML_load82bd5aec591c098a_DynamicLink(i8*)local_unnamed_addr
define private void@_SML_tabb896833c3ab7437b2_UNIXODBC()#2{
unreachable
}
define void@_SML_load896833c3ab7437b2_UNIXODBC(i8*%a)local_unnamed_addr#0{
%b=load i8,i8*@u,align 1
%c=icmp eq i8%b,0
br i1%c,label%e,label%d
d:
ret void
e:
store i8 1,i8*@u,align 1
tail call void@_SML_load19a59bcdb325454c_SMLSharp_OSProcess(i8*%a)#0
tail call void@_SML_load1ef93e13728790b1_String(i8*%a)#0
tail call void@_SML_loadfb23865721a0c043_SQLConfig(i8*%a)#0
tail call void@_SML_load82bd5aec591c098a_DynamicLink(i8*%a)#0
tail call void@sml_gcroot(i8*%a,void()*@_SML_tabb896833c3ab7437b2_UNIXODBC,i8*@_SML_ftab896833c3ab7437b2_UNIXODBC,i8*bitcast([2x i64]*@t to i8*))#0
ret void
}
define void@_SML_main896833c3ab7437b2_UNIXODBC()local_unnamed_addr#1 gc"smlsharp"personality i32(...)*@sml_personality{
%a=alloca[3x i8*],align 8
%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
%g=alloca i8*,align 8
%h=alloca i8*,align 8
%i=alloca i8*,align 8
%j=alloca i8*,align 8
%k=alloca i8*,align 8
%l=alloca i8*,align 8
%m=alloca i8*,align 8
%n=alloca i8*,align 8
%o=alloca i8*,align 8
%p=alloca i8*,align 8
%q=alloca i8*,align 8
%r=alloca i8*,align 8
%s=load i8,i8*@u,align 1
%t=and i8%s,2
%u=icmp eq i8%t,0
br i1%u,label%w,label%v
v:
ret void
w:
store i8 3,i8*@u,align 1
tail call void@_SML_main19a59bcdb325454c_SMLSharp_OSProcess()#1
tail call void@_SML_main1ef93e13728790b1_String()#1
tail call void@_SML_mainfb23865721a0c043_SQLConfig()#1
tail call void@_SML_main82bd5aec591c098a_DynamicLink()#1
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
call void@llvm.gcroot(i8**%g,i8*null)#0
call void@llvm.gcroot(i8**%h,i8*null)#0
call void@llvm.gcroot(i8**%i,i8*null)#0
call void@llvm.gcroot(i8**%j,i8*null)#0
call void@llvm.gcroot(i8**%k,i8*null)#0
call void@llvm.gcroot(i8**%l,i8*null)#0
call void@llvm.gcroot(i8**%m,i8*null)#0
call void@llvm.gcroot(i8**%n,i8*null)#0
call void@llvm.gcroot(i8**%o,i8*null)#0
call void@llvm.gcroot(i8**%p,i8*null)#0
call void@llvm.gcroot(i8**%q,i8*null)#0
call void@llvm.gcroot(i8**%r,i8*null)#0
%x=bitcast[3x i8*]*%a to i8*
call void@sml_start(i8*inreg%x)#0
%y=load atomic i32,i32*@sml_check_flag unordered,align 4
%z=icmp eq i32%y,0
br i1%z,label%B,label%A
A:
invoke void@sml_check(i32 inreg%y)
to label%B unwind label%gF
B:
%C=call fastcc i8*@_SMLLN8UNIXODBC4lazyE_37(i32 inreg 0)
%D=getelementptr inbounds i8,i8*%C,i64 16
%E=bitcast i8*%D to i8*(i8*,i8*)**
%F=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%E,align 8
%G=bitcast i8*%C to i8**
%H=load i8*,i8**%G,align 8
%I=invoke fastcc i8*%F(i8*inreg%H,i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@d,i64 0,i32 2)to i8*))
to label%J unwind label%gF
J:
store i8*%I,i8**%b,align 8
%K=call fastcc i8*@_SMLLN8UNIXODBC4lazyE_37(i32 inreg 1)
%L=getelementptr inbounds i8,i8*%K,i64 16
%M=bitcast i8*%L to i8*(i8*,i8*)**
%N=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%M,align 8
%O=bitcast i8*%K to i8**
%P=load i8*,i8**%O,align 8
store i8*%P,i8**%c,align 8
%Q=call i8*@sml_alloc(i32 inreg 12)#0
%R=getelementptr inbounds i8,i8*%Q,i64 -4
%S=bitcast i8*%R to i32*
store i32 1342177288,i32*%S,align 4
store i8*%Q,i8**%d,align 8
%T=load i8*,i8**%b,align 8
%U=bitcast i8*%Q to i8**
store i8*%T,i8**%U,align 8
%V=getelementptr inbounds i8,i8*%Q,i64 8
%W=bitcast i8*%V to i32*
store i32 1,i32*%W,align 4
%X=call i8*@sml_alloc(i32 inreg 28)#0
%Y=getelementptr inbounds i8,i8*%X,i64 -4
%Z=bitcast i8*%Y to i32*
store i32 1342177304,i32*%Z,align 4
%aa=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ab=bitcast i8*%X to i8**
store i8*%aa,i8**%ab,align 8
%ac=getelementptr inbounds i8,i8*%X,i64 8
%ad=bitcast i8*%ac to void(...)**
store void(...)*bitcast(i8*(i8*,i32)*@_SMLLN8UNIXODBC11AllocHandleE_46 to void(...)*),void(...)**%ad,align 8
%ae=getelementptr inbounds i8,i8*%X,i64 16
%af=bitcast i8*%ae to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC11AllocHandleE_108 to void(...)*),void(...)**%af,align 8
%ag=getelementptr inbounds i8,i8*%X,i64 24
%ah=bitcast i8*%ag to i32*
store i32 -2147483647,i32*%ah,align 4
%ai=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aj=invoke fastcc i8*%N(i8*inreg%ai,i8*inreg%X)
to label%ak unwind label%gF
ak:
store i8*%aj,i8**%c,align 8
%al=call fastcc i8*@_SMLLN8UNIXODBC4lazyE_37(i32 inreg 1)
%am=getelementptr inbounds i8,i8*%al,i64 16
%an=bitcast i8*%am to i8*(i8*,i8*)**
%ao=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%an,align 8
%ap=bitcast i8*%al to i8**
%aq=load i8*,i8**%ap,align 8
store i8*%aq,i8**%d,align 8
%ar=call i8*@sml_alloc(i32 inreg 12)#0
%as=getelementptr inbounds i8,i8*%ar,i64 -4
%at=bitcast i8*%as to i32*
store i32 1342177288,i32*%at,align 4
store i8*%ar,i8**%e,align 8
%au=load i8*,i8**%b,align 8
%av=bitcast i8*%ar to i8**
store i8*%au,i8**%av,align 8
%aw=getelementptr inbounds i8,i8*%ar,i64 8
%ax=bitcast i8*%aw to i32*
store i32 1,i32*%ax,align 4
%ay=call i8*@sml_alloc(i32 inreg 28)#0
%az=getelementptr inbounds i8,i8*%ay,i64 -4
%aA=bitcast i8*%az to i32*
store i32 1342177304,i32*%aA,align 4
%aB=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aC=bitcast i8*%ay to i8**
store i8*%aB,i8**%aC,align 8
%aD=getelementptr inbounds i8,i8*%ay,i64 8
%aE=bitcast i8*%aD to void(...)**
store void(...)*bitcast(i8*(i8*,i32)*@_SMLLN8UNIXODBC7ConnectE_49 to void(...)*),void(...)**%aE,align 8
%aF=getelementptr inbounds i8,i8*%ay,i64 16
%aG=bitcast i8*%aF to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC7ConnectE_110 to void(...)*),void(...)**%aG,align 8
%aH=getelementptr inbounds i8,i8*%ay,i64 24
%aI=bitcast i8*%aH to i32*
store i32 -2147483647,i32*%aI,align 4
%aJ=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aK=invoke fastcc i8*%ao(i8*inreg%aJ,i8*inreg%ay)
to label%aL unwind label%gF
aL:
store i8*%aK,i8**%d,align 8
%aM=call fastcc i8*@_SMLLN8UNIXODBC4lazyE_37(i32 inreg 1)
%aN=getelementptr inbounds i8,i8*%aM,i64 16
%aO=bitcast i8*%aN to i8*(i8*,i8*)**
%aP=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aO,align 8
%aQ=bitcast i8*%aM to i8**
%aR=load i8*,i8**%aQ,align 8
store i8*%aR,i8**%e,align 8
%aS=call i8*@sml_alloc(i32 inreg 12)#0
%aT=getelementptr inbounds i8,i8*%aS,i64 -4
%aU=bitcast i8*%aT to i32*
store i32 1342177288,i32*%aU,align 4
store i8*%aS,i8**%f,align 8
%aV=load i8*,i8**%b,align 8
%aW=bitcast i8*%aS to i8**
store i8*%aV,i8**%aW,align 8
%aX=getelementptr inbounds i8,i8*%aS,i64 8
%aY=bitcast i8*%aX to i32*
store i32 1,i32*%aY,align 4
%aZ=call i8*@sml_alloc(i32 inreg 28)#0
%a0=getelementptr inbounds i8,i8*%aZ,i64 -4
%a1=bitcast i8*%a0 to i32*
store i32 1342177304,i32*%a1,align 4
%a2=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%a3=bitcast i8*%aZ to i8**
store i8*%a2,i8**%a3,align 8
%a4=getelementptr inbounds i8,i8*%aZ,i64 8
%a5=bitcast i8*%a4 to void(...)**
store void(...)*bitcast(i8*(i8*,i32)*@_SMLLN8UNIXODBC10SetEnvAttrE_52 to void(...)*),void(...)**%a5,align 8
%a6=getelementptr inbounds i8,i8*%aZ,i64 16
%a7=bitcast i8*%a6 to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC10SetEnvAttrE_112 to void(...)*),void(...)**%a7,align 8
%a8=getelementptr inbounds i8,i8*%aZ,i64 24
%a9=bitcast i8*%a8 to i32*
store i32 -2147483647,i32*%a9,align 4
%ba=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%bb=invoke fastcc i8*%aP(i8*inreg%ba,i8*inreg%aZ)
to label%bc unwind label%gF
bc:
store i8*%bb,i8**%e,align 8
%bd=call fastcc i8*@_SMLLN8UNIXODBC4lazyE_37(i32 inreg 1)
%be=getelementptr inbounds i8,i8*%bd,i64 16
%bf=bitcast i8*%be to i8*(i8*,i8*)**
%bg=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bf,align 8
%bh=bitcast i8*%bd to i8**
%bi=load i8*,i8**%bh,align 8
store i8*%bi,i8**%f,align 8
%bj=call i8*@sml_alloc(i32 inreg 12)#0
%bk=getelementptr inbounds i8,i8*%bj,i64 -4
%bl=bitcast i8*%bk to i32*
store i32 1342177288,i32*%bl,align 4
store i8*%bj,i8**%g,align 8
%bm=load i8*,i8**%b,align 8
%bn=bitcast i8*%bj to i8**
store i8*%bm,i8**%bn,align 8
%bo=getelementptr inbounds i8,i8*%bj,i64 8
%bp=bitcast i8*%bo to i32*
store i32 1,i32*%bp,align 4
%bq=call i8*@sml_alloc(i32 inreg 28)#0
%br=getelementptr inbounds i8,i8*%bq,i64 -4
%bs=bitcast i8*%br to i32*
store i32 1342177304,i32*%bs,align 4
%bt=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%bu=bitcast i8*%bq to i8**
store i8*%bt,i8**%bu,align 8
%bv=getelementptr inbounds i8,i8*%bq,i64 8
%bw=bitcast i8*%bv to void(...)**
store void(...)*bitcast(i8*(i8*,i32)*@_SMLLN8UNIXODBC11SetStmtAttrE_55 to void(...)*),void(...)**%bw,align 8
%bx=getelementptr inbounds i8,i8*%bq,i64 16
%by=bitcast i8*%bx to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC11SetStmtAttrE_114 to void(...)*),void(...)**%by,align 8
%bz=getelementptr inbounds i8,i8*%bq,i64 24
%bA=bitcast i8*%bz to i32*
store i32 -2147483647,i32*%bA,align 4
%bB=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%bC=invoke fastcc i8*%bg(i8*inreg%bB,i8*inreg%bq)
to label%bD unwind label%gF
bD:
store i8*%bC,i8**%f,align 8
%bE=call fastcc i8*@_SMLLN8UNIXODBC4lazyE_37(i32 inreg 1)
%bF=getelementptr inbounds i8,i8*%bE,i64 16
%bG=bitcast i8*%bF to i8*(i8*,i8*)**
%bH=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bG,align 8
%bI=bitcast i8*%bE to i8**
%bJ=load i8*,i8**%bI,align 8
store i8*%bJ,i8**%g,align 8
%bK=call i8*@sml_alloc(i32 inreg 12)#0
%bL=getelementptr inbounds i8,i8*%bK,i64 -4
%bM=bitcast i8*%bL to i32*
store i32 1342177288,i32*%bM,align 4
store i8*%bK,i8**%h,align 8
%bN=load i8*,i8**%b,align 8
%bO=bitcast i8*%bK to i8**
store i8*%bN,i8**%bO,align 8
%bP=getelementptr inbounds i8,i8*%bK,i64 8
%bQ=bitcast i8*%bP to i32*
store i32 1,i32*%bQ,align 4
%bR=call i8*@sml_alloc(i32 inreg 28)#0
%bS=getelementptr inbounds i8,i8*%bR,i64 -4
%bT=bitcast i8*%bS to i32*
store i32 1342177304,i32*%bT,align 4
%bU=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%bV=bitcast i8*%bR to i8**
store i8*%bU,i8**%bV,align 8
%bW=getelementptr inbounds i8,i8*%bR,i64 8
%bX=bitcast i8*%bW to void(...)**
store void(...)*bitcast(i8*(i8*,i32)*@_SMLLN8UNIXODBC10ExecDirectE_58 to void(...)*),void(...)**%bX,align 8
%bY=getelementptr inbounds i8,i8*%bR,i64 16
%bZ=bitcast i8*%bY to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC10ExecDirectE_116 to void(...)*),void(...)**%bZ,align 8
%b0=getelementptr inbounds i8,i8*%bR,i64 24
%b1=bitcast i8*%b0 to i32*
store i32 -2147483647,i32*%b1,align 4
%b2=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%b3=invoke fastcc i8*%bH(i8*inreg%b2,i8*inreg%bR)
to label%b4 unwind label%gF
b4:
store i8*%b3,i8**%g,align 8
%b5=call fastcc i8*@_SMLLN8UNIXODBC4lazyE_37(i32 inreg 1)
%b6=getelementptr inbounds i8,i8*%b5,i64 16
%b7=bitcast i8*%b6 to i8*(i8*,i8*)**
%b8=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%b7,align 8
%b9=bitcast i8*%b5 to i8**
%ca=load i8*,i8**%b9,align 8
store i8*%ca,i8**%h,align 8
%cb=call i8*@sml_alloc(i32 inreg 12)#0
%cc=getelementptr inbounds i8,i8*%cb,i64 -4
%cd=bitcast i8*%cc to i32*
store i32 1342177288,i32*%cd,align 4
store i8*%cb,i8**%i,align 8
%ce=load i8*,i8**%b,align 8
%cf=bitcast i8*%cb to i8**
store i8*%ce,i8**%cf,align 8
%cg=getelementptr inbounds i8,i8*%cb,i64 8
%ch=bitcast i8*%cg to i32*
store i32 1,i32*%ch,align 4
%ci=call i8*@sml_alloc(i32 inreg 28)#0
%cj=getelementptr inbounds i8,i8*%ci,i64 -4
%ck=bitcast i8*%cj to i32*
store i32 1342177304,i32*%ck,align 4
%cl=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%cm=bitcast i8*%ci to i8**
store i8*%cl,i8**%cm,align 8
%cn=getelementptr inbounds i8,i8*%ci,i64 8
%co=bitcast i8*%cn to void(...)**
store void(...)*bitcast(i8*(i8*,i32)*@_SMLLN8UNIXODBC8RowCountE_61 to void(...)*),void(...)**%co,align 8
%cp=getelementptr inbounds i8,i8*%ci,i64 16
%cq=bitcast i8*%cp to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC8RowCountE_118 to void(...)*),void(...)**%cq,align 8
%cr=getelementptr inbounds i8,i8*%ci,i64 24
%cs=bitcast i8*%cr to i32*
store i32 -2147483647,i32*%cs,align 4
%ct=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%cu=invoke fastcc i8*%b8(i8*inreg%ct,i8*inreg%ci)
to label%cv unwind label%gF
cv:
store i8*%cu,i8**%h,align 8
%cw=call fastcc i8*@_SMLLN8UNIXODBC4lazyE_37(i32 inreg 1)
%cx=getelementptr inbounds i8,i8*%cw,i64 16
%cy=bitcast i8*%cx to i8*(i8*,i8*)**
%cz=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%cy,align 8
%cA=bitcast i8*%cw to i8**
%cB=load i8*,i8**%cA,align 8
store i8*%cB,i8**%i,align 8
%cC=call i8*@sml_alloc(i32 inreg 12)#0
%cD=getelementptr inbounds i8,i8*%cC,i64 -4
%cE=bitcast i8*%cD to i32*
store i32 1342177288,i32*%cE,align 4
store i8*%cC,i8**%j,align 8
%cF=load i8*,i8**%b,align 8
%cG=bitcast i8*%cC to i8**
store i8*%cF,i8**%cG,align 8
%cH=getelementptr inbounds i8,i8*%cC,i64 8
%cI=bitcast i8*%cH to i32*
store i32 1,i32*%cI,align 4
%cJ=call i8*@sml_alloc(i32 inreg 28)#0
%cK=getelementptr inbounds i8,i8*%cJ,i64 -4
%cL=bitcast i8*%cK to i32*
store i32 1342177304,i32*%cL,align 4
%cM=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%cN=bitcast i8*%cJ to i8**
store i8*%cM,i8**%cN,align 8
%cO=getelementptr inbounds i8,i8*%cJ,i64 8
%cP=bitcast i8*%cO to void(...)**
store void(...)*bitcast(i8*(i8*,i32)*@_SMLLN8UNIXODBC13NumResultColsE_64 to void(...)*),void(...)**%cP,align 8
%cQ=getelementptr inbounds i8,i8*%cJ,i64 16
%cR=bitcast i8*%cQ to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC13NumResultColsE_120 to void(...)*),void(...)**%cR,align 8
%cS=getelementptr inbounds i8,i8*%cJ,i64 24
%cT=bitcast i8*%cS to i32*
store i32 -2147483647,i32*%cT,align 4
%cU=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%cV=invoke fastcc i8*%cz(i8*inreg%cU,i8*inreg%cJ)
to label%cW unwind label%gF
cW:
store i8*%cV,i8**%i,align 8
%cX=call fastcc i8*@_SMLLN8UNIXODBC4lazyE_37(i32 inreg 1)
%cY=getelementptr inbounds i8,i8*%cX,i64 16
%cZ=bitcast i8*%cY to i8*(i8*,i8*)**
%c0=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%cZ,align 8
%c1=bitcast i8*%cX to i8**
%c2=load i8*,i8**%c1,align 8
store i8*%c2,i8**%j,align 8
%c3=call i8*@sml_alloc(i32 inreg 12)#0
%c4=getelementptr inbounds i8,i8*%c3,i64 -4
%c5=bitcast i8*%c4 to i32*
store i32 1342177288,i32*%c5,align 4
store i8*%c3,i8**%k,align 8
%c6=load i8*,i8**%b,align 8
%c7=bitcast i8*%c3 to i8**
store i8*%c6,i8**%c7,align 8
%c8=getelementptr inbounds i8,i8*%c3,i64 8
%c9=bitcast i8*%c8 to i32*
store i32 1,i32*%c9,align 4
%da=call i8*@sml_alloc(i32 inreg 28)#0
%db=getelementptr inbounds i8,i8*%da,i64 -4
%dc=bitcast i8*%db to i32*
store i32 1342177304,i32*%dc,align 4
%dd=load i8*,i8**%k,align 8
store i8*null,i8**%k,align 8
%de=bitcast i8*%da to i8**
store i8*%dd,i8**%de,align 8
%df=getelementptr inbounds i8,i8*%da,i64 8
%dg=bitcast i8*%df to void(...)**
store void(...)*bitcast(i8*(i8*,i32)*@_SMLLN8UNIXODBC5FetchE_67 to void(...)*),void(...)**%dg,align 8
%dh=getelementptr inbounds i8,i8*%da,i64 16
%di=bitcast i8*%dh to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC5FetchE_122 to void(...)*),void(...)**%di,align 8
%dj=getelementptr inbounds i8,i8*%da,i64 24
%dk=bitcast i8*%dj to i32*
store i32 -2147483647,i32*%dk,align 4
%dl=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%dm=invoke fastcc i8*%c0(i8*inreg%dl,i8*inreg%da)
to label%dn unwind label%gF
dn:
store i8*%dm,i8**%j,align 8
%do=call fastcc i8*@_SMLLN8UNIXODBC4lazyE_37(i32 inreg 1)
%dp=getelementptr inbounds i8,i8*%do,i64 16
%dq=bitcast i8*%dp to i8*(i8*,i8*)**
%dr=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%dq,align 8
%ds=bitcast i8*%do to i8**
%dt=load i8*,i8**%ds,align 8
store i8*%dt,i8**%k,align 8
%du=call i8*@sml_alloc(i32 inreg 12)#0
%dv=getelementptr inbounds i8,i8*%du,i64 -4
%dw=bitcast i8*%dv to i32*
store i32 1342177288,i32*%dw,align 4
store i8*%du,i8**%l,align 8
%dx=load i8*,i8**%b,align 8
%dy=bitcast i8*%du to i8**
store i8*%dx,i8**%dy,align 8
%dz=getelementptr inbounds i8,i8*%du,i64 8
%dA=bitcast i8*%dz to i32*
store i32 1,i32*%dA,align 4
%dB=call i8*@sml_alloc(i32 inreg 28)#0
%dC=getelementptr inbounds i8,i8*%dB,i64 -4
%dD=bitcast i8*%dC to i32*
store i32 1342177304,i32*%dD,align 4
%dE=load i8*,i8**%l,align 8
store i8*null,i8**%l,align 8
%dF=bitcast i8*%dB to i8**
store i8*%dE,i8**%dF,align 8
%dG=getelementptr inbounds i8,i8*%dB,i64 8
%dH=bitcast i8*%dG to void(...)**
store void(...)*bitcast(i8*(i8*,i32)*@_SMLLN8UNIXODBC7GetDataE_70 to void(...)*),void(...)**%dH,align 8
%dI=getelementptr inbounds i8,i8*%dB,i64 16
%dJ=bitcast i8*%dI to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC7GetDataE_124 to void(...)*),void(...)**%dJ,align 8
%dK=getelementptr inbounds i8,i8*%dB,i64 24
%dL=bitcast i8*%dK to i32*
store i32 -2147483647,i32*%dL,align 4
%dM=load i8*,i8**%k,align 8
store i8*null,i8**%k,align 8
%dN=invoke fastcc i8*%dr(i8*inreg%dM,i8*inreg%dB)
to label%dO unwind label%gF
dO:
store i8*%dN,i8**%k,align 8
%dP=call fastcc i8*@_SMLLN8UNIXODBC4lazyE_37(i32 inreg 1)
%dQ=getelementptr inbounds i8,i8*%dP,i64 16
%dR=bitcast i8*%dQ to i8*(i8*,i8*)**
%dS=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%dR,align 8
%dT=bitcast i8*%dP to i8**
%dU=load i8*,i8**%dT,align 8
store i8*%dU,i8**%l,align 8
%dV=call i8*@sml_alloc(i32 inreg 12)#0
%dW=getelementptr inbounds i8,i8*%dV,i64 -4
%dX=bitcast i8*%dW to i32*
store i32 1342177288,i32*%dX,align 4
store i8*%dV,i8**%m,align 8
%dY=load i8*,i8**%b,align 8
%dZ=bitcast i8*%dV to i8**
store i8*%dY,i8**%dZ,align 8
%d0=getelementptr inbounds i8,i8*%dV,i64 8
%d1=bitcast i8*%d0 to i32*
store i32 1,i32*%d1,align 4
%d2=call i8*@sml_alloc(i32 inreg 28)#0
%d3=getelementptr inbounds i8,i8*%d2,i64 -4
%d4=bitcast i8*%d3 to i32*
store i32 1342177304,i32*%d4,align 4
%d5=load i8*,i8**%m,align 8
store i8*null,i8**%m,align 8
%d6=bitcast i8*%d2 to i8**
store i8*%d5,i8**%d6,align 8
%d7=getelementptr inbounds i8,i8*%d2,i64 8
%d8=bitcast i8*%d7 to void(...)**
store void(...)*bitcast(i8*(i8*,i32)*@_SMLLN8UNIXODBC6SetPosE_73 to void(...)*),void(...)**%d8,align 8
%d9=getelementptr inbounds i8,i8*%d2,i64 16
%ea=bitcast i8*%d9 to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC6SetPosE_126 to void(...)*),void(...)**%ea,align 8
%eb=getelementptr inbounds i8,i8*%d2,i64 24
%ec=bitcast i8*%eb to i32*
store i32 -2147483647,i32*%ec,align 4
%ed=load i8*,i8**%l,align 8
store i8*null,i8**%l,align 8
%ee=invoke fastcc i8*%dS(i8*inreg%ed,i8*inreg%d2)
to label%ef unwind label%gF
ef:
store i8*%ee,i8**%l,align 8
%eg=call fastcc i8*@_SMLLN8UNIXODBC4lazyE_37(i32 inreg 1)
%eh=getelementptr inbounds i8,i8*%eg,i64 16
%ei=bitcast i8*%eh to i8*(i8*,i8*)**
%ej=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%ei,align 8
%ek=bitcast i8*%eg to i8**
%el=load i8*,i8**%ek,align 8
store i8*%el,i8**%m,align 8
%em=call i8*@sml_alloc(i32 inreg 12)#0
%en=getelementptr inbounds i8,i8*%em,i64 -4
%eo=bitcast i8*%en to i32*
store i32 1342177288,i32*%eo,align 4
store i8*%em,i8**%n,align 8
%ep=load i8*,i8**%b,align 8
%eq=bitcast i8*%em to i8**
store i8*%ep,i8**%eq,align 8
%er=getelementptr inbounds i8,i8*%em,i64 8
%es=bitcast i8*%er to i32*
store i32 1,i32*%es,align 4
%et=call i8*@sml_alloc(i32 inreg 28)#0
%eu=getelementptr inbounds i8,i8*%et,i64 -4
%ev=bitcast i8*%eu to i32*
store i32 1342177304,i32*%ev,align 4
%ew=load i8*,i8**%n,align 8
store i8*null,i8**%n,align 8
%ex=bitcast i8*%et to i8**
store i8*%ew,i8**%ex,align 8
%ey=getelementptr inbounds i8,i8*%et,i64 8
%ez=bitcast i8*%ey to void(...)**
store void(...)*bitcast(i8*(i8*,i32)*@_SMLLN8UNIXODBC7ColumnsE_76 to void(...)*),void(...)**%ez,align 8
%eA=getelementptr inbounds i8,i8*%et,i64 16
%eB=bitcast i8*%eA to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC7ColumnsE_128 to void(...)*),void(...)**%eB,align 8
%eC=getelementptr inbounds i8,i8*%et,i64 24
%eD=bitcast i8*%eC to i32*
store i32 -2147483647,i32*%eD,align 4
%eE=load i8*,i8**%m,align 8
store i8*null,i8**%m,align 8
%eF=invoke fastcc i8*%ej(i8*inreg%eE,i8*inreg%et)
to label%eG unwind label%gF
eG:
store i8*%eF,i8**%m,align 8
%eH=call fastcc i8*@_SMLLN8UNIXODBC4lazyE_37(i32 inreg 1)
%eI=getelementptr inbounds i8,i8*%eH,i64 16
%eJ=bitcast i8*%eI to i8*(i8*,i8*)**
%eK=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%eJ,align 8
%eL=bitcast i8*%eH to i8**
%eM=load i8*,i8**%eL,align 8
store i8*%eM,i8**%n,align 8
%eN=call i8*@sml_alloc(i32 inreg 12)#0
%eO=getelementptr inbounds i8,i8*%eN,i64 -4
%eP=bitcast i8*%eO to i32*
store i32 1342177288,i32*%eP,align 4
store i8*%eN,i8**%o,align 8
%eQ=load i8*,i8**%b,align 8
%eR=bitcast i8*%eN to i8**
store i8*%eQ,i8**%eR,align 8
%eS=getelementptr inbounds i8,i8*%eN,i64 8
%eT=bitcast i8*%eS to i32*
store i32 1,i32*%eT,align 4
%eU=call i8*@sml_alloc(i32 inreg 28)#0
%eV=getelementptr inbounds i8,i8*%eU,i64 -4
%eW=bitcast i8*%eV to i32*
store i32 1342177304,i32*%eW,align 4
%eX=load i8*,i8**%o,align 8
store i8*null,i8**%o,align 8
%eY=bitcast i8*%eU to i8**
store i8*%eX,i8**%eY,align 8
%eZ=getelementptr inbounds i8,i8*%eU,i64 8
%e0=bitcast i8*%eZ to void(...)**
store void(...)*bitcast(i8*(i8*,i32)*@_SMLLN8UNIXODBC6TablesE_79 to void(...)*),void(...)**%e0,align 8
%e1=getelementptr inbounds i8,i8*%eU,i64 16
%e2=bitcast i8*%e1 to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC6TablesE_130 to void(...)*),void(...)**%e2,align 8
%e3=getelementptr inbounds i8,i8*%eU,i64 24
%e4=bitcast i8*%e3 to i32*
store i32 -2147483647,i32*%e4,align 4
%e5=load i8*,i8**%n,align 8
store i8*null,i8**%n,align 8
%e6=invoke fastcc i8*%eK(i8*inreg%e5,i8*inreg%eU)
to label%e7 unwind label%gF
e7:
store i8*%e6,i8**%n,align 8
%e8=call fastcc i8*@_SMLLN8UNIXODBC4lazyE_37(i32 inreg 1)
%e9=getelementptr inbounds i8,i8*%e8,i64 16
%fa=bitcast i8*%e9 to i8*(i8*,i8*)**
%fb=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%fa,align 8
%fc=bitcast i8*%e8 to i8**
%fd=load i8*,i8**%fc,align 8
store i8*%fd,i8**%o,align 8
%fe=call i8*@sml_alloc(i32 inreg 12)#0
%ff=getelementptr inbounds i8,i8*%fe,i64 -4
%fg=bitcast i8*%ff to i32*
store i32 1342177288,i32*%fg,align 4
store i8*%fe,i8**%p,align 8
%fh=load i8*,i8**%b,align 8
%fi=bitcast i8*%fe to i8**
store i8*%fh,i8**%fi,align 8
%fj=getelementptr inbounds i8,i8*%fe,i64 8
%fk=bitcast i8*%fj to i32*
store i32 1,i32*%fk,align 4
%fl=call i8*@sml_alloc(i32 inreg 28)#0
%fm=getelementptr inbounds i8,i8*%fl,i64 -4
%fn=bitcast i8*%fm to i32*
store i32 1342177304,i32*%fn,align 4
%fo=load i8*,i8**%p,align 8
store i8*null,i8**%p,align 8
%fp=bitcast i8*%fl to i8**
store i8*%fo,i8**%fp,align 8
%fq=getelementptr inbounds i8,i8*%fl,i64 8
%fr=bitcast i8*%fq to void(...)**
store void(...)*bitcast(i8*(i8*,i32)*@_SMLLN8UNIXODBC10DisconnectE_82 to void(...)*),void(...)**%fr,align 8
%fs=getelementptr inbounds i8,i8*%fl,i64 16
%ft=bitcast i8*%fs to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC10DisconnectE_132 to void(...)*),void(...)**%ft,align 8
%fu=getelementptr inbounds i8,i8*%fl,i64 24
%fv=bitcast i8*%fu to i32*
store i32 -2147483647,i32*%fv,align 4
%fw=load i8*,i8**%o,align 8
store i8*null,i8**%o,align 8
%fx=invoke fastcc i8*%fb(i8*inreg%fw,i8*inreg%fl)
to label%fy unwind label%gF
fy:
store i8*%fx,i8**%o,align 8
%fz=call fastcc i8*@_SMLLN8UNIXODBC4lazyE_37(i32 inreg 1)
%fA=getelementptr inbounds i8,i8*%fz,i64 16
%fB=bitcast i8*%fA to i8*(i8*,i8*)**
%fC=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%fB,align 8
%fD=bitcast i8*%fz to i8**
%fE=load i8*,i8**%fD,align 8
store i8*%fE,i8**%p,align 8
%fF=call i8*@sml_alloc(i32 inreg 12)#0
%fG=getelementptr inbounds i8,i8*%fF,i64 -4
%fH=bitcast i8*%fG to i32*
store i32 1342177288,i32*%fH,align 4
store i8*%fF,i8**%q,align 8
%fI=load i8*,i8**%b,align 8
%fJ=bitcast i8*%fF to i8**
store i8*%fI,i8**%fJ,align 8
%fK=getelementptr inbounds i8,i8*%fF,i64 8
%fL=bitcast i8*%fK to i32*
store i32 1,i32*%fL,align 4
%fM=call i8*@sml_alloc(i32 inreg 28)#0
%fN=getelementptr inbounds i8,i8*%fM,i64 -4
%fO=bitcast i8*%fN to i32*
store i32 1342177304,i32*%fO,align 4
%fP=load i8*,i8**%q,align 8
store i8*null,i8**%q,align 8
%fQ=bitcast i8*%fM to i8**
store i8*%fP,i8**%fQ,align 8
%fR=getelementptr inbounds i8,i8*%fM,i64 8
%fS=bitcast i8*%fR to void(...)**
store void(...)*bitcast(i8*(i8*,i32)*@_SMLLN8UNIXODBC10FreeHandleE_85 to void(...)*),void(...)**%fS,align 8
%fT=getelementptr inbounds i8,i8*%fM,i64 16
%fU=bitcast i8*%fT to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC10FreeHandleE_134 to void(...)*),void(...)**%fU,align 8
%fV=getelementptr inbounds i8,i8*%fM,i64 24
%fW=bitcast i8*%fV to i32*
store i32 -2147483647,i32*%fW,align 4
%fX=load i8*,i8**%p,align 8
store i8*null,i8**%p,align 8
%fY=invoke fastcc i8*%fC(i8*inreg%fX,i8*inreg%fM)
to label%fZ unwind label%gF
fZ:
store i8*%fY,i8**%p,align 8
%f0=call fastcc i8*@_SMLLN8UNIXODBC4lazyE_37(i32 inreg 1)
%f1=getelementptr inbounds i8,i8*%f0,i64 16
%f2=bitcast i8*%f1 to i8*(i8*,i8*)**
%f3=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%f2,align 8
%f4=bitcast i8*%f0 to i8**
%f5=load i8*,i8**%f4,align 8
store i8*%f5,i8**%q,align 8
%f6=call i8*@sml_alloc(i32 inreg 12)#0
%f7=getelementptr inbounds i8,i8*%f6,i64 -4
%f8=bitcast i8*%f7 to i32*
store i32 1342177288,i32*%f8,align 4
store i8*%f6,i8**%r,align 8
%f9=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%ga=bitcast i8*%f6 to i8**
store i8*%f9,i8**%ga,align 8
%gb=getelementptr inbounds i8,i8*%f6,i64 8
%gc=bitcast i8*%gb to i32*
store i32 1,i32*%gc,align 4
%gd=call i8*@sml_alloc(i32 inreg 28)#0
%ge=getelementptr inbounds i8,i8*%gd,i64 -4
%gf=bitcast i8*%ge to i32*
store i32 1342177304,i32*%gf,align 4
%gg=load i8*,i8**%r,align 8
store i8*null,i8**%r,align 8
%gh=bitcast i8*%gd to i8**
store i8*%gg,i8**%gh,align 8
%gi=getelementptr inbounds i8,i8*%gd,i64 8
%gj=bitcast i8*%gi to void(...)**
store void(...)*bitcast(i8*(i8*,i32)*@_SMLLN8UNIXODBC10GetDiagRecE_88 to void(...)*),void(...)**%gj,align 8
%gk=getelementptr inbounds i8,i8*%gd,i64 16
%gl=bitcast i8*%gk to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC10GetDiagRecE_136 to void(...)*),void(...)**%gl,align 8
%gm=getelementptr inbounds i8,i8*%gd,i64 24
%gn=bitcast i8*%gm to i32*
store i32 -2147483647,i32*%gn,align 4
%go=load i8*,i8**%q,align 8
store i8*null,i8**%q,align 8
%gp=invoke fastcc i8*%f3(i8*inreg%go,i8*inreg%gd)
to label%gq unwind label%gF
gq:
%gr=load i8*,i8**%c,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 0),i8*inreg%gr)#0
%gs=load i8*,i8**%d,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 1),i8*inreg%gs)#0
%gt=load i8*,i8**%e,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 2),i8*inreg%gt)#0
%gu=load i8*,i8**%f,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 3),i8*inreg%gu)#0
%gv=load i8*,i8**%g,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 4),i8*inreg%gv)#0
%gw=load i8*,i8**%h,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 5),i8*inreg%gw)#0
%gx=load i8*,i8**%i,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 6),i8*inreg%gx)#0
%gy=load i8*,i8**%j,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 7),i8*inreg%gy)#0
%gz=load i8*,i8**%k,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 8),i8*inreg%gz)#0
%gA=load i8*,i8**%l,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 9),i8*inreg%gA)#0
%gB=load i8*,i8**%m,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 10),i8*inreg%gB)#0
%gC=load i8*,i8**%n,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 11),i8*inreg%gC)#0
%gD=load i8*,i8**%o,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 12),i8*inreg%gD)#0
%gE=load i8*,i8**%p,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 13),i8*inreg%gE)#0
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 14),i8*inreg%gp)#0
call void@sml_end()#0
ret void
gF:
%gG=landingpad{i8*,i8*}
cleanup
%gH=extractvalue{i8*,i8*}%gG,1
call void@sml_save_exn(i8*inreg%gH)#0
call void@sml_end()#0
resume{i8*,i8*}%gG
}
define internal fastcc i8*@_SMLLN8UNIXODBC4lazyE_35(i8*inreg%a,i32 inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=getelementptr inbounds i8,i8*%j,i64 16
%m=bitcast i8*%l to i32*
%n=load i32,i32*%m,align 4
%o=getelementptr inbounds i8,i8*%j,i64 8
%p=bitcast i8*%o to i8***
%q=load i8**,i8***%p,align 8
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%c,align 8
%s=icmp eq i8*%r,null
%t=bitcast i8*%r to i8**
br i1%s,label%u,label%ag
u:
%v=bitcast i8*%j to i8**
%w=load i8*,i8**%v,align 8
%x=getelementptr inbounds i8,i8*%w,i64 16
%y=bitcast i8*%x to i8*(i8*,i8*)**
%z=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%y,align 8
%A=bitcast i8*%w to i8**
%B=load i8*,i8**%A,align 8
store i8*%B,i8**%c,align 8
%C=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
%G=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%H=call fastcc i8*%z(i8*inreg%G,i8*inreg%C)
store i8*%H,i8**%c,align 8
%I=load i8*,i8**%d,align 8
%J=getelementptr inbounds i8,i8*%I,i64 16
%K=bitcast i8*%J to i32*
%L=load i32,i32*%K,align 4
%M=call i8*@sml_alloc(i32 inreg 12)#0
%N=getelementptr inbounds i8,i8*%M,i64 -4
%O=bitcast i8*%N to i32*
store i32 1342177288,i32*%O,align 4
%P=icmp eq i32%L,0
%Q=load i8*,i8**%c,align 8
br i1%P,label%T,label%R
R:
%S=bitcast i8*%M to i8**
store i8*%Q,i8**%S,align 8
br label%X
T:
%U=bitcast i8*%Q to i64*
%V=bitcast i8*%M to i64*
%W=load i64,i64*%U,align 1
store i64%W,i64*%V,align 1
br label%X
X:
%Y=getelementptr inbounds i8,i8*%M,i64 8
%Z=bitcast i8*%Y to i32*
store i32%n,i32*%Z,align 4
%aa=load i8*,i8**%d,align 8
%ab=getelementptr inbounds i8,i8*%aa,i64 8
%ac=bitcast i8*%ab to i8**
%ad=load i8*,i8**%ac,align 8
%ae=bitcast i8*%ad to i8**
call void@sml_write(i8*inreg%ad,i8**inreg%ae,i8*inreg%M)#0
%af=load i8*,i8**%c,align 8
ret i8*%af
ag:
store i8*null,i8**%d,align 8
%ah=icmp eq i32%n,0
br i1%ah,label%ak,label%ai
ai:
%aj=load i8*,i8**%t,align 8
br label%as
ak:
%al=call i8*@sml_alloc(i32 inreg 8)#0
%am=getelementptr inbounds i8,i8*%al,i64 -4
%an=bitcast i8*%am to i32*
store i32 8,i32*%an,align 4
%ao=bitcast i8**%c to i64**
%ap=load i64*,i64**%ao,align 8
%aq=bitcast i8*%al to i64*
%ar=load i64,i64*%ap,align 1
store i64%ar,i64*%aq,align 1
br label%as
as:
%at=phi i8*[%aj,%ai],[%al,%ak]
ret i8*%at
}
define internal fastcc i8*@_SMLLN8UNIXODBC4lazyE_36(i8*inreg%a,i8*inreg%b)#3 gc"smlsharp"{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
%e=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
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%f=call i8*@sml_alloc(i32 inreg 8)#0
%g=getelementptr inbounds i8,i8*%f,i64 -4
%h=bitcast i8*%g to i32*
store i32 805306376,i32*%h,align 4
store i8*%f,i8**%e,align 8
%i=bitcast i8*%f to i64*
store i64 0,i64*%i,align 1
%j=bitcast i8*%f to i8**
call void@sml_write(i8*inreg%f,i8**inreg%j,i8*inreg null)#0
%k=bitcast i8**%d to i32**
%l=load i32*,i32**%k,align 8
store i8*null,i8**%d,align 8
%m=load i32,i32*%l,align 4
%n=call i8*@sml_alloc(i32 inreg 28)#0
%o=getelementptr inbounds i8,i8*%n,i64 -4
%p=bitcast i8*%o to i32*
store i32 1342177304,i32*%p,align 4
store i8*%n,i8**%d,align 8
%q=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%r=bitcast i8*%n to i8**
store i8*%q,i8**%r,align 8
%s=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%t=getelementptr inbounds i8,i8*%n,i64 8
%u=bitcast i8*%t to i8**
store i8*%s,i8**%u,align 8
%v=getelementptr inbounds i8,i8*%n,i64 16
%w=bitcast i8*%v to i32*
store i32%m,i32*%w,align 4
%x=getelementptr inbounds i8,i8*%n,i64 24
%y=bitcast i8*%x to i32*
store i32 3,i32*%y,align 4
%z=call i8*@sml_alloc(i32 inreg 28)#0
%A=getelementptr inbounds i8,i8*%z,i64 -4
%B=bitcast i8*%A to i32*
store i32 1342177304,i32*%B,align 4
%C=load i8*,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 void(...)**
store void(...)*bitcast(i8*(i8*,i32)*@_SMLLN8UNIXODBC4lazyE_35 to void(...)*),void(...)**%F,align 8
%G=getelementptr inbounds i8,i8*%z,i64 16
%H=bitcast i8*%G to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC4lazyE_104 to void(...)*),void(...)**%H,align 8
%I=getelementptr inbounds i8,i8*%z,i64 24
%J=bitcast i8*%I to i32*
store i32 1,i32*%J,align 4
ret i8*%z
}
define internal fastcc i8*@_SMLLN8UNIXODBC4lazyE_37(i32 inreg%a)unnamed_addr#3 gc"smlsharp"{
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
%c=call i8*@sml_alloc(i32 inreg 12)#0
%d=bitcast i8*%c to i32*
%e=getelementptr inbounds i8,i8*%c,i64 -4
%f=bitcast i8*%e to i32*
store i32 1342177288,i32*%f,align 4
store i8*%c,i8**%b,align 8
store i32%a,i32*%d,align 4
%g=getelementptr inbounds i8,i8*%c,i64 8
%h=bitcast i8*%g to i32*
store i32 0,i32*%h,align 4
%i=call i8*@sml_alloc(i32 inreg 28)#0
%j=getelementptr inbounds i8,i8*%i,i64 -4
%k=bitcast i8*%j to i32*
store i32 1342177304,i32*%k,align 4
%l=load i8*,i8**%b,align 8
%m=bitcast i8*%i to i8**
store i8*%l,i8**%m,align 8
%n=getelementptr inbounds i8,i8*%i,i64 8
%o=bitcast i8*%n to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC4lazyE_36 to void(...)*),void(...)**%o,align 8
%p=getelementptr inbounds i8,i8*%i,i64 16
%q=bitcast i8*%p to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC4lazyE_36 to void(...)*),void(...)**%q,align 8
%r=getelementptr inbounds i8,i8*%i,i64 24
%s=bitcast i8*%r to i32*
store i32 -2147483647,i32*%s,align 4
ret i8*%i
}
define internal fastcc i8*@_SMLLN8UNIXODBC3libE_42(i32 inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%f,label%e
e:
call void@sml_check(i32 inreg%c)
br label%f
f:
%g=call fastcc i8*@_SMLFN18SMLSharp__OSProcess6getEnvE(i8*inreg getelementptr inbounds(<{[4x i8],i32,[17x i8]}>,<{[4x i8],i32,[17x i8]}>*@a,i64 0,i32 2,i64 0))
%h=icmp eq i8*%g,null
br i1%h,label%i,label%I
i:
%j=load i8**,i8***bitcast(i8**@_SMLZN19SMLSharp__SQL__Config6DLLEXTE to i8***),align 8
%k=load i8*,i8**%j,align 8
store i8*%k,i8**%b,align 8
%l=getelementptr inbounds i8,i8*%k,i64 -4
%m=bitcast i8*%l to i32*
%n=load i32,i32*%m,align 4
%o=and i32%n,268435455
%p=icmp eq i32%o,3
br i1%p,label%q,label%x
q:
%r=load i8,i8*%k,align 1
%s=icmp eq i8%r,115
br i1%s,label%t,label%x
t:
%u=getelementptr inbounds i8,i8*%k,i64 1
%v=load i8,i8*%u,align 1
%w=icmp eq i8%v,111
br i1%w,label%L,label%x
x:
%y=call i8*@sml_alloc(i32 inreg 20)#0
%z=getelementptr inbounds i8,i8*%y,i64 -4
%A=bitcast i8*%z to i32*
store i32 1342177296,i32*%A,align 4
%B=bitcast i8*%y to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@b,i64 0,i32 2,i64 0),i8**%B,align 8
%C=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%D=getelementptr inbounds i8,i8*%y,i64 8
%E=bitcast i8*%D to i8**
store i8*%C,i8**%E,align 8
%F=getelementptr inbounds i8,i8*%y,i64 16
%G=bitcast i8*%F to i32*
store i32 3,i32*%G,align 4
%H=call fastcc i8*@_SMLFN6String1_ZE(i8*inreg%y)
br label%L
I:
%J=bitcast i8*%g to i8**
%K=load i8*,i8**%J,align 8
br label%L
L:
%M=phi i8*[%K,%I],[%H,%x],[getelementptr inbounds(<{[4x i8],i32,[13x i8]}>,<{[4x i8],i32,[13x i8]}>*@c,i64 0,i32 2,i64 0),%t]
%N=tail call fastcc i8*@_SMLFN11DynamicLink6dlopenE(i8*inreg%M)
ret i8*%N
}
define internal fastcc i32@_SMLLN8UNIXODBC11AllocHandleE_45(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"personality i32(...)*@sml_personality{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%c,align 8
store i8*%b,i8**%d,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%g,label%i
g:
%h=bitcast i8*%a to i32(i32,i8*,i8*)**
br label%m
i:
call void@sml_check(i32 inreg%e)
%j=load i8*,i8**%d,align 8
%k=bitcast i8**%c to i32(i32,i8*,i8*)***
%l=load i32(i32,i8*,i8*)**,i32(i32,i8*,i8*)***%k,align 8
br label%m
m:
%n=phi i32(i32,i8*,i8*)**[%l,%i],[%h,%g]
%o=phi i8*[%j,%i],[%b,%g]
store i8*null,i8**%d,align 8
%p=load i32(i32,i8*,i8*)*,i32(i32,i8*,i8*)**%n,align 8
%q=bitcast i8*%o to i32*
%r=load i32,i32*%q,align 4
%s=getelementptr inbounds i8,i8*%o,i64 8
%t=bitcast i8*%s to i8**
%u=load i8*,i8**%t,align 8
%v=getelementptr inbounds i8,i8*%o,i64 16
%w=bitcast i8*%v to i8**
%x=load i8*,i8**%w,align 8
store i8*%x,i8**%c,align 8
call void@sml_leave()#0
%y=invoke i32%p(i32%r,i8*%u,i8*%x)
to label%z unwind label%A
z:
call void@sml_enter()#0
ret i32%y
A:
%B=landingpad{i8*,i8*}
cleanup
%C=extractvalue{i8*,i8*}%B,1
call void@sml_enter()#0
%D=call i8*@sml_unsave_exn(i8*inreg%C)#0
resume{i8*,i8*}%B
}
define internal fastcc i8*@_SMLLN8UNIXODBC11AllocHandleE_46(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
%n=getelementptr inbounds i8,i8*%m,i64 16
%o=bitcast i8*%n to i8*(i8*,i8*)**
%p=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%o,align 8
%q=bitcast i8*%m to i8**
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%c,align 8
%s=call i8*@sml_alloc(i32 inreg 4)#0
%t=bitcast i8*%s to i32*
%u=getelementptr inbounds i8,i8*%s,i64 -4
%v=bitcast i8*%u to i32*
store i32 4,i32*%v,align 4
store i32 0,i32*%t,align 4
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%p(i8*inreg%w,i8*inreg%s)
%y=bitcast i8*%x to i8**
%z=load i8*,i8**%y,align 8
%A=call i8*@sml_alloc(i32 inreg 20)#0
%B=getelementptr inbounds i8,i8*%A,i64 -4
%C=bitcast i8*%B to i32*
store i32 1342177296,i32*%C,align 4
%D=bitcast i8*%A to i8**
store i8*%z,i8**%D,align 8
%E=getelementptr inbounds i8,i8*%A,i64 8
%F=bitcast i8*%E to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@e,i64 0,i32 2,i64 0),i8**%F,align 8
%G=getelementptr inbounds i8,i8*%A,i64 16
%H=bitcast i8*%G to i32*
store i32 2,i32*%H,align 4
%I=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%A)
%J=call i8*@sml_alloc(i32 inreg 12)#0
%K=getelementptr inbounds i8,i8*%J,i64 -4
%L=bitcast i8*%K to i32*
store i32 1342177288,i32*%L,align 4
store i8*%J,i8**%c,align 8
%M=bitcast i8*%J to void(...)**
store void(...)*%I,void(...)**%M,align 8
%N=getelementptr inbounds i8,i8*%J,i64 8
%O=bitcast i8*%N to i32*
store i32 0,i32*%O,align 4
%P=call i8*@sml_alloc(i32 inreg 28)#0
%Q=getelementptr inbounds i8,i8*%P,i64 -4
%R=bitcast i8*%Q to i32*
store i32 1342177304,i32*%R,align 4
%S=load i8*,i8**%c,align 8
%T=bitcast i8*%P to i8**
store i8*%S,i8**%T,align 8
%U=getelementptr inbounds i8,i8*%P,i64 8
%V=bitcast i8*%U to void(...)**
store void(...)*bitcast(i32(i8*,i8*)*@_SMLLN8UNIXODBC11AllocHandleE_45 to void(...)*),void(...)**%V,align 8
%W=getelementptr inbounds i8,i8*%P,i64 16
%X=bitcast i8*%W to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC11AllocHandleE_107 to void(...)*),void(...)**%X,align 8
%Y=getelementptr inbounds i8,i8*%P,i64 24
%Z=bitcast i8*%Y to i32*
store i32 -2147483647,i32*%Z,align 4
ret i8*%P
}
define internal fastcc i32@_SMLLN8UNIXODBC7ConnectE_48(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"personality i32(...)*@sml_personality{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
%e=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
store i8*%a,i8**%c,align 8
store i8*%b,i8**%d,align 8
%f=load atomic i32,i32*@sml_check_flag unordered,align 4
%g=icmp eq i32%f,0
br i1%g,label%h,label%j
h:
%i=bitcast i8*%a to i32(i8*,i8*,i32,i8*,i32,i8*,i32)**
br label%n
j:
call void@sml_check(i32 inreg%f)
%k=load i8*,i8**%d,align 8
%l=bitcast i8**%c to i32(i8*,i8*,i32,i8*,i32,i8*,i32)***
%m=load i32(i8*,i8*,i32,i8*,i32,i8*,i32)**,i32(i8*,i8*,i32,i8*,i32,i8*,i32)***%l,align 8
br label%n
n:
%o=phi i32(i8*,i8*,i32,i8*,i32,i8*,i32)**[%m,%j],[%i,%h]
%p=phi i8*[%k,%j],[%b,%h]
%q=load i32(i8*,i8*,i32,i8*,i32,i8*,i32)*,i32(i8*,i8*,i32,i8*,i32,i8*,i32)**%o,align 8
%r=bitcast i8*%p to i8**
%s=load i8*,i8**%r,align 8
%t=getelementptr inbounds i8,i8*%p,i64 8
%u=bitcast i8*%t to i8**
%v=load i8*,i8**%u,align 8
store i8*%v,i8**%c,align 8
%w=getelementptr inbounds i8,i8*%p,i64 16
%x=bitcast i8*%w to i32*
%y=load i32,i32*%x,align 4
%z=getelementptr inbounds i8,i8*%p,i64 24
%A=bitcast i8*%z to i8**
%B=load i8*,i8**%A,align 8
store i8*%B,i8**%d,align 8
%C=getelementptr inbounds i8,i8*%p,i64 32
%D=bitcast i8*%C to i32*
%E=load i32,i32*%D,align 4
%F=getelementptr inbounds i8,i8*%p,i64 40
%G=bitcast i8*%F to i8**
%H=load i8*,i8**%G,align 8
store i8*%H,i8**%e,align 8
%I=getelementptr inbounds i8,i8*%p,i64 48
%J=bitcast i8*%I to i32*
%K=load i32,i32*%J,align 4
call void@sml_leave()#0
%L=invoke i32%q(i8*%s,i8*%v,i32%y,i8*%B,i32%E,i8*%H,i32%K)
to label%M unwind label%N
M:
call void@sml_enter()#0
ret i32%L
N:
%O=landingpad{i8*,i8*}
cleanup
%P=extractvalue{i8*,i8*}%O,1
call void@sml_enter()#0
%Q=call i8*@sml_unsave_exn(i8*inreg%P)#0
resume{i8*,i8*}%O
}
define internal fastcc i8*@_SMLLN8UNIXODBC7ConnectE_49(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
%n=getelementptr inbounds i8,i8*%m,i64 16
%o=bitcast i8*%n to i8*(i8*,i8*)**
%p=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%o,align 8
%q=bitcast i8*%m to i8**
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%c,align 8
%s=call i8*@sml_alloc(i32 inreg 4)#0
%t=bitcast i8*%s to i32*
%u=getelementptr inbounds i8,i8*%s,i64 -4
%v=bitcast i8*%u to i32*
store i32 4,i32*%v,align 4
store i32 0,i32*%t,align 4
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%p(i8*inreg%w,i8*inreg%s)
%y=bitcast i8*%x to i8**
%z=load i8*,i8**%y,align 8
%A=call i8*@sml_alloc(i32 inreg 20)#0
%B=getelementptr inbounds i8,i8*%A,i64 -4
%C=bitcast i8*%B to i32*
store i32 1342177296,i32*%C,align 4
%D=bitcast i8*%A to i8**
store i8*%z,i8**%D,align 8
%E=getelementptr inbounds i8,i8*%A,i64 8
%F=bitcast i8*%E to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@f,i64 0,i32 2,i64 0),i8**%F,align 8
%G=getelementptr inbounds i8,i8*%A,i64 16
%H=bitcast i8*%G to i32*
store i32 2,i32*%H,align 4
%I=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%A)
%J=call i8*@sml_alloc(i32 inreg 12)#0
%K=getelementptr inbounds i8,i8*%J,i64 -4
%L=bitcast i8*%K to i32*
store i32 1342177288,i32*%L,align 4
store i8*%J,i8**%c,align 8
%M=bitcast i8*%J to void(...)**
store void(...)*%I,void(...)**%M,align 8
%N=getelementptr inbounds i8,i8*%J,i64 8
%O=bitcast i8*%N to i32*
store i32 0,i32*%O,align 4
%P=call i8*@sml_alloc(i32 inreg 28)#0
%Q=getelementptr inbounds i8,i8*%P,i64 -4
%R=bitcast i8*%Q to i32*
store i32 1342177304,i32*%R,align 4
%S=load i8*,i8**%c,align 8
%T=bitcast i8*%P to i8**
store i8*%S,i8**%T,align 8
%U=getelementptr inbounds i8,i8*%P,i64 8
%V=bitcast i8*%U to void(...)**
store void(...)*bitcast(i32(i8*,i8*)*@_SMLLN8UNIXODBC7ConnectE_48 to void(...)*),void(...)**%V,align 8
%W=getelementptr inbounds i8,i8*%P,i64 16
%X=bitcast i8*%W to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC7ConnectE_109 to void(...)*),void(...)**%X,align 8
%Y=getelementptr inbounds i8,i8*%P,i64 24
%Z=bitcast i8*%Y to i32*
store i32 -2147483647,i32*%Z,align 4
ret i8*%P
}
define internal fastcc i32@_SMLLN8UNIXODBC10SetEnvAttrE_51(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"personality i32(...)*@sml_personality{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%c,align 8
store i8*%b,i8**%d,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%g,label%i
g:
%h=bitcast i8*%a to i32(i8*,i32,i32,i32)**
br label%m
i:
call void@sml_check(i32 inreg%e)
%j=load i8*,i8**%d,align 8
%k=bitcast i8**%c to i32(i8*,i32,i32,i32)***
%l=load i32(i8*,i32,i32,i32)**,i32(i8*,i32,i32,i32)***%k,align 8
br label%m
m:
%n=phi i32(i8*,i32,i32,i32)**[%l,%i],[%h,%g]
%o=phi i8*[%j,%i],[%b,%g]
store i8*null,i8**%d,align 8
store i8*null,i8**%c,align 8
%p=load i32(i8*,i32,i32,i32)*,i32(i8*,i32,i32,i32)**%n,align 8
%q=bitcast i8*%o to i8**
%r=load i8*,i8**%q,align 8
%s=getelementptr inbounds i8,i8*%o,i64 8
%t=bitcast i8*%s to i32*
%u=load i32,i32*%t,align 4
%v=getelementptr inbounds i8,i8*%o,i64 12
%w=bitcast i8*%v to i32*
%x=load i32,i32*%w,align 4
%y=getelementptr inbounds i8,i8*%o,i64 16
%z=bitcast i8*%y to i32*
%A=load i32,i32*%z,align 4
call void@sml_leave()#0
%B=invoke i32%p(i8*%r,i32%u,i32%x,i32%A)
to label%C unwind label%D
C:
call void@sml_enter()#0
ret i32%B
D:
%E=landingpad{i8*,i8*}
cleanup
%F=extractvalue{i8*,i8*}%E,1
call void@sml_enter()#0
%G=call i8*@sml_unsave_exn(i8*inreg%F)#0
resume{i8*,i8*}%E
}
define internal fastcc i8*@_SMLLN8UNIXODBC10SetEnvAttrE_52(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
%n=getelementptr inbounds i8,i8*%m,i64 16
%o=bitcast i8*%n to i8*(i8*,i8*)**
%p=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%o,align 8
%q=bitcast i8*%m to i8**
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%c,align 8
%s=call i8*@sml_alloc(i32 inreg 4)#0
%t=bitcast i8*%s to i32*
%u=getelementptr inbounds i8,i8*%s,i64 -4
%v=bitcast i8*%u to i32*
store i32 4,i32*%v,align 4
store i32 0,i32*%t,align 4
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%p(i8*inreg%w,i8*inreg%s)
%y=bitcast i8*%x to i8**
%z=load i8*,i8**%y,align 8
%A=call i8*@sml_alloc(i32 inreg 20)#0
%B=getelementptr inbounds i8,i8*%A,i64 -4
%C=bitcast i8*%B to i32*
store i32 1342177296,i32*%C,align 4
%D=bitcast i8*%A to i8**
store i8*%z,i8**%D,align 8
%E=getelementptr inbounds i8,i8*%A,i64 8
%F=bitcast i8*%E to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[14x i8]}>,<{[4x i8],i32,[14x i8]}>*@g,i64 0,i32 2,i64 0),i8**%F,align 8
%G=getelementptr inbounds i8,i8*%A,i64 16
%H=bitcast i8*%G to i32*
store i32 2,i32*%H,align 4
%I=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%A)
%J=call i8*@sml_alloc(i32 inreg 12)#0
%K=getelementptr inbounds i8,i8*%J,i64 -4
%L=bitcast i8*%K to i32*
store i32 1342177288,i32*%L,align 4
store i8*%J,i8**%c,align 8
%M=bitcast i8*%J to void(...)**
store void(...)*%I,void(...)**%M,align 8
%N=getelementptr inbounds i8,i8*%J,i64 8
%O=bitcast i8*%N to i32*
store i32 0,i32*%O,align 4
%P=call i8*@sml_alloc(i32 inreg 28)#0
%Q=getelementptr inbounds i8,i8*%P,i64 -4
%R=bitcast i8*%Q to i32*
store i32 1342177304,i32*%R,align 4
%S=load i8*,i8**%c,align 8
%T=bitcast i8*%P to i8**
store i8*%S,i8**%T,align 8
%U=getelementptr inbounds i8,i8*%P,i64 8
%V=bitcast i8*%U to void(...)**
store void(...)*bitcast(i32(i8*,i8*)*@_SMLLN8UNIXODBC10SetEnvAttrE_51 to void(...)*),void(...)**%V,align 8
%W=getelementptr inbounds i8,i8*%P,i64 16
%X=bitcast i8*%W to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC10SetEnvAttrE_111 to void(...)*),void(...)**%X,align 8
%Y=getelementptr inbounds i8,i8*%P,i64 24
%Z=bitcast i8*%Y to i32*
store i32 -2147483647,i32*%Z,align 4
ret i8*%P
}
define internal fastcc i32@_SMLLN8UNIXODBC11SetStmtAttrE_54(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"personality i32(...)*@sml_personality{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%c,align 8
store i8*%b,i8**%d,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%g,label%i
g:
%h=bitcast i8*%a to i32(i8*,i32,i32,i32)**
br label%m
i:
call void@sml_check(i32 inreg%e)
%j=load i8*,i8**%d,align 8
%k=bitcast i8**%c to i32(i8*,i32,i32,i32)***
%l=load i32(i8*,i32,i32,i32)**,i32(i8*,i32,i32,i32)***%k,align 8
br label%m
m:
%n=phi i32(i8*,i32,i32,i32)**[%l,%i],[%h,%g]
%o=phi i8*[%j,%i],[%b,%g]
store i8*null,i8**%d,align 8
store i8*null,i8**%c,align 8
%p=load i32(i8*,i32,i32,i32)*,i32(i8*,i32,i32,i32)**%n,align 8
%q=bitcast i8*%o to i8**
%r=load i8*,i8**%q,align 8
%s=getelementptr inbounds i8,i8*%o,i64 8
%t=bitcast i8*%s to i32*
%u=load i32,i32*%t,align 4
%v=getelementptr inbounds i8,i8*%o,i64 12
%w=bitcast i8*%v to i32*
%x=load i32,i32*%w,align 4
%y=getelementptr inbounds i8,i8*%o,i64 16
%z=bitcast i8*%y to i32*
%A=load i32,i32*%z,align 4
call void@sml_leave()#0
%B=invoke i32%p(i8*%r,i32%u,i32%x,i32%A)
to label%C unwind label%D
C:
call void@sml_enter()#0
ret i32%B
D:
%E=landingpad{i8*,i8*}
cleanup
%F=extractvalue{i8*,i8*}%E,1
call void@sml_enter()#0
%G=call i8*@sml_unsave_exn(i8*inreg%F)#0
resume{i8*,i8*}%E
}
define internal fastcc i8*@_SMLLN8UNIXODBC11SetStmtAttrE_55(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
%n=getelementptr inbounds i8,i8*%m,i64 16
%o=bitcast i8*%n to i8*(i8*,i8*)**
%p=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%o,align 8
%q=bitcast i8*%m to i8**
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%c,align 8
%s=call i8*@sml_alloc(i32 inreg 4)#0
%t=bitcast i8*%s to i32*
%u=getelementptr inbounds i8,i8*%s,i64 -4
%v=bitcast i8*%u to i32*
store i32 4,i32*%v,align 4
store i32 0,i32*%t,align 4
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%p(i8*inreg%w,i8*inreg%s)
%y=bitcast i8*%x to i8**
%z=load i8*,i8**%y,align 8
%A=call i8*@sml_alloc(i32 inreg 20)#0
%B=getelementptr inbounds i8,i8*%A,i64 -4
%C=bitcast i8*%B to i32*
store i32 1342177296,i32*%C,align 4
%D=bitcast i8*%A to i8**
store i8*%z,i8**%D,align 8
%E=getelementptr inbounds i8,i8*%A,i64 8
%F=bitcast i8*%E to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@h,i64 0,i32 2,i64 0),i8**%F,align 8
%G=getelementptr inbounds i8,i8*%A,i64 16
%H=bitcast i8*%G to i32*
store i32 2,i32*%H,align 4
%I=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%A)
%J=call i8*@sml_alloc(i32 inreg 12)#0
%K=getelementptr inbounds i8,i8*%J,i64 -4
%L=bitcast i8*%K to i32*
store i32 1342177288,i32*%L,align 4
store i8*%J,i8**%c,align 8
%M=bitcast i8*%J to void(...)**
store void(...)*%I,void(...)**%M,align 8
%N=getelementptr inbounds i8,i8*%J,i64 8
%O=bitcast i8*%N to i32*
store i32 0,i32*%O,align 4
%P=call i8*@sml_alloc(i32 inreg 28)#0
%Q=getelementptr inbounds i8,i8*%P,i64 -4
%R=bitcast i8*%Q to i32*
store i32 1342177304,i32*%R,align 4
%S=load i8*,i8**%c,align 8
%T=bitcast i8*%P to i8**
store i8*%S,i8**%T,align 8
%U=getelementptr inbounds i8,i8*%P,i64 8
%V=bitcast i8*%U to void(...)**
store void(...)*bitcast(i32(i8*,i8*)*@_SMLLN8UNIXODBC11SetStmtAttrE_54 to void(...)*),void(...)**%V,align 8
%W=getelementptr inbounds i8,i8*%P,i64 16
%X=bitcast i8*%W to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC11SetStmtAttrE_113 to void(...)*),void(...)**%X,align 8
%Y=getelementptr inbounds i8,i8*%P,i64 24
%Z=bitcast i8*%Y to i32*
store i32 -2147483647,i32*%Z,align 4
ret i8*%P
}
define internal fastcc i32@_SMLLN8UNIXODBC10ExecDirectE_57(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"personality i32(...)*@sml_personality{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%c,align 8
store i8*%b,i8**%d,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%g,label%i
g:
%h=bitcast i8*%a to i32(i8*,i8*,i32)**
br label%m
i:
call void@sml_check(i32 inreg%e)
%j=load i8*,i8**%d,align 8
%k=bitcast i8**%c to i32(i8*,i8*,i32)***
%l=load i32(i8*,i8*,i32)**,i32(i8*,i8*,i32)***%k,align 8
br label%m
m:
%n=phi i32(i8*,i8*,i32)**[%l,%i],[%h,%g]
%o=phi i8*[%j,%i],[%b,%g]
store i8*null,i8**%d,align 8
%p=load i32(i8*,i8*,i32)*,i32(i8*,i8*,i32)**%n,align 8
%q=bitcast i8*%o to i8**
%r=load i8*,i8**%q,align 8
%s=getelementptr inbounds i8,i8*%o,i64 8
%t=bitcast i8*%s to i8**
%u=load i8*,i8**%t,align 8
store i8*%u,i8**%c,align 8
%v=getelementptr inbounds i8,i8*%o,i64 16
%w=bitcast i8*%v to i32*
%x=load i32,i32*%w,align 4
call void@sml_leave()#0
%y=invoke i32%p(i8*%r,i8*%u,i32%x)
to label%z unwind label%A
z:
call void@sml_enter()#0
ret i32%y
A:
%B=landingpad{i8*,i8*}
cleanup
%C=extractvalue{i8*,i8*}%B,1
call void@sml_enter()#0
%D=call i8*@sml_unsave_exn(i8*inreg%C)#0
resume{i8*,i8*}%B
}
define internal fastcc i8*@_SMLLN8UNIXODBC10ExecDirectE_58(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
%n=getelementptr inbounds i8,i8*%m,i64 16
%o=bitcast i8*%n to i8*(i8*,i8*)**
%p=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%o,align 8
%q=bitcast i8*%m to i8**
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%c,align 8
%s=call i8*@sml_alloc(i32 inreg 4)#0
%t=bitcast i8*%s to i32*
%u=getelementptr inbounds i8,i8*%s,i64 -4
%v=bitcast i8*%u to i32*
store i32 4,i32*%v,align 4
store i32 0,i32*%t,align 4
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%p(i8*inreg%w,i8*inreg%s)
%y=bitcast i8*%x to i8**
%z=load i8*,i8**%y,align 8
%A=call i8*@sml_alloc(i32 inreg 20)#0
%B=getelementptr inbounds i8,i8*%A,i64 -4
%C=bitcast i8*%B to i32*
store i32 1342177296,i32*%C,align 4
%D=bitcast i8*%A to i8**
store i8*%z,i8**%D,align 8
%E=getelementptr inbounds i8,i8*%A,i64 8
%F=bitcast i8*%E to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[14x i8]}>,<{[4x i8],i32,[14x i8]}>*@i,i64 0,i32 2,i64 0),i8**%F,align 8
%G=getelementptr inbounds i8,i8*%A,i64 16
%H=bitcast i8*%G to i32*
store i32 2,i32*%H,align 4
%I=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%A)
%J=call i8*@sml_alloc(i32 inreg 12)#0
%K=getelementptr inbounds i8,i8*%J,i64 -4
%L=bitcast i8*%K to i32*
store i32 1342177288,i32*%L,align 4
store i8*%J,i8**%c,align 8
%M=bitcast i8*%J to void(...)**
store void(...)*%I,void(...)**%M,align 8
%N=getelementptr inbounds i8,i8*%J,i64 8
%O=bitcast i8*%N to i32*
store i32 0,i32*%O,align 4
%P=call i8*@sml_alloc(i32 inreg 28)#0
%Q=getelementptr inbounds i8,i8*%P,i64 -4
%R=bitcast i8*%Q to i32*
store i32 1342177304,i32*%R,align 4
%S=load i8*,i8**%c,align 8
%T=bitcast i8*%P to i8**
store i8*%S,i8**%T,align 8
%U=getelementptr inbounds i8,i8*%P,i64 8
%V=bitcast i8*%U to void(...)**
store void(...)*bitcast(i32(i8*,i8*)*@_SMLLN8UNIXODBC10ExecDirectE_57 to void(...)*),void(...)**%V,align 8
%W=getelementptr inbounds i8,i8*%P,i64 16
%X=bitcast i8*%W to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC10ExecDirectE_115 to void(...)*),void(...)**%X,align 8
%Y=getelementptr inbounds i8,i8*%P,i64 24
%Z=bitcast i8*%Y to i32*
store i32 -2147483647,i32*%Z,align 4
ret i8*%P
}
define internal fastcc i32@_SMLLN8UNIXODBC8RowCountE_60(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"personality i32(...)*@sml_personality{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%c,align 8
store i8*%b,i8**%d,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%g,label%i
g:
%h=bitcast i8*%a to i32(i8*,i8*)**
br label%m
i:
call void@sml_check(i32 inreg%e)
%j=load i8*,i8**%d,align 8
%k=bitcast i8**%c to i32(i8*,i8*)***
%l=load i32(i8*,i8*)**,i32(i8*,i8*)***%k,align 8
br label%m
m:
%n=phi i32(i8*,i8*)**[%l,%i],[%h,%g]
%o=phi i8*[%j,%i],[%b,%g]
store i8*null,i8**%d,align 8
%p=load i32(i8*,i8*)*,i32(i8*,i8*)**%n,align 8
%q=bitcast i8*%o to i8**
%r=load i8*,i8**%q,align 8
%s=getelementptr inbounds i8,i8*%o,i64 8
%t=bitcast i8*%s to i8**
%u=load i8*,i8**%t,align 8
store i8*%u,i8**%c,align 8
call void@sml_leave()#0
%v=invoke i32%p(i8*%r,i8*%u)
to label%w unwind label%x
w:
call void@sml_enter()#0
ret i32%v
x:
%y=landingpad{i8*,i8*}
cleanup
%z=extractvalue{i8*,i8*}%y,1
call void@sml_enter()#0
%A=call i8*@sml_unsave_exn(i8*inreg%z)#0
resume{i8*,i8*}%y
}
define internal fastcc i8*@_SMLLN8UNIXODBC8RowCountE_61(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
%n=getelementptr inbounds i8,i8*%m,i64 16
%o=bitcast i8*%n to i8*(i8*,i8*)**
%p=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%o,align 8
%q=bitcast i8*%m to i8**
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%c,align 8
%s=call i8*@sml_alloc(i32 inreg 4)#0
%t=bitcast i8*%s to i32*
%u=getelementptr inbounds i8,i8*%s,i64 -4
%v=bitcast i8*%u to i32*
store i32 4,i32*%v,align 4
store i32 0,i32*%t,align 4
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%p(i8*inreg%w,i8*inreg%s)
%y=bitcast i8*%x to i8**
%z=load i8*,i8**%y,align 8
%A=call i8*@sml_alloc(i32 inreg 20)#0
%B=getelementptr inbounds i8,i8*%A,i64 -4
%C=bitcast i8*%B to i32*
store i32 1342177296,i32*%C,align 4
%D=bitcast i8*%A to i8**
store i8*%z,i8**%D,align 8
%E=getelementptr inbounds i8,i8*%A,i64 8
%F=bitcast i8*%E to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[12x i8]}>,<{[4x i8],i32,[12x i8]}>*@j,i64 0,i32 2,i64 0),i8**%F,align 8
%G=getelementptr inbounds i8,i8*%A,i64 16
%H=bitcast i8*%G to i32*
store i32 2,i32*%H,align 4
%I=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%A)
%J=call i8*@sml_alloc(i32 inreg 12)#0
%K=getelementptr inbounds i8,i8*%J,i64 -4
%L=bitcast i8*%K to i32*
store i32 1342177288,i32*%L,align 4
store i8*%J,i8**%c,align 8
%M=bitcast i8*%J to void(...)**
store void(...)*%I,void(...)**%M,align 8
%N=getelementptr inbounds i8,i8*%J,i64 8
%O=bitcast i8*%N to i32*
store i32 0,i32*%O,align 4
%P=call i8*@sml_alloc(i32 inreg 28)#0
%Q=getelementptr inbounds i8,i8*%P,i64 -4
%R=bitcast i8*%Q to i32*
store i32 1342177304,i32*%R,align 4
%S=load i8*,i8**%c,align 8
%T=bitcast i8*%P to i8**
store i8*%S,i8**%T,align 8
%U=getelementptr inbounds i8,i8*%P,i64 8
%V=bitcast i8*%U to void(...)**
store void(...)*bitcast(i32(i8*,i8*)*@_SMLLN8UNIXODBC8RowCountE_60 to void(...)*),void(...)**%V,align 8
%W=getelementptr inbounds i8,i8*%P,i64 16
%X=bitcast i8*%W to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC8RowCountE_117 to void(...)*),void(...)**%X,align 8
%Y=getelementptr inbounds i8,i8*%P,i64 24
%Z=bitcast i8*%Y to i32*
store i32 -2147483647,i32*%Z,align 4
ret i8*%P
}
define internal fastcc i32@_SMLLN8UNIXODBC13NumResultColsE_63(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"personality i32(...)*@sml_personality{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%c,align 8
store i8*%b,i8**%d,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%g,label%i
g:
%h=bitcast i8*%a to i32(i8*,i8*)**
br label%m
i:
call void@sml_check(i32 inreg%e)
%j=load i8*,i8**%d,align 8
%k=bitcast i8**%c to i32(i8*,i8*)***
%l=load i32(i8*,i8*)**,i32(i8*,i8*)***%k,align 8
br label%m
m:
%n=phi i32(i8*,i8*)**[%l,%i],[%h,%g]
%o=phi i8*[%j,%i],[%b,%g]
store i8*null,i8**%d,align 8
%p=load i32(i8*,i8*)*,i32(i8*,i8*)**%n,align 8
%q=bitcast i8*%o to i8**
%r=load i8*,i8**%q,align 8
%s=getelementptr inbounds i8,i8*%o,i64 8
%t=bitcast i8*%s to i8**
%u=load i8*,i8**%t,align 8
store i8*%u,i8**%c,align 8
call void@sml_leave()#0
%v=invoke i32%p(i8*%r,i8*%u)
to label%w unwind label%x
w:
call void@sml_enter()#0
ret i32%v
x:
%y=landingpad{i8*,i8*}
cleanup
%z=extractvalue{i8*,i8*}%y,1
call void@sml_enter()#0
%A=call i8*@sml_unsave_exn(i8*inreg%z)#0
resume{i8*,i8*}%y
}
define internal fastcc i8*@_SMLLN8UNIXODBC13NumResultColsE_64(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
%n=getelementptr inbounds i8,i8*%m,i64 16
%o=bitcast i8*%n to i8*(i8*,i8*)**
%p=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%o,align 8
%q=bitcast i8*%m to i8**
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%c,align 8
%s=call i8*@sml_alloc(i32 inreg 4)#0
%t=bitcast i8*%s to i32*
%u=getelementptr inbounds i8,i8*%s,i64 -4
%v=bitcast i8*%u to i32*
store i32 4,i32*%v,align 4
store i32 0,i32*%t,align 4
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%p(i8*inreg%w,i8*inreg%s)
%y=bitcast i8*%x to i8**
%z=load i8*,i8**%y,align 8
%A=call i8*@sml_alloc(i32 inreg 20)#0
%B=getelementptr inbounds i8,i8*%A,i64 -4
%C=bitcast i8*%B to i32*
store i32 1342177296,i32*%C,align 4
%D=bitcast i8*%A to i8**
store i8*%z,i8**%D,align 8
%E=getelementptr inbounds i8,i8*%A,i64 8
%F=bitcast i8*%E to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[17x i8]}>,<{[4x i8],i32,[17x i8]}>*@k,i64 0,i32 2,i64 0),i8**%F,align 8
%G=getelementptr inbounds i8,i8*%A,i64 16
%H=bitcast i8*%G to i32*
store i32 2,i32*%H,align 4
%I=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%A)
%J=call i8*@sml_alloc(i32 inreg 12)#0
%K=getelementptr inbounds i8,i8*%J,i64 -4
%L=bitcast i8*%K to i32*
store i32 1342177288,i32*%L,align 4
store i8*%J,i8**%c,align 8
%M=bitcast i8*%J to void(...)**
store void(...)*%I,void(...)**%M,align 8
%N=getelementptr inbounds i8,i8*%J,i64 8
%O=bitcast i8*%N to i32*
store i32 0,i32*%O,align 4
%P=call i8*@sml_alloc(i32 inreg 28)#0
%Q=getelementptr inbounds i8,i8*%P,i64 -4
%R=bitcast i8*%Q to i32*
store i32 1342177304,i32*%R,align 4
%S=load i8*,i8**%c,align 8
%T=bitcast i8*%P to i8**
store i8*%S,i8**%T,align 8
%U=getelementptr inbounds i8,i8*%P,i64 8
%V=bitcast i8*%U to void(...)**
store void(...)*bitcast(i32(i8*,i8*)*@_SMLLN8UNIXODBC13NumResultColsE_63 to void(...)*),void(...)**%V,align 8
%W=getelementptr inbounds i8,i8*%P,i64 16
%X=bitcast i8*%W to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC13NumResultColsE_119 to void(...)*),void(...)**%X,align 8
%Y=getelementptr inbounds i8,i8*%P,i64 24
%Z=bitcast i8*%Y to i32*
store i32 -2147483647,i32*%Z,align 4
ret i8*%P
}
define internal fastcc i32@_SMLLN8UNIXODBC5FetchE_66(i8*inreg%a,i64 inreg%b)#1 gc"smlsharp"personality i32(...)*@sml_personality{
%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 i32(i8*)**
br label%k
h:
call void@sml_check(i32 inreg%d)
%i=bitcast i8**%c to i32(i8*)***
%j=load i32(i8*)**,i32(i8*)***%i,align 8
br label%k
k:
%l=phi i32(i8*)**[%j,%h],[%g,%f]
%m=inttoptr i64%b to i8*
store i8*null,i8**%c,align 8
%n=load i32(i8*)*,i32(i8*)**%l,align 8
call void@sml_leave()#0
%o=invoke i32%n(i8*%m)
to label%p unwind label%q
p:
call void@sml_enter()#0
ret i32%o
q:
%r=landingpad{i8*,i8*}
cleanup
%s=extractvalue{i8*,i8*}%r,1
call void@sml_enter()#0
%t=call i8*@sml_unsave_exn(i8*inreg%s)#0
resume{i8*,i8*}%r
}
define internal fastcc i8*@_SMLLN8UNIXODBC5FetchE_67(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
%n=getelementptr inbounds i8,i8*%m,i64 16
%o=bitcast i8*%n to i8*(i8*,i8*)**
%p=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%o,align 8
%q=bitcast i8*%m to i8**
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%c,align 8
%s=call i8*@sml_alloc(i32 inreg 4)#0
%t=bitcast i8*%s to i32*
%u=getelementptr inbounds i8,i8*%s,i64 -4
%v=bitcast i8*%u to i32*
store i32 4,i32*%v,align 4
store i32 0,i32*%t,align 4
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%p(i8*inreg%w,i8*inreg%s)
%y=bitcast i8*%x to i8**
%z=load i8*,i8**%y,align 8
%A=call i8*@sml_alloc(i32 inreg 20)#0
%B=getelementptr inbounds i8,i8*%A,i64 -4
%C=bitcast i8*%B to i32*
store i32 1342177296,i32*%C,align 4
%D=bitcast i8*%A to i8**
store i8*%z,i8**%D,align 8
%E=getelementptr inbounds i8,i8*%A,i64 8
%F=bitcast i8*%E to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[9x i8]}>,<{[4x i8],i32,[9x i8]}>*@l,i64 0,i32 2,i64 0),i8**%F,align 8
%G=getelementptr inbounds i8,i8*%A,i64 16
%H=bitcast i8*%G to i32*
store i32 2,i32*%H,align 4
%I=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%A)
%J=call i8*@sml_alloc(i32 inreg 12)#0
%K=getelementptr inbounds i8,i8*%J,i64 -4
%L=bitcast i8*%K to i32*
store i32 1342177288,i32*%L,align 4
store i8*%J,i8**%c,align 8
%M=bitcast i8*%J to void(...)**
store void(...)*%I,void(...)**%M,align 8
%N=getelementptr inbounds i8,i8*%J,i64 8
%O=bitcast i8*%N to i32*
store i32 0,i32*%O,align 4
%P=call i8*@sml_alloc(i32 inreg 28)#0
%Q=getelementptr inbounds i8,i8*%P,i64 -4
%R=bitcast i8*%Q to i32*
store i32 1342177304,i32*%R,align 4
%S=load i8*,i8**%c,align 8
%T=bitcast i8*%P to i8**
store i8*%S,i8**%T,align 8
%U=getelementptr inbounds i8,i8*%P,i64 8
%V=bitcast i8*%U to void(...)**
store void(...)*bitcast(i32(i8*,i64)*@_SMLLN8UNIXODBC5FetchE_66 to void(...)*),void(...)**%V,align 8
%W=getelementptr inbounds i8,i8*%P,i64 16
%X=bitcast i8*%W to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC5FetchE_121 to void(...)*),void(...)**%X,align 8
%Y=getelementptr inbounds i8,i8*%P,i64 24
%Z=bitcast i8*%Y to i32*
store i32 -2147483647,i32*%Z,align 4
ret i8*%P
}
define internal fastcc i32@_SMLLN8UNIXODBC7GetDataE_69(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"personality i32(...)*@sml_personality{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%c,align 8
store i8*%b,i8**%d,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%g,label%i
g:
%h=bitcast i8*%a to i32(i8*,i32,i32,i8*,i32,i8*)**
br label%m
i:
call void@sml_check(i32 inreg%e)
%j=load i8*,i8**%d,align 8
%k=bitcast i8**%c to i32(i8*,i32,i32,i8*,i32,i8*)***
%l=load i32(i8*,i32,i32,i8*,i32,i8*)**,i32(i8*,i32,i32,i8*,i32,i8*)***%k,align 8
br label%m
m:
%n=phi i32(i8*,i32,i32,i8*,i32,i8*)**[%l,%i],[%h,%g]
%o=phi i8*[%j,%i],[%b,%g]
%p=load i32(i8*,i32,i32,i8*,i32,i8*)*,i32(i8*,i32,i32,i8*,i32,i8*)**%n,align 8
%q=bitcast i8*%o to i8**
%r=load i8*,i8**%q,align 8
%s=getelementptr inbounds i8,i8*%o,i64 8
%t=bitcast i8*%s to i32*
%u=load i32,i32*%t,align 4
%v=getelementptr inbounds i8,i8*%o,i64 12
%w=bitcast i8*%v to i32*
%x=load i32,i32*%w,align 4
%y=getelementptr inbounds i8,i8*%o,i64 16
%z=bitcast i8*%y to i8**
%A=load i8*,i8**%z,align 8
store i8*%A,i8**%c,align 8
%B=getelementptr inbounds i8,i8*%o,i64 24
%C=bitcast i8*%B to i32*
%D=load i32,i32*%C,align 4
%E=getelementptr inbounds i8,i8*%o,i64 32
%F=bitcast i8*%E to i8**
%G=load i8*,i8**%F,align 8
store i8*%G,i8**%d,align 8
call void@sml_leave()#0
%H=invoke i32%p(i8*%r,i32%u,i32%x,i8*%A,i32%D,i8*%G)
to label%I unwind label%J
I:
call void@sml_enter()#0
ret i32%H
J:
%K=landingpad{i8*,i8*}
cleanup
%L=extractvalue{i8*,i8*}%K,1
call void@sml_enter()#0
%M=call i8*@sml_unsave_exn(i8*inreg%L)#0
resume{i8*,i8*}%K
}
define internal fastcc i8*@_SMLLN8UNIXODBC7GetDataE_70(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
%n=getelementptr inbounds i8,i8*%m,i64 16
%o=bitcast i8*%n to i8*(i8*,i8*)**
%p=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%o,align 8
%q=bitcast i8*%m to i8**
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%c,align 8
%s=call i8*@sml_alloc(i32 inreg 4)#0
%t=bitcast i8*%s to i32*
%u=getelementptr inbounds i8,i8*%s,i64 -4
%v=bitcast i8*%u to i32*
store i32 4,i32*%v,align 4
store i32 0,i32*%t,align 4
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%p(i8*inreg%w,i8*inreg%s)
%y=bitcast i8*%x to i8**
%z=load i8*,i8**%y,align 8
%A=call i8*@sml_alloc(i32 inreg 20)#0
%B=getelementptr inbounds i8,i8*%A,i64 -4
%C=bitcast i8*%B to i32*
store i32 1342177296,i32*%C,align 4
%D=bitcast i8*%A to i8**
store i8*%z,i8**%D,align 8
%E=getelementptr inbounds i8,i8*%A,i64 8
%F=bitcast i8*%E to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@m,i64 0,i32 2,i64 0),i8**%F,align 8
%G=getelementptr inbounds i8,i8*%A,i64 16
%H=bitcast i8*%G to i32*
store i32 2,i32*%H,align 4
%I=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%A)
%J=call i8*@sml_alloc(i32 inreg 12)#0
%K=getelementptr inbounds i8,i8*%J,i64 -4
%L=bitcast i8*%K to i32*
store i32 1342177288,i32*%L,align 4
store i8*%J,i8**%c,align 8
%M=bitcast i8*%J to void(...)**
store void(...)*%I,void(...)**%M,align 8
%N=getelementptr inbounds i8,i8*%J,i64 8
%O=bitcast i8*%N to i32*
store i32 0,i32*%O,align 4
%P=call i8*@sml_alloc(i32 inreg 28)#0
%Q=getelementptr inbounds i8,i8*%P,i64 -4
%R=bitcast i8*%Q to i32*
store i32 1342177304,i32*%R,align 4
%S=load i8*,i8**%c,align 8
%T=bitcast i8*%P to i8**
store i8*%S,i8**%T,align 8
%U=getelementptr inbounds i8,i8*%P,i64 8
%V=bitcast i8*%U to void(...)**
store void(...)*bitcast(i32(i8*,i8*)*@_SMLLN8UNIXODBC7GetDataE_69 to void(...)*),void(...)**%V,align 8
%W=getelementptr inbounds i8,i8*%P,i64 16
%X=bitcast i8*%W to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC7GetDataE_123 to void(...)*),void(...)**%X,align 8
%Y=getelementptr inbounds i8,i8*%P,i64 24
%Z=bitcast i8*%Y to i32*
store i32 -2147483647,i32*%Z,align 4
ret i8*%P
}
define internal fastcc i32@_SMLLN8UNIXODBC6SetPosE_72(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"personality i32(...)*@sml_personality{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%c,align 8
store i8*%b,i8**%d,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%g,label%i
g:
%h=bitcast i8*%a to i32(i8*,i32,i32,i32)**
br label%m
i:
call void@sml_check(i32 inreg%e)
%j=load i8*,i8**%d,align 8
%k=bitcast i8**%c to i32(i8*,i32,i32,i32)***
%l=load i32(i8*,i32,i32,i32)**,i32(i8*,i32,i32,i32)***%k,align 8
br label%m
m:
%n=phi i32(i8*,i32,i32,i32)**[%l,%i],[%h,%g]
%o=phi i8*[%j,%i],[%b,%g]
store i8*null,i8**%d,align 8
store i8*null,i8**%c,align 8
%p=load i32(i8*,i32,i32,i32)*,i32(i8*,i32,i32,i32)**%n,align 8
%q=bitcast i8*%o to i8**
%r=load i8*,i8**%q,align 8
%s=getelementptr inbounds i8,i8*%o,i64 8
%t=bitcast i8*%s to i32*
%u=load i32,i32*%t,align 4
%v=getelementptr inbounds i8,i8*%o,i64 12
%w=bitcast i8*%v to i32*
%x=load i32,i32*%w,align 4
%y=getelementptr inbounds i8,i8*%o,i64 16
%z=bitcast i8*%y to i32*
%A=load i32,i32*%z,align 4
call void@sml_leave()#0
%B=invoke i32%p(i8*%r,i32%u,i32%x,i32%A)
to label%C unwind label%D
C:
call void@sml_enter()#0
ret i32%B
D:
%E=landingpad{i8*,i8*}
cleanup
%F=extractvalue{i8*,i8*}%E,1
call void@sml_enter()#0
%G=call i8*@sml_unsave_exn(i8*inreg%F)#0
resume{i8*,i8*}%E
}
define internal fastcc i8*@_SMLLN8UNIXODBC6SetPosE_73(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
%n=getelementptr inbounds i8,i8*%m,i64 16
%o=bitcast i8*%n to i8*(i8*,i8*)**
%p=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%o,align 8
%q=bitcast i8*%m to i8**
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%c,align 8
%s=call i8*@sml_alloc(i32 inreg 4)#0
%t=bitcast i8*%s to i32*
%u=getelementptr inbounds i8,i8*%s,i64 -4
%v=bitcast i8*%u to i32*
store i32 4,i32*%v,align 4
store i32 0,i32*%t,align 4
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%p(i8*inreg%w,i8*inreg%s)
%y=bitcast i8*%x to i8**
%z=load i8*,i8**%y,align 8
%A=call i8*@sml_alloc(i32 inreg 20)#0
%B=getelementptr inbounds i8,i8*%A,i64 -4
%C=bitcast i8*%B to i32*
store i32 1342177296,i32*%C,align 4
%D=bitcast i8*%A to i8**
store i8*%z,i8**%D,align 8
%E=getelementptr inbounds i8,i8*%A,i64 8
%F=bitcast i8*%E to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[10x i8]}>,<{[4x i8],i32,[10x i8]}>*@n,i64 0,i32 2,i64 0),i8**%F,align 8
%G=getelementptr inbounds i8,i8*%A,i64 16
%H=bitcast i8*%G to i32*
store i32 2,i32*%H,align 4
%I=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%A)
%J=call i8*@sml_alloc(i32 inreg 12)#0
%K=getelementptr inbounds i8,i8*%J,i64 -4
%L=bitcast i8*%K to i32*
store i32 1342177288,i32*%L,align 4
store i8*%J,i8**%c,align 8
%M=bitcast i8*%J to void(...)**
store void(...)*%I,void(...)**%M,align 8
%N=getelementptr inbounds i8,i8*%J,i64 8
%O=bitcast i8*%N to i32*
store i32 0,i32*%O,align 4
%P=call i8*@sml_alloc(i32 inreg 28)#0
%Q=getelementptr inbounds i8,i8*%P,i64 -4
%R=bitcast i8*%Q to i32*
store i32 1342177304,i32*%R,align 4
%S=load i8*,i8**%c,align 8
%T=bitcast i8*%P to i8**
store i8*%S,i8**%T,align 8
%U=getelementptr inbounds i8,i8*%P,i64 8
%V=bitcast i8*%U to void(...)**
store void(...)*bitcast(i32(i8*,i8*)*@_SMLLN8UNIXODBC6SetPosE_72 to void(...)*),void(...)**%V,align 8
%W=getelementptr inbounds i8,i8*%P,i64 16
%X=bitcast i8*%W to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC6SetPosE_125 to void(...)*),void(...)**%X,align 8
%Y=getelementptr inbounds i8,i8*%P,i64 24
%Z=bitcast i8*%Y to i32*
store i32 -2147483647,i32*%Z,align 4
ret i8*%P
}
define internal fastcc i32@_SMLLN8UNIXODBC7ColumnsE_75(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"personality i32(...)*@sml_personality{
%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**%c,align 8
store i8*%b,i8**%d,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 i32(i8*,i8*,i32,i8*,i32,i8*,i32,i8*,i32)**
br label%o
k:
call void@sml_check(i32 inreg%g)
%l=load i8*,i8**%d,align 8
%m=bitcast i8**%c to i32(i8*,i8*,i32,i8*,i32,i8*,i32,i8*,i32)***
%n=load i32(i8*,i8*,i32,i8*,i32,i8*,i32,i8*,i32)**,i32(i8*,i8*,i32,i8*,i32,i8*,i32,i8*,i32)***%m,align 8
br label%o
o:
%p=phi i32(i8*,i8*,i32,i8*,i32,i8*,i32,i8*,i32)**[%n,%k],[%j,%i]
%q=phi i8*[%l,%k],[%b,%i]
%r=load i32(i8*,i8*,i32,i8*,i32,i8*,i32,i8*,i32)*,i32(i8*,i8*,i32,i8*,i32,i8*,i32,i8*,i32)**%p,align 8
%s=bitcast i8*%q to i8**
%t=load i8*,i8**%s,align 8
%u=getelementptr inbounds i8,i8*%q,i64 8
%v=bitcast i8*%u to i8**
%w=load i8*,i8**%v,align 8
store i8*%w,i8**%c,align 8
%x=getelementptr inbounds i8,i8*%q,i64 16
%y=bitcast i8*%x to i32*
%z=load i32,i32*%y,align 4
%A=getelementptr inbounds i8,i8*%q,i64 24
%B=bitcast i8*%A to i8**
%C=load i8*,i8**%B,align 8
store i8*%C,i8**%d,align 8
%D=getelementptr inbounds i8,i8*%q,i64 32
%E=bitcast i8*%D to i32*
%F=load i32,i32*%E,align 4
%G=getelementptr inbounds i8,i8*%q,i64 40
%H=bitcast i8*%G to i8**
%I=load i8*,i8**%H,align 8
store i8*%I,i8**%e,align 8
%J=getelementptr inbounds i8,i8*%q,i64 48
%K=bitcast i8*%J to i32*
%L=load i32,i32*%K,align 4
%M=getelementptr inbounds i8,i8*%q,i64 56
%N=bitcast i8*%M to i8**
%O=load i8*,i8**%N,align 8
store i8*%O,i8**%f,align 8
%P=getelementptr inbounds i8,i8*%q,i64 64
%Q=bitcast i8*%P to i32*
%R=load i32,i32*%Q,align 4
call void@sml_leave()#0
%S=invoke i32%r(i8*%t,i8*%w,i32%z,i8*%C,i32%F,i8*%I,i32%L,i8*%O,i32%R)
to label%T unwind label%U
T:
call void@sml_enter()#0
ret i32%S
U:
%V=landingpad{i8*,i8*}
cleanup
%W=extractvalue{i8*,i8*}%V,1
call void@sml_enter()#0
%X=call i8*@sml_unsave_exn(i8*inreg%W)#0
resume{i8*,i8*}%V
}
define internal fastcc i8*@_SMLLN8UNIXODBC7ColumnsE_76(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
%n=getelementptr inbounds i8,i8*%m,i64 16
%o=bitcast i8*%n to i8*(i8*,i8*)**
%p=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%o,align 8
%q=bitcast i8*%m to i8**
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%c,align 8
%s=call i8*@sml_alloc(i32 inreg 4)#0
%t=bitcast i8*%s to i32*
%u=getelementptr inbounds i8,i8*%s,i64 -4
%v=bitcast i8*%u to i32*
store i32 4,i32*%v,align 4
store i32 0,i32*%t,align 4
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%p(i8*inreg%w,i8*inreg%s)
%y=bitcast i8*%x to i8**
%z=load i8*,i8**%y,align 8
%A=call i8*@sml_alloc(i32 inreg 20)#0
%B=getelementptr inbounds i8,i8*%A,i64 -4
%C=bitcast i8*%B to i32*
store i32 1342177296,i32*%C,align 4
%D=bitcast i8*%A to i8**
store i8*%z,i8**%D,align 8
%E=getelementptr inbounds i8,i8*%A,i64 8
%F=bitcast i8*%E to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@o,i64 0,i32 2,i64 0),i8**%F,align 8
%G=getelementptr inbounds i8,i8*%A,i64 16
%H=bitcast i8*%G to i32*
store i32 2,i32*%H,align 4
%I=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%A)
%J=call i8*@sml_alloc(i32 inreg 12)#0
%K=getelementptr inbounds i8,i8*%J,i64 -4
%L=bitcast i8*%K to i32*
store i32 1342177288,i32*%L,align 4
store i8*%J,i8**%c,align 8
%M=bitcast i8*%J to void(...)**
store void(...)*%I,void(...)**%M,align 8
%N=getelementptr inbounds i8,i8*%J,i64 8
%O=bitcast i8*%N to i32*
store i32 0,i32*%O,align 4
%P=call i8*@sml_alloc(i32 inreg 28)#0
%Q=getelementptr inbounds i8,i8*%P,i64 -4
%R=bitcast i8*%Q to i32*
store i32 1342177304,i32*%R,align 4
%S=load i8*,i8**%c,align 8
%T=bitcast i8*%P to i8**
store i8*%S,i8**%T,align 8
%U=getelementptr inbounds i8,i8*%P,i64 8
%V=bitcast i8*%U to void(...)**
store void(...)*bitcast(i32(i8*,i8*)*@_SMLLN8UNIXODBC7ColumnsE_75 to void(...)*),void(...)**%V,align 8
%W=getelementptr inbounds i8,i8*%P,i64 16
%X=bitcast i8*%W to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC7ColumnsE_127 to void(...)*),void(...)**%X,align 8
%Y=getelementptr inbounds i8,i8*%P,i64 24
%Z=bitcast i8*%Y to i32*
store i32 -2147483647,i32*%Z,align 4
ret i8*%P
}
define internal fastcc i32@_SMLLN8UNIXODBC6TablesE_78(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"personality i32(...)*@sml_personality{
%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**%c,align 8
store i8*%b,i8**%d,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 i32(i8*,i8*,i32,i8*,i32,i8*,i32,i8*,i32)**
br label%o
k:
call void@sml_check(i32 inreg%g)
%l=load i8*,i8**%d,align 8
%m=bitcast i8**%c to i32(i8*,i8*,i32,i8*,i32,i8*,i32,i8*,i32)***
%n=load i32(i8*,i8*,i32,i8*,i32,i8*,i32,i8*,i32)**,i32(i8*,i8*,i32,i8*,i32,i8*,i32,i8*,i32)***%m,align 8
br label%o
o:
%p=phi i32(i8*,i8*,i32,i8*,i32,i8*,i32,i8*,i32)**[%n,%k],[%j,%i]
%q=phi i8*[%l,%k],[%b,%i]
%r=load i32(i8*,i8*,i32,i8*,i32,i8*,i32,i8*,i32)*,i32(i8*,i8*,i32,i8*,i32,i8*,i32,i8*,i32)**%p,align 8
%s=bitcast i8*%q to i8**
%t=load i8*,i8**%s,align 8
%u=getelementptr inbounds i8,i8*%q,i64 8
%v=bitcast i8*%u to i8**
%w=load i8*,i8**%v,align 8
store i8*%w,i8**%c,align 8
%x=getelementptr inbounds i8,i8*%q,i64 16
%y=bitcast i8*%x to i32*
%z=load i32,i32*%y,align 4
%A=getelementptr inbounds i8,i8*%q,i64 24
%B=bitcast i8*%A to i8**
%C=load i8*,i8**%B,align 8
store i8*%C,i8**%d,align 8
%D=getelementptr inbounds i8,i8*%q,i64 32
%E=bitcast i8*%D to i32*
%F=load i32,i32*%E,align 4
%G=getelementptr inbounds i8,i8*%q,i64 40
%H=bitcast i8*%G to i8**
%I=load i8*,i8**%H,align 8
store i8*%I,i8**%e,align 8
%J=getelementptr inbounds i8,i8*%q,i64 48
%K=bitcast i8*%J to i32*
%L=load i32,i32*%K,align 4
%M=getelementptr inbounds i8,i8*%q,i64 56
%N=bitcast i8*%M to i8**
%O=load i8*,i8**%N,align 8
store i8*%O,i8**%f,align 8
%P=getelementptr inbounds i8,i8*%q,i64 64
%Q=bitcast i8*%P to i32*
%R=load i32,i32*%Q,align 4
call void@sml_leave()#0
%S=invoke i32%r(i8*%t,i8*%w,i32%z,i8*%C,i32%F,i8*%I,i32%L,i8*%O,i32%R)
to label%T unwind label%U
T:
call void@sml_enter()#0
ret i32%S
U:
%V=landingpad{i8*,i8*}
cleanup
%W=extractvalue{i8*,i8*}%V,1
call void@sml_enter()#0
%X=call i8*@sml_unsave_exn(i8*inreg%W)#0
resume{i8*,i8*}%V
}
define internal fastcc i8*@_SMLLN8UNIXODBC6TablesE_79(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
%n=getelementptr inbounds i8,i8*%m,i64 16
%o=bitcast i8*%n to i8*(i8*,i8*)**
%p=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%o,align 8
%q=bitcast i8*%m to i8**
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%c,align 8
%s=call i8*@sml_alloc(i32 inreg 4)#0
%t=bitcast i8*%s to i32*
%u=getelementptr inbounds i8,i8*%s,i64 -4
%v=bitcast i8*%u to i32*
store i32 4,i32*%v,align 4
store i32 0,i32*%t,align 4
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%p(i8*inreg%w,i8*inreg%s)
%y=bitcast i8*%x to i8**
%z=load i8*,i8**%y,align 8
%A=call i8*@sml_alloc(i32 inreg 20)#0
%B=getelementptr inbounds i8,i8*%A,i64 -4
%C=bitcast i8*%B to i32*
store i32 1342177296,i32*%C,align 4
%D=bitcast i8*%A to i8**
store i8*%z,i8**%D,align 8
%E=getelementptr inbounds i8,i8*%A,i64 8
%F=bitcast i8*%E to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[10x i8]}>,<{[4x i8],i32,[10x i8]}>*@p,i64 0,i32 2,i64 0),i8**%F,align 8
%G=getelementptr inbounds i8,i8*%A,i64 16
%H=bitcast i8*%G to i32*
store i32 2,i32*%H,align 4
%I=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%A)
%J=call i8*@sml_alloc(i32 inreg 12)#0
%K=getelementptr inbounds i8,i8*%J,i64 -4
%L=bitcast i8*%K to i32*
store i32 1342177288,i32*%L,align 4
store i8*%J,i8**%c,align 8
%M=bitcast i8*%J to void(...)**
store void(...)*%I,void(...)**%M,align 8
%N=getelementptr inbounds i8,i8*%J,i64 8
%O=bitcast i8*%N to i32*
store i32 0,i32*%O,align 4
%P=call i8*@sml_alloc(i32 inreg 28)#0
%Q=getelementptr inbounds i8,i8*%P,i64 -4
%R=bitcast i8*%Q to i32*
store i32 1342177304,i32*%R,align 4
%S=load i8*,i8**%c,align 8
%T=bitcast i8*%P to i8**
store i8*%S,i8**%T,align 8
%U=getelementptr inbounds i8,i8*%P,i64 8
%V=bitcast i8*%U to void(...)**
store void(...)*bitcast(i32(i8*,i8*)*@_SMLLN8UNIXODBC6TablesE_78 to void(...)*),void(...)**%V,align 8
%W=getelementptr inbounds i8,i8*%P,i64 16
%X=bitcast i8*%W to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC6TablesE_129 to void(...)*),void(...)**%X,align 8
%Y=getelementptr inbounds i8,i8*%P,i64 24
%Z=bitcast i8*%Y to i32*
store i32 -2147483647,i32*%Z,align 4
ret i8*%P
}
define internal fastcc i32@_SMLLN8UNIXODBC10DisconnectE_81(i8*inreg%a,i64 inreg%b)#1 gc"smlsharp"personality i32(...)*@sml_personality{
%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 i32(i8*)**
br label%k
h:
call void@sml_check(i32 inreg%d)
%i=bitcast i8**%c to i32(i8*)***
%j=load i32(i8*)**,i32(i8*)***%i,align 8
br label%k
k:
%l=phi i32(i8*)**[%j,%h],[%g,%f]
%m=inttoptr i64%b to i8*
store i8*null,i8**%c,align 8
%n=load i32(i8*)*,i32(i8*)**%l,align 8
call void@sml_leave()#0
%o=invoke i32%n(i8*%m)
to label%p unwind label%q
p:
call void@sml_enter()#0
ret i32%o
q:
%r=landingpad{i8*,i8*}
cleanup
%s=extractvalue{i8*,i8*}%r,1
call void@sml_enter()#0
%t=call i8*@sml_unsave_exn(i8*inreg%s)#0
resume{i8*,i8*}%r
}
define internal fastcc i8*@_SMLLN8UNIXODBC10DisconnectE_82(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
%n=getelementptr inbounds i8,i8*%m,i64 16
%o=bitcast i8*%n to i8*(i8*,i8*)**
%p=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%o,align 8
%q=bitcast i8*%m to i8**
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%c,align 8
%s=call i8*@sml_alloc(i32 inreg 4)#0
%t=bitcast i8*%s to i32*
%u=getelementptr inbounds i8,i8*%s,i64 -4
%v=bitcast i8*%u to i32*
store i32 4,i32*%v,align 4
store i32 0,i32*%t,align 4
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%p(i8*inreg%w,i8*inreg%s)
%y=bitcast i8*%x to i8**
%z=load i8*,i8**%y,align 8
%A=call i8*@sml_alloc(i32 inreg 20)#0
%B=getelementptr inbounds i8,i8*%A,i64 -4
%C=bitcast i8*%B to i32*
store i32 1342177296,i32*%C,align 4
%D=bitcast i8*%A to i8**
store i8*%z,i8**%D,align 8
%E=getelementptr inbounds i8,i8*%A,i64 8
%F=bitcast i8*%E to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[14x i8]}>,<{[4x i8],i32,[14x i8]}>*@q,i64 0,i32 2,i64 0),i8**%F,align 8
%G=getelementptr inbounds i8,i8*%A,i64 16
%H=bitcast i8*%G to i32*
store i32 2,i32*%H,align 4
%I=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%A)
%J=call i8*@sml_alloc(i32 inreg 12)#0
%K=getelementptr inbounds i8,i8*%J,i64 -4
%L=bitcast i8*%K to i32*
store i32 1342177288,i32*%L,align 4
store i8*%J,i8**%c,align 8
%M=bitcast i8*%J to void(...)**
store void(...)*%I,void(...)**%M,align 8
%N=getelementptr inbounds i8,i8*%J,i64 8
%O=bitcast i8*%N to i32*
store i32 0,i32*%O,align 4
%P=call i8*@sml_alloc(i32 inreg 28)#0
%Q=getelementptr inbounds i8,i8*%P,i64 -4
%R=bitcast i8*%Q to i32*
store i32 1342177304,i32*%R,align 4
%S=load i8*,i8**%c,align 8
%T=bitcast i8*%P to i8**
store i8*%S,i8**%T,align 8
%U=getelementptr inbounds i8,i8*%P,i64 8
%V=bitcast i8*%U to void(...)**
store void(...)*bitcast(i32(i8*,i64)*@_SMLLN8UNIXODBC10DisconnectE_81 to void(...)*),void(...)**%V,align 8
%W=getelementptr inbounds i8,i8*%P,i64 16
%X=bitcast i8*%W to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC10DisconnectE_131 to void(...)*),void(...)**%X,align 8
%Y=getelementptr inbounds i8,i8*%P,i64 24
%Z=bitcast i8*%Y to i32*
store i32 -2147483647,i32*%Z,align 4
ret i8*%P
}
define internal fastcc i32@_SMLLN8UNIXODBC10FreeHandleE_84(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"personality i32(...)*@sml_personality{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%c,align 8
store i8*%b,i8**%d,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%g,label%i
g:
%h=bitcast i8*%a to i32(i32,i8*)**
br label%m
i:
call void@sml_check(i32 inreg%e)
%j=load i8*,i8**%d,align 8
%k=bitcast i8**%c to i32(i32,i8*)***
%l=load i32(i32,i8*)**,i32(i32,i8*)***%k,align 8
br label%m
m:
%n=phi i32(i32,i8*)**[%l,%i],[%h,%g]
%o=phi i8*[%j,%i],[%b,%g]
store i8*null,i8**%d,align 8
store i8*null,i8**%c,align 8
%p=load i32(i32,i8*)*,i32(i32,i8*)**%n,align 8
%q=bitcast i8*%o to i32*
%r=load i32,i32*%q,align 4
%s=getelementptr inbounds i8,i8*%o,i64 8
%t=bitcast i8*%s to i8**
%u=load i8*,i8**%t,align 8
call void@sml_leave()#0
%v=invoke i32%p(i32%r,i8*%u)
to label%w unwind label%x
w:
call void@sml_enter()#0
ret i32%v
x:
%y=landingpad{i8*,i8*}
cleanup
%z=extractvalue{i8*,i8*}%y,1
call void@sml_enter()#0
%A=call i8*@sml_unsave_exn(i8*inreg%z)#0
resume{i8*,i8*}%y
}
define internal fastcc i8*@_SMLLN8UNIXODBC10FreeHandleE_85(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
%n=getelementptr inbounds i8,i8*%m,i64 16
%o=bitcast i8*%n to i8*(i8*,i8*)**
%p=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%o,align 8
%q=bitcast i8*%m to i8**
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%c,align 8
%s=call i8*@sml_alloc(i32 inreg 4)#0
%t=bitcast i8*%s to i32*
%u=getelementptr inbounds i8,i8*%s,i64 -4
%v=bitcast i8*%u to i32*
store i32 4,i32*%v,align 4
store i32 0,i32*%t,align 4
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%p(i8*inreg%w,i8*inreg%s)
%y=bitcast i8*%x to i8**
%z=load i8*,i8**%y,align 8
%A=call i8*@sml_alloc(i32 inreg 20)#0
%B=getelementptr inbounds i8,i8*%A,i64 -4
%C=bitcast i8*%B to i32*
store i32 1342177296,i32*%C,align 4
%D=bitcast i8*%A to i8**
store i8*%z,i8**%D,align 8
%E=getelementptr inbounds i8,i8*%A,i64 8
%F=bitcast i8*%E to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[14x i8]}>,<{[4x i8],i32,[14x i8]}>*@r,i64 0,i32 2,i64 0),i8**%F,align 8
%G=getelementptr inbounds i8,i8*%A,i64 16
%H=bitcast i8*%G to i32*
store i32 2,i32*%H,align 4
%I=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%A)
%J=call i8*@sml_alloc(i32 inreg 12)#0
%K=getelementptr inbounds i8,i8*%J,i64 -4
%L=bitcast i8*%K to i32*
store i32 1342177288,i32*%L,align 4
store i8*%J,i8**%c,align 8
%M=bitcast i8*%J to void(...)**
store void(...)*%I,void(...)**%M,align 8
%N=getelementptr inbounds i8,i8*%J,i64 8
%O=bitcast i8*%N to i32*
store i32 0,i32*%O,align 4
%P=call i8*@sml_alloc(i32 inreg 28)#0
%Q=getelementptr inbounds i8,i8*%P,i64 -4
%R=bitcast i8*%Q to i32*
store i32 1342177304,i32*%R,align 4
%S=load i8*,i8**%c,align 8
%T=bitcast i8*%P to i8**
store i8*%S,i8**%T,align 8
%U=getelementptr inbounds i8,i8*%P,i64 8
%V=bitcast i8*%U to void(...)**
store void(...)*bitcast(i32(i8*,i8*)*@_SMLLN8UNIXODBC10FreeHandleE_84 to void(...)*),void(...)**%V,align 8
%W=getelementptr inbounds i8,i8*%P,i64 16
%X=bitcast i8*%W to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC10FreeHandleE_133 to void(...)*),void(...)**%X,align 8
%Y=getelementptr inbounds i8,i8*%P,i64 24
%Z=bitcast i8*%Y to i32*
store i32 -2147483647,i32*%Z,align 4
ret i8*%P
}
define internal fastcc i32@_SMLLN8UNIXODBC10GetDiagRecE_87(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"personality i32(...)*@sml_personality{
%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**%c,align 8
store i8*%b,i8**%d,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 i32(i32,i8*,i32,i8*,i8*,i8*,i32,i8*)**
br label%o
k:
call void@sml_check(i32 inreg%g)
%l=load i8*,i8**%d,align 8
%m=bitcast i8**%c to i32(i32,i8*,i32,i8*,i8*,i8*,i32,i8*)***
%n=load i32(i32,i8*,i32,i8*,i8*,i8*,i32,i8*)**,i32(i32,i8*,i32,i8*,i8*,i8*,i32,i8*)***%m,align 8
br label%o
o:
%p=phi i32(i32,i8*,i32,i8*,i8*,i8*,i32,i8*)**[%n,%k],[%j,%i]
%q=phi i8*[%l,%k],[%b,%i]
%r=load i32(i32,i8*,i32,i8*,i8*,i8*,i32,i8*)*,i32(i32,i8*,i32,i8*,i8*,i8*,i32,i8*)**%p,align 8
%s=bitcast i8*%q to i32*
%t=load i32,i32*%s,align 4
%u=getelementptr inbounds i8,i8*%q,i64 8
%v=bitcast i8*%u to i8**
%w=load i8*,i8**%v,align 8
%x=getelementptr inbounds i8,i8*%q,i64 16
%y=bitcast i8*%x to i32*
%z=load i32,i32*%y,align 4
%A=getelementptr inbounds i8,i8*%q,i64 24
%B=bitcast i8*%A to i8**
%C=load i8*,i8**%B,align 8
store i8*%C,i8**%c,align 8
%D=getelementptr inbounds i8,i8*%q,i64 32
%E=bitcast i8*%D to i8**
%F=load i8*,i8**%E,align 8
store i8*%F,i8**%d,align 8
%G=getelementptr inbounds i8,i8*%q,i64 40
%H=bitcast i8*%G to i8**
%I=load i8*,i8**%H,align 8
store i8*%I,i8**%e,align 8
%J=getelementptr inbounds i8,i8*%q,i64 48
%K=bitcast i8*%J to i32*
%L=load i32,i32*%K,align 4
%M=getelementptr inbounds i8,i8*%q,i64 56
%N=bitcast i8*%M to i8**
%O=load i8*,i8**%N,align 8
store i8*%O,i8**%f,align 8
call void@sml_leave()#0
%P=invoke i32%r(i32%t,i8*%w,i32%z,i8*%C,i8*%F,i8*%I,i32%L,i8*%O)
to label%Q unwind label%R
Q:
call void@sml_enter()#0
ret i32%P
R:
%S=landingpad{i8*,i8*}
cleanup
%T=extractvalue{i8*,i8*}%S,1
call void@sml_enter()#0
%U=call i8*@sml_unsave_exn(i8*inreg%T)#0
resume{i8*,i8*}%S
}
define internal fastcc i8*@_SMLLN8UNIXODBC10GetDiagRecE_88(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
%n=getelementptr inbounds i8,i8*%m,i64 16
%o=bitcast i8*%n to i8*(i8*,i8*)**
%p=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%o,align 8
%q=bitcast i8*%m to i8**
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%c,align 8
%s=call i8*@sml_alloc(i32 inreg 4)#0
%t=bitcast i8*%s to i32*
%u=getelementptr inbounds i8,i8*%s,i64 -4
%v=bitcast i8*%u to i32*
store i32 4,i32*%v,align 4
store i32 0,i32*%t,align 4
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%p(i8*inreg%w,i8*inreg%s)
%y=bitcast i8*%x to i8**
%z=load i8*,i8**%y,align 8
%A=call i8*@sml_alloc(i32 inreg 20)#0
%B=getelementptr inbounds i8,i8*%A,i64 -4
%C=bitcast i8*%B to i32*
store i32 1342177296,i32*%C,align 4
%D=bitcast i8*%A to i8**
store i8*%z,i8**%D,align 8
%E=getelementptr inbounds i8,i8*%A,i64 8
%F=bitcast i8*%E to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[14x i8]}>,<{[4x i8],i32,[14x i8]}>*@s,i64 0,i32 2,i64 0),i8**%F,align 8
%G=getelementptr inbounds i8,i8*%A,i64 16
%H=bitcast i8*%G to i32*
store i32 2,i32*%H,align 4
%I=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%A)
%J=call i8*@sml_alloc(i32 inreg 12)#0
%K=getelementptr inbounds i8,i8*%J,i64 -4
%L=bitcast i8*%K to i32*
store i32 1342177288,i32*%L,align 4
store i8*%J,i8**%c,align 8
%M=bitcast i8*%J to void(...)**
store void(...)*%I,void(...)**%M,align 8
%N=getelementptr inbounds i8,i8*%J,i64 8
%O=bitcast i8*%N to i32*
store i32 0,i32*%O,align 4
%P=call i8*@sml_alloc(i32 inreg 28)#0
%Q=getelementptr inbounds i8,i8*%P,i64 -4
%R=bitcast i8*%Q to i32*
store i32 1342177304,i32*%R,align 4
%S=load i8*,i8**%c,align 8
%T=bitcast i8*%P to i8**
store i8*%S,i8**%T,align 8
%U=getelementptr inbounds i8,i8*%P,i64 8
%V=bitcast i8*%U to void(...)**
store void(...)*bitcast(i32(i8*,i8*)*@_SMLLN8UNIXODBC10GetDiagRecE_87 to void(...)*),void(...)**%V,align 8
%W=getelementptr inbounds i8,i8*%P,i64 16
%X=bitcast i8*%W to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN8UNIXODBC10GetDiagRecE_135 to void(...)*),void(...)**%X,align 8
%Y=getelementptr inbounds i8,i8*%P,i64 24
%Z=bitcast i8*%Y to i32*
store i32 -2147483647,i32*%Z,align 4
ret i8*%P
}
define fastcc i8*@_SMLFN8UNIXODBC11AllocHandleE(i32 inreg%a)local_unnamed_addr#1 gc"smlsharp"{
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%f,label%e
e:
call void@sml_check(i32 inreg%c)
br label%f
f:
%g=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 0),align 8
%h=getelementptr inbounds i8,i8*%g,i64 16
%i=bitcast i8*%h to i8*(i8*,i8*)**
%j=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%i,align 8
%k=bitcast i8*%g to i8**
%l=load i8*,i8**%k,align 8
store i8*%l,i8**%b,align 8
%m=call i8*@sml_alloc(i32 inreg 4)#0
%n=bitcast i8*%m to i32*
%o=getelementptr inbounds i8,i8*%m,i64 -4
%p=bitcast i8*%o to i32*
store i32 4,i32*%p,align 4
store i32%a,i32*%n,align 4
%q=load i8*,i8**%b,align 8
%r=tail call fastcc i8*%j(i8*inreg%q,i8*inreg%m)
ret i8*%r
}
define fastcc i8*@_SMLFN8UNIXODBC7ConnectE(i32 inreg%a)local_unnamed_addr#1 gc"smlsharp"{
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%f,label%e
e:
call void@sml_check(i32 inreg%c)
br label%f
f:
%g=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 1),align 8
%h=getelementptr inbounds i8,i8*%g,i64 16
%i=bitcast i8*%h to i8*(i8*,i8*)**
%j=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%i,align 8
%k=bitcast i8*%g to i8**
%l=load i8*,i8**%k,align 8
store i8*%l,i8**%b,align 8
%m=call i8*@sml_alloc(i32 inreg 4)#0
%n=bitcast i8*%m to i32*
%o=getelementptr inbounds i8,i8*%m,i64 -4
%p=bitcast i8*%o to i32*
store i32 4,i32*%p,align 4
store i32%a,i32*%n,align 4
%q=load i8*,i8**%b,align 8
%r=tail call fastcc i8*%j(i8*inreg%q,i8*inreg%m)
ret i8*%r
}
define fastcc i8*@_SMLFN8UNIXODBC10SetEnvAttrE(i32 inreg%a)local_unnamed_addr#1 gc"smlsharp"{
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%f,label%e
e:
call void@sml_check(i32 inreg%c)
br label%f
f:
%g=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 2),align 8
%h=getelementptr inbounds i8,i8*%g,i64 16
%i=bitcast i8*%h to i8*(i8*,i8*)**
%j=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%i,align 8
%k=bitcast i8*%g to i8**
%l=load i8*,i8**%k,align 8
store i8*%l,i8**%b,align 8
%m=call i8*@sml_alloc(i32 inreg 4)#0
%n=bitcast i8*%m to i32*
%o=getelementptr inbounds i8,i8*%m,i64 -4
%p=bitcast i8*%o to i32*
store i32 4,i32*%p,align 4
store i32%a,i32*%n,align 4
%q=load i8*,i8**%b,align 8
%r=tail call fastcc i8*%j(i8*inreg%q,i8*inreg%m)
ret i8*%r
}
define fastcc i8*@_SMLFN8UNIXODBC11SetStmtAttrE(i32 inreg%a)local_unnamed_addr#1 gc"smlsharp"{
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%f,label%e
e:
call void@sml_check(i32 inreg%c)
br label%f
f:
%g=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 3),align 8
%h=getelementptr inbounds i8,i8*%g,i64 16
%i=bitcast i8*%h to i8*(i8*,i8*)**
%j=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%i,align 8
%k=bitcast i8*%g to i8**
%l=load i8*,i8**%k,align 8
store i8*%l,i8**%b,align 8
%m=call i8*@sml_alloc(i32 inreg 4)#0
%n=bitcast i8*%m to i32*
%o=getelementptr inbounds i8,i8*%m,i64 -4
%p=bitcast i8*%o to i32*
store i32 4,i32*%p,align 4
store i32%a,i32*%n,align 4
%q=load i8*,i8**%b,align 8
%r=tail call fastcc i8*%j(i8*inreg%q,i8*inreg%m)
ret i8*%r
}
define fastcc i8*@_SMLFN8UNIXODBC10ExecDirectE(i32 inreg%a)local_unnamed_addr#1 gc"smlsharp"{
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%f,label%e
e:
call void@sml_check(i32 inreg%c)
br label%f
f:
%g=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 4),align 8
%h=getelementptr inbounds i8,i8*%g,i64 16
%i=bitcast i8*%h to i8*(i8*,i8*)**
%j=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%i,align 8
%k=bitcast i8*%g to i8**
%l=load i8*,i8**%k,align 8
store i8*%l,i8**%b,align 8
%m=call i8*@sml_alloc(i32 inreg 4)#0
%n=bitcast i8*%m to i32*
%o=getelementptr inbounds i8,i8*%m,i64 -4
%p=bitcast i8*%o to i32*
store i32 4,i32*%p,align 4
store i32%a,i32*%n,align 4
%q=load i8*,i8**%b,align 8
%r=tail call fastcc i8*%j(i8*inreg%q,i8*inreg%m)
ret i8*%r
}
define fastcc i8*@_SMLFN8UNIXODBC8RowCountE(i32 inreg%a)local_unnamed_addr#1 gc"smlsharp"{
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%f,label%e
e:
call void@sml_check(i32 inreg%c)
br label%f
f:
%g=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 5),align 8
%h=getelementptr inbounds i8,i8*%g,i64 16
%i=bitcast i8*%h to i8*(i8*,i8*)**
%j=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%i,align 8
%k=bitcast i8*%g to i8**
%l=load i8*,i8**%k,align 8
store i8*%l,i8**%b,align 8
%m=call i8*@sml_alloc(i32 inreg 4)#0
%n=bitcast i8*%m to i32*
%o=getelementptr inbounds i8,i8*%m,i64 -4
%p=bitcast i8*%o to i32*
store i32 4,i32*%p,align 4
store i32%a,i32*%n,align 4
%q=load i8*,i8**%b,align 8
%r=tail call fastcc i8*%j(i8*inreg%q,i8*inreg%m)
ret i8*%r
}
define fastcc i8*@_SMLFN8UNIXODBC13NumResultColsE(i32 inreg%a)local_unnamed_addr#1 gc"smlsharp"{
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%f,label%e
e:
call void@sml_check(i32 inreg%c)
br label%f
f:
%g=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 6),align 8
%h=getelementptr inbounds i8,i8*%g,i64 16
%i=bitcast i8*%h to i8*(i8*,i8*)**
%j=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%i,align 8
%k=bitcast i8*%g to i8**
%l=load i8*,i8**%k,align 8
store i8*%l,i8**%b,align 8
%m=call i8*@sml_alloc(i32 inreg 4)#0
%n=bitcast i8*%m to i32*
%o=getelementptr inbounds i8,i8*%m,i64 -4
%p=bitcast i8*%o to i32*
store i32 4,i32*%p,align 4
store i32%a,i32*%n,align 4
%q=load i8*,i8**%b,align 8
%r=tail call fastcc i8*%j(i8*inreg%q,i8*inreg%m)
ret i8*%r
}
define fastcc i8*@_SMLFN8UNIXODBC5FetchE(i32 inreg%a)local_unnamed_addr#1 gc"smlsharp"{
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%f,label%e
e:
call void@sml_check(i32 inreg%c)
br label%f
f:
%g=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 7),align 8
%h=getelementptr inbounds i8,i8*%g,i64 16
%i=bitcast i8*%h to i8*(i8*,i8*)**
%j=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%i,align 8
%k=bitcast i8*%g to i8**
%l=load i8*,i8**%k,align 8
store i8*%l,i8**%b,align 8
%m=call i8*@sml_alloc(i32 inreg 4)#0
%n=bitcast i8*%m to i32*
%o=getelementptr inbounds i8,i8*%m,i64 -4
%p=bitcast i8*%o to i32*
store i32 4,i32*%p,align 4
store i32%a,i32*%n,align 4
%q=load i8*,i8**%b,align 8
%r=tail call fastcc i8*%j(i8*inreg%q,i8*inreg%m)
ret i8*%r
}
define fastcc i8*@_SMLFN8UNIXODBC7GetDataE(i32 inreg%a)local_unnamed_addr#1 gc"smlsharp"{
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%f,label%e
e:
call void@sml_check(i32 inreg%c)
br label%f
f:
%g=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 8),align 8
%h=getelementptr inbounds i8,i8*%g,i64 16
%i=bitcast i8*%h to i8*(i8*,i8*)**
%j=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%i,align 8
%k=bitcast i8*%g to i8**
%l=load i8*,i8**%k,align 8
store i8*%l,i8**%b,align 8
%m=call i8*@sml_alloc(i32 inreg 4)#0
%n=bitcast i8*%m to i32*
%o=getelementptr inbounds i8,i8*%m,i64 -4
%p=bitcast i8*%o to i32*
store i32 4,i32*%p,align 4
store i32%a,i32*%n,align 4
%q=load i8*,i8**%b,align 8
%r=tail call fastcc i8*%j(i8*inreg%q,i8*inreg%m)
ret i8*%r
}
define fastcc i8*@_SMLFN8UNIXODBC6SetPosE(i32 inreg%a)local_unnamed_addr#1 gc"smlsharp"{
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%f,label%e
e:
call void@sml_check(i32 inreg%c)
br label%f
f:
%g=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 9),align 8
%h=getelementptr inbounds i8,i8*%g,i64 16
%i=bitcast i8*%h to i8*(i8*,i8*)**
%j=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%i,align 8
%k=bitcast i8*%g to i8**
%l=load i8*,i8**%k,align 8
store i8*%l,i8**%b,align 8
%m=call i8*@sml_alloc(i32 inreg 4)#0
%n=bitcast i8*%m to i32*
%o=getelementptr inbounds i8,i8*%m,i64 -4
%p=bitcast i8*%o to i32*
store i32 4,i32*%p,align 4
store i32%a,i32*%n,align 4
%q=load i8*,i8**%b,align 8
%r=tail call fastcc i8*%j(i8*inreg%q,i8*inreg%m)
ret i8*%r
}
define fastcc i8*@_SMLFN8UNIXODBC7ColumnsE(i32 inreg%a)local_unnamed_addr#1 gc"smlsharp"{
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%f,label%e
e:
call void@sml_check(i32 inreg%c)
br label%f
f:
%g=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 10),align 8
%h=getelementptr inbounds i8,i8*%g,i64 16
%i=bitcast i8*%h to i8*(i8*,i8*)**
%j=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%i,align 8
%k=bitcast i8*%g to i8**
%l=load i8*,i8**%k,align 8
store i8*%l,i8**%b,align 8
%m=call i8*@sml_alloc(i32 inreg 4)#0
%n=bitcast i8*%m to i32*
%o=getelementptr inbounds i8,i8*%m,i64 -4
%p=bitcast i8*%o to i32*
store i32 4,i32*%p,align 4
store i32%a,i32*%n,align 4
%q=load i8*,i8**%b,align 8
%r=tail call fastcc i8*%j(i8*inreg%q,i8*inreg%m)
ret i8*%r
}
define fastcc i8*@_SMLFN8UNIXODBC6TablesE(i32 inreg%a)local_unnamed_addr#1 gc"smlsharp"{
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%f,label%e
e:
call void@sml_check(i32 inreg%c)
br label%f
f:
%g=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 11),align 8
%h=getelementptr inbounds i8,i8*%g,i64 16
%i=bitcast i8*%h to i8*(i8*,i8*)**
%j=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%i,align 8
%k=bitcast i8*%g to i8**
%l=load i8*,i8**%k,align 8
store i8*%l,i8**%b,align 8
%m=call i8*@sml_alloc(i32 inreg 4)#0
%n=bitcast i8*%m to i32*
%o=getelementptr inbounds i8,i8*%m,i64 -4
%p=bitcast i8*%o to i32*
store i32 4,i32*%p,align 4
store i32%a,i32*%n,align 4
%q=load i8*,i8**%b,align 8
%r=tail call fastcc i8*%j(i8*inreg%q,i8*inreg%m)
ret i8*%r
}
define fastcc i8*@_SMLFN8UNIXODBC10DisconnectE(i32 inreg%a)local_unnamed_addr#1 gc"smlsharp"{
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%f,label%e
e:
call void@sml_check(i32 inreg%c)
br label%f
f:
%g=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 12),align 8
%h=getelementptr inbounds i8,i8*%g,i64 16
%i=bitcast i8*%h to i8*(i8*,i8*)**
%j=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%i,align 8
%k=bitcast i8*%g to i8**
%l=load i8*,i8**%k,align 8
store i8*%l,i8**%b,align 8
%m=call i8*@sml_alloc(i32 inreg 4)#0
%n=bitcast i8*%m to i32*
%o=getelementptr inbounds i8,i8*%m,i64 -4
%p=bitcast i8*%o to i32*
store i32 4,i32*%p,align 4
store i32%a,i32*%n,align 4
%q=load i8*,i8**%b,align 8
%r=tail call fastcc i8*%j(i8*inreg%q,i8*inreg%m)
ret i8*%r
}
define fastcc i8*@_SMLFN8UNIXODBC10FreeHandleE(i32 inreg%a)local_unnamed_addr#1 gc"smlsharp"{
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%f,label%e
e:
call void@sml_check(i32 inreg%c)
br label%f
f:
%g=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 13),align 8
%h=getelementptr inbounds i8,i8*%g,i64 16
%i=bitcast i8*%h to i8*(i8*,i8*)**
%j=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%i,align 8
%k=bitcast i8*%g to i8**
%l=load i8*,i8**%k,align 8
store i8*%l,i8**%b,align 8
%m=call i8*@sml_alloc(i32 inreg 4)#0
%n=bitcast i8*%m to i32*
%o=getelementptr inbounds i8,i8*%m,i64 -4
%p=bitcast i8*%o to i32*
store i32 4,i32*%p,align 4
store i32%a,i32*%n,align 4
%q=load i8*,i8**%b,align 8
%r=tail call fastcc i8*%j(i8*inreg%q,i8*inreg%m)
ret i8*%r
}
define fastcc i8*@_SMLFN8UNIXODBC10GetDiagRecE(i32 inreg%a)local_unnamed_addr#1 gc"smlsharp"{
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%f,label%e
e:
call void@sml_check(i32 inreg%c)
br label%f
f:
%g=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[15x i8*]}>,<{[4x i8],i32,[15x i8*]}>*@_SML_gvar896833c3ab7437b2_UNIXODBC,i64 0,i32 2,i64 14),align 8
%h=getelementptr inbounds i8,i8*%g,i64 16
%i=bitcast i8*%h to i8*(i8*,i8*)**
%j=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%i,align 8
%k=bitcast i8*%g to i8**
%l=load i8*,i8**%k,align 8
store i8*%l,i8**%b,align 8
%m=call i8*@sml_alloc(i32 inreg 4)#0
%n=bitcast i8*%m to i32*
%o=getelementptr inbounds i8,i8*%m,i64 -4
%p=bitcast i8*%o to i32*
store i32 4,i32*%p,align 4
store i32%a,i32*%n,align 4
%q=load i8*,i8**%b,align 8
%r=tail call fastcc i8*%j(i8*inreg%q,i8*inreg%m)
ret i8*%r
}
define internal fastcc i8*@_SMLLN8UNIXODBC4lazyE_104(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLN8UNIXODBC4lazyE_35(i8*inreg%a,i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLN8UNIXODBC3libE_106(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLN8UNIXODBC3libE_42(i32 inreg%d)
%f=tail call i8*@sml_alloc(i32 inreg 8)#0
%g=getelementptr inbounds i8,i8*%f,i64 -4
%h=bitcast i8*%g to i32*
store i32 8,i32*%h,align 4
%i=bitcast i8*%f to i8**
store i8*%e,i8**%i,align 8
ret i8*%f
}
define internal fastcc i8*@_SMLLN8UNIXODBC11AllocHandleE_107(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLLN8UNIXODBC11AllocHandleE_45(i8*inreg%a,i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 4)#0
%e=bitcast i8*%d to i32*
%f=getelementptr inbounds i8,i8*%d,i64 -4
%g=bitcast i8*%f to i32*
store i32 4,i32*%g,align 4
store i32%c,i32*%e,align 4
ret i8*%d
}
define internal fastcc i8*@_SMLLN8UNIXODBC11AllocHandleE_108(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLN8UNIXODBC11AllocHandleE_46(i8*inreg%a,i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLN8UNIXODBC7ConnectE_109(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLLN8UNIXODBC7ConnectE_48(i8*inreg%a,i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 4)#0
%e=bitcast i8*%d to i32*
%f=getelementptr inbounds i8,i8*%d,i64 -4
%g=bitcast i8*%f to i32*
store i32 4,i32*%g,align 4
store i32%c,i32*%e,align 4
ret i8*%d
}
define internal fastcc i8*@_SMLLN8UNIXODBC7ConnectE_110(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLN8UNIXODBC7ConnectE_49(i8*inreg%a,i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLN8UNIXODBC10SetEnvAttrE_111(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLLN8UNIXODBC10SetEnvAttrE_51(i8*inreg%a,i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 4)#0
%e=bitcast i8*%d to i32*
%f=getelementptr inbounds i8,i8*%d,i64 -4
%g=bitcast i8*%f to i32*
store i32 4,i32*%g,align 4
store i32%c,i32*%e,align 4
ret i8*%d
}
define internal fastcc i8*@_SMLLN8UNIXODBC10SetEnvAttrE_112(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLN8UNIXODBC10SetEnvAttrE_52(i8*inreg%a,i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLN8UNIXODBC11SetStmtAttrE_113(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLLN8UNIXODBC11SetStmtAttrE_54(i8*inreg%a,i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 4)#0
%e=bitcast i8*%d to i32*
%f=getelementptr inbounds i8,i8*%d,i64 -4
%g=bitcast i8*%f to i32*
store i32 4,i32*%g,align 4
store i32%c,i32*%e,align 4
ret i8*%d
}
define internal fastcc i8*@_SMLLN8UNIXODBC11SetStmtAttrE_114(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLN8UNIXODBC11SetStmtAttrE_55(i8*inreg%a,i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLN8UNIXODBC10ExecDirectE_115(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLLN8UNIXODBC10ExecDirectE_57(i8*inreg%a,i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 4)#0
%e=bitcast i8*%d to i32*
%f=getelementptr inbounds i8,i8*%d,i64 -4
%g=bitcast i8*%f to i32*
store i32 4,i32*%g,align 4
store i32%c,i32*%e,align 4
ret i8*%d
}
define internal fastcc i8*@_SMLLN8UNIXODBC10ExecDirectE_116(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLN8UNIXODBC10ExecDirectE_58(i8*inreg%a,i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLN8UNIXODBC8RowCountE_117(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLLN8UNIXODBC8RowCountE_60(i8*inreg%a,i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 4)#0
%e=bitcast i8*%d to i32*
%f=getelementptr inbounds i8,i8*%d,i64 -4
%g=bitcast i8*%f to i32*
store i32 4,i32*%g,align 4
store i32%c,i32*%e,align 4
ret i8*%d
}
define internal fastcc i8*@_SMLLN8UNIXODBC8RowCountE_118(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLN8UNIXODBC8RowCountE_61(i8*inreg%a,i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLN8UNIXODBC13NumResultColsE_119(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLLN8UNIXODBC13NumResultColsE_63(i8*inreg%a,i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 4)#0
%e=bitcast i8*%d to i32*
%f=getelementptr inbounds i8,i8*%d,i64 -4
%g=bitcast i8*%f to i32*
store i32 4,i32*%g,align 4
store i32%c,i32*%e,align 4
ret i8*%d
}
define internal fastcc i8*@_SMLLN8UNIXODBC13NumResultColsE_120(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLN8UNIXODBC13NumResultColsE_64(i8*inreg%a,i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLN8UNIXODBC5FetchE_121(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i64*
%d=load i64,i64*%c,align 4
%e=tail call fastcc i32@_SMLLN8UNIXODBC5FetchE_66(i8*inreg%a,i64 inreg%d)
%f=tail call i8*@sml_alloc(i32 inreg 4)#0
%g=bitcast i8*%f to i32*
%h=getelementptr inbounds i8,i8*%f,i64 -4
%i=bitcast i8*%h to i32*
store i32 4,i32*%i,align 4
store i32%e,i32*%g,align 4
ret i8*%f
}
define internal fastcc i8*@_SMLLN8UNIXODBC5FetchE_122(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLN8UNIXODBC5FetchE_67(i8*inreg%a,i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLN8UNIXODBC7GetDataE_123(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLLN8UNIXODBC7GetDataE_69(i8*inreg%a,i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 4)#0
%e=bitcast i8*%d to i32*
%f=getelementptr inbounds i8,i8*%d,i64 -4
%g=bitcast i8*%f to i32*
store i32 4,i32*%g,align 4
store i32%c,i32*%e,align 4
ret i8*%d
}
define internal fastcc i8*@_SMLLN8UNIXODBC7GetDataE_124(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLN8UNIXODBC7GetDataE_70(i8*inreg%a,i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLN8UNIXODBC6SetPosE_125(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLLN8UNIXODBC6SetPosE_72(i8*inreg%a,i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 4)#0
%e=bitcast i8*%d to i32*
%f=getelementptr inbounds i8,i8*%d,i64 -4
%g=bitcast i8*%f to i32*
store i32 4,i32*%g,align 4
store i32%c,i32*%e,align 4
ret i8*%d
}
define internal fastcc i8*@_SMLLN8UNIXODBC6SetPosE_126(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLN8UNIXODBC6SetPosE_73(i8*inreg%a,i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLN8UNIXODBC7ColumnsE_127(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLLN8UNIXODBC7ColumnsE_75(i8*inreg%a,i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 4)#0
%e=bitcast i8*%d to i32*
%f=getelementptr inbounds i8,i8*%d,i64 -4
%g=bitcast i8*%f to i32*
store i32 4,i32*%g,align 4
store i32%c,i32*%e,align 4
ret i8*%d
}
define internal fastcc i8*@_SMLLN8UNIXODBC7ColumnsE_128(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLN8UNIXODBC7ColumnsE_76(i8*inreg%a,i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLN8UNIXODBC6TablesE_129(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLLN8UNIXODBC6TablesE_78(i8*inreg%a,i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 4)#0
%e=bitcast i8*%d to i32*
%f=getelementptr inbounds i8,i8*%d,i64 -4
%g=bitcast i8*%f to i32*
store i32 4,i32*%g,align 4
store i32%c,i32*%e,align 4
ret i8*%d
}
define internal fastcc i8*@_SMLLN8UNIXODBC6TablesE_130(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLN8UNIXODBC6TablesE_79(i8*inreg%a,i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLN8UNIXODBC10DisconnectE_131(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i64*
%d=load i64,i64*%c,align 4
%e=tail call fastcc i32@_SMLLN8UNIXODBC10DisconnectE_81(i8*inreg%a,i64 inreg%d)
%f=tail call i8*@sml_alloc(i32 inreg 4)#0
%g=bitcast i8*%f to i32*
%h=getelementptr inbounds i8,i8*%f,i64 -4
%i=bitcast i8*%h to i32*
store i32 4,i32*%i,align 4
store i32%e,i32*%g,align 4
ret i8*%f
}
define internal fastcc i8*@_SMLLN8UNIXODBC10DisconnectE_132(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLN8UNIXODBC10DisconnectE_82(i8*inreg%a,i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLN8UNIXODBC10FreeHandleE_133(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLLN8UNIXODBC10FreeHandleE_84(i8*inreg%a,i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 4)#0
%e=bitcast i8*%d to i32*
%f=getelementptr inbounds i8,i8*%d,i64 -4
%g=bitcast i8*%f to i32*
store i32 4,i32*%g,align 4
store i32%c,i32*%e,align 4
ret i8*%d
}
define internal fastcc i8*@_SMLLN8UNIXODBC10FreeHandleE_134(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLN8UNIXODBC10FreeHandleE_85(i8*inreg%a,i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLN8UNIXODBC10GetDiagRecE_135(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLLN8UNIXODBC10GetDiagRecE_87(i8*inreg%a,i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 4)#0
%e=bitcast i8*%d to i32*
%f=getelementptr inbounds i8,i8*%d,i64 -4
%g=bitcast i8*%f to i32*
store i32 4,i32*%g,align 4
store i32%c,i32*%e,align 4
ret i8*%d
}
define internal fastcc i8*@_SMLLN8UNIXODBC10GetDiagRecE_136(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLN8UNIXODBC10GetDiagRecE_88(i8*inreg%a,i32 inreg%d)
ret i8*%e
}
attributes#0={nounwind}
attributes#1={uwtable}
attributes#2={noreturn nounwind}
attributes#3={nounwind uwtable}
