[all-commits] [llvm/llvm-project] e6ada7: [regalloc][basic] Change spill weight for optsize ...

Ellis Hoag via All-commits all-commits at lists.llvm.org
Mon Oct 21 11:11:13 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e6ada7162e25ab28f6e588fba23f0c11dd1238b5
      https://github.com/llvm/llvm-project/commit/e6ada7162e25ab28f6e588fba23f0c11dd1238b5
  Author: Ellis Hoag <ellis.sparky.hoag at gmail.com>
  Date:   2024-10-21 (Mon, 21 Oct 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/CalcSpillWeights.h
    M llvm/include/llvm/CodeGen/LiveIntervals.h
    M llvm/lib/CodeGen/CalcSpillWeights.cpp
    M llvm/lib/CodeGen/LiveIntervals.cpp
    M llvm/lib/CodeGen/RegAllocBasic.cpp
    A llvm/test/CodeGen/AArch64/regalloc-spill-weight-basic.ll

  Log Message:
  -----------
  [regalloc][basic] Change spill weight for optsize funcs (#112960)

Change the spill weight calculations for `optsize` functions to remove
the block frequency multiplier. For those functions, we do not want to
consider the runtime cost of spilling, only the codesize cost.

I built a large app with the basic and greedy (default) register
allocator enabled.

| Regalloc Type | Uncompressed Size Delta | Compressed Size Delta |
| - | - | - |
| Basic | -303.8 KiB (-0.23%) | -232.0 KiB (-0.39%) |
| Greedy | 159.1 KiB (0.12%) | 130.1 KiB (0.22%) |

Since I only saw a size win with the basic register allocator, I decided
to only change the behavior for that type.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list