https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125838

--- Comment #2 from Iain Sandoe <iains at gcc dot gnu.org> ---
(In reply to Drea Pinski from comment #1)
> >(I do not remember how to disable IPO on clang).
> 
> clang does not have any attribute yet (the underlying LLVM attribute is not
> there either yet, https://github.com/llvm/llvm-project/pull/203304 adds it
> but it is under discussion still); you can disable inlining in a similar way
> as GCC (via noinline attribute or -fno-inlining). 

yeah .. I have that .. but O > 0 still seems to do things .. so needs to be
avoided to minimise confusion when looking at the generated code.

> It was noted that the ABI of preserve_none is consider unstable in clang so
> maybe there is no right answer.

> from https://clang.llvm.org/docs/AttributeReference.html#preserve-none :
> This attribute doesn’t impact floating-point registers. preserve_none’s ABI
> is still unstable, and may be changed in the future.

I read that, but ISTM that it's already in the wild and from what I hear is
being used by python .. so .. we might be in a tricky place already.

Not that I have a great opinion on what "right answer" would be ... the
observations were just based on looking a the stack usage for the example
attached.

Reply via email to