1. 02 Jul, 2013 1 commit
  2. 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
  3. 15 May, 2013 2 commits
    • Andreas Fried's avatar
      Fix read-after-write optimization. · 5e135c82
      Andreas Fried authored
      Previously, if the load and store mode were equal, the optimization
      aborted immediately. This is not necessary, we must only abort if the load
      and store modes' arithmetic are not equal.
      
      This causes a bug in type-based alias analysis to appear: When a CopyB is
      lowered to Loads and Stores, the modes of these are always Iu instead of
      the actual modes of the struct's members. The test-case "opt/fehler199.c"
      will fail as a result.
      
      Therefore, type-based alias analysis is switched off in cparser.
      5e135c82
    • Matthias Braun's avatar
      remove overly complicate pass management code · 1d13a49e
      Matthias Braun authored
      Nobody uses it currently, and it is a burden for everyone writing a new
      pass.
      1d13a49e
  4. 04 May, 2013 1 commit
    • Matthias Braun's avatar
      do not include config.h anymore · 0f73b43e
      Matthias Braun authored
      It has been empty for nearly all systems. People who used to put stuff
      in config.h can still create a config.h on their own and inject
      -include (gcc) or /FI (msvc) into their CPPFLAGS.
      0f73b43e
  5. 13 Mar, 2013 2 commits
  6. 21 Dec, 2012 1 commit
  7. 12 Dec, 2012 2 commits
  8. 03 Dec, 2012 1 commit
  9. 02 Dec, 2012 3 commits
  10. 19 Nov, 2012 1 commit
  11. 24 Oct, 2012 1 commit
  12. 29 Aug, 2012 1 commit
  13. 27 Aug, 2012 1 commit
  14. 16 Jul, 2012 1 commit
  15. 13 Jul, 2012 2 commits
  16. 15 Jun, 2012 3 commits
    • Matthias Braun's avatar
      remove opt_manage, provide assure_irg_properties · 7a483ab9
      Matthias Braun authored
      The opt_manage framework didn't really do much except assuring that some
      analysis info is computed before a pass starts. We can achieve this
      simpler by providing an assure_irg_properties function.
      This commit also fixes some places where analysis info was potentially
      not invalidated before.
      7a483ab9
    • Matthias Braun's avatar
      remove return values from graph transformations · 18329a03
      Matthias Braun authored
      Noone was really using the return values anyway. This change makes the
      API more consistent.
      18329a03
    • Matthias Braun's avatar
      split graph state into properties and constraints · b2008e0b
      Matthias Braun authored
      graph_properties are things that a transformation may destroy but which
      can be easily recalculated.
      
      graph_constraints are set after lowering phases have been running and
      forbid certain constructs that no (later) transformation is allowed to construct
      b2008e0b
  17. 14 Jun, 2012 1 commit
  18. 13 Jun, 2012 1 commit
  19. 22 Dec, 2011 1 commit
  20. 14 Dec, 2011 1 commit
  21. 07 Dec, 2011 1 commit
    • Matthias Braun's avatar
      correctly implement memop handling · 9fbdcb82
      Matthias Braun authored
      memops are nodes that have memory inputs, you can generically query them
      for their memory input. We can also get rid of get_fragile_op_mem in
      favor of get_memop_mem.
      9fbdcb82
  22. 18 Nov, 2011 1 commit
    • Matthias Braun's avatar
      remove opt_polymorphy · 0801baa3
      Matthias Braun authored
      this is part of the initiative to move object-orientation support stuff
      out of libfirm into liboo
      0801baa3
  23. 10 Nov, 2011 1 commit
  24. 20 Oct, 2011 2 commits
  25. 20 Sep, 2011 3 commits
  26. 14 Sep, 2011 3 commits