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/MLRISC/ra/ra-spill-with-renaming.sml
ViewVC logotype

Diff of /sml/trunk/src/MLRISC/ra/ra-spill-with-renaming.sml

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

revision 705, Wed Sep 27 18:44:44 2000 UTC revision 714, Mon Oct 23 23:39:43 2000 UTC
# Line 409  Line 409 
409              *    spill tmp to spillLoc /* spill d */              *    spill tmp to spillLoc /* spill d */
410              *              *
411              *)              *)
412             fun spillCopyDst(instr,regToSpill,spillLoc,kill,env,don'tOverwrite) =             fun spillCopyDst(pt,instr,regToSpill,spillLoc,
413                                kill,env,don'tOverwrite) =
414             let val (dst, src) = P.moveDstSrc instr             let val (dst, src) = P.moveDstSrc instr
415                 val (mvSrc,copyDst,copySrc,kill) =                 val (mvSrc,copyDst,copySrc,kill) =
416                      extractDef(regToSpill,dst,src,kill)                      extractDef(regToSpill,dst,src,kill)
# Line 433  Line 434 
434                       val spillCode = spillSrc{src=tmp,reg=regToSpill,                       val spillCode = spillSrc{src=tmp,reg=regToSpill,
435                                                spillLoc=spillLoc,                                                spillLoc=spillLoc,
436                                                annotations=annotations}                                                annotations=annotations}
437                   in  (copy @ spillCode, [])                   in  (copy @ spillCode, [(regToSpill,tmp,pt)])
438                   end                   end
439                   else                   else
440                   let (* spill the move instruction *)                   let (* spill the move instruction *)
441                       val spillCode = spillSrc{src=mvSrc,reg=regToSpill,                       val spillCode = spillSrc{src=mvSrc,reg=regToSpill,
442                                                spillLoc=spillLoc,                                                spillLoc=spillLoc,
443                                                annotations=annotations}                                                annotations=annotations}
444                   in  (spillCode @ copy, [])                   in  (spillCode @ copy, [(regToSpill,mvSrc,pt)])
445                   end                   end
446             end             end
447    
# Line 449  Line 450 
450              *)              *)
451             fun spillCopy(pt,instr,regToSpill,spillLoc,kill,env,don'tOverwrite) =             fun spillCopy(pt,instr,regToSpill,spillLoc,kill,env,don'tOverwrite) =
452                 case P.moveTmpR instr of                 case P.moveTmpR instr of
453                   NONE => spillCopyDst(instr,regToSpill,spillLoc,kill,env,                   NONE => spillCopyDst(pt,instr,regToSpill,spillLoc,kill,env,
454                                        don'tOverwrite)                                        don'tOverwrite)
455                 | SOME tmp =>                 | SOME tmp =>
456                     if regmap tmp = regToSpill                     if regmap tmp = regToSpill
457                     then ((* spilledCopyTmps := !spilledCopyTmps + 1; *)                     then ((* spilledCopyTmps := !spilledCopyTmps + 1; *)
458                           [spillCopyTmp{copy=instr, spillLoc=spillLoc,                           [spillCopyTmp{copy=instr, spillLoc=spillLoc,
459                                        annotations=annotations}], [])                                        annotations=annotations}], [])
460                     else spillCopyDst(instr,regToSpill,spillLoc,kill,                     else spillCopyDst(pt,instr,regToSpill,spillLoc,kill,
461                                       env, don'tOverwrite)                                       env, don'tOverwrite)
462    
463             (*             (*

Legend:
Removed from v.705  
changed lines
  Added in v.714

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