aboutsummaryrefslogtreecommitdiff
path: root/gcc/dwarf2codeview.h
diff options
context:
space:
mode:
authorSurya Kumari Jangala <jskumari@linux.ibm.com>2024-06-25 08:37:49 -0500
committerSurya Kumari Jangala <jskumari@linux.ibm.com>2024-06-25 12:48:49 -0500
commit3b9b8d6cfdf59337f4b7ce10ce92a98044b2657b (patch)
treedf1cf06584a604cbc78149d961654ed11d532575 /gcc/dwarf2codeview.h
parent9f168b412f44781013401492acfedf22afe7741b (diff)
downloadgcc-3b9b8d6cfdf59337f4b7ce10ce92a98044b2657b.zip
gcc-3b9b8d6cfdf59337f4b7ce10ce92a98044b2657b.tar.gz
gcc-3b9b8d6cfdf59337f4b7ce10ce92a98044b2657b.tar.bz2
ira: Scale save/restore costs of callee save registers with block frequency
In assign_hard_reg(), when computing the costs of the hard registers, the cost of saving/restoring a callee-save hard register in prolog/epilog is taken into consideration. However, this cost is not scaled with the entry block frequency. Without scaling, the cost of saving/restoring is quite small and this can result in a callee-save register being chosen by assign_hard_reg() even though there are free caller-save registers available. Assigning a callee save register to a pseudo that is live in the entire function and across a call will cause shrink wrap to fail. 2024-06-25 Surya Kumari Jangala <jskumari@linux.ibm.com> gcc/ PR rtl-optimization/111673 * ira-color.cc (assign_hard_reg): Scale save/restore costs of callee save registers with block frequency. gcc/testsuite/ PR rtl-optimization/111673 * gcc.target/powerpc/pr111673.c: New test.
Diffstat (limited to 'gcc/dwarf2codeview.h')
0 files changed, 0 insertions, 0 deletions