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
 [smlnj] / sml / trunk / src / MLRISC / mltree / mltree-simplify.sml

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

revision 657, Fri Jun 9 05:20:54 2000 UTC revision 744, Fri Dec 8 04:11:42 2000 UTC
# Line 325  Line 325
325        | T.SLL(ty,a,b)  => simplifyShift(a,b,fn _ =>        | T.SLL(ty,a,b)  => simplifyShift(a,b,fn _ =>
326                               SHIFT(sll,true,LE.LSHIFT,ty,a,b))                               SHIFT(sll,true,LE.LSHIFT,ty,a,b))
327
328        | cvt as T.CVTI2I(ty,ext,ty',e) =>        | cvt as T.SX(ty,ty',e) =>
329             if ty = ty' orelse identity_ext(ty,ext,e) then e else cvt             if ty = ty' orelse identity_ext(ty,T.SIGN_EXTEND,e) then e else cvt
330          | cvt as T.ZX(ty,ty',e) =>
331               if ty = ty' orelse identity_ext(ty,T.ZERO_EXTEND,e) then e else cvt
332
333        | T.COND(ty,cc,a,b) =>        | T.COND(ty,cc,a,b) =>
334            (case evalcc cc of TRUE => a | FALSE => b | UNKNOWN => exp)            (case evalcc cc of TRUE => a | FALSE => b | UNKNOWN => exp)
335        | exp => exp        | exp => exp
336     end     end
337
338     and simStm ==> (s as T.IF(ctrl,cc,s1,s2)) = (* dead code elimination *)     and simStm ==> (s as T.IF(cc,s1,s2)) = (* dead code elimination *)
339          (case evalcc cc of          (case evalcc cc of
340             TRUE => s1             TRUE => s1
341           | FALSE => s2           | FALSE => s2

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