Skip to content
  1. 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
    • Bill Wendling's avatar
      2b31c45e
  2. Aug 18, 2011
  3. Aug 17, 2011
  4. Aug 16, 2011
  5. Aug 15, 2011
Loading