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/compiler/CodeGen/cpscompile/memAliasing.sml
ViewVC logotype

Diff of /sml/trunk/compiler/CodeGen/cpscompile/memAliasing.sml

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

revision 733, Fri Nov 17 05:13:45 2000 UTC revision 772, Thu Jan 4 15:36:41 2001 UTC
# Line 224  Line 224 
224             fun sethdlr x = PT.strongUpdate(exnptr, 0, value x)             fun sethdlr x = PT.strongUpdate(exnptr, 0, value x)
225             fun setvar  x = PT.strongUpdate(varptr, 0, value x)             fun setvar  x = PT.strongUpdate(varptr, 0, value x)
226    
227               (* I don't know whether the following makes any sense...
228                * Basically, I want to ignore this aliasing analysis
229                * as far as raw access is concerned.  (The invariant is
230                * that raw access NEVER occurs to any memory location
231                * that ML "knows" about.  -- Blume (2000/1/1) *)
232               fun rawstore (a, x) = ()
233               fun rawload (a, x) = top
234    
235             fun infer(C.RECORD(rk,vs,x,k),hp) =             fun infer(C.RECORD(rk,vs,x,k),hp) =
236                   (mkRecord(rk,x,vs,hp); infer(k,allocRecord(rk,vs,hp)))                   (mkRecord(rk,x,vs,hp); infer(k,allocRecord(rk,vs,hp)))
237               | infer(C.SELECT(i,v,x,cty,k),hp) = (select(i,v,x); infer(k,hp))               | infer(C.SELECT(i,v,x,cty,k),hp) = (select(i,v,x); infer(k,hp))
# Line 281  Line 289 
289               | infer(C.LOOKER(P.getvar,[],x,_,k),hp) = (getvar x; infer(k,hp))               | infer(C.LOOKER(P.getvar,[],x,_,k),hp) = (getvar x; infer(k,hp))
290    
291               | infer(C.LOOKER(P.deflvar,[],x,cty,k),hp) = infer(k,hp) (* nop! *)               | infer(C.LOOKER(P.deflvar,[],x,cty,k),hp) = infer(k,hp) (* nop! *)
292                 | infer (C.LOOKER (P.rawload _, [a], x, _, k), hp) =
293                     (rawload (x, a); infer(k,hp))
294    
295                 (* Setters *)                 (* Setters *)
296               | infer(C.SETTER(P.assign, [a,v], k),hp) =               | infer(C.SETTER(P.assign, [a,v], k),hp) =
# Line 300  Line 310 
310    
311               | infer(C.SETTER(P.sethdlr, [x], k), hp) = (sethdlr x; infer(k,hp))               | infer(C.SETTER(P.sethdlr, [x], k), hp) = (sethdlr x; infer(k,hp))
312               | infer(C.SETTER(P.setvar, [x], k), hp) = (setvar x; infer(k,hp))               | infer(C.SETTER(P.setvar, [x], k), hp) = (setvar x; infer(k,hp))
313                 | infer (C.SETTER (P.rawstore _, [a, x], k), hp) =
314                     (rawstore (a, x); infer (k, hp))
315    
316                  (* Apparently these are nops (see MLRiscGen.sml) *)                  (* Apparently these are nops (see MLRiscGen.sml) *)
317               | infer(C.SETTER(P.uselvar, [x], k), hp) = infer(k, hp)               | infer(C.SETTER(P.uselvar, [x], k), hp) = infer(k, hp)

Legend:
Removed from v.733  
changed lines
  Added in v.772

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