I wonder it get bigger. Just change the print_debug to printo_debug.
Because call printo_debug is bigger than inline print_debug, or the __attirbute__ (noinline) doesn't take effective.??
YH
-----邮件原件----- 发件人: ebiederman@lnxi.com [mailto:ebiederman@lnxi.com] 发送时间: 2004年6月8日 13:39 收件人: YhLu 抄送: LinuxBIOS 主题: Re: [COMMIT] romcc 0.63 and some fixes...
YhLu YhLu@tyan.com writes:
linuxbios image is 71069 bytes; only 65536 allowed
after change some print_debug to printo_debug, it gets bigger. Before that it about 68000.
Ouch. I guess it must be some of the missed opportunities for optimization. Or the increase in moving values around in registers.
So in theory it works, but we are having a hard time applying it :(
Do you have any significant size regression with just switching to the new romcc.
Eric
YhLu YhLu@tyan.com writes:
I wonder it get bigger. Just change the print_debug to printo_debug.
Because call printo_debug is bigger than inline print_debug, or the __attirbute__ (noinline) doesn't take effective.??
__attribute__ ((noinline)) is mandatory is it must take effect.
The best way to see the code difference is to diff the two version of auto.inc
So it looks like something/somewhere gets bigger. Possibly the non-inline call does something really with the register allocation and we get a lot of register shuffling going on.
I have not seen this case yet. Tracking down this issue is a very delicate operation. Somewhere a heuristic sucks and is causing this.
Eric