Skip to content
  • Chris Lattner's avatar
    Implement PRE of loads in the GVN pass with a pretty cheap and · 1db9bbe8
    Chris Lattner authored
    straight-forward implementation.  This does not require any extra
    alias analysis queries beyond what we already do for non-local loads.
    
    Some programs really really like load PRE.  For example, SPASS triggers
    this ~1000 times, ~300 times in 255.vortex, and ~1500 times on 403.gcc.
    
    The biggest limitation to the implementation is that it does not split
    critical edges.  This is a huge killer on many programs and should be
    addressed after the initial patch is enabled by default.
    
    The implementation of this should incidentally speed up rejection of 
    non-local loads because it avoids creating the repl densemap in cases 
    when it won't be used for fully redundant loads.
    
    This is currently disabled by default.
    Before I turn this on, I need to fix a couple of miscompilations in
    the testsuite, look at compile time performance numbers, and look at
    perf impact.  This is pretty close to ready though.
    
    llvm-svn: 60408
    1db9bbe8
Loading