[llvm] [llvm-exegesis] [AArch64] Resolving "snippet crashed while running: Segmentation fault" for Load Instructions (PR #142552)

Aiden Grossman via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 9 10:29:24 PDT 2025


boomanaiden154 wrote:

> Is updating isMemory to OPERAND_MEMORY || mayLoad || mayStore correct and without unintended consequences ?

Could be. Not sure why exactly this would be different between X86 and AArch64 though. Probably something that should be understood before landing the patch, but doesn't hurt to try.

>  [sanity check] Scratch memory register be an arbitrary register (i.e. X14) is correct ?

No. The scratch memory register is defined by the calling convention. It's the first argument of the call that jumps to the assembly snippet.

> Any pointers on undefined physical register, why does this get thrown usually and potential wayout ?

That comes up usually because a physical register is undefined at the MC verification stage. You'll probably need to define the register somewhere.

> This is a large change, which shows that there are a lot of moving part involved here. I understand and agree it is not easy to see what is necessary to fully support loads/stores (for AArch64). Thanks for putting up this WIP patch, maybe we can use this WIP patch to define the minimum change and use-case that we want to add first.

The scratch memory register support should already work on AArch64 and thus would be a lot simpler. For using `--execution_mode=subprocess`, this is about the minimum support needed. It's mostly all or nothing due to what we need to properly generate setup and teardown code. It could probably be done incrementally though as some features like `mmap` generation could be pulled out.

https://github.com/llvm/llvm-project/pull/142552


More information about the llvm-commits mailing list