> On 07/24/2017 01:08 PM, Jan Hubicka wrote: > >> On Mon, Jul 24, 2017 at 2:56 PM, Jan Hubicka <hubi...@ucw.cz> wrote: > >>> Hi, > >>> this patch adds -Wsuggest-attribute=cold because we can now statically > >>> detect > >>> cold functions atuomatically. > >>> > >>> Bootstrapped/regtested x86_64-linux. Plan to commit it tomorrow if there > >>> are no > >>> complains. > >>> > >>> Honza > >>> > >>> * invoke.texi (Wsuggest-attribute=cold): Document. > >>> * common.opt (Wsuggest-attribute=cold): New > >>> * ipa-pure-const.c (warn_function_cold): New function. > >>> * predict.c (compute_function_frequency): Use it. > >>> * predict.h (warn_function_cold): Declare. > >>> > >>> * gcc.dg/cold-1.c: New testcase. > >> > >> Would it be possible to also do -Wsuggest-attribute=hot for symmetry's > >> sake? Just wondering. > > > > It would be nice, but it is kind of impossible to detect hot spots of the > > program with reasonable certainity. (that is why profile feedback is useful > > :) > > This cold attribute detection looks really for very simple pattern where the > > function inavoidably calls other cold function or does something similarly > > unlikely (Eh or trap). This is fairly limited pattern, but it is useful > > i.e. > > to detect which libstdc++ functions can have this annotation that further > > improve branch prediction. > So what's the advantage of a user adding the attribute if the compiler > can infer it? Presumably by adding the attribute, it's known without > analysis and can be taken advantage of by its callers?
Like most of the other -Wsuggest it only warn on functions that are externally visble. Adding attribute will improve code in other compilation units that does not see the function body. Honza > Jeff