[all-commits] [llvm/llvm-project] ef1ef0: [BPF] Fix dst/val mismatch in class ATOMIC_NOFETCH...

yonghong-song via All-commits all-commits at lists.llvm.org
Wed Sep 4 17:38:46 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ef1ef03d4c1014d41713feb0c7edc4d0e36982f4
      https://github.com/llvm/llvm-project/commit/ef1ef03d4c1014d41713feb0c7edc4d0e36982f4
  Author: yonghong-song <yhs at fb.com>
  Date:   2024-09-04 (Wed, 04 Sep 2024)

  Changed paths:
    M llvm/lib/Target/BPF/BPFInstrInfo.td

  Log Message:
  -----------
  [BPF] Fix dst/val mismatch in class ATOMIC_NOFETCH (#107288)

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/



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list