http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49194
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2011.05.27 16:02:09
CC| |hubicka at gcc dot gnu.org,
| |jakub at gcc dot gnu.org
Ever Confirmed|0 |1
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-05-27
16:02:09 UTC ---
I agree if the called function is big and it is very unlikely (most probably
just in PROB_VERY_UNLIKELY cases) -finline-functions-called-once shouldn't
inline.
E.g.
void baz (void);
static void
foo (int x)
{
char buf[65536];
int a, b, c, d, e, f, g, h, i, j, k, l, m;
#define A asm volatile ("nop" : "+r" (x), "=r" (a), "=r" (b), "=r" (c), \
"=r" (d), "=r" (e), "=r" (f), "=r" (g), "=r" (h), \
"=r" (i), "=r" (j), "=r" (k), "=r" (l), "=r" (m) \
: "r" (buf));
#define B A A A A A A A A A A A
#define C B B B B B B B B B B B
C
}
int
bar (int x)
{
if (__builtin_expect (x > 65, 0))
foo (x + 6);
baz ();
return x;
}
inlines foo at -O2.