gcc-3.0.1 and 2.4.7-ac1
Quoted 8 lines · Florian Weimer
Quoted 1 line · Petr Vandrovec
Just adding '-finline-limit=150' fixes all of them
This is not a fix, this is a workaround which is suitable for some specific GCC release(s). The optimization decisions surrounding inlining are likely to change again, so this will break almost certainly in the future.
I found that main problem is in __constant_memcpy. This is very large in internal representation (~70 'units'), so any kernel function which contains two memcpy calls with constant length cannot be inlined with current settings because of it contains 140+ internal operations - although if compiler then generates static function (instead of inlined), it is ~10 i386 operations long, from which 4 are push %edi/%esi and pop %esi/%edi...
Best regards,
Petr Vandrovec [email protected]