Re: [Patch 05/12] MdePkg BaseIoLibIntrinsic: Remove __inline__ attribute for IO functions

Jordan Justen

On 2019-10-10 09:32:19, Laszlo Ersek wrote:
Hi Liming, Andrew,

On 10/10/19 14:32, Liming Gao wrote:

-----Original Message-----
From: Laszlo Ersek <>
Sent: Wednesday, October 9, 2019 4:22 AM
To: Gao, Liming <>;;
Subject: Re: [edk2-devel] [Patch 05/12] MdePkg BaseIoLibIntrinsic: Remove __inline__ attribute for IO functions

On 10/08/19 16:47, Gao, Liming wrote:

[Liming] I verify GCC5 tool chain. I will verify GCC48/GCC49 and

I don’t know the specific reason about __inline__. If there is no
impact on

other GCC tool chain, I prefer to remove them.
[Liming] This seems the remaining clean up task. So, I prefer to remove
__inline__ if no impact on GCC tool chain.
OK. Given your testing with GCC48, I'm fine.
With this patch set, I verify GCC48/GCC49/GCC5 on Ovmf3264. They can all boot to Shell.
Are they enough?
Would you guys agree with the following commit message, on this patch?

__inline__ has no discernible effect with the GCC48 / GCC49 / GCC5
toolchains, but it breaks the build with CLANG9.

Remove __inline__.
Would it be more accurate to say it didn't have a functional
difference? Did we rule out that it might have made a difference in
code gen?

I guess I wouldn't be surprised if the older non-LTO toolchains didn't
make use of it anyway. So, maybe there is no difference in code gen.

With LTO the linker is hopefully smarter about auto-inlining anyhow.


Join to automatically receive all group messages.