Skip to content
  1. Jul 23, 2012
  2. Jul 22, 2012
  3. Jul 21, 2012
  4. Jul 20, 2012
    • Richard Osborne's avatar
      Fix assertion in jump threading (PR13405). · 0ab2b0df
      Richard Osborne authored
      GetBestDestForJumpOnUndef() assumes there is at least 1 successor, which isn't
      true if the block ends in an indirect branch with no successors. Fix this by
      bailing out earlier in this case.
      
      llvm-svn: 160546
      0ab2b0df
  5. Jul 18, 2012
    • Andrew Trick's avatar
      indvars: drive by heuristics fix. · 0d07dfcd
      Andrew Trick authored
      Minor oversight noticed by inspection. Sorry no unit test.
      
      llvm-svn: 160422
      0d07dfcd
    • Andrew Trick's avatar
      indvars: Linear function test replace should avoid reusing undef. · c0872662
      Andrew Trick authored
      Fixes PR13371: indvars pass incorrectly substitutes 'undef' values.
      
      I do not like this fix. It's needed until/unless the meaning of undef
      changes. It attempts to be complete according to the IR spec, but I
      don't have much confidence in the implementation given the difficulty
      testing undefined behavior. Worse, this invalidates some of my
      hard-fought work on indvars and LSR to optimize pointer induction
      variables. It results benchmark regressions, which I'll track
      internally. On x86_64 no LTO I see:
      
      -3% huffbench
      -3% 400.perlbench
      -8% fhourstones
      
      My only suggestion for recovering is to change the meaning of
      undef. If we could trust an arbitrary instruction to produce a some
      real value that can be manipulated (e.g. incremented) according to
      non-undef rules, then this case could be easily handled with SCEV.
      
      llvm-svn: 160421
      c0872662
  6. Jul 17, 2012
  7. Jul 14, 2012
  8. Jul 03, 2012
  9. Jul 02, 2012
  10. Jun 29, 2012
  11. Jun 28, 2012
  12. Jun 27, 2012
    • Duncan Sands's avatar
      Some reassociate optimizations create new instructions, which they insert just · 514db117
      Duncan Sands authored
      before the expression root.  Any existing operators that are changed to use one
      of them needs to be moved between it and the expression root, and recursively
      for the operators using that one.  When I rewrote RewriteExprTree I accidentally
      inverted the logic, resulting in the compacting going down from operators to
      operands rather than up from operands to the operators using them, oops.  Fix
      this, resolving PR12963.
      
      llvm-svn: 159265
      514db117
  13. Jun 26, 2012
  14. Jun 25, 2012
  15. Jun 24, 2012
  16. Jun 23, 2012
  17. Jun 21, 2012
    • Nuno Lopes's avatar
      port the BoundsChecking patch to the new MemoryBuiltin API (i.e., remove most... · 0e967e01
      Nuno Lopes authored
      port the BoundsChecking patch to the new MemoryBuiltin API (i.e., remove most of the code from here).
      Remove the alloc_size.ll test until we settle on a metadata format that makes everyone happy..
      
      llvm-svn: 158920
      0e967e01
    • Nuno Lopes's avatar
      refactor the MemoryBuiltin analysis: · 55fff834
      Nuno Lopes authored
       - provide more extensive set of functions to detect library allocation functions (e.g., malloc, calloc, strdup, etc)
       - provide an API to compute the size and offset of an object pointed by
      
      Move a few clients (GVN, AA, instcombine, ...) to the new API.
      This implementation is a lot more aggressive than each of the custom implementations being replaced.
      
      Patch reviewed by Nick Lewycky and Chandler Carruth, thanks.
      
      llvm-svn: 158919
      55fff834
    • Nadav Rotem's avatar
      Add a number of threshold arguments to the SRA pass. · 4e9012c2
      Nadav Rotem authored
      A patch by Tom Stellard with minor changes.
      
      llvm-svn: 158918
      4e9012c2
  18. Jun 17, 2012
  19. Jun 16, 2012
  20. Jun 15, 2012
Loading