Mercurial > urweb
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 } |