[flang-commits] [flang] [mlir] [mlir][CSE] Introduce hoist-pure-ops logic to CSE pass (PR #180556)
lonely eagle via flang-commits
flang-commits at lists.llvm.org
Wed Feb 25 04:03:10 PST 2026
================
@@ -0,0 +1,41 @@
+//===- HoistingContainerOpInterface.td - Interface Decl. -*- tablegen -*---===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// This is the definition file for the HoistingContainerOpInterface.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_INTERFACES_HOISTING_CONTAINER_OP_INTERFACE
+#define MLIR_INTERFACES_HOISTING_CONTAINER_OP_INTERFACE
+
+include "mlir/IR/OpBase.td"
+
+def HoistingContainerOpInterface : OpInterface<"HoistingContainerOpInterface"> {
+ let description = [{
+ This interface models whether an operation's regions are capable of
+ acting as a container for operations hoisted from nested regions.
----------------
linuxlonelyeagle wrote:
You can see https://github.com/llvm/llvm-project/pull/180556#issuecomment-3888325157 and https://discourse.llvm.org/t/make-hlfir-forall-can-contain-pureop/89805/2.It is designed to address an issue in Flang where `hlfir.forall`, it is a regionOp, surprisingly cannot contain pure operations, It doesn't seem like we can just hoist it arbitrarily.
https://github.com/llvm/llvm-project/pull/180556
More information about the flang-commits
mailing list