[Mlir-commits] [mlir] [mlir][ArmSME] Mark integration tests unsupported under ASan on Darwin (PR #233445)
Dhairyashil R G
llvmlistbot at llvm.org
Mon Oct 19 08:57:26 PDT 2026
dhairyashilRG wrote:
Thanks for tracking this down. I looked into why the large code model doesn't help:
- The JIT already defaults to `CodeModel::Large` on AArch64 (`AArch64TargetMachine.cpp`, `getEffectiveAArch64CodeModel`). In the object `mlir-runner` builds for `matmul.mlir`, every external call goes through the GOT except a `BRANCH26` to `__arm_tpidr2_save`.
- The SME ABI routine calls are built as direct BL at the MI level (`AArch64ExpandPseudoInsts.cpp` for the TPIDR2 save/restore, MachineSMEABIPass.cpp for `__arm_sme_save`/`__arm_sme_restore` and the state size call, `AArch64ISelLowering.cpp` for `__arm_sme_state`). They don't look at the code model, while LowerCall uses the GOT under Large on MachO.
- ASan isn't needed to hit it. With a stand-in ABI library that puts `__arm_tpidr2_save` about 200 MB away, a non-ASan `mlir-runner` hits the same assert in `RuntimeDyldMachOAArch64.h`.
A quick prototype that emits `adrp`/`ldr` `x16`/`blr x16` for the two `AArch64ExpandPseudoInsts.cpp` sites under Large on MachO makes that case link, and the existing SME codegen tests still pass. So skipping the tests looks fine as a stopgap, but could the FIXME say it's the SME ABI calls ignoring the code model, and point to an issue for the backend fix? @MacDue, does that sound right to you?
https://github.com/llvm/llvm-project/pull/233445
More information about the Mlir-commits
mailing list