Skip to content
  1. May 09, 2005
  2. May 06, 2005
  3. Apr 29, 2005
  4. Apr 23, 2005
  5. Apr 22, 2005
  6. Apr 21, 2005
    • Chris Lattner's avatar
      Improve doxygen documentation, patch contributed by Evan Jones! · 7ceb081f
      Chris Lattner authored
      llvm-svn: 21393
      7ceb081f
    • Chris Lattner's avatar
      Teach simplifycfg that setcc is cheap and non-trapping, so that it can · b38b443b
      Chris Lattner authored
      convert this:
      
              %tmp.1 = seteq int %i, 0                ; <bool> [#uses=1]
              br bool %tmp.1, label %shortcirc_done, label %shortcirc_next
      
      shortcirc_next:         ; preds = %entry
              %tmp.4 = seteq int %j, 0                ; <bool> [#uses=1]
              br label %shortcirc_done
      
      shortcirc_done:         ; preds = %shortcirc_next, %entry
              %shortcirc_val = phi bool [ %tmp.4, %shortcirc_next ], [ true, %entry ]         ; <bool> [#uses=1]
      
      to this:
              %tmp.1 = seteq int %i, 0                ; <bool> [#uses=1]
              %tmp.4 = seteq int %j, 0                ; <bool> [#uses=1]
              %shortcirc_val = select bool %tmp.1, bool true, bool %tmp.4             ; <bool> [#uses=1]
      
      ... which is later simplified by instcombine into an or.
      
      llvm-svn: 21388
      b38b443b
  7. Apr 12, 2005
  8. Mar 17, 2005
  9. Mar 15, 2005
  10. Mar 05, 2005
  11. Feb 27, 2005
  12. Feb 26, 2005
  13. Feb 24, 2005
    • Chris Lattner's avatar
      Implement Transforms/SimplifyCFG/switch_thread.ll · 1cca959e
      Chris Lattner authored
      This does a simple form of "jump threading", which eliminates CFG edges that
      are provably dead.  This triggers 90 times in the external tests, and
      eliminating CFG edges is always always a good thing! :)
      
      llvm-svn: 20300
      1cca959e
  14. Jan 29, 2005
  15. Jan 01, 2005
    • Chris Lattner's avatar
      Implement SimplifyCFG/DeadSetCC.ll · 3215bb60
      Chris Lattner authored
      SimplifyCFG is one of those passes that we use for final cleanup: it should
      not rely on other passes to clean up its garbage.  This fixes the "why are
      trivially dead setcc's in the output of gccas" problem.
      
      llvm-svn: 19212
      3215bb60
  16. Dec 11, 2004
  17. Dec 10, 2004
  18. Nov 30, 2004
  19. Nov 20, 2004
  20. Nov 13, 2004
  21. Nov 01, 2004
    • Chris Lattner's avatar
      Do not compute the predecessor list for a block unless we need it. · 93d1e39f
      Chris Lattner authored
      This speeds up simplifycfg on this program, from 44.87s to 0.29s (with
      a profiled build):
      
       #define CL0(a) case a: goto c;
       #define CL1(a) CL0(a##0) CL0(a##1) CL0(a##2) CL0(a##3) CL0(a##4) CL0(a##5) \
       CL0(a##6) CL0(a##7) CL0(a##8) CL0(a##9)
       #define CL2(a) CL1(a##0) CL1(a##1) CL1(a##2) CL1(a##3) CL1(a##4) CL1(a##5) \
       CL1(a##6) CL1(a##7) CL1(a##8) CL1(a##9)
       #define CL3(a) CL2(a##0) CL2(a##1) CL2(a##2) CL2(a##3) CL2(a##4) CL2(a##5) \
       CL2(a##6) CL2(a##7) CL2(a##8) CL2(a##9)
       #define CL4(a) CL3(a##0) CL3(a##1) CL3(a##2) CL3(a##3) CL3(a##4) CL3(a##5) \
       CL3(a##6) CL3(a##7) CL3(a##8) CL3(a##9)
      
       void f();
      
       void a() {
           int b;
        c: switch (b) {
               CL4(1)
           }
       }
      
      This testcase is contrived to expose N^2 behavior, but this patch should speedup
      simplifycfg on any programs that use large switch statements.  This testcase
      comes from GCC PR17895.
      
      llvm-svn: 17389
      93d1e39f
  22. Oct 28, 2004
  23. Oct 22, 2004
  24. Oct 19, 2004
  25. Oct 18, 2004
  26. Oct 17, 2004
  27. Oct 16, 2004
Loading