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