On Fri, Aug 29, 2025 at 08:44:30AM +0200, Richard Biener wrote:
> You definitely cannot move loads across std::start_lifetime_as<S>
> given they might be UB (wrt TBAA) on one of the "sides". So yes,
> it needs to appear as a store as well. But, since it isn't an
> actual store in the end, it may not appear as a kill.
I can easily make it appear as a store in the inline asm.
Is there anything we can handle in the middle-end better than inline asm
in that case though?
I mean if we have a builtin that acts as an unknown external call
in GIMPLE and is expanded into inline asm, isn't inline asm easier?
If represented in GIMPLE as a visible store, won't it cause problems
in the .rodata cases? Not to mention that I don't think we ever want to
assemble it as a store.
But sure, I'm also interested in seeing use cases.
Jakub