[PATCH 0/3] Add __ioread32_copy() and use it
From: akpm@linux-foundation.org (Andrew Morton)
Date: 2015-09-16 02:49:34
Also in:
linux-arm-msm, linux-mips, lkml
From: akpm@linux-foundation.org (Andrew Morton)
Date: 2015-09-16 02:49:34
Also in:
linux-arm-msm, linux-mips, lkml
On Wed, 16 Sep 2015 04:32:19 +0200 Andi Kleen [off-list ref] wrote:
quoted
__iowrite32_copy() is marked __visible. I don't actually know what that does and Andi's d47d5c8194579bc changelog (which sucks the big one) didn't explain it. Apparently it has something to do with being implemented in assembly, but zillions of functions are implemented in assembly, so why are only two functions marked this way? Anyway, __ioread32_copy() is implemented in C so I guess __visible isn't needed there.__visible is needed for C functions that are called from assembler. Otherwise the compiler may optimize them away.
Under what circumstances will the compiler (or linker?) do this? LTO enabled?