Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2004-04-01 08:28:01 -0800 (Thu, 01 Apr 2004)
Revision: 5583
Log message:

      Added processing of || and &&.  The computer lab is closing so I guess I won't
      be able to do anything about the paper unless I can find a 24hr internet access
      site.  I don't really feel like I understand what's going on at your end anyhow,
      so it's probably best that I just leave it to you.
      

Changes  Path
+51 -15 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+2 -0 mpcompiler/mmc/extensions/bool/mmc_ext_bool.mli
+2 -2 mpcompiler/mmc/extensions/fix/mmc_ext_fix.ml
+14 -2 mpcompiler/mmc/syntax.pho

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2004-04-02 00:23:46 -0800 (Fri, 02 Apr 2004)
Revision: 5589
Log message:

      Changed the mandel case to use the parser.  It doesn't compile yet because the
      backend doesn't know about shift operators.  It also takes a *long* time.
      Something's going super-linear in a bad way.
      

Changes  Path
+3 -6 mpcompiler/mmc/OMakefile
+4 -3 mpcompiler/mmc/syntax.pho
+0 -1 mpcompiler/mmc/test/Files
+91 -63 mpcompiler/mmc/test/mmc_ext_mandel.ml

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2004-04-02 00:25:25 -0800 (Fri, 02 Apr 2004)
Revision: 5590
Log message:

      No need for this anymore.
      

Changes  Path
Deleted mpcompiler/mmc/test/ext_mandel.mlp

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-04 11:38:44 -0700 (Sun, 04 Apr 2004)
Revision: 5592
Log message:

      Added a TODO list.  This will probably migrate to bugzilla.
      

Changes  Path
Added mpcompiler/mmc/TODO
Properties mpcompiler/mmc/TODO
+0 -0 mpcompiler/mmc/core/mmc_core_type_infer.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-04 17:46:36 -0700 (Sun, 04 Apr 2004)
Revision: 5593
Log message:

      . Changed the way Reserve is handled to make it more general in
      . anticipation of other kinds of special operations.
      .
      .    1. The Core_special module defines special transformations
      .       that need to be performed before closure conversion.
      .    2. The Mcc_x86_prologue module defines a function prologue,
      .       where code for these operations is expanded.
      

Changes  Path
+1 -0 mpcompiler/mmc/arch/util/mmc_hoist.ml
+1 -0 mpcompiler/mmc/arch/x86/Files
+0 -28 mpcompiler/mmc/arch/x86/mmc_x86_asm.ml
+3 -11 mpcompiler/mmc/arch/x86/mmc_x86_asm.mli
+35 -30 mpcompiler/mmc/arch/x86/mmc_x86_backend.ml
+28 -15 mpcompiler/mmc/arch/x86/mmc_x86_codegen.ml
+40 -5 mpcompiler/mmc/arch/x86/mmc_x86_frame.ml
+13 -0 mpcompiler/mmc/arch/x86/mmc_x86_frame.mli
+0 -7 mpcompiler/mmc/arch/x86/mmc_x86_opt1.ml
Added mpcompiler/mmc/arch/x86/mmc_x86_prologue.ml
Properties mpcompiler/mmc/arch/x86/mmc_x86_prologue.ml
Added mpcompiler/mmc/arch/x86/mmc_x86_prologue.mli
Properties mpcompiler/mmc/arch/x86/mmc_x86_prologue.mli
+5 -4 mpcompiler/mmc/arch/x86/mmc_x86_spill.ml
+1 -0 mpcompiler/mmc/arch/x86/mmc_x86_spill.mli
+0 -4 mpcompiler/mmc/arch/x86/mmc_x86_theory.ml
+0 -9 mpcompiler/mmc/arch/x86/mmc_x86_theory.mli
+1 -0 mpcompiler/mmc/core/Files
Added mpcompiler/mmc/core/core_special.ml
Properties mpcompiler/mmc/core/core_special.ml
Added mpcompiler/mmc/core/core_special.mli
Properties mpcompiler/mmc/core/core_special.mli
+0 -0 mpcompiler/mmc/core/mmc_core_closure.ml
+38 -27 mpcompiler/mmc/core/mmc_core_reserve.ml
+16 -9 mpcompiler/mmc/core/mmc_core_reserve.mli
+8 -0 mpcompiler/mmc/core/mmc_core_theory.ml
+0 -7 mpcompiler/mmc/core/mmc_core_theory.mli
+0 -12 mpcompiler/mmc/extensions/fix/mmc_ext_fix.ml
+19 -5 mpcompiler/mmc/extensions/fix/mmc_ext_fix_x86.ml
+4 -4 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+5 -5 mpcompiler/util/mm_list_util.ml
+2 -2 mpcompiler/util/mm_list_util.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-04 19:15:24 -0700 (Sun, 04 Apr 2004)
Revision: 5595
Log message:

      . Adding memory reservations for arrays, but there are two issues:
      .
      .    1. Somehow, the middle end does not work without naming.
      .       Filed as bug #179.
      .    2. The extra functions are annoying and inefficient.
      .       Filed as bug #180.
      

Changes  Path
+1 -1 mpcompiler/mmc/core/mmc_core_cps.ml
+1 -1 mpcompiler/mmc/core/mmc_core_tast.ml
+14 -14 mpcompiler/mmc/core/mmc_core_theory.ml
+49 -20 mpcompiler/mmc/extensions/array/mmc_ext_array.ml
+3 -2 mpcompiler/mmc/test/Files
Added mpcompiler/mmc/test/mmc_ext_array_test.ml
Properties mpcompiler/mmc/test/mmc_ext_array_test.ml
Added mpcompiler/mmc/test/mmc_ext_array_test.mli
Properties mpcompiler/mmc/test/mmc_ext_array_test.mli
+2 -47 mpcompiler/mmc/test/mmc_ext_int_test.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-04 20:40:13 -0700 (Sun, 04 Apr 2004)
Revision: 5596
Log message:

      Add a core optimization phase Core_opt1.
      
      Probably we need to reconsider the directory structure, because we shouldn't just
      drop optimizations into the core directory.
      
      However, core_opt1 is a special phase that undoes some of the core
      transformations when they are mistakes.  It probably belongs in the core.
      
      The only optimization currently is to eliminate spurious closure conversions:
         (lambda_c (params1). lambda_s (params2). e)(args1)(args2)
         <-->
         (lambda_d (params1 @ params2). e)(args1 @ args2)
      

Changes  Path
Properties mpcompiler/mmc
+4 -4 mpcompiler/mmc/arch/util/mmc_hoist.ml
+7 -7 mpcompiler/mmc/arch/x86/mmc_x86_codegen.ml
+1 -0 mpcompiler/mmc/core/Files
Added mpcompiler/mmc/core/core_opt1.ml
Properties mpcompiler/mmc/core/core_opt1.ml
Added mpcompiler/mmc/core/core_opt1.mli
Properties mpcompiler/mmc/core/core_opt1.mli
+8 -8 mpcompiler/mmc/core/mmc_core_closure.ml
+3 -3 mpcompiler/mmc/core/mmc_core_reserve.ml
+18 -6 mpcompiler/mmc/core/mmc_core_tast.ml
+8 -1 mpcompiler/mmc/core/mmc_core_tast.mli
+4 -0 mpcompiler/mmc/core/mmc_core_theory.ml
+2 -2 mpcompiler/mmc/extensions/fix/mmc_ext_fix.ml
+2 -2 mpcompiler/mmc/extensions/fix/mmc_ext_fix_x86.ml
+24 -7 mpcompiler/util/mm_list_util.ml
+4 -3 mpcompiler/util/mm_list_util.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-04 20:43:05 -0700 (Sun, 04 Apr 2004)
Revision: 5597
Log message:

      Optimization should happen *before* memory reservation.
      

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

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-05 10:39:27 -0700 (Mon, 05 Apr 2004)
Revision: 5598
Log message:

      Added "special" extension for special calls.  It is likely that we
      want to use special for extenal calls too.
      

Changes  Path
+1 -0 mpcompiler/mmc/OMakefile
+0 -1 mpcompiler/mmc/core/Files
Deleted mpcompiler/mmc/core/core_special.ml
Deleted mpcompiler/mmc/core/core_special.mli
+12 -22 mpcompiler/mmc/core/mmc_core_reserve.ml
+4 -13 mpcompiler/mmc/core/mmc_core_reserve.mli
+4 -6 mpcompiler/mmc/core/mmc_core_theory.ml
+0 -19 mpcompiler/mmc/extensions/array/mmc_ext_array.ml
Properties mpcompiler/mmc/extensions/special
Added mpcompiler/mmc/extensions/special/Files
Properties mpcompiler/mmc/extensions/special/Files
Added mpcompiler/mmc/extensions/special/mmc_ext_special.ml
Properties mpcompiler/mmc/extensions/special/mmc_ext_special.ml
Added mpcompiler/mmc/extensions/special/mmc_ext_special.mli
Properties mpcompiler/mmc/extensions/special/mmc_ext_special.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-05 11:13:01 -0700 (Mon, 05 Apr 2004)
Revision: 5599
Log message:

      Added reserve as a special stage.  The old-style reserve is still
      around for constant-sized reserves.  Have to figure out whether to
      fold this in.
      
      Also, added Core_def, so we can use definitions in our code.
      

