Skip to content
  1. Nov 01, 2004
    • 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
    • Chris Lattner's avatar
      When compiling a file, indicate what build it is for · 615e7fbc
      Chris Lattner authored
      llvm-svn: 17388
      615e7fbc
    • Chris Lattner's avatar
      * Do not refer to ActualCallees in CBU, when we can do it locally. · 01f2381c
      Chris Lattner authored
      * *DO NOT* print CBU graphs when asked to print our own.  This is just
        FREAKING confusing and misleading: it's better to not print anything.
      * Simplify and clean up some code
      * Add some more paranoia assertion checking code that I found to track
        down this bug:
      * Fix a nasty bug that was causing us to crash on Prolangs-C++/objects,
        where we were missing processing some graphs.  This hunk is the bugfix:
      
      -    if (!I->isExternal() && !FoldedGraphsMap.count(I))
      +    if (!I->isExternal() && !ValMap.count(I))
      
        urg!
      
      llvm-svn: 17386
      01f2381c
    • Reid Spencer's avatar
      Wrap to 80 cols · b1454879
      Reid Spencer authored
      llvm-svn: 17385
      b1454879
    • Reid Spencer's avatar
      Add UsingLibraries.html link. · 0b40fdb0
      Reid Spencer authored
      llvm-svn: 17384
      0b40fdb0
    • Chris Lattner's avatar
      Simplify graph traversal, improve grammar · aeb2b16c
      Chris Lattner authored
      llvm-svn: 17383
      aeb2b16c
    • Reid Spencer's avatar
      Give table headers the striped background. · 1e3586ee
      Reid Spencer authored
      llvm-svn: 17382
      1e3586ee
    • Reid Spencer's avatar
      * Moved from ObjectFiles.html · 0d6d8d0a
      Reid Spencer authored
      * Changed names of libraries to reflect new naming scheme
      * Added some more introductory material
      * Added a rule of thumb.
      
      llvm-svn: 17381
      0d6d8d0a
  2. Oct 31, 2004
  3. Oct 30, 2004
Loading