diff options
author | Manman Ren <manman.ren@gmail.com> | 2014-03-25 00:16:25 +0000 |
---|---|---|
committer | Manman Ren <manman.ren@gmail.com> | 2014-03-25 00:16:25 +0000 |
commit | 78cf02a07b601e1c2b5f4c02fb7f5296a18729ef (patch) | |
tree | f1faacb0b9c5429fd5f9a0f44eafdf7cdd5d58c5 /llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp | |
parent | 2f2c876e4f342ce4a1d103fb4e9b2c65372df8a1 (diff) | |
download | llvm-78cf02a07b601e1c2b5f4c02fb7f5296a18729ef.zip llvm-78cf02a07b601e1c2b5f4c02fb7f5296a18729ef.tar.gz llvm-78cf02a07b601e1c2b5f4c02fb7f5296a18729ef.tar.bz2 |
Register Allocator: check other options before using a CSR for the first time.
When register allocator's stage is RS_Spill, we choose spill over using the CSR
for the first time, if the spill cost is lower than CSRCost.
When register allocator's stage is < RS_Split, we choose pre-splitting over
using the CSR for the first time, if the cost of splitting is lower than
CSRCost.
CSRCost is set with command-line option "regalloc-csr-first-time-cost". The
default value is 0 to generate the same codes as before this commit.
With a value of 15 (1 << 14 is the entry frequency), I measured performance
gain of 3% on 253.perlbmk and 1.7% on 197.parser, with instrumented PGO,
on an arm device.
rdar://16162005
llvm-svn: 204690
Diffstat (limited to 'llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp')
0 files changed, 0 insertions, 0 deletions