Changes  Path
+1 -0 mpcompiler/mmc/OMakefile
+1 -0 mpcompiler/mmc/core/Files
Added mpcompiler/mmc/core/mmc_core_def.ml
Properties mpcompiler/mmc/core/mmc_core_def.ml
Added mpcompiler/mmc/core/mmc_core_def.mli
Properties mpcompiler/mmc/core/mmc_core_def.mli
+15 -9 mpcompiler/mmc/core/mmc_core_reserve.ml
+6 -4 mpcompiler/mmc/core/mmc_core_reserve.mli
+5 -2 mpcompiler/mmc/core/mmc_core_theory.ml
Properties mpcompiler/mmc/extensions/reserve
Added mpcompiler/mmc/extensions/reserve/Files
Properties mpcompiler/mmc/extensions/reserve/Files
Added mpcompiler/mmc/extensions/reserve/mmc_ext_reserve.ml
Properties mpcompiler/mmc/extensions/reserve/mmc_ext_reserve.ml
Added mpcompiler/mmc/extensions/reserve/mmc_ext_reserve.mli
Properties mpcompiler/mmc/extensions/reserve/mmc_ext_reserve.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-05 11:21:08 -0700 (Mon, 05 Apr 2004)
Revision: 5600
Log message:

      Folded Core_opt1 into Core_optimize.
      

Changes  Path
+0 -1 mpcompiler/mmc/core/Files
Deleted mpcompiler/mmc/core/core_opt1.ml
Deleted mpcompiler/mmc/core/core_opt1.mli
+50 -0 mpcompiler/mmc/core/mmc_core_optimize.ml
+25 -1 mpcompiler/mmc/core/mmc_core_optimize.mli
+3 -3 mpcompiler/mmc/core/mmc_core_theory.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-05 11:45:13 -0700 (Mon, 05 Apr 2004)
Revision: 5601
Log message:

      Added reservations for arrays.
      

Changes  Path
+7 -0 mpcompiler/mmc/core/mmc_core_optimize.ml
+48 -0 mpcompiler/mmc/extensions/array/mmc_ext_array.ml
+6 -0 mpcompiler/mmc/extensions/reserve/mmc_ext_reserve.ml
+3 -3 mpcompiler/mmc/test/mmc_ext_array_test.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-05 12:16:02 -0700 (Mon, 05 Apr 2004)
Revision: 5602
Log message:

      Minor changes to on array reservations.
      Next: fix up the array initialization code.
      The assembly needs a loop for initialization,
      which is a hassle.
      

Changes  Path
+7 -0 mpcompiler/mmc/extensions/reserve/mmc_ext_reserve.ml
+9 -2 mpcompiler/mmc/extensions/special/mmc_ext_special.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-05 12:33:33 -0700 (Mon, 05 Apr 2004)
Revision: 5603
Log message:

      More fixes to array initialization code.
      

Changes  Path
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_asm.ml
+2 -2 mpcompiler/mmc/arch/x86/mmc_x86_frame.ml
+6 -6 mpcompiler/mmc/extensions/array/mmc_ext_array_x86.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-05 16:02:33 -0700 (Mon, 05 Apr 2004)
Revision: 5604
Log message:

      Adding closure conversion to the assembly.  Not finished yet.
      

Changes  Path
+24 -13 mpcompiler/mmc/arch/util/mmc_hoist.ml
+10 -2 mpcompiler/mmc/arch/util/mmc_hoist.mli
+1 -0 mpcompiler/mmc/arch/x86/Files
Added mpcompiler/mmc/arch/x86/mmc_x86_closure.ml
Properties mpcompiler/mmc/arch/x86/mmc_x86_closure.ml
Added mpcompiler/mmc/arch/x86/mmc_x86_closure.mli
Properties mpcompiler/mmc/arch/x86/mmc_x86_closure.mli
+9 -1 mpcompiler/mmc/arch/x86/mmc_x86_theory.ml
+3 -0 mpcompiler/mmc/core/mmc_core_tast.ml
+1 -1 mpcompiler/mmc/extensions/array/mmc_ext_array_x86.ml
+6 -6 mpcompiler/mmc/main/mmc_theory.ml

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2004-04-05 17:42:43 -0700 (Mon, 05 Apr 2004)
Revision: 5606
Log message:

      Updated the Files files to use the new mmc_ prefix.
      The "open" and "extends" directives still need to be updated.
      

Changes  Path
+5 -5 mpcompiler/mmc/arch/ra/Files
+2 -2 mpcompiler/mmc/arch/util/Files
+15 -15 mpcompiler/mmc/arch/x86/Files
+18 -18 mpcompiler/mmc/core/Files
+2 -2 mpcompiler/mmc/extensions/array/Files
+2 -2 mpcompiler/mmc/extensions/bool/Files
+2 -2 mpcompiler/mmc/extensions/fix/Files
+2 -2 mpcompiler/mmc/extensions/int/Files
+1 -1 mpcompiler/mmc/extensions/operator/Files
+1 -1 mpcompiler/mmc/extensions/reserve/Files
+1 -1 mpcompiler/mmc/extensions/special/Files
+1 -1 mpcompiler/mmc/extensions/string/Files
+2 -2 mpcompiler/mmc/extensions/tuple/Files
+1 -1 mpcompiler/mmc/main/Files
+4 -4 mpcompiler/mmc/test/Files
+2 -2 mpcompiler/util/Files

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-05 18:19:28 -0700 (Mon, 05 Apr 2004)
Revision: 5607
Log message:

      Updated "opens" and "extends" directives to use the Mmc_ prefix.
      

Changes  Path
+4 -4 mpcompiler/mmc/arch/ra/mmc_ra_live.ml
+3 -3 mpcompiler/mmc/arch/ra/mmc_ra_live.mli
+5 -5 mpcompiler/mmc/arch/ra/mmc_ra_main.ml
+2 -2 mpcompiler/mmc/arch/ra/mmc_ra_main.mli
+2 -2 mpcompiler/mmc/arch/util/mmc_hoist.ml
+1 -1 mpcompiler/mmc/arch/util/mmc_hoist.mli
+1 -1 mpcompiler/mmc/arch/util/mmc_standardize.ml
+1 -1 mpcompiler/mmc/arch/util/mmc_standardize.mli
+10 -10 mpcompiler/mmc/arch/x86/mmc_x86_backend.ml
+3 -3 mpcompiler/mmc/arch/x86/mmc_x86_backend.mli
+5 -5 mpcompiler/mmc/arch/x86/mmc_x86_closure.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_closure.mli
+4 -4 mpcompiler/mmc/arch/x86/mmc_x86_coalesce.ml
+2 -2 mpcompiler/mmc/arch/x86/mmc_x86_coalesce.mli
+12 -12 mpcompiler/mmc/arch/x86/mmc_x86_codegen.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_codegen.mli
+5 -5 mpcompiler/mmc/arch/x86/mmc_x86_convention.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_convention.mli
+3 -3 mpcompiler/mmc/arch/x86/mmc_x86_dead.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_dead.mli
+4 -4 mpcompiler/mmc/arch/x86/mmc_x86_frame.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_frame.mli
+5 -5 mpcompiler/mmc/arch/x86/mmc_x86_opt1.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_opt1.mli
+8 -8 mpcompiler/mmc/arch/x86/mmc_x86_prologue.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_prologue.mli
+6 -6 mpcompiler/mmc/arch/x86/mmc_x86_regalloc.ml
+3 -3 mpcompiler/mmc/arch/x86/mmc_x86_slop.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_slop.mli
+8 -8 mpcompiler/mmc/arch/x86/mmc_x86_spill.ml
+2 -2 mpcompiler/mmc/arch/x86/mmc_x86_spill.mli
+22 -22 mpcompiler/mmc/arch/x86/mmc_x86_theory.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_theory.mli
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_util.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_util.mli
+3 -3 mpcompiler/mmc/core/mmc_core_ast.ml
+2 -2 mpcompiler/mmc/core/mmc_core_ast.mli
+1 -1 mpcompiler/mmc/core/mmc_core_ast_util.ml
+1 -1 mpcompiler/mmc/core/mmc_core_ast_util.mli
+6 -6 mpcompiler/mmc/core/mmc_core_closure.ml
+11 -11 mpcompiler/mmc/core/mmc_core_cps.ml
+3 -3 mpcompiler/mmc/core/mmc_core_cps.mli
+1 -1 mpcompiler/mmc/core/mmc_core_def.ml
+2 -2 mpcompiler/mmc/core/mmc_core_list_util.ml
+5 -5 mpcompiler/mmc/core/mmc_core_name.ml
+3 -3 mpcompiler/mmc/core/mmc_core_optimize.ml
+6 -6 mpcompiler/mmc/core/mmc_core_reserve.ml
+3 -3 mpcompiler/mmc/core/mmc_core_tast.ml
+2 -2 mpcompiler/mmc/core/mmc_core_tast.mli
+1 -1 mpcompiler/mmc/core/mmc_core_tast_util.ml
+1 -1 mpcompiler/mmc/core/mmc_core_tast_util.mli
+19 -19 mpcompiler/mmc/core/mmc_core_theory.ml
+1 -1 mpcompiler/mmc/core/mmc_core_theory.mli
+3 -3 mpcompiler/mmc/core/mmc_core_type_check.ml
+1 -1 mpcompiler/mmc/core/mmc_core_type_check.mli
+4 -4 mpcompiler/mmc/core/mmc_core_type_erase.ml
+5 -5 mpcompiler/mmc/core/mmc_core_type_infer.ml
+3 -3 mpcompiler/mmc/core/mmc_core_type_util.ml
+2 -2 mpcompiler/mmc/core/mmc_core_type_util.mli
+14 -14 mpcompiler/mmc/extensions/array/mmc_ext_array.ml
+1 -1 mpcompiler/mmc/extensions/array/mmc_ext_array.mli
+5 -5 mpcompiler/mmc/extensions/array/mmc_ext_array_x86.ml
+2 -2 mpcompiler/mmc/extensions/array/mmc_ext_array_x86.mli
+14 -14 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+3 -3 mpcompiler/mmc/extensions/bool/mmc_ext_boolean_x86.ml
+2 -2 mpcompiler/mmc/extensions/bool/mmc_ext_boolean_x86.mli
+15 -15 mpcompiler/mmc/extensions/fix/mmc_ext_fix.ml
+6 -6 mpcompiler/mmc/extensions/fix/mmc_ext_fix.mli
+7 -7 mpcompiler/mmc/extensions/fix/mmc_ext_fix_x86.ml
+2 -2 mpcompiler/mmc/extensions/fix/mmc_ext_fix_x86.mli
+10 -10 mpcompiler/mmc/extensions/int/mmc_ext_int.ml
+7 -7 mpcompiler/mmc/extensions/int/mmc_ext_int.mli
+4 -4 mpcompiler/mmc/extensions/int/mmc_ext_integer_x86.ml
+2 -2 mpcompiler/mmc/extensions/int/mmc_ext_integer_x86.mli
+11 -11 mpcompiler/mmc/extensions/operator/mmc_ext_operator.ml
+4 -4 mpcompiler/mmc/extensions/reserve/mmc_ext_reserve.ml
+1 -1 mpcompiler/mmc/extensions/reserve/mmc_ext_reserve.mli
+7 -7 mpcompiler/mmc/extensions/special/mmc_ext_special.ml
+1 -1 mpcompiler/mmc/extensions/special/mmc_ext_special.mli
+8 -8 mpcompiler/mmc/extensions/string/mmc_ext_string.ml
+5 -5 mpcompiler/mmc/extensions/string/mmc_ext_string.mli
+13 -13 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+4 -4 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple_x86.ml
+2 -2 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple_x86.mli
+10 -10 mpcompiler/mmc/main/mmc_theory.ml
+7 -7 mpcompiler/mmc/main/mmc_theory.mli
+1 -1 mpcompiler/mmc/test/mmc_core_test.ml
+1 -1 mpcompiler/mmc/test/mmc_core_test.mli
+1 -1 mpcompiler/mmc/test/mmc_ext_array_test.ml
+1 -1 mpcompiler/mmc/test/mmc_ext_int_test.ml
+1 -1 mpcompiler/mmc/test/mmc_ext_int_test.mli
+1 -1 mpcompiler/mmc/test/mmc_ext_mandel.ml
+1 -1 mpcompiler/mmc/test/mmc_ext_mandel.mli
+1 -1 mpcompiler/util/mm_list_util.ml
+1 -1 mpcompiler/util/mm_list_util.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-05 18:47:09 -0700 (Mon, 05 Apr 2004)
Revision: 5608
Log message:

      Add Mmc_ prefix in the syntax.pho and .prla files.
      

