Ignore:
Timestamp:
Dec 6, 2011, 5:04:13 PM (9 years ago)
Author:
tranquil
Message:
  • turned to argument-less return statements for RTLabs and RTL (there was a hidden invariant, for which the arguments of return statements where equal to the f_result field of the function definition: they were useless and an optimization was breaking the compilation)
  • corrected a bug in liveness analysis I had introduced
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Deliverables/D2.2/8051/src/RTL/RTLConstPropagation.ml

    r1585 r1589  
    415415    | St_opaccs (op, i, j, a, b, l) ->
    416416      (simpl_imm_opaccs op i j a b (valu p) l, None)
     417    | St_set_carry l when L.find_cst_carry_in (valu p) = Some 1 -> ([], None)
     418    | St_clear_carry l when L.find_cst_carry_in (valu p) = Some 0 -> ([], None)
    417419    | St_load (i, a, b, l) ->
    418420      ([St_load(i, arg_from_arg (valu p) a, arg_from_arg (valu p) b, l)], None)
     
    426428        | Some _ -> ([], Some [if_true])
    427429        | None -> ([s], Some [if_true ; if_false]))
    428     | St_return rets ->
    429       let rets' = List.map (arg_from_arg (valu p)) rets in
    430       ([St_return rets'], None)
    431430    | St_call_id (f, args, rets, l) ->
    432431      let args' = List.map (arg_from_arg (valu p)) args in
Note: See TracChangeset for help on using the changeset viewer.