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/sparc/ra/sparcRewrite.sml
ViewVC logotype

Diff of /sml/trunk/src/MLRISC/sparc/ra/sparcRewrite.sml

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

revision 651, Thu Jun 1 18:34:03 2000 UTC revision 657, Fri Jun 9 05:20:54 2000 UTC
# Line 1  Line 1 
1  functor SparcRewrite(Instr:SPARCINSTR) =  functor SparcRewrite(Instr:SPARCINSTR) =
2  struct  struct
3     structure I = Instr     structure I = Instr
4       structure C = I.C
5    
6     fun rwset(S,rw) = SortedList.uniq(map rw S)     fun rwset(S,rw) = SortedList.uniq(map rw S)
7    
# Line 31  Line 32 
32         | I.Ticc{t,cc,r,i} => I.Ticc{t=t,cc=cc,r=R r,i=O i}         | I.Ticc{t,cc,r,i} => I.Ticc{t=t,cc=cc,r=R r,i=O i}
33         | I.COPY{src,dst,tmp,impl} =>         | I.COPY{src,dst,tmp,impl} =>
34             I.COPY{src=map R src,dst=dst,tmp=tmp,impl=impl}             I.COPY{src=map R src,dst=dst,tmp=tmp,impl=impl}
35         | I.ANNOTATION{i,a} => I.ANNOTATION{i=rewriteUse(mapr,i,rs,rt),a=a}         | I.ANNOTATION{i,a} =>
36               I.ANNOTATION{i=rewriteUse(mapr,i,rs,rt),
37                            a=case a of
38                               C.DEF_USE{cellkind=C.GP,defs,uses} =>
39                                 C.DEF_USE{cellkind=C.GP,uses=map R uses,
40                                           defs=defs}
41                              | _ => a}
42         | _ => instr         | _ => instr
43     end     end
44    
# Line 56  Line 63 
63         | I.RDY{d} => I.RDY{d=R d}         | I.RDY{d} => I.RDY{d=R d}
64         | I.COPY{src,dst,tmp,impl} =>         | I.COPY{src,dst,tmp,impl} =>
65             I.COPY{src=src,dst=map R dst,tmp=ea tmp,impl=impl}             I.COPY{src=src,dst=map R dst,tmp=ea tmp,impl=impl}
66         | I.ANNOTATION{i,a} => I.ANNOTATION{i=rewriteDef(mapr,i,rs,rt),a=a}         | I.ANNOTATION{i,a} =>
67               I.ANNOTATION{i=rewriteDef(mapr,i,rs,rt),
68                            a=case a of
69                               C.DEF_USE{cellkind=C.GP,defs,uses} =>
70                                 C.DEF_USE{cellkind=C.GP,uses=uses,
71                                           defs=map R defs}
72                              | _ => a}
73         | _ => instr         | _ => instr
74     end     end
75    
# Line 75  Line 88 
88             I.CALL{defs=defs,uses=(A,rwset(B,R),C),label=label,nop=nop,mem=mem}             I.CALL{defs=defs,uses=(A,rwset(B,R),C),label=label,nop=nop,mem=mem}
89         | I.FCOPY{src,dst,tmp,impl} =>         | I.FCOPY{src,dst,tmp,impl} =>
90             I.FCOPY{src=map R src,dst=dst,tmp=tmp,impl=impl}             I.FCOPY{src=map R src,dst=dst,tmp=tmp,impl=impl}
91         | I.ANNOTATION{i,a} => I.ANNOTATION{i=frewriteUse(mapr,i,rs,rt),a=a}         | I.ANNOTATION{i,a} =>
92               I.ANNOTATION{i=frewriteUse(mapr,i,rs,rt),
93                            a=case a of
94                               C.DEF_USE{cellkind=C.FP,defs,uses} =>
95                                 C.DEF_USE{cellkind=C.FP,uses=map R uses,
96                                           defs=defs}
97                              | _ => a}
98         | _ => instr         | _ => instr
99     end     end
100    
# Line 95  Line 114 
114             I.CALL{defs=(A,rwset(B,R),C),uses=uses,label=label,nop=nop,mem=mem}             I.CALL{defs=(A,rwset(B,R),C),uses=uses,label=label,nop=nop,mem=mem}
115         | I.FCOPY{src,dst,tmp,impl} =>         | I.FCOPY{src,dst,tmp,impl} =>
116             I.FCOPY{src=src,dst=map R dst,tmp=ea tmp,impl=impl}             I.FCOPY{src=src,dst=map R dst,tmp=ea tmp,impl=impl}
117         | I.ANNOTATION{i,a}=> I.ANNOTATION{i=frewriteDef(mapr,i,rs,rt),a=a}         | I.ANNOTATION{i,a}=>
118               I.ANNOTATION{i=frewriteDef(mapr,i,rs,rt),
119                            a=case a of
120                               C.DEF_USE{cellkind=C.FP,defs,uses} =>
121                                 C.DEF_USE{cellkind=C.FP,uses=uses,
122                                           defs=map R defs}
123                              | _ => a}
124         | _ => instr         | _ => instr
125     end     end
126    

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

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