Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-01 15:09:16 -0800 (Tue, 01 Mar 2005)
Revision: 6790
Log message:

      Use omake to construct the final mmc theory.
      
      In mk/config, you now have the option to specify the
      mmc extensions and backends.
      
      For each extension, you must specify:
         1. The name of the extension
         2. The files
         3. Any backend-specific files
      
      See any of the extensions/*/Files for examples.
      

Changes  Path
+8 -5 metaprl/OMakefile
+2 -0 metaprl/mk/defaults
+16 -2 metaprl/mk/make_config
+113 -66 mpcompiler/mmc/OMakefile
+1 -1 mpcompiler/mmc/arch/ppc/Files
+3 -1 mpcompiler/mmc/arch/x86/Files
+2 -1 mpcompiler/mmc/arch/x86/base/Files
+2 -1 mpcompiler/mmc/arch/x86/codegen/Files
+1 -1 mpcompiler/mmc/arch/x86/opt/Files
+2 -1 mpcompiler/mmc/arch/x86/print/Files
+2 -1 mpcompiler/mmc/arch/x86/regalloc/Files
Deleted mpcompiler/mmc/arch/x86/runtime/Files
+3 -3 mpcompiler/mmc/arch/x86/runtime/OMakefile
+15 -2 mpcompiler/mmc/extensions/array/Files
+15 -2 mpcompiler/mmc/extensions/bool/Files
+15 -2 mpcompiler/mmc/extensions/int/Files
+15 -2 mpcompiler/mmc/extensions/loop/Files
+15 -2 mpcompiler/mmc/extensions/operator/Files
+15 -2 mpcompiler/mmc/extensions/reserve/Files
+15 -2 mpcompiler/mmc/extensions/special/Files
+15 -2 mpcompiler/mmc/extensions/string/Files
+16 -3 mpcompiler/mmc/extensions/tuple/Files
+16 -3 mpcompiler/mmc/extensions/tyexists/Files
+15 -2 mpcompiler/mmc/extensions/unit/Files
Deleted mpcompiler/mmc/main/Files
+18 -51 mpcompiler/mmc/main/mmc_theory.ml
+24 -45 mpcompiler/mmc/main/mmc_theory.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-01 15:09:48 -0800 (Tue, 01 Mar 2005)
Revision: 6791
Log message:

      These files are now generated.
      

Changes  Path
Deleted mpcompiler/mmc/main/mmc_theory.ml
Deleted mpcompiler/mmc/main/mmc_theory.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-01 17:03:35 -0800 (Tue, 01 Mar 2005)
Revision: 6793
Log message:

      Added code generation for integer arithmetic.
      

Changes  Path
+22 -14 mpcompiler/mmc/OMakefile
+46 -5 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+16 -0 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen_core.ml
+7 -0 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen_core.mli
+1 -0 mpcompiler/mmc/extensions/int/Files
Deleted mpcompiler/mmc/extensions/int/mmc_ext_integer_x86.ml
Deleted mpcompiler/mmc/extensions/int/mmc_ext_integer_x86.mli
Added mpcompiler/mmc/extensions/int/mmc_x86_int.ml
Properties mpcompiler/mmc/extensions/int/mmc_x86_int.ml
Added mpcompiler/mmc/extensions/int/mmc_x86_int.mli
Properties mpcompiler/mmc/extensions/int/mmc_x86_int.mli
+28 -0 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.ml
+7 -7 mpcompiler/mmc/test/Files
+16 -16 mpcompiler/mmc/test/OMakefile

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-01 19:36:59 -0800 (Tue, 01 Mar 2005)
Revision: 6794
Log message:

      closure-elim now type checks.
      
      We have a weird problem with dT.  During typechecking, dT fails, but
      manual application of the rules works, and autoT works.
      
      I've changed the repeatT (dT 0) to autoT until we fix this problem.
      

Changes  Path
+6 -1 mpcompiler/mmc/core/mmc_core_tast.ml
+10 -0 mpcompiler/mmc/core/mmc_core_tast.mli
+38 -1 mpcompiler/mmc/core/mmc_core_type_check.ml
+20 -7 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+2 -2 mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists.ml
+32 -14 mpcompiler/mmc/lir/closure_elim/mmc_lir_closure_elim_core.ml
+10 -0 mpcompiler/mmc/lir/closure_elim/mmc_lir_closure_elim_core.mli
+2 -2 mpcompiler/mmc/test/mmc
+1 -1 mpcompiler/util/mm_arith_util.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-01 19:37:42 -0800 (Tue, 01 Mar 2005)
Revision: 6795
Log message:

      Apparently I forgot to commit this OMakefile.
      

Changes  Path
Properties mpcompiler/mmc/main
Added mpcompiler/mmc/main/OMakefile
Properties mpcompiler/mmc/main/OMakefile

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-01 20:24:07 -0800 (Tue, 01 Mar 2005)
Revision: 6796
Log message:

      mmc requires omake 0.9.4.1
      

Changes  Path
+1 -1 mpcompiler/mmc/OMakefile
+1 -1 mpcompiler/mmc/core/mmc_core_type_check.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-01 21:06:47 -0800 (Tue, 01 Mar 2005)
Revision: 6798
Log message:

      Adding display forms to the asm.
      

Changes  Path
+96 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+1 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+5 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.ml
+30 -3 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen_core.ml
+1 -1 mpcompiler/mmc/core/mmc_core_type_check.ml
+3 -1 mpcompiler/mmc/lir/closure_elim/mmc_lir_closure_elim_core.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-01 21:11:19 -0800 (Tue, 01 Mar 2005)
Revision: 6800
Log message:

      Renamed mmc_lir_closure_elim.ml
      
      Since we always put extension code in the extensions directory, there is no
      need to have subdirectories for stages.
      

Changes  Path
+1 -0 mpcompiler/mmc/lir/Files
Deleted mpcompiler/mmc/lir/closure_elim/Files
Deleted mpcompiler/mmc/lir/closure_elim/mmc_lir_closure_elim.ml
Deleted mpcompiler/mmc/lir/closure_elim/mmc_lir_closure_elim.mli
Added mpcompiler/mmc/lir/mmc_lir_closure_elim.ml
Properties mpcompiler/mmc/lir/mmc_lir_closure_elim.ml
Added mpcompiler/mmc/lir/mmc_lir_closure_elim.mli
Properties mpcompiler/mmc/lir/mmc_lir_closure_elim.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-01 21:32:58 -0800 (Tue, 01 Mar 2005)
Revision: 6801
Log message:

      More progress on codegen.
      

Changes  Path
+20 -3 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+10 -3 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen_core.ml
+2 -2 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-01 21:40:38 -0800 (Tue, 01 Mar 2005)
Revision: 6802
Log message:

      Renamed mmc_x86_codegen_core.ml to mmc_x86_codegen.ml
      

Changes  Path
+1 -1 mpcompiler/mmc/arch/x86/codegen/Files
Added mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
Properties mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
Added mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.mli
Properties mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.mli
Deleted mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen_core.ml
Deleted mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen_core.mli
+1 -1 mpcompiler/mmc/extensions/int/mmc_x86_int.ml
+2 -2 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+1 -1 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.mli
+2 -2 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.ml
+1 -1 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-01 22:47:32 -0800 (Tue, 01 Mar 2005)
Revision: 6803
Log message:

      Yay!  I basically have the first codegen example.
      

Changes  Path
+4 -8 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+14 -5 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+5 -5 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.ml
+2 -2 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.mli
+24 -8 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
+1 -1 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.mli
+8 -8 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.ml
+1 -0 mpcompiler/mmc/lir/mmc_lir_theory.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-01 22:59:53 -0800 (Tue, 01 Mar 2005)
Revision: 6804
Log message:

      To simplify, I completely removed the Codegen{'e} form in favor of
      only using the Codegen{'e1; v. 'e2['v]} form.
      

Changes  Path
+5 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+23 -31 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
+0 -1 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-02 00:32:02 -0800 (Wed, 02 Mar 2005)
Revision: 6806
Log message:

      Added initial assembly typechecking.
      

Changes  Path
+39 -8 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
Properties mpcompiler/mmc/arch/x86/type
Added mpcompiler/mmc/arch/x86/type/Files
Properties mpcompiler/mmc/arch/x86/type/Files
Added mpcompiler/mmc/arch/x86/type/mmc_x86_type_check.ml
Properties mpcompiler/mmc/arch/x86/type/mmc_x86_type_check.ml
Added mpcompiler/mmc/arch/x86/type/mmc_x86_type_check.mli
Properties mpcompiler/mmc/arch/x86/type/mmc_x86_type_check.mli

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-02 01:52:31 -0800 (Wed, 02 Mar 2005)
Revision: 6807
Log message:

      - Made sure theories/mmc/test/OMakefile is included and not just
        theories/mmc/test/Files
      
      - Added some code to clean mmc subdirectories on "omake clean".
      

Changes  Path
+16 -7 mpcompiler/mmc/OMakefile
+1 -2 mpcompiler/mmc/test/OMakefile

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-02 03:01:05 -0800 (Wed, 02 Mar 2005)
Revision: 6808
Log message:

      - My previous commit broke the build system, fixing.
      
      - Fixed the "omake mmc_tests" target.
      
      - Fixed type inference for boolean expressions and for applications.
      

Changes  Path
+2 -2 mpcompiler/mmc/OMakefile
+1 -1 mpcompiler/mmc/core/mmc_core_type_erase.ml
+20 -28 mpcompiler/mmc/core/mmc_core_type_infer.ml
+6 -6 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+1 -1 mpcompiler/mmc/main/OMakefile
+1 -1 mpcompiler/mmc/test/OMakefile
+14 -8 mpcompiler/mmc/test/mmc

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-02 03:17:58 -0800 (Wed, 02 Mar 2005)
Revision: 6809
Log message:

      Fixed another type inference bug
      

Changes  Path
+2 -2 mpcompiler/mmc/core/mmc_core_type_infer.ml

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-02 03:46:08 -0800 (Wed, 02 Mar 2005)
Revision: 6810
Log message:

      Fixed a bug in cps
      

Changes  Path
+1 -1 mpcompiler/mmc/core/mmc_core_cps.ml

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-02 03:55:13 -0800 (Wed, 02 Mar 2005)
Revision: 6811
Log message:

      Added couple of missing reduce resource annotations
      

Changes  Path
+2 -2 mpcompiler/mmc/core/mmc_core_reserve.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-02 09:21:02 -0800 (Wed, 02 Mar 2005)
Revision: 6812
Log message:

      Updated the OMakefile a bit.
      
      See the comment at the top of the OMakefile for a description
      of how to configure mmc.
      

Changes  Path
+31 -7 mpcompiler/mmc/OMakefile
Deleted mpcompiler/mmc/test/Files
+9 -0 mpcompiler/mmc/test/OMakefile

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-02 11:36:42 -0800 (Wed, 02 Mar 2005)
Revision: 6815
Log message:

      Instead of having a special form for tuple subscripts,
      add an operand MemRegOffW{'r : Register; 'i : Int} that
      interprets the index 'i as being a word index.
      

Changes  Path
+2 -5 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+5 -5 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+4 -0 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.mli
+3 -1 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+6 -0 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.mli
+16 -2 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-02 20:45:33 -0800 (Wed, 02 Mar 2005)
Revision: 6821
Log message:

      Fixed reserveT
      

Changes  Path
+9 -9 mpcompiler/mmc/core/mmc_core_reserve.ml
+990 -1047 mpcompiler/mmc/test/mmc_tests_out.previous

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-02 21:36:58 -0800 (Wed, 02 Mar 2005)
Revision: 6822
Log message:

      - Simplified the CPS a bit, removing the need for an outher repeatC.
        "omake mmc_tests" still shows that CPS is buggy...
      
      - Removed some ugly spaces from the generated mmc_theory.ml
      

Changes  Path
+11 -46 mpcompiler/mmc/core/mmc_core_cps.ml
+0 -2 mpcompiler/mmc/core/mmc_core_cps.mli
+1 -1 mpcompiler/mmc/main/OMakefile
+1 -1 mpcompiler/mmc/test/mmc
+0 -28 mpcompiler/mmc/test/mmc_tests_out.previous

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-03 08:51:00 -0800 (Thu, 03 Mar 2005)
Revision: 6825
Log message:

      Changed the grammar for tuples and existentials to be more consistent
      with the rest of the x86 instructions.
      

Changes  Path
+7 -8 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+12 -10 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+3 -3 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+3 -1 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.mli
+8 -8 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+8 -4 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.ml
+15 -15 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-03 10:27:25 -0800 (Thu, 03 Mar 2005)
Revision: 6826
Log message:

      Added some x86 type checking rules.
      

Changes  Path
+10 -2 mpcompiler/mmc/OMakefile
+20 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+37 -10 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+1 -1 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
+2 -0 mpcompiler/mmc/arch/x86/mmc_x86_theory.ml
+2 -0 mpcompiler/mmc/arch/x86/mmc_x86_theory.mli
+113 -29 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check.ml
+9 -1 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check.mli
+2 -0 mpcompiler/mmc/base/mmc_base_dform.ml
+1 -0 mpcompiler/mmc/base/mmc_base_dform.mli
+1 -1 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+12 -2 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+13 -2 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.ml
+2 -1 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-03 13:23:35 -0800 (Thu, 03 Mar 2005)
Revision: 6827
Log message:

      Yay!  mmc_int_test/test0 passes the x86 type checker.
      Things to think about:
         1. There is a ATyLabel{'ty} type where the elements
            are *labels* of values of type 'ty.  This is used to convert
            a direct function to a std function.
      
            <H> >- f : Fun#direct <J> -> ty
            --------------------------------------------------------
            <H> >- ImmediateCLabel{'f} : ATyLabel{Fun#std <J> -> ty}
      
            This may-or-may-not be the right way to go.
      
         2. The "return" instruction has type void for any operand.
            It is only used in initialization.  We need to decide what
            to do with initialization.
      

Changes  Path
+2 -2 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+31 -26 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+65 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check.ml
+7 -1 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check.mli
+58 -11 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+5 -4 mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists.ml
+32 -0 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-03 19:42:40 -0800 (Thu, 03 Mar 2005)
Revision: 6832
Log message:

      Added (minor) x86 optimizations.
      The simple contexts seem to be working.
      

Changes  Path
+3 -0 metaprl/refiner/refiner/refiner_debug.ml
+4 -0 metaprl/refiner/refsig/term_addr_sig.ml
+13 -0 metaprl/refiner/term_ds/term_addr_ds.ml
+13 -0 metaprl/refiner/term_gen/term_addr_gen.ml
+38 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+90 -15 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+1 -25 mpcompiler/mmc/arch/x86/mmc_x86_theory.ml
+1 -0 mpcompiler/mmc/arch/x86/mmc_x86_theory.mli
+3 -1 mpcompiler/mmc/arch/x86/opt/Files
Added mpcompiler/mmc/arch/x86/opt/mmc_x86_opt.ml
Properties mpcompiler/mmc/arch/x86/opt/mmc_x86_opt.ml
Added mpcompiler/mmc/arch/x86/opt/mmc_x86_opt.mli
Properties mpcompiler/mmc/arch/x86/opt/mmc_x86_opt.mli
Deleted mpcompiler/mmc/arch/x86/opt/mmc_x86_opt1.ml
Deleted mpcompiler/mmc/arch/x86/opt/mmc_x86_opt1.mli
+2 -2 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check.ml
+0 -9 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check.mli
+2 -3 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-03 19:56:27 -0800 (Thu, 03 Mar 2005)
Revision: 6833
Log message:

      Added x86 dead-instruction elimination.
      

Changes  Path
+6 -6 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
+3 -3 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.mli
+1 -0 mpcompiler/mmc/arch/x86/mmc_x86_theory.ml
+1 -0 mpcompiler/mmc/arch/x86/mmc_x86_theory.mli
+1 -0 mpcompiler/mmc/arch/x86/opt/Files
+18 -16 mpcompiler/mmc/arch/x86/opt/mmc_x86_dead.ml
+6 -6 mpcompiler/mmc/arch/x86/opt/mmc_x86_dead.mli
+12 -12 mpcompiler/mmc/arch/x86/opt/mmc_x86_opt.ml
+5 -5 mpcompiler/mmc/arch/x86/opt/mmc_x86_opt.mli
+5 -4 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-03 20:39:15 -0800 (Thu, 03 Mar 2005)
Revision: 6834
Log message:

      Added the slop around function calls, which allows us to specify
      the calling convention.
      
      There is a problem with the function variables, because we don't know
      the type.
      

Changes  Path
+1 -0 mpcompiler/mmc/arch/x86/mmc_x86_theory.ml
+1 -0 mpcompiler/mmc/arch/x86/mmc_x86_theory.mli
+1 -0 mpcompiler/mmc/arch/x86/regalloc/Files
+29 -46 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_slop.ml
+3 -3 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_slop.mli
+2 -2 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-04 11:51:38 -0800 (Fri, 04 Mar 2005)
Revision: 6837
Log message:

      Move all the x86 stuff for tuples and existentials into their
      proper files.  The x86 backend won't work without them, but
      the code should still be put in the right place.
      

Changes  Path
+0 -49 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+0 -38 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+98 -240 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_convention.ml
+18 -0 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+21 -0 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.mli
+31 -0 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.ml
+28 -0 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.mli

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2005-03-04 17:24:52 -0800 (Fri, 04 Mar 2005)
Revision: 6839
Log message:

      Some preliminary support for cross-compilation.  This at least allows me to
      build and link the x86 backend on PowerPC.  It does not yet allow actual
      cross-compilation.
      

Changes  Path
+9 -0 mpcompiler/mmc/OMakefile
+3 -0 mpcompiler/mmc/arch/x86/runtime/OMakefile

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2005-03-04 18:02:44 -0800 (Fri, 04 Mar 2005)
Revision: 6840
Log message:

      In theory, cross compilation should work.  I'll try it out once I can build mmc
      again and somebody explains to me how to run it.  :-)
      

Changes  Path
+0 -2 mpcompiler/mmc/OMakefile
+4 -1 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-04 18:38:23 -0800 (Fri, 04 Mar 2005)
Revision: 6841
Log message:

      This is a bit painful, but I added the condition-code an an explicit
      binding to the instructions.  The main reason is to allow instruction
      reordering, which requires analysis of the instructions that modify
      the condition codes.
      

Changes  Path
+138 -43 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+203 -62 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+1 -85 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.ml
+0 -33 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.mli
+6 -0 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
+15 -6 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.mli
+13 -0 mpcompiler/mmc/arch/x86/mmc_x86_theory.ml
+2 -0 mpcompiler/mmc/arch/x86/mmc_x86_theory.mli
+7 -7 mpcompiler/mmc/extensions/int/mmc_x86_int.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-04 20:14:47 -0800 (Fri, 04 Mar 2005)
Revision: 6842
Log message:

      Added the x86 conventions.
      
      Note, this includes a commit to MetaPRL to handle quotation patterns.
      

Changes  Path
+19 -3 metaprl/filter/filter/filter_parse.ml
+2 -1 metaprl/filter/filter/filter_patt.ml
+13 -7 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+1 -0 mpcompiler/mmc/arch/x86/mmc_x86_theory.ml
+1 -0 mpcompiler/mmc/arch/x86/mmc_x86_theory.mli
+16 -5 mpcompiler/mmc/arch/x86/opt/mmc_x86_dead.ml
+1 -0 mpcompiler/mmc/arch/x86/regalloc/Files
+86 -49 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_convention.ml
+3 -3 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_convention.mli
+2 -3 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-04 20:58:03 -0800 (Fri, 04 Mar 2005)
Revision: 6843
Log message:

      Added the x86 renaming and coalescing phases.
      

Changes  Path
+6 -2 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+2 -0 mpcompiler/mmc/arch/x86/regalloc/Files
+10 -13 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_coalesce.ml
+0 -1 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_coalesce.mli
Added mpcompiler/mmc/arch/x86/regalloc/mmc_x86_rename.ml
Properties mpcompiler/mmc/arch/x86/regalloc/mmc_x86_rename.ml
Added mpcompiler/mmc/arch/x86/regalloc/mmc_x86_rename.mli
Properties mpcompiler/mmc/arch/x86/regalloc/mmc_x86_rename.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-05 07:56:17 -0800 (Sat, 05 Mar 2005)
Revision: 6845
Log message:

      Updated x86 renaming.
      

Changes  Path
+1 -0 mpcompiler/mmc/arch/x86/mmc_x86_theory.ml
+1 -0 mpcompiler/mmc/arch/x86/mmc_x86_theory.mli
+0 -9 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_coalesce.ml
+0 -1 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_coalesce.mli
+129 -44 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_rename.ml
+2 -0 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_rename.mli
+16 -16 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-05 12:00:52 -0800 (Sat, 05 Mar 2005)
Revision: 6846
Log message:

      The files for register allocation now compile.  Untested.
      

Changes  Path
+3 -3 metaprl/filter/filter/filter_patt.ml
+13 -1 metaprl/refiner/rewrite/rewrite_build_contractum.ml
+12 -3 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+113 -58 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+15 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.ml
+4 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.mli
+1 -0 mpcompiler/mmc/arch/x86/print/Files
Deleted mpcompiler/mmc/arch/x86/print/mmc_x86_backend.ml
Deleted mpcompiler/mmc/arch/x86/print/mmc_x86_backend.mli
Added mpcompiler/mmc/arch/x86/print/mmc_x86_print.ml
Properties mpcompiler/mmc/arch/x86/print/mmc_x86_print.ml
Added mpcompiler/mmc/arch/x86/print/mmc_x86_print.mli
Properties mpcompiler/mmc/arch/x86/print/mmc_x86_print.mli
+3 -0 mpcompiler/mmc/arch/x86/regalloc/Files
Added mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.ml
Properties mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.ml
Added mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.mli
Properties mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.mli
+15 -15 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_regalloc.ml
+0 -4 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_regalloc.mli
+122 -138 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_spill.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-05 15:49:57 -0800 (Sat, 05 Mar 2005)
Revision: 6847
Log message:

      Yay!  The backend is complete, and mmc_int_test/test0 compiles and
      runs correctly.
      

Changes  Path
+25 -14 metaprl/filter/filter/filter_patt.ml
+2 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.ml
+4 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.mli
+6 -2 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
+30 -28 mpcompiler/mmc/arch/x86/mmc_x86_theory.ml
+4 -3 mpcompiler/mmc/arch/x86/mmc_x86_theory.mli
+167 -39 mpcompiler/mmc/arch/x86/print/mmc_x86_print.ml
+4 -0 mpcompiler/mmc/arch/x86/print/mmc_x86_print.mli
+100 -33 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.ml
+2 -2 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_regalloc.ml
+2 -2 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_regalloc.mli
+4 -2 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_rename.ml
+2 -2 mpcompiler/mmc/arch/x86/runtime/x86_glue.s
+3 -3 mpcompiler/mmc/arch/x86/runtime/x86_runtime.c
+1 -0 mpcompiler/mmc/arch/x86/type/Files
+14 -206 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check.ml
+4 -55 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check.mli
Added mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
Properties mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
Added mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.mli
Properties mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.mli
+3 -3 mpcompiler/mmc/core/mmc_core_hoist.ml
+2 -2 mpcompiler/mmc/core/mmc_core_hoist.mli
+4 -6 mpcompiler/mmc/core/mmc_core_theory.ml
+1 -1 mpcompiler/mmc/extensions/int/mmc_x86_int.ml
+1 -1 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+1 -1 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.ml
+5 -4 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml
+7 -4 mpcompiler/mmc/lir/mmc_lir_theory.ml
+3 -0 mpcompiler/mmc/main/OMakefile
+0 -1 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-05 16:46:47 -0800 (Sat, 05 Mar 2005)
Revision: 6848
Log message:

      mmc_int_test/test1 now compiles and executes.
      

Changes  Path
+63 -17 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+19 -14 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+15 -0 mpcompiler/mmc/arch/x86/print/mmc_x86_print.ml
+16 -0 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.ml
+13 -0 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_rename.ml
+8 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
+1 -1 mpcompiler/mmc/test/mmc
+1 -1 mpcompiler/mmc/test/mmc_int_test.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-05 17:10:29 -0800 (Sat, 05 Mar 2005)
Revision: 6849
Log message:

      mmc_int_test/test2 compiles and runs.
      

Changes  Path
+4 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+3 -1 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+18 -10 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_rename.ml
+3 -3 mpcompiler/mmc/extensions/int/mmc_x86_int.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-05 18:39:57 -0800 (Sat, 05 Mar 2005)
Revision: 6850
Log message:

      mmc_int_test/test_cps1 compiles and runs.
      Note: I haven't done anything wrt to garbage collection yet.
      

Changes  Path
+4 -4 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+37 -0 mpcompiler/mmc/arch/x86/print/mmc_x86_print.ml
+32 -0 mpcompiler/mmc/arch/x86/runtime/x86_glue.s
+1 -0 mpcompiler/mmc/core/mmc_core_hoist.ml
+6 -4 mpcompiler/mmc/core/mmc_core_tast.ml
+7 -0 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml
+2 -1 mpcompiler/mmc/test/mmc
+1 -1 mpcompiler/mmc/test/mmc_int_test.ml
+2 -2 mpcompiler/util/mm_dform_util.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-05 19:06:12 -0800 (Sat, 05 Mar 2005)
Revision: 6851
Log message:

      Some minor integer optimizations.
      

Changes  Path
+2 -0 mpcompiler/mmc/core/mmc_core_ast.mli
+2 -0 mpcompiler/mmc/extensions/int/mmc_ext_int.mli
+28 -0 mpcompiler/mmc/extensions/int/mmc_x86_int.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-06 12:04:38 -0800 (Sun, 06 Mar 2005)
Revision: 6852
Log message:

      Added the "typeof" operator to x86.
      The current method for elimination
         1. adds constraints for all the variables
         2. Eliminates the typeof
         3. Erase all leftover constraints
      
      This seems like it can be generalized.  Adding a "sweep"
      operator that sweeps down a type environment (as we have
      discussed for the core).
      

Changes  Path
+1 -0 metaprl/support/display/perv.mli
+15 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+56 -1 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+2 -0 mpcompiler/mmc/arch/x86/codegen/Files
Added mpcompiler/mmc/arch/x86/codegen/mmc_x86_close.ml
Properties mpcompiler/mmc/arch/x86/codegen/mmc_x86_close.ml
Added mpcompiler/mmc/arch/x86/codegen/mmc_x86_close.mli
Properties mpcompiler/mmc/arch/x86/codegen/mmc_x86_close.mli
Added mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve.ml
Properties mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve.ml
Added mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve.mli
Properties mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve.mli
+8 -0 mpcompiler/mmc/arch/x86/mmc_x86_theory.ml
+2 -0 mpcompiler/mmc/arch/x86/mmc_x86_theory.mli
+2 -0 mpcompiler/mmc/arch/x86/type/Files
Added mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.ml
Properties mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.ml
Added mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.mli
Properties mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.mli
+7 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
+0 -9 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.mli
Added mpcompiler/mmc/arch/x86/type/mmc_x86_typeof.ml
Properties mpcompiler/mmc/arch/x86/type/mmc_x86_typeof.ml
Added mpcompiler/mmc/arch/x86/type/mmc_x86_typeof.mli
Properties mpcompiler/mmc/arch/x86/type/mmc_x86_typeof.mli
+18 -0 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
Added mpcompiler/mmc/test/.gdbinit
Properties mpcompiler/mmc/test/.gdbinit
+4 -1 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-06 14:51:39 -0800 (Sun, 06 Mar 2005)
Revision: 6853
Log message:

      Added the initial x86 sweeper.  Next, convert closure conversion
      to a sweeper phase.
      

Changes  Path
+0 -4 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+21 -18 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+157 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.ml
+102 -6 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.mli
+80 -98 mpcompiler/mmc/arch/x86/type/mmc_x86_typeof.ml
+30 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_typeof.mli

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2005-03-06 23:02:11 -0800 (Sun, 06 Mar 2005)
Revision: 6854
Log message:

      Added an example to the usage string.
      

Changes  Path
+2 -1 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-07 00:33:42 -0800 (Mon, 07 Mar 2005)
Revision: 6855
Log message:

      A more complete sweeper for x86.
      

Changes  Path
+4 -1 metaprl/refiner/term_ds/term_addr_ds.ml
+22 -2 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+66 -10 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+1 -1 mpcompiler/mmc/arch/x86/codegen/Files
Deleted mpcompiler/mmc/arch/x86/codegen/mmc_x86_close.ml
Deleted mpcompiler/mmc/arch/x86/codegen/mmc_x86_close.mli
Added mpcompiler/mmc/arch/x86/codegen/mmc_x86_closure.ml
Properties mpcompiler/mmc/arch/x86/codegen/mmc_x86_closure.ml
Added mpcompiler/mmc/arch/x86/codegen/mmc_x86_closure.mli
Properties mpcompiler/mmc/arch/x86/codegen/mmc_x86_closure.mli
+2 -2 mpcompiler/mmc/arch/x86/mmc_x86_theory.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_theory.mli
+539 -2 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.ml
+48 -29 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.mli
+1 -1 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check.ml
+2 -16 mpcompiler/mmc/arch/x86/type/mmc_x86_typeof.ml
+42 -0 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+0 -2 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.mli
+136 -0 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-07 11:17:16 -0800 (Mon, 07 Mar 2005)
Revision: 6856
Log message:

      x86 sweeper is complete, and x86 closure conversion is implemented.
      The sweeper is wonderful logically, but it is also slow.
      

Changes  Path
+92 -9 mpcompiler/mmc/arch/x86/codegen/mmc_x86_closure.ml
+1 -1 mpcompiler/mmc/arch/x86/print/mmc_x86_print.ml
+197 -109 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.ml
+14 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.mli
+1 -1 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check.ml
+0 -1 mpcompiler/mmc/base/mmc_base_hoist.ml
+4 -4 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+10 -10 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-08 12:11:56 -0800 (Tue, 08 Mar 2005)
Revision: 6859
Log message:

      Converted the x86 sweeper to propositional form.  That is, the sweep
      environment is a collection of propositions.  This is probably what
      we want to use for tast optimization too.
      

Changes  Path
+1 -0 metaprl/refiner/refiner/refine_error.ml
+1 -0 metaprl/refiner/refiner/refiner_debug.ml
+4 -0 metaprl/refiner/reflib/refine_exn.ml
+1 -0 metaprl/refiner/refsig/refine_error_sig.ml
+4 -0 metaprl/refiner/refsig/thread_refiner_sig.ml
+1 -0 metaprl/support/tactics/top_conversionals.ml
+1 -0 metaprl/support/tactics/top_conversionals.mli
+1 -0 metaprl/support/tactics/top_tacticals.ml
+1 -0 metaprl/support/tactics/top_tacticals.mli
+12 -4 metaprl/tactics/null/thread_refiner.ml
+1 -0 metaprl/tactics/proof/conversionals_boot.ml
+43 -33 metaprl/tactics/proof/rewrite_boot.ml
+8 -2 metaprl/tactics/proof/tactic_boot.ml
+13 -0 metaprl/tactics/proof/tactic_boot_sig.ml
+1 -0 metaprl/tactics/proof/tacticals_boot.ml
+60 -49 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+95 -85 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+67 -45 mpcompiler/mmc/arch/x86/codegen/mmc_x86_closure.ml
+4 -4 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
+2 -2 mpcompiler/mmc/arch/x86/opt/mmc_x86_opt.ml
+21 -21 mpcompiler/mmc/arch/x86/print/mmc_x86_print.ml
+31 -31 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.ml
+1 -1 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_coalesce.ml
+6 -6 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_rename.ml
+29 -29 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_spill.ml
+291 -419 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.ml
+62 -62 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.mli
+2 -2 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check.ml
+75 -60 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
+32 -13 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.mli
+38 -23 mpcompiler/mmc/arch/x86/type/mmc_x86_typeof.ml
+11 -4 mpcompiler/mmc/arch/x86/type/mmc_x86_typeof.mli
+18 -18 mpcompiler/mmc/extensions/int/mmc_x86_int.ml
+20 -20 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+40 -39 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-08 16:05:43 -0800 (Tue, 08 Mar 2005)
Revision: 6861
Log message:

      Added reserves.  Have to handle spills correctly before this
      works.
      

Changes  Path
+5 -1 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+19 -4 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+1 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.ml
+1 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.mli
+1 -0 mpcompiler/mmc/arch/x86/codegen/Files
+108 -6 mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve.ml
+45 -1 mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve.mli
+79 -2 mpcompiler/mmc/arch/x86/print/mmc_x86_print.ml
+8 -0 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_rename.ml
+6 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
+51 -16 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+7 -0 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.mli
+22 -20 mpcompiler/mmc/test/mmc
+10 -7 mpcompiler/util/mm_arith_util.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-08 17:16:02 -0800 (Tue, 08 Mar 2005)
Revision: 6862
Log message:

      test_cps1 compiles with explicit allocations.
      

Changes  Path
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_theory.ml
+22 -18 mpcompiler/mmc/arch/x86/print/mmc_x86_print.ml
+57 -4 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.ml
+1 -1 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_regalloc.ml
+1 -1 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_regalloc.mli
+1 -1 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_rename.ml
+8 -6 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+6 -3 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.mli
+1 -1 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-08 17:16:37 -0800 (Tue, 08 Mar 2005)
Revision: 6863
Log message:

      Forgot to add allocator.
      

Changes  Path
Added mpcompiler/mmc/arch/x86/codegen/mmc_x86_alloc.ml
Properties mpcompiler/mmc/arch/x86/codegen/mmc_x86_alloc.ml
Added mpcompiler/mmc/arch/x86/codegen/mmc_x86_alloc.mli
Properties mpcompiler/mmc/arch/x86/codegen/mmc_x86_alloc.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-08 18:38:03 -0800 (Tue, 08 Mar 2005)
Revision: 6864
Log message:

      Defining a sweeper for the core.
      This is the main infrastructure for propagating assertions.
      

Changes  Path
+12 -12 mpcompiler/mmc/arch/x86/codegen/mmc_x86_closure.ml
+15 -15 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
+2 -1 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.ml
+19 -18 mpcompiler/mmc/core/Files
+5 -1 mpcompiler/mmc/core/mmc_core_ast.mli
Added mpcompiler/mmc/core/mmc_core_sweep.ml
Properties mpcompiler/mmc/core/mmc_core_sweep.ml
Added mpcompiler/mmc/core/mmc_core_sweep.mli
Properties mpcompiler/mmc/core/mmc_core_sweep.mli
+9 -1 mpcompiler/mmc/core/mmc_core_tast.ml
+55 -12 mpcompiler/mmc/core/mmc_core_tast.mli
+2 -2 mpcompiler/mmc/core/mmc_core_type_check.ml
+3 -3 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+6 -6 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+5 -5 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.ml
+8 -8 mpcompiler/mmc/lir/closure_elim/mmc_lir_closure_elim_core.ml
+8 -8 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-08 19:56:16 -0800 (Tue, 08 Mar 2005)
Revision: 6865
Log message:

      Added the core sweeper rewrites.
      

Changes  Path
+2 -0 mpcompiler/mmc/core/mmc_core_ast.mli
+314 -5 mpcompiler/mmc/core/mmc_core_sweep.ml
+1 -1 mpcompiler/mmc/core/mmc_core_sweep.mli
+49 -17 mpcompiler/mmc/core/mmc_core_tast.mli
+2 -2 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-08 20:30:24 -0800 (Tue, 08 Mar 2005)
Revision: 6866
Log message:

      Use MP_DEBUG=hide_types if you want to hide the types for mmc terms.
      

Changes  Path
+6 -6 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+5 -5 mpcompiler/mmc/core/mmc_core_cps.ml
+23 -5 mpcompiler/mmc/core/mmc_core_tast.ml
+4 -0 mpcompiler/mmc/core/mmc_core_tast.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-08 20:32:29 -0800 (Tue, 08 Mar 2005)
Revision: 6867
Log message:

      Oops, be a bit more aggresive about type hiding.
      

Changes  Path
+1 -1 mpcompiler/mmc/core/mmc_core_tast.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-09 09:19:13 -0800 (Wed, 09 Mar 2005)
Revision: 6869
Log message:

      Convert "std" lambdas to "rec" lambdas during type inference.
      I'm not sure exactly the difference between "rec" and "std",
      but let's work with it for now.
      
      Also, I renamed Sequent.explode_sequent to Sequent.explode_sequent_arg
      to avoid the shadowing hassle with TermMan.explode_sequent.
      

Changes  Path
+1 -3 metaprl/refiner/term_ds/term_op_ds.ml
+1 -3 metaprl/refiner/term_std/term_op_std.ml
+0 -0 metaprl/support/tactics/OMakefile
+1 -1 metaprl/support/tactics/top_tacticals.ml
+2 -2 metaprl/tactics/proof/sequent_boot.ml
+1 -1 metaprl/tactics/proof/tactic_boot_sig.ml
+4 -4 metaprl/tactics/proof/tacticals_boot.ml
+1 -1 metaprl/theories/itt/itt_int_arith.ml
+2 -2 metaprl/theories/itt/itt_logic.ml
+2 -2 metaprl/theories/itt/itt_omega.ml
+1 -1 metaprl/theories/itt/itt_squash.ml
+1 -1 metaprl/theories/itt/itt_supinf.ml
+3 -10 metaprl/theories/tptp/tptp_prove.ml
+9 -0 mpcompiler/mmc/core/mmc_core_ast.ml
+0 -0 mpcompiler/mmc/core/mmc_core_cps.ml
+5 -1 mpcompiler/mmc/core/mmc_core_tast.ml
+7 -0 mpcompiler/mmc/core/mmc_core_tast.mli
+10 -6 mpcompiler/mmc/core/mmc_core_type_check.ml
+1 -1 mpcompiler/mmc/core/mmc_core_type_erase.ml
+90 -93 mpcompiler/mmc/core/mmc_core_type_infer.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-09 10:26:23 -0800 (Wed, 09 Mar 2005)
Revision: 6870
Log message:

      This is an intermediate commit.
      
      The "rec" tag raises problems:
         1. Type inference is more complicated.
         2. Type inference is broken (all applications are
            currently inferred as "std").
      
      Fixing the second problem would require a big effort since we
      need unification on tokens.
      
      The real question is, do we really need the "rec" type?  It
      doesn't seem like closure conversion really it, and I don't think
      it is needed anywhere else.
      

Changes  Path
+0 -6 mpcompiler/mmc/core/mmc_core_type_check.ml
+42 -24 mpcompiler/mmc/core/mmc_core_type_infer.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-09 11:08:06 -0800 (Wed, 09 Mar 2005)
Revision: 6871
Log message:

      Removed the "rec" tag.
      
      Aha!  I figured out the reason why we wanted it.  The issue is
      that, in closure conversion, the rule for anonymous lambdas is
      selected before the rule for recursive functions.
      
      Both transformations are correct, so it is just the closure
      conversion tactic that needs fixing.
      

Changes  Path
+19 -17 mpcompiler/mmc/core/mmc_core_closure.ml
+1 -7 mpcompiler/mmc/core/mmc_core_tast.ml
+0 -8 mpcompiler/mmc/core/mmc_core_tast.mli
+9 -2 mpcompiler/mmc/core/mmc_core_type_check.ml
+13 -41 mpcompiler/mmc/core/mmc_core_type_infer.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-09 14:26:00 -0800 (Wed, 09 Mar 2005)
Revision: 6872
Log message:

      Re-added the "rec" function tag.
      Now we are stuck in hoisting.
      

Changes  Path
+3 -3 mpcompiler/mmc/core/mmc_core_closure.ml
+6 -0 mpcompiler/mmc/core/mmc_core_tast.ml
+8 -0 mpcompiler/mmc/core/mmc_core_tast.mli
+7 -11 mpcompiler/mmc/core/mmc_core_type_check.ml
+7 -0 mpcompiler/mmc/core/mmc_core_type_infer.ml
+2 -1 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-09 14:42:03 -0800 (Wed, 09 Mar 2005)
Revision: 6873
Log message:

      Fixed hoisting.  Note: I should fix the mmc_base_hoist module so it provides the
      two arguments, instead of a bind term.
      
      Now we are stuck in closure elimination.  We might consider eliminating
      the rec tag right after closure conversion, rather than propagating it
      all the way to the backend.
      

Changes  Path
+6 -0 mpcompiler/mmc/core/mmc_core_hoist.ml
+2 -1 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-09 21:19:03 -0800 (Wed, 09 Mar 2005)
Revision: 6876
Log message:

      Added lazy computation of grammars (this is bug #411).  This should
      reduce compile times in mmc significantly.
      

Changes  Path
+4 -5 metaprl/filter/base/filter_cache_fun.ml
+218 -62 metaprl/filter/base/filter_grammar.ml
+2 -2 metaprl/filter/base/filter_grammar.mli
+1 -1 metaprl/filter/base/filter_magic.ml
+1 -1 metaprl/filter/base/filter_summary_type.ml
+1 -1 metaprl/filter/filter/filter_parse.ml
+2 -2 metaprl/support/shell/shell_state.ml
+1 -1 mpcompiler/mmc/core/mmc_core_ast.mli
+1 -0 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-10 10:24:46 -0800 (Thu, 10 Mar 2005)
Revision: 6877
Log message:

      Quantify lambdas in type inference.
      
      In general, we should move to OCaml-style value polymorphism,
      rather than let-polymorphism.
      
      That means, for example, that lambdas are quantified even if they
      are not in a let.  Also, values like [] are quantified.
      

Changes  Path
+2 -9 mpcompiler/mmc/arch/x86/codegen/mmc_x86_closure.ml
+12 -10 mpcompiler/mmc/base/mmc_base_hoist.ml
+1 -1 mpcompiler/mmc/base/mmc_base_hoist.mli
+5 -4 mpcompiler/mmc/core/mmc_core_cps.ml
+8 -8 mpcompiler/mmc/core/mmc_core_hoist.ml
+8 -9 mpcompiler/mmc/core/mmc_core_tast.ml
+13 -9 mpcompiler/mmc/core/mmc_core_type_check.ml
+71 -67 mpcompiler/mmc/core/mmc_core_type_infer.ml
+55 -11 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml
Properties mpcompiler/mmc/test
+2 -1 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-10 10:44:57 -0800 (Thu, 10 Mar 2005)
Revision: 6878
Log message:

      Handle polymorphic values through closure elimination.
      

Changes  Path
+8 -13 mpcompiler/mmc/core/mmc_core_closure.ml
+5 -2 mpcompiler/mmc/core/mmc_core_cps.ml
+13 -3 mpcompiler/mmc/core/mmc_core_hoist.ml
+2 -24 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-10 12:41:03 -0800 (Thu, 10 Mar 2005)
Revision: 6879
Log message:

      Working on polymorphic closure elimination.
      
      I _think_, just like fun#std should be enclosed in a Lam,
      that Fun#std should be enclosed in an "all".  This also
      changed cps slightly.
      

Changes  Path
+5 -3 mpcompiler/mmc/core/mmc_core_tast.mli
+5 -9 mpcompiler/mmc/core/mmc_core_type_check.ml
+1 -1 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+63 -31 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-10 22:24:56 -0800 (Thu, 10 Mar 2005)
Revision: 6895
Log message:

      Fixed a painful bug in the parser where precedences were not
      being translated correctly during a grammar merge.
      

Changes  Path
+3 -23 metaprl/filter/filter/filter_parse.ml
+3 -1 metaprl/filter/filter/term_grammar.ml
+10 -4 mpcompiler/mmc/core/mmc_core_ast.mli
+60 -4 mpcompiler/mmc/core/mmc_core_closure.ml
+4 -4 mpcompiler/mmc/core/mmc_core_grammar.mli
+1 -1 mpcompiler/mmc/core/mmc_core_hoist.mli
+1 -1 mpcompiler/mmc/core/mmc_core_sweep.mli
+20 -19 mpcompiler/mmc/core/mmc_core_tast.mli
+23 -0 mpcompiler/mmc/core/mmc_core_type_check.mli
+12 -12 mpcompiler/mmc/extensions/bool/mmc_ext_bool.mli
+28 -56 mpcompiler/mmc/extensions/int/mmc_ext_int.mli
+1 -1 mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists.mli
+3 -3 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml
+0 -2 mpcompiler/mmc/lir/mmc_lir_closure_elim.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-11 00:35:56 -0800 (Fri, 11 Mar 2005)
Revision: 6898
Log message:

      Added the rule for closure conversion of anonymouns functions.
      I have to add a type substitution operator to finish it.
      

Changes  Path
+15 -33 mpcompiler/mmc/core/mmc_core_closure.ml
+85 -6 mpcompiler/mmc/core/mmc_core_sweep.ml
+8 -1 mpcompiler/mmc/core/mmc_core_sweep.mli
+46 -1 mpcompiler/mmc/core/mmc_core_tast.ml
+101 -15 mpcompiler/mmc/core/mmc_core_tast.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-11 10:12:11 -0800 (Fri, 11 Mar 2005)
Revision: 6901
Log message:

      Fixed closure for anonymous functions.
      

Changes  Path
+1 -0 mpcompiler/mmc/core/Files
+3 -1 mpcompiler/mmc/core/mmc_core_ast.mli
+12 -8 mpcompiler/mmc/core/mmc_core_closure.ml
+5 -2 mpcompiler/mmc/core/mmc_core_sweep.ml
+19 -0 mpcompiler/mmc/core/mmc_core_tast.ml
+22 -0 mpcompiler/mmc/core/mmc_core_tast.mli
Added mpcompiler/mmc/core/mmc_core_util.ml
Properties mpcompiler/mmc/core/mmc_core_util.ml
Added mpcompiler/mmc/core/mmc_core_util.mli
Properties mpcompiler/mmc/core/mmc_core_util.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-11 13:55:37 -0800 (Fri, 11 Mar 2005)
Revision: 6902
Log message:

      Added the main rule for closing recursive functions.
      

Changes  Path
+22 -10 mpcompiler/mmc/core/mmc_core_closure.ml

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-11 15:45:32 -0800 (Fri, 11 Mar 2005)
Revision: 6904
Log message:

      A comment desciring an alternative way to do closure.
      

Changes  Path
+34 -0 mpcompiler/mmc/core/mmc_core_closure.ml
+734 -398 mpcompiler/mmc/test/mmc_tests_out.previous

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-11 17:09:07 -0800 (Fri, 11 Mar 2005)
Revision: 6906
Log message:

      Added the new closure conversion method based on what we discussed
      today.  Its cool, closure conversion in 3 rules.
      

Changes  Path
+3 -1 mpcompiler/mmc/core/mmc_core_ast.mli
+17 -33 mpcompiler/mmc/core/mmc_core_closure.ml
+10 -10 mpcompiler/mmc/core/mmc_core_sweep.ml
+4 -4 mpcompiler/mmc/core/mmc_core_tast.ml
+44 -28 mpcompiler/mmc/core/mmc_core_tast.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-11 19:36:39 -0800 (Fri, 11 Mar 2005)
Revision: 6908
Log message:

      I'm being a little anal here.  I prefer the form where the <singleton_params_c>
      is a context, containing singleton types.  This gets the arity of the functions
      right, and I feel a little better about it just because I have a better
      understanding of the semantics.
      

Changes  Path
+7 -1 metaprl/support/display/perv.mli
+22 -19 mpcompiler/mmc/core/mmc_core_closure.ml
+22 -25 mpcompiler/mmc/core/mmc_core_sweep.ml
+18 -16 mpcompiler/mmc/core/mmc_core_tast.ml
+64 -47 mpcompiler/mmc/core/mmc_core_tast.mli

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2005-03-11 20:46:41 -0800 (Fri, 11 Mar 2005)
Revision: 6909
Log message:

      A first swipe at enforcing the value restriction.  It's probably not correct.
      I'll look at it again on Monday.
      

Changes  Path
+0 -0 mpcompiler/mmc/OMakefile
+12 -1 mpcompiler/mmc/core/mmc_core_type_check.ml
+1 -0 mpcompiler/mmc/core/mmc_core_type_check.mli
+1 -0 mpcompiler/mmc/extensions/array/mmc_ext_array.ml
+4 -0 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+2 -0 mpcompiler/mmc/extensions/int/mmc_ext_int.ml
+1 -0 mpcompiler/mmc/extensions/loop/mmc_ext_loop.ml
+1 -0 mpcompiler/mmc/extensions/operator/mmc_ext_operator.ml
+3 -1 mpcompiler/mmc/extensions/string/mmc_ext_string.ml
+13 -0 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+2 -0 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.mli
+2 -0 mpcompiler/mmc/extensions/unit/mmc_ext_unit.ml
+19 -0 mpcompiler/mmc/test/mmc_int_test.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-11 20:51:36 -0800 (Fri, 11 Mar 2005)
Revision: 6910
Log message:

      Added initial tactic code for closure conversion.
      

Changes  Path
+92 -1 mpcompiler/mmc/core/mmc_core_closure.ml
+93 -30 mpcompiler/mmc/core/mmc_core_sweep.ml
+14 -6 mpcompiler/mmc/core/mmc_core_sweep.mli
+3 -2 mpcompiler/mmc/core/mmc_core_type_check.ml
+7 -0 mpcompiler/mmc/core/mmc_core_type_check.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-11 22:39:53 -0800 (Fri, 11 Mar 2005)
Revision: 6911
Log message:

      NOTE: this breaks binary compatibility, bleh.
      
      Added much better error messages to the parser, as Aleksey and I
      discussed.
      

Changes  Path
+4 -4 metaprl/filter/base/filter_exn.ml
+1 -1 metaprl/filter/base/filter_grammar.ml
+1 -1 metaprl/filter/base/filter_magic.ml
+2 -0 metaprl/refiner/refiner/refiner_debug.ml
+2 -2 metaprl/refiner/reflib/refine_exn.ml
+1 -0 metaprl/refiner/refsig/term_shape_sig.ml
+49 -0 metaprl/refiner/term_gen/term_shape_gen.ml
+10 -4 mpcompiler/mmc/core/mmc_core_closure.ml
+1 -1 mpcompiler/mmc/core/mmc_core_sweep.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-11 22:47:43 -0800 (Fri, 11 Mar 2005)
Revision: 6912
Log message:

      Added the tactic for closure conversion.  Not debugged.
      

Changes  Path
+9 -347 mpcompiler/mmc/core/mmc_core_closure.ml
+0 -25 mpcompiler/mmc/core/mmc_core_closure.mli
+0 -190 mpcompiler/mmc/opt/direct/core/mmc_opt_direct.ml
+0 -15 mpcompiler/mmc/opt/direct/core/mmc_opt_direct.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-12 00:23:48 -0800 (Sat, 12 Mar 2005)
Revision: 6913
Log message:

      mmc_int_test/test1 passes closure conversion.
      

Changes  Path
+1 -1 mpcompiler/mmc/core/mmc_core_closure.ml
+108 -5 mpcompiler/mmc/core/mmc_core_sweep.ml
+10 -0 mpcompiler/mmc/core/mmc_core_sweep.mli
+9 -2 mpcompiler/mmc/core/mmc_core_tast.ml
+60 -0 mpcompiler/mmc/core/mmc_core_tast.mli
+1 -1 mpcompiler/mmc/core/mmc_core_type_check.ml
+14 -1 mpcompiler/mmc/extensions/int/mmc_ext_int.ml
+16 -12 mpcompiler/mmc/extensions/int/mmc_ext_int.mli
+35 -2 mpcompiler/mmc/extensions/operator/mmc_ext_operator.ml
+4 -5 mpcompiler/util/mm_tactic_util.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-12 00:47:42 -0800 (Sat, 12 Mar 2005)
Revision: 6914
Log message:

      Initial closure conversion of anonymous functions.
      

Changes  Path
+5 -4 mpcompiler/mmc/core/mmc_core_closure.ml
+4 -1 mpcompiler/mmc/core/mmc_core_sweep.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-12 11:25:50 -0800 (Sat, 12 Mar 2005)
Revision: 6915
Log message:

      Added non-binding contexts (bug #417).
      mmc_int_test/test1 now passes closure conversion.
      

Changes  Path
+59 -23 metaprl/refiner/term_gen/term_meta_gen.ml
+12 -1 mpcompiler/mmc/core/mmc_core_closure.ml
+6 -2 mpcompiler/mmc/core/mmc_core_tast.ml
+13 -4 mpcompiler/mmc/core/mmc_core_tast.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-12 12:47:14 -0800 (Sat, 12 Mar 2005)
Revision: 6916
Log message:

      Added grammar for IsValue.  Note, we should try to avoid the use of
      raw term syntax wherever we can.  If you need instructions on how to
      extend the grammar, let me know.
      
      mmc_int_test/test_cps1 passes hoisting.
      

Changes  Path
+23 -19 mpcompiler/mmc/core/mmc_core_closure.ml
+11 -5 mpcompiler/mmc/core/mmc_core_hoist.ml
+3 -3 mpcompiler/mmc/core/mmc_core_sweep.ml
+48 -2 mpcompiler/mmc/core/mmc_core_tast.ml
+5 -2 mpcompiler/mmc/core/mmc_core_tast.mli
+25 -13 mpcompiler/mmc/core/mmc_core_type_check.ml
+5 -1 mpcompiler/mmc/core/mmc_core_type_check.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-13 20:50:15 -0800 (Sun, 13 Mar 2005)
Revision: 6917
Log message:

      A lot of changes:
         1. Added a typeof operator, to be used during sweeping.
         2. Closure elimination is a sweep phase, but not correct
            yet because we need to convert it to positive form.
      
      We need to add IsValue rules for the closure pairs...
      

Changes  Path
+6 -3 metaprl/editor/ml/shell_mp.ml
+5 -9 metaprl/filter/base/filter_exn.ml
+13 -2 metaprl/refiner/reflib/refine_exn.ml
+2 -0 metaprl/refiner/reflib/refine_exn.mli
+2 -2 metaprl/support/shell/shell.ml
+1 -1 metaprl/support/shell/shell_core.ml
+0 -7 metaprl/tactics/proof/exn_boot.ml
+0 -1 metaprl/tactics/proof/exn_boot.mli
+1 -0 mpcompiler/mmc/core/Files
+47 -29 mpcompiler/mmc/core/mmc_core_ast.mli
+17 -2 mpcompiler/mmc/core/mmc_core_closure.ml
+231 -326 mpcompiler/mmc/core/mmc_core_sweep.ml
+172 -18 mpcompiler/mmc/core/mmc_core_sweep.mli
+2 -7 mpcompiler/mmc/core/mmc_core_tast.ml
+62 -30 mpcompiler/mmc/core/mmc_core_tast.mli
+13 -9 mpcompiler/mmc/core/mmc_core_type_check.ml
+1 -1 mpcompiler/mmc/core/mmc_core_type_check.mli
Added mpcompiler/mmc/core/mmc_core_typeof.ml
Properties mpcompiler/mmc/core/mmc_core_typeof.ml
Added mpcompiler/mmc/core/mmc_core_typeof.mli
Properties mpcompiler/mmc/core/mmc_core_typeof.mli
+16 -0 mpcompiler/mmc/core/mmc_core_util.ml
+1 -1 mpcompiler/mmc/core/mmc_core_util.mli
+1 -7 mpcompiler/mmc/extensions/bool/mmc_ext_bool.mli
+23 -0 mpcompiler/mmc/extensions/int/mmc_ext_int.ml
+3 -12 mpcompiler/mmc/extensions/int/mmc_ext_int.mli
+20 -0 mpcompiler/mmc/extensions/operator/mmc_ext_operator.ml
+63 -1 mpcompiler/mmc/extensions/operator/mmc_ext_operator.mli
+57 -0 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+20 -2 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.mli
+46 -0 mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists.ml
+1 -1 mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists.mli
+128 -179 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml
+1 -1 mpcompiler/mmc/lir/mmc_lir_closure_elim.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-14 13:03:00 -0800 (Mon, 14 Mar 2005)
Revision: 6918
Log message:

      Separated grammar files from the rest.  This is cleaner, and it
      reduces the cost of compiling grammar files.
      
      Note, the way I have done it, there is a single file Mmc_core_grammar
      that includes all the grammars for the core.  Each non-grammar file
      in the core extends Mmc_core_grammar, so there is a single shared
      namespace.
      
      The filter is still slow.
      

Changes  Path
+23 -6 mpcompiler/mmc/OMakefile
+0 -1 mpcompiler/mmc/arch/ppc/mmc_ppc_prologue.ml
+7 -7 mpcompiler/mmc/arch/ra/Files
+5 -1 mpcompiler/mmc/arch/x86/base/Files
+1 -632 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+1 -1286 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
Added mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.ml
Properties mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.ml
Added mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.mli
Properties mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.mli
+0 -10 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.ml
+0 -21 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.mli
Added mpcompiler/mmc/arch/x86/base/mmc_x86_frame_grammar.ml
Properties mpcompiler/mmc/arch/x86/base/mmc_x86_frame_grammar.ml
Added mpcompiler/mmc/arch/x86/base/mmc_x86_frame_grammar.mli
Properties mpcompiler/mmc/arch/x86/base/mmc_x86_frame_grammar.mli
+5 -1 mpcompiler/mmc/arch/x86/codegen/Files
+1 -7 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
+0 -34 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.mli
Added mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen_grammar.ml
Properties mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen_grammar.ml
Added mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen_grammar.mli
Properties mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen_grammar.mli
+0 -19 mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve.ml
+0 -40 mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve.mli
Added mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve_grammar.ml
Properties mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve_grammar.ml
Added mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve_grammar.mli
Properties mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve_grammar.mli
+6 -1 mpcompiler/mmc/arch/x86/type/Files
+2 -90 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.ml
+0 -130 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.mli
Added mpcompiler/mmc/arch/x86/type/mmc_x86_sweep_grammar.ml
Properties mpcompiler/mmc/arch/x86/type/mmc_x86_sweep_grammar.ml
Added mpcompiler/mmc/arch/x86/type/mmc_x86_sweep_grammar.mli
Properties mpcompiler/mmc/arch/x86/type/mmc_x86_sweep_grammar.mli
+0 -30 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
+0 -58 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.mli
Added mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_grammar.ml
Properties mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_grammar.ml
Added mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_grammar.mli
Properties mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_grammar.mli
+0 -18 mpcompiler/mmc/arch/x86/type/mmc_x86_typeof.ml
+0 -33 mpcompiler/mmc/arch/x86/type/mmc_x86_typeof.mli
Added mpcompiler/mmc/arch/x86/type/mmc_x86_typeof_grammar.ml
Properties mpcompiler/mmc/arch/x86/type/mmc_x86_typeof_grammar.ml
Added mpcompiler/mmc/arch/x86/type/mmc_x86_typeof_grammar.mli
Properties mpcompiler/mmc/arch/x86/type/mmc_x86_typeof_grammar.mli
+1 -0 mpcompiler/mmc/base/Files
Added mpcompiler/mmc/base/mmc_base_grammar.ml
Properties mpcompiler/mmc/base/mmc_base_grammar.ml
Added mpcompiler/mmc/base/mmc_base_grammar.mli
Properties mpcompiler/mmc/base/mmc_base_grammar.mli
+10 -4 mpcompiler/mmc/core/Files
+0 -86 mpcompiler/mmc/core/mmc_core_ast.ml
+0 -318 mpcompiler/mmc/core/mmc_core_ast.mli
Added mpcompiler/mmc/core/mmc_core_ast_grammar.ml
Properties mpcompiler/mmc/core/mmc_core_ast_grammar.ml
Added mpcompiler/mmc/core/mmc_core_ast_grammar.mli
Properties mpcompiler/mmc/core/mmc_core_ast_grammar.mli
Deleted mpcompiler/mmc/core/mmc_core_grammar.ml
Deleted mpcompiler/mmc/core/mmc_core_grammar.mli
+0 -7 mpcompiler/mmc/core/mmc_core_hoist.mli
Added mpcompiler/mmc/core/mmc_core_hoist_grammar.ml
Properties mpcompiler/mmc/core/mmc_core_hoist_grammar.ml
Added mpcompiler/mmc/core/mmc_core_hoist_grammar.mli
Properties mpcompiler/mmc/core/mmc_core_hoist_grammar.mli
Deleted mpcompiler/mmc/core/mmc_core_list_util.ml
Deleted mpcompiler/mmc/core/mmc_core_list_util.mli
Deleted mpcompiler/mmc/core/mmc_core_reserve.ml
Deleted mpcompiler/mmc/core/mmc_core_reserve.mli
+0 -69 mpcompiler/mmc/core/mmc_core_sweep.ml
+0 -269 mpcompiler/mmc/core/mmc_core_sweep.mli
Added mpcompiler/mmc/core/mmc_core_sweep_grammar.ml
Properties mpcompiler/mmc/core/mmc_core_sweep_grammar.ml
Added mpcompiler/mmc/core/mmc_core_sweep_grammar.mli
Properties mpcompiler/mmc/core/mmc_core_sweep_grammar.mli
+1 -424 mpcompiler/mmc/core/mmc_core_tast.ml
+1 -850 mpcompiler/mmc/core/mmc_core_tast.mli
Added mpcompiler/mmc/core/mmc_core_tast_grammar.ml
Properties mpcompiler/mmc/core/mmc_core_tast_grammar.ml
Added mpcompiler/mmc/core/mmc_core_tast_grammar.mli
Properties mpcompiler/mmc/core/mmc_core_tast_grammar.mli
+0 -2 mpcompiler/mmc/core/mmc_core_theory.ml
+5 -23 mpcompiler/mmc/core/mmc_core_type_check.ml
+0 -47 mpcompiler/mmc/core/mmc_core_type_check.mli
Added mpcompiler/mmc/core/mmc_core_type_check_grammar.ml
Properties mpcompiler/mmc/core/mmc_core_type_check_grammar.ml
Added mpcompiler/mmc/core/mmc_core_type_check_grammar.mli
Properties mpcompiler/mmc/core/mmc_core_type_check_grammar.mli
+0 -7 mpcompiler/mmc/core/mmc_core_typeof.ml
+0 -23 mpcompiler/mmc/core/mmc_core_typeof.mli
Added mpcompiler/mmc/core/mmc_core_typeof_grammar.ml
Properties mpcompiler/mmc/core/mmc_core_typeof_grammar.ml
Added mpcompiler/mmc/core/mmc_core_typeof_grammar.mli
Properties mpcompiler/mmc/core/mmc_core_typeof_grammar.mli
+0 -16 mpcompiler/mmc/core/mmc_core_util.ml
+0 -14 mpcompiler/mmc/core/mmc_core_util.mli
Added mpcompiler/mmc/core/mmc_core_util_grammar.ml
Properties mpcompiler/mmc/core/mmc_core_util_grammar.ml
Added mpcompiler/mmc/core/mmc_core_util_grammar.mli
Properties mpcompiler/mmc/core/mmc_core_util_grammar.mli
+11 -11 mpcompiler/mmc/core/mmc_core_value.ml
+1 -1 mpcompiler/mmc/core/mmc_core_value.mli
+5 -0 mpcompiler/mmc/extensions/array/Files
+0 -69 mpcompiler/mmc/extensions/array/mmc_ext_array.ml
+1 -33 mpcompiler/mmc/extensions/array/mmc_ext_array.mli
Added mpcompiler/mmc/extensions/array/mmc_ext_array_grammar.ml
Properties mpcompiler/mmc/extensions/array/mmc_ext_array_grammar.ml
Added mpcompiler/mmc/extensions/array/mmc_ext_array_grammar.mli
Properties mpcompiler/mmc/extensions/array/mmc_ext_array_grammar.mli
+5 -0 mpcompiler/mmc/extensions/bool/Files
+0 -45 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+0 -47 mpcompiler/mmc/extensions/bool/mmc_ext_bool.mli
Added mpcompiler/mmc/extensions/bool/mmc_ext_boolean_grammar.ml
Properties mpcompiler/mmc/extensions/bool/mmc_ext_boolean_grammar.ml
Added mpcompiler/mmc/extensions/bool/mmc_ext_boolean_grammar.mli
Properties mpcompiler/mmc/extensions/bool/mmc_ext_boolean_grammar.mli
+5 -0 mpcompiler/mmc/extensions/int/Files
+0 -13 mpcompiler/mmc/extensions/int/mmc_ext_int.ml
+0 -78 mpcompiler/mmc/extensions/int/mmc_ext_int.mli
Added mpcompiler/mmc/extensions/int/mmc_ext_integer_grammar.ml
Properties mpcompiler/mmc/extensions/int/mmc_ext_integer_grammar.ml
Added mpcompiler/mmc/extensions/int/mmc_ext_integer_grammar.mli
Properties mpcompiler/mmc/extensions/int/mmc_ext_integer_grammar.mli
+0 -1 mpcompiler/mmc/extensions/int/mmc_x86_int.ml
+5 -0 mpcompiler/mmc/extensions/loop/Files
+0 -8 mpcompiler/mmc/extensions/loop/mmc_ext_loop.ml
+0 -3 mpcompiler/mmc/extensions/loop/mmc_ext_loop.mli
Added mpcompiler/mmc/extensions/loop/mmc_ext_loop_grammar.ml
Properties mpcompiler/mmc/extensions/loop/mmc_ext_loop_grammar.ml
Added mpcompiler/mmc/extensions/loop/mmc_ext_loop_grammar.mli
Properties mpcompiler/mmc/extensions/loop/mmc_ext_loop_grammar.mli
+5 -0 mpcompiler/mmc/extensions/operator/Files
Added mpcompiler/mmc/extensions/operator/mmc_ext_arithmetic_grammar.ml
Properties mpcompiler/mmc/extensions/operator/mmc_ext_arithmetic_grammar.ml
Added mpcompiler/mmc/extensions/operator/mmc_ext_arithmetic_grammar.mli
Properties mpcompiler/mmc/extensions/operator/mmc_ext_arithmetic_grammar.mli
+0 -145 mpcompiler/mmc/extensions/operator/mmc_ext_operator.ml
+0 -113 mpcompiler/mmc/extensions/operator/mmc_ext_operator.mli
+5 -0 mpcompiler/mmc/extensions/special/Files
+0 -12 mpcompiler/mmc/extensions/special/mmc_ext_special.ml
+0 -3 mpcompiler/mmc/extensions/special/mmc_ext_special.mli
Added mpcompiler/mmc/extensions/special/mmc_ext_special_grammar.ml
Properties mpcompiler/mmc/extensions/special/mmc_ext_special_grammar.ml
Added mpcompiler/mmc/extensions/special/mmc_ext_special_grammar.mli
Properties mpcompiler/mmc/extensions/special/mmc_ext_special_grammar.mli
+5 -0 mpcompiler/mmc/extensions/string/Files
+0 -7 mpcompiler/mmc/extensions/string/mmc_ext_string.ml
+1 -10 mpcompiler/mmc/extensions/string/mmc_ext_string.mli
Added mpcompiler/mmc/extensions/string/mmc_ext_string_grammar.ml
Properties mpcompiler/mmc/extensions/string/mmc_ext_string_grammar.ml
Added mpcompiler/mmc/extensions/string/mmc_ext_string_grammar.mli
Properties mpcompiler/mmc/extensions/string/mmc_ext_string_grammar.mli
+7 -0 mpcompiler/mmc/extensions/tuple/Files
+1 -21 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+0 -56 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.mli
Added mpcompiler/mmc/extensions/tuple/mmc_ext_tuple_grammar.ml
Properties mpcompiler/mmc/extensions/tuple/mmc_ext_tuple_grammar.ml
Added mpcompiler/mmc/extensions/tuple/mmc_ext_tuple_grammar.mli
Properties mpcompiler/mmc/extensions/tuple/mmc_ext_tuple_grammar.mli
+1 -27 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+0 -31 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.mli
Added mpcompiler/mmc/extensions/tuple/mmc_x86_tuple_grammar.ml
Properties mpcompiler/mmc/extensions/tuple/mmc_x86_tuple_grammar.ml
Added mpcompiler/mmc/extensions/tuple/mmc_x86_tuple_grammar.mli
Properties mpcompiler/mmc/extensions/tuple/mmc_x86_tuple_grammar.mli
+7 -0 mpcompiler/mmc/extensions/tyexists/Files
+0 -35 mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists.ml
+0 -36 mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists.mli
Added mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists_grammar.ml
Properties mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists_grammar.ml
Added mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists_grammar.mli
Properties mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists_grammar.mli
+0 -29 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.ml
+0 -29 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.mli
Added mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists_grammar.ml
Properties mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists_grammar.ml
Added mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists_grammar.mli
Properties mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists_grammar.mli
+2 -0 mpcompiler/mmc/extensions/unit/Files
+0 -11 mpcompiler/mmc/extensions/unit/mmc_ext_unit.ml
+0 -5 mpcompiler/mmc/extensions/unit/mmc_ext_unit.mli
Added mpcompiler/mmc/extensions/unit/mmc_ext_unit_grammar.ml
Properties mpcompiler/mmc/extensions/unit/mmc_ext_unit_grammar.ml
Added mpcompiler/mmc/extensions/unit/mmc_ext_unit_grammar.mli
Properties mpcompiler/mmc/extensions/unit/mmc_ext_unit_grammar.mli
+1 -0 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml
Properties mpcompiler/mmc/main
+59 -7 mpcompiler/mmc/main/OMakefile
+1 -1 mpcompiler/mmc/opt/dead/core/mmc_opt_dead.ml
+0 -1 mpcompiler/mmc/test/OMakefile
Deleted mpcompiler/mmc/test/mmc_grammar.ml
Deleted mpcompiler/mmc/test/mmc_grammar.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-14 20:26:25 -0800 (Mon, 14 Mar 2005)
Revision: 6924
Log message:

      Converted closure conversion to the new tuple form.
      
      This adds a bit more code the closure conversion because we
      have to duplicate some of the code for tuples.  However, closure
      elimination becomes nearly trivial, since it just says that
      closure tuples are real tuples.
      

Changes  Path
+1 -0 mpcompiler/mmc/core/Files
+115 -19 mpcompiler/mmc/core/mmc_core_closure.ml
Added mpcompiler/mmc/core/mmc_core_closure_grammar.ml
Properties mpcompiler/mmc/core/mmc_core_closure_grammar.ml
Added mpcompiler/mmc/core/mmc_core_closure_grammar.mli
Properties mpcompiler/mmc/core/mmc_core_closure_grammar.mli
+2 -2 mpcompiler/mmc/core/mmc_core_type_check_grammar.ml
+17 -18 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+1 -1 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple_grammar.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-14 20:40:56 -0800 (Mon, 14 Mar 2005)
Revision: 6925
Log message:

      Removed the type from tuples.  It was never used and it was annoying.
      

Changes  Path
+27 -34 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+4 -5 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple_grammar.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-14 21:17:50 -0800 (Mon, 14 Mar 2005)
Revision: 6927
Log message:

      This is just the first part of closure elimination, where we
      interpret closure tuples as real tuples.
      
      The next part is existentials.
      

Changes  Path
+14 -23 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+2 -2 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple_grammar.ml
+5 -4 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple_grammar.mli
+23 -174 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml
+0 -2 mpcompiler/mmc/lir/mmc_lir_closure_elim.mli

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-15 02:34:36 -0800 (Tue, 15 Mar 2005)
Revision: 6930
Log message:

      Be more clean on "omake clean"
      

Changes  Path
+4 -0 mpcompiler/mmc/main/OMakefile

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-15 09:14:40 -0800 (Tue, 15 Mar 2005)
Revision: 6931
Log message:

      Added back the code for closure elimination.
      
      Added an "eta" term in Mmc_core_util to get the function parameters
      as an argument list.
      
      Temporarily removed the IsValue check in the type checker until
      Nathan fixes it.  With this disabled, mmc_int_test/test_cps1 now
      passes closure elimination.
      

Changes  Path
+3 -1 mpcompiler/mmc/core/mmc_core_sweep.ml
+2 -0 mpcompiler/mmc/core/mmc_core_type_check.ml
+28 -2 mpcompiler/mmc/core/mmc_core_util.ml
+2 -4 mpcompiler/mmc/core/mmc_core_util.mli
+47 -0 mpcompiler/mmc/core/mmc_core_util_grammar.mli
+10 -0 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+192 -11 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-15 09:37:23 -0800 (Tue, 15 Mar 2005)
Revision: 6932
Log message:

      Preparing for direct-call optimization.
      

Changes  Path
+11 -0 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-15 12:16:27 -0800 (Tue, 15 Mar 2005)
Revision: 6933
Log message:

      Moved Mmc_core_{inline,value} to the opt/ directory, and cleaned them up.
      Note, you should remove the lingering .cm* files after you do a CVS update.
      

Changes  Path
+0 -2 mpcompiler/mmc/core/Files
Deleted mpcompiler/mmc/core/mmc_core_inline.ml
Deleted mpcompiler/mmc/core/mmc_core_inline.mli
Deleted mpcompiler/mmc/core/mmc_core_value.ml
Deleted mpcompiler/mmc/core/mmc_core_value.mli
+1 -0 mpcompiler/mmc/extensions/bool/Files
+0 -13 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
Added mpcompiler/mmc/extensions/bool/mmc_opt_bool.ml
Properties mpcompiler/mmc/extensions/bool/mmc_opt_bool.ml
Added mpcompiler/mmc/extensions/bool/mmc_opt_bool.mli
Properties mpcompiler/mmc/extensions/bool/mmc_opt_bool.mli
+1 -0 mpcompiler/mmc/extensions/int/Files
+1 -10 mpcompiler/mmc/extensions/int/mmc_ext_int.ml
Added mpcompiler/mmc/extensions/int/mmc_opt_int.ml
Properties mpcompiler/mmc/extensions/int/mmc_opt_int.ml
Added mpcompiler/mmc/extensions/int/mmc_opt_int.mli
Properties mpcompiler/mmc/extensions/int/mmc_opt_int.mli
+2 -2 mpcompiler/mmc/main/OMakefile
Properties mpcompiler/mmc/opt
Added mpcompiler/mmc/opt/Files
Properties mpcompiler/mmc/opt/Files
Properties mpcompiler/mmc/opt/base
Added mpcompiler/mmc/opt/base/Files
Properties mpcompiler/mmc/opt/base/Files
Added mpcompiler/mmc/opt/base/mmc_meta_bool.ml
Properties mpcompiler/mmc/opt/base/mmc_meta_bool.ml
Added mpcompiler/mmc/opt/base/mmc_meta_bool.mli
Properties mpcompiler/mmc/opt/base/mmc_meta_bool.mli
Added mpcompiler/mmc/opt/base/mmc_meta_bool_grammar.ml
Properties mpcompiler/mmc/opt/base/mmc_meta_bool_grammar.ml
Added mpcompiler/mmc/opt/base/mmc_meta_bool_grammar.mli
Properties mpcompiler/mmc/opt/base/mmc_meta_bool_grammar.mli
Added mpcompiler/mmc/opt/dead/Files
Properties mpcompiler/mmc/opt/dead/Files
Added mpcompiler/mmc/opt/dead/mmc_opt_dead.ml
Properties mpcompiler/mmc/opt/dead/mmc_opt_dead.ml
Added mpcompiler/mmc/opt/dead/mmc_opt_dead.mli
Properties mpcompiler/mmc/opt/dead/mmc_opt_dead.mli
Properties mpcompiler/mmc/opt/direct
Added mpcompiler/mmc/opt/direct/Files
Properties mpcompiler/mmc/opt/direct/Files
Added mpcompiler/mmc/opt/direct/mmc_opt_direct.ml
Properties mpcompiler/mmc/opt/direct/mmc_opt_direct.ml
Added mpcompiler/mmc/opt/direct/mmc_opt_direct.mli
Properties mpcompiler/mmc/opt/direct/mmc_opt_direct.mli
Properties mpcompiler/mmc/opt/inline
Added mpcompiler/mmc/opt/inline/Files
Properties mpcompiler/mmc/opt/inline/Files
Added mpcompiler/mmc/opt/inline/mmc_opt_inline.ml
Properties mpcompiler/mmc/opt/inline/mmc_opt_inline.ml
Added mpcompiler/mmc/opt/inline/mmc_opt_inline.mli
Properties mpcompiler/mmc/opt/inline/mmc_opt_inline.mli
Added mpcompiler/mmc/opt/inline/mmc_opt_inline_grammar.ml
Properties mpcompiler/mmc/opt/inline/mmc_opt_inline_grammar.ml
Added mpcompiler/mmc/opt/inline/mmc_opt_inline_grammar.mli
Properties mpcompiler/mmc/opt/inline/mmc_opt_inline_grammar.mli
Added mpcompiler/mmc/opt/inline/mmc_opt_value.ml
Properties mpcompiler/mmc/opt/inline/mmc_opt_value.ml
Added mpcompiler/mmc/opt/inline/mmc_opt_value.mli
Properties mpcompiler/mmc/opt/inline/mmc_opt_value.mli
Added mpcompiler/mmc/opt/inline/mmc_opt_value_grammar.ml
Properties mpcompiler/mmc/opt/inline/mmc_opt_value_grammar.ml
Added mpcompiler/mmc/opt/inline/mmc_opt_value_grammar.mli
Properties mpcompiler/mmc/opt/inline/mmc_opt_value_grammar.mli
Added mpcompiler/mmc/opt/mmc_opt_theory.ml
Properties mpcompiler/mmc/opt/mmc_opt_theory.ml
Added mpcompiler/mmc/opt/mmc_opt_theory.mli
Properties mpcompiler/mmc/opt/mmc_opt_theory.mli
+3 -1 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-15 14:12:38 -0800 (Tue, 15 Mar 2005)
Revision: 6934
Log message:

      Added direct-call optimization.  Currently, direct-call optimization
      is just a selective inlining stage, where closure are inlined into all
      places where they are used as functions.  Closure elimination then has
      an optimization rule that handles this optimization.
      
      mmc_int_test/test_cps1 passes.
      

Changes  Path
+1 -1 mpcompiler/mmc/core/mmc_core_closure_grammar.ml
+34 -11 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml
+12 -7 mpcompiler/mmc/opt/base/mmc_meta_bool.ml
+4 -0 mpcompiler/mmc/opt/base/mmc_meta_bool.mli
+13 -4 mpcompiler/mmc/opt/base/mmc_meta_bool_grammar.mli
+1 -1 mpcompiler/mmc/opt/dead/mmc_opt_dead.ml
+3 -0 mpcompiler/mmc/opt/direct/mmc_opt_direct.ml
+32 -19 mpcompiler/mmc/opt/inline/mmc_opt_inline.ml
+15 -0 mpcompiler/mmc/opt/inline/mmc_opt_value.ml
+1 -1 mpcompiler/mmc/opt/inline/mmc_opt_value_grammar.mli
+6 -6 mpcompiler/util/mm_tactic_util.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-15 14:34:23 -0800 (Tue, 15 Mar 2005)
Revision: 6935
Log message:

      Closure conversion needs to put the spread inside the inner lambda.
      mmc_int_test/test_cps2 is complete through closure elimination.
      

Changes  Path
+29 -8 mpcompiler/mmc/core/mmc_core_closure.ml

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2005-03-15 14:35:41 -0800 (Tue, 15 Mar 2005)
Revision: 6936
Log message:

      Fixing a few .cvsignore annoyances
      

Changes  Path
Properties mpcompiler/mmc
Properties mpcompiler/mmc/opt/dead

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-15 16:40:56 -0800 (Tue, 15 Mar 2005)
Revision: 6938
Log message:

      mmc_int_test/test1 passes code generation.
      

Changes  Path
+33 -14 mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.ml
+30 -9 mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.mli
+41 -21 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
+2 -0 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen_grammar.ml
+2 -4 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check.ml
+12 -2 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
+2 -2 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_grammar.mli
+13 -8 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+28 -28 mpcompiler/mmc/test/mmc

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2005-03-15 20:00:15 -0800 (Tue, 15 Mar 2005)
Revision: 6939
Log message:

      Finished the value judgment except for the existential extension.  It doesn't
      use the parser at the moment.  I can fix that tomorrow once I've asked some
      questions.  Everything seems to work for the test cases I've tried, but that's
      no guarantee, of course.  ;^)
      

Changes  Path
+44 -28 mpcompiler/mmc/core/mmc_core_type_check.ml
+6 -2 mpcompiler/mmc/core/mmc_core_type_check_grammar.ml
+4 -3 mpcompiler/mmc/core/mmc_core_type_check_grammar.mli
+2 -2 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+1 -1 mpcompiler/mmc/extensions/int/mmc_ext_int.ml
+1 -1 mpcompiler/mmc/extensions/string/mmc_ext_string.ml
+4 -8 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+1 -1 mpcompiler/mmc/extensions/unit/mmc_ext_unit.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-15 20:09:45 -0800 (Tue, 15 Mar 2005)
Revision: 6940
Log message:

      Updated x86 closure conversion.  I haven't tried it on any big examples,
      I'm still pushing polymorphism through the backend.
      

Changes  Path
+64 -2 mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.ml
+281 -46 mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.mli
+79 -69 mpcompiler/mmc/arch/x86/codegen/mmc_x86_closure.ml
+1 -1 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
+4 -4 mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve.ml
+378 -240 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.ml
+19 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.mli
+4 -7 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep_grammar.ml
+179 -8 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep_grammar.mli
+1 -1 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check.ml
+57 -57 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
+2 -2 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_grammar.mli
+2 -2 mpcompiler/mmc/arch/x86/type/mmc_x86_typeof.ml
+2 -2 mpcompiler/mmc/core/mmc_core_sweep.ml
+31 -30 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+1 -1 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple_grammar.mli
+26 -114 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-15 20:19:57 -0800 (Tue, 15 Mar 2005)
Revision: 6941
Log message:

      mmc_int_test/test1 makes it all the way through the backend.
      

Changes  Path
+6 -0 mpcompiler/mmc/arch/x86/print/mmc_x86_print.ml
+19 -14 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.ml
+19 -14 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_rename.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-15 21:19:50 -0800 (Tue, 15 Mar 2005)
Revision: 6942
Log message:

      mmc_int_test/test_cps1 makes it part way through the backend.
      

Changes  Path
+1 -1 mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.mli
+32 -3 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
+3 -0 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen_grammar.mli
+29 -2 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+10 -0 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple_grammar.ml
+9 -0 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple_grammar.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-16 13:25:57 -0800 (Wed, 16 Mar 2005)
Revision: 6945
Log message:

      This adds the basic framework for lifting lambdas.
      I *think* that, to work properly, codegen needs to
      know the type of items it is expecting...
      

Changes  Path
+13 -2 mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.ml
+10 -5 mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.mli
+3 -2 mpcompiler/mmc/arch/x86/codegen/mmc_x86_closure.ml
+27 -11 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
+4 -4 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen_grammar.mli

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2005-03-16 14:34:30 -0800 (Wed, 16 Mar 2005)
Revision: 6946
Log message:

      Finished the value judgment.  You guys might want to check out the WithUniv and
      WithTySubst terms in mmc_core_type_check_grammar.mli -- I think they might be
      useful in some other contexts as well.
      

Changes  Path
+25 -28 mpcompiler/mmc/core/mmc_core_type_check.ml
+14 -0 mpcompiler/mmc/core/mmc_core_type_check_grammar.mli
+15 -12 mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists.ml
+0 -0 mpcompiler/mmc/test/mmc_int_test.ml

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2005-03-16 14:57:39 -0800 (Wed, 16 Mar 2005)
Revision: 6947
Log message:

      Correcting a problem in value_with_univ_cons.  Unfortunately, this makes it
      slower...  Maybe there's a better way.
      

Changes  Path
+8 -3 mpcompiler/mmc/core/mmc_core_type_check.ml

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2005-03-16 16:13:56 -0800 (Wed, 16 Mar 2005)
Revision: 6951
Log message:

      Verify that the bound in a TyLambda are well-formed.
      

Changes  Path
+1 -0 mpcompiler/mmc/core/mmc_core_type_check.ml

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2005-03-16 16:55:37 -0800 (Wed, 16 Mar 2005)
Revision: 6953
Log message:

      Improved display form for IsValue.  Also added another test.
      

Changes  Path
+0 -0 mpcompiler/mmc/core/mmc_core_type_check.ml
+9 -6 mpcompiler/mmc/core/mmc_core_type_check_grammar.ml
+7 -0 mpcompiler/mmc/test/mmc_int_test.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-16 17:00:24 -0800 (Wed, 16 Mar 2005)
Revision: 6954
Log message:

      Codegen should state the type of the expression for which
      it is generating code.
      

Changes  Path
+33 -28 mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.mli
+99 -74 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
+2 -2 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen_grammar.ml
+23 -12 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen_grammar.mli
+1 -1 mpcompiler/mmc/core/mmc_core_closure.ml
+57 -57 mpcompiler/mmc/extensions/int/mmc_x86_int.ml
+8 -20 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+15 -12 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-16 17:02:51 -0800 (Wed, 16 Mar 2005)
Revision: 6956
Log message:

      Ignore even more stuff.
      

Changes  Path
Properties mpcompiler/mmc/opt/dead

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-17 12:55:03 -0800 (Thu, 17 Mar 2005)
Revision: 6961
Log message:

      Added the ability to use quotations to specify meta_terms.
      
      mmc_int_test/test1 now passes code generation.
      

Changes  Path
+2 -39 metaprl/filter/base/filter_summary.ml
+16 -0 metaprl/filter/filter/term_grammar.ml
+6 -0 metaprl/refiner/refiner/refiner_debug.ml
+1 -1 metaprl/refiner/refiner/refiner_ds.ml
+1 -1 metaprl/refiner/refiner/refiner_std.ml
+5 -0 metaprl/refiner/refsig/term_meta_sig.ml
+54 -0 metaprl/refiner/term_gen/term_meta_gen.ml
+2 -0 metaprl/refiner/term_gen/term_meta_gen.mli
+23 -0 metaprl/support/display/summary.mli
+1 -0 mpcompiler/mmc/arch/x86/base/Files
+11 -1 mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.ml
+27 -15 mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.mli
+26 -3 mpcompiler/mmc/arch/x86/base/mmc_x86_util.ml
+14 -2 mpcompiler/mmc/arch/x86/base/mmc_x86_util.mli
+1 -1 mpcompiler/mmc/arch/x86/codegen/mmc_x86_closure.ml
+79 -29 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
+1 -1 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen_grammar.ml
+2 -0 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen_grammar.mli
+2 -2 mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve.ml
+1 -0 mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve_grammar.mli
+1 -0 mpcompiler/mmc/arch/x86/type/Files
Added mpcompiler/mmc/arch/x86/type/mmc_x86_mterm_grammar.ml
Properties mpcompiler/mmc/arch/x86/type/mmc_x86_mterm_grammar.ml
Added mpcompiler/mmc/arch/x86/type/mmc_x86_mterm_grammar.mli
Properties mpcompiler/mmc/arch/x86/type/mmc_x86_mterm_grammar.mli
+26 -26 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.ml
+7 -7 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep_grammar.ml
+21 -21 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep_grammar.mli
+64 -8 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
+4 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_grammar.ml
+29 -8 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_grammar.mli
+2 -2 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+19 -5 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-17 17:01:49 -0800 (Thu, 17 Mar 2005)
Revision: 6965
Log message:

      Added meta_term grammar to the mmc core.
      Removed the need for the backquote (`)
      before a meta_term in a rule.
      

Changes  Path
+0 -15 metaprl/filter/filter/term_grammar.ml
+3 -0 metaprl/refiner/refiner/refiner_debug.ml
+1 -0 metaprl/refiner/refsig/term_meta_sig.ml
+64 -52 metaprl/refiner/term_gen/term_meta_gen.ml
+0 -0 mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve.ml
+12 -12 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
+1 -0 mpcompiler/mmc/core/Files
+8 -4 mpcompiler/mmc/core/mmc_core_ast_grammar.mli
Added mpcompiler/mmc/core/mmc_core_mterm_grammar.ml
Properties mpcompiler/mmc/core/mmc_core_mterm_grammar.ml
Added mpcompiler/mmc/core/mmc_core_mterm_grammar.mli
Properties mpcompiler/mmc/core/mmc_core_mterm_grammar.mli
+2 -2 mpcompiler/mmc/core/mmc_core_type_check.ml
+2 -2 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+2 -1 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-17 17:02:55 -0800 (Thu, 17 Mar 2005)
Revision: 6966
Log message:

      Forgot to add the grammar for the x86 utilities (like subst).
      

Changes  Path
Added mpcompiler/mmc/arch/x86/base/mmc_x86_util_grammar.ml
Properties mpcompiler/mmc/arch/x86/base/mmc_x86_util_grammar.ml
Added mpcompiler/mmc/arch/x86/base/mmc_x86_util_grammar.mli
Properties mpcompiler/mmc/arch/x86/base/mmc_x86_util_grammar.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-17 20:59:57 -0800 (Thu, 17 Mar 2005)
Revision: 6968
Log message:

      Some updates to CPS.  Preparing to remove polymorphism introduced earlier.
      

Changes  Path
+3 -2 metaprl/filter/base/filter_util.ml
+6 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_typeof_grammar.ml
+6 -1 mpcompiler/mmc/arch/x86/type/mmc_x86_typeof_grammar.mli
+2 -0 mpcompiler/mmc/core/Files
+39 -42 mpcompiler/mmc/core/mmc_core_cps.ml
+0 -11 mpcompiler/mmc/core/mmc_core_cps.mli
Added mpcompiler/mmc/core/mmc_core_cps_grammar.ml
Properties mpcompiler/mmc/core/mmc_core_cps_grammar.ml
Added mpcompiler/mmc/core/mmc_core_cps_grammar.mli
Properties mpcompiler/mmc/core/mmc_core_cps_grammar.mli
Added mpcompiler/mmc/core/mmc_core_cps_private.ml
Properties mpcompiler/mmc/core/mmc_core_cps_private.ml
Added mpcompiler/mmc/core/mmc_core_cps_private.mli
Properties mpcompiler/mmc/core/mmc_core_cps_private.mli
+4 -0 mpcompiler/mmc/core/mmc_core_mterm_grammar.ml
+25 -3 mpcompiler/mmc/core/mmc_core_mterm_grammar.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-17 23:16:31 -0800 (Thu, 17 Mar 2005)
Revision: 6970
Log message:

      Note to self: remember, ML-style values are *never* polymorphic unless
      they are toplevel, except for existentials around closures.
      
      Like, duh.
      
      This solves the problem with non-toplevel Lam terms in the backend.
      I added a fix to CPS to place the quantifiers appropriately in
      non-tailcall applications.  The tailcall version needs to be fixed.
      
      Note also that we will need a top-level let for polymorphic constructors.
      These values should be hoisted, and will prevent merging the toplevel
      let-rec (no big deal).
      
         let f x = x
         let u = ([], f)
         let v = (snd u) 1
         let w = (snd u) "foo"
      

Changes  Path
+0 -2 mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.ml
+0 -3 mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.mli
+0 -13 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
+0 -8 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
+2 -15 mpcompiler/mmc/core/mmc_core_cps.ml
+3 -0 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml
+21 -6 mpcompiler/mmc/opt/inline/mmc_opt_inline.ml
+2 -0 mpcompiler/mmc/opt/inline/mmc_opt_inline.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-18 10:28:02 -0800 (Fri, 18 Mar 2005)
Revision: 6972
Log message:

      mmc_int_test/test_cps1 passes x86 closure conversion.
      

Changes  Path
+2 -2 mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.mli
+23 -23 mpcompiler/mmc/arch/x86/codegen/mmc_x86_closure.ml
+30 -0 mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve.ml
+8 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_mterm_grammar.ml
+29 -3 mpcompiler/mmc/arch/x86/type/mmc_x86_mterm_grammar.mli
+31 -2 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.ml
+3 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
+1 -9 mpcompiler/mmc/base/mmc_base_hoist.ml
+3 -2 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-18 10:59:45 -0800 (Fri, 18 Mar 2005)
Revision: 6973
Log message:

      mmc_int_test/test1 compiles and runs.
      

Changes  Path
+10 -0 mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve.ml
+21 -0 mpcompiler/mmc/arch/x86/print/mmc_x86_print.ml
+6 -0 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.ml
+15 -1 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_rename.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-18 13:32:06 -0800 (Fri, 18 Mar 2005)
Revision: 6974
Log message:

      Removed the double quantifier during closure elimination.
      

Changes  Path
+2 -2 mpcompiler/mmc/core/mmc_core_cps.ml
+2 -2 mpcompiler/mmc/core/mmc_core_type_check.ml
+64 -13 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml
+1 -1 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-18 13:33:10 -0800 (Fri, 18 Mar 2005)
Revision: 6975
Log message:

      Oops, add back direct-call optimization.
      

Changes  Path
+1 -1 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-18 17:48:09 -0800 (Fri, 18 Mar 2005)
Revision: 6976
Log message:

      Some minor performance improvements for parsing.
      

Changes  Path
+5 -6 mpcompiler/mmc/arch/x86/codegen/mmc_x86_closure.ml
+3 -4 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2005-03-18 18:47:34 -0800 (Fri, 18 Mar 2005)
Revision: 6978
Log message:

      Prettified most of mmc_core_type_check.ml.  The remaining ugly rules are ugly
      because they use private terms that don't have support in the parser yet.  At
      some point we'll set them up.
      

Changes  Path
+1 -0 mpcompiler/mmc/core/mmc_core_ast_grammar.mli
+5 -0 mpcompiler/mmc/core/mmc_core_mterm_grammar.mli
+193 -180 mpcompiler/mmc/core/mmc_core_type_check.ml
+15 -2 mpcompiler/mmc/core/mmc_core_type_check_grammar.mli

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2005-03-18 18:49:40 -0800 (Fri, 18 Mar 2005)
Revision: 6979
Log message:

      There's a reduction I added that should probably cause a reduce/reduce conflict,
      but doesn't.  I've marked it with BUG, along with the rule that relies on having
      something like that production working.
      

Changes  Path
+1 -1 mpcompiler/mmc/core/mmc_core_type_check.ml
+1 -1 mpcompiler/mmc/core/mmc_core_type_check_grammar.mli

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2005-03-21 16:21:55 -0800 (Mon, 21 Mar 2005)
Revision: 6991
Log message:

      oops!  I wrote a meta-let instead of a let for the let_intro rule.
      

Changes  Path
+3 -3 mpcompiler/mmc/core/mmc_core_type_check.ml

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-22 10:12:24 -0800 (Tue, 22 Mar 2005)
Revision: 6998
Log message:

      - In type inference, if any free variables are generated, replace them with
        TyTop. This is a HACK, of course, but this is less of a hack then what we
        had before (actually allowing free FO variables in type positions and
        considering them to be "implicitly quantified" types). At some point we need
        to figure out what exactly such free variables mean.
      
        After this change /mmc_core_test/test_prog1 passes the closeure stage (and
        fails in x86codegenC with
           "progress: codegen type(Mmc_x86_codegen!CodegenTypeVar{!ty_p1011})" )
      
      - Since MMC does not have any real I/O yet, updated the x86_runtime to print
        the value returned from the main function instead of just using it as an
        exit code int.
      

Changes  Path
+37 -1 mpcompiler/mmc/arch/x86/runtime/x86_runtime.c
+6 -14 mpcompiler/mmc/core/mmc_core_type_check.ml
+11 -0 mpcompiler/mmc/core/mmc_core_type_infer.ml
+533 -815 mpcompiler/mmc/test/mmc_tests_out.previous

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-22 10:20:54 -0800 (Tue, 22 Mar 2005)
Revision: 6999
Log message:

      Removing mmc_core_test.prla, as it only adds junk to mmc_tests output.
      

Changes  Path
+1 -1 mpcompiler/mmc/test/OMakefile
Deleted mpcompiler/mmc/test/mmc_core_test.prla
+10 -712 mpcompiler/mmc/test/mmc_tests_out.previous

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-22 12:11:26 -0800 (Tue, 22 Mar 2005)
Revision: 7000
Log message:

      Fixed a bug in CPS - TyCPS {TyFun...} only applied TyCPS to the return type,
      but not to parameters type.
      
      I am sure Jason would be verry "happy" to see me use a nice little helper
      operator with a type
      
      declare sequent [TySeqCPS{'arg: ty_sequent{ty_hyp{'a; TyExp}; TyExp; TyExp}}] { 'a  : TyExp >- TyExp } : TySeqCPSBody{'a}
      
      ;-) But in any case it is very cool that the type inference handles this
      correctly.
      

Changes  Path
+8 -8 mpcompiler/mmc/core/mmc_core_cps.ml
+3 -1 mpcompiler/mmc/core/mmc_core_cps_private.mli
+1 -0 mpcompiler/mmc/test/mmc
+7 -21 mpcompiler/mmc/test/mmc_tests_out.previous

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-22 13:12:11 -0800 (Tue, 22 Mar 2005)
Revision: 7001
Log message:

      *Important*: when using xbinder{!v} hack, you do have to faithfully consider
      "v" to be a binding.  In particular, this means that _all_ SO variables may
      need to take the !v as an argument - even when you are not intending to
      substitute anything for it!
      
      Note: the "no-op" substitutions would notmally be dropped, so ther do not cost
      much. On the other hand, an occurs check could be a bit expensive (aspecially
      for a long context), so from the preformance POV it does not hurt to include
      [!v] even in contexts that would not normally contain it.
      

Changes  Path
+16 -3 metaprl/refiner/rewrite/rewrite_build_contractum.ml
+22 -22 mpcompiler/mmc/core/mmc_core_sweep.ml
+1 -1 mpcompiler/mmc/test/OMakefile
+22 -5 mpcompiler/mmc/test/mmc_tests_out.previous

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-22 15:21:08 -0800 (Tue, 22 Mar 2005)
Revision: 7003
Log message:

      Fixed lookahead propagation, and added empty productions.
      The grammars in mmc now parse.  The maximum compile time has increased
      from 0.3 sec to 0.45, but I have a few minor optimizations left.
      

Changes  Path
+42 -40 metaprl/filter/base/filter_exn.ml
+1 -1 metaprl-branches/fast_parser/filter/base/filter_magic.ml
+2 -0 mpcompiler/mmc/test/OMakefile
Added mpcompiler/mmc/test/grammar_test1.mly
Properties mpcompiler/mmc/test/grammar_test1.mly
Added mpcompiler/mmc/test/grammar_test2.mly
Properties mpcompiler/mmc/test/grammar_test2.mly
Added mpcompiler/mmc/test/mmc_grammar_test1.ml
Properties mpcompiler/mmc/test/mmc_grammar_test1.ml
Added mpcompiler/mmc/test/mmc_grammar_test1.mli
Properties mpcompiler/mmc/test/mmc_grammar_test1.mli
Added mpcompiler/mmc/test/mmc_grammar_test2.ml
Properties mpcompiler/mmc/test/mmc_grammar_test2.ml
Added mpcompiler/mmc/test/mmc_grammar_test2.mli
Properties mpcompiler/mmc/test/mmc_grammar_test2.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-22 15:23:04 -0800 (Tue, 22 Mar 2005)
Revision: 7004
Log message:

      Ignore some more files.
      

Changes  Path
Properties mpcompiler/mmc/test

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-22 17:09:22 -0800 (Tue, 22 Mar 2005)
Revision: 7005
Log message:

      Added couple of extra IsValue rules - for AddrOfFun and AtomTyApply.
      

Changes  Path
+9 -0 mpcompiler/mmc/core/mmc_core_type_check.ml
+4 -84 mpcompiler/mmc/test/mmc_tests_out.previous

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-22 17:45:28 -0800 (Tue, 22 Mar 2005)
Revision: 7006
Log message:

      The type checking rule for x86main for some reason required its argument to be
      in "all (). all (). ..." while in fact it always was a member of just "all ()
      ..."; fixed.
      

Changes  Path
+1 -1 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check.ml
+115 -31 mpcompiler/mmc/test/mmc_tests_out.previous

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-22 18:32:02 -0800 (Tue, 22 Mar 2005)
Revision: 7007
Log message:

      Modified the mmc script and tests/OMakefile so that
      - it is possible to run the mmc tests in parallel
      - it is possible to specify assembly output file other than editor/ml/asm.s
      

Changes  Path
+2 -2 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+6 -9 mpcompiler/mmc/extensions/int/mmc_ext_int.ml
+5 -5 mpcompiler/mmc/main/OMakefile
+12 -3 mpcompiler/mmc/test/OMakefile
+11 -8 mpcompiler/mmc/test/mmc

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-22 19:31:17 -0800 (Tue, 22 Mar 2005)
Revision: 7008
Log message:

      This was pretty hard one to find out!
      
      Turned out that we had two different TailCPS operators - one was defined in
      mmc_core_cps.ml and one was declared in mmc_core_cps_grammar.mli!
      
      I rolled the CPS grammars from separate
      mmc_core_cps_grammar/mmc_core_cps_private back into single mmc_core_cps
      module.
      

Changes  Path
+0 -2 mpcompiler/mmc/core/Files
+56 -1 mpcompiler/mmc/core/mmc_core_cps.ml
+33 -0 mpcompiler/mmc/core/mmc_core_cps.mli
Deleted mpcompiler/mmc/core/mmc_core_cps_grammar.ml
Deleted mpcompiler/mmc/core/mmc_core_cps_grammar.mli
Deleted mpcompiler/mmc/core/mmc_core_cps_private.ml
Deleted mpcompiler/mmc/core/mmc_core_cps_private.mli
Properties mpcompiler/mmc/test
+136 -37 mpcompiler/mmc/test/mmc_tests_out.previous
+3 -3 mpcompiler/util/mm_tactic_util.ml

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-22 22:05:48 -0800 (Tue, 22 Mar 2005)
Revision: 7010
Log message:

      Missing dependency
      

Changes  Path
+1 -1 mpcompiler/mmc/test/OMakefile

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-23 09:41:04 -0800 (Wed, 23 Mar 2005)
Revision: 7012
Log message:

      Added an "XXX BUG" - a number of sweep-related rules are only semanticly valid
      in one direction.
      

Changes  Path
+1 -0 mpcompiler/mmc/core/mmc_core_sweep.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-23 10:03:22 -0800 (Wed, 23 Mar 2005)
Revision: 7014
Log message:

      Don't need to include the *_grammar file.
      

Changes  Path
+0 -1 mpcompiler/mmc/core/mmc_core_cps.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-23 11:52:58 -0800 (Wed, 23 Mar 2005)
Revision: 7015
Log message:

      Merged the _grammar files back into their original places.
      

Changes  Path
+3 -19 mpcompiler/mmc/OMakefile
+1 -6 mpcompiler/mmc/arch/x86/base/Files
+310 -1 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+1561 -1 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
Deleted mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.ml
Deleted mpcompiler/mmc/arch/x86/base/mmc_x86_asm_grammar.mli
+17 -7 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.ml
+21 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.mli
Deleted mpcompiler/mmc/arch/x86/base/mmc_x86_frame_grammar.ml
Deleted mpcompiler/mmc/arch/x86/base/mmc_x86_frame_grammar.mli
+14 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_util.mli
Deleted mpcompiler/mmc/arch/x86/base/mmc_x86_util_grammar.ml
Deleted mpcompiler/mmc/arch/x86/base/mmc_x86_util_grammar.mli
+1 -5 mpcompiler/mmc/arch/x86/codegen/Files
+4 -0 mpcompiler/mmc/arch/x86/codegen/mmc_x86_closure.ml
+8 -0 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
+50 -0 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.mli
Deleted mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen_grammar.ml
Deleted mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen_grammar.mli
+10 -0 mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve.ml
+41 -0 mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve.mli
Deleted mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve_grammar.ml
Deleted mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve_grammar.mli
+2 -7 mpcompiler/mmc/arch/x86/type/Files
Added mpcompiler/mmc/arch/x86/type/mmc_x86_mterm.ml
Properties mpcompiler/mmc/arch/x86/type/mmc_x86_mterm.ml
Added mpcompiler/mmc/arch/x86/type/mmc_x86_mterm.mli
Properties mpcompiler/mmc/arch/x86/type/mmc_x86_mterm.mli
Deleted mpcompiler/mmc/arch/x86/type/mmc_x86_mterm_grammar.ml
Deleted mpcompiler/mmc/arch/x86/type/mmc_x86_mterm_grammar.mli
+60 -4 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.ml
+301 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.mli
Deleted mpcompiler/mmc/arch/x86/type/mmc_x86_sweep_grammar.ml
Deleted mpcompiler/mmc/arch/x86/type/mmc_x86_sweep_grammar.mli
+12 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
+76 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.mli
Deleted mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_grammar.ml
Deleted mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_grammar.mli
+9 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_typeof.ml
+38 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_typeof.mli
Deleted mpcompiler/mmc/arch/x86/type/mmc_x86_typeof_grammar.ml
Deleted mpcompiler/mmc/arch/x86/type/mmc_x86_typeof_grammar.mli
+1 -11 mpcompiler/mmc/core/Files
+57 -1 mpcompiler/mmc/core/mmc_core_ast.ml
+323 -1 mpcompiler/mmc/core/mmc_core_ast.mli
Deleted mpcompiler/mmc/core/mmc_core_ast_grammar.ml
Deleted mpcompiler/mmc/core/mmc_core_ast_grammar.mli
+26 -0 mpcompiler/mmc/core/mmc_core_closure.ml
+27 -0 mpcompiler/mmc/core/mmc_core_closure.mli
Deleted mpcompiler/mmc/core/mmc_core_closure_grammar.ml
Deleted mpcompiler/mmc/core/mmc_core_closure_grammar.mli
+1 -1 mpcompiler/mmc/core/mmc_core_cps.ml
+10 -0 mpcompiler/mmc/core/mmc_core_hoist.mli
Deleted mpcompiler/mmc/core/mmc_core_hoist_grammar.ml
Deleted mpcompiler/mmc/core/mmc_core_hoist_grammar.mli
Added mpcompiler/mmc/core/mmc_core_mterm.ml
Properties mpcompiler/mmc/core/mmc_core_mterm.ml
Added mpcompiler/mmc/core/mmc_core_mterm.mli
Properties mpcompiler/mmc/core/mmc_core_mterm.mli
Deleted mpcompiler/mmc/core/mmc_core_mterm_grammar.ml
Deleted mpcompiler/mmc/core/mmc_core_mterm_grammar.mli
+51 -0 mpcompiler/mmc/core/mmc_core_sweep.ml
+269 -0 mpcompiler/mmc/core/mmc_core_sweep.mli
Deleted mpcompiler/mmc/core/mmc_core_sweep_grammar.ml
Deleted mpcompiler/mmc/core/mmc_core_sweep_grammar.mli
+424 -1 mpcompiler/mmc/core/mmc_core_tast.ml
+856 -1 mpcompiler/mmc/core/mmc_core_tast.mli
Deleted mpcompiler/mmc/core/mmc_core_tast_grammar.ml
Deleted mpcompiler/mmc/core/mmc_core_tast_grammar.mli
+23 -0 mpcompiler/mmc/core/mmc_core_type_check.ml
+71 -0 mpcompiler/mmc/core/mmc_core_type_check.mli
Deleted mpcompiler/mmc/core/mmc_core_type_check_grammar.ml
Deleted mpcompiler/mmc/core/mmc_core_type_check_grammar.mli
+7 -0 mpcompiler/mmc/core/mmc_core_typeof.ml
+22 -0 mpcompiler/mmc/core/mmc_core_typeof.mli
Deleted mpcompiler/mmc/core/mmc_core_typeof_grammar.ml
Deleted mpcompiler/mmc/core/mmc_core_typeof_grammar.mli
+65 -0 mpcompiler/mmc/core/mmc_core_util.mli
Deleted mpcompiler/mmc/core/mmc_core_util_grammar.ml
Deleted mpcompiler/mmc/core/mmc_core_util_grammar.mli
+0 -5 mpcompiler/mmc/extensions/array/Files
+17 -0 mpcompiler/mmc/extensions/array/mmc_ext_array.ml
+36 -0 mpcompiler/mmc/extensions/array/mmc_ext_array.mli
Deleted mpcompiler/mmc/extensions/array/mmc_ext_array_grammar.ml
Deleted mpcompiler/mmc/extensions/array/mmc_ext_array_grammar.mli
+0 -5 mpcompiler/mmc/extensions/bool/Files
+20 -0 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+50 -0 mpcompiler/mmc/extensions/bool/mmc_ext_bool.mli
Deleted mpcompiler/mmc/extensions/bool/mmc_ext_boolean_grammar.ml
Deleted mpcompiler/mmc/extensions/bool/mmc_ext_boolean_grammar.mli
+0 -5 mpcompiler/mmc/extensions/int/Files
+14 -0 mpcompiler/mmc/extensions/int/mmc_ext_int.ml
+77 -0 mpcompiler/mmc/extensions/int/mmc_ext_int.mli
Deleted mpcompiler/mmc/extensions/int/mmc_ext_integer_grammar.ml
Deleted mpcompiler/mmc/extensions/int/mmc_ext_integer_grammar.mli
+1 -0 mpcompiler/mmc/extensions/int/mmc_x86_int.ml
+0 -5 mpcompiler/mmc/extensions/loop/Files
+8 -0 mpcompiler/mmc/extensions/loop/mmc_ext_loop.ml
+3 -0 mpcompiler/mmc/extensions/loop/mmc_ext_loop.mli
Deleted mpcompiler/mmc/extensions/loop/mmc_ext_loop_grammar.ml
Deleted mpcompiler/mmc/extensions/loop/mmc_ext_loop_grammar.mli
+0 -5 mpcompiler/mmc/extensions/operator/Files
Deleted mpcompiler/mmc/extensions/operator/mmc_ext_arithmetic_grammar.ml
Deleted mpcompiler/mmc/extensions/operator/mmc_ext_arithmetic_grammar.mli
+102 -0 mpcompiler/mmc/extensions/operator/mmc_ext_operator.ml
+112 -0 mpcompiler/mmc/extensions/operator/mmc_ext_operator.mli
+7 -0 mpcompiler/mmc/extensions/special/mmc_ext_special.ml
+3 -0 mpcompiler/mmc/extensions/special/mmc_ext_special.mli
Deleted mpcompiler/mmc/extensions/special/mmc_ext_special_grammar.ml
Deleted mpcompiler/mmc/extensions/special/mmc_ext_special_grammar.mli
+0 -5 mpcompiler/mmc/extensions/string/Files
+8 -0 mpcompiler/mmc/extensions/string/mmc_ext_string.ml
+6 -0 mpcompiler/mmc/extensions/string/mmc_ext_string.mli
Deleted mpcompiler/mmc/extensions/string/mmc_ext_string_grammar.ml
Deleted mpcompiler/mmc/extensions/string/mmc_ext_string_grammar.mli
+0 -7 mpcompiler/mmc/extensions/tuple/Files
+17 -0 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+58 -0 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.mli
Deleted mpcompiler/mmc/extensions/tuple/mmc_ext_tuple_grammar.ml
Deleted mpcompiler/mmc/extensions/tuple/mmc_ext_tuple_grammar.mli
+29 -0 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+38 -0 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.mli
Deleted mpcompiler/mmc/extensions/tuple/mmc_x86_tuple_grammar.ml
Deleted mpcompiler/mmc/extensions/tuple/mmc_x86_tuple_grammar.mli
+0 -7 mpcompiler/mmc/extensions/tyexists/Files
+36 -0 mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists.ml
+39 -0 mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists.mli
Deleted mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists_grammar.ml
Deleted mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists_grammar.mli
+30 -0 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.ml
+28 -0 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.mli
Deleted mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists_grammar.ml
Deleted mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists_grammar.mli
+0 -2 mpcompiler/mmc/extensions/unit/Files
+9 -0 mpcompiler/mmc/extensions/unit/mmc_ext_unit.ml
+4 -0 mpcompiler/mmc/extensions/unit/mmc_ext_unit.mli
Deleted mpcompiler/mmc/extensions/unit/mmc_ext_unit_grammar.ml
Deleted mpcompiler/mmc/extensions/unit/mmc_ext_unit_grammar.mli
+4 -0 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml
+2 -53 mpcompiler/mmc/main/OMakefile
+0 -2 mpcompiler/mmc/opt/base/Files
+13 -0 mpcompiler/mmc/opt/base/mmc_meta_bool.ml
+58 -0 mpcompiler/mmc/opt/base/mmc_meta_bool.mli
Deleted mpcompiler/mmc/opt/base/mmc_meta_bool_grammar.ml
Deleted mpcompiler/mmc/opt/base/mmc_meta_bool_grammar.mli
+0 -3 mpcompiler/mmc/opt/inline/Files
+1 -0 mpcompiler/mmc/opt/inline/mmc_opt_inline.ml
+23 -0 mpcompiler/mmc/opt/inline/mmc_opt_inline.mli
Deleted mpcompiler/mmc/opt/inline/mmc_opt_inline_grammar.ml
Deleted mpcompiler/mmc/opt/inline/mmc_opt_inline_grammar.mli
+7 -0 mpcompiler/mmc/opt/inline/mmc_opt_value.ml
+26 -0 mpcompiler/mmc/opt/inline/mmc_opt_value.mli
Deleted mpcompiler/mmc/opt/inline/mmc_opt_value_grammar.ml
Deleted mpcompiler/mmc/opt/inline/mmc_opt_value_grammar.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-23 12:11:56 -0800 (Wed, 23 Mar 2005)
Revision: 7016
Log message:

      Added some comments to CPS.
      

Changes  Path
+20 -0 mpcompiler/mmc/core/mmc_core_cps.ml
+6 -0 mpcompiler/mmc/core/mmc_core_cps.mli

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-23 12:26:45 -0800 (Wed, 23 Mar 2005)
Revision: 7017
Log message:

      Before I change anything, I want to commit the current state of things.
      Curiusly, Jason's latest changes got rid of
      "x86codegenC progress: codegen type(Mmc_x86_codegen!CodegenTypeVar{!ty_y1012})"
      errors, replacing them with typechecking errors after codegen...
      

Changes  Path
+595 -22 mpcompiler/mmc/test/mmc_tests_out.previous

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-23 12:51:54 -0800 (Wed, 23 Mar 2005)
Revision: 7018
Log message:

      No-op: moved the "multi-let" forms into the sweep module.
      

Changes  Path
+43 -0 mpcompiler/mmc/core/mmc_core_sweep.ml
+127 -0 mpcompiler/mmc/core/mmc_core_sweep.mli
+0 -91 mpcompiler/mmc/core/mmc_core_tast.ml
+0 -124 mpcompiler/mmc/core/mmc_core_tast.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-23 13:46:38 -0800 (Wed, 23 Mar 2005)
Revision: 7019
Log message:

      Minor changes in x86 closure conversion.
      
      mmc_int_test/test_cps1 now compiles and works.
      mmc_int_test/test_cps2 compiles, but seg-faults...
      

Changes  Path
+2 -2 mpcompiler/mmc/arch/x86/codegen/mmc_x86_closure.ml
+4 -5 mpcompiler/mmc/arch/x86/codegen/mmc_x86_reserve.ml
+5 -0 mpcompiler/mmc/base/mmc_base_hoist.ml
+3 -0 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-23 18:46:51 -0800 (Wed, 23 Mar 2005)
Revision: 7022
Log message:

      mmc_int_test/test_cps2 runs.  It never terminates, but that is expected,
      and it shows the garbage collector works.
      

Changes  Path
+15 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.ml
+2 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.mli
+23 -6 mpcompiler/mmc/arch/x86/print/mmc_x86_print.ml
+2 -1 mpcompiler/mmc/arch/x86/runtime/OMakefile
+29 -28 mpcompiler/mmc/arch/x86/runtime/x86_runtime.c

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-23 21:58:46 -0800 (Wed, 23 Mar 2005)
Revision: 7023
Log message:

      Finished an exersise in making the type for the sweep operator more precise.
      (The bulk of it was pretty simple, but getting the details right ended up
      somewhat tricky).
      
      Couple of hightlights:
      
      - The Mmc_core_sweep.sweep_add_start rewrite now typechecks without any bogus
      "helper" argument (which was the initial motivation for this change).
      
      - I've hacked "proper" polymorphism for the sweeper as well. For example,
        the "sweeping is always legal" in Mmc_lir_closure_elim is now stated simply
        as:
      
             prim_rw sweep_exp {| sweep |} :
                 <:tast< sweep#elim <env> -> poly e >>
                 <-->
                 <:tast< sweepdn#elim <env> -> poly e >>
      
        instead of separate rewrites for "exp e" and "type e".
      

Changes  Path
+4 -0 mpcompiler/mmc/core/mmc_core_closure.ml
+31 -37 mpcompiler/mmc/core/mmc_core_sweep.ml
+77 -27 mpcompiler/mmc/core/mmc_core_sweep.mli
+0 -7 mpcompiler/mmc/core/mmc_core_tast.ml
+10 -9 mpcompiler/mmc/core/mmc_core_tast.mli
+3 -3 mpcompiler/mmc/extensions/operator/mmc_ext_operator.mli
+2 -6 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-24 03:33:44 -0800 (Thu, 24 Mar 2005)
Revision: 7025
Log message:

      The sweep_add_let_*_1 rewrites no longer need a "type-enforcing" argument.
      

Changes  Path
+13 -22 mpcompiler/mmc/core/mmc_core_sweep.ml

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-24 05:44:00 -0800 (Thu, 24 Mar 2005)
Revision: 7027
Log message:

      A number of changes to the closure/sweeper:
      
      1) The "let type" now has the form
      let type <ty_params_c> as <bound_ty_params_c> : <singleton_ty_params_c> = <ty_args_c> in rest
      where the new "<bound_ty_params_c> :" is the ty_args{| |} of the variables
      bound by ty_params_c.
      
      2) I attempted to use the <bound_ty_params_c> in the closure (as we've
      discussed in the "Problems with close_letrec_phase1" thread). Surprisingly, it
      didn't affect any test results. I still puzzled by this.
      
      3) When closing for variable v:ty, one needs to close for the free variables
      of ty as well!
      
      4) Optimizations:
         - when looking for variable indeces, scan the hyps _once_, build a table
           and use the table for lookup.
         - first create "let exp" without any "let type" in the picture, then create
           the "let type".
      
      Jason, please take a look. If you think I got it right, then you'd probably
      want to replicate the changes to the x86.
      

Changes  Path
+51 -88 mpcompiler/mmc/core/mmc_core_closure.ml
+61 -40 mpcompiler/mmc/core/mmc_core_sweep.ml
+22 -17 mpcompiler/mmc/core/mmc_core_sweep.mli
+19 -17 mpcompiler/mmc/core/mmc_core_typeof.ml
+13 -13 mpcompiler/mmc/test/mmc_tests_out.previous

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-24 06:19:01 -0800 (Thu, 24 Mar 2005)
Revision: 7028
Log message:

      More consistent usage of the check_stuckC.
      

Changes  Path
+9 -18 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
+3 -14 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.ml
+3 -15 mpcompiler/mmc/core/mmc_core_sweep.ml
+310 -499 mpcompiler/mmc/test/mmc_tests_out.previous

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-24 07:02:14 -0800 (Thu, 24 Mar 2005)
Revision: 7029
Log message:

      Fixed codegen of TyLambda.
      

Changes  Path
+15 -8 mpcompiler/mmc/arch/x86/codegen/mmc_x86_codegen.ml
+492 -367 mpcompiler/mmc/test/mmc_tests_out.previous

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-24 07:08:46 -0800 (Thu, 24 Mar 2005)
Revision: 7030
Log message:

      For now - allow x86main to return arbitrary values, not just ints.
      

Changes  Path
+6 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check.ml
+91 -28 mpcompiler/mmc/test/mmc_tests_out.previous

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-24 07:26:14 -0800 (Thu, 24 Mar 2005)
Revision: 7031
Log message:

      Added sweeper rewrites for "sweepdn ... inst reserve ...".
      
      3 tests now run correctly:
      - /mmc/mmc_int_test/test1
      - /mmc/mmc_int_test/test2
      - /mmc/mmc_int_test/test_cps1
      
      1 test runs, but segfaults:
      - /mmc_int_test/test_cps2
      

Changes  Path
+16 -6 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.ml
+278 -238 mpcompiler/mmc/test/mmc_tests_out.previous

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-24 07:44:28 -0800 (Thu, 24 Mar 2005)
Revision: 7032
Log message:

      The Mmc_x86_rename was creating loops in the rename table, which caused the
      lookup to run out of stack and core dump. I've added a HACk to prevent loops
      and now two more programs run (and coredump, but this is still better than
      crashing MetaPRL):
      - /mmc_core_test/test_prog1
      - /mmc_core_test/test_prog2
      

Changes  Path
+10 -1 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_rename.ml
+377 -2 mpcompiler/mmc/test/mmc_tests_out.previous

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-24 08:47:36 -0800 (Thu, 24 Mar 2005)
Revision: 7033
Log message:

      Fixing a nasty bug in Term_ds - substitution for "v" in
            sequent{...; v: t[v]; ... >- ...}
      left t[v] unchnaged!
      
      This fixes the misterious closeT bug...
      

Changes  Path
+1 -1 metaprl/refiner/term_ds/term_base_ds.ml
+6 -13 mpcompiler/mmc/core/mmc_core_sweep.ml
+116 -18 mpcompiler/mmc/test/mmc_tests_out.previous

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-24 09:06:41 -0800 (Thu, 24 Mar 2005)
Revision: 7034
Log message:

      Added sweeper rewrites to the boolean extension.
      

Changes  Path
+24 -0 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+4 -0 mpcompiler/mmc/extensions/bool/mmc_ext_bool.mli
+78 -130 mpcompiler/mmc/test/mmc_tests_out.previous

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-24 09:20:10 -0800 (Thu, 24 Mar 2005)
Revision: 7035
Log message:

      Implemented sweep and code generation for the Booleans.
      mmc_int_test/test_fact1 compiles and runs, but it
      produces the square of the factorial.  Interesting.
      
      I actually started this commit last night, but it aborted
      after I went to sleep, because of the white-space issue,
      and then I think Aleksey committed similar work:(
      

Changes  Path
+4 -3 metaprl/filter/base/filter_grammar.ml
+1 -0 mpcompiler/mmc/arch/x86/base/Files
+11 -11 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+66 -53 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
Added mpcompiler/mmc/arch/x86/base/mmc_x86_cc.ml
Properties mpcompiler/mmc/arch/x86/base/mmc_x86_cc.ml
Added mpcompiler/mmc/arch/x86/base/mmc_x86_cc.mli
Properties mpcompiler/mmc/arch/x86/base/mmc_x86_cc.mli
+3 -3 mpcompiler/mmc/arch/x86/print/mmc_x86_print.ml
+6 -6 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.ml
+24 -12 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_convention.ml
+3 -3 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_rename.ml
+12 -11 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_spill.ml
+28 -0 mpcompiler/mmc/arch/x86/runtime/x86_glue.s
+19 -17 mpcompiler/mmc/arch/x86/runtime/x86_runtime.c
+2 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_mterm.mli
+37 -15 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.ml
+32 -6 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
+8 -2 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.mli
+9 -0 mpcompiler/mmc/core/mmc_core_typeof.ml
+1 -0 mpcompiler/mmc/extensions/bool/Files
+20 -15 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+5 -5 mpcompiler/mmc/extensions/bool/mmc_ext_bool.mli
Added mpcompiler/mmc/extensions/bool/mmc_x86_bool.ml
Properties mpcompiler/mmc/extensions/bool/mmc_x86_bool.ml
Added mpcompiler/mmc/extensions/bool/mmc_x86_bool.mli
Properties mpcompiler/mmc/extensions/bool/mmc_x86_bool.mli
+9 -9 mpcompiler/mmc/extensions/int/mmc_x86_int.ml
+5 -5 mpcompiler/mmc/test/mmc_int_test.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-24 09:41:24 -0800 (Thu, 24 Mar 2005)
Revision: 7036
Log message:

      test_fact1 now produces the correct answer.
      

Changes  Path
+1 -1 mpcompiler/mmc/extensions/bool/mmc_x86_bool.ml
+1 -1 mpcompiler/mmc/extensions/int/mmc_x86_int.ml
+1 -1 mpcompiler/mmc/test/mmc_int_test.ml

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-24 09:45:22 -0800 (Thu, 24 Mar 2005)
Revision: 7037
Log message:

      Updating tests state after Jason's commit.
      

Changes  Path
+182 -73 mpcompiler/mmc/test/mmc_tests_out.previous

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-24 11:38:58 -0800 (Thu, 24 Mar 2005)
Revision: 7038
Log message:

      Mmc_ext_integer duplicated the sweep rules in Mmc_ext_arithmetic.
      

Changes  Path
+19 -2 metaprl/filter/filter/filter_parse.ml
+7 -1 metaprl/refiner/rewrite/rewrite_match_redex.ml
+61 -53 mpcompiler/mmc/core/mmc_core_cps.ml
+1 -1 mpcompiler/mmc/core/mmc_core_cps.mli
+38 -25 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+20 -37 mpcompiler/mmc/extensions/int/mmc_ext_int.ml
+51 -39 mpcompiler/mmc/extensions/operator/mmc_ext_operator.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-24 12:35:37 -0800 (Thu, 24 Mar 2005)
Revision: 7039
Log message:

      Prettefied CPS except for Aleksey's funky term.
      

Changes  Path
+122 -74 mpcompiler/mmc/core/mmc_core_cps.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-24 12:48:14 -0800 (Thu, 24 Mar 2005)
Revision: 7040
Log message:

      Forgot to prettify the rules.
      

Changes  Path
+1 -1 mpcompiler/mmc/base/mmc_base_grammar.mli
+9 -7 mpcompiler/mmc/core/mmc_core_ast.mli
+9 -11 mpcompiler/mmc/core/mmc_core_cps.ml
+4 -0 mpcompiler/mmc/core/mmc_core_mterm.mli
+7 -3 mpcompiler/mmc/core/mmc_core_type_check.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-24 13:13:04 -0800 (Thu, 24 Mar 2005)
Revision: 7041
Log message:

      Eta-expand the continuations in CPS conversion of conditionals.
      

Changes  Path
+19 -18 mpcompiler/mmc/core/mmc_core_cps.ml
+9 -7 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-24 16:41:34 -0800 (Thu, 24 Mar 2005)
Revision: 7042
Log message:

      Returning TailCPS to ugly form.
      

Changes  Path
+33 -37 mpcompiler/mmc/core/mmc_core_cps.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-24 18:53:55 -0800 (Thu, 24 Mar 2005)
Revision: 7043
Log message:

      Add explicit lets for type applications introduced by CPS conversion.
      At the same time, be more aggresive about inlining in direct-call
      optimization, so these type applications can be inlined.
      
      mmc_int_test/test_fact2 now works.
      
      mmc_int_test/test_fact3 fails, because (finally) we have to spill,
      and the spiller hasn't been tested.
      

Changes  Path
+10 -8 mpcompiler/mmc/core/mmc_core_cps.ml
+12 -8 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+3 -2 mpcompiler/mmc/opt/direct/mmc_opt_direct.ml
+18 -0 mpcompiler/mmc/opt/inline/mmc_opt_inline.ml
+6 -0 mpcompiler/mmc/opt/inline/mmc_opt_inline.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-24 20:57:15 -0800 (Thu, 24 Mar 2005)
Revision: 7045
Log message:

      First steps on spilling.
      

Changes  Path
+26 -23 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_regalloc.ml
+126 -40 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_spill.ml
+0 -1 mpcompiler/mmc/base/mmc_base_grammar.mli
+1 -1 mpcompiler/mmc/core/mmc_core_ast.mli
+7 -4 mpcompiler/mmc/core/mmc_core_cps.ml
+5 -0 mpcompiler/mmc/opt/inline/mmc_opt_inline.ml
+1 -0 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-25 13:08:48 -0800 (Fri, 25 Mar 2005)
Revision: 7046
Log message:

      Normal spilling is pretty much working, although I have to figure out
      a type error after register allocation.  I need to head in for Cristian's
      journal club.
      
      This does not include spilling of parameters, just intra-procedural
      spilling.
      

Changes  Path
+17 -6 metaprl/refiner/term_ds/term_subst_ds.ml
+5 -9 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+43 -17 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+0 -10 mpcompiler/mmc/arch/x86/base/mmc_x86_util.ml
+0 -2 mpcompiler/mmc/arch/x86/base/mmc_x86_util.mli
+23 -10 mpcompiler/mmc/arch/x86/print/mmc_x86_print.ml
+4 -0 mpcompiler/mmc/arch/x86/print/mmc_x86_print.mli
+83 -65 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.ml
+32 -32 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_regalloc.ml
+1 -1 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_regalloc.mli
+30 -41 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_rename.ml
+103 -89 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_spill.ml
+46 -11 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.ml
+16 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
+5 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.mli
+11 -15 mpcompiler/mmc/arch/x86/type/mmc_x86_typeof.ml
+25 -12 mpcompiler/mmc/base/mmc_base_standardize.ml
+14 -3 mpcompiler/mmc/core/mmc_core_sweep.ml
+12 -0 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+6 -2 mpcompiler/mmc/test/mmc

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-25 18:00:35 -0800 (Fri, 25 Mar 2005)
Revision: 7047
Log message:

      - Updated the mmc script to accomodate the case of mailformed assembly
        rejected by GCC (the current version of MMC creates invalid registers).
      
      - Added mcc_spill_test tests to the tests list.
      
      - Updated the current mmc_tests_out.previous to match the current state of
        affairs.
      

Changes  Path
+3 -0 mpcompiler/mmc/test/OMakefile
+11 -5 mpcompiler/mmc/test/mmc
+756 -1145 mpcompiler/mmc/test/mmc_tests_out.previous

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-25 18:17:22 -0800 (Fri, 25 Mar 2005)
Revision: 7048
Log message:

      Added full fallback capability to the MMC table-based rewriting.
      

Changes  Path
+15 -15 mpcompiler/util/mm_tactic_util.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-26 11:21:55 -0800 (Sat, 26 Mar 2005)
Revision: 7049
Log message:

      Converted to resource-based progress check.
      

Changes  Path
+3 -14 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.ml
+6 -14 mpcompiler/mmc/core/mmc_core_sweep.ml
+6 -0 mpcompiler/util/mm_tactic_util.ml
+1 -0 mpcompiler/util/mm_tactic_util.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-26 11:47:42 -0800 (Sat, 26 Mar 2005)
Revision: 7050
Log message:

      Fixed a typo that was causing the type error after spilling.
      

Changes  Path
+1 -1 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
+20 -20 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-26 15:49:54 -0800 (Sat, 26 Mar 2005)
Revision: 7052
Log message:

      
      
      In Filter_patt, interpret the variable "_" as representing
      a wildcard pattern.
      
      Starting work on spill assignment.
      

Changes  Path
+29 -16 metaprl/filter/filter/filter_patt.ml
+2 -1 mpcompiler/mmc/arch/ra/Files
Added mpcompiler/mmc/arch/ra/mmc_ra_spill.ml
Properties mpcompiler/mmc/arch/ra/mmc_ra_spill.ml
Added mpcompiler/mmc/arch/ra/mmc_ra_spill.mli
Properties mpcompiler/mmc/arch/ra/mmc_ra_spill.mli
+5 -1 mpcompiler/mmc/arch/ra/mmc_ra_state.ml
+5 -1 mpcompiler/mmc/arch/ra/mmc_ra_state.mli
+15 -0 mpcompiler/mmc/arch/ra/mmc_ra_type.mlz
+33 -14 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-26 17:09:28 -0800 (Sat, 26 Mar 2005)
Revision: 7053
Log message:

      Oops, the _ variable gets turned into an empty variable.  I'm not sure
      if we should fix Lm_symbol, but in any case, I've updated Filter_patt
      to consider "" to denote a wildcard pattern.
      
      Also, when we use simple wildcards, the syntax become unreadable
      (at least to me).  OCaml plans to treat variables that begin with an
      underscore as real variables, but with special meaning wrt dead code.
      In fact, it may already do this.
      
      To handle these issues, Filter_patt now considers the following veriables
      to denote wildcards:
         1. the empty string,
         2. a single underscore,
         3. a double underscore followed by anything.
      

Changes  Path
+10 -6 metaprl/filter/filter/filter_patt.ml
+64 -6 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.ml
+9 -0 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-26 19:09:29 -0800 (Sat, 26 Mar 2005)
Revision: 7054
Log message:

      Assign exact spill locations.
      

Changes  Path
+178 -55 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.ml
+1 -0 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.mli
+33 -12 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_regalloc.ml
+15 -0 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_spill.ml
+5 -0 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_spill.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-27 09:16:49 -0800 (Sun, 27 Mar 2005)
Revision: 7055
Log message:

      Added spill allocation.  Mmc_spill_test/test1 now works.
      

Changes  Path
+1 -3 mpcompiler/mmc/arch/ra/mmc_ra_main.ml
+11 -12 mpcompiler/mmc/arch/ra/mmc_ra_spill.ml
+3 -3 mpcompiler/mmc/arch/ra/mmc_ra_type.mlz
+24 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.ml
+6 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.mli
+11 -3 mpcompiler/mmc/arch/x86/print/mmc_x86_print.ml
+4 -13 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.ml
+1 -1 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-27 09:53:13 -0800 (Sun, 27 Mar 2005)
Revision: 7056
Log message:

      Preparing for spilled function parameters.
      
      The idea here is to tag the parameter types as representing
      spills or registers.  We have to extend the function type, and
      this will cause fairly extensive changes throughout the backend.
      

Changes  Path
+16 -1 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-27 13:48:32 -0800 (Sun, 27 Mar 2005)
Revision: 7057
Log message:

      Updated polymorphism in Aleksey's sweeper, and ported it to the backend.
      This is really cool--it caught several sweep errors in the backend.
      
      A short note on the style used in the grammars (I know I should
      document this).  When we define a new kind of term, the general
      style is to define a "proper" term that does not include variables.
      
         production proper_foo{'e} <-- ...
      
      Then add the variables:
      
         production foo{'e} <-- sovar{'e}
         production foo{'e} <-- tok_quotation{'e}
         production foo{'e} <-- proper_foo{'e}
      
      The so_arg{'e} represents arbitrary expressions.  If it is not
      ambiguous, add a proper_so_arg{'e}.  This is mainly so we don't
      have to type so much.
      
         production proper_so_arg{'e} <-- proper_foo{'e}   (* Optional *)
      
      Then add the named so_arg.  Note that we use the generic foo{'e}
      here.
      
         production proper_so_arg{'e} <-- tok_foo; foo{'e}
      

Changes  Path
+48 -194 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+9 -6 mpcompiler/mmc/arch/x86/base/mmc_x86_util.ml
+1 -1 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_spill.ml
+233 -111 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.ml
+191 -106 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.mli
+3 -6 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
+0 -5 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.mli
+80 -2 mpcompiler/mmc/core/mmc_core_sweep.ml
+36 -101 mpcompiler/mmc/core/mmc_core_sweep.mli
+20 -15 mpcompiler/mmc/core/mmc_core_tast.mli
+5 -3 mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists.ml
+8 -6 mpcompiler/mmc/extensions/tyexists/mmc_x86_tyexists.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-27 14:00:35 -0800 (Sun, 27 Mar 2005)
Revision: 7058
Log message:

      Forgot to add cases for definitions.
      

Changes  Path
+4 -0 mpcompiler/mmc/arch/x86/codegen/mmc_x86_closure.ml
+2 -2 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.ml
+10 -2 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-27 22:19:03 -0800 (Sun, 27 Mar 2005)
Revision: 7063
Log message:

      Whew, added spilling for function parameters.
      
      This isn't quite as nice as I would like, but it is adequate.
      Ideally, I would like to give spills a different type, like
         ATySpill{'ty}
      for a spilled value of type 'ty.  However, this seems nearly
      impossible because when we spill a parameter, all the types
      everywhere have to be changed.
      
      Perhaps I am not thinking of this correctly.
      

Changes  Path
+4 -3 mpcompiler/mmc/arch/ra/mmc_ra_live.ml
+1 -1 mpcompiler/mmc/arch/ra/mmc_ra_main.ml
+1 -1 mpcompiler/mmc/arch/ra/mmc_ra_type.mlz
+72 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+41 -7 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+0 -34 mpcompiler/mmc/arch/x86/base/mmc_x86_util.ml
+0 -7 mpcompiler/mmc/arch/x86/base/mmc_x86_util.mli
+6 -29 mpcompiler/mmc/arch/x86/print/mmc_x86_print.ml
+63 -89 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.ml
+2 -1 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_coalesce.ml
+1 -1 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_regalloc.ml
+13 -9 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_rename.ml
+238 -102 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_spill.ml
+3 -13 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_spill.mli
+13 -6 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.ml
+2 -2 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
+37 -15 mpcompiler/mmc/arch/x86/type/mmc_x86_typeof.ml
+3 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_typeof.mli
+14 -1 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-27 22:45:35 -0800 (Sun, 27 Mar 2005)
Revision: 7064
Log message:

      Mmc_x86_print should be using dest_register_operand on
      instructions.
      

Changes  Path
+6 -6 mpcompiler/mmc/arch/x86/print/mmc_x86_print.ml
+1 -1 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_regalloc.ml
+8 -0 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_spill.ml
+1 -0 mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-29 10:11:54 -0800 (Tue, 29 Mar 2005)
Revision: 7065
Log message:

      Various minor fixing in spilling.  We were using typeof, which
      required a sweep *after* spilling, which is a bad idea because
      of renaming.  Instead, carry the type around with the spilled
      value.
      

Changes  Path
+3 -3 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+3 -3 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+1 -1 mpcompiler/mmc/arch/x86/opt/mmc_x86_opt.ml
+3 -3 mpcompiler/mmc/arch/x86/print/mmc_x86_print.ml
+1 -1 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_regalloc.ml
+75 -56 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_spill.ml
+6 -1 mpcompiler/mmc/opt/inline/mmc_opt_inline.ml
+6 -0 mpcompiler/mmc/opt/inline/mmc_opt_value.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-29 11:26:43 -0800 (Tue, 29 Mar 2005)
Revision: 7066
Log message:

      Strip constrains, since they prevent beta-reduction.
      

Changes  Path
+2 -2 mpcompiler/mmc/core/mmc_core_type_check.ml
+2 -2 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml
+11 -2 mpcompiler/mmc/opt/inline/mmc_opt_inline.ml
+13 -6 mpcompiler/mmc/test/mmc
+6 -0 mpcompiler/mmc/test/mmc_spill_test.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-29 19:36:09 -0800 (Tue, 29 Mar 2005)
Revision: 7068
Log message:

      Added argument spilling, where we have escaping functions with
      more than 4 arguments (on x86).
      

Changes  Path
+5 -1 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.ml
+3 -0 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+24 -1 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.ml
+3 -1 mpcompiler/mmc/arch/x86/base/mmc_x86_frame.mli
+2 -0 mpcompiler/mmc/arch/x86/print/mmc_x86_print.ml
+39 -16 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.ml
+1 -1 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_regalloc.ml
+3 -3 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_rename.ml
+205 -177 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_spill.ml
+4 -0 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_spill.mli
+5 -0 mpcompiler/mmc/arch/x86/type/mmc_x86_type_check_core.ml
+11 -10 mpcompiler/mmc/test/mmc
+1 -1 mpcompiler/mmc/test/mmc_spill_test.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-30 19:50:12 -0800 (Wed, 30 Mar 2005)
Revision: 7070
Log message:

      This is mainly a white-space correction, using <:tast_rw< ... >>
      instead of two separate <:tast< ... >>.
      

Changes  Path
+2 -0 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_backend.ml
+100 -99 mpcompiler/mmc/core/mmc_core_closure.ml
+261 -235 mpcompiler/mmc/core/mmc_core_sweep.ml
+15 -12 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+97 -98 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-30 20:30:55 -0800 (Wed, 30 Mar 2005)
Revision: 7071
Log message:

      Ouch, we were closing over functions too.  In closure, filter out
      free function variables.
      

Changes  Path
+12 -2 mpcompiler/mmc/core/mmc_core_closure.ml
+62 -26 mpcompiler/mmc/core/mmc_core_sweep.ml
+17 -1 mpcompiler/mmc/core/mmc_core_sweep.mli
Properties mpcompiler/mmc/test

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-31 10:15:33 -0800 (Thu, 31 Mar 2005)
Revision: 7073
Log message:

      We needed to be more careful during hoisting because the hoisted
      values may depend on recursively-defined functions.
      

Changes  Path
+20 -21 mpcompiler/mmc/base/mmc_base_hoist.ml
+1 -1 mpcompiler/mmc/base/mmc_base_hoist.mli
+98 -60 mpcompiler/mmc/core/mmc_core_hoist.ml
+19 -2 mpcompiler/mmc/core/mmc_core_hoist.mli
+1 -1 mpcompiler/mmc/extensions/bool/mmc_x86_bool.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-31 10:44:18 -0800 (Thu, 31 Mar 2005)
Revision: 7074
Log message:

      Whew, mmc_int_test/test_fib now works.  This had some problems
      during hoisting.
      
      Also, I reintroduced the "front" stage, but don't worry,
      all it does now is convert short-circuit operations to
      conditionals.
      

Changes  Path
+14 -9 mpcompiler/mmc/arch/x86/regalloc/mmc_x86_convention.ml
+1 -73 mpcompiler/mmc/core/mmc_core_front.ml
+0 -8 mpcompiler/mmc/core/mmc_core_front.mli
+3 -0 mpcompiler/mmc/core/mmc_core_theory.ml
+8 -29 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+1 -2 mpcompiler/mmc/extensions/bool/mmc_x86_bool.ml
+0 -7 mpcompiler/mmc/extensions/int/mmc_ext_int.ml
+0 -2 mpcompiler/mmc/extensions/loop/mmc_ext_loop.ml
+0 -23 mpcompiler/mmc/extensions/operator/mmc_ext_operator.ml
+3 -1 mpcompiler/mmc/test/mmc
+1 -1 mpcompiler/mmc/test/mmc_int_test.ml