@sml_check_flag=external local_unnamed_addr global i32
@_SMLZN19SMLSharp__SQL__Config6DLLEXTE=external local_unnamed_addr global i8*
@_SMLDL35=private global<{[4x i8],i32,i8*}><{[4x i8]zeroinitializer,i32 -1342177272,i8*null}>,align 8
@_SMLDL36=private global<{[4x i8],i32,i8*}><{[4x i8]zeroinitializer,i32 -1342177272,i8*null}>,align 8
@a=private unnamed_addr constant<{[4x i8],i32,[12x i8]}><{[4x i8]zeroinitializer,i32 -2147483636,[12x i8]c"PQconnectdb\00"}>,align 8
@b=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32)*@_SMLFN18SMLSharp__SQL__PGSQL11PQconnectdbE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL11PQconnectdbE_193 to void(...)*),i32 -2147483647}>,align 8
@_SMLDL44=private global<{[4x i8],i32,i8*}><{[4x i8]zeroinitializer,i32 -1342177272,i8*null}>,align 8
@c=private unnamed_addr constant<{[4x i8],i32,[9x i8]}><{[4x i8]zeroinitializer,i32 -2147483639,[9x i8]c"PQstatus\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)*@_SMLFN18SMLSharp__SQL__PGSQL8PQstatusE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL8PQstatusE_195 to void(...)*),i32 -2147483647}>,align 8
@_SMLDL52=private global<{[4x i8],i32,i8*}><{[4x i8]zeroinitializer,i32 -1342177272,i8*null}>,align 8
@e=private unnamed_addr constant<{[4x i8],i32,[9x i8]}><{[4x i8]zeroinitializer,i32 -2147483639,[9x i8]c"PQfinish\00"}>,align 8
@f=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32)*@_SMLFN18SMLSharp__SQL__PGSQL8PQfinishE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL8PQfinishE_197 to void(...)*),i32 -2147483647}>,align 8
@g=private unnamed_addr constant<{[4x i8],i32,[7x i8]}><{[4x i8]zeroinitializer,i32 -2147483641,[7x i8]c"PQexec\00"}>,align 8
@_SMLDL67=private global<{[4x i8],i32,i8*}><{[4x i8]zeroinitializer,i32 -1342177272,i8*null}>,align 8
@h=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32)*@_SMLFN18SMLSharp__SQL__PGSQL6PQexecE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL6PQexecE_200 to void(...)*),i32 -2147483647}>,align 8
@i=private unnamed_addr constant<{[4x i8],i32,[11x i8]}><{[4x i8]zeroinitializer,i32 -2147483637,[11x i8]c"PQgetvalue\00"}>,align 8
@_SMLDL77=private global<{[4x i8],i32,i8*}><{[4x i8]zeroinitializer,i32 -1342177272,i8*null}>,align 8
@j=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32)*@_SMLFN18SMLSharp__SQL__PGSQL10PQgetvalueE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL10PQgetvalueE_203 to void(...)*),i32 -2147483647}>,align 8
@k=private unnamed_addr constant<{[4x i8],i32,[12x i8]}><{[4x i8]zeroinitializer,i32 -2147483636,[12x i8]c"PQgetlength\00"}>,align 8
@_SMLDL87=private global<{[4x i8],i32,i8*}><{[4x i8]zeroinitializer,i32 -1342177272,i8*null}>,align 8
@l=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32)*@_SMLFN18SMLSharp__SQL__PGSQL11PQgetlengthE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL11PQgetlengthE_206 to void(...)*),i32 -2147483647}>,align 8
@m=private unnamed_addr constant<{[4x i8],i32,[12x i8]}><{[4x i8]zeroinitializer,i32 -2147483636,[12x i8]c"PQgetisnull\00"}>,align 8
@_SMLDL97=private global<{[4x i8],i32,i8*}><{[4x i8]zeroinitializer,i32 -1342177272,i8*null}>,align 8
@n=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32)*@_SMLFN18SMLSharp__SQL__PGSQL11PQgetisnullE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL11PQgetisnullE_209 to void(...)*),i32 -2147483647}>,align 8
@_SMLDL100=private global<{[4x i8],i32,i8*}><{[4x i8]zeroinitializer,i32 -1342177272,i8*null}>,align 8
@o=private unnamed_addr constant<{[4x i8],i32,[10x i8]}><{[4x i8]zeroinitializer,i32 -2147483638,[10x i8]c"PQntuples\00"}>,align 8
@p=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32)*@_SMLFN18SMLSharp__SQL__PGSQL9PQntuplesE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL9PQntuplesE_211 to void(...)*),i32 -2147483647}>,align 8
@_SMLDL108=private global<{[4x i8],i32,i8*}><{[4x i8]zeroinitializer,i32 -1342177272,i8*null}>,align 8
@q=private unnamed_addr constant<{[4x i8],i32,[10x i8]}><{[4x i8]zeroinitializer,i32 -2147483638,[10x i8]c"PQnfields\00"}>,align 8
@r=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32)*@_SMLFN18SMLSharp__SQL__PGSQL9PQnfieldsE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL9PQnfieldsE_213 to void(...)*),i32 -2147483647}>,align 8
@s=private unnamed_addr constant<{[4x i8],i32,[8x i8]}><{[4x i8]zeroinitializer,i32 -2147483640,[8x i8]c"PQfname\00"}>,align 8
@_SMLDL123=private global<{[4x i8],i32,i8*}><{[4x i8]zeroinitializer,i32 -1342177272,i8*null}>,align 8
@t=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32)*@_SMLFN18SMLSharp__SQL__PGSQL7PQfnameE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL7PQfnameE_216 to void(...)*),i32 -2147483647}>,align 8
@u=private unnamed_addr constant<{[4x i8],i32,[10x i8]}><{[4x i8]zeroinitializer,i32 -2147483638,[10x i8]c"PQfnumber\00"}>,align 8
@_SMLDL133=private global<{[4x i8],i32,i8*}><{[4x i8]zeroinitializer,i32 -1342177272,i8*null}>,align 8
@v=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32)*@_SMLFN18SMLSharp__SQL__PGSQL9PQfnumberE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL9PQfnumberE_219 to void(...)*),i32 -2147483647}>,align 8
@_SMLDL136=private global<{[4x i8],i32,i8*}><{[4x i8]zeroinitializer,i32 -1342177272,i8*null}>,align 8
@w=private unnamed_addr constant<{[4x i8],i32,[15x i8]}><{[4x i8]zeroinitializer,i32 -2147483633,[15x i8]c"PQresultStatus\00"}>,align 8
@x=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32)*@_SMLFN18SMLSharp__SQL__PGSQL14PQresultStatusE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL14PQresultStatusE_221 to void(...)*),i32 -2147483647}>,align 8
@_SMLDL144=private global<{[4x i8],i32,i8*}><{[4x i8]zeroinitializer,i32 -1342177272,i8*null}>,align 8
@y=private unnamed_addr constant<{[4x i8],i32,[15x i8]}><{[4x i8]zeroinitializer,i32 -2147483633,[15x i8]c"PQerrorMessage\00"}>,align 8
@z=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32)*@_SMLFN18SMLSharp__SQL__PGSQL14PQerrorMessageE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL14PQerrorMessageE_223 to void(...)*),i32 -2147483647}>,align 8
@_SMLDL152=private global<{[4x i8],i32,i8*}><{[4x i8]zeroinitializer,i32 -1342177272,i8*null}>,align 8
@A=private unnamed_addr constant<{[4x i8],i32,[21x i8]}><{[4x i8]zeroinitializer,i32 -2147483627,[21x i8]c"PQresultErrorMessage\00"}>,align 8
@B=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32)*@_SMLFN18SMLSharp__SQL__PGSQL20PQresultErrorMessageE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL20PQresultErrorMessageE_225 to void(...)*),i32 -2147483647}>,align 8
@_SMLDL160=private global<{[4x i8],i32,i8*}><{[4x i8]zeroinitializer,i32 -1342177272,i8*null}>,align 8
@C=private unnamed_addr constant<{[4x i8],i32,[5x i8]}><{[4x i8]zeroinitializer,i32 -2147483643,[5x i8]c"PQdb\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)*@_SMLFN18SMLSharp__SQL__PGSQL4PQdbE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL4PQdbE_227 to void(...)*),i32 -2147483647}>,align 8
@_SMLDL168=private global<{[4x i8],i32,i8*}><{[4x i8]zeroinitializer,i32 -1342177272,i8*null}>,align 8
@E=private unnamed_addr constant<{[4x i8],i32,[7x i8]}><{[4x i8]zeroinitializer,i32 -2147483641,[7x i8]c"PQuser\00"}>,align 8
@F=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32)*@_SMLFN18SMLSharp__SQL__PGSQL6PQuserE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL6PQuserE_229 to void(...)*),i32 -2147483647}>,align 8
@_SMLDL176=private global<{[4x i8],i32,i8*}><{[4x i8]zeroinitializer,i32 -1342177272,i8*null}>,align 8
@G=private unnamed_addr constant<{[4x i8],i32,[15x i8]}><{[4x i8]zeroinitializer,i32 -2147483633,[15x i8]c"SMLSHARP_LIBPQ\00"}>,align 8
@H=private unnamed_addr constant<{[4x i8],i32,[9x i8]}><{[4x i8]zeroinitializer,i32 -2147483639,[9x i8]c"libpq.5.\00"}>,align 8
@I=private unnamed_addr constant<{[4x i8],i32,[11x i8]}><{[4x i8]zeroinitializer,i32 -2147483637,[11x i8]c"libpq.so.5\00"}>,align 8
@J=private unnamed_addr constant<{[4x i8],i32,[8x i8]}><{[4x i8]zeroinitializer,i32 -2147483640,[8x i8]c"PQclear\00"}>,align 8
@K=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32)*@_SMLFN18SMLSharp__SQL__PGSQL7PQclearE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL7PQclearE_231 to void(...)*),i32 -2147483647}>,align 8
@L=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i64)*@_SMLFN18SMLSharp__SQL__PGSQL15getErrorMessageE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL15getErrorMessageE_232 to void(...)*),i32 -2147483647}>,align 8
@M=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i64)*@_SMLFN18SMLSharp__SQL__PGSQL18getResErrorMessageE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL18getResErrorMessageE_233 to void(...)*),i32 -2147483647}>,align 8
@N=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i64)*@_SMLFN18SMLSharp__SQL__PGSQL9getDBnameE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL9getDBnameE_234 to void(...)*),i32 -2147483647}>,align 8
@O=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i64)*@_SMLFN18SMLSharp__SQL__PGSQL9getDBuserE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN18SMLSharp__SQL__PGSQL9getDBuserE_235 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN18SMLSharp__SQL__PGSQL13CONNECTION__OKE=local_unnamed_addr constant i32 0
@_SMLZN18SMLSharp__SQL__PGSQL14CONNECTION__BADE=local_unnamed_addr constant i32 1
@_SMLZN18SMLSharp__SQL__PGSQL17PGRES__EMPTY__QUERYE=local_unnamed_addr constant i32 0
@_SMLZN18SMLSharp__SQL__PGSQL16PGRES__COMMAND__OKE=local_unnamed_addr constant i32 1
@_SMLZN18SMLSharp__SQL__PGSQL15PGRES__TUPLES__OKE=local_unnamed_addr constant i32 2
@_SMLZN18SMLSharp__SQL__PGSQL14PGRES__COPY__OUTE=local_unnamed_addr constant i32 3
@_SMLZN18SMLSharp__SQL__PGSQL13PGRES__COPY__INE=local_unnamed_addr constant i32 4
@_SMLZN18SMLSharp__SQL__PGSQL18PGRES__BAD__RESPONSEE=local_unnamed_addr constant i32 5
@_SMLZN18SMLSharp__SQL__PGSQL20PGRES__NONFATAL__ERRORE=local_unnamed_addr constant i32 6
@_SMLZN18SMLSharp__SQL__PGSQL17PGRES__FATAL__ERRORE=local_unnamed_addr constant i32 7
@_SMLZN18SMLSharp__SQL__PGSQL11PQconnectdbE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@b,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__SQL__PGSQL8PQstatusE=local_unnamed_addr constant i8*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*)
@_SMLZN18SMLSharp__SQL__PGSQL8PQfinishE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@f,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__SQL__PGSQL6PQexecE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@h,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__SQL__PGSQL10PQgetvalueE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@j,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__SQL__PGSQL11PQgetlengthE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@l,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__SQL__PGSQL11PQgetisnullE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@n,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__SQL__PGSQL9PQntuplesE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@p,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__SQL__PGSQL9PQnfieldsE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@r,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__SQL__PGSQL7PQfnameE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@t,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__SQL__PGSQL9PQfnumberE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@v,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__SQL__PGSQL14PQresultStatusE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@x,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__SQL__PGSQL14PQerrorMessageE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@z,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__SQL__PGSQL20PQresultErrorMessageE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@B,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__SQL__PGSQL4PQdbE=local_unnamed_addr constant i8*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*)
@_SMLZN18SMLSharp__SQL__PGSQL6PQuserE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@F,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__SQL__PGSQL7PQclearE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@K,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__SQL__PGSQL15getErrorMessageE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@L,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__SQL__PGSQL18getResErrorMessageE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@M,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__SQL__PGSQL9getDBnameE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@N,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__SQL__PGSQL9getDBuserE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@O,i64 0,i32 2)to i8*)
@P=private unnamed_addr global[19x i64][i64 18,i64 sub(i64 ptrtoint(i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i32 0,i32 0,i32 0),i32 8)to i64),i64 ptrtoint([19x i64]*@P to i64)),i64 sub(i64 ptrtoint(i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL36,i32 0,i32 0,i32 0),i32 8)to i64),i64 ptrtoint([19x i64]*@P to i64)),i64 sub(i64 ptrtoint(i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL44,i32 0,i32 0,i32 0),i32 8)to i64),i64 ptrtoint([19x i64]*@P to i64)),i64 sub(i64 ptrtoint(i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL52,i32 0,i32 0,i32 0),i32 8)to i64),i64 ptrtoint([19x i64]*@P to i64)),i64 sub(i64 ptrtoint(i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL67,i32 0,i32 0,i32 0),i32 8)to i64),i64 ptrtoint([19x i64]*@P to i64)),i64 sub(i64 ptrtoint(i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL77,i32 0,i32 0,i32 0),i32 8)to i64),i64 ptrtoint([19x i64]*@P to i64)),i64 sub(i64 ptrtoint(i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL87,i32 0,i32 0,i32 0),i32 8)to i64),i64 ptrtoint([19x i64]*@P to i64)),i64 sub(i64 ptrtoint(i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL97,i32 0,i32 0,i32 0),i32 8)to i64),i64 ptrtoint([19x i64]*@P to i64)),i64 sub(i64 ptrtoint(i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL100,i32 0,i32 0,i32 0),i32 8)to i64),i64 ptrtoint([19x i64]*@P to i64)),i64 sub(i64 ptrtoint(i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL108,i32 0,i32 0,i32 0),i32 8)to i64),i64 ptrtoint([19x i64]*@P to i64)),i64 sub(i64 ptrtoint(i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL123,i32 0,i32 0,i32 0),i32 8)to i64),i64 ptrtoint([19x i64]*@P to i64)),i64 sub(i64 ptrtoint(i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL133,i32 0,i32 0,i32 0),i32 8)to i64),i64 ptrtoint([19x i64]*@P to i64)),i64 sub(i64 ptrtoint(i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL136,i32 0,i32 0,i32 0),i32 8)to i64),i64 ptrtoint([19x i64]*@P to i64)),i64 sub(i64 ptrtoint(i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL144,i32 0,i32 0,i32 0),i32 8)to i64),i64 ptrtoint([19x i64]*@P to i64)),i64 sub(i64 ptrtoint(i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL152,i32 0,i32 0,i32 0),i32 8)to i64),i64 ptrtoint([19x i64]*@P to i64)),i64 sub(i64 ptrtoint(i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL160,i32 0,i32 0,i32 0),i32 8)to i64),i64 ptrtoint([19x i64]*@P to i64)),i64 sub(i64 ptrtoint(i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL168,i32 0,i32 0,i32 0),i32 8)to i64),i64 ptrtoint([19x i64]*@P to i64)),i64 sub(i64 ptrtoint(i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL176,i32 0,i32 0,i32 0),i32 8)to i64),i64 ptrtoint([19x i64]*@P to i64))]
@_SML_ftabcb21437aa2e6677c_PGSQL=external global i8
@Q=private unnamed_addr global i8 0
declare void@llvm.gcroot(i8**,i8*)#0
declare i8*@sml_alloc(i32 inreg)local_unnamed_addr#0
declare void@sml_check(i32 inreg)local_unnamed_addr
declare void@sml_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 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*@_SMLFN16SMLSharp__Runtime7str__newE(i64 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_main00d884c96265bfea_SMLSharp_Runtime()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_load00d884c96265bfea_SMLSharp_Runtime(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_tabbcb21437aa2e6677c_PGSQL()#2{
unreachable
}
define void@_SML_loadcb21437aa2e6677c_PGSQL(i8*%a)local_unnamed_addr#0{
%b=load i8,i8*@Q,align 1
%c=icmp eq i8%b,0
br i1%c,label%e,label%d
d:
ret void
e:
store i8 1,i8*@Q,align 1
tail call void@_SML_load19a59bcdb325454c_SMLSharp_OSProcess(i8*%a)#0
tail call void@_SML_load00d884c96265bfea_SMLSharp_Runtime(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_tabbcb21437aa2e6677c_PGSQL,i8*@_SML_ftabcb21437aa2e6677c_PGSQL,i8*bitcast([19x i64]*@P to i8*))#0
ret void
}
define void@_SML_maincb21437aa2e6677c_PGSQL()local_unnamed_addr#1 gc"smlsharp"{
%a=load i8,i8*@Q,align 1
%b=and i8%a,2
%c=icmp eq i8%b,0
br i1%c,label%e,label%d
d:
ret void
e:
store i8 3,i8*@Q,align 1
tail call void@_SML_main19a59bcdb325454c_SMLSharp_OSProcess()#1
tail call void@_SML_main00d884c96265bfea_SMLSharp_Runtime()#1
tail call void@_SML_main1ef93e13728790b1_String()#1
tail call void@_SML_mainfb23865721a0c043_SQLConfig()#1
tail call void@_SML_main82bd5aec591c098a_DynamicLink()#1
br label%d
}
define internal fastcc i8*@_SMLLL1x_41(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**%d,align 8
store i8*%b,i8**%c,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 i8*(i8*)**
br label%m
i:
call void@sml_check(i32 inreg%e)
%j=bitcast i8**%d to i8*(i8*)***
%k=load i8*(i8*)**,i8*(i8*)***%j,align 8
%l=load i8*,i8**%c,align 8
br label%m
m:
%n=phi i8*[%l,%i],[%b,%g]
%o=phi i8*(i8*)**[%k,%i],[%h,%g]
store i8*null,i8**%d,align 8
%p=load i8*(i8*)*,i8*(i8*)**%o,align 8
call void@sml_leave()#0
%q=invoke i8*%p(i8*%n)
to label%r unwind label%s
r:
call void@sml_enter()#0
ret i8*%q
s:
%t=landingpad{i8*,i8*}
cleanup
%u=extractvalue{i8*,i8*}%t,1
call void@sml_enter()#0
%v=call i8*@sml_unsave_exn(i8*inreg%u)#0
resume{i8*,i8*}%t
}
define fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL11PQconnectdbE(i32 inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%g,label%f
f:
call void@sml_check(i32 inreg%d)
br label%g
g:
%h=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL36,i64 0,i32 2),align 8
%i=icmp eq i8*%h,null
br i1%i,label%j,label%aP
j:
%k=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),align 8
%l=icmp eq i8*%k,null
br i1%l,label%m,label%ac
m:
%n=call fastcc i8*@_SMLFN18SMLSharp__OSProcess6getEnvE(i8*inreg getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@G,i64 0,i32 2,i64 0))
%o=icmp eq i8*%n,null
br i1%o,label%p,label%Q
p:
%q=load i8**,i8***bitcast(i8**@_SMLZN19SMLSharp__SQL__Config6DLLEXTE to i8***),align 8
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%b,align 8
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
%u=load i32,i32*%t,align 4
%v=and i32%u,268435455
%w=icmp eq i32%v,3
br i1%w,label%x,label%F
x:
%y=load i8,i8*%r,align 1
%z=icmp eq i8%y,115
br i1%z,label%A,label%F
A:
%B=getelementptr inbounds i8,i8*%r,i64 1
%C=load i8,i8*%B,align 1
%D=icmp eq i8%C,111
br i1%D,label%E,label%F
E:
store i8*null,i8**%b,align 8
br label%T
F:
%G=call i8*@sml_alloc(i32 inreg 20)#0
%H=getelementptr inbounds i8,i8*%G,i64 -4
%I=bitcast i8*%H to i32*
store i32 1342177296,i32*%I,align 4
%J=bitcast i8*%G to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[9x i8]}>,<{[4x i8],i32,[9x i8]}>*@H,i64 0,i32 2,i64 0),i8**%J,align 8
%K=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%L=getelementptr inbounds i8,i8*%G,i64 8
%M=bitcast i8*%L to i8**
store i8*%K,i8**%M,align 8
%N=getelementptr inbounds i8,i8*%G,i64 16
%O=bitcast i8*%N to i32*
store i32 3,i32*%O,align 4
%P=call fastcc i8*@_SMLFN6String1_ZE(i8*inreg%G)
br label%T
Q:
%R=bitcast i8*%n to i8**
%S=load i8*,i8**%R,align 8
br label%T
T:
%U=phi i8*[%S,%Q],[getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@I,i64 0,i32 2,i64 0),%E],[%P,%F]
%V=call fastcc i8*@_SMLFN11DynamicLink6dlopenE(i8*inreg%U)
%W=call i8*@sml_alloc(i32 inreg 12)#0
%X=getelementptr inbounds i8,i8*%W,i64 -4
%Y=bitcast i8*%X to i32*
store i32 1342177288,i32*%Y,align 4
%Z=bitcast i8*%W to i8**
store i8*%V,i8**%Z,align 8
%aa=getelementptr inbounds i8,i8*%W,i64 8
%ab=bitcast i8*%aa to i32*
store i32 0,i32*%ab,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),i8*inreg%W)#0
br label%af
ac:
%ad=bitcast i8*%k to i8**
%ae=load i8*,i8**%ad,align 8
br label%af
af:
%ag=phi i8*[%V,%T],[%ae,%ac]
%ah=call i8*@sml_alloc(i32 inreg 20)#0
%ai=getelementptr inbounds i8,i8*%ah,i64 -4
%aj=bitcast i8*%ai to i32*
store i32 1342177296,i32*%aj,align 4
%ak=bitcast i8*%ah to i8**
store i8*%ag,i8**%ak,align 8
%al=getelementptr inbounds i8,i8*%ah,i64 8
%am=bitcast i8*%al to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[12x i8]}>,<{[4x i8],i32,[12x i8]}>*@a,i64 0,i32 2,i64 0),i8**%am,align 8
%an=getelementptr inbounds i8,i8*%ah,i64 16
%ao=bitcast i8*%an to i32*
store i32 2,i32*%ao,align 4
%ap=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%ah)
%aq=call i8*@sml_alloc(i32 inreg 12)#0
%ar=getelementptr inbounds i8,i8*%aq,i64 -4
%as=bitcast i8*%ar to i32*
store i32 1342177288,i32*%as,align 4
store i8*%aq,i8**%b,align 8
%at=bitcast i8*%aq to void(...)**
store void(...)*%ap,void(...)**%at,align 8
%au=getelementptr inbounds i8,i8*%aq,i64 8
%av=bitcast i8*%au to i32*
store i32 0,i32*%av,align 4
%aw=call i8*@sml_alloc(i32 inreg 28)#0
%ax=getelementptr inbounds i8,i8*%aw,i64 -4
%ay=bitcast i8*%ax to i32*
store i32 1342177304,i32*%ay,align 4
store i8*%aw,i8**%c,align 8
%az=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%aA=bitcast i8*%aw to i8**
store i8*%az,i8**%aA,align 8
%aB=getelementptr inbounds i8,i8*%aw,i64 8
%aC=bitcast i8*%aB to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL1x_41 to void(...)*),void(...)**%aC,align 8
%aD=getelementptr inbounds i8,i8*%aw,i64 16
%aE=bitcast i8*%aD to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL1x_192 to void(...)*),void(...)**%aE,align 8
%aF=getelementptr inbounds i8,i8*%aw,i64 24
%aG=bitcast i8*%aF to i32*
store i32 -2147483647,i32*%aG,align 4
%aH=call i8*@sml_alloc(i32 inreg 12)#0
%aI=getelementptr inbounds i8,i8*%aH,i64 -4
%aJ=bitcast i8*%aI to i32*
store i32 1342177288,i32*%aJ,align 4
%aK=load i8*,i8**%c,align 8
%aL=bitcast i8*%aH to i8**
store i8*%aK,i8**%aL,align 8
%aM=getelementptr inbounds i8,i8*%aH,i64 8
%aN=bitcast i8*%aM to i32*
store i32 1,i32*%aN,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL36,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL36,i64 0,i32 2),i8*inreg%aH)#0
%aO=load i8*,i8**%c,align 8
ret i8*%aO
aP:
%aQ=bitcast i8*%h to i8**
%aR=load i8*,i8**%aQ,align 8
ret i8*%aR
}
define internal fastcc i32@_SMLLL1x_49(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 fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL8PQstatusE(i32 inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%g,label%f
f:
call void@sml_check(i32 inreg%d)
br label%g
g:
%h=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL44,i64 0,i32 2),align 8
%i=icmp eq i8*%h,null
br i1%i,label%j,label%aP
j:
%k=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),align 8
%l=icmp eq i8*%k,null
br i1%l,label%m,label%ac
m:
%n=call fastcc i8*@_SMLFN18SMLSharp__OSProcess6getEnvE(i8*inreg getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@G,i64 0,i32 2,i64 0))
%o=icmp eq i8*%n,null
br i1%o,label%p,label%Q
p:
%q=load i8**,i8***bitcast(i8**@_SMLZN19SMLSharp__SQL__Config6DLLEXTE to i8***),align 8
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%b,align 8
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
%u=load i32,i32*%t,align 4
%v=and i32%u,268435455
%w=icmp eq i32%v,3
br i1%w,label%x,label%F
x:
%y=load i8,i8*%r,align 1
%z=icmp eq i8%y,115
br i1%z,label%A,label%F
A:
%B=getelementptr inbounds i8,i8*%r,i64 1
%C=load i8,i8*%B,align 1
%D=icmp eq i8%C,111
br i1%D,label%E,label%F
E:
store i8*null,i8**%b,align 8
br label%T
F:
%G=call i8*@sml_alloc(i32 inreg 20)#0
%H=getelementptr inbounds i8,i8*%G,i64 -4
%I=bitcast i8*%H to i32*
store i32 1342177296,i32*%I,align 4
%J=bitcast i8*%G to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[9x i8]}>,<{[4x i8],i32,[9x i8]}>*@H,i64 0,i32 2,i64 0),i8**%J,align 8
%K=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%L=getelementptr inbounds i8,i8*%G,i64 8
%M=bitcast i8*%L to i8**
store i8*%K,i8**%M,align 8
%N=getelementptr inbounds i8,i8*%G,i64 16
%O=bitcast i8*%N to i32*
store i32 3,i32*%O,align 4
%P=call fastcc i8*@_SMLFN6String1_ZE(i8*inreg%G)
br label%T
Q:
%R=bitcast i8*%n to i8**
%S=load i8*,i8**%R,align 8
br label%T
T:
%U=phi i8*[%S,%Q],[getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@I,i64 0,i32 2,i64 0),%E],[%P,%F]
%V=call fastcc i8*@_SMLFN11DynamicLink6dlopenE(i8*inreg%U)
%W=call i8*@sml_alloc(i32 inreg 12)#0
%X=getelementptr inbounds i8,i8*%W,i64 -4
%Y=bitcast i8*%X to i32*
store i32 1342177288,i32*%Y,align 4
%Z=bitcast i8*%W to i8**
store i8*%V,i8**%Z,align 8
%aa=getelementptr inbounds i8,i8*%W,i64 8
%ab=bitcast i8*%aa to i32*
store i32 0,i32*%ab,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),i8*inreg%W)#0
br label%af
ac:
%ad=bitcast i8*%k to i8**
%ae=load i8*,i8**%ad,align 8
br label%af
af:
%ag=phi i8*[%V,%T],[%ae,%ac]
%ah=call i8*@sml_alloc(i32 inreg 20)#0
%ai=getelementptr inbounds i8,i8*%ah,i64 -4
%aj=bitcast i8*%ai to i32*
store i32 1342177296,i32*%aj,align 4
%ak=bitcast i8*%ah to i8**
store i8*%ag,i8**%ak,align 8
%al=getelementptr inbounds i8,i8*%ah,i64 8
%am=bitcast i8*%al to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[9x i8]}>,<{[4x i8],i32,[9x i8]}>*@c,i64 0,i32 2,i64 0),i8**%am,align 8
%an=getelementptr inbounds i8,i8*%ah,i64 16
%ao=bitcast i8*%an to i32*
store i32 2,i32*%ao,align 4
%ap=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%ah)
%aq=call i8*@sml_alloc(i32 inreg 12)#0
%ar=getelementptr inbounds i8,i8*%aq,i64 -4
%as=bitcast i8*%ar to i32*
store i32 1342177288,i32*%as,align 4
store i8*%aq,i8**%b,align 8
%at=bitcast i8*%aq to void(...)**
store void(...)*%ap,void(...)**%at,align 8
%au=getelementptr inbounds i8,i8*%aq,i64 8
%av=bitcast i8*%au to i32*
store i32 0,i32*%av,align 4
%aw=call i8*@sml_alloc(i32 inreg 28)#0
%ax=getelementptr inbounds i8,i8*%aw,i64 -4
%ay=bitcast i8*%ax to i32*
store i32 1342177304,i32*%ay,align 4
store i8*%aw,i8**%c,align 8
%az=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%aA=bitcast i8*%aw to i8**
store i8*%az,i8**%aA,align 8
%aB=getelementptr inbounds i8,i8*%aw,i64 8
%aC=bitcast i8*%aB to void(...)**
store void(...)*bitcast(i32(i8*,i64)*@_SMLLL1x_49 to void(...)*),void(...)**%aC,align 8
%aD=getelementptr inbounds i8,i8*%aw,i64 16
%aE=bitcast i8*%aD to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL1x_194 to void(...)*),void(...)**%aE,align 8
%aF=getelementptr inbounds i8,i8*%aw,i64 24
%aG=bitcast i8*%aF to i32*
store i32 -2147483647,i32*%aG,align 4
%aH=call i8*@sml_alloc(i32 inreg 12)#0
%aI=getelementptr inbounds i8,i8*%aH,i64 -4
%aJ=bitcast i8*%aI to i32*
store i32 1342177288,i32*%aJ,align 4
%aK=load i8*,i8**%c,align 8
%aL=bitcast i8*%aH to i8**
store i8*%aK,i8**%aL,align 8
%aM=getelementptr inbounds i8,i8*%aH,i64 8
%aN=bitcast i8*%aM to i32*
store i32 1,i32*%aN,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL44,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL44,i64 0,i32 2),i8*inreg%aH)#0
%aO=load i8*,i8**%c,align 8
ret i8*%aO
aP:
%aQ=bitcast i8*%h to i8**
%aR=load i8*,i8**%aQ,align 8
ret i8*%aR
}
define internal fastcc void@_SMLLL1x_57(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 void(i8*)**
br label%k
h:
call void@sml_check(i32 inreg%d)
%i=bitcast i8**%c to void(i8*)***
%j=load void(i8*)**,void(i8*)***%i,align 8
br label%k
k:
%l=phi void(i8*)**[%j,%h],[%g,%f]
%m=inttoptr i64%b to i8*
store i8*null,i8**%c,align 8
%n=load void(i8*)*,void(i8*)**%l,align 8
call void@sml_leave()#0
invoke void%n(i8*%m)
to label%o unwind label%p
o:
call void@sml_enter()#0
ret void
p:
%q=landingpad{i8*,i8*}
cleanup
%r=extractvalue{i8*,i8*}%q,1
call void@sml_enter()#0
%s=call i8*@sml_unsave_exn(i8*inreg%r)#0
resume{i8*,i8*}%q
}
define fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL8PQfinishE(i32 inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%g,label%f
f:
call void@sml_check(i32 inreg%d)
br label%g
g:
%h=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL52,i64 0,i32 2),align 8
%i=icmp eq i8*%h,null
br i1%i,label%j,label%aP
j:
%k=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),align 8
%l=icmp eq i8*%k,null
br i1%l,label%m,label%ac
m:
%n=call fastcc i8*@_SMLFN18SMLSharp__OSProcess6getEnvE(i8*inreg getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@G,i64 0,i32 2,i64 0))
%o=icmp eq i8*%n,null
br i1%o,label%p,label%Q
p:
%q=load i8**,i8***bitcast(i8**@_SMLZN19SMLSharp__SQL__Config6DLLEXTE to i8***),align 8
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%b,align 8
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
%u=load i32,i32*%t,align 4
%v=and i32%u,268435455
%w=icmp eq i32%v,3
br i1%w,label%x,label%F
x:
%y=load i8,i8*%r,align 1
%z=icmp eq i8%y,115
br i1%z,label%A,label%F
A:
%B=getelementptr inbounds i8,i8*%r,i64 1
%C=load i8,i8*%B,align 1
%D=icmp eq i8%C,111
br i1%D,label%E,label%F
E:
store i8*null,i8**%b,align 8
br label%T
F:
%G=call i8*@sml_alloc(i32 inreg 20)#0
%H=getelementptr inbounds i8,i8*%G,i64 -4
%I=bitcast i8*%H to i32*
store i32 1342177296,i32*%I,align 4
%J=bitcast i8*%G to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[9x i8]}>,<{[4x i8],i32,[9x i8]}>*@H,i64 0,i32 2,i64 0),i8**%J,align 8
%K=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%L=getelementptr inbounds i8,i8*%G,i64 8
%M=bitcast i8*%L to i8**
store i8*%K,i8**%M,align 8
%N=getelementptr inbounds i8,i8*%G,i64 16
%O=bitcast i8*%N to i32*
store i32 3,i32*%O,align 4
%P=call fastcc i8*@_SMLFN6String1_ZE(i8*inreg%G)
br label%T
Q:
%R=bitcast i8*%n to i8**
%S=load i8*,i8**%R,align 8
br label%T
T:
%U=phi i8*[%S,%Q],[getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@I,i64 0,i32 2,i64 0),%E],[%P,%F]
%V=call fastcc i8*@_SMLFN11DynamicLink6dlopenE(i8*inreg%U)
%W=call i8*@sml_alloc(i32 inreg 12)#0
%X=getelementptr inbounds i8,i8*%W,i64 -4
%Y=bitcast i8*%X to i32*
store i32 1342177288,i32*%Y,align 4
%Z=bitcast i8*%W to i8**
store i8*%V,i8**%Z,align 8
%aa=getelementptr inbounds i8,i8*%W,i64 8
%ab=bitcast i8*%aa to i32*
store i32 0,i32*%ab,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),i8*inreg%W)#0
br label%af
ac:
%ad=bitcast i8*%k to i8**
%ae=load i8*,i8**%ad,align 8
br label%af
af:
%ag=phi i8*[%V,%T],[%ae,%ac]
%ah=call i8*@sml_alloc(i32 inreg 20)#0
%ai=getelementptr inbounds i8,i8*%ah,i64 -4
%aj=bitcast i8*%ai to i32*
store i32 1342177296,i32*%aj,align 4
%ak=bitcast i8*%ah to i8**
store i8*%ag,i8**%ak,align 8
%al=getelementptr inbounds i8,i8*%ah,i64 8
%am=bitcast i8*%al to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[9x i8]}>,<{[4x i8],i32,[9x i8]}>*@e,i64 0,i32 2,i64 0),i8**%am,align 8
%an=getelementptr inbounds i8,i8*%ah,i64 16
%ao=bitcast i8*%an to i32*
store i32 2,i32*%ao,align 4
%ap=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%ah)
%aq=call i8*@sml_alloc(i32 inreg 12)#0
%ar=getelementptr inbounds i8,i8*%aq,i64 -4
%as=bitcast i8*%ar to i32*
store i32 1342177288,i32*%as,align 4
store i8*%aq,i8**%b,align 8
%at=bitcast i8*%aq to void(...)**
store void(...)*%ap,void(...)**%at,align 8
%au=getelementptr inbounds i8,i8*%aq,i64 8
%av=bitcast i8*%au to i32*
store i32 0,i32*%av,align 4
%aw=call i8*@sml_alloc(i32 inreg 28)#0
%ax=getelementptr inbounds i8,i8*%aw,i64 -4
%ay=bitcast i8*%ax to i32*
store i32 1342177304,i32*%ay,align 4
store i8*%aw,i8**%c,align 8
%az=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%aA=bitcast i8*%aw to i8**
store i8*%az,i8**%aA,align 8
%aB=getelementptr inbounds i8,i8*%aw,i64 8
%aC=bitcast i8*%aB to void(...)**
store void(...)*bitcast(void(i8*,i64)*@_SMLLL1x_57 to void(...)*),void(...)**%aC,align 8
%aD=getelementptr inbounds i8,i8*%aw,i64 16
%aE=bitcast i8*%aD to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL1x_196 to void(...)*),void(...)**%aE,align 8
%aF=getelementptr inbounds i8,i8*%aw,i64 24
%aG=bitcast i8*%aF to i32*
store i32 -2147483647,i32*%aG,align 4
%aH=call i8*@sml_alloc(i32 inreg 12)#0
%aI=getelementptr inbounds i8,i8*%aH,i64 -4
%aJ=bitcast i8*%aI to i32*
store i32 1342177288,i32*%aJ,align 4
%aK=load i8*,i8**%c,align 8
%aL=bitcast i8*%aH to i8**
store i8*%aK,i8**%aL,align 8
%aM=getelementptr inbounds i8,i8*%aH,i64 8
%aN=bitcast i8*%aM to i32*
store i32 1,i32*%aN,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL52,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL52,i64 0,i32 2),i8*inreg%aH)#0
%aO=load i8*,i8**%c,align 8
ret i8*%aO
aP:
%aQ=bitcast i8*%h to i8**
%aR=load i8*,i8**%aQ,align 8
ret i8*%aR
}
define internal fastcc i8*@_SMLLL64(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 i8*(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 i8*(i8*,i8*)***
%l=load i8*(i8*,i8*)**,i8*(i8*,i8*)***%k,align 8
br label%m
m:
%n=phi i8*(i8*,i8*)**[%l,%i],[%h,%g]
%o=phi i8*[%j,%i],[%b,%g]
store i8*null,i8**%d,align 8
%p=load i8*(i8*,i8*)*,i8*(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 i8*%p(i8*%r,i8*%u)
to label%w unwind label%x
w:
call void@sml_enter()#0
ret i8*%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 fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL6PQexecE(i32 inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%g,label%f
f:
call void@sml_check(i32 inreg%d)
br label%g
g:
%h=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL67,i64 0,i32 2),align 8
%i=icmp eq i8*%h,null
br i1%i,label%j,label%aU
j:
%k=bitcast i8**%b to i8*
call void@llvm.lifetime.start.p0i8(i64 8,i8*%k)
call void@llvm.gcroot(i8**%b,i8*null)#0
%l=load atomic i32,i32*@sml_check_flag unordered,align 4
%m=icmp eq i32%l,0
br i1%m,label%o,label%n
n:
call void@sml_check(i32 inreg%l)
br label%o
o:
%p=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),align 8
%q=icmp eq i8*%p,null
br i1%q,label%r,label%ah
r:
%s=call fastcc i8*@_SMLFN18SMLSharp__OSProcess6getEnvE(i8*inreg getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@G,i64 0,i32 2,i64 0))
%t=icmp eq i8*%s,null
br i1%t,label%u,label%V
u:
%v=load i8**,i8***bitcast(i8**@_SMLZN19SMLSharp__SQL__Config6DLLEXTE to i8***),align 8
%w=load i8*,i8**%v,align 8
store i8*%w,i8**%b,align 8
%x=getelementptr inbounds i8,i8*%w,i64 -4
%y=bitcast i8*%x to i32*
%z=load i32,i32*%y,align 4
%A=and i32%z,268435455
%B=icmp eq i32%A,3
br i1%B,label%C,label%K
C:
%D=load i8,i8*%w,align 1
%E=icmp eq i8%D,115
br i1%E,label%F,label%K
F:
%G=getelementptr inbounds i8,i8*%w,i64 1
%H=load i8,i8*%G,align 1
%I=icmp eq i8%H,111
br i1%I,label%J,label%K
J:
store i8*null,i8**%b,align 8
br label%Y
K:
%L=call i8*@sml_alloc(i32 inreg 20)#0
%M=getelementptr inbounds i8,i8*%L,i64 -4
%N=bitcast i8*%M to i32*
store i32 1342177296,i32*%N,align 4
%O=bitcast i8*%L to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[9x i8]}>,<{[4x i8],i32,[9x i8]}>*@H,i64 0,i32 2,i64 0),i8**%O,align 8
%P=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%Q=getelementptr inbounds i8,i8*%L,i64 8
%R=bitcast i8*%Q to i8**
store i8*%P,i8**%R,align 8
%S=getelementptr inbounds i8,i8*%L,i64 16
%T=bitcast i8*%S to i32*
store i32 3,i32*%T,align 4
%U=call fastcc i8*@_SMLFN6String1_ZE(i8*inreg%L)
br label%Y
V:
%W=bitcast i8*%s to i8**
%X=load i8*,i8**%W,align 8
br label%Y
Y:
%Z=phi i8*[%X,%V],[getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@I,i64 0,i32 2,i64 0),%J],[%U,%K]
%aa=call fastcc i8*@_SMLFN11DynamicLink6dlopenE(i8*inreg%Z)
%ab=call i8*@sml_alloc(i32 inreg 12)#0
%ac=getelementptr inbounds i8,i8*%ab,i64 -4
%ad=bitcast i8*%ac to i32*
store i32 1342177288,i32*%ad,align 4
%ae=bitcast i8*%ab to i8**
store i8*%aa,i8**%ae,align 8
%af=getelementptr inbounds i8,i8*%ab,i64 8
%ag=bitcast i8*%af to i32*
store i32 0,i32*%ag,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),i8*inreg%ab)#0
br label%ak
ah:
%ai=bitcast i8*%p to i8**
%aj=load i8*,i8**%ai,align 8
br label%ak
ak:
%al=phi i8*[%aa,%Y],[%aj,%ah]
%am=call i8*@sml_alloc(i32 inreg 20)#0
%an=getelementptr inbounds i8,i8*%am,i64 -4
%ao=bitcast i8*%an to i32*
store i32 1342177296,i32*%ao,align 4
%ap=bitcast i8*%am to i8**
store i8*%al,i8**%ap,align 8
%aq=getelementptr inbounds i8,i8*%am,i64 8
%ar=bitcast i8*%aq to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[7x i8]}>,<{[4x i8],i32,[7x i8]}>*@g,i64 0,i32 2,i64 0),i8**%ar,align 8
%as=getelementptr inbounds i8,i8*%am,i64 16
%at=bitcast i8*%as to i32*
store i32 2,i32*%at,align 4
%au=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%am)
%av=call i8*@sml_alloc(i32 inreg 12)#0
%aw=getelementptr inbounds i8,i8*%av,i64 -4
%ax=bitcast i8*%aw to i32*
store i32 1342177288,i32*%ax,align 4
store i8*%av,i8**%b,align 8
%ay=bitcast i8*%av to void(...)**
store void(...)*%au,void(...)**%ay,align 8
%az=getelementptr inbounds i8,i8*%av,i64 8
%aA=bitcast i8*%az to i32*
store i32 0,i32*%aA,align 4
%aB=call i8*@sml_alloc(i32 inreg 28)#0
%aC=getelementptr inbounds i8,i8*%aB,i64 -4
%aD=bitcast i8*%aC to i32*
store i32 1342177304,i32*%aD,align 4
%aE=load i8*,i8**%b,align 8
%aF=bitcast i8*%aB to i8**
store i8*%aE,i8**%aF,align 8
%aG=getelementptr inbounds i8,i8*%aB,i64 8
%aH=bitcast i8*%aG to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL64 to void(...)*),void(...)**%aH,align 8
%aI=getelementptr inbounds i8,i8*%aB,i64 16
%aJ=bitcast i8*%aI to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL198 to void(...)*),void(...)**%aJ,align 8
%aK=getelementptr inbounds i8,i8*%aB,i64 24
%aL=bitcast i8*%aK to i32*
store i32 -2147483647,i32*%aL,align 4
call void@llvm.lifetime.end.p0i8(i64 8,i8*%k)
store i8*%aB,i8**%c,align 8
%aM=call i8*@sml_alloc(i32 inreg 12)#0
%aN=getelementptr inbounds i8,i8*%aM,i64 -4
%aO=bitcast i8*%aN to i32*
store i32 1342177288,i32*%aO,align 4
%aP=load i8*,i8**%c,align 8
%aQ=bitcast i8*%aM to i8**
store i8*%aP,i8**%aQ,align 8
%aR=getelementptr inbounds i8,i8*%aM,i64 8
%aS=bitcast i8*%aR to i32*
store i32 1,i32*%aS,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL67,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL67,i64 0,i32 2),i8*inreg%aM)#0
%aT=load i8*,i8**%c,align 8
ret i8*%aT
aU:
%aV=bitcast i8*%h to i8**
%aW=load i8*,i8**%aV,align 8
ret i8*%aW
}
define internal fastcc i8*@_SMLLL74(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 i8*(i8*,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 i8*(i8*,i32,i32)***
%l=load i8*(i8*,i32,i32)**,i8*(i8*,i32,i32)***%k,align 8
br label%m
m:
%n=phi i8*(i8*,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 i8*(i8*,i32,i32)*,i8*(i8*,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
call void@sml_leave()#0
%y=invoke i8*%p(i8*%r,i32%u,i32%x)
to label%z unwind label%A
z:
call void@sml_enter()#0
ret i8*%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 fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL10PQgetvalueE(i32 inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%g,label%f
f:
call void@sml_check(i32 inreg%d)
br label%g
g:
%h=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL77,i64 0,i32 2),align 8
%i=icmp eq i8*%h,null
br i1%i,label%j,label%aU
j:
%k=bitcast i8**%b to i8*
call void@llvm.lifetime.start.p0i8(i64 8,i8*%k)
call void@llvm.gcroot(i8**%b,i8*null)#0
%l=load atomic i32,i32*@sml_check_flag unordered,align 4
%m=icmp eq i32%l,0
br i1%m,label%o,label%n
n:
call void@sml_check(i32 inreg%l)
br label%o
o:
%p=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),align 8
%q=icmp eq i8*%p,null
br i1%q,label%r,label%ah
r:
%s=call fastcc i8*@_SMLFN18SMLSharp__OSProcess6getEnvE(i8*inreg getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@G,i64 0,i32 2,i64 0))
%t=icmp eq i8*%s,null
br i1%t,label%u,label%V
u:
%v=load i8**,i8***bitcast(i8**@_SMLZN19SMLSharp__SQL__Config6DLLEXTE to i8***),align 8
%w=load i8*,i8**%v,align 8
store i8*%w,i8**%b,align 8
%x=getelementptr inbounds i8,i8*%w,i64 -4
%y=bitcast i8*%x to i32*
%z=load i32,i32*%y,align 4
%A=and i32%z,268435455
%B=icmp eq i32%A,3
br i1%B,label%C,label%K
C:
%D=load i8,i8*%w,align 1
%E=icmp eq i8%D,115
br i1%E,label%F,label%K
F:
%G=getelementptr inbounds i8,i8*%w,i64 1
%H=load i8,i8*%G,align 1
%I=icmp eq i8%H,111
br i1%I,label%J,label%K
J:
store i8*null,i8**%b,align 8
br label%Y
K:
%L=call i8*@sml_alloc(i32 inreg 20)#0
%M=getelementptr inbounds i8,i8*%L,i64 -4
%N=bitcast i8*%M to i32*
store i32 1342177296,i32*%N,align 4
%O=bitcast i8*%L to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[9x i8]}>,<{[4x i8],i32,[9x i8]}>*@H,i64 0,i32 2,i64 0),i8**%O,align 8
%P=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%Q=getelementptr inbounds i8,i8*%L,i64 8
%R=bitcast i8*%Q to i8**
store i8*%P,i8**%R,align 8
%S=getelementptr inbounds i8,i8*%L,i64 16
%T=bitcast i8*%S to i32*
store i32 3,i32*%T,align 4
%U=call fastcc i8*@_SMLFN6String1_ZE(i8*inreg%L)
br label%Y
V:
%W=bitcast i8*%s to i8**
%X=load i8*,i8**%W,align 8
br label%Y
Y:
%Z=phi i8*[%X,%V],[getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@I,i64 0,i32 2,i64 0),%J],[%U,%K]
%aa=call fastcc i8*@_SMLFN11DynamicLink6dlopenE(i8*inreg%Z)
%ab=call i8*@sml_alloc(i32 inreg 12)#0
%ac=getelementptr inbounds i8,i8*%ab,i64 -4
%ad=bitcast i8*%ac to i32*
store i32 1342177288,i32*%ad,align 4
%ae=bitcast i8*%ab to i8**
store i8*%aa,i8**%ae,align 8
%af=getelementptr inbounds i8,i8*%ab,i64 8
%ag=bitcast i8*%af to i32*
store i32 0,i32*%ag,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),i8*inreg%ab)#0
br label%ak
ah:
%ai=bitcast i8*%p to i8**
%aj=load i8*,i8**%ai,align 8
br label%ak
ak:
%al=phi i8*[%aa,%Y],[%aj,%ah]
%am=call i8*@sml_alloc(i32 inreg 20)#0
%an=getelementptr inbounds i8,i8*%am,i64 -4
%ao=bitcast i8*%an to i32*
store i32 1342177296,i32*%ao,align 4
%ap=bitcast i8*%am to i8**
store i8*%al,i8**%ap,align 8
%aq=getelementptr inbounds i8,i8*%am,i64 8
%ar=bitcast i8*%aq to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@i,i64 0,i32 2,i64 0),i8**%ar,align 8
%as=getelementptr inbounds i8,i8*%am,i64 16
%at=bitcast i8*%as to i32*
store i32 2,i32*%at,align 4
%au=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%am)
%av=call i8*@sml_alloc(i32 inreg 12)#0
%aw=getelementptr inbounds i8,i8*%av,i64 -4
%ax=bitcast i8*%aw to i32*
store i32 1342177288,i32*%ax,align 4
store i8*%av,i8**%b,align 8
%ay=bitcast i8*%av to void(...)**
store void(...)*%au,void(...)**%ay,align 8
%az=getelementptr inbounds i8,i8*%av,i64 8
%aA=bitcast i8*%az to i32*
store i32 0,i32*%aA,align 4
%aB=call i8*@sml_alloc(i32 inreg 28)#0
%aC=getelementptr inbounds i8,i8*%aB,i64 -4
%aD=bitcast i8*%aC to i32*
store i32 1342177304,i32*%aD,align 4
%aE=load i8*,i8**%b,align 8
%aF=bitcast i8*%aB to i8**
store i8*%aE,i8**%aF,align 8
%aG=getelementptr inbounds i8,i8*%aB,i64 8
%aH=bitcast i8*%aG to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL74 to void(...)*),void(...)**%aH,align 8
%aI=getelementptr inbounds i8,i8*%aB,i64 16
%aJ=bitcast i8*%aI to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL201 to void(...)*),void(...)**%aJ,align 8
%aK=getelementptr inbounds i8,i8*%aB,i64 24
%aL=bitcast i8*%aK to i32*
store i32 -2147483647,i32*%aL,align 4
call void@llvm.lifetime.end.p0i8(i64 8,i8*%k)
store i8*%aB,i8**%c,align 8
%aM=call i8*@sml_alloc(i32 inreg 12)#0
%aN=getelementptr inbounds i8,i8*%aM,i64 -4
%aO=bitcast i8*%aN to i32*
store i32 1342177288,i32*%aO,align 4
%aP=load i8*,i8**%c,align 8
%aQ=bitcast i8*%aM to i8**
store i8*%aP,i8**%aQ,align 8
%aR=getelementptr inbounds i8,i8*%aM,i64 8
%aS=bitcast i8*%aR to i32*
store i32 1,i32*%aS,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL77,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL77,i64 0,i32 2),i8*inreg%aM)#0
%aT=load i8*,i8**%c,align 8
ret i8*%aT
aU:
%aV=bitcast i8*%h to i8**
%aW=load i8*,i8**%aV,align 8
ret i8*%aW
}
define internal fastcc i32@_SMLLL84(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)**
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)***
%l=load i32(i8*,i32,i32)**,i32(i8*,i32,i32)***%k,align 8
br label%m
m:
%n=phi i32(i8*,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(i8*,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
call void@sml_leave()#0
%y=invoke i32%p(i8*%r,i32%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 fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL11PQgetlengthE(i32 inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%g,label%f
f:
call void@sml_check(i32 inreg%d)
br label%g
g:
%h=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL87,i64 0,i32 2),align 8
%i=icmp eq i8*%h,null
br i1%i,label%j,label%aU
j:
%k=bitcast i8**%b to i8*
call void@llvm.lifetime.start.p0i8(i64 8,i8*%k)
call void@llvm.gcroot(i8**%b,i8*null)#0
%l=load atomic i32,i32*@sml_check_flag unordered,align 4
%m=icmp eq i32%l,0
br i1%m,label%o,label%n
n:
call void@sml_check(i32 inreg%l)
br label%o
o:
%p=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),align 8
%q=icmp eq i8*%p,null
br i1%q,label%r,label%ah
r:
%s=call fastcc i8*@_SMLFN18SMLSharp__OSProcess6getEnvE(i8*inreg getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@G,i64 0,i32 2,i64 0))
%t=icmp eq i8*%s,null
br i1%t,label%u,label%V
u:
%v=load i8**,i8***bitcast(i8**@_SMLZN19SMLSharp__SQL__Config6DLLEXTE to i8***),align 8
%w=load i8*,i8**%v,align 8
store i8*%w,i8**%b,align 8
%x=getelementptr inbounds i8,i8*%w,i64 -4
%y=bitcast i8*%x to i32*
%z=load i32,i32*%y,align 4
%A=and i32%z,268435455
%B=icmp eq i32%A,3
br i1%B,label%C,label%K
C:
%D=load i8,i8*%w,align 1
%E=icmp eq i8%D,115
br i1%E,label%F,label%K
F:
%G=getelementptr inbounds i8,i8*%w,i64 1
%H=load i8,i8*%G,align 1
%I=icmp eq i8%H,111
br i1%I,label%J,label%K
J:
store i8*null,i8**%b,align 8
br label%Y
K:
%L=call i8*@sml_alloc(i32 inreg 20)#0
%M=getelementptr inbounds i8,i8*%L,i64 -4
%N=bitcast i8*%M to i32*
store i32 1342177296,i32*%N,align 4
%O=bitcast i8*%L to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[9x i8]}>,<{[4x i8],i32,[9x i8]}>*@H,i64 0,i32 2,i64 0),i8**%O,align 8
%P=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%Q=getelementptr inbounds i8,i8*%L,i64 8
%R=bitcast i8*%Q to i8**
store i8*%P,i8**%R,align 8
%S=getelementptr inbounds i8,i8*%L,i64 16
%T=bitcast i8*%S to i32*
store i32 3,i32*%T,align 4
%U=call fastcc i8*@_SMLFN6String1_ZE(i8*inreg%L)
br label%Y
V:
%W=bitcast i8*%s to i8**
%X=load i8*,i8**%W,align 8
br label%Y
Y:
%Z=phi i8*[%X,%V],[getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@I,i64 0,i32 2,i64 0),%J],[%U,%K]
%aa=call fastcc i8*@_SMLFN11DynamicLink6dlopenE(i8*inreg%Z)
%ab=call i8*@sml_alloc(i32 inreg 12)#0
%ac=getelementptr inbounds i8,i8*%ab,i64 -4
%ad=bitcast i8*%ac to i32*
store i32 1342177288,i32*%ad,align 4
%ae=bitcast i8*%ab to i8**
store i8*%aa,i8**%ae,align 8
%af=getelementptr inbounds i8,i8*%ab,i64 8
%ag=bitcast i8*%af to i32*
store i32 0,i32*%ag,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),i8*inreg%ab)#0
br label%ak
ah:
%ai=bitcast i8*%p to i8**
%aj=load i8*,i8**%ai,align 8
br label%ak
ak:
%al=phi i8*[%aa,%Y],[%aj,%ah]
%am=call i8*@sml_alloc(i32 inreg 20)#0
%an=getelementptr inbounds i8,i8*%am,i64 -4
%ao=bitcast i8*%an to i32*
store i32 1342177296,i32*%ao,align 4
%ap=bitcast i8*%am to i8**
store i8*%al,i8**%ap,align 8
%aq=getelementptr inbounds i8,i8*%am,i64 8
%ar=bitcast i8*%aq to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[12x i8]}>,<{[4x i8],i32,[12x i8]}>*@k,i64 0,i32 2,i64 0),i8**%ar,align 8
%as=getelementptr inbounds i8,i8*%am,i64 16
%at=bitcast i8*%as to i32*
store i32 2,i32*%at,align 4
%au=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%am)
%av=call i8*@sml_alloc(i32 inreg 12)#0
%aw=getelementptr inbounds i8,i8*%av,i64 -4
%ax=bitcast i8*%aw to i32*
store i32 1342177288,i32*%ax,align 4
store i8*%av,i8**%b,align 8
%ay=bitcast i8*%av to void(...)**
store void(...)*%au,void(...)**%ay,align 8
%az=getelementptr inbounds i8,i8*%av,i64 8
%aA=bitcast i8*%az to i32*
store i32 0,i32*%aA,align 4
%aB=call i8*@sml_alloc(i32 inreg 28)#0
%aC=getelementptr inbounds i8,i8*%aB,i64 -4
%aD=bitcast i8*%aC to i32*
store i32 1342177304,i32*%aD,align 4
%aE=load i8*,i8**%b,align 8
%aF=bitcast i8*%aB to i8**
store i8*%aE,i8**%aF,align 8
%aG=getelementptr inbounds i8,i8*%aB,i64 8
%aH=bitcast i8*%aG to void(...)**
store void(...)*bitcast(i32(i8*,i8*)*@_SMLLL84 to void(...)*),void(...)**%aH,align 8
%aI=getelementptr inbounds i8,i8*%aB,i64 16
%aJ=bitcast i8*%aI to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL204 to void(...)*),void(...)**%aJ,align 8
%aK=getelementptr inbounds i8,i8*%aB,i64 24
%aL=bitcast i8*%aK to i32*
store i32 -2147483647,i32*%aL,align 4
call void@llvm.lifetime.end.p0i8(i64 8,i8*%k)
store i8*%aB,i8**%c,align 8
%aM=call i8*@sml_alloc(i32 inreg 12)#0
%aN=getelementptr inbounds i8,i8*%aM,i64 -4
%aO=bitcast i8*%aN to i32*
store i32 1342177288,i32*%aO,align 4
%aP=load i8*,i8**%c,align 8
%aQ=bitcast i8*%aM to i8**
store i8*%aP,i8**%aQ,align 8
%aR=getelementptr inbounds i8,i8*%aM,i64 8
%aS=bitcast i8*%aR to i32*
store i32 1,i32*%aS,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL87,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL87,i64 0,i32 2),i8*inreg%aM)#0
%aT=load i8*,i8**%c,align 8
ret i8*%aT
aU:
%aV=bitcast i8*%h to i8**
%aW=load i8*,i8**%aV,align 8
ret i8*%aW
}
define internal fastcc i32@_SMLLL94(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)**
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)***
%l=load i32(i8*,i32,i32)**,i32(i8*,i32,i32)***%k,align 8
br label%m
m:
%n=phi i32(i8*,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(i8*,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
call void@sml_leave()#0
%y=invoke i32%p(i8*%r,i32%u,i32%x)
to label%z unwind label%C
z:
call void@sml_enter()#0
%A=icmp ne i32%y,0
%B=zext i1%A to i32
ret i32%B
C:
%D=landingpad{i8*,i8*}
cleanup
%E=extractvalue{i8*,i8*}%D,1
call void@sml_enter()#0
%F=call i8*@sml_unsave_exn(i8*inreg%E)#0
resume{i8*,i8*}%D
}
define fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL11PQgetisnullE(i32 inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%g,label%f
f:
call void@sml_check(i32 inreg%d)
br label%g
g:
%h=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL97,i64 0,i32 2),align 8
%i=icmp eq i8*%h,null
br i1%i,label%j,label%aU
j:
%k=bitcast i8**%b to i8*
call void@llvm.lifetime.start.p0i8(i64 8,i8*%k)
call void@llvm.gcroot(i8**%b,i8*null)#0
%l=load atomic i32,i32*@sml_check_flag unordered,align 4
%m=icmp eq i32%l,0
br i1%m,label%o,label%n
n:
call void@sml_check(i32 inreg%l)
br label%o
o:
%p=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),align 8
%q=icmp eq i8*%p,null
br i1%q,label%r,label%ah
r:
%s=call fastcc i8*@_SMLFN18SMLSharp__OSProcess6getEnvE(i8*inreg getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@G,i64 0,i32 2,i64 0))
%t=icmp eq i8*%s,null
br i1%t,label%u,label%V
u:
%v=load i8**,i8***bitcast(i8**@_SMLZN19SMLSharp__SQL__Config6DLLEXTE to i8***),align 8
%w=load i8*,i8**%v,align 8
store i8*%w,i8**%b,align 8
%x=getelementptr inbounds i8,i8*%w,i64 -4
%y=bitcast i8*%x to i32*
%z=load i32,i32*%y,align 4
%A=and i32%z,268435455
%B=icmp eq i32%A,3
br i1%B,label%C,label%K
C:
%D=load i8,i8*%w,align 1
%E=icmp eq i8%D,115
br i1%E,label%F,label%K
F:
%G=getelementptr inbounds i8,i8*%w,i64 1
%H=load i8,i8*%G,align 1
%I=icmp eq i8%H,111
br i1%I,label%J,label%K
J:
store i8*null,i8**%b,align 8
br label%Y
K:
%L=call i8*@sml_alloc(i32 inreg 20)#0
%M=getelementptr inbounds i8,i8*%L,i64 -4
%N=bitcast i8*%M to i32*
store i32 1342177296,i32*%N,align 4
%O=bitcast i8*%L to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[9x i8]}>,<{[4x i8],i32,[9x i8]}>*@H,i64 0,i32 2,i64 0),i8**%O,align 8
%P=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%Q=getelementptr inbounds i8,i8*%L,i64 8
%R=bitcast i8*%Q to i8**
store i8*%P,i8**%R,align 8
%S=getelementptr inbounds i8,i8*%L,i64 16
%T=bitcast i8*%S to i32*
store i32 3,i32*%T,align 4
%U=call fastcc i8*@_SMLFN6String1_ZE(i8*inreg%L)
br label%Y
V:
%W=bitcast i8*%s to i8**
%X=load i8*,i8**%W,align 8
br label%Y
Y:
%Z=phi i8*[%X,%V],[getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@I,i64 0,i32 2,i64 0),%J],[%U,%K]
%aa=call fastcc i8*@_SMLFN11DynamicLink6dlopenE(i8*inreg%Z)
%ab=call i8*@sml_alloc(i32 inreg 12)#0
%ac=getelementptr inbounds i8,i8*%ab,i64 -4
%ad=bitcast i8*%ac to i32*
store i32 1342177288,i32*%ad,align 4
%ae=bitcast i8*%ab to i8**
store i8*%aa,i8**%ae,align 8
%af=getelementptr inbounds i8,i8*%ab,i64 8
%ag=bitcast i8*%af to i32*
store i32 0,i32*%ag,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),i8*inreg%ab)#0
br label%ak
ah:
%ai=bitcast i8*%p to i8**
%aj=load i8*,i8**%ai,align 8
br label%ak
ak:
%al=phi i8*[%aa,%Y],[%aj,%ah]
%am=call i8*@sml_alloc(i32 inreg 20)#0
%an=getelementptr inbounds i8,i8*%am,i64 -4
%ao=bitcast i8*%an to i32*
store i32 1342177296,i32*%ao,align 4
%ap=bitcast i8*%am to i8**
store i8*%al,i8**%ap,align 8
%aq=getelementptr inbounds i8,i8*%am,i64 8
%ar=bitcast i8*%aq to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[12x i8]}>,<{[4x i8],i32,[12x i8]}>*@m,i64 0,i32 2,i64 0),i8**%ar,align 8
%as=getelementptr inbounds i8,i8*%am,i64 16
%at=bitcast i8*%as to i32*
store i32 2,i32*%at,align 4
%au=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%am)
%av=call i8*@sml_alloc(i32 inreg 12)#0
%aw=getelementptr inbounds i8,i8*%av,i64 -4
%ax=bitcast i8*%aw to i32*
store i32 1342177288,i32*%ax,align 4
store i8*%av,i8**%b,align 8
%ay=bitcast i8*%av to void(...)**
store void(...)*%au,void(...)**%ay,align 8
%az=getelementptr inbounds i8,i8*%av,i64 8
%aA=bitcast i8*%az to i32*
store i32 0,i32*%aA,align 4
%aB=call i8*@sml_alloc(i32 inreg 28)#0
%aC=getelementptr inbounds i8,i8*%aB,i64 -4
%aD=bitcast i8*%aC to i32*
store i32 1342177304,i32*%aD,align 4
%aE=load i8*,i8**%b,align 8
%aF=bitcast i8*%aB to i8**
store i8*%aE,i8**%aF,align 8
%aG=getelementptr inbounds i8,i8*%aB,i64 8
%aH=bitcast i8*%aG to void(...)**
store void(...)*bitcast(i32(i8*,i8*)*@_SMLLL94 to void(...)*),void(...)**%aH,align 8
%aI=getelementptr inbounds i8,i8*%aB,i64 16
%aJ=bitcast i8*%aI to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL207 to void(...)*),void(...)**%aJ,align 8
%aK=getelementptr inbounds i8,i8*%aB,i64 24
%aL=bitcast i8*%aK to i32*
store i32 -2147483647,i32*%aL,align 4
call void@llvm.lifetime.end.p0i8(i64 8,i8*%k)
store i8*%aB,i8**%c,align 8
%aM=call i8*@sml_alloc(i32 inreg 12)#0
%aN=getelementptr inbounds i8,i8*%aM,i64 -4
%aO=bitcast i8*%aN to i32*
store i32 1342177288,i32*%aO,align 4
%aP=load i8*,i8**%c,align 8
%aQ=bitcast i8*%aM to i8**
store i8*%aP,i8**%aQ,align 8
%aR=getelementptr inbounds i8,i8*%aM,i64 8
%aS=bitcast i8*%aR to i32*
store i32 1,i32*%aS,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL97,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL97,i64 0,i32 2),i8*inreg%aM)#0
%aT=load i8*,i8**%c,align 8
ret i8*%aT
aU:
%aV=bitcast i8*%h to i8**
%aW=load i8*,i8**%aV,align 8
ret i8*%aW
}
define internal fastcc i32@_SMLLL1x_105(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 fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL9PQntuplesE(i32 inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%g,label%f
f:
call void@sml_check(i32 inreg%d)
br label%g
g:
%h=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL100,i64 0,i32 2),align 8
%i=icmp eq i8*%h,null
br i1%i,label%j,label%aP
j:
%k=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),align 8
%l=icmp eq i8*%k,null
br i1%l,label%m,label%ac
m:
%n=call fastcc i8*@_SMLFN18SMLSharp__OSProcess6getEnvE(i8*inreg getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@G,i64 0,i32 2,i64 0))
%o=icmp eq i8*%n,null
br i1%o,label%p,label%Q
p:
%q=load i8**,i8***bitcast(i8**@_SMLZN19SMLSharp__SQL__Config6DLLEXTE to i8***),align 8
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%b,align 8
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
%u=load i32,i32*%t,align 4
%v=and i32%u,268435455
%w=icmp eq i32%v,3
br i1%w,label%x,label%F
x:
%y=load i8,i8*%r,align 1
%z=icmp eq i8%y,115
br i1%z,label%A,label%F
A:
%B=getelementptr inbounds i8,i8*%r,i64 1
%C=load i8,i8*%B,align 1
%D=icmp eq i8%C,111
br i1%D,label%E,label%F
E:
store i8*null,i8**%b,align 8
br label%T
F:
%G=call i8*@sml_alloc(i32 inreg 20)#0
%H=getelementptr inbounds i8,i8*%G,i64 -4
%I=bitcast i8*%H to i32*
store i32 1342177296,i32*%I,align 4
%J=bitcast i8*%G to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[9x i8]}>,<{[4x i8],i32,[9x i8]}>*@H,i64 0,i32 2,i64 0),i8**%J,align 8
%K=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%L=getelementptr inbounds i8,i8*%G,i64 8
%M=bitcast i8*%L to i8**
store i8*%K,i8**%M,align 8
%N=getelementptr inbounds i8,i8*%G,i64 16
%O=bitcast i8*%N to i32*
store i32 3,i32*%O,align 4
%P=call fastcc i8*@_SMLFN6String1_ZE(i8*inreg%G)
br label%T
Q:
%R=bitcast i8*%n to i8**
%S=load i8*,i8**%R,align 8
br label%T
T:
%U=phi i8*[%S,%Q],[getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@I,i64 0,i32 2,i64 0),%E],[%P,%F]
%V=call fastcc i8*@_SMLFN11DynamicLink6dlopenE(i8*inreg%U)
%W=call i8*@sml_alloc(i32 inreg 12)#0
%X=getelementptr inbounds i8,i8*%W,i64 -4
%Y=bitcast i8*%X to i32*
store i32 1342177288,i32*%Y,align 4
%Z=bitcast i8*%W to i8**
store i8*%V,i8**%Z,align 8
%aa=getelementptr inbounds i8,i8*%W,i64 8
%ab=bitcast i8*%aa to i32*
store i32 0,i32*%ab,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),i8*inreg%W)#0
br label%af
ac:
%ad=bitcast i8*%k to i8**
%ae=load i8*,i8**%ad,align 8
br label%af
af:
%ag=phi i8*[%V,%T],[%ae,%ac]
%ah=call i8*@sml_alloc(i32 inreg 20)#0
%ai=getelementptr inbounds i8,i8*%ah,i64 -4
%aj=bitcast i8*%ai to i32*
store i32 1342177296,i32*%aj,align 4
%ak=bitcast i8*%ah to i8**
store i8*%ag,i8**%ak,align 8
%al=getelementptr inbounds i8,i8*%ah,i64 8
%am=bitcast i8*%al to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[10x i8]}>,<{[4x i8],i32,[10x i8]}>*@o,i64 0,i32 2,i64 0),i8**%am,align 8
%an=getelementptr inbounds i8,i8*%ah,i64 16
%ao=bitcast i8*%an to i32*
store i32 2,i32*%ao,align 4
%ap=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%ah)
%aq=call i8*@sml_alloc(i32 inreg 12)#0
%ar=getelementptr inbounds i8,i8*%aq,i64 -4
%as=bitcast i8*%ar to i32*
store i32 1342177288,i32*%as,align 4
store i8*%aq,i8**%b,align 8
%at=bitcast i8*%aq to void(...)**
store void(...)*%ap,void(...)**%at,align 8
%au=getelementptr inbounds i8,i8*%aq,i64 8
%av=bitcast i8*%au to i32*
store i32 0,i32*%av,align 4
%aw=call i8*@sml_alloc(i32 inreg 28)#0
%ax=getelementptr inbounds i8,i8*%aw,i64 -4
%ay=bitcast i8*%ax to i32*
store i32 1342177304,i32*%ay,align 4
store i8*%aw,i8**%c,align 8
%az=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%aA=bitcast i8*%aw to i8**
store i8*%az,i8**%aA,align 8
%aB=getelementptr inbounds i8,i8*%aw,i64 8
%aC=bitcast i8*%aB to void(...)**
store void(...)*bitcast(i32(i8*,i64)*@_SMLLL1x_105 to void(...)*),void(...)**%aC,align 8
%aD=getelementptr inbounds i8,i8*%aw,i64 16
%aE=bitcast i8*%aD to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL1x_210 to void(...)*),void(...)**%aE,align 8
%aF=getelementptr inbounds i8,i8*%aw,i64 24
%aG=bitcast i8*%aF to i32*
store i32 -2147483647,i32*%aG,align 4
%aH=call i8*@sml_alloc(i32 inreg 12)#0
%aI=getelementptr inbounds i8,i8*%aH,i64 -4
%aJ=bitcast i8*%aI to i32*
store i32 1342177288,i32*%aJ,align 4
%aK=load i8*,i8**%c,align 8
%aL=bitcast i8*%aH to i8**
store i8*%aK,i8**%aL,align 8
%aM=getelementptr inbounds i8,i8*%aH,i64 8
%aN=bitcast i8*%aM to i32*
store i32 1,i32*%aN,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL100,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL100,i64 0,i32 2),i8*inreg%aH)#0
%aO=load i8*,i8**%c,align 8
ret i8*%aO
aP:
%aQ=bitcast i8*%h to i8**
%aR=load i8*,i8**%aQ,align 8
ret i8*%aR
}
define internal fastcc i32@_SMLLL1x_113(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 fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL9PQnfieldsE(i32 inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%g,label%f
f:
call void@sml_check(i32 inreg%d)
br label%g
g:
%h=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL108,i64 0,i32 2),align 8
%i=icmp eq i8*%h,null
br i1%i,label%j,label%aP
j:
%k=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),align 8
%l=icmp eq i8*%k,null
br i1%l,label%m,label%ac
m:
%n=call fastcc i8*@_SMLFN18SMLSharp__OSProcess6getEnvE(i8*inreg getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@G,i64 0,i32 2,i64 0))
%o=icmp eq i8*%n,null
br i1%o,label%p,label%Q
p:
%q=load i8**,i8***bitcast(i8**@_SMLZN19SMLSharp__SQL__Config6DLLEXTE to i8***),align 8
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%b,align 8
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
%u=load i32,i32*%t,align 4
%v=and i32%u,268435455
%w=icmp eq i32%v,3
br i1%w,label%x,label%F
x:
%y=load i8,i8*%r,align 1
%z=icmp eq i8%y,115
br i1%z,label%A,label%F
A:
%B=getelementptr inbounds i8,i8*%r,i64 1
%C=load i8,i8*%B,align 1
%D=icmp eq i8%C,111
br i1%D,label%E,label%F
E:
store i8*null,i8**%b,align 8
br label%T
F:
%G=call i8*@sml_alloc(i32 inreg 20)#0
%H=getelementptr inbounds i8,i8*%G,i64 -4
%I=bitcast i8*%H to i32*
store i32 1342177296,i32*%I,align 4
%J=bitcast i8*%G to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[9x i8]}>,<{[4x i8],i32,[9x i8]}>*@H,i64 0,i32 2,i64 0),i8**%J,align 8
%K=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%L=getelementptr inbounds i8,i8*%G,i64 8
%M=bitcast i8*%L to i8**
store i8*%K,i8**%M,align 8
%N=getelementptr inbounds i8,i8*%G,i64 16
%O=bitcast i8*%N to i32*
store i32 3,i32*%O,align 4
%P=call fastcc i8*@_SMLFN6String1_ZE(i8*inreg%G)
br label%T
Q:
%R=bitcast i8*%n to i8**
%S=load i8*,i8**%R,align 8
br label%T
T:
%U=phi i8*[%S,%Q],[getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@I,i64 0,i32 2,i64 0),%E],[%P,%F]
%V=call fastcc i8*@_SMLFN11DynamicLink6dlopenE(i8*inreg%U)
%W=call i8*@sml_alloc(i32 inreg 12)#0
%X=getelementptr inbounds i8,i8*%W,i64 -4
%Y=bitcast i8*%X to i32*
store i32 1342177288,i32*%Y,align 4
%Z=bitcast i8*%W to i8**
store i8*%V,i8**%Z,align 8
%aa=getelementptr inbounds i8,i8*%W,i64 8
%ab=bitcast i8*%aa to i32*
store i32 0,i32*%ab,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),i8*inreg%W)#0
br label%af
ac:
%ad=bitcast i8*%k to i8**
%ae=load i8*,i8**%ad,align 8
br label%af
af:
%ag=phi i8*[%V,%T],[%ae,%ac]
%ah=call i8*@sml_alloc(i32 inreg 20)#0
%ai=getelementptr inbounds i8,i8*%ah,i64 -4
%aj=bitcast i8*%ai to i32*
store i32 1342177296,i32*%aj,align 4
%ak=bitcast i8*%ah to i8**
store i8*%ag,i8**%ak,align 8
%al=getelementptr inbounds i8,i8*%ah,i64 8
%am=bitcast i8*%al to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[10x i8]}>,<{[4x i8],i32,[10x i8]}>*@q,i64 0,i32 2,i64 0),i8**%am,align 8
%an=getelementptr inbounds i8,i8*%ah,i64 16
%ao=bitcast i8*%an to i32*
store i32 2,i32*%ao,align 4
%ap=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%ah)
%aq=call i8*@sml_alloc(i32 inreg 12)#0
%ar=getelementptr inbounds i8,i8*%aq,i64 -4
%as=bitcast i8*%ar to i32*
store i32 1342177288,i32*%as,align 4
store i8*%aq,i8**%b,align 8
%at=bitcast i8*%aq to void(...)**
store void(...)*%ap,void(...)**%at,align 8
%au=getelementptr inbounds i8,i8*%aq,i64 8
%av=bitcast i8*%au to i32*
store i32 0,i32*%av,align 4
%aw=call i8*@sml_alloc(i32 inreg 28)#0
%ax=getelementptr inbounds i8,i8*%aw,i64 -4
%ay=bitcast i8*%ax to i32*
store i32 1342177304,i32*%ay,align 4
store i8*%aw,i8**%c,align 8
%az=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%aA=bitcast i8*%aw to i8**
store i8*%az,i8**%aA,align 8
%aB=getelementptr inbounds i8,i8*%aw,i64 8
%aC=bitcast i8*%aB to void(...)**
store void(...)*bitcast(i32(i8*,i64)*@_SMLLL1x_113 to void(...)*),void(...)**%aC,align 8
%aD=getelementptr inbounds i8,i8*%aw,i64 16
%aE=bitcast i8*%aD to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL1x_212 to void(...)*),void(...)**%aE,align 8
%aF=getelementptr inbounds i8,i8*%aw,i64 24
%aG=bitcast i8*%aF to i32*
store i32 -2147483647,i32*%aG,align 4
%aH=call i8*@sml_alloc(i32 inreg 12)#0
%aI=getelementptr inbounds i8,i8*%aH,i64 -4
%aJ=bitcast i8*%aI to i32*
store i32 1342177288,i32*%aJ,align 4
%aK=load i8*,i8**%c,align 8
%aL=bitcast i8*%aH to i8**
store i8*%aK,i8**%aL,align 8
%aM=getelementptr inbounds i8,i8*%aH,i64 8
%aN=bitcast i8*%aM to i32*
store i32 1,i32*%aN,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL108,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL108,i64 0,i32 2),i8*inreg%aH)#0
%aO=load i8*,i8**%c,align 8
ret i8*%aO
aP:
%aQ=bitcast i8*%h to i8**
%aR=load i8*,i8**%aQ,align 8
ret i8*%aR
}
define internal fastcc i8*@_SMLLL120(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 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 i8*(i8*,i32)***
%l=load i8*(i8*,i32)**,i8*(i8*,i32)***%k,align 8
br label%m
m:
%n=phi i8*(i8*,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 i8*(i8*,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 i32*
%u=load i32,i32*%t,align 4
call void@sml_leave()#0
%v=invoke i8*%p(i8*%r,i32%u)
to label%w unwind label%x
w:
call void@sml_enter()#0
ret i8*%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 fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL7PQfnameE(i32 inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%g,label%f
f:
call void@sml_check(i32 inreg%d)
br label%g
g:
%h=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL123,i64 0,i32 2),align 8
%i=icmp eq i8*%h,null
br i1%i,label%j,label%aU
j:
%k=bitcast i8**%b to i8*
call void@llvm.lifetime.start.p0i8(i64 8,i8*%k)
call void@llvm.gcroot(i8**%b,i8*null)#0
%l=load atomic i32,i32*@sml_check_flag unordered,align 4
%m=icmp eq i32%l,0
br i1%m,label%o,label%n
n:
call void@sml_check(i32 inreg%l)
br label%o
o:
%p=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),align 8
%q=icmp eq i8*%p,null
br i1%q,label%r,label%ah
r:
%s=call fastcc i8*@_SMLFN18SMLSharp__OSProcess6getEnvE(i8*inreg getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@G,i64 0,i32 2,i64 0))
%t=icmp eq i8*%s,null
br i1%t,label%u,label%V
u:
%v=load i8**,i8***bitcast(i8**@_SMLZN19SMLSharp__SQL__Config6DLLEXTE to i8***),align 8
%w=load i8*,i8**%v,align 8
store i8*%w,i8**%b,align 8
%x=getelementptr inbounds i8,i8*%w,i64 -4
%y=bitcast i8*%x to i32*
%z=load i32,i32*%y,align 4
%A=and i32%z,268435455
%B=icmp eq i32%A,3
br i1%B,label%C,label%K
C:
%D=load i8,i8*%w,align 1
%E=icmp eq i8%D,115
br i1%E,label%F,label%K
F:
%G=getelementptr inbounds i8,i8*%w,i64 1
%H=load i8,i8*%G,align 1
%I=icmp eq i8%H,111
br i1%I,label%J,label%K
J:
store i8*null,i8**%b,align 8
br label%Y
K:
%L=call i8*@sml_alloc(i32 inreg 20)#0
%M=getelementptr inbounds i8,i8*%L,i64 -4
%N=bitcast i8*%M to i32*
store i32 1342177296,i32*%N,align 4
%O=bitcast i8*%L to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[9x i8]}>,<{[4x i8],i32,[9x i8]}>*@H,i64 0,i32 2,i64 0),i8**%O,align 8
%P=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%Q=getelementptr inbounds i8,i8*%L,i64 8
%R=bitcast i8*%Q to i8**
store i8*%P,i8**%R,align 8
%S=getelementptr inbounds i8,i8*%L,i64 16
%T=bitcast i8*%S to i32*
store i32 3,i32*%T,align 4
%U=call fastcc i8*@_SMLFN6String1_ZE(i8*inreg%L)
br label%Y
V:
%W=bitcast i8*%s to i8**
%X=load i8*,i8**%W,align 8
br label%Y
Y:
%Z=phi i8*[%X,%V],[getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@I,i64 0,i32 2,i64 0),%J],[%U,%K]
%aa=call fastcc i8*@_SMLFN11DynamicLink6dlopenE(i8*inreg%Z)
%ab=call i8*@sml_alloc(i32 inreg 12)#0
%ac=getelementptr inbounds i8,i8*%ab,i64 -4
%ad=bitcast i8*%ac to i32*
store i32 1342177288,i32*%ad,align 4
%ae=bitcast i8*%ab to i8**
store i8*%aa,i8**%ae,align 8
%af=getelementptr inbounds i8,i8*%ab,i64 8
%ag=bitcast i8*%af to i32*
store i32 0,i32*%ag,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),i8*inreg%ab)#0
br label%ak
ah:
%ai=bitcast i8*%p to i8**
%aj=load i8*,i8**%ai,align 8
br label%ak
ak:
%al=phi i8*[%aa,%Y],[%aj,%ah]
%am=call i8*@sml_alloc(i32 inreg 20)#0
%an=getelementptr inbounds i8,i8*%am,i64 -4
%ao=bitcast i8*%an to i32*
store i32 1342177296,i32*%ao,align 4
%ap=bitcast i8*%am to i8**
store i8*%al,i8**%ap,align 8
%aq=getelementptr inbounds i8,i8*%am,i64 8
%ar=bitcast i8*%aq to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[8x i8]}>,<{[4x i8],i32,[8x i8]}>*@s,i64 0,i32 2,i64 0),i8**%ar,align 8
%as=getelementptr inbounds i8,i8*%am,i64 16
%at=bitcast i8*%as to i32*
store i32 2,i32*%at,align 4
%au=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%am)
%av=call i8*@sml_alloc(i32 inreg 12)#0
%aw=getelementptr inbounds i8,i8*%av,i64 -4
%ax=bitcast i8*%aw to i32*
store i32 1342177288,i32*%ax,align 4
store i8*%av,i8**%b,align 8
%ay=bitcast i8*%av to void(...)**
store void(...)*%au,void(...)**%ay,align 8
%az=getelementptr inbounds i8,i8*%av,i64 8
%aA=bitcast i8*%az to i32*
store i32 0,i32*%aA,align 4
%aB=call i8*@sml_alloc(i32 inreg 28)#0
%aC=getelementptr inbounds i8,i8*%aB,i64 -4
%aD=bitcast i8*%aC to i32*
store i32 1342177304,i32*%aD,align 4
%aE=load i8*,i8**%b,align 8
%aF=bitcast i8*%aB to i8**
store i8*%aE,i8**%aF,align 8
%aG=getelementptr inbounds i8,i8*%aB,i64 8
%aH=bitcast i8*%aG to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL120 to void(...)*),void(...)**%aH,align 8
%aI=getelementptr inbounds i8,i8*%aB,i64 16
%aJ=bitcast i8*%aI to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL214 to void(...)*),void(...)**%aJ,align 8
%aK=getelementptr inbounds i8,i8*%aB,i64 24
%aL=bitcast i8*%aK to i32*
store i32 -2147483647,i32*%aL,align 4
call void@llvm.lifetime.end.p0i8(i64 8,i8*%k)
store i8*%aB,i8**%c,align 8
%aM=call i8*@sml_alloc(i32 inreg 12)#0
%aN=getelementptr inbounds i8,i8*%aM,i64 -4
%aO=bitcast i8*%aN to i32*
store i32 1342177288,i32*%aO,align 4
%aP=load i8*,i8**%c,align 8
%aQ=bitcast i8*%aM to i8**
store i8*%aP,i8**%aQ,align 8
%aR=getelementptr inbounds i8,i8*%aM,i64 8
%aS=bitcast i8*%aR to i32*
store i32 1,i32*%aS,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL123,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL123,i64 0,i32 2),i8*inreg%aM)#0
%aT=load i8*,i8**%c,align 8
ret i8*%aT
aU:
%aV=bitcast i8*%h to i8**
%aW=load i8*,i8**%aV,align 8
ret i8*%aW
}
define internal fastcc i32@_SMLLL130(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 fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL9PQfnumberE(i32 inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%g,label%f
f:
call void@sml_check(i32 inreg%d)
br label%g
g:
%h=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL133,i64 0,i32 2),align 8
%i=icmp eq i8*%h,null
br i1%i,label%j,label%aU
j:
%k=bitcast i8**%b to i8*
call void@llvm.lifetime.start.p0i8(i64 8,i8*%k)
call void@llvm.gcroot(i8**%b,i8*null)#0
%l=load atomic i32,i32*@sml_check_flag unordered,align 4
%m=icmp eq i32%l,0
br i1%m,label%o,label%n
n:
call void@sml_check(i32 inreg%l)
br label%o
o:
%p=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),align 8
%q=icmp eq i8*%p,null
br i1%q,label%r,label%ah
r:
%s=call fastcc i8*@_SMLFN18SMLSharp__OSProcess6getEnvE(i8*inreg getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@G,i64 0,i32 2,i64 0))
%t=icmp eq i8*%s,null
br i1%t,label%u,label%V
u:
%v=load i8**,i8***bitcast(i8**@_SMLZN19SMLSharp__SQL__Config6DLLEXTE to i8***),align 8
%w=load i8*,i8**%v,align 8
store i8*%w,i8**%b,align 8
%x=getelementptr inbounds i8,i8*%w,i64 -4
%y=bitcast i8*%x to i32*
%z=load i32,i32*%y,align 4
%A=and i32%z,268435455
%B=icmp eq i32%A,3
br i1%B,label%C,label%K
C:
%D=load i8,i8*%w,align 1
%E=icmp eq i8%D,115
br i1%E,label%F,label%K
F:
%G=getelementptr inbounds i8,i8*%w,i64 1
%H=load i8,i8*%G,align 1
%I=icmp eq i8%H,111
br i1%I,label%J,label%K
J:
store i8*null,i8**%b,align 8
br label%Y
K:
%L=call i8*@sml_alloc(i32 inreg 20)#0
%M=getelementptr inbounds i8,i8*%L,i64 -4
%N=bitcast i8*%M to i32*
store i32 1342177296,i32*%N,align 4
%O=bitcast i8*%L to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[9x i8]}>,<{[4x i8],i32,[9x i8]}>*@H,i64 0,i32 2,i64 0),i8**%O,align 8
%P=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%Q=getelementptr inbounds i8,i8*%L,i64 8
%R=bitcast i8*%Q to i8**
store i8*%P,i8**%R,align 8
%S=getelementptr inbounds i8,i8*%L,i64 16
%T=bitcast i8*%S to i32*
store i32 3,i32*%T,align 4
%U=call fastcc i8*@_SMLFN6String1_ZE(i8*inreg%L)
br label%Y
V:
%W=bitcast i8*%s to i8**
%X=load i8*,i8**%W,align 8
br label%Y
Y:
%Z=phi i8*[%X,%V],[getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@I,i64 0,i32 2,i64 0),%J],[%U,%K]
%aa=call fastcc i8*@_SMLFN11DynamicLink6dlopenE(i8*inreg%Z)
%ab=call i8*@sml_alloc(i32 inreg 12)#0
%ac=getelementptr inbounds i8,i8*%ab,i64 -4
%ad=bitcast i8*%ac to i32*
store i32 1342177288,i32*%ad,align 4
%ae=bitcast i8*%ab to i8**
store i8*%aa,i8**%ae,align 8
%af=getelementptr inbounds i8,i8*%ab,i64 8
%ag=bitcast i8*%af to i32*
store i32 0,i32*%ag,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),i8*inreg%ab)#0
br label%ak
ah:
%ai=bitcast i8*%p to i8**
%aj=load i8*,i8**%ai,align 8
br label%ak
ak:
%al=phi i8*[%aa,%Y],[%aj,%ah]
%am=call i8*@sml_alloc(i32 inreg 20)#0
%an=getelementptr inbounds i8,i8*%am,i64 -4
%ao=bitcast i8*%an to i32*
store i32 1342177296,i32*%ao,align 4
%ap=bitcast i8*%am to i8**
store i8*%al,i8**%ap,align 8
%aq=getelementptr inbounds i8,i8*%am,i64 8
%ar=bitcast i8*%aq to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[10x i8]}>,<{[4x i8],i32,[10x i8]}>*@u,i64 0,i32 2,i64 0),i8**%ar,align 8
%as=getelementptr inbounds i8,i8*%am,i64 16
%at=bitcast i8*%as to i32*
store i32 2,i32*%at,align 4
%au=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%am)
%av=call i8*@sml_alloc(i32 inreg 12)#0
%aw=getelementptr inbounds i8,i8*%av,i64 -4
%ax=bitcast i8*%aw to i32*
store i32 1342177288,i32*%ax,align 4
store i8*%av,i8**%b,align 8
%ay=bitcast i8*%av to void(...)**
store void(...)*%au,void(...)**%ay,align 8
%az=getelementptr inbounds i8,i8*%av,i64 8
%aA=bitcast i8*%az to i32*
store i32 0,i32*%aA,align 4
%aB=call i8*@sml_alloc(i32 inreg 28)#0
%aC=getelementptr inbounds i8,i8*%aB,i64 -4
%aD=bitcast i8*%aC to i32*
store i32 1342177304,i32*%aD,align 4
%aE=load i8*,i8**%b,align 8
%aF=bitcast i8*%aB to i8**
store i8*%aE,i8**%aF,align 8
%aG=getelementptr inbounds i8,i8*%aB,i64 8
%aH=bitcast i8*%aG to void(...)**
store void(...)*bitcast(i32(i8*,i8*)*@_SMLLL130 to void(...)*),void(...)**%aH,align 8
%aI=getelementptr inbounds i8,i8*%aB,i64 16
%aJ=bitcast i8*%aI to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL217 to void(...)*),void(...)**%aJ,align 8
%aK=getelementptr inbounds i8,i8*%aB,i64 24
%aL=bitcast i8*%aK to i32*
store i32 -2147483647,i32*%aL,align 4
call void@llvm.lifetime.end.p0i8(i64 8,i8*%k)
store i8*%aB,i8**%c,align 8
%aM=call i8*@sml_alloc(i32 inreg 12)#0
%aN=getelementptr inbounds i8,i8*%aM,i64 -4
%aO=bitcast i8*%aN to i32*
store i32 1342177288,i32*%aO,align 4
%aP=load i8*,i8**%c,align 8
%aQ=bitcast i8*%aM to i8**
store i8*%aP,i8**%aQ,align 8
%aR=getelementptr inbounds i8,i8*%aM,i64 8
%aS=bitcast i8*%aR to i32*
store i32 1,i32*%aS,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL133,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL133,i64 0,i32 2),i8*inreg%aM)#0
%aT=load i8*,i8**%c,align 8
ret i8*%aT
aU:
%aV=bitcast i8*%h to i8**
%aW=load i8*,i8**%aV,align 8
ret i8*%aW
}
define internal fastcc i32@_SMLLL1x_141(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 fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL14PQresultStatusE(i32 inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%g,label%f
f:
call void@sml_check(i32 inreg%d)
br label%g
g:
%h=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL136,i64 0,i32 2),align 8
%i=icmp eq i8*%h,null
br i1%i,label%j,label%aP
j:
%k=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),align 8
%l=icmp eq i8*%k,null
br i1%l,label%m,label%ac
m:
%n=call fastcc i8*@_SMLFN18SMLSharp__OSProcess6getEnvE(i8*inreg getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@G,i64 0,i32 2,i64 0))
%o=icmp eq i8*%n,null
br i1%o,label%p,label%Q
p:
%q=load i8**,i8***bitcast(i8**@_SMLZN19SMLSharp__SQL__Config6DLLEXTE to i8***),align 8
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%b,align 8
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
%u=load i32,i32*%t,align 4
%v=and i32%u,268435455
%w=icmp eq i32%v,3
br i1%w,label%x,label%F
x:
%y=load i8,i8*%r,align 1
%z=icmp eq i8%y,115
br i1%z,label%A,label%F
A:
%B=getelementptr inbounds i8,i8*%r,i64 1
%C=load i8,i8*%B,align 1
%D=icmp eq i8%C,111
br i1%D,label%E,label%F
E:
store i8*null,i8**%b,align 8
br label%T
F:
%G=call i8*@sml_alloc(i32 inreg 20)#0
%H=getelementptr inbounds i8,i8*%G,i64 -4
%I=bitcast i8*%H to i32*
store i32 1342177296,i32*%I,align 4
%J=bitcast i8*%G to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[9x i8]}>,<{[4x i8],i32,[9x i8]}>*@H,i64 0,i32 2,i64 0),i8**%J,align 8
%K=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%L=getelementptr inbounds i8,i8*%G,i64 8
%M=bitcast i8*%L to i8**
store i8*%K,i8**%M,align 8
%N=getelementptr inbounds i8,i8*%G,i64 16
%O=bitcast i8*%N to i32*
store i32 3,i32*%O,align 4
%P=call fastcc i8*@_SMLFN6String1_ZE(i8*inreg%G)
br label%T
Q:
%R=bitcast i8*%n to i8**
%S=load i8*,i8**%R,align 8
br label%T
T:
%U=phi i8*[%S,%Q],[getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@I,i64 0,i32 2,i64 0),%E],[%P,%F]
%V=call fastcc i8*@_SMLFN11DynamicLink6dlopenE(i8*inreg%U)
%W=call i8*@sml_alloc(i32 inreg 12)#0
%X=getelementptr inbounds i8,i8*%W,i64 -4
%Y=bitcast i8*%X to i32*
store i32 1342177288,i32*%Y,align 4
%Z=bitcast i8*%W to i8**
store i8*%V,i8**%Z,align 8
%aa=getelementptr inbounds i8,i8*%W,i64 8
%ab=bitcast i8*%aa to i32*
store i32 0,i32*%ab,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),i8*inreg%W)#0
br label%af
ac:
%ad=bitcast i8*%k to i8**
%ae=load i8*,i8**%ad,align 8
br label%af
af:
%ag=phi i8*[%V,%T],[%ae,%ac]
%ah=call i8*@sml_alloc(i32 inreg 20)#0
%ai=getelementptr inbounds i8,i8*%ah,i64 -4
%aj=bitcast i8*%ai to i32*
store i32 1342177296,i32*%aj,align 4
%ak=bitcast i8*%ah to i8**
store i8*%ag,i8**%ak,align 8
%al=getelementptr inbounds i8,i8*%ah,i64 8
%am=bitcast i8*%al to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@w,i64 0,i32 2,i64 0),i8**%am,align 8
%an=getelementptr inbounds i8,i8*%ah,i64 16
%ao=bitcast i8*%an to i32*
store i32 2,i32*%ao,align 4
%ap=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%ah)
%aq=call i8*@sml_alloc(i32 inreg 12)#0
%ar=getelementptr inbounds i8,i8*%aq,i64 -4
%as=bitcast i8*%ar to i32*
store i32 1342177288,i32*%as,align 4
store i8*%aq,i8**%b,align 8
%at=bitcast i8*%aq to void(...)**
store void(...)*%ap,void(...)**%at,align 8
%au=getelementptr inbounds i8,i8*%aq,i64 8
%av=bitcast i8*%au to i32*
store i32 0,i32*%av,align 4
%aw=call i8*@sml_alloc(i32 inreg 28)#0
%ax=getelementptr inbounds i8,i8*%aw,i64 -4
%ay=bitcast i8*%ax to i32*
store i32 1342177304,i32*%ay,align 4
store i8*%aw,i8**%c,align 8
%az=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%aA=bitcast i8*%aw to i8**
store i8*%az,i8**%aA,align 8
%aB=getelementptr inbounds i8,i8*%aw,i64 8
%aC=bitcast i8*%aB to void(...)**
store void(...)*bitcast(i32(i8*,i64)*@_SMLLL1x_141 to void(...)*),void(...)**%aC,align 8
%aD=getelementptr inbounds i8,i8*%aw,i64 16
%aE=bitcast i8*%aD to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL1x_220 to void(...)*),void(...)**%aE,align 8
%aF=getelementptr inbounds i8,i8*%aw,i64 24
%aG=bitcast i8*%aF to i32*
store i32 -2147483647,i32*%aG,align 4
%aH=call i8*@sml_alloc(i32 inreg 12)#0
%aI=getelementptr inbounds i8,i8*%aH,i64 -4
%aJ=bitcast i8*%aI to i32*
store i32 1342177288,i32*%aJ,align 4
%aK=load i8*,i8**%c,align 8
%aL=bitcast i8*%aH to i8**
store i8*%aK,i8**%aL,align 8
%aM=getelementptr inbounds i8,i8*%aH,i64 8
%aN=bitcast i8*%aM to i32*
store i32 1,i32*%aN,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL136,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL136,i64 0,i32 2),i8*inreg%aH)#0
%aO=load i8*,i8**%c,align 8
ret i8*%aO
aP:
%aQ=bitcast i8*%h to i8**
%aR=load i8*,i8**%aQ,align 8
ret i8*%aR
}
define internal fastcc i8*@_SMLLL1x_149(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 i8*(i8*)**
br label%k
h:
call void@sml_check(i32 inreg%d)
%i=bitcast i8**%c to i8*(i8*)***
%j=load i8*(i8*)**,i8*(i8*)***%i,align 8
br label%k
k:
%l=phi i8*(i8*)**[%j,%h],[%g,%f]
%m=inttoptr i64%b to i8*
store i8*null,i8**%c,align 8
%n=load i8*(i8*)*,i8*(i8*)**%l,align 8
call void@sml_leave()#0
%o=invoke i8*%n(i8*%m)
to label%p unwind label%q
p:
call void@sml_enter()#0
ret i8*%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 fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL14PQerrorMessageE(i32 inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%g,label%f
f:
call void@sml_check(i32 inreg%d)
br label%g
g:
%h=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL144,i64 0,i32 2),align 8
%i=icmp eq i8*%h,null
br i1%i,label%j,label%aP
j:
%k=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),align 8
%l=icmp eq i8*%k,null
br i1%l,label%m,label%ac
m:
%n=call fastcc i8*@_SMLFN18SMLSharp__OSProcess6getEnvE(i8*inreg getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@G,i64 0,i32 2,i64 0))
%o=icmp eq i8*%n,null
br i1%o,label%p,label%Q
p:
%q=load i8**,i8***bitcast(i8**@_SMLZN19SMLSharp__SQL__Config6DLLEXTE to i8***),align 8
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%b,align 8
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
%u=load i32,i32*%t,align 4
%v=and i32%u,268435455
%w=icmp eq i32%v,3
br i1%w,label%x,label%F
x:
%y=load i8,i8*%r,align 1
%z=icmp eq i8%y,115
br i1%z,label%A,label%F
A:
%B=getelementptr inbounds i8,i8*%r,i64 1
%C=load i8,i8*%B,align 1
%D=icmp eq i8%C,111
br i1%D,label%E,label%F
E:
store i8*null,i8**%b,align 8
br label%T
F:
%G=call i8*@sml_alloc(i32 inreg 20)#0
%H=getelementptr inbounds i8,i8*%G,i64 -4
%I=bitcast i8*%H to i32*
store i32 1342177296,i32*%I,align 4
%J=bitcast i8*%G to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[9x i8]}>,<{[4x i8],i32,[9x i8]}>*@H,i64 0,i32 2,i64 0),i8**%J,align 8
%K=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%L=getelementptr inbounds i8,i8*%G,i64 8
%M=bitcast i8*%L to i8**
store i8*%K,i8**%M,align 8
%N=getelementptr inbounds i8,i8*%G,i64 16
%O=bitcast i8*%N to i32*
store i32 3,i32*%O,align 4
%P=call fastcc i8*@_SMLFN6String1_ZE(i8*inreg%G)
br label%T
Q:
%R=bitcast i8*%n to i8**
%S=load i8*,i8**%R,align 8
br label%T
T:
%U=phi i8*[%S,%Q],[getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@I,i64 0,i32 2,i64 0),%E],[%P,%F]
%V=call fastcc i8*@_SMLFN11DynamicLink6dlopenE(i8*inreg%U)
%W=call i8*@sml_alloc(i32 inreg 12)#0
%X=getelementptr inbounds i8,i8*%W,i64 -4
%Y=bitcast i8*%X to i32*
store i32 1342177288,i32*%Y,align 4
%Z=bitcast i8*%W to i8**
store i8*%V,i8**%Z,align 8
%aa=getelementptr inbounds i8,i8*%W,i64 8
%ab=bitcast i8*%aa to i32*
store i32 0,i32*%ab,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),i8*inreg%W)#0
br label%af
ac:
%ad=bitcast i8*%k to i8**
%ae=load i8*,i8**%ad,align 8
br label%af
af:
%ag=phi i8*[%V,%T],[%ae,%ac]
%ah=call i8*@sml_alloc(i32 inreg 20)#0
%ai=getelementptr inbounds i8,i8*%ah,i64 -4
%aj=bitcast i8*%ai to i32*
store i32 1342177296,i32*%aj,align 4
%ak=bitcast i8*%ah to i8**
store i8*%ag,i8**%ak,align 8
%al=getelementptr inbounds i8,i8*%ah,i64 8
%am=bitcast i8*%al to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@y,i64 0,i32 2,i64 0),i8**%am,align 8
%an=getelementptr inbounds i8,i8*%ah,i64 16
%ao=bitcast i8*%an to i32*
store i32 2,i32*%ao,align 4
%ap=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%ah)
%aq=call i8*@sml_alloc(i32 inreg 12)#0
%ar=getelementptr inbounds i8,i8*%aq,i64 -4
%as=bitcast i8*%ar to i32*
store i32 1342177288,i32*%as,align 4
store i8*%aq,i8**%b,align 8
%at=bitcast i8*%aq to void(...)**
store void(...)*%ap,void(...)**%at,align 8
%au=getelementptr inbounds i8,i8*%aq,i64 8
%av=bitcast i8*%au to i32*
store i32 0,i32*%av,align 4
%aw=call i8*@sml_alloc(i32 inreg 28)#0
%ax=getelementptr inbounds i8,i8*%aw,i64 -4
%ay=bitcast i8*%ax to i32*
store i32 1342177304,i32*%ay,align 4
store i8*%aw,i8**%c,align 8
%az=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%aA=bitcast i8*%aw to i8**
store i8*%az,i8**%aA,align 8
%aB=getelementptr inbounds i8,i8*%aw,i64 8
%aC=bitcast i8*%aB to void(...)**
store void(...)*bitcast(i8*(i8*,i64)*@_SMLLL1x_149 to void(...)*),void(...)**%aC,align 8
%aD=getelementptr inbounds i8,i8*%aw,i64 16
%aE=bitcast i8*%aD to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL1x_222 to void(...)*),void(...)**%aE,align 8
%aF=getelementptr inbounds i8,i8*%aw,i64 24
%aG=bitcast i8*%aF to i32*
store i32 -2147483647,i32*%aG,align 4
%aH=call i8*@sml_alloc(i32 inreg 12)#0
%aI=getelementptr inbounds i8,i8*%aH,i64 -4
%aJ=bitcast i8*%aI to i32*
store i32 1342177288,i32*%aJ,align 4
%aK=load i8*,i8**%c,align 8
%aL=bitcast i8*%aH to i8**
store i8*%aK,i8**%aL,align 8
%aM=getelementptr inbounds i8,i8*%aH,i64 8
%aN=bitcast i8*%aM to i32*
store i32 1,i32*%aN,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL144,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL144,i64 0,i32 2),i8*inreg%aH)#0
%aO=load i8*,i8**%c,align 8
ret i8*%aO
aP:
%aQ=bitcast i8*%h to i8**
%aR=load i8*,i8**%aQ,align 8
ret i8*%aR
}
define internal fastcc i8*@_SMLLL1x_157(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 i8*(i8*)**
br label%k
h:
call void@sml_check(i32 inreg%d)
%i=bitcast i8**%c to i8*(i8*)***
%j=load i8*(i8*)**,i8*(i8*)***%i,align 8
br label%k
k:
%l=phi i8*(i8*)**[%j,%h],[%g,%f]
%m=inttoptr i64%b to i8*
store i8*null,i8**%c,align 8
%n=load i8*(i8*)*,i8*(i8*)**%l,align 8
call void@sml_leave()#0
%o=invoke i8*%n(i8*%m)
to label%p unwind label%q
p:
call void@sml_enter()#0
ret i8*%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 fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL20PQresultErrorMessageE(i32 inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%g,label%f
f:
call void@sml_check(i32 inreg%d)
br label%g
g:
%h=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL152,i64 0,i32 2),align 8
%i=icmp eq i8*%h,null
br i1%i,label%j,label%aP
j:
%k=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),align 8
%l=icmp eq i8*%k,null
br i1%l,label%m,label%ac
m:
%n=call fastcc i8*@_SMLFN18SMLSharp__OSProcess6getEnvE(i8*inreg getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@G,i64 0,i32 2,i64 0))
%o=icmp eq i8*%n,null
br i1%o,label%p,label%Q
p:
%q=load i8**,i8***bitcast(i8**@_SMLZN19SMLSharp__SQL__Config6DLLEXTE to i8***),align 8
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%b,align 8
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
%u=load i32,i32*%t,align 4
%v=and i32%u,268435455
%w=icmp eq i32%v,3
br i1%w,label%x,label%F
x:
%y=load i8,i8*%r,align 1
%z=icmp eq i8%y,115
br i1%z,label%A,label%F
A:
%B=getelementptr inbounds i8,i8*%r,i64 1
%C=load i8,i8*%B,align 1
%D=icmp eq i8%C,111
br i1%D,label%E,label%F
E:
store i8*null,i8**%b,align 8
br label%T
F:
%G=call i8*@sml_alloc(i32 inreg 20)#0
%H=getelementptr inbounds i8,i8*%G,i64 -4
%I=bitcast i8*%H to i32*
store i32 1342177296,i32*%I,align 4
%J=bitcast i8*%G to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[9x i8]}>,<{[4x i8],i32,[9x i8]}>*@H,i64 0,i32 2,i64 0),i8**%J,align 8
%K=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%L=getelementptr inbounds i8,i8*%G,i64 8
%M=bitcast i8*%L to i8**
store i8*%K,i8**%M,align 8
%N=getelementptr inbounds i8,i8*%G,i64 16
%O=bitcast i8*%N to i32*
store i32 3,i32*%O,align 4
%P=call fastcc i8*@_SMLFN6String1_ZE(i8*inreg%G)
br label%T
Q:
%R=bitcast i8*%n to i8**
%S=load i8*,i8**%R,align 8
br label%T
T:
%U=phi i8*[%S,%Q],[getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@I,i64 0,i32 2,i64 0),%E],[%P,%F]
%V=call fastcc i8*@_SMLFN11DynamicLink6dlopenE(i8*inreg%U)
%W=call i8*@sml_alloc(i32 inreg 12)#0
%X=getelementptr inbounds i8,i8*%W,i64 -4
%Y=bitcast i8*%X to i32*
store i32 1342177288,i32*%Y,align 4
%Z=bitcast i8*%W to i8**
store i8*%V,i8**%Z,align 8
%aa=getelementptr inbounds i8,i8*%W,i64 8
%ab=bitcast i8*%aa to i32*
store i32 0,i32*%ab,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),i8*inreg%W)#0
br label%af
ac:
%ad=bitcast i8*%k to i8**
%ae=load i8*,i8**%ad,align 8
br label%af
af:
%ag=phi i8*[%V,%T],[%ae,%ac]
%ah=call i8*@sml_alloc(i32 inreg 20)#0
%ai=getelementptr inbounds i8,i8*%ah,i64 -4
%aj=bitcast i8*%ai to i32*
store i32 1342177296,i32*%aj,align 4
%ak=bitcast i8*%ah to i8**
store i8*%ag,i8**%ak,align 8
%al=getelementptr inbounds i8,i8*%ah,i64 8
%am=bitcast i8*%al to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[21x i8]}>,<{[4x i8],i32,[21x i8]}>*@A,i64 0,i32 2,i64 0),i8**%am,align 8
%an=getelementptr inbounds i8,i8*%ah,i64 16
%ao=bitcast i8*%an to i32*
store i32 2,i32*%ao,align 4
%ap=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%ah)
%aq=call i8*@sml_alloc(i32 inreg 12)#0
%ar=getelementptr inbounds i8,i8*%aq,i64 -4
%as=bitcast i8*%ar to i32*
store i32 1342177288,i32*%as,align 4
store i8*%aq,i8**%b,align 8
%at=bitcast i8*%aq to void(...)**
store void(...)*%ap,void(...)**%at,align 8
%au=getelementptr inbounds i8,i8*%aq,i64 8
%av=bitcast i8*%au to i32*
store i32 0,i32*%av,align 4
%aw=call i8*@sml_alloc(i32 inreg 28)#0
%ax=getelementptr inbounds i8,i8*%aw,i64 -4
%ay=bitcast i8*%ax to i32*
store i32 1342177304,i32*%ay,align 4
store i8*%aw,i8**%c,align 8
%az=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%aA=bitcast i8*%aw to i8**
store i8*%az,i8**%aA,align 8
%aB=getelementptr inbounds i8,i8*%aw,i64 8
%aC=bitcast i8*%aB to void(...)**
store void(...)*bitcast(i8*(i8*,i64)*@_SMLLL1x_157 to void(...)*),void(...)**%aC,align 8
%aD=getelementptr inbounds i8,i8*%aw,i64 16
%aE=bitcast i8*%aD to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL1x_224 to void(...)*),void(...)**%aE,align 8
%aF=getelementptr inbounds i8,i8*%aw,i64 24
%aG=bitcast i8*%aF to i32*
store i32 -2147483647,i32*%aG,align 4
%aH=call i8*@sml_alloc(i32 inreg 12)#0
%aI=getelementptr inbounds i8,i8*%aH,i64 -4
%aJ=bitcast i8*%aI to i32*
store i32 1342177288,i32*%aJ,align 4
%aK=load i8*,i8**%c,align 8
%aL=bitcast i8*%aH to i8**
store i8*%aK,i8**%aL,align 8
%aM=getelementptr inbounds i8,i8*%aH,i64 8
%aN=bitcast i8*%aM to i32*
store i32 1,i32*%aN,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL152,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL152,i64 0,i32 2),i8*inreg%aH)#0
%aO=load i8*,i8**%c,align 8
ret i8*%aO
aP:
%aQ=bitcast i8*%h to i8**
%aR=load i8*,i8**%aQ,align 8
ret i8*%aR
}
define internal fastcc i8*@_SMLLL1x_165(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 i8*(i8*)**
br label%k
h:
call void@sml_check(i32 inreg%d)
%i=bitcast i8**%c to i8*(i8*)***
%j=load i8*(i8*)**,i8*(i8*)***%i,align 8
br label%k
k:
%l=phi i8*(i8*)**[%j,%h],[%g,%f]
%m=inttoptr i64%b to i8*
store i8*null,i8**%c,align 8
%n=load i8*(i8*)*,i8*(i8*)**%l,align 8
call void@sml_leave()#0
%o=invoke i8*%n(i8*%m)
to label%p unwind label%q
p:
call void@sml_enter()#0
ret i8*%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 fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL4PQdbE(i32 inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%g,label%f
f:
call void@sml_check(i32 inreg%d)
br label%g
g:
%h=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL160,i64 0,i32 2),align 8
%i=icmp eq i8*%h,null
br i1%i,label%j,label%aP
j:
%k=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),align 8
%l=icmp eq i8*%k,null
br i1%l,label%m,label%ac
m:
%n=call fastcc i8*@_SMLFN18SMLSharp__OSProcess6getEnvE(i8*inreg getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@G,i64 0,i32 2,i64 0))
%o=icmp eq i8*%n,null
br i1%o,label%p,label%Q
p:
%q=load i8**,i8***bitcast(i8**@_SMLZN19SMLSharp__SQL__Config6DLLEXTE to i8***),align 8
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%b,align 8
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
%u=load i32,i32*%t,align 4
%v=and i32%u,268435455
%w=icmp eq i32%v,3
br i1%w,label%x,label%F
x:
%y=load i8,i8*%r,align 1
%z=icmp eq i8%y,115
br i1%z,label%A,label%F
A:
%B=getelementptr inbounds i8,i8*%r,i64 1
%C=load i8,i8*%B,align 1
%D=icmp eq i8%C,111
br i1%D,label%E,label%F
E:
store i8*null,i8**%b,align 8
br label%T
F:
%G=call i8*@sml_alloc(i32 inreg 20)#0
%H=getelementptr inbounds i8,i8*%G,i64 -4
%I=bitcast i8*%H to i32*
store i32 1342177296,i32*%I,align 4
%J=bitcast i8*%G to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[9x i8]}>,<{[4x i8],i32,[9x i8]}>*@H,i64 0,i32 2,i64 0),i8**%J,align 8
%K=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%L=getelementptr inbounds i8,i8*%G,i64 8
%M=bitcast i8*%L to i8**
store i8*%K,i8**%M,align 8
%N=getelementptr inbounds i8,i8*%G,i64 16
%O=bitcast i8*%N to i32*
store i32 3,i32*%O,align 4
%P=call fastcc i8*@_SMLFN6String1_ZE(i8*inreg%G)
br label%T
Q:
%R=bitcast i8*%n to i8**
%S=load i8*,i8**%R,align 8
br label%T
T:
%U=phi i8*[%S,%Q],[getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@I,i64 0,i32 2,i64 0),%E],[%P,%F]
%V=call fastcc i8*@_SMLFN11DynamicLink6dlopenE(i8*inreg%U)
%W=call i8*@sml_alloc(i32 inreg 12)#0
%X=getelementptr inbounds i8,i8*%W,i64 -4
%Y=bitcast i8*%X to i32*
store i32 1342177288,i32*%Y,align 4
%Z=bitcast i8*%W to i8**
store i8*%V,i8**%Z,align 8
%aa=getelementptr inbounds i8,i8*%W,i64 8
%ab=bitcast i8*%aa to i32*
store i32 0,i32*%ab,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),i8*inreg%W)#0
br label%af
ac:
%ad=bitcast i8*%k to i8**
%ae=load i8*,i8**%ad,align 8
br label%af
af:
%ag=phi i8*[%V,%T],[%ae,%ac]
%ah=call i8*@sml_alloc(i32 inreg 20)#0
%ai=getelementptr inbounds i8,i8*%ah,i64 -4
%aj=bitcast i8*%ai to i32*
store i32 1342177296,i32*%aj,align 4
%ak=bitcast i8*%ah to i8**
store i8*%ag,i8**%ak,align 8
%al=getelementptr inbounds i8,i8*%ah,i64 8
%am=bitcast i8*%al to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[5x i8]}>,<{[4x i8],i32,[5x i8]}>*@C,i64 0,i32 2,i64 0),i8**%am,align 8
%an=getelementptr inbounds i8,i8*%ah,i64 16
%ao=bitcast i8*%an to i32*
store i32 2,i32*%ao,align 4
%ap=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%ah)
%aq=call i8*@sml_alloc(i32 inreg 12)#0
%ar=getelementptr inbounds i8,i8*%aq,i64 -4
%as=bitcast i8*%ar to i32*
store i32 1342177288,i32*%as,align 4
store i8*%aq,i8**%b,align 8
%at=bitcast i8*%aq to void(...)**
store void(...)*%ap,void(...)**%at,align 8
%au=getelementptr inbounds i8,i8*%aq,i64 8
%av=bitcast i8*%au to i32*
store i32 0,i32*%av,align 4
%aw=call i8*@sml_alloc(i32 inreg 28)#0
%ax=getelementptr inbounds i8,i8*%aw,i64 -4
%ay=bitcast i8*%ax to i32*
store i32 1342177304,i32*%ay,align 4
store i8*%aw,i8**%c,align 8
%az=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%aA=bitcast i8*%aw to i8**
store i8*%az,i8**%aA,align 8
%aB=getelementptr inbounds i8,i8*%aw,i64 8
%aC=bitcast i8*%aB to void(...)**
store void(...)*bitcast(i8*(i8*,i64)*@_SMLLL1x_165 to void(...)*),void(...)**%aC,align 8
%aD=getelementptr inbounds i8,i8*%aw,i64 16
%aE=bitcast i8*%aD to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL1x_226 to void(...)*),void(...)**%aE,align 8
%aF=getelementptr inbounds i8,i8*%aw,i64 24
%aG=bitcast i8*%aF to i32*
store i32 -2147483647,i32*%aG,align 4
%aH=call i8*@sml_alloc(i32 inreg 12)#0
%aI=getelementptr inbounds i8,i8*%aH,i64 -4
%aJ=bitcast i8*%aI to i32*
store i32 1342177288,i32*%aJ,align 4
%aK=load i8*,i8**%c,align 8
%aL=bitcast i8*%aH to i8**
store i8*%aK,i8**%aL,align 8
%aM=getelementptr inbounds i8,i8*%aH,i64 8
%aN=bitcast i8*%aM to i32*
store i32 1,i32*%aN,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL160,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL160,i64 0,i32 2),i8*inreg%aH)#0
%aO=load i8*,i8**%c,align 8
ret i8*%aO
aP:
%aQ=bitcast i8*%h to i8**
%aR=load i8*,i8**%aQ,align 8
ret i8*%aR
}
define internal fastcc i8*@_SMLLL1x_173(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 i8*(i8*)**
br label%k
h:
call void@sml_check(i32 inreg%d)
%i=bitcast i8**%c to i8*(i8*)***
%j=load i8*(i8*)**,i8*(i8*)***%i,align 8
br label%k
k:
%l=phi i8*(i8*)**[%j,%h],[%g,%f]
%m=inttoptr i64%b to i8*
store i8*null,i8**%c,align 8
%n=load i8*(i8*)*,i8*(i8*)**%l,align 8
call void@sml_leave()#0
%o=invoke i8*%n(i8*%m)
to label%p unwind label%q
p:
call void@sml_enter()#0
ret i8*%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 fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL6PQuserE(i32 inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%g,label%f
f:
call void@sml_check(i32 inreg%d)
br label%g
g:
%h=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL168,i64 0,i32 2),align 8
%i=icmp eq i8*%h,null
br i1%i,label%j,label%aP
j:
%k=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),align 8
%l=icmp eq i8*%k,null
br i1%l,label%m,label%ac
m:
%n=call fastcc i8*@_SMLFN18SMLSharp__OSProcess6getEnvE(i8*inreg getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@G,i64 0,i32 2,i64 0))
%o=icmp eq i8*%n,null
br i1%o,label%p,label%Q
p:
%q=load i8**,i8***bitcast(i8**@_SMLZN19SMLSharp__SQL__Config6DLLEXTE to i8***),align 8
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%b,align 8
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
%u=load i32,i32*%t,align 4
%v=and i32%u,268435455
%w=icmp eq i32%v,3
br i1%w,label%x,label%F
x:
%y=load i8,i8*%r,align 1
%z=icmp eq i8%y,115
br i1%z,label%A,label%F
A:
%B=getelementptr inbounds i8,i8*%r,i64 1
%C=load i8,i8*%B,align 1
%D=icmp eq i8%C,111
br i1%D,label%E,label%F
E:
store i8*null,i8**%b,align 8
br label%T
F:
%G=call i8*@sml_alloc(i32 inreg 20)#0
%H=getelementptr inbounds i8,i8*%G,i64 -4
%I=bitcast i8*%H to i32*
store i32 1342177296,i32*%I,align 4
%J=bitcast i8*%G to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[9x i8]}>,<{[4x i8],i32,[9x i8]}>*@H,i64 0,i32 2,i64 0),i8**%J,align 8
%K=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%L=getelementptr inbounds i8,i8*%G,i64 8
%M=bitcast i8*%L to i8**
store i8*%K,i8**%M,align 8
%N=getelementptr inbounds i8,i8*%G,i64 16
%O=bitcast i8*%N to i32*
store i32 3,i32*%O,align 4
%P=call fastcc i8*@_SMLFN6String1_ZE(i8*inreg%G)
br label%T
Q:
%R=bitcast i8*%n to i8**
%S=load i8*,i8**%R,align 8
br label%T
T:
%U=phi i8*[%S,%Q],[getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@I,i64 0,i32 2,i64 0),%E],[%P,%F]
%V=call fastcc i8*@_SMLFN11DynamicLink6dlopenE(i8*inreg%U)
%W=call i8*@sml_alloc(i32 inreg 12)#0
%X=getelementptr inbounds i8,i8*%W,i64 -4
%Y=bitcast i8*%X to i32*
store i32 1342177288,i32*%Y,align 4
%Z=bitcast i8*%W to i8**
store i8*%V,i8**%Z,align 8
%aa=getelementptr inbounds i8,i8*%W,i64 8
%ab=bitcast i8*%aa to i32*
store i32 0,i32*%ab,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),i8*inreg%W)#0
br label%af
ac:
%ad=bitcast i8*%k to i8**
%ae=load i8*,i8**%ad,align 8
br label%af
af:
%ag=phi i8*[%V,%T],[%ae,%ac]
%ah=call i8*@sml_alloc(i32 inreg 20)#0
%ai=getelementptr inbounds i8,i8*%ah,i64 -4
%aj=bitcast i8*%ai to i32*
store i32 1342177296,i32*%aj,align 4
%ak=bitcast i8*%ah to i8**
store i8*%ag,i8**%ak,align 8
%al=getelementptr inbounds i8,i8*%ah,i64 8
%am=bitcast i8*%al to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[7x i8]}>,<{[4x i8],i32,[7x i8]}>*@E,i64 0,i32 2,i64 0),i8**%am,align 8
%an=getelementptr inbounds i8,i8*%ah,i64 16
%ao=bitcast i8*%an to i32*
store i32 2,i32*%ao,align 4
%ap=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%ah)
%aq=call i8*@sml_alloc(i32 inreg 12)#0
%ar=getelementptr inbounds i8,i8*%aq,i64 -4
%as=bitcast i8*%ar to i32*
store i32 1342177288,i32*%as,align 4
store i8*%aq,i8**%b,align 8
%at=bitcast i8*%aq to void(...)**
store void(...)*%ap,void(...)**%at,align 8
%au=getelementptr inbounds i8,i8*%aq,i64 8
%av=bitcast i8*%au to i32*
store i32 0,i32*%av,align 4
%aw=call i8*@sml_alloc(i32 inreg 28)#0
%ax=getelementptr inbounds i8,i8*%aw,i64 -4
%ay=bitcast i8*%ax to i32*
store i32 1342177304,i32*%ay,align 4
store i8*%aw,i8**%c,align 8
%az=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%aA=bitcast i8*%aw to i8**
store i8*%az,i8**%aA,align 8
%aB=getelementptr inbounds i8,i8*%aw,i64 8
%aC=bitcast i8*%aB to void(...)**
store void(...)*bitcast(i8*(i8*,i64)*@_SMLLL1x_173 to void(...)*),void(...)**%aC,align 8
%aD=getelementptr inbounds i8,i8*%aw,i64 16
%aE=bitcast i8*%aD to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL1x_228 to void(...)*),void(...)**%aE,align 8
%aF=getelementptr inbounds i8,i8*%aw,i64 24
%aG=bitcast i8*%aF to i32*
store i32 -2147483647,i32*%aG,align 4
%aH=call i8*@sml_alloc(i32 inreg 12)#0
%aI=getelementptr inbounds i8,i8*%aH,i64 -4
%aJ=bitcast i8*%aI to i32*
store i32 1342177288,i32*%aJ,align 4
%aK=load i8*,i8**%c,align 8
%aL=bitcast i8*%aH to i8**
store i8*%aK,i8**%aL,align 8
%aM=getelementptr inbounds i8,i8*%aH,i64 8
%aN=bitcast i8*%aM to i32*
store i32 1,i32*%aN,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL168,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL168,i64 0,i32 2),i8*inreg%aH)#0
%aO=load i8*,i8**%c,align 8
ret i8*%aO
aP:
%aQ=bitcast i8*%h to i8**
%aR=load i8*,i8**%aQ,align 8
ret i8*%aR
}
define internal fastcc void@_SMLLL1x_181(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 void(i8*)**
br label%k
h:
call void@sml_check(i32 inreg%d)
%i=bitcast i8**%c to void(i8*)***
%j=load void(i8*)**,void(i8*)***%i,align 8
br label%k
k:
%l=phi void(i8*)**[%j,%h],[%g,%f]
%m=inttoptr i64%b to i8*
store i8*null,i8**%c,align 8
%n=load void(i8*)*,void(i8*)**%l,align 8
call void@sml_leave()#0
invoke void%n(i8*%m)
to label%o unwind label%p
o:
call void@sml_enter()#0
ret void
p:
%q=landingpad{i8*,i8*}
cleanup
%r=extractvalue{i8*,i8*}%q,1
call void@sml_enter()#0
%s=call i8*@sml_unsave_exn(i8*inreg%r)#0
resume{i8*,i8*}%q
}
define fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL7PQclearE(i32 inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%g,label%f
f:
call void@sml_check(i32 inreg%d)
br label%g
g:
%h=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL176,i64 0,i32 2),align 8
%i=icmp eq i8*%h,null
br i1%i,label%j,label%aP
j:
%k=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),align 8
%l=icmp eq i8*%k,null
br i1%l,label%m,label%ac
m:
%n=call fastcc i8*@_SMLFN18SMLSharp__OSProcess6getEnvE(i8*inreg getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@G,i64 0,i32 2,i64 0))
%o=icmp eq i8*%n,null
br i1%o,label%p,label%Q
p:
%q=load i8**,i8***bitcast(i8**@_SMLZN19SMLSharp__SQL__Config6DLLEXTE to i8***),align 8
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%b,align 8
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
%u=load i32,i32*%t,align 4
%v=and i32%u,268435455
%w=icmp eq i32%v,3
br i1%w,label%x,label%F
x:
%y=load i8,i8*%r,align 1
%z=icmp eq i8%y,115
br i1%z,label%A,label%F
A:
%B=getelementptr inbounds i8,i8*%r,i64 1
%C=load i8,i8*%B,align 1
%D=icmp eq i8%C,111
br i1%D,label%E,label%F
E:
store i8*null,i8**%b,align 8
br label%T
F:
%G=call i8*@sml_alloc(i32 inreg 20)#0
%H=getelementptr inbounds i8,i8*%G,i64 -4
%I=bitcast i8*%H to i32*
store i32 1342177296,i32*%I,align 4
%J=bitcast i8*%G to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[9x i8]}>,<{[4x i8],i32,[9x i8]}>*@H,i64 0,i32 2,i64 0),i8**%J,align 8
%K=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%L=getelementptr inbounds i8,i8*%G,i64 8
%M=bitcast i8*%L to i8**
store i8*%K,i8**%M,align 8
%N=getelementptr inbounds i8,i8*%G,i64 16
%O=bitcast i8*%N to i32*
store i32 3,i32*%O,align 4
%P=call fastcc i8*@_SMLFN6String1_ZE(i8*inreg%G)
br label%T
Q:
%R=bitcast i8*%n to i8**
%S=load i8*,i8**%R,align 8
br label%T
T:
%U=phi i8*[%S,%Q],[getelementptr inbounds(<{[4x i8],i32,[11x i8]}>,<{[4x i8],i32,[11x i8]}>*@I,i64 0,i32 2,i64 0),%E],[%P,%F]
%V=call fastcc i8*@_SMLFN11DynamicLink6dlopenE(i8*inreg%U)
%W=call i8*@sml_alloc(i32 inreg 12)#0
%X=getelementptr inbounds i8,i8*%W,i64 -4
%Y=bitcast i8*%X to i32*
store i32 1342177288,i32*%Y,align 4
%Z=bitcast i8*%W to i8**
store i8*%V,i8**%Z,align 8
%aa=getelementptr inbounds i8,i8*%W,i64 8
%ab=bitcast i8*%aa to i32*
store i32 0,i32*%ab,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL35,i64 0,i32 2),i8*inreg%W)#0
br label%af
ac:
%ad=bitcast i8*%k to i8**
%ae=load i8*,i8**%ad,align 8
br label%af
af:
%ag=phi i8*[%V,%T],[%ae,%ac]
%ah=call i8*@sml_alloc(i32 inreg 20)#0
%ai=getelementptr inbounds i8,i8*%ah,i64 -4
%aj=bitcast i8*%ai to i32*
store i32 1342177296,i32*%aj,align 4
%ak=bitcast i8*%ah to i8**
store i8*%ag,i8**%ak,align 8
%al=getelementptr inbounds i8,i8*%ah,i64 8
%am=bitcast i8*%al to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[8x i8]}>,<{[4x i8],i32,[8x i8]}>*@J,i64 0,i32 2,i64 0),i8**%am,align 8
%an=getelementptr inbounds i8,i8*%ah,i64 16
%ao=bitcast i8*%an to i32*
store i32 2,i32*%ao,align 4
%ap=call fastcc void(...)*@_SMLFN11DynamicLink5dlsymE(i8*inreg%ah)
%aq=call i8*@sml_alloc(i32 inreg 12)#0
%ar=getelementptr inbounds i8,i8*%aq,i64 -4
%as=bitcast i8*%ar to i32*
store i32 1342177288,i32*%as,align 4
store i8*%aq,i8**%b,align 8
%at=bitcast i8*%aq to void(...)**
store void(...)*%ap,void(...)**%at,align 8
%au=getelementptr inbounds i8,i8*%aq,i64 8
%av=bitcast i8*%au to i32*
store i32 0,i32*%av,align 4
%aw=call i8*@sml_alloc(i32 inreg 28)#0
%ax=getelementptr inbounds i8,i8*%aw,i64 -4
%ay=bitcast i8*%ax to i32*
store i32 1342177304,i32*%ay,align 4
store i8*%aw,i8**%c,align 8
%az=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%aA=bitcast i8*%aw to i8**
store i8*%az,i8**%aA,align 8
%aB=getelementptr inbounds i8,i8*%aw,i64 8
%aC=bitcast i8*%aB to void(...)**
store void(...)*bitcast(void(i8*,i64)*@_SMLLL1x_181 to void(...)*),void(...)**%aC,align 8
%aD=getelementptr inbounds i8,i8*%aw,i64 16
%aE=bitcast i8*%aD to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL1x_230 to void(...)*),void(...)**%aE,align 8
%aF=getelementptr inbounds i8,i8*%aw,i64 24
%aG=bitcast i8*%aF to i32*
store i32 -2147483647,i32*%aG,align 4
%aH=call i8*@sml_alloc(i32 inreg 12)#0
%aI=getelementptr inbounds i8,i8*%aH,i64 -4
%aJ=bitcast i8*%aI to i32*
store i32 1342177288,i32*%aJ,align 4
%aK=load i8*,i8**%c,align 8
%aL=bitcast i8*%aH to i8**
store i8*%aK,i8**%aL,align 8
%aM=getelementptr inbounds i8,i8*%aH,i64 8
%aN=bitcast i8*%aM to i32*
store i32 1,i32*%aN,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL176,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL176,i64 0,i32 2),i8*inreg%aH)#0
%aO=load i8*,i8**%c,align 8
ret i8*%aO
aP:
%aQ=bitcast i8*%h to i8**
%aR=load i8*,i8**%aQ,align 8
ret i8*%aR
}
define fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL15getErrorMessageE(i64 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__SQL__PGSQL14PQerrorMessageE(i32 inreg undef)
%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 8)#0
%n=getelementptr inbounds i8,i8*%m,i64 -4
%o=bitcast i8*%n to i32*
store i32 8,i32*%o,align 4
%p=bitcast i8*%m to i64*
store i64%a,i64*%p,align 4
%q=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%r=call fastcc i8*%j(i8*inreg%q,i8*inreg%m)
%s=bitcast i8*%r to i64*
%t=load i64,i64*%s,align 4
%u=tail call fastcc i8*@_SMLFN16SMLSharp__Runtime7str__newE(i64 inreg%t)
ret i8*%u
}
define fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL18getResErrorMessageE(i64 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__SQL__PGSQL20PQresultErrorMessageE(i32 inreg undef)
%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 8)#0
%n=getelementptr inbounds i8,i8*%m,i64 -4
%o=bitcast i8*%n to i32*
store i32 8,i32*%o,align 4
%p=bitcast i8*%m to i64*
store i64%a,i64*%p,align 4
%q=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%r=call fastcc i8*%j(i8*inreg%q,i8*inreg%m)
%s=bitcast i8*%r to i64*
%t=load i64,i64*%s,align 4
%u=tail call fastcc i8*@_SMLFN16SMLSharp__Runtime7str__newE(i64 inreg%t)
ret i8*%u
}
define fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL9getDBnameE(i64 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__SQL__PGSQL4PQdbE(i32 inreg undef)
%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 8)#0
%n=getelementptr inbounds i8,i8*%m,i64 -4
%o=bitcast i8*%n to i32*
store i32 8,i32*%o,align 4
%p=bitcast i8*%m to i64*
store i64%a,i64*%p,align 4
%q=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%r=call fastcc i8*%j(i8*inreg%q,i8*inreg%m)
%s=bitcast i8*%r to i64*
%t=load i64,i64*%s,align 4
%u=tail call fastcc i8*@_SMLFN16SMLSharp__Runtime7str__newE(i64 inreg%t)
ret i8*%u
}
define fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL9getDBuserE(i64 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__SQL__PGSQL6PQuserE(i32 inreg undef)
%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 8)#0
%n=getelementptr inbounds i8,i8*%m,i64 -4
%o=bitcast i8*%n to i32*
store i32 8,i32*%o,align 4
%p=bitcast i8*%m to i64*
store i64%a,i64*%p,align 4
%q=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%r=call fastcc i8*%j(i8*inreg%q,i8*inreg%m)
%s=bitcast i8*%r to i64*
%t=load i64,i64*%s,align 4
%u=tail call fastcc i8*@_SMLFN16SMLSharp__Runtime7str__newE(i64 inreg%t)
ret i8*%u
}
define internal fastcc i8*@_SMLLL1x_192(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLLL1x_41(i8*inreg%a,i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 8)#0
%e=getelementptr inbounds i8,i8*%d,i64 -4
%f=bitcast i8*%e to i32*
store i32 8,i32*%f,align 4
%g=bitcast i8*%d to i8**
store i8*%c,i8**%g,align 8
ret i8*%d
}
define internal fastcc i8*@_SMLLLN18SMLSharp__SQL__PGSQL11PQconnectdbE_193(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL11PQconnectdbE(i32 inreg undef)
ret i8*%c
}
define internal fastcc i8*@_SMLLL1x_194(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@_SMLLL1x_49(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*@_SMLLLN18SMLSharp__SQL__PGSQL8PQstatusE_195(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL8PQstatusE(i32 inreg undef)
ret i8*%c
}
define internal fastcc i8*@_SMLLL1x_196(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i64*
%d=load i64,i64*%c,align 4
tail call fastcc void@_SMLLL1x_57(i8*inreg%a,i64 inreg%d)
%e=tail call i8*@sml_alloc(i32 inreg 4)#0
%f=bitcast i8*%e to i32*
%g=getelementptr inbounds i8,i8*%e,i64 -4
%h=bitcast i8*%g to i32*
store i32 4,i32*%h,align 4
store i32 0,i32*%f,align 4
ret i8*%e
}
define internal fastcc i8*@_SMLLLN18SMLSharp__SQL__PGSQL8PQfinishE_197(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL8PQfinishE(i32 inreg undef)
ret i8*%c
}
define internal fastcc i8*@_SMLLL198(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLLL64(i8*inreg%a,i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 8)#0
%e=getelementptr inbounds i8,i8*%d,i64 -4
%f=bitcast i8*%e to i32*
store i32 8,i32*%f,align 4
%g=bitcast i8*%d to i8**
store i8*%c,i8**%g,align 8
ret i8*%d
}
define internal fastcc i8*@_SMLLLN18SMLSharp__SQL__PGSQL6PQexecE_200(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL6PQexecE(i32 inreg undef)
ret i8*%c
}
define internal fastcc i8*@_SMLLL201(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLLL74(i8*inreg%a,i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 8)#0
%e=getelementptr inbounds i8,i8*%d,i64 -4
%f=bitcast i8*%e to i32*
store i32 8,i32*%f,align 4
%g=bitcast i8*%d to i8**
store i8*%c,i8**%g,align 8
ret i8*%d
}
define internal fastcc i8*@_SMLLLN18SMLSharp__SQL__PGSQL10PQgetvalueE_203(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL10PQgetvalueE(i32 inreg undef)
ret i8*%c
}
define internal fastcc i8*@_SMLLL204(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLLL84(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*@_SMLLLN18SMLSharp__SQL__PGSQL11PQgetlengthE_206(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL11PQgetlengthE(i32 inreg undef)
ret i8*%c
}
define internal fastcc i8*@_SMLLL207(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLLL94(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*@_SMLLLN18SMLSharp__SQL__PGSQL11PQgetisnullE_209(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL11PQgetisnullE(i32 inreg undef)
ret i8*%c
}
define internal fastcc i8*@_SMLLL1x_210(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@_SMLLL1x_105(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*@_SMLLLN18SMLSharp__SQL__PGSQL9PQntuplesE_211(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL9PQntuplesE(i32 inreg undef)
ret i8*%c
}
define internal fastcc i8*@_SMLLL1x_212(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@_SMLLL1x_113(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*@_SMLLLN18SMLSharp__SQL__PGSQL9PQnfieldsE_213(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL9PQnfieldsE(i32 inreg undef)
ret i8*%c
}
define internal fastcc i8*@_SMLLL214(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLLL120(i8*inreg%a,i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 8)#0
%e=getelementptr inbounds i8,i8*%d,i64 -4
%f=bitcast i8*%e to i32*
store i32 8,i32*%f,align 4
%g=bitcast i8*%d to i8**
store i8*%c,i8**%g,align 8
ret i8*%d
}
define internal fastcc i8*@_SMLLLN18SMLSharp__SQL__PGSQL7PQfnameE_216(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL7PQfnameE(i32 inreg undef)
ret i8*%c
}
define internal fastcc i8*@_SMLLL217(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLLL130(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*@_SMLLLN18SMLSharp__SQL__PGSQL9PQfnumberE_219(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL9PQfnumberE(i32 inreg undef)
ret i8*%c
}
define internal fastcc i8*@_SMLLL1x_220(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@_SMLLL1x_141(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*@_SMLLLN18SMLSharp__SQL__PGSQL14PQresultStatusE_221(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL14PQresultStatusE(i32 inreg undef)
ret i8*%c
}
define internal fastcc i8*@_SMLLL1x_222(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 i8*@_SMLLL1x_149(i8*inreg%a,i64 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*@_SMLLLN18SMLSharp__SQL__PGSQL14PQerrorMessageE_223(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL14PQerrorMessageE(i32 inreg undef)
ret i8*%c
}
define internal fastcc i8*@_SMLLL1x_224(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 i8*@_SMLLL1x_157(i8*inreg%a,i64 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*@_SMLLLN18SMLSharp__SQL__PGSQL20PQresultErrorMessageE_225(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL20PQresultErrorMessageE(i32 inreg undef)
ret i8*%c
}
define internal fastcc i8*@_SMLLL1x_226(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 i8*@_SMLLL1x_165(i8*inreg%a,i64 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*@_SMLLLN18SMLSharp__SQL__PGSQL4PQdbE_227(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL4PQdbE(i32 inreg undef)
ret i8*%c
}
define internal fastcc i8*@_SMLLL1x_228(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 i8*@_SMLLL1x_173(i8*inreg%a,i64 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*@_SMLLLN18SMLSharp__SQL__PGSQL6PQuserE_229(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL6PQuserE(i32 inreg undef)
ret i8*%c
}
define internal fastcc i8*@_SMLLL1x_230(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i64*
%d=load i64,i64*%c,align 4
tail call fastcc void@_SMLLL1x_181(i8*inreg%a,i64 inreg%d)
%e=tail call i8*@sml_alloc(i32 inreg 4)#0
%f=bitcast i8*%e to i32*
%g=getelementptr inbounds i8,i8*%e,i64 -4
%h=bitcast i8*%g to i32*
store i32 4,i32*%h,align 4
store i32 0,i32*%f,align 4
ret i8*%e
}
define internal fastcc i8*@_SMLLLN18SMLSharp__SQL__PGSQL7PQclearE_231(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__SQL__PGSQL7PQclearE(i32 inreg undef)
ret i8*%c
}
define internal fastcc i8*@_SMLLLN18SMLSharp__SQL__PGSQL15getErrorMessageE_232(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 i8*@_SMLFN18SMLSharp__SQL__PGSQL15getErrorMessageE(i64 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLLN18SMLSharp__SQL__PGSQL18getResErrorMessageE_233(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 i8*@_SMLFN18SMLSharp__SQL__PGSQL18getResErrorMessageE(i64 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLLN18SMLSharp__SQL__PGSQL9getDBnameE_234(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 i8*@_SMLFN18SMLSharp__SQL__PGSQL9getDBnameE(i64 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLLN18SMLSharp__SQL__PGSQL9getDBuserE_235(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 i8*@_SMLFN18SMLSharp__SQL__PGSQL9getDBuserE(i64 inreg%d)
ret i8*%e
}
declare void@llvm.lifetime.start.p0i8(i64,i8*)#0
declare void@llvm.lifetime.end.p0i8(i64,i8*)#0
attributes#0={nounwind}
attributes#1={uwtable}
attributes#2={noreturn nounwind}
