Messages in this thread | | | From | Miguel Ojeda <> | Date | Tue, 1 Oct 2019 00:08:07 +0200 | Subject | Re: [PATCH] compiler: enable CONFIG_OPTIMIZE_INLINING forcibly |
| |
On Mon, Sep 30, 2019 at 11:50 PM Nick Desaulniers <ndesaulniers@google.com> wrote: > > So __attribute__((always_inline)) doesn't guarantee that code will be > inlined. [...] inline and __attribute__((always_inline)) > are a heuristic laden mess and should not be relied upon.
Small note: in GCC, __attribute__((always_inline)) is documented as actually guaranteeing to either inline or error otherwise (although see the remark for indirect calls):
"Failure to inline such a function is diagnosed as an error. Note that if such a function is called indirectly the compiler may or may not inline it depending on optimization level and a failure to inline an indirect call may or may not be diagnosed."
As for LLVM/Clang, no idea, since it does not say anything about it in the docs -- but from what you say, it is a weaker guarantee.
Cheers, Miguel
| |