Changes  Path
+1 -1 metaprl/editor/ml/mpconfig
+28 -28 mpcompiler/mmc/core/mmc_core_cps.prla
+11 -11 mpcompiler/mmc/core/mmc_core_name.prla
+23 -23 mpcompiler/mmc/core/mmc_core_type_check.prla
Deleted mpcompiler/mmc/extensions/bool/ext_boolean.prla
Added mpcompiler/mmc/extensions/bool/mmc_ext_boolean.prla
Properties mpcompiler/mmc/extensions/bool/mmc_ext_boolean.prla
+9 -9 mpcompiler/mmc/syntax.pho
Deleted mpcompiler/mmc/test/core_test.prla
Added mpcompiler/mmc/test/mmc_core_test.prla
Properties mpcompiler/mmc/test/mmc_core_test.prla

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-05 19:49:45 -0700 (Mon, 05 Apr 2004)
Revision: 5609
Log message:

      Removed core/mmc_core_util, and split it into util/mmc_tactic_util
      and util/mmc_dform_util.  These utilities were never specific to
      the core.
      
      Converting the backend to use the standard definition of recursive
      functions.  Not finished yet.
      

Changes  Path
Properties mpcompiler/mmc
+24 -3 mpcompiler/mmc/arch/x86/mmc_x86_asm.ml
+6 -1 mpcompiler/mmc/arch/x86/mmc_x86_asm.mli
+6 -8 mpcompiler/mmc/arch/x86/mmc_x86_backend.ml
+4 -4 mpcompiler/mmc/arch/x86/mmc_x86_closure.ml
+21 -20 mpcompiler/mmc/arch/x86/mmc_x86_codegen.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_convention.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_dead.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_frame.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_opt1.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_prologue.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_slop.ml
+2 -2 mpcompiler/mmc/arch/x86/mmc_x86_spill.ml
+0 -1 mpcompiler/mmc/core/Files
+2 -1 mpcompiler/mmc/core/mmc_core_ast.ml
+0 -57 mpcompiler/mmc/core/mmc_core_base.ml
+0 -13 mpcompiler/mmc/core/mmc_core_base.mli
+1 -1 mpcompiler/mmc/core/mmc_core_closure.ml
+1 -1 mpcompiler/mmc/core/mmc_core_cps.ml
+1 -1 mpcompiler/mmc/core/mmc_core_def.ml
+2 -2 mpcompiler/mmc/core/mmc_core_name.ml
+1 -1 mpcompiler/mmc/core/mmc_core_optimize.ml
+1 -1 mpcompiler/mmc/core/mmc_core_reserve.ml
+4 -3 mpcompiler/mmc/core/mmc_core_tast.ml
+1 -1 mpcompiler/mmc/core/mmc_core_theory.ml
+2 -2 mpcompiler/mmc/core/mmc_core_type_erase.ml
+1 -1 mpcompiler/mmc/core/mmc_core_type_util.ml
Deleted mpcompiler/mmc/core/mmc_core_util.ml
Deleted mpcompiler/mmc/core/mmc_core_util.mli
+1 -1 mpcompiler/mmc/extensions/array/mmc_ext_array_x86.ml
+1 -0 mpcompiler/mmc/extensions/fix/mmc_ext_fix.ml
+5 -5 mpcompiler/mmc/extensions/fix/mmc_ext_fix_x86.ml
+1 -1 mpcompiler/mmc/main/mmc_theory.ml
+3 -1 mpcompiler/util/Files
Added mpcompiler/util/mm_dform_util.ml
Properties mpcompiler/util/mm_dform_util.ml
Added mpcompiler/util/mm_dform_util.mli
Properties mpcompiler/util/mm_dform_util.mli
Added mpcompiler/util/mm_tactic_util.ml
Properties mpcompiler/util/mm_tactic_util.ml
Added mpcompiler/util/mm_tactic_util.mli
Properties mpcompiler/util/mm_tactic_util.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-05 20:00:06 -0700 (Mon, 05 Apr 2004)
Revision: 5610
Log message:

      Updated display forms for sequents to use an explicit
      sequent_arg{...}.
      
      The ml_dform to display contexts is unsatisfying...  We should
      think about pattern syntax for contexts.
      

Changes  Path
+4 -4 mpcompiler/mmc/core/mmc_core_ast.ml
+16 -15 mpcompiler/mmc/core/mmc_core_tast.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-05 20:37:48 -0700 (Mon, 05 Apr 2004)
Revision: 5611
Log message:

      . One last reorganization.  Here is the structure:
      .     util/ : directory for utilities that are generally useful
      .        and not particular to mmc
      .     base/ : terms and operations that are broadly applicable
      .        to *all* mmc modules
      .     core/ : the compiler core
      .     extensions/ : language extensions
      .     arch/ : backends
      .     main/ : the main compiler theory
      .     test/ : test programs
      

Changes  Path
+1 -0 mpcompiler/mmc/OMakefile
+3 -3 mpcompiler/mmc/arch/x86/mmc_x86_asm.ml
+2 -2 mpcompiler/mmc/arch/x86/mmc_x86_asm.mli
+3 -4 mpcompiler/mmc/arch/x86/mmc_x86_prologue.ml
Properties mpcompiler/mmc/base
Added mpcompiler/mmc/base/Files
Properties mpcompiler/mmc/base/Files
Added mpcompiler/mmc/base/mmc_base_dform.ml
Properties mpcompiler/mmc/base/mmc_base_dform.ml
Added mpcompiler/mmc/base/mmc_base_dform.mli
Properties mpcompiler/mmc/base/mmc_base_dform.mli
Added mpcompiler/mmc/base/mmc_base_judgment.ml
Properties mpcompiler/mmc/base/mmc_base_judgment.ml
Added mpcompiler/mmc/base/mmc_base_judgment.mli
Properties mpcompiler/mmc/base/mmc_base_judgment.mli
+0 -1 mpcompiler/mmc/core/Files
+6 -7 mpcompiler/mmc/core/mmc_core_ast.ml
+1 -1 mpcompiler/mmc/core/mmc_core_ast.mli
Deleted mpcompiler/mmc/core/mmc_core_base.ml
Deleted mpcompiler/mmc/core/mmc_core_base.mli
+13 -13 mpcompiler/mmc/core/mmc_core_tast.ml
+1 -1 mpcompiler/mmc/core/mmc_core_tast.mli
+0 -8 mpcompiler/util/mm_dform_util.ml
+0 -6 mpcompiler/util/mm_dform_util.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-06 08:36:36 -0700 (Tue, 06 Apr 2004)
Revision: 5612
Log message:

      Added closure conversion on assembly code.
      
      Functions in the assembly now use the Lambda["rec"] version
      of recursive functions (the recursive binding is final in the
      parameter list).
      

