comparison src/compiler.sml @ 506:65d8541c130b

Fusing writes with recursive function calls
author Adam Chlipala <adamc@hcoop.net>
date Tue, 25 Nov 2008 10:05:44 -0500
parents 8875ff2e85dc
children 4929cf86bc03
comparison
equal deleted inserted replaced
505:e18c747dd945 506:65d8541c130b
521 521
522 val toMono_shake = transform mono_shake "mono_shake1" o toMono_reduce 522 val toMono_shake = transform mono_shake "mono_shake1" o toMono_reduce
523 523
524 val toMono_opt2 = transform mono_opt "mono_opt2" o toMono_shake 524 val toMono_opt2 = transform mono_opt "mono_opt2" o toMono_shake
525 525
526 val fuse = {
527 func = Fuse.fuse,
528 print = MonoPrint.p_file MonoEnv.empty
529 }
530
531 val toFuse = transform fuse "fuse" o toMono_opt2
532
533 val toUntangle2 = transform untangle "untangle2" o toFuse
534
535 val toMono_shake2 = transform mono_shake "mono_shake2" o toUntangle2
536
526 val pathcheck = { 537 val pathcheck = {
527 func = (fn file => (PathCheck.check file; file)), 538 func = (fn file => (PathCheck.check file; file)),
528 print = MonoPrint.p_file MonoEnv.empty 539 print = MonoPrint.p_file MonoEnv.empty
529 } 540 }
530 541
531 val toPathcheck = transform pathcheck "pathcheck" o toMono_opt2 542 val toPathcheck = transform pathcheck "pathcheck" o toMono_shake2
532 543
533 val cjrize = { 544 val cjrize = {
534 func = Cjrize.cjrize, 545 func = Cjrize.cjrize,
535 print = CjrPrint.p_file CjrEnv.empty 546 print = CjrPrint.p_file CjrEnv.empty
536 } 547 }