Skip to content
  1. 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
    • Jay Foad's avatar
      Remove the AugmentedUse struct. · 5c54d757
      Jay Foad authored
      I don't think the AugmentedUse struct buys us much, either in
      correctness or in ease of use. Ditch it, and simplify Use::getUser() and
      User::allocHungoffUses().
      
      llvm-svn: 133433
      5c54d757
    • Rafael Espindola's avatar
      Re enable 133415 with two fixes · 336e1023
      Rafael Espindola authored
      * Don't introduce a duplicated bb in the CFG
      * When making a branch unconditional, clear the PredCond array so that it
        is really unconditional.
      
      llvm-svn: 133432
      336e1023
    • Duncan Sands's avatar
      Disable the logic added by rafael in commit 133415 to see if it brings the · 406b9be0
      Duncan Sands authored
      dragonegg buildbots back to life.  Original commit message:
      Teach early dup how to duplicate basic blocks with one successor and only phi instructions
      into more complex blocks.
      
      llvm-svn: 133430
      406b9be0
    • Nadav Rotem's avatar
      Fix PromoteIntRes_TRUNCATE: Add support for cases where the · d34ce434
      Nadav Rotem authored
      source vector type is to be split while the target vector is to be promoted.
      (eg: <4 x i64> -> <4 x i8> )
      
      llvm-svn: 133424
      d34ce434
    • Francois Pichet's avatar
      Fix MSVC build. next() function already exists in the MSVC headers. This... · 3f60acad
      Francois Pichet authored
      Fix MSVC build. next() function already exists in the MSVC headers. This create a overload conflict. Make sure we pick up the llvm one.
      
      llvm-svn: 133416
      3f60acad
    • Rafael Espindola's avatar
      Teach early dup how to duplicate basic blocks with one successor and only phi instructions · ef636bff
      Rafael Espindola authored
      into more complex blocks.
      
      llvm-svn: 133415
      ef636bff
    • 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
  2. Jun 19, 2011
  3. Jun 18, 2011
Loading