Changes  Path
+1 -1 metaprl/editor/ml/mpconfig
+0 -1 mpcompiler/mmc/OMakefile
+1 -0 mpcompiler/mmc/arch/x86/Files
+21 -5 mpcompiler/mmc/arch/x86/mmc_x86_asm.ml
+9 -1 mpcompiler/mmc/arch/x86/mmc_x86_asm.mli
+41 -14 mpcompiler/mmc/arch/x86/mmc_x86_closure.ml
+10 -2 mpcompiler/mmc/arch/x86/mmc_x86_closure.mli
+3 -2 mpcompiler/mmc/arch/x86/mmc_x86_coalesce.ml
+1 -2 mpcompiler/mmc/arch/x86/mmc_x86_coalesce.mli
+44 -34 mpcompiler/mmc/arch/x86/mmc_x86_codegen.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_frame.ml
Added mpcompiler/mmc/arch/x86/mmc_x86_hoist.ml
Properties mpcompiler/mmc/arch/x86/mmc_x86_hoist.ml
Added mpcompiler/mmc/arch/x86/mmc_x86_hoist.mli
Properties mpcompiler/mmc/arch/x86/mmc_x86_hoist.mli
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_opt1.ml
+2 -2 mpcompiler/mmc/arch/x86/mmc_x86_prologue.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_regalloc.ml
+6 -4 mpcompiler/mmc/arch/x86/mmc_x86_theory.ml
+3 -1 mpcompiler/mmc/base/Files
Added mpcompiler/mmc/base/mmc_base_hoist.ml
Properties mpcompiler/mmc/base/mmc_base_hoist.ml
Added mpcompiler/mmc/base/mmc_base_hoist.mli
Properties mpcompiler/mmc/base/mmc_base_hoist.mli
Added mpcompiler/mmc/base/mmc_base_standardize.ml
Properties mpcompiler/mmc/base/mmc_base_standardize.ml
Added mpcompiler/mmc/base/mmc_base_standardize.mli
Properties mpcompiler/mmc/base/mmc_base_standardize.mli
+2 -1 mpcompiler/mmc/core/Files
+3 -3 mpcompiler/mmc/core/mmc_core_cps.prla
Added mpcompiler/mmc/core/mmc_core_hoist.ml
Properties mpcompiler/mmc/core/mmc_core_hoist.ml
Added mpcompiler/mmc/core/mmc_core_hoist.mli
Properties mpcompiler/mmc/core/mmc_core_hoist.mli
+3 -3 mpcompiler/mmc/core/mmc_core_name.prla
+1 -1 mpcompiler/mmc/core/mmc_core_reserve.ml
+1 -1 mpcompiler/mmc/core/mmc_core_tast.ml
+2 -2 mpcompiler/mmc/core/mmc_core_type_check.prla
+2 -2 mpcompiler/mmc/extensions/array/mmc_ext_array_x86.ml
+1 -1 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+2 -2 mpcompiler/mmc/extensions/bool/mmc_ext_boolean.prla
+1 -1 mpcompiler/mmc/extensions/fix/mmc_ext_fix.ml
+9 -9 mpcompiler/mmc/extensions/fix/mmc_ext_fix_x86.ml
+1 -1 mpcompiler/mmc/extensions/int/mmc_ext_integer_x86.ml
+1 -1 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple_x86.ml
+1 -1 mpcompiler/mmc/syntax.pho
+2 -2 mpcompiler/mmc/test/mmc_core_test.prla
+3 -2 mpcompiler/util/Files
Added mpcompiler/util/mm_arith_util.ml
Properties mpcompiler/util/mm_arith_util.ml
Added mpcompiler/util/mm_arith_util.mli
Properties mpcompiler/util/mm_arith_util.mli
+1 -1 mpcompiler/util/mm_list_util.ml
+1 -1 mpcompiler/util/mm_list_util.mli
Added mpcompiler/util/mm_sequent_util.ml
Properties mpcompiler/util/mm_sequent_util.ml
Added mpcompiler/util/mm_sequent_util.mli
Properties mpcompiler/util/mm_sequent_util.mli
Deleted mpcompiler/util/mmc_arith.ml
Deleted mpcompiler/util/mmc_arith.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-06 14:35:42 -0700 (Tue, 06 Apr 2004)
Revision: 5613
Log message:

      1. Variable-sized reserves are now implemented in the backend.
      2. Added x86 support for direct function calls (for functions that do not escape).
      Still haven't tested spilling on this new code.
      

Changes  Path
+73 -18 mpcompiler/mmc/arch/x86/mmc_x86_backend.ml
+1 -9 mpcompiler/mmc/arch/x86/mmc_x86_backend.mli
+2 -2 mpcompiler/mmc/arch/x86/mmc_x86_closure.ml
+1 -3 mpcompiler/mmc/arch/x86/mmc_x86_coalesce.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_frame.ml
+27 -14 mpcompiler/mmc/arch/x86/mmc_x86_slop.ml
+2 -0 mpcompiler/mmc/arch/x86/mmc_x86_slop.mli
+12 -12 mpcompiler/mmc/core/mmc_core_cps.ml
+1 -1 mpcompiler/mmc/core/mmc_core_tast.ml
+1 -1 mpcompiler/mmc/core/mmc_core_tast.mli
+6 -6 mpcompiler/mmc/extensions/array/mmc_ext_array_x86.ml
+2 -1 mpcompiler/mmc/extensions/reserve/Files
Added mpcompiler/mmc/extensions/reserve/mmc_ext_reserve_x86.ml
Properties mpcompiler/mmc/extensions/reserve/mmc_ext_reserve_x86.ml
Added mpcompiler/mmc/extensions/reserve/mmc_ext_reserve_x86.mli
Properties mpcompiler/mmc/extensions/reserve/mmc_ext_reserve_x86.mli
+2 -1 mpcompiler/mmc/extensions/special/Files
Added mpcompiler/mmc/extensions/special/mmc_ext_special_x86.ml
Properties mpcompiler/mmc/extensions/special/mmc_ext_special_x86.ml
Added mpcompiler/mmc/extensions/special/mmc_ext_special_x86.mli
Properties mpcompiler/mmc/extensions/special/mmc_ext_special_x86.mli
+2 -0 mpcompiler/mmc/main/mmc_theory.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-06 20:27:58 -0700 (Tue, 06 Apr 2004)
Revision: 5614
Log message:

      1. Updated standardization to start from index 1.
      2. Simple spilling works.
      

