Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/src/compiler/FLINT/cpsopt/contract.sml
ViewVC logotype

Diff of /sml/trunk/src/compiler/FLINT/cpsopt/contract.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

sml/branches/SMLNJ/src/compiler/FLINT/cpsopt/contract.sml revision 69, Fri Apr 3 00:06:55 1998 UTC sml/trunk/src/compiler/FLINT/cpsopt/contract.sml revision 651, Thu Jun 1 18:34:03 2000 UTC
# Line 462  Line 462 
462          | (OFFinfo _) => P.boxedupdate          | (OFFinfo _) => P.boxedupdate
463          | _ => P.update          | _ => P.update
464          (* end case *))          (* end case *))
465      | setter (P.assign, [_, INT _]) = P.unboxedassign
466    | setter (i, _) = i    | setter (i, _) = i
467    
468  fun sameLvar(lvar, VAR lv) = lv = lvar  fun sameLvar(lvar, VAR lv) = lv = lvar
# Line 535  Line 536 
536                                       of {info=RECinfo vl,...} =>                                       of {info=RECinfo vl,...} =>
537                                           (let val z = #1(List.nth(vl,i))                                           (let val z = #1(List.nth(vl,i))
538                                                val z' = ren z                                                val z' = ren z
539                                            in if (!CG.liftLiterals)                                            in
540                                               then (case z'                                               case z'
541                                                      of REAL _ => NONE                                                      of REAL _ => NONE
542                                                       | _  => SOME z')                                                  | _  => SOME z'
                                              else SOME z'  
543                                            end handle Subscript => NONE)                                            end handle Subscript => NONE)
544                                        | _ => NONE)                                        | _ => NONE)
545                                 | _ => NONE)                                 | _ => NONE)
# Line 1032  Line 1032 
1032      cpssize := Intmap.elems m;      cpssize := Intmap.elems m;
1033      let val cexp' = reduce cexp      let val cexp' = reduce cexp
1034      in  debugprint "\n";      in  debugprint "\n";
1035          if debug andalso !CG.misc4=16          if debug
1036              then (debugprint "After contract: \n";              then (debugprint "After contract: \n";
1037                    PPCps.prcps cexp')                    PPCps.prcps cexp')
1038          else ();          else ();
# Line 1043  Line 1043 
1043  end (* toplevel local *)  end (* toplevel local *)
1044  end (* functor Contract *)  end (* functor Contract *)
1045    
   
 (*  
  * $Log: contract.sml,v $  
  * Revision 1.3  1997/02/14  16:34:53  george  
  *   Fixed a bug in constant folding  
  *     P.arith{oper=P./,kind=P.INT 31}, [INT i, INT j]) to INT(i div j).  
  *     It should really be quot(i,j).  
  *     This bug manifest as incorrect results when evaluation 7 div ~4.  
  *  
  * Revision 1.2  1997/02/08  00:09:31  george  
  *   Fixed bug in reduction of (TESTU(n,m) o COPY(p,n)) to COPY(p,m)  
  *   when m = p.  
  *  
  * Revision 1.1.1.1  1997/01/14  01:38:30  george  
  *   Version 109.24  
  *  
  *)  

Legend:
Removed from v.69  
changed lines
  Added in v.651

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0