This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author arhadthedev
Recipients arhadthedev, gdr@garethrees.org, lemburg, mark.dickinson, rhettinger, vstinner
Date 2021-11-15.07:54:56
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1636962896.35.0.298441061317.issue45476@roundup.psfhosted.org>
In-reply-to
Content
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.
History
Date User Action Args
2021-11-15 07:54:56arhadthedevsetrecipients: + arhadthedev, lemburg, rhettinger, mark.dickinson, vstinner, gdr@garethrees.org
2021-11-15 07:54:56arhadthedevsetmessageid: <1636962896.35.0.298441061317.issue45476@roundup.psfhosted.org>
2021-11-15 07:54:56arhadthedevlinkissue45476 messages
2021-11-15 07:54:56arhadthedevcreate
Morty Proxy This is a proxified and sanitized view of the page, visit original site.