Changes  Path
+1 -1 metaprl/refiner/term_ds/term_subst_ds.ml
+1 -1 metaprl/refiner/term_std/term_subst_std.ml
+11 -1 mpcompiler/mmc/arch/x86/mmc_x86_asm.ml
+2 -0 mpcompiler/mmc/arch/x86/mmc_x86_asm.mli
+14 -1 mpcompiler/mmc/arch/x86/mmc_x86_backend.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_prologue.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_regalloc.ml
+12 -0 mpcompiler/mmc/arch/x86/mmc_x86_spill.ml
+2 -1 mpcompiler/mmc/test/Files
Added mpcompiler/mmc/test/mmc_spill_test.ml
Properties mpcompiler/mmc/test/mmc_spill_test.ml
Added mpcompiler/mmc/test/mmc_spill_test.mli
Properties mpcompiler/mmc/test/mmc_spill_test.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-07 10:39:32 -0700 (Wed, 07 Apr 2004)
Revision: 5616
Log message:

      . Still working on spilling.
      .
      . Stopped at a MetaPRL bug, I'll file this on Bugzilla when I get a chance.
      .
      . var_subst does not avoid capture.
      . Example:
      .    var_subst << lambda{x. 'x + 'x} >> << 'x + 'x >> z -->
      .       << lambda{x. 'z} >>
      . Oops.
      

Changes  Path
+27 -3 mpcompiler/mmc/arch/x86/mmc_x86_backend.ml
+10 -4 mpcompiler/mmc/arch/x86/mmc_x86_spill.ml
+14 -0 mpcompiler/mmc/test/mmc_spill_test.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-07 14:12:10 -0700 (Wed, 07 Apr 2004)
Revision: 5617
Log message:

      Updated var_subst to avoid capture.
      

Changes  Path
+15 -10 metaprl/refiner/term_ds/term_subst_ds.ml
+8 -4 metaprl/refiner/term_std/term_subst_std.ml
+0 -2 mpcompiler/mmc/arch/x86/mmc_x86_spill.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-07 20:20:58 -0700 (Wed, 07 Apr 2004)
Revision: 5618
Log message:

      . Corrected a problem with implicit moves in liveness analysis.
      . Suppose we have a 3-operand instruction that does not directly
      . map to the hardware.  For example, consider this instruction:
      .
      .     add %v1, %v2, v3. // v3 <- v1 + v2
      .
      . The hardware has only 2-operand instructions, so v2 and v3 must be
      . the same register.  This works if we add an "implicit" move before
      . the instruction.  This is the sequence that is emitted:
      .
      .     mov %v2, %v3 // v3 <- v2  (implicit mov)
      .     add %v1, %v3 // v3 += v1
      .
      . This is no problem.  However, the liveness analysis should not
      . treat the implicit move like a real move.  The allocator should
      . try to coalesce v2 and v3, but it should not consider that
      . this sequence has 2 definitions of v3.  The *length* of the
      . definition should be computed as if the definition happens
      . at the add.
      

Changes  Path
+59 -131 mpcompiler/mmc/arch/ra/mmc_ra_live.ml
+74 -68 mpcompiler/mmc/arch/ra/mmc_ra_main.ml
+5 -5 mpcompiler/mmc/arch/ra/mmc_ra_type.mlz
+10 -6 mpcompiler/mmc/arch/x86/mmc_x86_backend.ml
+0 -0 mpcompiler/mmc/arch/x86/mmc_x86_spill.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-08 10:14:09 -0700 (Thu, 08 Apr 2004)
Revision: 5620
Log message:

      A few changes:
      
         1. Trying to get rid of the naming stage.  This stage should be used
            only when needed, not arbitrarily.  It might happen that naming
            is required for type inference, because of let-polymorphism,
            then we might want to add it back.
      
         2. Removed the || and && transformations from naming, and added
            a Mmc_core_front stage that is applied before CPS.  This is
            also where loops get transformed into recursive functions.
      
      One issue: currently it is the CPS transformation that ensures that
      conditionals don't return a value.  However, we want to apply this
      transformation even if we don't use CPS.
      
         3. Added an extension for unit values.
      
         4. Added an extension for loops.  Currently, we just have a while-loop.
      

Changes  Path
Properties metaprl/editor/ml
+43 -1 metaprl/editor/ml/mpconfig
+2 -0 mpcompiler/mmc/OMakefile
+6 -5 mpcompiler/mmc/arch/x86/mmc_x86_backend.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_frame.ml
+1 -0 mpcompiler/mmc/core/Files
Added mpcompiler/mmc/core/mmc_core_front.ml
Properties mpcompiler/mmc/core/mmc_core_front.ml
Added mpcompiler/mmc/core/mmc_core_front.mli
Properties mpcompiler/mmc/core/mmc_core_front.mli
+5 -3 mpcompiler/mmc/core/mmc_core_theory.ml
+42 -56 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+0 -2 mpcompiler/mmc/extensions/bool/mmc_ext_bool.mli
Properties mpcompiler/mmc/extensions/loop
Added mpcompiler/mmc/extensions/loop/Files
Properties mpcompiler/mmc/extensions/loop/Files
Added mpcompiler/mmc/extensions/loop/mmc_ext_loop.ml
Properties mpcompiler/mmc/extensions/loop/mmc_ext_loop.ml
Added mpcompiler/mmc/extensions/loop/mmc_ext_loop.mli
Properties mpcompiler/mmc/extensions/loop/mmc_ext_loop.mli
Properties mpcompiler/mmc/extensions/unit
Added mpcompiler/mmc/extensions/unit/Files
Properties mpcompiler/mmc/extensions/unit/Files
Added mpcompiler/mmc/extensions/unit/mmc_ext_unit.ml
Properties mpcompiler/mmc/extensions/unit/mmc_ext_unit.ml
Added mpcompiler/mmc/extensions/unit/mmc_ext_unit.mli
Properties mpcompiler/mmc/extensions/unit/mmc_ext_unit.mli
Added mpcompiler/mmc/extensions/unit/mmc_ext_unit_x86.ml
Properties mpcompiler/mmc/extensions/unit/mmc_ext_unit_x86.ml
Added mpcompiler/mmc/extensions/unit/mmc_ext_unit_x86.mli
Properties mpcompiler/mmc/extensions/unit/mmc_ext_unit_x86.mli
+2 -0 mpcompiler/mmc/main/mmc_theory.ml
+2 -0 mpcompiler/mmc/main/mmc_theory.mli
+4 -5 mpcompiler/mmc/syntax.pho
+6 -4 mpcompiler/mmc/test/Files
Added mpcompiler/mmc/test/mmc_array_test.ml
Properties mpcompiler/mmc/test/mmc_array_test.ml
Added mpcompiler/mmc/test/mmc_array_test.mli
Properties mpcompiler/mmc/test/mmc_array_test.mli
Added mpcompiler/mmc/test/mmc_bool_test.ml
Properties mpcompiler/mmc/test/mmc_bool_test.ml
Added mpcompiler/mmc/test/mmc_bool_test.mli
Properties mpcompiler/mmc/test/mmc_bool_test.mli
Deleted mpcompiler/mmc/test/mmc_ext_array_test.ml
Deleted mpcompiler/mmc/test/mmc_ext_array_test.mli
Deleted mpcompiler/mmc/test/mmc_ext_int_test.ml
Deleted mpcompiler/mmc/test/mmc_ext_int_test.mli
Deleted mpcompiler/mmc/test/mmc_ext_mandel.ml
Deleted mpcompiler/mmc/test/mmc_ext_mandel.mli
Added mpcompiler/mmc/test/mmc_int_test.ml
Properties mpcompiler/mmc/test/mmc_int_test.ml
Added mpcompiler/mmc/test/mmc_int_test.mli
Properties mpcompiler/mmc/test/mmc_int_test.mli
Added mpcompiler/mmc/test/mmc_loop_test.ml
Properties mpcompiler/mmc/test/mmc_loop_test.ml
Added mpcompiler/mmc/test/mmc_loop_test.mli
Properties mpcompiler/mmc/test/mmc_loop_test.mli
Added mpcompiler/mmc/test/mmc_mandel_test.ml
Properties mpcompiler/mmc/test/mmc_mandel_test.ml
Added mpcompiler/mmc/test/mmc_mandel_test.mli
Properties mpcompiler/mmc/test/mmc_mandel_test.mli
+4 -0 mpcompiler/mmc/test/mmc_spill_test.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-08 12:02:47 -0700 (Thu, 08 Apr 2004)
Revision: 5621
Log message:

      1. Removed the naming stage.
      2. Added the Mmc_core_front, for front-end transformations that
         are performed after type checking.  For example, this is the
         stage for eliminating:
            a. Short-circuit Boolean operations && and ||
            b. Loops
            c. Conditionals nested in an expression
      3. Added "direct" functions for functions that do not escape.
      

Changes  Path
+1 -0 metaprl/editor/ml/mpconfig
+1 -0 mpcompiler/mmc/OMakefile
+0 -1 mpcompiler/mmc/core/Files
+83 -4 mpcompiler/mmc/core/mmc_core_front.ml
+5 -0 mpcompiler/mmc/core/mmc_core_front.mli
Deleted mpcompiler/mmc/core/mmc_core_name.ml
Deleted mpcompiler/mmc/core/mmc_core_name.mli
+0 -14 mpcompiler/mmc/core/mmc_core_optimize.ml
+0 -5 mpcompiler/mmc/core/mmc_core_tast.ml
+0 -2 mpcompiler/mmc/core/mmc_core_theory.ml
+0 -24 mpcompiler/mmc/extensions/array/mmc_ext_array.ml
+24 -33 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
Properties mpcompiler/mmc/extensions/direct
Added mpcompiler/mmc/extensions/direct/Files
Properties mpcompiler/mmc/extensions/direct/Files
Added mpcompiler/mmc/extensions/direct/mmc_ext_direct.ml
Properties mpcompiler/mmc/extensions/direct/mmc_ext_direct.ml
Added mpcompiler/mmc/extensions/direct/mmc_ext_direct.mli
Properties mpcompiler/mmc/extensions/direct/mmc_ext_direct.mli
+0 -9 mpcompiler/mmc/extensions/fix/mmc_ext_fix.ml
+0 -7 mpcompiler/mmc/extensions/fix/mmc_ext_fix.mli
+2 -1 mpcompiler/mmc/extensions/fix/mmc_ext_fix_x86.ml
+0 -1 mpcompiler/mmc/extensions/fix/mmc_ext_fix_x86.mli
+9 -9 mpcompiler/mmc/extensions/int/mmc_ext_int.ml
+0 -1 mpcompiler/mmc/extensions/int/mmc_ext_int.mli
+0 -13 mpcompiler/mmc/extensions/loop/mmc_ext_loop.ml
+16 -20 mpcompiler/mmc/extensions/operator/mmc_ext_operator.ml
+0 -9 mpcompiler/mmc/extensions/string/mmc_ext_string.ml
+0 -1 mpcompiler/mmc/extensions/string/mmc_ext_string.mli
+0 -15 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+0 -12 mpcompiler/mmc/extensions/unit/mmc_ext_unit.ml
+1 -0 mpcompiler/mmc/main/mmc_theory.ml
+1 -0 mpcompiler/mmc/main/mmc_theory.mli
+2 -2 mpcompiler/mmc/syntax.pho
+4 -0 mpcompiler/mmc/test/mmc_bool_test.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-08 12:29:49 -0700 (Thu, 08 Apr 2004)
Revision: 5622
Log message:

      Add the type of the continuation to the Front transformation.
      

Changes  Path
+17 -15 mpcompiler/mmc/core/mmc_core_front.ml
+6 -3 mpcompiler/mmc/core/mmc_core_front.mli
+19 -18 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+1 -1 mpcompiler/mmc/extensions/int/mmc_ext_int.ml
+8 -8 mpcompiler/mmc/extensions/operator/mmc_ext_operator.ml
+3 -4 mpcompiler/mmc/test/mmc_int_test.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-08 13:01:25 -0700 (Thu, 08 Apr 2004)
Revision: 5623
Log message:

      Working on type checking for direct functions.
      

Changes  Path
+1 -0 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+5 -4 mpcompiler/mmc/extensions/direct/mmc_ext_direct.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-08 20:24:23 -0700 (Thu, 08 Apr 2004)
Revision: 5624
Log message:

      Stuck in CPS conversion without naming.  There is a bug in CPS;
      it generates code of the form:
      
         let cont : (int -> void) = lambda (res: int). res in ...
      
      No good.  This can be reproduced in Mmc_int_test.test_cps.
      
      There is another longer term problem.  We are starting to get some
      code duplication.  For example, suppose we have a rule that is defined
      for a specific param.  Consider the following:
      
         prim foo :
            ... Lambda["std"] ...
      
      Later, we add a new kind of lambda that is slightly different.  So we copy
      the rule text, just changing the parameter:
      
         prim foo_bar :
            ... Lambda["bar"] ...
      
      This is painful.
      

Changes  Path
+40 -38 mpcompiler/mmc/core/mmc_core_cps.ml
+14 -1 mpcompiler/mmc/core/mmc_core_cps.mli
+2 -0 mpcompiler/mmc/core/mmc_core_front.ml
+39 -9 mpcompiler/mmc/core/mmc_core_type_check.ml
+1 -0 mpcompiler/mmc/core/mmc_core_type_check.mli
+37 -1 mpcompiler/mmc/extensions/direct/mmc_ext_direct.ml
+11 -0 mpcompiler/mmc/test/mmc_int_test.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-09 15:27:36 -0700 (Fri, 09 Apr 2004)
Revision: 5625
Log message:

      A shorter example Mmc_int_test.test_cps1 that shows that CPS
      is broken.
      

Changes  Path
+12 -12 mpcompiler/mmc/extensions/operator/mmc_ext_operator.ml
+7 -3 mpcompiler/mmc/test/mmc_int_test.ml

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2004-04-09 16:47:40 -0700 (Fri, 09 Apr 2004)
Revision: 5626
Log message:

      - The CPS for Ops was very wrong, fixed.
      
      - Updated the mcc script not to expect a specific theory name
        (and renamed it into mmc)
      

Changes  Path
Properties mpcompiler/mmc/arch/util
+4 -0 mpcompiler/mmc/core/mmc_core_cps.ml
+10 -14 mpcompiler/mmc/extensions/operator/mmc_ext_operator.ml
Deleted mpcompiler/mmc/test/mcc
Added mpcompiler/mmc/test/mmc
Properties mpcompiler/mmc/test/mmc

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-09 19:09:14 -0700 (Fri, 09 Apr 2004)
Revision: 5627
Log message:

      Direct calls are closer to working.  However, perhaps a different
      approach is better.  In the new approach, we would use normal
      std and rec functions before closure conversion, and only introduce
      direct calls after closure conversion as an optimization.
      

Changes  Path
+29 -5 mpcompiler/mmc/core/mmc_core_closure.ml
+2 -2 mpcompiler/mmc/core/mmc_core_tast.ml
+2 -0 mpcompiler/mmc/core/mmc_core_theory.ml
+32 -1 mpcompiler/mmc/extensions/direct/mmc_ext_direct.ml
+10 -2 mpcompiler/mmc/extensions/direct/mmc_ext_direct.mli
+9 -3 mpcompiler/mmc/extensions/fix/mmc_ext_fix.ml
+1 -0 mpcompiler/mmc/extensions/fix/mmc_ext_fix.mli
+11 -1 mpcompiler/mmc/test/mmc_int_test.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-10 15:33:53 -0700 (Sat, 10 Apr 2004)
Revision: 5628
Log message:

      Initial version of direct function calls.  This is now a pure optimization,
      so I'll move it to the opt/ directory.
      

Changes  Path
+1 -0 mpcompiler/mmc/core/Files
+61 -25 mpcompiler/mmc/core/mmc_core_closure.ml
+29 -5 mpcompiler/mmc/core/mmc_core_closure.mli
Added mpcompiler/mmc/core/mmc_core_inline.ml
Properties mpcompiler/mmc/core/mmc_core_inline.ml
Added mpcompiler/mmc/core/mmc_core_inline.mli
Properties mpcompiler/mmc/core/mmc_core_inline.mli
+1 -1 mpcompiler/mmc/core/mmc_core_optimize.ml
+23 -1 mpcompiler/mmc/core/mmc_core_type_util.ml
+1 -0 mpcompiler/mmc/core/mmc_core_type_util.mli
+11 -22 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+290 -89 mpcompiler/mmc/extensions/direct/mmc_ext_direct.ml
+24 -4 mpcompiler/mmc/extensions/direct/mmc_ext_direct.mli
+2 -1 mpcompiler/mmc/extensions/fix/mmc_ext_fix.ml
+26 -0 mpcompiler/util/mm_tactic_util.ml
+9 -0 mpcompiler/util/mm_tactic_util.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-10 16:44:10 -0700 (Sat, 10 Apr 2004)
Revision: 5629
Log message:

      The direct function call phase is now an optimization.
      

Changes  Path
+6 -1 mpcompiler/mmc/OMakefile
+0 -1 mpcompiler/mmc/extensions/fix/mmc_ext_fix.ml
+4 -1 mpcompiler/mmc/main/mmc_theory.ml
+4 -1 mpcompiler/mmc/main/mmc_theory.mli
Added mpcompiler/mmc/opt/direct/README
Properties mpcompiler/mmc/opt/direct/README
Properties mpcompiler/mmc/opt/direct/core
Added mpcompiler/mmc/opt/direct/core/Files
Properties mpcompiler/mmc/opt/direct/core/Files
Added mpcompiler/mmc/opt/direct/core/mmc_opt_direct.ml
Properties mpcompiler/mmc/opt/direct/core/mmc_opt_direct.ml
Added mpcompiler/mmc/opt/direct/core/mmc_opt_direct.mli
Properties mpcompiler/mmc/opt/direct/core/mmc_opt_direct.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-10 17:31:44 -0700 (Sat, 10 Apr 2004)
Revision: 5630
Log message:

      Moved beta reduction into the Mmc_core_inline module.
      

Changes  Path
+1 -0 metaprl/editor/ml/mpconfig
+121 -2 mpcompiler/mmc/core/mmc_core_inline.ml
+21 -1 mpcompiler/mmc/core/mmc_core_inline.mli
+16 -51 mpcompiler/mmc/opt/direct/core/mmc_opt_direct.ml
+3 -6 mpcompiler/mmc/opt/direct/core/mmc_opt_direct.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-10 18:52:04 -0700 (Sat, 10 Apr 2004)
Revision: 5631
Log message:

      Added a dead code elimination phase to get rid of at least some of the junk.
      

Changes  Path
+1 -0 metaprl/editor/ml/mpconfig
+1 -0 mpcompiler/mmc/OMakefile
+3 -3 mpcompiler/mmc/arch/x86/mmc_x86_dead.ml
+2 -2 mpcompiler/mmc/arch/x86/mmc_x86_dead.mli
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_theory.ml
+1 -0 mpcompiler/mmc/core/Files
+1 -1 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+1 -0 mpcompiler/mmc/main/mmc_theory.ml
+1 -0 mpcompiler/mmc/main/mmc_theory.mli
Added mpcompiler/mmc/opt/dead/README
Properties mpcompiler/mmc/opt/dead/README
Properties mpcompiler/mmc/opt/dead/core
Added mpcompiler/mmc/opt/dead/core/Files
Properties mpcompiler/mmc/opt/dead/core/Files
Added mpcompiler/mmc/opt/dead/core/mmc_opt_dead.ml
Properties mpcompiler/mmc/opt/dead/core/mmc_opt_dead.ml
Added mpcompiler/mmc/opt/dead/core/mmc_opt_dead.mli
Properties mpcompiler/mmc/opt/dead/core/mmc_opt_dead.mli
+1 -1 mpcompiler/mmc/opt/direct/README

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-10 18:53:05 -0700 (Sat, 10 Apr 2004)
Revision: 5632
Log message:

      The value judgment, used by dead code elimination.
      

Changes  Path
Added mpcompiler/mmc/core/mmc_core_value.ml
Properties mpcompiler/mmc/core/mmc_core_value.ml
Added mpcompiler/mmc/core/mmc_core_value.mli
Properties mpcompiler/mmc/core/mmc_core_value.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-11 12:18:19 -0700 (Sun, 11 Apr 2004)
Revision: 5635
Log message:

      1. Change the opnames in Mmc_core_ast by adding a "U" prefix.
         For example, instead of Lambda[tag:s], we use ULambda[tag:s].
         There are far too many modules that include both Mmc_core_ast
         and Mmc_core_tast, and incorrect naming has been plaguing us.
      
      2. Changing recursive functions to a new form:
      
         sequent [Lambda["rec"]] { f: ty >- sequent [Lambda["std"]] { <H> -> 'e }}
      
         This expression is normally treated as a unit (meaning,
         the Lambda["rec"] doesn't make sense unless its body
         is a Lambda["std"]).
      
         This is cleaner, and allows recursion around other kinds
         of functions.
      

Changes  Path
+13 -13 mpcompiler/mmc/core/mmc_core_ast.ml
+4 -4 mpcompiler/mmc/core/mmc_core_ast.mli
+5 -7 mpcompiler/mmc/core/mmc_core_optimize.ml
+3 -6 mpcompiler/mmc/core/mmc_core_tast.ml
+2 -2 mpcompiler/mmc/core/mmc_core_tast.mli
+8 -22 mpcompiler/mmc/core/mmc_core_type_check.ml
+21 -21 mpcompiler/mmc/core/mmc_core_type_erase.ml
+27 -13 mpcompiler/mmc/core/mmc_core_type_infer.ml
+30 -62 mpcompiler/mmc/extensions/fix/mmc_ext_fix.ml
+2 -2 mpcompiler/mmc/extensions/loop/mmc_ext_loop.ml
+13 -18 mpcompiler/mmc/syntax.pho
+1 -1 mpcompiler/mmc/test/Files
+13 -16 mpcompiler/mmc/test/mmc_array_test.ml
+2 -2 mpcompiler/mmc/test/mmc_spill_test.ml
+1 -0 mpcompiler/util/Files
+5 -5 mpcompiler/util/mm_tactic_util.ml
Added mpcompiler/util/mmc_term_util.ml
Properties mpcompiler/util/mmc_term_util.ml
Added mpcompiler/util/mmc_term_util.mli
Properties mpcompiler/util/mmc_term_util.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-11 15:23:21 -0700 (Sun, 11 Apr 2004)
Revision: 5637
Log message:

      Front-end transformations for recursive functions.
      

Changes  Path
+7 -3 mpcompiler/mmc/base/mmc_base_dform.ml
+2 -0 mpcompiler/mmc/base/mmc_base_dform.mli
+5 -5 mpcompiler/mmc/core/mmc_core_front.ml
+16 -21 mpcompiler/mmc/core/mmc_core_tast.ml
+0 -6 mpcompiler/mmc/core/mmc_core_tast.mli
+11 -0 mpcompiler/mmc/core/mmc_core_type_check.ml
+6 -1 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+1 -0 mpcompiler/mmc/extensions/bool/mmc_ext_bool.mli
+12 -3 mpcompiler/mmc/extensions/fix/mmc_ext_fix.ml
+4 -0 mpcompiler/mmc/extensions/operator/mmc_ext_operator.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-11 15:59:17 -0700 (Sun, 11 Apr 2004)
Revision: 5639
Log message:

      Added closure conversion for recursive functions.
      

Changes  Path
+9 -9 mpcompiler/mmc/core/mmc_core_cps.ml
+18 -3 mpcompiler/mmc/extensions/fix/mmc_ext_fix.ml
+11 -0 mpcompiler/mmc/test/mmc_int_test.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-11 18:42:45 -0700 (Sun, 11 Apr 2004)
Revision: 5640
Log message:

      Added direct-call optimizations for recursive functions.
      Finally, factorial is a loop.
      
      Not quite complete; the types are wrong at the moment.
      

Changes  Path
+1 -0 mpcompiler/mmc/OMakefile
+30 -1 mpcompiler/mmc/core/mmc_core_inline.ml
+5 -0 mpcompiler/mmc/core/mmc_core_inline.mli
+1 -0 mpcompiler/mmc/main/mmc_theory.ml
+16 -16 mpcompiler/mmc/opt/direct/core/mmc_opt_direct.ml
+13 -0 mpcompiler/mmc/opt/direct/core/mmc_opt_direct.mli
Properties mpcompiler/mmc/opt/direct/extensions/fix
Added mpcompiler/mmc/opt/direct/extensions/fix/Files
Properties mpcompiler/mmc/opt/direct/extensions/fix/Files
Added mpcompiler/mmc/opt/direct/extensions/fix/mmc_opt_direct_fix.ml
Properties mpcompiler/mmc/opt/direct/extensions/fix/mmc_opt_direct_fix.ml
Added mpcompiler/mmc/opt/direct/extensions/fix/mmc_opt_direct_fix.mli
Properties mpcompiler/mmc/opt/direct/extensions/fix/mmc_opt_direct_fix.mli

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2004-04-14 16:17:25 -0700 (Wed, 14 Apr 2004)
Revision: 5650
Log message:

      This is a stab at a PPC backend for the compiler.  It's not working yet so don't
      bother trying to use it.  I'm mostly committing this so that I'll have a backup
      and version history in CVS, and so that others in the group are aware of what
      I'm doing.
      
      These files are essentially just ports of the x86 versions with a few
      intelligent changes and a few not-so-intelligent changes made.  I think I've
      done a decent job adapting the asm and frame to PPC but other areas are not
      well thought out yet.
      

Changes  Path
Added mpcompiler/mmc/arch/ppc/Files
Properties mpcompiler/mmc/arch/ppc/Files
Added mpcompiler/mmc/arch/ppc/README
Properties mpcompiler/mmc/arch/ppc/README
Added mpcompiler/mmc/arch/ppc/TODO
Properties mpcompiler/mmc/arch/ppc/TODO
Added mpcompiler/mmc/arch/ppc/mmc_ppc_asm.ml
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_asm.ml
Added mpcompiler/mmc/arch/ppc/mmc_ppc_asm.mli
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_asm.mli
Added mpcompiler/mmc/arch/ppc/mmc_ppc_backend.ml
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_backend.ml
Added mpcompiler/mmc/arch/ppc/mmc_ppc_backend.mli
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_backend.mli
Added mpcompiler/mmc/arch/ppc/mmc_ppc_closure.ml
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_closure.ml
Added mpcompiler/mmc/arch/ppc/mmc_ppc_closure.mli
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_closure.mli
Added mpcompiler/mmc/arch/ppc/mmc_ppc_coalesce.ml
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_coalesce.ml
Added mpcompiler/mmc/arch/ppc/mmc_ppc_coalesce.mli
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_coalesce.mli
Added mpcompiler/mmc/arch/ppc/mmc_ppc_codegen.ml
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_codegen.ml
Added mpcompiler/mmc/arch/ppc/mmc_ppc_codegen.mli
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_codegen.mli
Added mpcompiler/mmc/arch/ppc/mmc_ppc_convention.ml
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_convention.ml
Added mpcompiler/mmc/arch/ppc/mmc_ppc_convention.mli
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_convention.mli
Added mpcompiler/mmc/arch/ppc/mmc_ppc_dead.ml
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_dead.ml
Added mpcompiler/mmc/arch/ppc/mmc_ppc_dead.mli
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_dead.mli
Added mpcompiler/mmc/arch/ppc/mmc_ppc_frame.ml
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_frame.ml
Added mpcompiler/mmc/arch/ppc/mmc_ppc_frame.mli
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_frame.mli
Added mpcompiler/mmc/arch/ppc/mmc_ppc_hoist.ml
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_hoist.ml
Added mpcompiler/mmc/arch/ppc/mmc_ppc_hoist.mli
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_hoist.mli
Added mpcompiler/mmc/arch/ppc/mmc_ppc_opt1.ml
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_opt1.ml
Added mpcompiler/mmc/arch/ppc/mmc_ppc_opt1.mli
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_opt1.mli
Added mpcompiler/mmc/arch/ppc/mmc_ppc_prologue.ml
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_prologue.ml
Added mpcompiler/mmc/arch/ppc/mmc_ppc_prologue.mli
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_prologue.mli
Added mpcompiler/mmc/arch/ppc/mmc_ppc_regalloc.ml
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_regalloc.ml
Added mpcompiler/mmc/arch/ppc/mmc_ppc_regalloc.mli
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_regalloc.mli
Added mpcompiler/mmc/arch/ppc/mmc_ppc_slop.ml
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_slop.ml
Added mpcompiler/mmc/arch/ppc/mmc_ppc_slop.mli
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_slop.mli
Added mpcompiler/mmc/arch/ppc/mmc_ppc_spill.ml
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_spill.ml
Added mpcompiler/mmc/arch/ppc/mmc_ppc_spill.mli
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_spill.mli
Added mpcompiler/mmc/arch/ppc/mmc_ppc_theory.ml
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_theory.ml
Added mpcompiler/mmc/arch/ppc/mmc_ppc_theory.mli
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_theory.mli
Added mpcompiler/mmc/arch/ppc/mmc_ppc_util.ml
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_util.ml
Added mpcompiler/mmc/arch/ppc/mmc_ppc_util.mli
Properties mpcompiler/mmc/arch/ppc/mmc_ppc_util.mli

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2004-04-15 17:11:39 -0700 (Thu, 15 Apr 2004)
Revision: 5653
Log message:

      Killed ast_util.  Nobody uses it.
      
      A couple of trivial additions for the ppc backend and comment corrections.
      

Changes  Path
+1 -0 mpcompiler/mmc/OMakefile
Properties mpcompiler/mmc/arch/ppc
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_codegen.ml
Deleted mpcompiler/mmc/core/mmc_core_ast_util.ml
Deleted mpcompiler/mmc/core/mmc_core_ast_util.mli

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2004-04-15 18:21:48 -0700 (Thu, 15 Apr 2004)
Revision: 5654
Log message:

      Forgot to remove ast_util from the Files.
      

Changes  Path
+0 -1 mpcompiler/mmc/core/Files

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2004-04-15 18:25:40 -0700 (Thu, 15 Apr 2004)
Revision: 5655
Log message:

      - Added a Constrain to the let_var_optimize to keep it "information preserving".
      - Added couple more simple optimizations for the typed language.
      - Added stuckC reporting to Front.
      - Added a Front conversion for TyLambda.
      

Changes  Path
+6 -0 mpcompiler/mmc/core/mmc_core_front.ml
+7 -1 mpcompiler/mmc/core/mmc_core_optimize.ml
+2 -0 mpcompiler/mmc/test/mmc_bool_test.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-15 19:38:03 -0700 (Thu, 15 Apr 2004)
Revision: 5656
Log message:

      Added a comment on the front-end conversion of short-circuit
      Boolean operations.
      
      Note: as discussed the entire front stage (Mmc_core_front) is
      going away.  Some notes to whoever is in charge of this:
      
      Requirements:
         1. There should be a stage before the backend that makes sure
            that all control-flow operations (conditionals) are in
            tail position.
      
         2. There needs to be a stage to remove syntactic sugar from
            the source program.  Ideally, this should be done after type
            inference.
      
      Items to consider:
         1. I am not entirely sure that all syntactic sugar is context-free,
            but perhaps it is.  We can live with "macro-expansion" for now.
            The code for conditionals will be clearly suboptimal, but
            perhaps we can fix this up in a later optimization.
      
         2. For now, let's keep the core language after front-end
            conversions as small as possible.  Clearly, we can get
            more optimal code if we preserve the constructs (like
            loops, short-circuit Boolean operations, etc).  However,
            I think we should think about correctness first, optimization
            later.  In particular, if we can assume that If{'e1; 'e2; 'e3}
            is the only operator having non-strict evaluation, we will
            have fewer headaches.
      

Changes  Path
+4 -1 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-15 19:39:40 -0700 (Thu, 15 Apr 2004)
Revision: 5657
Log message:

      Loops should use "rec" functions, not "direct".  Lambda["direct"]
      are only introduced after closure conversion as an optimization.
      

Changes  Path
+1 -1 mpcompiler/mmc/extensions/loop/mmc_ext_loop.ml

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2004-04-16 17:31:37 -0700 (Fri, 16 Apr 2004)
Revision: 5663
Log message:

      Declared a "default_extract" term and killed all those annoying "= it".
      

Changes  Path
+4 -0 mpcompiler/mmc/base/mmc_base_judgment.ml
+4 -0 mpcompiler/mmc/base/mmc_base_judgment.mli
+0 -2 mpcompiler/mmc/core/mmc_core_cps.ml
+0 -1 mpcompiler/mmc/core/mmc_core_front.ml
+0 -1 mpcompiler/mmc/core/mmc_core_hoist.ml
+2 -2 mpcompiler/mmc/core/mmc_core_list_util.ml
+0 -1 mpcompiler/mmc/core/mmc_core_reserve.ml
+4 -30 mpcompiler/mmc/core/mmc_core_type_check.ml
+0 -1 mpcompiler/mmc/core/mmc_core_type_infer.ml
+4 -4 mpcompiler/mmc/extensions/array/mmc_ext_array.ml
+10 -10 mpcompiler/mmc/extensions/bool/mmc_ext_bool.ml
+0 -1 mpcompiler/mmc/extensions/fix/mmc_ext_fix.ml
+15 -15 mpcompiler/mmc/extensions/int/mmc_ext_int.ml
+0 -1 mpcompiler/mmc/extensions/loop/mmc_ext_loop.ml
+2 -3 mpcompiler/mmc/extensions/operator/mmc_ext_operator.ml
+0 -2 mpcompiler/mmc/extensions/reserve/mmc_ext_reserve.ml
+0 -3 mpcompiler/mmc/extensions/special/mmc_ext_special.ml
+2 -2 mpcompiler/mmc/extensions/string/mmc_ext_string.ml
+2 -2 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+2 -2 mpcompiler/mmc/extensions/unit/mmc_ext_unit.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-19 15:22:32 -0700 (Mon, 19 Apr 2004)
Revision: 5675
Log message:

      This is the update corresponding to yesterday's Lm_format
      change in MetaPRL.  Forgot to do the separate commit.
      

Changes  Path
+1 -1 mpcompiler/mmc/arch/ra/mmc_ra_live.ml
+6 -6 mpcompiler/mmc/arch/ra/mmc_ra_main.ml
+1 -1 mpcompiler/mmc/arch/ra/mmc_ra_type.mlz
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_backend.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_backend.mli
+4 -3 mpcompiler/mmc/arch/x86/mmc_x86_regalloc.ml
+2 -1 mpcompiler/mmc/base/mmc_base_standardize.ml
+3 -2 mpcompiler/mmc/core/mmc_core_type_infer.ml
+2 -1 mpcompiler/util/mm_tactic_util.ml

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2004-04-20 20:34:22 -0700 (Tue, 20 Apr 2004)
Revision: 5683
Log message:

      Use the new resource syntax in MMC.
      

Changes  Path
+1 -1 mpcompiler/mmc/arch/ppc/mmc_ppc_closure.ml
+1 -1 mpcompiler/mmc/arch/ppc/mmc_ppc_convention.ml
+1 -1 mpcompiler/mmc/arch/ppc/mmc_ppc_dead.ml
+1 -1 mpcompiler/mmc/arch/ppc/mmc_ppc_frame.ml
+1 -1 mpcompiler/mmc/arch/ppc/mmc_ppc_opt1.ml
+3 -3 mpcompiler/mmc/arch/ppc/mmc_ppc_prologue.ml
+1 -1 mpcompiler/mmc/arch/ppc/mmc_ppc_slop.ml
+1 -1 mpcompiler/mmc/arch/ppc/mmc_ppc_spill.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_closure.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_convention.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_dead.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_frame.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_opt1.ml
+3 -3 mpcompiler/mmc/arch/x86/mmc_x86_prologue.ml
+2 -2 mpcompiler/mmc/arch/x86/mmc_x86_slop.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_spill.ml
+4 -4 mpcompiler/mmc/core/mmc_core_closure.ml
+1 -1 mpcompiler/mmc/core/mmc_core_cps.ml
+1 -1 mpcompiler/mmc/core/mmc_core_def.ml
+1 -1 mpcompiler/mmc/core/mmc_core_front.ml
+3 -3 mpcompiler/mmc/core/mmc_core_inline.ml
+1 -1 mpcompiler/mmc/core/mmc_core_optimize.ml
+4 -4 mpcompiler/mmc/core/mmc_core_reserve.ml
+1 -1 mpcompiler/mmc/core/mmc_core_type_erase.ml
+1 -1 mpcompiler/mmc/core/mmc_core_type_util.ml
+1 -1 mpcompiler/mmc/core/mmc_core_value.ml
+1 -1 mpcompiler/mmc/opt/dead/core/mmc_opt_dead.ml
+4 -4 mpcompiler/mmc/opt/direct/core/mmc_opt_direct.ml

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2004-04-21 18:58:36 -0700 (Wed, 21 Apr 2004)
Revision: 5690
Log message:

      Use a better .cvsignore
      

Changes  Path
Properties mpcompiler/mmc/arch/ppc

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2004-04-21 22:35:30 -0700 (Wed, 21 Apr 2004)
Revision: 5693
Log message:

      The MMC part of the AutoMustComplete change.
      

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

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2004-04-22 16:49:20 -0700 (Thu, 22 Apr 2004)
Revision: 5697
Log message:

      Preparing to start on the LIR.
      

Changes  Path
Properties mpcompiler/mmc/lir
Added mpcompiler/mmc/lir/LIR-notes.txt
Properties mpcompiler/mmc/lir/LIR-notes.txt

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2004-04-22 18:08:02 -0700 (Thu, 22 Apr 2004)
Revision: 5698
Log message:

      More notes.
      

Changes  Path
+8 -5 mpcompiler/mmc/lir/LIR-notes.txt

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2004-04-23 14:32:48 -0700 (Fri, 23 Apr 2004)
Revision: 5705
Log message:

      Won't try to build the x86 runtime on ppc architecture anymore.  In the future
      we'll want to fix this to allow cross-compilation.  We also probably want to
      push the architecture detection up into OMake.
      

Changes  Path
+19 -1 mpcompiler/mmc/OMakefile

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2004-04-23 17:57:30 -0700 (Fri, 23 Apr 2004)
Revision: 5707
Log message:

      Started to add some lir files.  Now you guys can tell me how I did it wrong.
      Take a look at mmc_lir_of_ast.ml and let me know how it's really supposed to
      work.
      

Changes  Path
+1 -1 mpcompiler/mmc/lir/LIR-notes.txt
Added mpcompiler/mmc/lir/mmc_lir_ast.ml
Properties mpcompiler/mmc/lir/mmc_lir_ast.ml
Added mpcompiler/mmc/lir/mmc_lir_of_tast.ml
Properties mpcompiler/mmc/lir/mmc_lir_of_tast.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-23 19:18:36 -0700 (Fri, 23 Apr 2004)
Revision: 5709
Log message:

      This is the matching commit against the MetaPRL update, for MMC to use Lm_printf.
      

Changes  Path
+0 -1 mpcompiler/mmc/arch/x86/mmc_x86_regalloc.ml
+0 -1 mpcompiler/mmc/base/mmc_base_standardize.ml
+11 -5 mpcompiler/mmc/core/mmc_core_type_infer.ml
+0 -1 mpcompiler/util/mm_tactic_util.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2004-04-24 17:34:12 -0700 (Sat, 24 Apr 2004)
Revision: 5715
Log message:

      Matching IO commit for MMC.
      

Changes  Path
+1 -1 mpcompiler/mmc/arch/ra/mmc_ra_live.ml
+6 -6 mpcompiler/mmc/arch/ra/mmc_ra_main.ml
+1 -1 mpcompiler/mmc/arch/ra/mmc_ra_type.mlz
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_backend.ml
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_backend.mli
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_regalloc.ml
+1 -1 mpcompiler/mmc/core/mmc_core_type_infer.ml

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2004-04-27 22:43:09 -0700 (Tue, 27 Apr 2004)
Revision: 5737
Log message:

      - BoundsCheck belongs to ext_array, not core_mem
      - We need two versions of Reserve - Reserve[i] in core_mem
      and reserve[e] in ext_array.
      

Changes  Path
+3 -2 mpcompiler/mmc/lir/LIR-notes.txt

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2004-04-28 14:56:59 -0700 (Wed, 28 Apr 2004)
Revision: 5738
Log message:

      Notes updates from the compiler meeting.
      

Changes  Path
+7 -2 mpcompiler/mmc/lir/LIR-notes.txt

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2004-04-29 19:36:27 -0700 (Thu, 29 Apr 2004)
Revision: 5742
Log message:

      The new file mmc_lir_simplify is a first draft of the code to eliminate all
      "closure" and "std" lambdas/apply's/tyfun's.  There are problems with types that
      aren't (and can't be) available.  As Aleksey realized this evening, closures
      should have existential type (the caller of a function can't know about the
      function's environment type).  So should we add this as an extension or as a
      core feature?  The other option is to push this stage back into the weakly-typed
      stage of the compiler and just fudge it.
      

Changes  Path
+4 -0 mpcompiler/mmc/lir/mmc_lir_of_tast.ml
Added mpcompiler/mmc/lir/mmc_lir_simplify.ml
Properties mpcompiler/mmc/lir/mmc_lir_simplify.ml

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2004-04-30 04:18:35 -0700 (Fri, 30 Apr 2004)
Revision: 5743
Log message:

      Added an extension for an existential type with pack/unpack. Untested.
      

Changes  Path
+1 -0 mpcompiler/mmc/OMakefile
Properties mpcompiler/mmc/extensions/exst_type
Added mpcompiler/mmc/extensions/exst_type/Files
Properties mpcompiler/mmc/extensions/exst_type/Files
Added mpcompiler/mmc/extensions/exst_type/mmc_ext_exst_type.ml
Properties mpcompiler/mmc/extensions/exst_type/mmc_ext_exst_type.ml
Added mpcompiler/mmc/extensions/exst_type/mmc_ext_exst_type.mli
Properties mpcompiler/mmc/extensions/exst_type/mmc_ext_exst_type.mli

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2004-04-30 17:21:09 -0700 (Fri, 30 Apr 2004)
Revision: 5747
Log message:

      Finished renaming tyexists extension.
      

Changes  Path
Properties mpcompiler/mmc/extensions/tyexists
Added mpcompiler/mmc/extensions/tyexists/Files
Properties mpcompiler/mmc/extensions/tyexists/Files
Added mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists.ml
Properties mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists.ml
Added mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists.mli
Properties mpcompiler/mmc/extensions/tyexists/mmc_ext_tyexists.mli

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2004-04-30 17:22:52 -0700 (Fri, 30 Apr 2004)
Revision: 5748
Log message:

      More commits from renaming tyexists extension.
      

Changes  Path
+1 -1 mpcompiler/mmc/OMakefile