Skip to content
  • Benjamin Kramer's avatar
    Switch spill weights from a basic loop depth estimation to BlockFrequencyInfo. · e2a1d89e
    Benjamin Kramer authored
    The main advantages here are way better heuristics, taking into account not
    just loop depth but also __builtin_expect and other static heuristics and will
    eventually learn how to use profile info. Most of the work in this patch is
    pushing the MachineBlockFrequencyInfo analysis into the right places.
    
    This is good for a 5% speedup on zlib's deflate (x86_64), there were some very
    unfortunate spilling decisions in its hottest loop in longest_match(). Other
    benchmarks I tried were mostly neutral.
    
    This changes register allocation in subtle ways, update the tests for it.
    2012-02-20-MachineCPBug.ll was deleted as it's very fragile and the instruction
    it looked for was gone already (but the FileCheck pattern picked up unrelated
    stuff).
    
    llvm-svn: 184105
    e2a1d89e
Loading