Message ID | 20110610184247.GA3252@kam.mff.cuni.cz |
---|---|
State | New |
Headers | show |
On Fri, Jun 10, 2011 at 8:42 PM, Jan Hubicka <hubicka@ucw.cz> wrote: > Hi, > by some mistake we enable functions called once at -O0 and it actually happens from > time to time. Why do it for -O1? It definitely makes debugging less reliable. I'd say do it for -O[23s] only. Richard. > Bootstrapped/regtested x86_64-linux, will commit it shortly. > > Honza > > * opts.c (default_options): Enlist OPT_finline_functions_called_once. > * common.opt (flag_inline_functions_called_once):Do not initialize to 1. > Index: opts.c > =================================================================== > --- opts.c (revision 174916) > +++ opts.c (working copy) > @@ -486,6 +486,7 @@ static const struct default_options defa > /* Inlining of functions reducing size is a good idea with -Os > regardless of them being declared inline. */ > { OPT_LEVELS_3_PLUS_AND_SIZE, OPT_finline_functions, NULL, 1 }, > + { OPT_LEVELS_1_PLUS, OPT_finline_functions_called_once, NULL, 1 }, > { OPT_LEVELS_3_PLUS, OPT_funswitch_loops, NULL, 1 }, > { OPT_LEVELS_3_PLUS, OPT_fgcse_after_reload, NULL, 1 }, > { OPT_LEVELS_3_PLUS, OPT_ftree_vectorize, NULL, 1 }, > Index: common.opt > =================================================================== > --- common.opt (revision 174916) > +++ common.opt (working copy) > @@ -1233,7 +1233,7 @@ Common Report Var(flag_inline_functions) > Integrate simple functions into their callers > > finline-functions-called-once > -Common Report Var(flag_inline_functions_called_once) Init(1) Optimization > +Common Report Var(flag_inline_functions_called_once) Optimization > Integrate functions called once into their callers > > finline-limit- >
> On Fri, Jun 10, 2011 at 8:42 PM, Jan Hubicka <hubicka@ucw.cz> wrote: > > Hi, > > by some mistake we enable functions called once at -O0 and it actually happens from > > time to time. > > Why do it for -O1? It definitely makes debugging less reliable. I'd say do it > for -O[23s] only. Well, that is what we did before. I tought -O1 is mostly for optimizations that are not too expensive and usually win (rahter than about debugability of the output) and I think this one counts here. But I don't have very strong optinions either way. Honza
On Fri, Jun 10, 2011 at 9:15 PM, Jan Hubicka <hubicka@ucw.cz> wrote: >> On Fri, Jun 10, 2011 at 8:42 PM, Jan Hubicka <hubicka@ucw.cz> wrote: >> > Hi, >> > by some mistake we enable functions called once at -O0 and it actually happens from >> > time to time. >> >> Why do it for -O1? It definitely makes debugging less reliable. I'd say do it >> for -O[23s] only. > > Well, that is what we did before. I tought -O1 is mostly for optimizations > that are not too expensive and usually win (rahter than about debugability of > the output) and I think this one counts here. But I don't have very strong > optinions either way. I think we also suggested at some point that -O1 optimizations shouldn't interfere with debugging too much. But if it is what we did before it's certainly fine. Richard. > Honza >
> I think we also suggested at some point that -O1 optimizations > shouldn't interfere with debugging too much. But if it is what we did before > it's certainly fine. FWIW we have some evidences that -finline-functions-called-once really help at -O1 in terms of performances (with the 4.5 back-end) and doesn't damage debugging too much.
Index: opts.c =================================================================== --- opts.c (revision 174916) +++ opts.c (working copy) @@ -486,6 +486,7 @@ static const struct default_options defa /* Inlining of functions reducing size is a good idea with -Os regardless of them being declared inline. */ { OPT_LEVELS_3_PLUS_AND_SIZE, OPT_finline_functions, NULL, 1 }, + { OPT_LEVELS_1_PLUS, OPT_finline_functions_called_once, NULL, 1 }, { OPT_LEVELS_3_PLUS, OPT_funswitch_loops, NULL, 1 }, { OPT_LEVELS_3_PLUS, OPT_fgcse_after_reload, NULL, 1 }, { OPT_LEVELS_3_PLUS, OPT_ftree_vectorize, NULL, 1 }, Index: common.opt =================================================================== --- common.opt (revision 174916) +++ common.opt (working copy) @@ -1233,7 +1233,7 @@ Common Report Var(flag_inline_functions) Integrate simple functions into their callers finline-functions-called-once -Common Report Var(flag_inline_functions_called_once) Init(1) Optimization +Common Report Var(flag_inline_functions_called_once) Optimization Integrate functions called once into their callers finline-limit-