Skip to content
  1. Jul 05, 2011
  2. Jul 04, 2011
  3. Jul 02, 2011
  4. Jul 01, 2011
  5. Jun 30, 2011
  6. Jun 29, 2011
  7. Jun 28, 2011
  8. Jun 27, 2011
  9. Jun 23, 2011
  10. Jun 22, 2011
  11. Jun 21, 2011
  12. Jun 20, 2011
    • Jay Foad's avatar
      Change how PHINodes store their operands. · e03c05c3
      Jay Foad authored
      Change PHINodes to store simple pointers to their incoming basic blocks,
      instead of full-blown Uses.
      
      Note that this loses an optimization in SplitCriticalEdge(), because we
      can no longer walk the use list of a BasicBlock to find phi nodes. See
      the comment I removed starting "However, the foreach loop is slow for
      blocks with lots of predecessors".
      
      Extend replaceAllUsesWith() on a BasicBlock to also update any phi
      nodes in the block's successors. This mimics what would have happened
      when PHINodes were proper Users of their incoming blocks. (Note that
      this only works if OldBB->replaceAllUsesWith(NewBB) is called when
      OldBB still has a terminator instruction, so it still has some
      successors.)
      
      llvm-svn: 133435
      e03c05c3
    • Jay Foad's avatar
      Make better use of the PHINode API. · 372ad64b
      Jay Foad authored
      Change various bits of code to make better use of the existing PHINode
      API, to insulate them from forthcoming changes in how PHINodes store
      their operands.
      
      llvm-svn: 133434
      372ad64b
    • Chris Lattner's avatar
      Revamp the "ConstantStruct::get" methods. Previously, these were scattered · cc19efaa
      Chris Lattner authored
      all over the place in different styles and variants.  Standardize on two
      preferred entrypoints: one that takes a StructType and ArrayRef, and one that
      takes StructType and varargs.
      
      In cases where there isn't a struct type convenient, we now add a
      ConstantStruct::getAnon method (whose name will make more sense after a few
      more patches land).  
      
      It would be "really really nice" if the ConstantStruct::get and 
      ConstantVector::get methods didn't make temporary std::vectors.
      
      llvm-svn: 133412
      cc19efaa
  13. Jun 19, 2011
  14. Jun 18, 2011
    • Hans Wennborg's avatar
      Fix PR10103: Less code for enum type translation. · 4ab4a8e6
      Hans Wennborg authored
      In cases such as the attached test, where the case value for a switch
      destination is used in a phi node that follows the destination, it
      might be better to replace that value with the condition value of the
      switch, so that more blocks can be folded away with
      TryToSimplifyUncondBranchFromEmptyBlock because there are less
      conflicts in the phi node.
      
      llvm-svn: 133344
      4ab4a8e6
    • Cameron Zwarich's avatar
      When scalar replacement returns a vector type, only accept it if the vector · 9601ddb2
      Cameron Zwarich authored
      type's bitwidth matches the (allocated) size of the alloca. This severely
      pessimizes vector scalar replacement when the only vector type being used is
      something like <3 x float> on x86 or ARM whose allocated size matches a
      <4 x float>.
      
      I hope to fix some of the flawed assumptions about allocated size throughout
      scalar replacement and reenable this in most cases.
      
      llvm-svn: 133338
      9601ddb2
Loading