cyclone/tests/benchmarks/lattice-csc-cps-opt.scm
Justin Ethier 1d608b597a Testing
2017-05-16 18:50:46 +00:00

681 lines
149 KiB
Scheme

[optimized]
(lambda (k598)
(let ((k599 (##core#lambda
(r600)
(let ((k602 (##core#lambda
(r603)
(let ((k605 (##core#lambda
(r606)
(let ((k608 (##core#lambda
(r609)
(let ((k611 (##core#lambda
(r612)
(let ((t614 (set! flush-output-port #f flush-output)))
(let ((t615 (set! current-jiffy #f current-milliseconds)))
(let ((t616 (set! jiffies-per-second
#f
(lambda (k618) (k618 1000)))))
(let ((t619 (set! current-second #f current-seconds)))
(let ((t620 (set! inexact #f exact->inexact)))
(let ((t621 (set! exact #f inexact->exact)))
(let ((t622 (set! square
#f
(lambda (k624 x61)
(k624 (##core#inline_allocate
("C_a_i_times" 4)
x61
x61))))))
(let ((t628 (set! exact-integer? #f integer?)))
(let ((t629 (set! this-scheme-implementation-name
#f
(lambda (k631)
(let ((k636 (##core#lambda
(r637)
(string-append k631 "chicken-" r637))))
(chicken-version k636))))))
(let ((t639 (set! lexico
#f
(lambda (k641 base66)
(let ((lex-fixed67 (##core#undefined)))
(let ((lex-first68 (##core#undefined)))
(let ((t642 (set! lex-fixed67
#f
(lambda (k644 fixed69 lhs70 rhs71)
(let ((check72 (##core#undefined)))
(let ((t645 (set! check72
#f
(lambda (k647 lhs73 rhs74)
(if (##core#inline "C_i_nullp" lhs73)
(k647 fixed69)
(let ((k654 (##core#lambda
(r655)
(let ((r661 (##core#inline "C_eqp" r655 'equal)))
(let ((r664 (##core#cond
r661
r661
(##core#inline "C_eqp" r655 fixed69))))
(if r664
(let ((r671 (##core#inline "C_i_cdr" lhs73)))
(let ((r675 (##core#inline "C_i_cdr" rhs74)))
(check72 k647 r671 r675)))
(k647 'uncomparable)))))))
(let ((r682 (##core#inline "C_i_car" lhs73)))
(let ((r686 (##core#inline "C_i_car" rhs74)))
(base66 k654 r682 r686)))))))))
(check72 k644 lhs70 rhs71)))))))
(let ((t691 (set! lex-first68
#f
(lambda (k693 lhs80 rhs81)
(if (##core#inline "C_i_nullp" lhs80)
(k693 'equal)
(let ((k700 (##core#lambda
(r701)
(let ((r707 (##core#inline "C_eqp" r701 'less)))
(let ((r710 (##core#cond
r707
r707
(##core#inline "C_eqp" r701 'more))))
(if r710
(let ((r717 (##core#inline "C_i_cdr" lhs80)))
(let ((r721 (##core#inline "C_i_cdr" rhs81)))
(lex-fixed67 k693 r701 r717 r721)))
(let ((r727 (##core#inline "C_eqp" r701 'equal)))
(if r727
(let ((r734 (##core#inline "C_i_cdr" lhs80)))
(let ((r738 (##core#inline "C_i_cdr" rhs81)))
(lex-first68 k693 r734 r738)))
(let ((r744 (##core#inline "C_eqp" r701 'uncomparable)))
(k693 (##core#cond
r744
'uncomparable
(##core#undefined))))))))))))
(let ((r751 (##core#inline "C_i_car" lhs80)))
(let ((r755 (##core#inline "C_i_car" rhs81)))
(base66 k700 r751 r755)))))))))
(k641 lex-first68)))))))))
(let ((t757 (set! make-lattice
#f
(lambda (k759 elem-list95 cmp-func96)
(k759 (##core#inline_allocate
("C_a_i_cons" 3)
elem-list95
cmp-func96))))))
(let ((t763 (set! lattice->elements #f car)))
(let ((t764 (set! lattice->cmp #f cdr)))
(let ((t765 (set! zulu-select
#f
(lambda (k767 test100 lst101)
(let ((select-a102 (##core#undefined)))
(let ((t768 (set! select-a102
#f
(lambda (k770 ac103 lst104)
(if (##core#inline "C_i_nullp" lst104)
(xreverse! k770 ac103)
(let ((r785 (##core#inline "C_i_car" lst104)))
(let ((head105 r785))
(let ((k794 (##core#lambda
(r795)
(let ((r788 (##core#cond
r795
(##core#inline_allocate
("C_a_i_cons" 3)
head105
ac103)
ac103)))
(let ((r792 (##core#inline "C_i_cdr" lst104)))
(select-a102 k770 r788 r792))))))
(test100 k794 head105)))))))))
(select-a102 k767 '() lst101)))))))
(let ((rotate109 (##core#undefined)))
(let ((rotate108110
(lambda (k805 fo111 fum112)
(let ((r807 (##core#inline "C_i_cdr" fo111)))
(let ((r810 (##core#inline "C_i_set_cdr" fo111 fum112)))
(if (##core#inline "C_i_nullp" r807)
(k805 fo111)
(rotate109 k805 r807 fo111)))))))
(let ((t821 (set! rotate109 #f rotate108110)))
(let ((t803 (set! xreverse!
#f
(lambda (k823 lst115)
(if (##core#inline "C_i_nullp" lst115)
(k823 '())
(rotate109 k823 lst115 '()))))))
(let ((t833 (set! select-map
#f
(lambda (k835 test118 func119 lst120)
(let ((select-a121 (##core#undefined)))
(let ((t836 (set! select-a121
#f
(lambda (k838 ac122 lst123)
(if (##core#inline "C_i_nullp" lst123)
(xreverse! k838 ac122)
(let ((r853 (##core#inline "C_i_car" lst123)))
(let ((head124 r853))
(let ((k855 (##core#lambda
(r856)
(let ((r860 (##core#inline "C_i_cdr" lst123)))
(select-a121 k838 r856 r860)))))
(let ((k862 (##core#lambda
(r863)
(if r863
(let ((k869 (##core#lambda
(r870)
(k855 (##core#inline_allocate
("C_a_i_cons" 3)
r870
ac122)))))
(func119 k869 head124))
(k855 ac122)))))
(test118 k862 head124))))))))))
(select-a121 k835 '() lst120)))))))
(let ((t875 (set! map-and
#f
(lambda (k877 proc127 lst128)
(if (##core#inline "C_i_nullp" lst128)
(k877 #t)
(let ((drudge130 (##core#undefined)))
(let ((drudge129131
(lambda (k885 lst132)
(let ((r887 (##core#inline "C_i_cdr" lst132)))
(let ((rest133 r887))
(if (##core#inline "C_i_nullp" rest133)
(let ((r900 (##core#inline "C_i_car" lst132)))
(proc127 k885 r900))
(let ((k905 (##core#lambda
(r906)
(if r906 (drudge130 k885 rest133) (k885 #f)))))
(let ((r913 (##core#inline "C_i_car" lst132)))
(proc127 k905 r913)))))))))
(let ((t915 (set! drudge130 #f drudge129131)))
(drudge130 k877 lst128)))))))))
(let ((t919 (set! maps-1
#f
(lambda (k921 source137 target138 pas139 new140)
(let ((k922 (##core#lambda
(r923)
(let ((scmp141 r923))
(let ((k925 (##core#lambda
(r926)
(let ((tcmp142 r926))
(let ((k928 (##core#lambda
(r929)
(let ((less143 r929))
(let ((k931 (##core#lambda
(r932)
(let ((more144 r932))
(let ((a937 (lambda (k939 t147)
(let ((k943 (##core#lambda
(r944)
(if r944
(let ((a949 (lambda (k951 t2150)
(let ((k956 (##core#lambda
(r957)
(k951 (##core#inline "C_i_memq" r957 '(more equal))))))
(tcmp142 k956 t2150 t147)))))
(map-and k939 a949 more144))
(k939 #f)))))
(let ((a959 (lambda (k961 t2149)
(let ((k966 (##core#lambda
(r967)
(k961 (##core#inline "C_i_memq" r967 '(less equal))))))
(tcmp142 k966 t2149 t147)))))
(map-and k943 a959 less143))))))
(let ((k970 (##core#lambda
(r971)
(zulu-select k921 a937 r971))))
(lattice->elements k970 target138)))))))
(let ((a973 (lambda (k975 p146)
(let ((k980 (##core#lambda
(r981)
(k975 (##core#inline "C_eqp" 'more r981)))))
(let ((r985 (##core#inline "C_i_car" p146)))
(scmp141 k980 r985 new140))))))
(select-map k931 a973 cdr pas139)))))))
(let ((a987 (lambda (k989 p145)
(let ((k994 (##core#lambda
(r995)
(k989 (##core#inline "C_eqp" 'less r995)))))
(let ((r999 (##core#inline "C_i_car" p145)))
(scmp141 k994 r999 new140))))))
(select-map k928 a987 cdr pas139)))))))
(lattice->cmp k925 target138))))))
(lattice->cmp k922 source137))))))
(let ((t1001 (set! maps-rest
#f
(lambda (k1003
source152
target153
pas154
rest155
to-1156
to-collect157)
(if (##core#inline "C_i_nullp" rest155)
(to-1156 k1003 pas154)
(let ((r1014 (##core#inline "C_i_car" rest155)))
(let ((next158 r1014))
(let ((r1017 (##core#inline "C_i_cdr" rest155)))
(let ((rest159 r1017))
(let ((r1024 (##core#inline_allocate
("C_a_i_cons" 3)
(##core#undefined)
'())))
(let ((g167175 r1024))
(let ((g166176 g167175))
(let ((g168177
(lambda (k1027 x179)
(let ((r1037 (##core#inline_allocate
("C_a_i_cons" 3)
next158
x179)))
(let ((r1033 (##core#inline_allocate
("C_a_i_cons" 3)
r1037
pas154)))
(maps-rest
k1027
source152
target153
r1033
rest159
to-1156
to-collect157))))))
(let ((k1039 (##core#lambda
(r1040)
(let ((r1043 (##core#inline "C_i_check_list_2" r1040 'map)))
(let ((k1045 (##core#lambda
(r1046)
(to-collect157 k1003 r1046))))
(let ((map-loop162180 (##core#undefined)))
(let ((t1048 (set! map-loop162180
#f
(lambda (k1050 g174181)
(if (##core#inline "C_i_pairp" g174181)
(let ((k1072 (##core#lambda
(r1073)
(let ((r1058 (##core#inline_allocate
("C_a_i_cons" 3)
r1073
'())))
(let ((r1061 (##core#inline "C_i_setslot" g167175 1 r1058)))
(let ((t1063 (set! g167175 #f r1058)))
(let ((r1069 (##core#inline "C_slot" g174181 1)))
(map-loop162180 k1050 r1069))))))))
(let ((r1077 (##core#inline "C_slot" g174181 0)))
(g168177 k1072 r1077)))
(k1050 (##core#inline "C_slot" g166176 1)))))))
(map-loop162180 k1045 r1040))))))))
(maps-1 k1039 source152 target153 pas154 next158)))))))))))))))
(let ((t1082 (set! maps
#f
(lambda (k1084 source188 target189)
(let ((k1089 (##core#lambda
(r1090)
(let ((a1088 r1090))
(let ((k1093 (##core#lambda
(r1094)
(make-lattice k1084 a1088 r1094))))
(let ((k1097 (##core#lambda (r1098) (lexico k1093 r1098))))
(lattice->cmp k1097 target189)))))))
(let ((k1101 (##core#lambda
(r1102)
(let ((a1104 (lambda (k1106 x190)
(let ((r1112 (##core#inline_allocate
("C_a_i_cons" 3)
(##core#undefined)
'())))
(let ((g198206 r1112))
(let ((g197207 g198206))
(let ((r1115 (##core#inline "C_i_check_list_2" x190 'map)))
(let ((k1117 (##core#lambda
(r1118)
(k1106 (##core#inline_allocate ("C_a_i_list1" 3) r1118)))))
(let ((map-loop193210 (##core#undefined)))
(let ((t1120 (set! map-loop193210
#f
(lambda (k1122 g205211)
(if (##core#inline "C_i_pairp" g205211)
(let ((r1149 (##core#inline "C_slot" g205211 0)))
(let ((r1145 (##core#inline "C_i_cdr" r1149)))
(let ((r1130 (##core#inline_allocate
("C_a_i_cons" 3)
r1145
'())))
(let ((r1133 (##core#inline "C_i_setslot" g198206 1 r1130)))
(let ((t1135 (set! g198206 #f r1130)))
(let ((r1141 (##core#inline "C_slot" g205211 1)))
(map-loop193210 k1122 r1141)))))))
(k1122 (##core#inline "C_slot" g197207 1)))))))
(map-loop193210 k1117 x190)))))))))))
(let ((a1154 (lambda (k1156 x217)
((##core#proc "C_apply" #t) k1156 append x217))))
(maps-rest
k1089
source188
target189
'()
r1102
a1104
a1154))))))
(lattice->elements k1101 source188)))))))
(let ((t1160 (set! count-maps
#f
(lambda (k1162 source219 target220)
(let ((k1167 (##core#lambda
(r1168)
(let ((a1170 (lambda (k1172 x221) (k1172 1))))
(maps-rest
k1162
source219
target220
'()
r1168
a1170
sum)))))
(lattice->elements k1167 source219))))))
(let ((t1173 (set! sum
#f
(lambda (k1175 lst223)
(if (##core#inline "C_i_nullp" lst223)
(k1175 0)
(let ((r1187 (##core#inline "C_i_car" lst223)))
(let ((a1185 r1187))
(let ((k1190 (##core#lambda
(r1191)
(k1175 (##core#inline_allocate
("C_a_i_plus" 4)
a1185
r1191)))))
(let ((r1195 (##core#inline "C_i_cdr" lst223)))
(sum k1190 r1195))))))))))
(let ((t1197 (set! run
#f
(lambda (k1199 k225)
(let ((k1200 (##core#lambda
(r1201)
(let ((l2226 r1201))
(let ((k1203 (##core#lambda
(r1204)
(let ((l3247 r1204))
(let ((k1206 (##core#lambda
(r1207)
(let ((l4248 r1207))
(let ((k1209 (##core#lambda
(r1210)
(let ((k1212 (##core#lambda
(r1213)
(let ((k1215 (##core#lambda
(r1216)
(let ((k1218 (##core#lambda
(r1219)
(let ((tmp249254 k225))
(##core#switch
5
tmp249254
33
(count-maps k1199 l3247 l3247)
44
(count-maps k1199 l4248 l4248)
45
(let ((k1245 (##core#lambda
(r1246)
(count-maps k1199 l4248 r1246))))
(maps k1245 l4248 l4248))
54
(let ((k1257 (##core#lambda
(r1258)
(count-maps k1199 r1258 l4248))))
(maps k1257 l4248 l4248))
55
(let ((k1269 (##core#lambda
(r1270)
(count-maps k1199 r1270 r1270))))
(maps k1269 l4248 l4248))
(error k1199
"run: unanticipated problem size"
k225))))))
(count-maps k1218 l3247 l2226)))))
(count-maps k1215 l2226 l3247)))))
(count-maps k1212 l3247 l3247)))))
(count-maps k1209 l2226 l2226))))))
(maps k1206 l3247 l3247))))))
(maps k1203 l2226 l2226))))))
(let ((a1278 (lambda (k1280 lhs227 rhs228)
(let ((tmp229234 lhs227))
(let ((r1285 (##core#inline "C_eqp" tmp229234 'low)))
(if r1285
(let ((tmp235240 rhs228))
(let ((r1291 (##core#inline "C_eqp" tmp235240 'low)))
(if r1291
(k1280 'equal)
(let ((r1297 (##core#inline "C_eqp" tmp235240 'high)))
(if r1297
(k1280 'less)
(error k1280 'make-lattice "base" rhs228))))))
(let ((r1306 (##core#inline "C_eqp" tmp229234 'high)))
(if r1306
(let ((tmp241246 rhs228))
(let ((r1312 (##core#inline "C_eqp" tmp241246 'low)))
(if r1312
(k1280 'more)
(let ((r1318 (##core#inline "C_eqp" tmp241246 'high)))
(if r1318
(k1280 'equal)
(error k1280 'make-lattice "base" rhs228))))))
(error k1280 'make-lattice "base" lhs227)))))))))
(make-lattice k1200 '(low high) a1278)))))))
(let ((t1326 (set! main
#f
(lambda (k1328)
(let ((k1329 (##core#lambda
(r1330)
(let ((count263 r1330))
(let ((k1332 (##core#lambda
(r1333)
(let ((input1264 r1333))
(let ((k1335 (##core#lambda
(r1336)
(let ((output265 r1336))
(let ((k1338 (##core#lambda
(r1339)
(let ((s2266 r1339))
(let ((k1341 (##core#lambda
(r1342)
(let ((k1348 (##core#lambda
(r1349)
(let ((a1351 (lambda (k1353)
(let ((k1358 (##core#lambda (r1359) (run k1353 r1359))))
(hide k1358 count263 input1264)))))
(let ((a1361 (lambda (k1363 result269)
(k1363 (##core#inline "C_i_nequalp" result269 output265)))))
(run-r7rs-benchmark
k1328
r1349
count263
a1351
a1361))))))
(string-append
k1348
"lattice"
":"
r1342
":"
s2266)))))
(number->string k1341 input1264))))))
(number->string k1338 count263))))))
(read k1335))))))
(read k1332))))))
(read k1329))))))
(let ((t1367 (set! hide
#f
(lambda (k1369 r271 x272)
(let ((a1373 (lambda (k1375)
(let ((a1390 (lambda (k1392 x273) (k1392 x273))))
(let ((r1381 (##core#inline_allocate
("C_a_i_vector2" 3)
values
a1390)))
(let ((r1388 (##core#inline "C_i_lessp" r271 100)))
(let ((r1385 (##core#cond r1388 0 1)))
((##core#proc "C_values" #t) k1375 r1381 r1385))))))))
(let ((a1393 (lambda (k1395 v274 i275)
(let ((r1397 (##core#inline "C_i_vector_ref" v274 i275)))
(r1397 k1395 x272)))))
((##core#proc "C_call_with_values" #t)
k1369
a1373
a1393)))))))
(let ((t1402 (set! run-r7rs-benchmark
#f
(lambda (k1404 name279 count280 thunk281 ok?282)
(let ((k1419 (##core#lambda
(r1420)
(let ((k1422 (##core#lambda
(r1423)
(let ((k1425 (##core#lambda
(r1426)
(let ((k1428 (##core#lambda
(r1429)
(let ((k1431 (##core#lambda
(r1432)
(let ((j/s285 r1432))
(let ((k1434 (##core#lambda
(r1435)
(let ((t0286 r1435))
(let ((k1437 (##core#lambda
(r1438)
(let ((j0287 r1438))
(let ((loop288 (##core#undefined)))
(let ((t1443 (set! loop288
#f
(lambda (k1445 i289 result290)
(if (##core#inline "C_i_lessp" i289 count280)
(let ((r1457 (##core#inline_allocate ("C_a_i_plus" 4) i289 1)))
(let ((a1455 r1457))
(let ((k1460 (##core#lambda
(r1461)
(loop288 k1445 a1455 r1461))))
(thunk281 k1460))))
(let ((k1466 (##core#lambda
(r1467)
(if r1467
(let ((k1469 (##core#lambda
(r1470)
(let ((j1295 r1470))
(let ((k1472 (##core#lambda
(r1473)
(let ((t1296 r1473))
(let ((r1476 (##core#inline_allocate
("C_a_i_minus" 4)
j1295
j0287)))
(let ((k1478 (##core#lambda
(r1479)
(let ((secs298 r1479))
(let ((k1481 (##core#lambda
(r1482)
(let ((secs2299 r1482))
(let ((k1484 (##core#lambda
(r1485)
(let ((k1487 (##core#lambda
(r1488)
(let ((k1490 (##core#lambda
(r1491)
(let ((k1493 (##core#lambda
(r1494)
(let ((k1496 (##core#lambda
(r1497)
(let ((k1499 (##core#lambda
(r1500)
(let ((k1502 (##core#lambda
(r1503)
(let ((k1505 (##core#lambda
(r1506)
(let ((k1508 (##core#lambda
(r1509)
(let ((k1511 (##core#lambda
(r1512)
(let ((k1514 (##core#lambda
(r1515)
(let ((k1517 (##core#lambda
(r1518)
(let ((k1520 (##core#lambda
(r1521)
(let ((k1523 (##core#lambda
(r1524)
(let ((k1526 (##core#lambda (r1527) (k1445 result290))))
(let ((r1531 ##sys#standard-output))
(flush-output-port k1526 ##sys#standard-output))))))
(newline k1523)))))
(display k1520 secs298)))))
(display k1517 ",")))))
(display k1514 name279)))))
(display k1511 ",")))))
(let ((k1534 (##core#lambda (r1535) (display k1508 r1535))))
(this-scheme-implementation-name k1534))))))
(display k1505 "+!CSVLINE!+")))))
(newline k1502)))))
(display k1499 name279)))))
(display k1496 ") for ")))))
(write k1493 secs2299)))))
(display k1490 " seconds (")))))
(write k1487 secs298)))))
(display k1484 "Elapsed time: "))))))
(let ((r1539 (##core#inline_allocate
("C_a_i_minus" 4)
t1296
t0286)))
(let ((k1407 k1481))
(let ((k1412 (##core#lambda
(r1413)
(k1407 (##core#inline_allocate
("C_a_i_divide" 4)
r1413
1000)))))
(let ((r1417 (##core#inline_allocate
("C_a_i_times" 4)
1000
r1539)))
(round k1412 r1417))))))))))
(let ((r1543 (##core#inline_allocate
("C_a_i_divide" 4)
r1476
j/s285)))
(inexact k1478 r1543))))))))
(current-second k1472))))))
(current-jiffy k1469))
(let ((k1545 (##core#lambda
(r1546)
(let ((k1548 (##core#lambda
(r1549)
(let ((k1551 (##core#lambda
(r1552)
(let ((k1554 (##core#lambda (r1555) (k1445 result290))))
(let ((r1559 ##sys#standard-output))
(flush-output-port k1554 ##sys#standard-output))))))
(newline k1551)))))
(write k1548 result290)))))
(display
k1545
"ERROR: returned incorrect result: "))))))
(ok?282 k1466 result290)))))))
(loop288 k1404 0 #f)))))))
(current-jiffy k1437))))))
(current-second k1434))))))
(jiffies-per-second k1431)))))
(let ((r1563 ##sys#standard-output))
(flush-output-port k1428 ##sys#standard-output))))))
(newline k1425)))))
(display k1422 name279)))))
(display k1419 "Running "))))))
(let ((k1565 (##core#lambda
(r1566)
(let ((k1568 (##core#lambda (r1569) (k598 (##core#undefined)))))
(let ((k1571 (##core#lambda (r1572) (r1572 k1568))))
(##sys#implicit-exit-handler k1571))))))
(main k1565))))))))))))))))))))))))))))))))))
(##sys#require k611 'vector-lib)))))
(##core#callunit "extras" k608)))))
(##core#callunit "chicken_2dsyntax" k605)))))
(##core#callunit "eval" k602)))))
(##core#callunit "library" k599)))