[llvm] Revert "Revert "[AA] Improve precision for monotonic atomic load/store operations"" (PR #195008)

via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 29 23:25:48 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results

* 173469 tests passed
* 3281 tests skipped
* 1 test failed

## Failed Tests
(click on a test name to see its output)

### LLVM
<details>
<summary>LLVM.Analysis/BasicAA/atomics.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=aa-eval -print-all-alias-modref-info -disable-output 2>&1 /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Analysis/BasicAA/atomics.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Analysis/BasicAA/atomics.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=aa-eval -print-all-alias-modref-info -disable-output /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Analysis/BasicAA/atomics.ll
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Analysis/BasicAA/atomics.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Analysis/BasicAA/atomics.ll:11:10: error: CHECK: expected string not found in input
# | ; CHECK: Both ModRef: Ptr: i32* %a <-> %3 = load atomic i32, ptr %x monotonic, align 4
# |          ^
# | <stdin>:6:94: note: scanning from here
# |  Both ModRef: Ptr: i32* %x <-> %2 = cmpxchg ptr %x, i32 0, i32 1 monotonic monotonic, align 4
# |                                                                                              ^
# | <stdin>:8:2: note: possible intended match here
# |  Both ModRef: Ptr: i32* %x <-> %3 = load atomic i32, ptr %x monotonic, align 4
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Analysis/BasicAA/atomics.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             1: Function: alloca_no_escape: 2 pointers, 14 call sites 
# |             2:  NoAlias: i32* %a, i32* %x 
# |             3:  NoModRef: Ptr: i32* %a <-> %1 = atomicrmw add ptr %x, i32 1 monotonic, align 4 
# |             4:  Both ModRef: Ptr: i32* %x <-> %1 = atomicrmw add ptr %x, i32 1 monotonic, align 4 
# |             5:  NoModRef: Ptr: i32* %a <-> %2 = cmpxchg ptr %x, i32 0, i32 1 monotonic monotonic, align 4 
# |             6:  Both ModRef: Ptr: i32* %x <-> %2 = cmpxchg ptr %x, i32 0, i32 1 monotonic monotonic, align 4 
# | check:11'0                                                                                                  X error: no match found
# |             7:  NoModRef: Ptr: i32* %a <-> %3 = load atomic i32, ptr %x monotonic, align 4 
# | check:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             8:  Both ModRef: Ptr: i32* %x <-> %3 = load atomic i32, ptr %x monotonic, align 4 
# | check:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:11'1      ?                                                                              possible intended match
# |             9:  NoModRef: Ptr: i32* %a <-> store atomic i32 0, ptr %x monotonic, align 4 
# | check:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            10:  Both ModRef: Ptr: i32* %x <-> store atomic i32 0, ptr %x monotonic, align 4 
# | check:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            11:  Both ModRef: Ptr: i32* %a <-> fence release 
# | check:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            12:  Both ModRef: Ptr: i32* %x <-> fence release 
# | check:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            13:  Both ModRef: Ptr: i32* %a <-> %4 = atomicrmw add ptr %x, i32 1 acq_rel, align 4 
# | check:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

https://github.com/llvm/llvm-project/pull/195008


More information about the llvm-commits mailing list