Skip to content

Conversation

@yonghong-song
Copy link
Contributor

All ATOMIC_NOFETCH insns have "$dst = $val" constraints. So let us enforce "$dst = $val" having the same register type in ATOMIC_NOFETCH as well.

Currently, things work since ATOMIC_NOFETCH does not have source code pattern matching. I am experimenting to introduce memory ordering to BPFInstrInfo.td file and pattern matching will be needed. Eventually, for atomic_fetch_*() insns locked insns could be generated if memory ordering is memory_order_relaxed.

[1] https://lore.kernel.org/bpf/7b941f53-2a05-48ec-9032-8f106face3a3@linux.dev/

All ATOMIC_NOFETCH insns have "$dst = $val" constraints. So let us enforce "$dst = $val" having the same register type in ATOMIC_NOFETCH as well. Currently, things work since ATOMIC_NOFETCH does not have source code pattern matching. I am experimenting to introduce memory ordering to BPFInstrInfo.td file and pattern matching will be needed. Eventually, for atomic_fetch_*() insns locked insns could be generated if memory ordering is memory_order_relaxed. [1] https://lore.kernel.org/bpf/7b941f53-2a05-48ec-9032-8f106face3a3@linux.dev/
@yonghong-song yonghong-song merged commit ef1ef03 into llvm:main Sep 5, 2024
@yonghong-song yonghong-song deleted the fix-atomic-nofetch branch September 12, 2024 04:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants