Skip to content
  1. Aug 26, 2009
    • Dan Gohman's avatar
      Rename Instruction::isIdenticalTo to Instruction::isIdenticalToWhenDefined, · c8a27f2a
      Dan Gohman authored
      and introduce a new Instruction::isIdenticalTo which tests for full
      identity, including the SubclassOptionalData flags. Also, fix the
      Instruction::clone implementations to preserve the SubclassOptionalData
      flags. Finally, teach several optimizations how to handle
      SubclassOptionalData correctly, given these changes.
      
      This fixes the counterintuitive behavior of isIdenticalTo not comparing
      the full value, and clone not returning an identical clone, as well as
      some subtle bugs that could be caused by these.
      
      Thanks to Nick Lewycky for reporting this, and for an initial patch!
      
      llvm-svn: 80038
      c8a27f2a
  2. Aug 25, 2009
  3. Aug 24, 2009
  4. Aug 23, 2009
  5. Aug 20, 2009
  6. Aug 19, 2009
  7. Aug 18, 2009
  8. Aug 17, 2009
  9. Aug 16, 2009
    • Eli Friedman's avatar
      Fix for PR3016: detect the tricky case, where there are · d56fca47
      Eli Friedman authored
      unfoldable references to a PHI node in the block being folded, and disable
      the transformation in that case.  The correct transformation of such PHI
      nodes depends on whether BB dominates Succ, and dominance is expensive 
      to compute here.  (Alternatively, it's possible to check whether any 
      uses are live, but that's also essentially a dominance calculation. 
      Another alternative is to use reg2mem, but it probably isn't a good idea to
      use that in simplifycfg.)
      
      Also, remove some incorrect code from CanPropagatePredecessorsForPHIs 
      which is made unnecessary with this patch: it didn't consider the case 
      where a PHI node in BB has multiple uses.
      
      llvm-svn: 79174
      d56fca47
  10. Aug 15, 2009
  11. Aug 14, 2009
Loading