Oleg Iarygin <o...@arhadthedev.net> added the comment:

Marc-Andre:
> Inlining is something that is completely under the control of the
used compilers. Compilers are free to not inline function marked for
inlining [...]

I checked the following C snippet on gcc.godbolt.org using GCC 4.1.2 and Clang 
3.0.0 with <no flags>/-O0/-O1/-Os, and both compilers inline a function marked 
as static inline:

    static inline int foo(int a)
    {
        return a * 2;
    }

    int bar(int a)
    {
        return foo(a) < 0;
    }

So even with -O0, GCC from 2007 and Clang from 2011 perform inlining. Though, 
old versions of CLang leave a dangling original copy of foo for some reason. I 
hope a linker removes it later.

As for other compilers, I believe that if somebody specifies -O0, that person 
has a sound reason to do so (like per-line debugging, building precise flame 
graphs, or other specific scenario where execution performance does not 
matter), so inlining interferes here anyway.

----------
nosy: +arhadthedev

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue45476>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to