This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]