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 /MLRISC/releases/release-110.79/ra/cluster-partitioner.sml
ViewVC logotype

Diff of /MLRISC/releases/release-110.79/ra/cluster-partitioner.sml

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

revision 651, Thu Jun 1 18:34:03 2000 UTC revision 744, Fri Dec 8 04:11:42 2000 UTC
# Line 30  Line 30 
30      * Partition the cluster into a set of clusters so that each can      * Partition the cluster into a set of clusters so that each can
31      * be allocated independently.      * be allocated independently.
32      *)      *)
33     fun partition(F.CLUSTER{blkCounter, blocks, entry, exit, regmap,     fun partition(F.CLUSTER{blkCounter, blocks, entry, exit,
34                             annotations, ...})                             annotations, ...})
35          cellkind processRegion =          cellkind processRegion =
36         (* Number of basic blocks *)         (* Number of basic blocks *)
# Line 46  Line 46 
46          * Unfortunately, I know of no way of avoiding this step because          * Unfortunately, I know of no way of avoiding this step because
47          * we have to know which values are live across regions.          * we have to know which values are live across regions.
48          *)          *)
49         val _ = Liveness.liveness{regmap=C.lookup regmap,         val _ = Liveness.liveness{blocks=blocks,
                                  blocks=blocks,  
50                                   defUse=InsnProps.defUse cellkind,                                   defUse=InsnProps.defUse cellkind,
51                                   getCell=C.getCell cellkind,                                   getCell=C.CellSet.get cellkind,
52                                   updateCell=C.updateCell cellkind                                   updateCell=C.CellSet.update cellkind
53                                  }                                  }
54    
55         val F.ENTRY{succ=entrySucc, ...} = entry         val F.ENTRY{succ=entrySucc, ...} = entry
# Line 181  Line 180 
180                         (* To save space, clear liveIn and                         (* To save space, clear liveIn and
181                          * liveOut information (if it is not an exit)                          * liveOut information (if it is not an exit)
182                          *)                          *)
183                         liveIn := C.empty;                         liveIn := C.CellSet.empty;
184                         if exit then () else liveOut := C.empty;                         if exit then () else liveOut := C.CellSet.empty;
185                         processNodes(nodes, trail)                         processNodes(nodes, trail)
186                     end                     end
187                   | processNodes _ = error "processNodes"                   | processNodes _ = error "processNodes"
# Line 197  Line 196 
196             val trail = makeSubgraph(blocks)             val trail = makeSubgraph(blocks)
197    
198             val region =             val region =
199                 F.CLUSTER{regmap      = regmap,                 F.CLUSTER{blkCounter  = blkCounter,
                          blkCounter  = blkCounter,  
200                           blocks      = blocks,                           blocks      = blocks,
201                           entry       = entry,                           entry       = entry,
202                           exit        = exit,                           exit        = exit,

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

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