Skip to content
  1. Aug 20, 2009
  2. Aug 19, 2009
  3. Aug 18, 2009
  4. Aug 17, 2009
  5. 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
  6. Aug 15, 2009
  7. Aug 13, 2009
  8. Aug 12, 2009
    • Dan Gohman's avatar
      Make LLVM Assembly dramatically easier to read by aligning the comments, · e274526d
      Dan Gohman authored
      using formatted_raw_ostream's PadToColumn.
      
      Before:
      
      bb1:            ; preds = %bb
        %2 = sext i32 %i.01 to i64            ; <i64> [#uses=1]
        %3 = getelementptr double* %p, i64 %2         ; <double*> [#uses=1]
        %4 = load double* %3, align 8         ; <double> [#uses=1]
        %5 = fmul double %4, 1.100000e+00             ; <double> [#uses=1]
        %6 = sext i32 %i.01 to i64            ; <i64> [#uses=1]
        %7 = getelementptr double* %p, i64 %6         ; <double*> [#uses=1]
      
      After:
      
      bb1:                                        ; preds = %bb
        %2 = sext i32 %i.01 to i64                ; <i64> [#uses=1]
        %3 = getelementptr double* %p, i64 %2     ; <double*> [#uses=1]
        %4 = load double* %3, align 8             ; <double> [#uses=1]
        %5 = fmul double %4, 1.100000e+00         ; <double> [#uses=1]
        %6 = sext i32 %i.01 to i64                ; <i64> [#uses=1]
        %7 = getelementptr double* %p, i64 %6     ; <double*> [#uses=1]
      
      Several tests required whitespace adjustments.
      
      llvm-svn: 78816
      e274526d
    • Dan Gohman's avatar
      Transform -X/C to X/-C, implementing a README.txt entry. · 4ac2f639
      Dan Gohman authored
      llvm-svn: 78812
      4ac2f639
    • Dan Gohman's avatar
      Optimize (x/C)*C to x if the division is exact. · 908da3d9
      Dan Gohman authored
      llvm-svn: 78811
      908da3d9
  9. Aug 11, 2009
  10. Aug 04, 2009
  11. Jul 31, 2009
  12. Jul 30, 2009
  13. Jul 29, 2009
  14. Jul 28, 2009
  15. Jul 23, 2009
  16. Jul 21, 2009
  17. Jul 20, 2009
    • Dan Gohman's avatar
      Revert the addition of hasNoPointerOverflow to GEPOperator. · 33a3fd0b
      Dan Gohman authored
      Getelementptrs that are defined to wrap are virtually useless to
      optimization, and getelementptrs that are undefined on any kind
      of overflow are too restrictive -- it's difficult to ensure that
      all intermediate addresses are within bounds. I'm going to take
      a different approach.
      
      Remove a few optimizations that depended on this flag.
      
      llvm-svn: 76437
      33a3fd0b
  18. Jul 19, 2009
  19. Jul 18, 2009
  20. Jul 16, 2009
Loading