Hi! I ran into this in shrink-wrap.c today.
On Thu, Jun 03, 2021 at 02:54:07PM +0800, liuhongt via Gcc-patches wrote: > Use "used" flag for CALL_INSN to indicate it's a fake call. If it's a > fake call, it won't have its own function stack. Could you document somewhere what a "fake call" *is*? Including what that means to RTL, how this is expected to be used, etc.? In rtl.h is fine with me, but as it is, no one can know when to use this. What does "its own function stack" mean in the description here? You can only put FAKE_CALL on functions that do not have a stack frame? But that is never true on x86, so that cannot be it, unless there isn't a call instruction at all? But then, why use an RTL call insn for this? Other targets simply do not use an RTL "call" when they want to hide such an instruction, why can't you do that here, wouldn't that work much better? There are many more insns that you may want to hide. The traditional solution is to use unspecs, which very directly hides all details. Segher