[all-commits] [llvm/llvm-project] cd773a: [OpenACC] Fix IR verification failures in acc-spec...
Mehdi Amini via All-commits
all-commits at lists.llvm.org
Mon Apr 13 09:55:57 PDT 2026
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: cd773a64de9a90756f652e1092ea490ba4275dc3
https://github.com/llvm/llvm-project/commit/cd773a64de9a90756f652e1092ea490ba4275dc3
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-04-13 (Mon, 13 Apr 2026)
Changed paths:
M mlir/include/mlir/Dialect/OpenACC/Transforms/ACCSpecializePatterns.h
Log Message:
-----------
[OpenACC] Fix IR verification failures in acc-specialize passes (#188961)
When MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS is enabled, the greedy
driver verifies the IR after each pattern application. The specialize
passes failed because ACCOpReplaceWithVarConversion would run on a data
entry op (e.g. acc.create) before container ops that use it in their
dataOperands were processed. After replacement, the container op held a
non-data-entry operand (e.g. a func arg), failing the acc dialect's
dataOperands verifier.
Fix: in ACCOpReplaceWithVarConversion, defer by returning failure() when
any user of the data entry op's result is a container op that validates
its operands as data entry ops (acc.data, acc.parallel, acc.serial,
acc.kernels, acc.host_data, acc.kernel_environment, acc.declare_enter,
acc.enter_data). The greedy driver will process the container op first
(via ACCRegionUnwrapConversion or ACCDeclareEnterOpConversion), removing
the use, after which the data entry op can be safely replaced.
Assisted-by: Claude Code
Fix a failure present with MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS=ON.
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