On Tue, Oct 1, 2019 at 2:06 PM Miguel Ojeda <miguel.ojeda.sandonis@xxxxxxxxx> wrote: > > On Tue, Oct 1, 2019 at 10:53 PM Arnd Bergmann <arnd@xxxxxxxx> wrote: > > > > 1. is clearly the most common case, but there is also > > > > 4. Some compiler version (possibly long gone, possibly still current) > > makes bad inlining decisions that result in horrible but functionally > > correct object code for a particular function, and forcing a function to > > be inlined results in what we had expected the compiler to do already. > > There is also 5. code that does not even compile without it, e.g. > _static_cpu_has() in x86_64 which requires > __attribute__((always_inline)), at least on GCC 9.2. I assert that's just another case of 2, and should be investigated. (I think I remember that from when I had to teach LLVM how to inline asm goto; since the compiler can reject inlining if it doesn't know how to do such a transform). > > For x64_64 it is the only one case I found, though. If you disable > __always_inline everything else compiles and links (in a defconfig). Cool, so one bug in arm32, one bug in arm64, one bug in x86_64. Doesn't sound like too much work to fix. -- Thanks, ~Nick Desaulniers