Skip to content
  1. Nov 07, 2004
  2. Nov 06, 2004
  3. Nov 05, 2004
  4. Nov 04, 2004
  5. Nov 03, 2004
  6. Nov 02, 2004
  7. Nov 01, 2004
    • Chris Lattner's avatar
      720eb217
    • Chris Lattner's avatar
      Speed up the tail duplication pass on the testcase below from 68.2s to 1.23s: · 8af74249
      Chris Lattner authored
      #define CL0(a) case a: f(); 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 comes from GCC PR 15524
      
      llvm-svn: 17390
      8af74249
    • 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
  8. Oct 31, 2004
  9. Oct 30, 2004
  10. Oct 29, 2004
Loading