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/mltree/mltree-simplify.sml
ViewVC logotype

Diff of /sml/trunk/src/MLRISC/mltree/mltree-simplify.sml

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

revision 1182, Thu Mar 28 16:41:29 2002 UTC revision 1183, Fri Mar 29 19:09:48 2002 UTC
# Line 68  Line 68 
68  (*#line 46.4 "mltree-simplify.in"*)  (*#line 46.4 "mltree-simplify.in"*)
69             fun sim ==> exp =             fun sim ==> exp =
70                    let val v_3 = exp                    let val v_3 = exp
71                        fun state_170 e = e                        fun state_165 e = e
72                        fun state_154 () = zeroT                        fun state_149 () = zeroT
73                        fun state_163 () = zeroT                        fun state_158 () = zeroT
74                        fun state_185 v_3 =                        fun state_180 v_3 =
75                            let val exp = v_3                            let val exp = v_3
76                            in exp                            in exp
77                            end                            end
78                        fun state_123 (v_1, v_4) =                        fun state_118 (v_1, v_4) =
79                            let val b = v_4                            let val b = v_4
80                                and ty = v_1                                and ty = v_1
81                            in b                            in b
# Line 85  Line 85 
85                                and ty = v_1                                and ty = v_1
86                            in a                            in a
87                            end                            end
88                        fun state_153 v_1 =                        fun state_148 v_1 =
89                            let val ty = v_1                            let val ty = v_1
90                            in zeroT                            in zeroT
91                            end                            end
92                        fun state_145 v_1 =                        fun state_140 v_1 =
93                            let val ty = v_1                            let val ty = v_1
94                            in zeroT                            in zeroT
95                            end                            end
96                        fun state_162 v_1 =                        fun state_157 v_1 =
97                            let val ty = v_1                            let val ty = v_1
98                            in zeroT                            in zeroT
99                            end                            end
100                        fun state_114 v_4 =                        fun state_109 v_4 =
101                            let val b = v_4                            let val b = v_4
102                            in b                            in b
103                            end                            end
# Line 143  Line 143 
143                                and x = v_0                                and x = v_0
144                            in x                            in x
145                            end                            end
146                        fun state_132 (v_1, v_4) =                        fun state_127 (v_1, v_4) =
147                            let val b = v_4                            let val b = v_4
148                                and ty = v_1                                and ty = v_1
149                            in zeroT                            in zeroT
150                            end                            end
151                        fun state_105 v_0 =                        fun state_100 v_0 =
152                            let val a = v_0                            let val a = v_0
153                            in a                            in a
154                            end                            end
# Line 162  Line 162 
162                                and x = v_0                                and x = v_0
163                            in x                            in x
164                            end                            end
165                        fun state_1763 (v_3, v_1, v_10, v_4) = (if ((IntInf.compare (v_10, lit_11)) = EQUAL)                        fun state_1717 (v_3, v_1, v_10, v_4) = (if ((IntInf.compare (v_10, lit_11)) = EQUAL)
166                               then (state_123 (v_1, v_4))                               then (state_118 (v_1, v_4))
167                               else (state_185 v_3))                               else (state_180 v_3))
168                        fun state_1490 (v_3, v_1, v_0, v_2) = (if ((IntInf.compare (v_2, lit_11)) = EQUAL)                        fun state_1450 (v_3, v_1, v_0, v_2) = (if ((IntInf.compare (v_2, lit_11)) = EQUAL)
169                               then (state_15 (v_1, v_0))                               then (state_15 (v_1, v_0))
170                               else (state_185 v_3))                               else (state_180 v_3))
171                        fun state_1315 (v_3, v_1, v_10) = (if ((IntInf.compare (v_10, lit_11)) = EQUAL)                        fun state_1279 (v_3, v_1, v_10) = (if ((IntInf.compare (v_10, lit_11)) = EQUAL)
172                               then (state_153 v_1)                               then (state_148 v_1)
173                               else (state_185 v_3))                               else (state_180 v_3))
174                        fun state_1226 (v_3, v_1, v_10) = (if ((IntInf.compare (v_10, lit_11)) = EQUAL)                        fun state_1192 (v_3, v_1, v_10) = (if ((IntInf.compare (v_10, lit_11)) = EQUAL)
175                               then (state_145 v_1)                               then (state_140 v_1)
176                               else (state_185 v_3))                               else (state_180 v_3))
177                        fun state_1051 (v_3, v_1, v_10) = (if ((IntInf.compare (v_10, lit_11)) = EQUAL)                        fun state_1021 (v_3, v_1, v_10) = (if ((IntInf.compare (v_10, lit_11)) = EQUAL)
178                               then (state_162 v_1)                               then (state_157 v_1)
179                               else (state_185 v_3))                               else (state_180 v_3))
180                        fun state_937 (v_3, v_10, v_4) = (if ((IntInf.compare (v_10, lit_11)) = EQUAL)                        fun state_916 (v_3, v_10, v_4) = (if ((IntInf.compare (v_10, lit_11)) = EQUAL)
181                               then (state_114 v_4)                               then (state_109 v_4)
182                               else (state_185 v_3))                               else (state_180 v_3))
183                        fun state_839 (v_3, v_1, v_0, v_2) = (if ((IntInf.compare (v_2, lit_11)) = EQUAL)                        fun state_820 (v_3, v_1, v_0, v_2) = (if ((IntInf.compare (v_2, lit_11)) = EQUAL)
184                               then (state_43 v_1)                               then (state_43 v_1)
185                               else (if ((IntInf.compare (v_2, lit_16)) = EQUAL)                               else (if ((IntInf.compare (v_2, lit_16)) = EQUAL)
186                                  then (state_47 (v_1, v_0))                                  then (state_47 (v_1, v_0))
187                                  else (state_185 v_3)))                                  else (state_180 v_3)))
188                        fun state_748 (v_3, v_1, v_0, v_2) = (if ((IntInf.compare (v_2, lit_11)) = EQUAL)                        fun state_731 (v_3, v_1, v_0, v_2) = (if ((IntInf.compare (v_2, lit_11)) = EQUAL)
189                               then (state_83 v_1)                               then (state_83 v_1)
190                               else (if ((IntInf.compare (v_2, lit_16)) = EQUAL)                               else (if ((IntInf.compare (v_2, lit_16)) = EQUAL)
191                                  then (state_87 (v_1, v_0))                                  then (state_87 (v_1, v_0))
192                                  else (state_185 v_3)))                                  else (state_180 v_3)))
193                        fun state_657 (v_3, v_1, v_0, v_2) = (if ((IntInf.compare (v_2, lit_11)) = EQUAL)                        fun state_642 (v_3, v_1, v_0, v_2) = (if ((IntInf.compare (v_2, lit_11)) = EQUAL)
194                               then (state_21 v_1)                               then (state_21 v_1)
195                               else (if ((IntInf.compare (v_2, lit_16)) = EQUAL)                               else (if ((IntInf.compare (v_2, lit_16)) = EQUAL)
196                                  then (state_25 (v_1, v_0))                                  then (state_25 (v_1, v_0))
197                                  else (state_185 v_3)))                                  else (state_180 v_3)))
198                        fun state_568 (v_3, v_1, v_10, v_4) = (if ((IntInf.compare (v_10, lit_11)) = EQUAL)                        fun state_555 (v_3, v_1, v_10, v_4) = (if ((IntInf.compare (v_10, lit_11)) = EQUAL)
199                               then (state_132 (v_1, v_4))                               then (state_127 (v_1, v_4))
200                               else (state_185 v_3))                               else (state_180 v_3))
201                        fun state_452 (v_3, v_0, v_10) = (if ((IntInf.compare (v_10, lit_11)) = EQUAL)                        fun state_441 (v_3, v_0, v_10) = (if ((IntInf.compare (v_10, lit_11)) = EQUAL)
202                               then (state_105 v_0)                               then (state_100 v_0)
203                               else (state_185 v_3))                               else (state_180 v_3))
204                        fun state_363 (v_3, v_1, v_0, v_2) = (if ((IntInf.compare (v_2, lit_11)) = EQUAL)                        fun state_354 (v_3, v_1, v_0, v_2) = (if ((IntInf.compare (v_2, lit_11)) = EQUAL)
205                               then (state_69 (v_1, v_0))                               then (state_69 (v_1, v_0))
206                               else (state_185 v_3))                               else (state_180 v_3))
207                        fun state_186 (v_3, v_1, v_0, v_2) = (if ((IntInf.compare (v_2, lit_11)) = EQUAL)                        fun state_181 (v_3, v_1, v_0, v_2) = (if ((IntInf.compare (v_2, lit_11)) = EQUAL)
208                               then (state_5 (v_1, v_0))                               then (state_5 (v_1, v_0))
209                               else (state_185 v_3))                               else (state_180 v_3))
210                        fun state_1491 (v_3, v_1, v_0, v_4) =                        fun state_1451 (v_3, v_1, v_0, v_4) =
211                            (case v_4 of                            (case v_4 of
212                              T.LI v_2 => state_1490 (v_3, v_1, v_0, v_2)                              T.LI v_2 => state_1450 (v_3, v_1, v_0, v_2)
213                            | _ => state_185 v_3                            | _ => state_180 v_3
214                            )                            )
215                        fun state_187 (v_3, v_1, v_0, v_4) =                        fun state_182 (v_3, v_1, v_0, v_4) =
216                            (case v_4 of                            (case v_4 of
217                              T.LI v_2 => state_186 (v_3, v_1, v_0, v_2)                              T.LI v_2 => state_181 (v_3, v_1, v_0, v_2)
218                            | _ => state_185 v_3                            | _ => state_180 v_3
219                            )                            )
220                    in                    in
221                       (case v_3 of                       (case v_3 of
# Line 237  Line 237 
237                                         and y = v_2                                         and y = v_2
238                                     in (if (ty = ty')                                     in (if (ty = ty')
239                                           then (T.ADD (ty, a, T.LI (I.ADD (ty, x, y))))                                           then (T.ADD (ty, a, T.LI (I.ADD (ty, x, y))))
240                                           else (state_186 (v_3, v_1, v_0, v_2)))                                           else (state_181 (v_3, v_1, v_0, v_2)))
241                                     end                                     end
242                                   | _ => state_185 v_3                                   | _ => state_180 v_3
243                                   )                                   )
244                                 | _ => state_187 (v_3, v_1, v_0, v_4)                                 | _ => state_182 (v_3, v_1, v_0, v_4)
245                                 )                                 )
246                              end                              end
247                            | T.LABEXP v_10 =>                            | T.LABEXP v_10 =>
# Line 252  Line 252 
252                                    and y = v_2                                    and y = v_2
253                                in T.LABEXP (T.ADD (ty, x, y))                                in T.LABEXP (T.ADD (ty, x, y))
254                                end                                end
255                              | T.LI v_2 => state_186 (v_3, v_1, v_0, v_2)                              | T.LI v_2 => state_181 (v_3, v_1, v_0, v_2)
256                              | _ => state_185 v_3                              | _ => state_180 v_3
257                              )                              )
258                            | T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)                            | T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)
259                                 then                                 then
# Line 271  Line 271 
271                                          and y = v_2                                          and y = v_2
272                                      in T.LI (I.ADD (ty, x, y))                                      in T.LI (I.ADD (ty, x, y))
273                                      end)                                      end)
274                                 | _ => state_185 v_3                                 | _ => state_180 v_3
275                                 ))                                 ))
276                            | _ => state_187 (v_3, v_1, v_0, v_4)                            | _ => state_182 (v_3, v_1, v_0, v_4)
277                            )                            )
278                         end                         end
279                       | T.ADDT v_5 =>                       | T.ADDT v_5 =>
# Line 288  Line 288 
288                                    and y = v_2                                    and y = v_2
289                                in T.LABEXP (T.ADDT (ty, x, y))                                in T.LABEXP (T.ADDT (ty, x, y))
290                                end                                end
291                              | T.LI v_2 => state_363 (v_3, v_1, v_0, v_2)                              | T.LI v_2 => state_354 (v_3, v_1, v_0, v_2)
292                              | _ => state_185 v_3                              | _ => state_180 v_3
293                              )                              )
294                            | T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)                            | T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)
295                                 then                                 then
# Line 308  Line 308 
308                                      in ((T.LI (I.ADDT (ty, x, y))) handle Overflow => exp                                      in ((T.LI (I.ADDT (ty, x, y))) handle Overflow => exp
309  )  )
310                                      end)                                      end)
311                                 | _ => state_185 v_3                                 | _ => state_180 v_3
312                                 ))                                 ))
313                            | _ =>                            | _ =>
314                              (case v_4 of                              (case v_4 of
315                                T.LI v_2 => state_363 (v_3, v_1, v_0, v_2)                                T.LI v_2 => state_354 (v_3, v_1, v_0, v_2)
316                              | _ => state_185 v_3                              | _ => state_180 v_3
317                              )                              )
318                            )                            )
319                         end                         end
# Line 329  Line 329 
329                                    and y = v_2                                    and y = v_2
330                                in T.LABEXP (T.ANDB (ty, x, y))                                in T.LABEXP (T.ANDB (ty, x, y))
331                                end                                end
332                              | T.LI v_10 => state_452 (v_3, v_0, v_10)                              | T.LI v_10 => state_441 (v_3, v_0, v_10)
333                              | _ => state_185 v_3                              | _ => state_180 v_3
334                              )                              )
335                            | T.LI v_2 => (if ((IntInf.compare (v_2, lit_11)) = EQUAL)                            | T.LI v_2 => (if ((IntInf.compare (v_2, lit_11)) = EQUAL)
336                                 then                                 then
# Line 340  Line 340 
340                                 else                                 else
341                                 (case v_0 of                                 (case v_0 of
342                                   T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)                                   T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)
343                                      then (state_105 v_0)                                      then (state_100 v_0)
344                                      else                                      else
345                                      let val ty = v_1                                      let val ty = v_1
346                                          and x = v_10                                          and x = v_10
347                                          and y = v_2                                          and y = v_2
348                                      in T.LI (I.ANDB (ty, x, y))                                      in T.LI (I.ANDB (ty, x, y))
349                                      end)                                      end)
350                                 | _ => state_185 v_3                                 | _ => state_180 v_3
351                                 ))                                 ))
352                            | T.NOTB v_2 =>                            | T.NOTB v_2 =>
353                              (case v_0 of                              (case v_0 of
354                                T.LI v_10 => state_452 (v_3, v_0, v_10)                                T.LI v_10 => state_441 (v_3, v_0, v_10)
355                              | T.NOTB v_10 =>                              | T.NOTB v_10 =>
356                                let val (v_7, v_9) = v_10                                let val (v_7, v_9) = v_10
357                                in                                in
# Line 364  Line 364 
364                                          and ty'' = v_6                                          and ty'' = v_6
365                                      in (if ((ty = ty') andalso (ty' = ty''))                                      in (if ((ty = ty') andalso (ty' = ty''))
366                                            then (T.NOTB (ty, T.ORB (ty, a, b)))                                            then (T.NOTB (ty, T.ORB (ty, a, b)))
367                                            else (state_185 v_3))                                            else (state_180 v_3))
368                                      end                                      end
369                                   end                                   end
370                                end                                end
371                              | _ => state_185 v_3                              | _ => state_180 v_3
372                              )                              )
373                            | _ =>                            | _ =>
374                              (case v_0 of                              (case v_0 of
375                                T.LI v_10 => state_452 (v_3, v_0, v_10)                                T.LI v_10 => state_441 (v_3, v_0, v_10)
376                              | _ => state_185 v_3                              | _ => state_180 v_3
377                              )                              )
378                            )                            )
379                         end                         end
# Line 393  Line 393 
393                                  and ty = v_1                                  and ty = v_1
394                              in a                              in a
395                              end                              end
396                            | _ => state_185 v_3                            | _ => state_180 v_3
397                            )                            )
398                         end                         end
399                       | T.DIVS v_5 =>                       | T.DIVS v_5 =>
# Line 409  Line 409 
409                                    and y = v_17                                    and y = v_17
410                                in T.LABEXP (T.DIVS (m, ty, x, y))                                in T.LABEXP (T.DIVS (m, ty, x, y))
411                                end                                end
412                              | _ => state_185 v_3                              | _ => state_180 v_3
413                              )                              )
414                            | T.LI v_17 => (if ((IntInf.compare (v_17, lit_16)) = EQUAL)                            | T.LI v_17 => (if ((IntInf.compare (v_17, lit_16)) = EQUAL)
415                                 then                                 then
# Line 427  Line 427 
427                                       and y = v_17                                       and y = v_17
428                                   in (if (y <> zero)                                   in (if (y <> zero)
429                                         then (T.LI (I.DIVS (dm m, ty, x, y)))                                         then (T.LI (I.DIVS (dm m, ty, x, y)))
430                                         else (state_185 v_3))                                         else (state_180 v_3))
431                                   end                                   end
432                                 | _ => state_185 v_3                                 | _ => state_180 v_3
433                                 ))                                 ))
434                            | _ => state_185 v_3                            | _ => state_180 v_3
435                            )                            )
436                         end                         end
437                       | T.DIVT v_5 =>                       | T.DIVT v_5 =>
# Line 447  Line 447 
447                                    and y = v_17                                    and y = v_17
448                                in T.LABEXP (T.DIVT (m, ty, x, y))                                in T.LABEXP (T.DIVT (m, ty, x, y))
449                                end                                end
450                              | _ => state_185 v_3                              | _ => state_180 v_3
451                              )                              )
452                            | T.LI v_17 => (if ((IntInf.compare (v_17, lit_16)) = EQUAL)                            | T.LI v_17 => (if ((IntInf.compare (v_17, lit_16)) = EQUAL)
453                                 then                                 then
# Line 465  Line 465 
465                                       and y = v_17                                       and y = v_17
466                                   in (if (y <> zero)                                   in (if (y <> zero)
467                                         then (T.LI (I.DIVT (dm m, ty, x, y)))                                         then (T.LI (I.DIVT (dm m, ty, x, y)))
468                                         else (state_185 v_3))                                         else (state_180 v_3))
469                                   end                                   end
470                                 | _ => state_185 v_3                                 | _ => state_180 v_3
471                                 ))                                 ))
472                            | _ => state_185 v_3                            | _ => state_180 v_3
473                            )                            )
474                         end                         end
475                       | T.DIVU v_5 =>                       | T.DIVU v_5 =>
# Line 484  Line 484 
484                                    and y = v_2                                    and y = v_2
485                                in T.LABEXP (T.DIVU (ty, x, y))                                in T.LABEXP (T.DIVU (ty, x, y))
486                                end                                end
487                              | _ => state_185 v_3                              | _ => state_180 v_3
488                              )                              )
489                            | T.LI v_2 => (if ((IntInf.compare (v_2, lit_16)) = EQUAL)                            | T.LI v_2 => (if ((IntInf.compare (v_2, lit_16)) = EQUAL)
490                                 then                                 then
# Line 500  Line 500 
500                                       and y = v_2                                       and y = v_2
501                                   in (if (y <> zero)                                   in (if (y <> zero)
502                                         then (T.LI (I.DIVU (ty, x, y)))                                         then (T.LI (I.DIVU (ty, x, y)))
503                                         else (state_185 v_3))                                         else (state_180 v_3))
504                                   end                                   end
505                                 | _ => state_185 v_3                                 | _ => state_180 v_3
506                                 ))                                 ))
507                            | _ => state_185 v_3                            | _ => state_180 v_3
508                            )                            )
509                         end                         end
510                       | T.EQVB v_5 =>                       | T.EQVB v_5 =>
# Line 519  Line 519 
519                                    and y = v_2                                    and y = v_2
520                                in T.LABEXP (T.EQVB (ty, x, y))                                in T.LABEXP (T.EQVB (ty, x, y))
521                                end                                end
522                              | T.LI v_10 => state_568 (v_3, v_1, v_10, v_4)                              | T.LI v_10 => state_555 (v_3, v_1, v_10, v_4)
523                              | _ => state_185 v_3                              | _ => state_180 v_3
524                              )                              )
525                            | T.LI v_2 => (if ((IntInf.compare (v_2, lit_11)) = EQUAL)                            | T.LI v_2 => (if ((IntInf.compare (v_2, lit_11)) = EQUAL)
526                                 then                                 then
# Line 531  Line 531 
531                                 else                                 else
532                                 (case v_0 of                                 (case v_0 of
533                                   T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)                                   T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)
534                                      then (state_132 (v_1, v_4))                                      then (state_127 (v_1, v_4))
535                                      else                                      else
536                                      let val ty = v_1                                      let val ty = v_1
537                                          and x = v_10                                          and x = v_10
538                                          and y = v_2                                          and y = v_2
539                                      in T.LI (I.EQVB (ty, x, y))                                      in T.LI (I.EQVB (ty, x, y))
540                                      end)                                      end)
541                                 | _ => state_185 v_3                                 | _ => state_180 v_3
542                                 ))                                 ))
543                            | _ =>                            | _ =>
544                              (case v_0 of                              (case v_0 of
545                                T.LI v_10 => state_568 (v_3, v_1, v_10, v_4)                                T.LI v_10 => state_555 (v_3, v_1, v_10, v_4)
546                              | _ => state_185 v_3                              | _ => state_180 v_3
547                              )                              )
548                            )                            )
549                         end                         end
# Line 559  Line 559 
559                                    and y = v_2                                    and y = v_2
560                                in T.LABEXP (T.MULS (ty, x, y))                                in T.LABEXP (T.MULS (ty, x, y))
561                                end                                end
562                              | T.LI v_2 => state_657 (v_3, v_1, v_0, v_2)                              | T.LI v_2 => state_642 (v_3, v_1, v_0, v_2)
563                              | _ => state_185 v_3                              | _ => state_180 v_3
564                              )                              )
565                            | T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)                            | T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)
566                                 then                                 then
# Line 589  Line 589 
589                                                and y = v_2                                                and y = v_2
590                                            in T.LI (I.MULS (ty, x, y))                                            in T.LI (I.MULS (ty, x, y))
591                                            end))                                            end))
592                                    | _ => state_185 v_3                                    | _ => state_180 v_3
593                                    )))                                    )))
594                            | _ =>                            | _ =>
595                              (case v_4 of                              (case v_4 of
596                                T.LI v_2 => state_657 (v_3, v_1, v_0, v_2)                                T.LI v_2 => state_642 (v_3, v_1, v_0, v_2)
597                              | _ => state_185 v_3                              | _ => state_180 v_3
598                              )                              )
599                            )                            )
600                         end                         end
# Line 610  Line 610 
610                                    and y = v_2                                    and y = v_2
611                                in T.LABEXP (T.MULT (ty, x, y))                                in T.LABEXP (T.MULT (ty, x, y))
612                                end                                end
613                              | T.LI v_2 => state_748 (v_3, v_1, v_0, v_2)                              | T.LI v_2 => state_731 (v_3, v_1, v_0, v_2)
614                              | _ => state_185 v_3                              | _ => state_180 v_3
615                              )                              )
616                            | T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)                            | T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)
617                                 then                                 then
# Line 641  Line 641 
641                                            in ((T.LI (I.MULT (ty, x, y))) handle Overflow => exp                                            in ((T.LI (I.MULT (ty, x, y))) handle Overflow => exp
642  )  )
643                                            end))                                            end))
644                                    | _ => state_185 v_3                                    | _ => state_180 v_3
645                                    )))                                    )))
646                            | _ =>                            | _ =>
647                              (case v_4 of                              (case v_4 of
648                                T.LI v_2 => state_748 (v_3, v_1, v_0, v_2)                                T.LI v_2 => state_731 (v_3, v_1, v_0, v_2)
649                              | _ => state_185 v_3                              | _ => state_180 v_3
650                              )                              )
651                            )                            )
652                         end                         end
# Line 662  Line 662 
662                                    and y = v_2                                    and y = v_2
663                                in T.LABEXP (T.MULU (ty, x, y))                                in T.LABEXP (T.MULU (ty, x, y))
664                                end                                end
665                              | T.LI v_2 => state_839 (v_3, v_1, v_0, v_2)                              | T.LI v_2 => state_820 (v_3, v_1, v_0, v_2)
666                              | _ => state_185 v_3                              | _ => state_180 v_3
667                              )                              )
668                            | T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)                            | T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)
669                                 then                                 then
# Line 692  Line 692 
692                                                and y = v_2                                                and y = v_2
693                                            in T.LI (I.MULU (ty, x, y))                                            in T.LI (I.MULU (ty, x, y))
694                                            end))                                            end))
695                                    | _ => state_185 v_3                                    | _ => state_180 v_3
696                                    )))                                    )))
697                            | _ =>                            | _ =>
698                              (case v_4 of                              (case v_4 of
699                                T.LI v_2 => state_839 (v_3, v_1, v_0, v_2)                                T.LI v_2 => state_820 (v_3, v_1, v_0, v_2)
700                              | _ => state_185 v_3                              | _ => state_180 v_3
701                              )                              )
702                            )                            )
703                         end                         end
# Line 716  Line 716 
716                              in ((T.LI (I.NEGT (ty, x))) handle Overflow => exp                              in ((T.LI (I.NEGT (ty, x))) handle Overflow => exp
717  )  )
718                              end                              end
719                            | _ => state_185 v_3                            | _ => state_180 v_3
720                            )                            )
721                         end                         end
722                       | T.NOTB v_5 =>                       | T.NOTB v_5 =>
# Line 741  Line 741 
741                                     and ty' = v_7                                     and ty' = v_7
742                                 in (if (ty = ty')                                 in (if (ty = ty')
743                                       then a                                       then a
744                                       else (state_185 v_3))                                       else (state_180 v_3))
745                                 end                                 end
746                              end                              end
747                            | _ => state_185 v_3                            | _ => state_180 v_3
748                            )                            )
749                         end                         end
750                       | T.ORB v_5 =>                       | T.ORB v_5 =>
# Line 759  Line 759 
759                                    and y = v_2                                    and y = v_2
760                                in T.LABEXP (T.ORB (ty, x, y))                                in T.LABEXP (T.ORB (ty, x, y))
761                                end                                end
762                              | T.LI v_10 => state_937 (v_3, v_10, v_4)                              | T.LI v_10 => state_916 (v_3, v_10, v_4)
763                              | _ => state_185 v_3                              | _ => state_180 v_3
764                              )                              )
765                            | T.LI v_2 => (if ((IntInf.compare (v_2, lit_11)) = EQUAL)                            | T.LI v_2 => (if ((IntInf.compare (v_2, lit_11)) = EQUAL)
766                                 then                                 then
# Line 770  Line 770 
770                                 else                                 else
771                                 (case v_0 of                                 (case v_0 of
772                                   T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)                                   T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)
773                                      then (state_114 v_4)                                      then (state_109 v_4)
774                                      else                                      else
775                                      let val ty = v_1                                      let val ty = v_1
776                                          and x = v_10                                          and x = v_10
777                                          and y = v_2                                          and y = v_2
778                                      in T.LI (I.ORB (ty, x, y))                                      in T.LI (I.ORB (ty, x, y))
779                                      end)                                      end)
780                                 | _ => state_185 v_3                                 | _ => state_180 v_3
781                                 ))                                 ))
782                            | T.NOTB v_2 =>                            | T.NOTB v_2 =>
783                              (case v_0 of                              (case v_0 of
784                                T.LI v_10 => state_937 (v_3, v_10, v_4)                                T.LI v_10 => state_916 (v_3, v_10, v_4)
785                              | T.NOTB v_10 =>                              | T.NOTB v_10 =>
786                                let val (v_7, v_9) = v_10                                let val (v_7, v_9) = v_10
787                                in                                in
# Line 794  Line 794 
794                                          and ty'' = v_6                                          and ty'' = v_6
795                                      in (if ((ty = ty') andalso (ty' = ty''))                                      in (if ((ty = ty') andalso (ty' = ty''))
796                                            then (T.NOTB (ty, T.ANDB (ty, a, b)))                                            then (T.NOTB (ty, T.ANDB (ty, a, b)))
797                                            else (state_185 v_3))                                            else (state_180 v_3))
798                                      end                                      end
799                                   end                                   end
800                                end                                end
801                              | _ => state_185 v_3                              | _ => state_180 v_3
802                              )                              )
803                            | _ =>                            | _ =>
804                              (case v_0 of                              (case v_0 of
805                                T.LI v_10 => state_937 (v_3, v_10, v_4)                                T.LI v_10 => state_916 (v_3, v_10, v_4)
806                              | _ => state_185 v_3                              | _ => state_180 v_3
807                              )                              )
808                            )                            )
809                         end                         end
# Line 820  Line 820 
820                                    and y = v_17                                    and y = v_17
821                                in T.LABEXP (T.REMS (m, ty, x, y))                                in T.LABEXP (T.REMS (m, ty, x, y))
822                                end                                end
823                              | _ => state_185 v_3                              | _ => state_180 v_3
824                              )                              )
825                            | T.LI v_17 => (if ((IntInf.compare (v_17, lit_16)) = EQUAL)                            | T.LI v_17 => (if ((IntInf.compare (v_17, lit_16)) = EQUAL)
826                                 then                                 then
# Line 838  Line 838 
838                                       and y = v_17                                       and y = v_17
839                                   in (if (y <> zero)                                   in (if (y <> zero)
840                                         then (T.LI (I.REMS (dm m, ty, x, y)))                                         then (T.LI (I.REMS (dm m, ty, x, y)))
841                                         else (state_185 v_3))                                         else (state_180 v_3))
842                                   end                                   end
843                                 | _ => state_185 v_3                                 | _ => state_180 v_3
844                                 ))                                 ))
845                            | _ => state_185 v_3                            | _ => state_180 v_3
                           )  
                        end  
                      | T.REMT v_5 =>  
                        let val (v_1, v_0, v_4, v_18) = v_5  
                        in  
                           (case v_18 of  
                             T.LABEXP v_17 =>  
                             (case v_4 of  
                               T.LABEXP v_2 =>  
                               let val m = v_1  
                                   and ty = v_0  
                                   and x = v_2  
                                   and y = v_17  
                               in T.LABEXP (T.REMT (m, ty, x, y))  
                               end  
                             | _ => state_185 v_3  
                             )  
                           | T.LI v_17 => (if ((IntInf.compare (v_17, lit_16)) = EQUAL)  
                                then  
                                let val a = v_4  
                                    and m = v_1  
                                    and ty = v_0  
                                in zeroT  
                                end  
                                else  
                                (case v_4 of  
                                  T.LI v_2 =>  
                                  let val m = v_1  
                                      and ty = v_0  
                                      and x = v_2  
                                      and y = v_17  
                                  in (if (y <> zero)  
                                        then (T.LI (I.REMT (dm m, ty, x, y)))  
                                        else (state_185 v_3))  
                                  end  
                                | _ => state_185 v_3  
                                ))  
                           | _ => state_185 v_3  
846                            )                            )
847                         end                         end
848                       | T.REMU v_5 =>                       | T.REMU v_5 =>
# Line 895  Line 857 
857                                    and y = v_2                                    and y = v_2
858                                in T.LABEXP (T.REMU (ty, x, y))                                in T.LABEXP (T.REMU (ty, x, y))
859                                end                                end
860                              | _ => state_185 v_3                              | _ => state_180 v_3
861                              )                              )
862                            | T.LI v_2 => (if ((IntInf.compare (v_2, lit_16)) = EQUAL)                            | T.LI v_2 => (if ((IntInf.compare (v_2, lit_16)) = EQUAL)
863                                 then                                 then
# Line 911  Line 873 
873                                       and y = v_2                                       and y = v_2
874                                   in (if (y <> zero)                                   in (if (y <> zero)
875                                         then (T.LI (I.REMU (ty, x, y)))                                         then (T.LI (I.REMU (ty, x, y)))
876                                         else (state_185 v_3))                                         else (state_180 v_3))
877                                   end                                   end
878                                 | _ => state_185 v_3                                 | _ => state_180 v_3
879                                 ))                                 ))
880                            | _ => state_185 v_3                            | _ => state_180 v_3
881                            )                            )
882                         end                         end
883                       | T.SLL v_5 =>                       | T.SLL v_5 =>
# Line 930  Line 892 
892                                    and y = v_2                                    and y = v_2
893                                in T.LABEXP (T.SLL (ty, x, y))                                in T.LABEXP (T.SLL (ty, x, y))
894                                end                                end
895                              | T.LI v_10 => state_1051 (v_3, v_1, v_10)                              | T.LI v_10 => state_1021 (v_3, v_1, v_10)
896                              | _ => state_185 v_3                              | _ => state_180 v_3
897                              )                              )
898                            | T.LI v_2 => (if ((IntInf.compare (v_2, lit_11)) = EQUAL)                            | T.LI v_2 => (if ((IntInf.compare (v_2, lit_11)) = EQUAL)
899                                 then                                 then
# Line 942  Line 904 
904                                 else                                 else
905                                 (case v_0 of                                 (case v_0 of
906                                   T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)                                   T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)
907                                      then (state_162 v_1)                                      then (state_157 v_1)
908                                      else                                      else
909                                      let val n = v_2                                      let val n = v_2
910                                          and ty = v_1                                          and ty = v_1
911                                      in (if (IntInf.<= (IntInf.fromInt ty, n))                                      in (if (IntInf.<= (IntInf.fromInt ty, n))
912                                            then (state_163 ())                                            then (state_158 ())
913                                            else                                            else
914                                            let val ty = v_1                                            let val ty = v_1
915                                                and x = v_10                                                and x = v_10
# Line 959  Line 921 
921                                   let val n = v_2                                   let val n = v_2
922                                       and ty = v_1                                       and ty = v_1
923                                   in (if (IntInf.<= (IntInf.fromInt ty, n))                                   in (if (IntInf.<= (IntInf.fromInt ty, n))
924                                         then (state_163 ())                                         then (state_158 ())
925                                         else (state_185 v_3))                                         else (state_180 v_3))
926                                   end                                   end
927                                 ))                                 ))
928                            | _ =>                            | _ =>
929                              (case v_0 of                              (case v_0 of
930                                T.LI v_10 => state_1051 (v_3, v_1, v_10)                                T.LI v_10 => state_1021 (v_3, v_1, v_10)
931                              | _ => state_185 v_3                              | _ => state_180 v_3
932                              )                              )
933                            )                            )
934                         end                         end
# Line 982  Line 944 
944                                    and y = v_2                                    and y = v_2
945                                in T.LABEXP (T.SRA (ty, x, y))                                in T.LABEXP (T.SRA (ty, x, y))
946                                end                                end
947                              | T.LI v_10 => state_1226 (v_3, v_1, v_10)                              | T.LI v_10 => state_1192 (v_3, v_1, v_10)
948                              | _ => state_185 v_3                              | _ => state_180 v_3
949                              )                              )
950                            | T.LI v_2 => (if ((IntInf.compare (v_2, lit_11)) = EQUAL)                            | T.LI v_2 => (if ((IntInf.compare (v_2, lit_11)) = EQUAL)
951                                 then                                 then
# Line 994  Line 956 
956                                 else                                 else
957                                 (case v_0 of                                 (case v_0 of
958                                   T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)                                   T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)
959                                      then (state_145 v_1)                                      then (state_140 v_1)
960                                      else                                      else
961                                      let val ty = v_1                                      let val ty = v_1
962                                          and x = v_10                                          and x = v_10
963                                          and y = v_2                                          and y = v_2
964                                      in T.LI (I.SRA (ty, x, y))                                      in T.LI (I.SRA (ty, x, y))
965                                      end)                                      end)
966                                 | _ => state_185 v_3                                 | _ => state_180 v_3
967                                 ))                                 ))
968                            | _ =>                            | _ =>
969                              (case v_0 of                              (case v_0 of
970                                T.LI v_10 => state_1226 (v_3, v_1, v_10)                                T.LI v_10 => state_1192 (v_3, v_1, v_10)
971                              | _ => state_185 v_3                              | _ => state_180 v_3
972                              )                              )
973                            )                            )
974                         end                         end
# Line 1022  Line 984 
984                                    and y = v_2                                    and y = v_2
985                                in T.LABEXP (T.SRL (ty, x, y))                                in T.LABEXP (T.SRL (ty, x, y))
986                                end                                end
987                              | T.LI v_10 => state_1315 (v_3, v_1, v_10)                              | T.LI v_10 => state_1279 (v_3, v_1, v_10)
988                              | _ => state_185 v_3                              | _ => state_180 v_3
989                              )                              )
990                            | T.LI v_2 => (if ((IntInf.compare (v_2, lit_11)) = EQUAL)                            | T.LI v_2 => (if ((IntInf.compare (v_2, lit_11)) = EQUAL)
991                                 then                                 then
# Line 1034  Line 996 
996                                 else                                 else
997                                 (case v_0 of                                 (case v_0 of
998                                   T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)                                   T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)
999                                      then (state_153 v_1)                                      then (state_148 v_1)
1000                                      else                                      else
1001                                      let val n = v_2                                      let val n = v_2
1002                                          and ty = v_1                                          and ty = v_1
1003                                      in (if (IntInf.<= (IntInf.fromInt ty, n))                                      in (if (IntInf.<= (IntInf.fromInt ty, n))
1004                                            then (state_154 ())                                            then (state_149 ())
1005                                            else                                            else
1006                                            let val ty = v_1                                            let val ty = v_1
1007                                                and x = v_10                                                and x = v_10
# Line 1051  Line 1013 
1013                                   let val n = v_2                                   let val n = v_2
1014                                       and ty = v_1                                       and ty = v_1
1015                                   in (if (IntInf.<= (IntInf.fromInt ty, n))                                   in (if (IntInf.<= (IntInf.fromInt ty, n))
1016                                         then (state_154 ())                                         then (state_149 ())
1017                                         else (state_185 v_3))                                         else (state_180 v_3))
1018                                   end                                   end
1019                                 ))                                 ))
1020                            | _ =>                            | _ =>
1021                              (case v_0 of                              (case v_0 of
1022                                T.LI v_10 => state_1315 (v_3, v_1, v_10)                                T.LI v_10 => state_1279 (v_3, v_1, v_10)
1023                              | _ => state_185 v_3                              | _ => state_180 v_3
1024                              )                              )
1025                            )                            )
1026                         end                         end
# Line 1074  Line 1036 
1036                                    and y = v_2                                    and y = v_2
1037                                in T.LABEXP (T.SUB (ty, x, y))                                in T.LABEXP (T.SUB (ty, x, y))
1038                                end                                end
1039                              | T.LI v_2 => state_1490 (v_3, v_1, v_0, v_2)                              | T.LI v_2 => state_1450 (v_3, v_1, v_0, v_2)
1040                              | _ => state_185 v_3                              | _ => state_180 v_3
1041                              )                              )
1042                            | T.LI v_10 =>                            | T.LI v_10 =>
1043                              (case v_4 of                              (case v_4 of
# Line 1099  Line 1061 
1061                                               and ty' = v_6                                               and ty' = v_6
1062                                           in (if (ty = ty')                                           in (if (ty = ty')
1063                                                 then a                                                 then a
1064                                                 else (state_185 v_3))                                                 else (state_180 v_3))
1065                                           end                                           end
1066                                           else (state_185 v_3))                                           else (state_180 v_3))
1067                                      | _ => state_185 v_3                                      | _ => state_180 v_3
1068                                      )                                      )
1069                                      else (state_185 v_3))                                      else (state_180 v_3))
1070                                end                                end
1071                              | _ => state_185 v_3                              | _ => state_180 v_3
1072                              )                              )
1073                            | T.SUB v_10 =>                            | T.SUB v_10 =>
1074                              let val (v_7, v_9, v_13) = v_10                              let val (v_7, v_9, v_13) = v_10
# Line 1122  Line 1084 
1084                                         and y = v_2                                         and y = v_2
1085                                     in (if (ty = ty')                                     in (if (ty = ty')
1086                                           then (T.SUB (ty, a, T.LI (I.ADD (ty, x, y))))                                           then (T.SUB (ty, a, T.LI (I.ADD (ty, x, y))))
1087                                           else (state_1490 (v_3, v_1, v_0, v_2)))                                           else (state_1450 (v_3, v_1, v_0, v_2)))
1088                                     end                                     end
1089                                   | _ => state_185 v_3                                   | _ => state_180 v_3
1090                                   )                                   )
1091                                 | _ => state_1491 (v_3, v_1, v_0, v_4)                                 | _ => state_1451 (v_3, v_1, v_0, v_4)
1092                                 )                                 )
1093                              end                              end
1094                            | _ => state_1491 (v_3, v_1, v_0, v_4)                            | _ => state_1451 (v_3, v_1, v_0, v_4)
1095                            )                            )
1096                         end                         end
1097                       | T.SUBT v_5 =>                       | T.SUBT v_5 =>
# Line 1144  Line 1106 
1106                                    and y = v_2                                    and y = v_2
1107                                in T.LABEXP (T.SUBT (ty, x, y))                                in T.LABEXP (T.SUBT (ty, x, y))
1108                                end                                end
1109                              | _ => state_185 v_3                              | _ => state_180 v_3
1110                              )                              )
1111                            | T.LI v_2 => (if ((IntInf.compare (v_2, lit_11)) = EQUAL)                            | T.LI v_2 => (if ((IntInf.compare (v_2, lit_11)) = EQUAL)
1112                                 then                                 then
# Line 1161  Line 1123 
1123                                   in ((T.LI (I.SUBT (ty, x, y))) handle Overflow => exp                                   in ((T.LI (I.SUBT (ty, x, y))) handle Overflow => exp
1124  )  )
1125                                   end                                   end
1126                                 | _ => state_185 v_3                                 | _ => state_180 v_3
1127                                 ))                                 ))
1128                            | _ => state_185 v_3                            | _ => state_180 v_3
1129                            )                            )
1130                         end                         end
1131                       | T.SX v_5 =>                       | T.SX v_5 =>
# Line 1175  Line 1137 
1137                                  and ty = v_1                                  and ty = v_1
1138                                  and ty' = v_0                                  and ty' = v_0
1139                              in (if (ty = ty')                              in (if (ty = ty')
1140                                    then (state_170 e)                                    then (state_165 e)
1141                                    else                                    else
1142                                    let val ty = v_1                                    let val ty = v_1
1143                                        and ty' = v_0                                        and ty' = v_0
# Line 1188  Line 1150 
1150                                  and ty = v_1                                  and ty = v_1
1151                                  and ty' = v_0                                  and ty' = v_0
1152                              in (if (ty = ty')                              in (if (ty = ty')
1153                                    then (state_170 e)                                    then (state_165 e)
1154                                    else                                    else
1155                                    let val n = v_2                                    let val n = v_2
1156                                        and ty = v_1                                        and ty = v_1
# Line 1206  Line 1168 
1168                                  and ty = v_1                                  and ty = v_1
1169                                  and ty' = v_0                                  and ty' = v_0
1170                              in (if (ty = ty')                              in (if (ty = ty')
1171                                    then (state_170 e)                                    then (state_165 e)
1172                                    else (state_185 v_3))                                    else (state_180 v_3))
1173                              end                              end
1174                            )                            )
1175                         end                         end
# Line 1223  Line 1185 
1185                                    and y = v_2                                    and y = v_2
1186                                in T.LABEXP (T.XORB (ty, x, y))                                in T.LABEXP (T.XORB (ty, x, y))
1187                                end                                end
1188                              | T.LI v_10 => state_1763 (v_3, v_1, v_10, v_4)                              | T.LI v_10 => state_1717 (v_3, v_1, v_10, v_4)
1189                              | _ => state_185 v_3                              | _ => state_180 v_3
1190                              )                              )
1191                            | T.LI v_2 => (if ((IntInf.compare (v_2, lit_11)) = EQUAL)                            | T.LI v_2 => (if ((IntInf.compare (v_2, lit_11)) = EQUAL)
1192                                 then                                 then
# Line 1235  Line 1197 
1197                                 else                                 else
1198                                 (case v_0 of                                 (case v_0 of
1199                                   T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)                                   T.LI v_10 => (if ((IntInf.compare (v_10, lit_11)) = EQUAL)
1200                                      then (state_123 (v_1, v_4))                                      then (state_118 (v_1, v_4))
1201                                      else                                      else
1202                                      let val ty = v_1                                      let val ty = v_1
1203                                          and x = v_10                                          and x = v_10
1204                                          and y = v_2                                          and y = v_2
1205                                      in T.LI (I.XORB (ty, x, y))                                      in T.LI (I.XORB (ty, x, y))
1206                                      end)                                      end)
1207                                 | _ => state_185 v_3                                 | _ => state_180 v_3
1208                                 ))                                 ))
1209                            | T.NOTB v_2 =>                            | T.NOTB v_2 =>
1210                              (case v_0 of                              (case v_0 of
1211                                T.LI v_10 => state_1763 (v_3, v_1, v_10, v_4)                                T.LI v_10 => state_1717 (v_3, v_1, v_10, v_4)
1212                              | T.NOTB v_10 =>                              | T.NOTB v_10 =>
1213                                let val (v_7, v_9) = v_10                                let val (v_7, v_9) = v_10
1214                                in                                in
# Line 1259  Line 1221 
1221                                          and ty'' = v_6                                          and ty'' = v_6
1222                                      in (if ((ty = ty') andalso (ty' = ty''))                                      in (if ((ty = ty') andalso (ty' = ty''))
1223                                            then (T.NOTB (ty, T.XORB (ty, a, b)))                                            then (T.NOTB (ty, T.XORB (ty, a, b)))
1224                                            else (state_185 v_3))                                            else (state_180 v_3))
1225                                      end                                      end
1226                                   end                                   end
1227                                end                                end
1228                              | _ => state_185 v_3                              | _ => state_180 v_3
1229                              )                              )
1230                            | _ =>                            | _ =>
1231                              (case v_0 of                              (case v_0 of
1232                                T.LI v_10 => state_1763 (v_3, v_1, v_10, v_4)                                T.LI v_10 => state_1717 (v_3, v_1, v_10, v_4)
1233                              | _ => state_185 v_3                              | _ => state_180 v_3
1234                              )                              )
1235                            )                            )
1236                         end                         end
# Line 1294  Line 1256 
1256                                        and ty' = v_0                                        and ty' = v_0
1257                                    in T.LI (I.ZX (ty, ty', n))                                    in T.LI (I.ZX (ty, ty', n))
1258                                    end                                    end
1259                                  | _ => state_185 v_3                                  | _ => state_180 v_3
1260                                  ))                                  ))
1261                            end                            end
1262                         end                         end
1263                       | _ => state_185 v_3                       | _ => state_180 v_3
1264                       )                       )
1265                    end                    end
1266             and simStm ==> (T.IF(T.TRUE, yes, no)) = yes             and simStm ==> (T.IF(T.TRUE, yes, no)) = yes

Legend:
Removed from v.1182  
changed lines
  Added in v.1183

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