view src/mono_inline.sml @ 2307:6ae9a2784a45

Return to working version mode
author Adam Chlipala <adam@chlipala.net>
date Sun, 20 Dec 2015 14:39:50 -0500
parents edd634b889d0
children
line wrap: on
line source
structure MonoInline = struct

fun inlineFull file =
    let
        val oldInline = Settings.getMonoInline ()
        val oldFull = !MonoReduce.fullMode
    in
        (Settings.setMonoInline (case Int.maxInt of
                                     NONE => 1000000
                                   | SOME n => n);
         MonoReduce.fullMode := true;
         let
             val file = MonoReduce.reduce file
             val file = MonoOpt.optimize file
             val file = Fuse.fuse file
             val file = MonoOpt.optimize file
             val file = MonoShake.shake file
         in
             file
         end before
         (MonoReduce.fullMode := oldFull;
          Settings.setMonoInline oldInline))
        handle ex => (Settings.setMonoInline oldInline;
                      MonoReduce.fullMode := oldFull;
                      raise ex)
    end

end