[all-commits] [llvm/llvm-project] b7c4b2: [Attributor] Check callback broker argument aliase...

Tomas Matheson via All-commits all-commits at lists.llvm.org
Fri Sep 25 04:00:45 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b7c4b2171d5f4e902dad4b207625bc08c45e8cbf
      https://github.com/llvm/llvm-project/commit/b7c4b2171d5f4e902dad4b207625bc08c45e8cbf
  Author: Tomas Matheson <Tomas.Matheson at arm.com>
  Date:   2026-09-25 (Fri, 25 Sep 2026)

  Changed paths:
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    A llvm/test/Transforms/Attributor/callback-noalias.ll
    M llvm/test/Transforms/Attributor/callbacks.ll
    M llvm/test/Transforms/OpenMP/parallel_deletion.ll

  Log Message:
  -----------
  [Attributor] Check callback broker argument aliases correctly (#218672)

Fix a bug in AANoAliasCallSiteArgument. AbstractCallSite uses separate
callback argument and broker operand numbers. Example:
```llvm
call void @broker(
    ptr @callee, # broker arg 0
    ptr %slot,  # broker arg 1
    ptr %slot  # broker arg 2
) !callback !0
define internal void @callee(
    ptr align 8 dereferenceable(8) %a,  # callback arg 0
    ptr align 8 dereferenceable(8) %b   # callback arg 1
) {
```
In `mayAliasWithArgument`, `OtherArgNo` is the broker (call-site) arg
number (0, 1 or 2), so it should be compared against
`getCallSiteArgNo()` not `getCalleeArgNo()`. Otherwise it will compare
the argument with itself, and skip some comparisons with other args, and
wrongly infer/fail to infer `noalias`.



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