1. 27 Mar, 2014 1 commit
  2. 25 Mar, 2014 4 commits
  3. 21 Mar, 2014 1 commit
  4. 14 Mar, 2014 2 commits
  5. 13 Mar, 2014 1 commit
  6. 10 Mar, 2014 1 commit
  7. 07 Mar, 2014 1 commit
  8. 24 Feb, 2014 1 commit
  9. 18 Feb, 2014 1 commit
    • Matthias Braun's avatar
      cleanup special tarval and Unknown usage · af666143
      Matthias Braun authored
      This commit does:
      - Remove tarval_reachable+tarval_unreachable, dataflow analysis rather
        use top/bottom instead of other special values.
      - Rename tarval_undefined to tarval_unknown as it corresponds to the
        Unknown node (=a value which we don't know)
      - Remove predefined tarval_top/tarval_bottom from tv.h and place the
        defines into combo.c
      - Change compute_XXX constant folding functions to return tarval_unknown
        instead of tarval_bad if folding failed
      - compute_Unknown in combo results in tarval_bottom == tarval_unknown
        this eliminates strange special cases in the Cond/Switch rules and the
        now unnecessary cprop_X list.
      af666143
  10. 17 Feb, 2014 1 commit
  11. 28 Jan, 2014 2 commits
  12. 27 Jan, 2014 2 commits
  13. 24 Jan, 2014 1 commit
  14. 16 Jan, 2014 2 commits
  15. 28 Nov, 2013 2 commits
  16. 31 Oct, 2013 1 commit
    • Matthias Braun's avatar
      fix corner cases when determining called entities/irgs · c9f09085
      Matthias Braun authored
      Most firm analyses behaved incorrectlye when: A called SymConst did not
      have a method entity, assumed the code reachable by get_entity_irg is
      the code called. These assumptions are wrong when doing crazy casts in C
      or when dealing with weak symbols. This is fixed by introducing some
      convenience functions: get_Call_callee(), get_entity_linktime_irg()
      c9f09085
  17. 29 Oct, 2013 1 commit
  18. 28 Oct, 2013 2 commits
  19. 04 Sep, 2013 2 commits
    • Andreas Fried's avatar
      Add an optimization for CopyB nodes. · 9a42176a
      Andreas Fried authored and yb9976's avatar yb9976 committed
      This covers two cases (assuming no aliasing operations in between the nodes):
      
      Firstly, a Store node whose destination lies completely within the CopyB's
      destination can be deleted.
      
      Secondly, if a previous CopyB (A) writes to the source of CopyB to be optimized
      (B), we can use A's source pointer for further optimizations. If A's source is
      constant, we can change B to read from A's source.  Cases with offsets are not
      handled.
      9a42176a
    • Andreas Fried's avatar
      Enable Stores to see through non-aliasing CopyB nodes. · d75a2287
      Andreas Fried authored and yb9976's avatar yb9976 committed
      When following the Memory chain for a Store, a CopyB node may be skipped, if
      both its destination and source do not alias with the Store's destination.
      d75a2287
  20. 20 Jul, 2013 4 commits
  21. 19 Jul, 2013 1 commit
  22. 04 Jul, 2013 1 commit
  23. 03 Jul, 2013 2 commits
  24. 02 Jul, 2013 1 commit
  25. 17 May, 2013 2 commits
    • Andreas Fried's avatar
      Kill unneeded operands when killing Stores. · 58f73478
      Andreas Fried authored
      After killing a store (e.g. if it is dead), its Store value can be killed,
      if no other node uses it. We can use the code in reduce_adr_usage for that,
      which also works for non-pointers.
      
      This commit adds a new function kill_and_reduce_usage, which works for Load
      and Store nodes. It kills the node and all Loads on which only the killed
      node depends.
      58f73478
    • Andreas Fried's avatar
      Move dead store elimination to a separate irg walk. · ee99f31f
      Andreas Fried authored
      optimize_load can introduce dead stores, which are not removed, because
      they have already been visited (the irg is walked from Start to End).
      
      This commit adds a second irg walk for dead store elimination after the
      other optimizations have run, and removes dead store elimination from the
      first walk.
      ee99f31f