1. 11 Jun, 2013 14 commits
  2. 10 Jun, 2013 1 commit
  3. 07 Jun, 2013 3 commits
  4. 06 Jun, 2013 11 commits
  5. 26 May, 2013 4 commits
  6. 18 May, 2013 2 commits
  7. 17 May, 2013 4 commits
    • yb9976's avatar
      Delete strange switch cases. · 169187fe
      yb9976 authored
      We should never see an Id node and Call nodes should never have mode_X.
    • yb9976's avatar
      Clean up dca code (using C99). · 8ca4adce
      yb9976 authored
    • 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.
    • 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.
  8. 15 May, 2013 1 commit
    • 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.