Skip to content
  1. Dec 19, 2006
  2. Dec 17, 2006
  3. Dec 13, 2006
  4. Dec 12, 2006
  5. Dec 07, 2006
  6. Dec 06, 2006
  7. Nov 27, 2006
    • Reid Spencer's avatar
      For PR950: · 6c38f0bb
      Reid Spencer authored
      The long awaited CAST patch. This introduces 12 new instructions into LLVM
      to replace the cast instruction. Corresponding changes throughout LLVM are
      provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the
      exception of 175.vpr which fails only on a slight floating point output
      difference.
      
      llvm-svn: 31931
      6c38f0bb
  8. Nov 26, 2006
  9. Nov 18, 2006
  10. Nov 08, 2006
    • Jim Laskey's avatar
      Remove redundant <cmath>. · 61feeb90
      Jim Laskey authored
      llvm-svn: 31561
      61feeb90
    • Reid Spencer's avatar
      For PR950: · fdff938a
      Reid Spencer authored
      This patch converts the old SHR instruction into two instructions,
      AShr (Arithmetic) and LShr (Logical). The Shr instructions now are not
      dependent on the sign of their operands.
      
      llvm-svn: 31542
      fdff938a
  11. Nov 05, 2006
  12. Nov 02, 2006
    • Reid Spencer's avatar
      For PR786: · de46e484
      Reid Spencer authored
      Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
      fall out by removing unused variables. Remaining warnings have to do with
      unused functions (I didn't want to delete code without review) and unused
      variables in generated code. Maintainers should clean up the remaining
      issues when they see them. All changes pass DejaGnu tests and Olden.
      
      llvm-svn: 31380
      de46e484
  13. Oct 31, 2006
  14. Oct 29, 2006
  15. Oct 28, 2006
  16. Oct 20, 2006
  17. Oct 04, 2006
  18. Oct 03, 2006
  19. Sep 29, 2006
  20. Sep 23, 2006
    • Chris Lattner's avatar
      Be far more careful when splitting a loop header, either to form a preheader · 6bd6da40
      Chris Lattner authored
      or when splitting loops with a common header into multiple loops.  In particular
      the old code would always insert the preheader before the old loop header.  This
      is disasterous in cases where the loop hasn't been rotated.  For example, it can
      produce code like:
      
              .. outside the loop...
              jmp LBB1_2      #bb13.outer
      LBB1_1: #bb1
              movsd 8(%esp,%esi,8), %xmm1
              mulsd (%edi), %xmm1
              addsd %xmm0, %xmm1
              addl $24, %edi
              incl %esi
              jmp LBB1_3      #bb13
      LBB1_2: #bb13.outer
              leal (%edx,%eax,8), %edi
              pxor %xmm1, %xmm1
              xorl %esi, %esi
      LBB1_3: #bb13
              movapd %xmm1, %xmm0
              cmpl $4, %esi
              jl LBB1_1       #bb1
      
      Note that the loop body is actually LBB1_1 + LBB1_3, which means that the
      loop now contains an uncond branch WITHIN it to jump around the inserted
      loop header (LBB1_2).  Doh.
      
      This patch changes the preheader insertion code to insert it in the right
      spot, producing this code:
      
              ... outside the loop, fall into the header ...
      LBB1_1: #bb13.outer
              leal (%edx,%eax,8), %esi
              pxor %xmm0, %xmm0
              xorl %edi, %edi
              jmp LBB1_3      #bb13
      LBB1_2: #bb1
              movsd 8(%esp,%edi,8), %xmm0
              mulsd (%esi), %xmm0
              addsd %xmm1, %xmm0
              addl $24, %esi
              incl %edi
      LBB1_3: #bb13
              movapd %xmm0, %xmm1
              cmpl $4, %edi
              jl LBB1_2       #bb1
      
      Totally crazy, no branch in the loop! :)
      
      llvm-svn: 30587
      6bd6da40
    • Chris Lattner's avatar
      Teach UpdateDomInfoForRevectoredPreds to handle revectored preds that are not · 608cd05e
      Chris Lattner authored
      reachable, making it general purpose enough for use by InsertPreheaderForLoop.
      Eliminate custom dominfo updating code in InsertPreheaderForLoop, using
      UpdateDomInfoForRevectoredPreds instead.
      
      llvm-svn: 30586
      608cd05e
  21. Sep 13, 2006
  22. Sep 05, 2006
  23. Sep 04, 2006
  24. Aug 28, 2006
  25. Aug 27, 2006
  26. Aug 12, 2006
    • Chris Lattner's avatar
      Don't attempt to split subloops out of a loop with a huge number of backedges. · f18b396c
      Chris Lattner authored
      Not only will this take huge amounts of compile time, the resultant loop nests
      won't be useful for optimization.  This reduces loopsimplify time on
      Transforms/LoopSimplify/2006-08-11-LoopSimplifyLongTime.ll from ~32s to ~0.4s
      with a debug build of llvm on a 2.7Ghz G5.
      
      llvm-svn: 29647
      f18b396c
    • Chris Lattner's avatar
      Reimplement the loopsimplify code which deletes edges from unreachable · 85d9944f
      Chris Lattner authored
      blocks that target loop blocks.
      
      Before, the code was run once per loop, and depended on the number of
      predecessors each block in the loop had.  Unfortunately, scanning preds can
      be really slow when huge numbers of phis exist or when phis with huge numbers
      of inputs exist.
      
      Now, the code is run once per function and scans successors instead of preds,
      which is far faster.  In addition, the new code is simpler and is goto free,
      woo.
      
      This change speeds up a nasty testcase Duraid provided me from taking hours to
      taking ~72s with a debug build.  The functionality this implements is already
      tested in the testsuite as Transforms/CodeExtractor/2004-03-13-LoopExtractorCrash.ll.
      
      llvm-svn: 29644
      85d9944f
  27. Aug 03, 2006
  28. Aug 02, 2006
    • Chris Lattner's avatar
      Add special check to avoid isLoop call. Simple, but doesn't seem to speed · 38b6e838
      Chris Lattner authored
      up lcssa much in practice.
      
      llvm-svn: 29465
      38b6e838
    • Chris Lattner's avatar
      Replace the SSA update code in LCSSA with a bottom-up approach instead of a top · 5a2bc786
      Chris Lattner authored
      down approach, inspired by discussions with Tanya.
      
      This approach is significantly faster, because it does not need dominator
      frontiers and it does not insert extraneous unused PHI nodes.  For example, on
      252.eon, in a release-asserts build, this speeds up LCSSA (which is the slowest
      pass in gccas) from 9.14s to 0.74s on my G5.  This code is also slightly smaller
      and significantly simpler than the old code.
      
      Amusingly, in a normal Release build (which includes the
      "assert(L->isLCSSAForm());" assertion), asserting that the result of LCSSA
      is in LCSSA form is actually slower than the LCSSA transformation pass
      itself on 252.eon.  I will see if Loop::isLCSSAForm can be sped up next.
      
      llvm-svn: 29463
      5a2bc786
  29. Jul 27, 2006
  30. Jul 18, 2006
  31. Jul 15, 2006
Loading