Skip to content
  • Chris Lattner's avatar
    Allow loop-idiom to run on multiple BB loops, but still only scan the loop · ddf58010
    Chris Lattner authored
    header for now for memset/memcpy opportunities.  It turns out that loop-rotate
    is successfully rotating loops, but *DOESN'T MERGE THE BLOCKS*, turning "for 
    loops" into 2 basic block loops that loop-idiom was ignoring.
    
    With this fix, we form many *many* more memcpy and memsets than before, including
    on the "history" loops in the viterbi benchmark, which look like this:
    
            for (j=0; j<MAX_history; ++j) {
              history_new[i][j+1] = history[2*i][j];
            }
    
    Transforming these loops into memcpy's speeds up the viterbi benchmark from
    11.98s to 3.55s on my machine.  Woo.
    
    llvm-svn: 122685
    ddf58010
Loading