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/opt/loopify.sml
ViewVC logotype

Diff of /sml/trunk/src/compiler/FLINT/opt/loopify.sml

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

revision 220, Tue Mar 9 02:15:05 1999 UTC revision 422, Sun Sep 5 22:49:38 1999 UTC
# Line 12  Line 12 
12  local  local
13      structure F  = FLINT      structure F  = FLINT
14      structure O  = Option      structure O  = Option
15      structure M  = IntmapF      structure M  = IntBinaryMap
16      structure S  = IntSetF      structure S  = IntSetF
17      structure OU = OptUtils      structure OU = OptUtils
18      structure LK = LtyKernel      structure LK = LtyKernel
# Line 176  Line 176 
176                                        ListPair.foldr drop_invariant                                        ListPair.foldr drop_invariant
177                                                       ([],[],[],[])                                                       ([],[],[],[])
178                                                       (args, actuals)                                                       (args, actuals)
179                                in (M.add(m, f, (fl, fcall)),                                in (M.insert(m, f, (fl, fcall)),
180                                    afun, acall, afree, fl)                                    afun, acall, afree, fl)
181                                end                                end
182    
# Line 217  Line 217 
217       | F.APP(F.VAR f,vs) =>       | F.APP(F.VAR f,vs) =>
218         (case List.find (fn (ft,ft',filt) => ft = f) tfs         (case List.find (fn (ft,ft',filt) => ft = f) tfs
219           of SOME(ft, ft', filt) => F.APP(F.VAR ft', OU.filter filt vs)           of SOME(ft, ft', filt) => F.APP(F.VAR ft', OU.filter filt vs)
220            | NONE => let val (fl,filt) = M.lookup m f            | NONE =>
221              in F.APP(F.VAR fl, OU.filter filt vs)              (case M.find(m,f)
222              end handle M.IntmapF => le)                of SOME(fl, filt) =>
223                       F.APP(F.VAR fl, OU.filter filt vs)
224                   | NONE => le
225                (*esac*))
226       | F.TFN((tfk,f,args,body),le) => F.TFN((tfk, f, args, loop body), loop le)       | F.TFN((tfk,f,args,body),le) => F.TFN((tfk, f, args, loop body), loop le)
227       | F.TAPP(f,tycs) => le       | F.TAPP(f,tycs) => le
228       | F.SWITCH(v,ac,arms,def) =>       | F.SWITCH(v,ac,arms,def) =>
# Line 245  Line 248 
248  end  end
249  end  end
250    
251    

Legend:
Removed from v.220  
changed lines
  Added in v.422

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