Re: [PATCH] lib: Add shared copy of __lshrti3 from libgcc

From: Peter Zijlstra
Date: Mon Mar 18 2019 - 05:14:46 EST


On Fri, Mar 15, 2019 at 03:06:37PM -0700, Nick Desaulniers wrote:
> On Fri, Mar 15, 2019 at 1:54 PM Matthias Kaehlcke <mka@xxxxxxxxxxxx> wrote:
> >
> > The compiler may emit calls to __lshrti3 from the compiler runtime
> > library, which results in undefined references:
> >
> > arch/x86/kvm/x86.o: In function `mul_u64_u64_shr':
> > include/linux/math64.h:186: undefined reference to `__lshrti3'
>
> Looks like Clang will emit this at -Oz (but not -O2):
> https://godbolt.org/z/w1_2YC

*OMG*, what is that compiler smoking and why do we want that?

It doesn't even do that for "-Os".

So where "-Os" is "Optimize for Sadness" this "-Oz" thing is like a
downright depression. Please just take it out back. Don't enable crap
like this.