Skip to content
  1. Nov 11, 2011
    • Eli Friedman's avatar
      Get rid of an optimization in SCCP which appears to have many issues. ... · 0a309292
      Eli Friedman authored
      Get rid of an optimization in SCCP which appears to have many issues.  Specifically, it doesn't handle many cases involving undef correctly, and it is missing other checks which
      lead to it trying to re-mark a value marked as a constant with a different value.  It also appears to trigger very rarely.
      
      Fixes PR11357.
      
      llvm-svn: 144352
      0a309292
  2. Nov 10, 2011
  3. Nov 08, 2011
  4. Nov 05, 2011
  5. Nov 04, 2011
  6. Nov 03, 2011
  7. Nov 02, 2011
  8. Oct 29, 2011
  9. Oct 28, 2011
  10. Oct 27, 2011
  11. Oct 23, 2011
  12. Oct 22, 2011
  13. Oct 20, 2011
  14. Oct 18, 2011
  15. Oct 17, 2011
  16. Oct 16, 2011
  17. Oct 15, 2011
    • Duncan Sands's avatar
      Don't replace all dominated uses if there is only one use, since that · f537a6ed
      Duncan Sands authored
      use can't be dominated, saving one domtree lookup.
      
      llvm-svn: 142066
      f537a6ed
    • Andrew Trick's avatar
      Fix indvars randomness by removing iteration over a map. · d50861c8
      Andrew Trick authored
      I rewrote the algorithm a while back so it doesn't require map lookup,
      but neglected to change the data structure. This was caught by
      llvm-gcc self host, not because there's anything special about
      llvm-gcc, but because it is the only test for nondeterminism we
      currently have. Unit tests don't work well for everything; we should
      always try to have a nondeterminism stress test running.
      
      Fixes PR11133: llvm-gcc self host .o mismatch after enable-iv-rewrite=false
      
      llvm-svn: 142036
      d50861c8
  18. Oct 14, 2011
  19. Oct 13, 2011
  20. Oct 12, 2011
  21. Oct 11, 2011
  22. Oct 08, 2011
  23. Oct 07, 2011
  24. Oct 06, 2011
    • Eli Friedman's avatar
      PR11061: Make simplifylibcalls fold strcmp("", x) correctly. · 3e3aecbc
      Eli Friedman authored
      While I'm here, fix the related issue with strncmp, add some actual tests for strcmp and strncmp, and start using StringRef::compare for constant folding instead of using strcmp/strncmp so that the optimized IR isn't dependent on the host's implementation of strcmp.
      
      llvm-svn: 141227
      3e3aecbc
  25. Oct 05, 2011
    • Duncan Sands's avatar
      GVN does simple propagation of conditions: when it sees a conditional · f4f47ccd
      Duncan Sands authored
      branch "br i1 %x, label %if_true, label %if_false" then it replaces
      "%x" with "true" in places only reachable via the %if_true arm, and
      with "false" in places only reachable via the %if_false arm.  Except
      that actually it doesn't: if value numbering shows that %y is equal
      to %x then, yes, %y will be turned into true/false in this way, but
      any occurrences of %x itself are not transformed.  Fix this.  What's
      more, it's often the case that %x is an equality comparison such as
      "%x = icmp eq %A, 0", in which case every occurrence of %A that is
      only reachable via the %if_true arm can be replaced with 0.  Implement
      this and a few other variations on this theme.  This reduces the number
      of lines of LLVM IR in "GCC as one big file" by 0.2%.  It has a bigger
      impact on Ada code, typically reducing the number of lines of bitcode
      by around 0.4% by removing repeated compiler generated checks.  Passes
      the LLVM nightly testsuite and the Ada ACATS testsuite.
      
      llvm-svn: 141177
      f4f47ccd
    • Duncan Sands's avatar
      Generalize GVN's conditional propagation logic slightly: · e90dd058
      Duncan Sands authored
      it's OK for the false/true destination to have multiple
      predecessors as long as the extra ones are dominated by
      the branch destination.
      
      llvm-svn: 141176
      e90dd058
Loading