This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
[IRA, regresssion] code size regression with IRA
- From: Hariharan <hariharans at picochip dot com>
- To: gcc at gcc dot gnu dot org, vmakarov at redhat dot com
- Date: Wed, 12 Aug 2009 16:27:25 +0100
- Subject: [IRA, regresssion] code size regression with IRA
Hi Vlad,
I am attaching a test function which has just a huge switch statement
with multiple cases doing different things. This function register
allocates on GCC 4.3.2 with no spills at all (at -Os). The function has
lots of live ranges that span function calls, but the old allocator
seemed to handle it quite well. With IRA, i get lots of spills and a
huge frame usage (160 bytes). Can you have a look and see if this is
some heuristic going wrong in IRA or just a degenerate case?
I tried this testcase with all the IRA options, but nothing helped much
in reducing code size/frame size.
Picochip's assembly is RISC and the instructions should be obvious, but
if you need anything, please refer
http://www.picochip.com/downloads/picoGcc_reference_manual.pdf or ask
me! You can ofcourse build picochip target (picochip-unknown-none) on
mainline if you need to.
Attachments:
ira_regression.tgz - Contains source and assembly from GCC 4.3.2, 4.4.0
and mainline.
Your help is greatly appreciated. Let me know if you need any more
information.
Thanks and regards
Hari
Attachment:
ira_regression.tgz
Description: application/compressed-tar