1. 31 May, 2011 1 commit
    • Andreas Zwinkau's avatar
      Fix "Some cleanup of cfopt." · 7679a65e
      Andreas Zwinkau authored
      The remove_empty_blocks function must be used for a pre-walker, otherwise
      it might be called on blocks, which were optimized away. Consider infinite
      loops and the Keep edges:
        \ ___
         B   |
          \  /
         / Keep Edge!
      In this example, we must not call remove_empty_blocks on Empty,
      after we called it on B, but a post walker would do that.
  2. 30 May, 2011 6 commits
  3. 28 May, 2011 1 commit
  4. 27 May, 2011 16 commits
  5. 26 May, 2011 11 commits
  6. 25 May, 2011 5 commits
    • uqxyd's avatar
      Typo. · 53ab8042
      uqxyd authored
    • Andreas Zwinkau's avatar
      Remove nop optimization · 24f354d5
      Andreas Zwinkau authored
      This code does nothing, because the previous commit removed the
      equivalent_node_Block function.
    • Andreas Zwinkau's avatar
      Remove equivalent_node_Block · d3dcbe1c
      Andreas Zwinkau authored
      Fixes opt/localopts2
      Because of Phis blocks cannot be equivalent. The cfopt must do all
      block merging.
      For example, consider the case where block A has one predecessor
      block B, which contains a Jmp. Naively, we might exchange(A,B).
      However, A might contain a Phi with one operand, then the graph
      is broken afterwards, since we move the Phi into B as well.
    • Andreas Zwinkau's avatar
      Remove goto · adaf9f4c
      Andreas Zwinkau authored
    • Andreas Zwinkau's avatar
      Fix cfopt Bad mode · 5a0479fb
      Andreas Zwinkau authored