Skip to content
  • Chris Lattner's avatar
    This adds in some code (currently disabled unless you pass · eb3e4fb6
    Chris Lattner authored
    -enable-smarter-addr-folding to llc) that gives CGP a better
    cost model for when to sink computations into addressing modes.
    The basic observation is that sinking increases register 
    pressure when part of the addr computation has to be available
    for other reasons, such as having a use that is a non-memory
    operation.  In cases where it works, it can substantially reduce
    register pressure.
    
    This code is currently an overall win on 403.gcc and 255.vortex
    (the two things I've been looking at), but there are several 
    things I want to do before enabling it by default:
    
    1. This isn't doing any caching of results, so it is much slower 
       than it could be.  It currently slows down release-asserts llc 
       by 1.7% on 176.gcc: 27.12s -> 27.60s.
    2. This doesn't think about inline asm memory operands yet.
    3. The cost model botches the case when the needed value is live
       across the computation for other reasons.
    
    I'll continue poking at this, and eventually turn it on as llcbeta.
    
    llvm-svn: 60074
    eb3e4fb6
Loading