[clang] [AArch64] Stack probing for function prologues (PR #66524)
Momchil Velikov via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 26 02:53:42 PDT 2023
momchil-velikov wrote:
> Apologies for still not being able to create a reproducible example I can share but what I am seeing is the stack probe write overwriting the value at the tip of the stack when I step debug execution:
Can you spot a place where the probe instruction is *not* immediately after a decrement of the stack (disregarding some random register-to-register arithmetic that may appear)?
If you can't (and you should not find such a case), perhaps some instruction writes below the `sp`? That would be against the AArch64.
Is redzone enabled (`--aarch64-redzone=true|false`) "? If it is on, can you check if it makes a difference if you disable it?
> > All the stack probing should have already finished before the call to `malloc`.
> Only for the containing function, the functions which have their stack probes inlined will be in the middle of the function which then results in this null-deref.
The stack probes (except `alloca` ones) are emitted by the PrologEpilogInsertion pass, which is very late in the pipeline.
I didn't think inlining could happen after that pass. Can you share yous compilation pipeline (`-- debug-pass=Structure`)?
https://github.com/llvm/llvm-project/pull/66524
More information about the cfe-commits
mailing list