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.
