1 //===- AllocationOpInterface.h - Allocation op interface ------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 // 9 // This file implements the operation interface for allocation ops. 10 // 11 //===----------------------------------------------------------------------===// 12 13 #ifndef MLIR_DIALECT_BUFFERIZATION_IR_ALLOCATIONOPINTERFACE_H_ 14 #define MLIR_DIALECT_BUFFERIZATION_IR_ALLOCATIONOPINTERFACE_H_ 15 16 #include "mlir/IR/Builders.h" 17 18 namespace mlir { 19 // Enum class representing different hoisting kinds for the allocation 20 // operation 21 enum class HoistingKind : uint8_t { 22 None = 0, // No hoisting kind selected 23 Loop = 1 << 0, // Indicates loop hoisting kind 24 Block = 1 << 1, // Indicates dominated block hoisting kind 25 LLVM_MARK_AS_BITMASK_ENUM(/* LargestValue = */ Block) 26 }; 27 } // namespace mlir 28 29 #include "mlir/Dialect/Bufferization/IR/AllocationOpInterface.h.inc" 30 31 #endif // MLIR_DIALECT_BUFFERIZATION_IR_ALLOCATIONOPINTERFACE_H_ 32