1. 28 May, 2014 1 commit
  2. 27 May, 2014 1 commit
  3. 24 Apr, 2014 1 commit
  4. 15 Apr, 2014 1 commit
    • Matthias Braun's avatar
      split Sel node into Member and Sel · 36408645
      Matthias Braun authored
      - Compound type selection is performed with Member
      - Array indexing is performed with Sel
      - Instead of the simpleSel constructor functions you can use the normal Member
        constructors now
      - The concept of array element entities has been removed, Sel nodes just
        contain a pointer to the array type now.
      36408645
  5. 10 Apr, 2014 1 commit
  6. 28 Mar, 2014 2 commits
  7. 27 Mar, 2014 2 commits
  8. 25 Mar, 2014 4 commits
  9. 21 Mar, 2014 1 commit
  10. 14 Mar, 2014 2 commits
  11. 13 Mar, 2014 1 commit
  12. 10 Mar, 2014 1 commit
  13. 07 Mar, 2014 1 commit
  14. 24 Feb, 2014 1 commit
  15. 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
  16. 17 Feb, 2014 1 commit
  17. 28 Jan, 2014 2 commits
  18. 27 Jan, 2014 2 commits
  19. 24 Jan, 2014 1 commit
  20. 16 Jan, 2014 2 commits
  21. 28 Nov, 2013 2 commits
  22. 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
  23. 29 Oct, 2013 1 commit
  24. 28 Oct, 2013 2 commits
  25. 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
  26. 20 Jul, 2013 3 commits
    • Andreas Fried's avatar
      Add code to eliminate dead CopyB nodes. · ec9befad
      Andreas Fried authored
      Like a Store, a non-volatile CopyB whose destination is never read can be
      removed.
      ec9befad
    • Andreas Fried's avatar
      C99 cleanup. · cee380c3
      Andreas Fried authored
      cee380c3
    • Andreas Fried's avatar
      Add an optimization for Load-after-CopyB. · 165b6713
      Andreas Fried authored
      If a Load reads from a location written to by a previous CopyB, we can use the
      equivalent memory location in the CopyB's source buffer for further
      optimizations (e.g. Load-after-Store).
      
      In addition, if said CopyB source buffer is constant (e.g. an initializer),
      we may directly replace the Load's pointer value with the equivalent memory
      location in the initializer.
      165b6713