Skip to content
  1. Oct 04, 2011
  2. Oct 02, 2011
  3. Sep 29, 2011
  4. Sep 27, 2011
  5. Sep 21, 2011
    • Bill Wendling's avatar
      Relax this condition. · a6e1c51e
      Bill Wendling authored
      Some passes require breaking critical edges before they're called. Don't
      segfault because of that.
      
      llvm-svn: 140196
      a6e1c51e
  6. Sep 20, 2011
  7. Sep 19, 2011
  8. Sep 05, 2011
  9. Aug 26, 2011
    • Benjamin Kramer's avatar
      Address review comments. · 0655b78c
      Benjamin Kramer authored
      - Reword comments.
      - Allow undefined behavior interfering with undefined behavior.
      - Add address space checks.
      
      llvm-svn: 138619
      0655b78c
    • Benjamin Kramer's avatar
      SimplifyCFG: If we have a PHI node that can evaluate to NULL and do a load or... · fb212a63
      Benjamin Kramer authored
      SimplifyCFG: If we have a PHI node that can evaluate to NULL and do a load or store to the address returned by the PHI node then we can consider this incoming value as dead and remove the edge pointing there, unless there are instructions that can affect control flow executed in between.
      
      In theory this could be extended to other instructions, eg. division by zero, but it's likely that it will "miscompile" some code because people depend on div by zero not trapping. NULL pointer dereference usually leads to a crash so we should be on the safe side.
      
      This shrinks the size of a Release clang by 16k on x86_64.
      
      llvm-svn: 138618
      fb212a63
  10. Aug 25, 2011
  11. Aug 24, 2011
  12. Aug 20, 2011
  13. Aug 19, 2011
    • Bill Wendling's avatar
      Intelligently split the landing pad block. · c61f7659
      Bill Wendling authored
      We have to be careful when splitting the landing pad block, because the
      landingpad instruction is required to remain as the first non-PHI of an invoke's
      unwind edge. To retain this, we split the block into two blocks, moving the
      predecessors within the loop to one block and the remaining predecessors to the
      other. The landingpad instruction is cloned into the new blocks.
      
      llvm-svn: 138015
      c61f7659
    • Bill Wendling's avatar
      Add SplitLandingPadPredecessors(). · ca7d3096
      Bill Wendling authored
      SplitLandingPadPredecessors is similar to SplitBlockPredecessors in that it
      splits the current block and attaches a set of predecessors to the new basic
      block. However, it differs from SplitBlockPredecessors in that it's specifically
      designed to handle landing pad blocks.
      
      Two new basic blocks are created: one that is has the vector of predecessors as
      its predecessors and one that has the remaining predecessors as its
      predecessors. Those two new blocks then receive a cloned copy of the landingpad
      instruction from the original block. The landingpad instructions are joined in a
      PHI, etc. Like SplitBlockPredecessors, it updates the LLVM IR, AliasAnalysis,
      DominatorTree, DominanceFrontier, LoopInfo, and LCCSA analyses.
      
      llvm-svn: 138014
      ca7d3096
  14. Aug 18, 2011
  15. Aug 17, 2011
  16. Aug 16, 2011
  17. Aug 15, 2011
  18. Aug 14, 2011
    • Bill Wendling's avatar
      Add inlining for the new EH scheme. · 55421f0c
      Bill Wendling authored
      This builds off of the current scheme, but instead of llvm.eh.exception and
      llvm.eh.selector, it uses the landingpad instruction. And instead of
      llvm.eh.resume, it uses the resume instruction.
      
      Because of the invariants in the landing pad instruction, a lot of code that's
      currently needed to find the appropriate intrinsic calls for an invoke
      instruction won't be needed once we go to the new EH scheme. The "FIXME"s tell
      us what to remove after we switch.
      
      llvm-svn: 137576
      55421f0c
  19. Aug 12, 2011
  20. Aug 10, 2011
    • Devang Patel's avatar
      · bb23a4a9
      Devang Patel authored
      Distinguish between two copies of one inlined variable. Take 2.
      
      llvm-svn: 137253
      bb23a4a9
    • Andrew Trick's avatar
      Comments. Thanks for the spell check Nick! · 6dbb0607
      Andrew Trick authored
      Also, my apologies for spoiling the autocomplete on SimplifyInstructions.cpp. I couldn't think of a better filename.
      
      llvm-svn: 137229
      6dbb0607
Loading