[Bug gcov-profile/80223] RFE: Exclude functions from profile instrumentation

i at maskray dot me gcc-bugzilla@gcc.gnu.org
Wed Jun 23 19:51:43 GMT 2021


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80223

--- Comment #20 from Fangrui Song <i at maskray dot me> ---
(In reply to Marco Elver from comment #19)

I am ok with "inlining suppression" as an implementation strategy and I agree
that it should be useful. What I objected strongly is "promised inlining
suppression".

For example, if an inlining pass happens after instrumentation, then the
function attribute doesn't necessarily need to suppress inlining. After
instrumentation is done, we can even treat the noprofile attribute as a no-op.

The example applies to the non-LTO case -fsanitize-coverage= . (We don't
actually use the noprofile function attribute for -fsanitize-coverage=, but I
cannot find a better example in LLVM; I think all other noprofile affected
instrumentations happen before the inliner pipeline).

So in a documentation, it can be said that the inlined copy (if any) will not
get instrumentation, but it **should not** say that a noprofile function cannot
be inlined into a function without the attribute.


More information about the Gcc-bugs mailing list