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/alpha/instructions/alphaPeephole.sml
ViewVC logotype

Diff of /sml/trunk/src/MLRISC/alpha/instructions/alphaPeephole.sml

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

revision 751, Fri Dec 8 21:04:14 2000 UTC revision 752, Fri Dec 8 23:32:37 2000 UTC
# Line 1  Line 1 
1  (* WARNING: this is generated by running 'wheregen alphaPeephole.peep'.  (* WARNING: this is generated by running 'nowhere alphaPeephole.peep'.
2   * Do not edit this file directly.   * Do not edit this file directly.
3   *)   *)
4    
# Line 22  Line 22 
22               | isZero _ = false               | isZero _ = false
23    
24  (*#line 17.8 "alphaPeephole.peep"*)  (*#line 17.8 "alphaPeephole.peep"*)
25             fun removable (I.LDA{r, b, d}) = (isZero d) andalso (C.sameColor (r,             fun removable (I.LDA{r, b, d}) = (isZero d) andalso (C.sameColor (r, b))
26                    b))               | removable (I.OPERATE{oper=(I.ADDQ | I.SUBQ), ra, rb, rc}) = (C.sameColor (ra, rc)) andalso (isZero rb)
              | removable (I.OPERATE{oper=(I.ADDQ | I.SUBQ), ra, rb, rc}) =  
                   (C.sameColor (ra, rc)) andalso (isZero rb)  
27               | removable (I.ANNOTATION{i, a}) = removable i               | removable (I.ANNOTATION{i, a}) = removable i
28               | removable _ = false               | removable _ = false
29    
# Line 45  Line 43 
43  (*#line 35.8 "alphaPeephole.peep"*)  (*#line 35.8 "alphaPeephole.peep"*)
44             fun loop (current, instrs) =             fun loop (current, instrs) =
45                 let val v_16 = current                 let val v_16 = current
46                     fun state_4 (v_0, v_1) =                     fun state_7 (v_0, v_1) =
47                         let val i = v_0                         let val i = v_0
48                             and rest = v_1                             and rest = v_1
49                         in (if (removable i)                         in (if (removable i)
# Line 64  Line 62 
62                      in                      in
63                         (case v_0 of                         (case v_0 of
64                           I.STORE v_14 =>                           I.STORE v_14 =>
65                           let val {b=v_2, d=v_3, r=v_4, stOp=v_5, ...} = v_14                           let val {b=v_2, d=v_4, r=v_8, stOp=v_11, ...} = v_14
66                           in                           in
67                              (case v_1 of                              (case v_1 of
68                                nil => state_4 (v_0, v_1)                                nil => state_7 (v_0, v_1)
69                              | op :: v_13 =>                              | op :: v_13 =>
70                                let val (v_6, v_11) = v_13                                let val (v_6, v_10) = v_13
71                                in                                in
72                                   (case v_6 of                                   (case v_6 of
73                                     I.LOAD v_12 =>                                     I.LOAD v_12 =>
74                                     let val {b=v_7, d=v_8, ldOp=v_9, r=v_10,                                     let val {b=v_3, d=v_5, ldOp=v_7, r=v_9, ...} = v_12
                                               ...} = v_12  
75                                     in                                     in
76                                        let val st = v_0                                        let val b1 = v_2
77                                            and b1 = v_2                                            and b2 = v_3
78                                            and d1 = v_3                                            and d1 = v_4
79                                            and r1 = v_4                                            and d2 = v_5
                                           and stOp = v_5  
80                                            and ld = v_6                                            and ld = v_6
81                                            and b2 = v_7                                            and ldOp = v_7
82                                            and d2 = v_8                                            and r1 = v_8
83                                            and ldOp = v_9                                            and r2 = v_9
84                                            and r2 = v_10                                            and rest = v_10
85                                            and rest = v_11                                            and st = v_0
86                                        in (if ((((symmetric (stOp, ldOp)) andalso (C.sameColor (r1,                                            and stOp = v_11
87                                              r2))) andalso (C.sameColor (b1,                                        in (if ((((symmetric (stOp, ldOp)) andalso (C.sameColor (r1, r2))) andalso (C.sameColor (b1, b2))) andalso (sameOperand (d1,
                                             b2))) andalso (sameOperand (d1,  
88                                              d2)))                                              d2)))
89                                              then (loop (rest, st :: instrs))                                              then (loop (rest, st :: instrs))
90                                              else (state_4 (v_0, v_1)))                                              else (state_7 (v_0, v_1)))
91                                        end                                        end
92                                     end                                     end
93                                   | _ => state_4 (v_0, v_1)                                   | _ => state_7 (v_0, v_1)
94                                   )                                   )
95                                end                                end
96                              )                              )
97                           end                           end
98                         | _ => state_4 (v_0, v_1)                         | _ => state_7 (v_0, v_1)
99                         )                         )
100                      end                      end
101                    )                    )

Legend:
Removed from v.751  
changed lines
  Added in v.752

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