Some vector loads and stores generated from AArch64 intrinsics alias each other unnecessarily, preventing better scheduling. We just need to transfer memory operands during lowering.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
Hi,
Thanks for this! One comment, and please upload patches with full context.
Cheers,
James
lib/Target/AArch64/AArch64ISelDAGToDAG.cpp | ||
---|---|---|
1160 ↗ | (On Diff #76948) | This seems dodgy to me. Can we really be sure at this point that the memoperand is an intrinsic? It seems like we'd probably want the weaker "MemSDNode"? |
Comment Actions
Scratch that. I've seen from the source that we only ever call SelectLoad when selecting an intrinsic.
This looks good to me.