#include "llvm/Support/Casting.h"
#include <utility>
#include <vector>
+#include <optional>
namespace toy {
#include <map>
#include <utility>
#include <vector>
+#include <optional>
namespace toy {
#include "llvm/Support/Casting.h"
#include <utility>
#include <vector>
+#include <optional>
namespace toy {
#include <map>
#include <utility>
#include <vector>
+#include <optional>
namespace toy {
#include "llvm/Support/Casting.h"
#include <utility>
#include <vector>
+#include <optional>
namespace toy {
#include <map>
#include <utility>
#include <vector>
+#include <optional>
namespace toy {
#include "llvm/Support/Casting.h"
#include <utility>
#include <vector>
+#include <optional>
namespace toy {
#include <map>
#include <utility>
#include <vector>
+#include <optional>
namespace toy {
#include "llvm/Support/Casting.h"
#include <utility>
#include <vector>
+#include <optional>
namespace toy {
#include <map>
#include <utility>
#include <vector>
+#include <optional>
namespace toy {
#include "llvm/Support/Casting.h"
#include <utility>
#include <vector>
+#include <optional>
namespace toy {
#include <map>
#include <utility>
#include <vector>
+#include <optional>
namespace toy {
#include "llvm/Support/Casting.h"
#include <utility>
#include <vector>
+#include <optional>
namespace toy {
#include <map>
#include <utility>
#include <vector>
+#include <optional>
namespace toy {
#include "llvm/ADT/ScopedHashTable.h"
#include "llvm/Support/raw_ostream.h"
#include <numeric>
+#include <optional>
using namespace mlir::toy;
using namespace toy;
#define MLIR_ANALYSIS_DATAFLOW_CONSTANTPROPAGATIONANALYSIS_H
#include "mlir/Analysis/DataFlow/SparseAnalysis.h"
+#include <optional>
namespace mlir {
namespace dataflow {
#include "mlir/Analysis/DataFlowFramework.h"
#include "mlir/IR/SymbolTable.h"
#include "llvm/ADT/SmallPtrSet.h"
+#include <optional>
namespace mlir {
#include "mlir/Analysis/Presburger/PresburgerSpace.h"
#include "mlir/Analysis/Presburger/Utils.h"
#include "mlir/Support/LogicalResult.h"
+#include <optional>
namespace mlir {
namespace presburger {
#include "mlir/Analysis/Presburger/IntegerRelation.h"
#include "mlir/Analysis/Presburger/PresburgerRelation.h"
+#include <optional>
namespace mlir {
namespace presburger {
#define MLIR_ANALYSIS_PRESBURGER_PRESBURGERRELATION_H
#include "mlir/Analysis/Presburger/IntegerRelation.h"
+#include <optional>
namespace mlir {
namespace presburger {
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/StringSaver.h"
#include "llvm/Support/raw_ostream.h"
+#include <optional>
namespace mlir {
namespace presburger {
#include "llvm/ADT/SmallBitVector.h"
#include "mlir/Analysis/Presburger/Matrix.h"
+#include <optional>
namespace mlir {
namespace presburger {
#define MLIR_CONVERSION_MATHTOLIBM_MATHTOLIBM_H_
#include "mlir/Transforms/DialectConversion.h"
+#include <optional>
namespace mlir {
template <typename T>
#include "mlir/IR/Value.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/SmallVector.h"
+#include <optional>
namespace mlir {
#include "mlir/IR/AffineExpr.h"
#include "mlir/IR/OpDefinition.h"
#include "mlir/Support/LogicalResult.h"
+#include <optional>
namespace mlir {
#include "mlir/Support/LLVM.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/Optional.h"
+#include <optional>
namespace mlir {
#include "mlir/Support/LLVM.h"
#include "llvm/ADT/SmallVector.h"
#include <memory>
+#include <optional>
namespace mlir {
#include "mlir/IR/Block.h"
#include "mlir/Support/LLVM.h"
#include "mlir/Support/LogicalResult.h"
+#include <optional>
namespace mlir {
class AffineForOp;
#include "mlir/Dialect/Affine/Analysis/AffineAnalysis.h"
#include "mlir/Dialect/Affine/IR/AffineOps.h"
+#include <optional>
namespace mlir {
#include "mlir/IR/PatternMatch.h"
#include "mlir/Support/LLVM.h"
#include "llvm/ADT/SetVector.h"
+#include <optional>
#include "mlir/Dialect/Bufferization/IR/BufferizationEnums.h.inc"
#include "mlir/IR/BuiltinTypes.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/STLExtras.h"
+#include <optional>
namespace mlir {
/// Performs constant folding `calculate` with element-wise behavior on the two
#define MLIR_DIALECT_FUNC_TRANSFORMS_DECOMPOSECALLGRAPHTYPES_H
#include "mlir/Transforms/DialectConversion.h"
+#include <optional>
namespace mlir {
#include "mlir/Dialect/GPU/IR/GPUDialect.h"
#include "mlir/Pass/Pass.h"
+#include <optional>
namespace llvm {
class TargetMachine;
#include "mlir/Dialect/LLVMIR/LLVMTypes.h"
#include "mlir/IR/OpImplementation.h"
+#include <optional>
#include "mlir/Dialect/LLVMIR/LLVMOpsEnums.h.inc"
#include "mlir/IR/SubElementInterfaces.h"
#include "mlir/IR/Types.h"
#include "mlir/Interfaces/DataLayoutInterfaces.h"
+#include <optional>
namespace llvm {
class ElementCount;
#include "mlir/Dialect/Linalg/IR/Linalg.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/OpDefinition.h"
+#include <optional>
namespace mlir {
namespace func {
#include "mlir/Interfaces/SideEffectInterfaces.h"
#include "mlir/Interfaces/TilingInterface.h"
#include "mlir/Interfaces/ViewLikeInterface.h"
+#include <optional>
namespace mlir {
namespace linalg {
#include "mlir/Dialect/SCF/IR/SCF.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/StringSet.h"
+#include <optional>
namespace mlir {
class AffineExpr;
#include "mlir/Interfaces/ShapedOpInterfaces.h"
#include "mlir/Interfaces/SideEffectInterfaces.h"
#include "mlir/Interfaces/ViewLikeInterface.h"
+#include <optional>
namespace mlir {
#include "mlir/Support/LLVM.h"
#include "mlir/Support/LogicalResult.h"
#include "llvm/ADT/STLExtras.h"
+#include <optional>
namespace mlir {
class Location;
#include "mlir/Dialect/SPIRV/IR/SPIRVAttributes.h"
#include "mlir/Support/LLVM.h"
#include "llvm/ADT/SmallSet.h"
+#include <optional>
namespace mlir {
class Operation;
#include "mlir/Dialect/SparseTensor/IR/Enums.h"
#include "mlir/IR/Value.h"
#include "llvm/ADT/BitVector.h"
+#include <optional>
namespace mlir {
namespace sparse_tensor {
#include "mlir/Dialect/Tensor/IR/Tensor.h"
#include "mlir/Dialect/Utils/StructuredOpsUtils.h"
#include "mlir/IR/PatternMatch.h"
+#include <optional>
namespace mlir {
namespace tosa {
#include "mlir/Support/LLVM.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/StringMap.h"
+#include <optional>
namespace mlir {
namespace transform {
#include "mlir/IR/Diagnostics.h"
#include "mlir/IR/Operation.h"
+#include <optional>
#ifndef MLIR_DIALECT_TRANSFORM_UTILS_DIAGNOSEDSILENCEABLEFAILURE_H
#define MLIR_DIALECT_TRANSFORM_UTILS_DIAGNOSEDSILENCEABLEFAILURE_H
#include "mlir/Support/LLVM.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SmallVector.h"
+#include <optional>
namespace mlir {
class ArrayAttr;
#include "mlir/IR/PatternMatch.h"
#include "mlir/Support/LLVM.h"
#include "llvm/ADT/StringRef.h"
+#include <optional>
namespace mlir {
#define MLIR_DIALECT_VECTOR_TRANSFORMS_VECTORREWRITEPATTERNS_H
#include <utility>
+#include <optional>
#include "mlir/Dialect/Vector/IR/VectorOps.h"
#include "mlir/Dialect/Vector/Utils/VectorUtils.h"
#include <functional>
#include <memory>
+#include <optional>
namespace llvm {
template <typename T>
#include <functional>
#include <initializer_list>
#include <memory>
+#include <optional>
#ifndef MLIR_EXECUTIONENGINE_MEMREFUTILS_H_
#define MLIR_EXECUTIONENGINE_MEMREFUTILS_H_
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMapInfo.h"
#include "llvm/ADT/SmallBitVector.h"
+#include <optional>
namespace llvm {
class SmallBitVector;
#include "mlir/IR/OpDefinition.h"
#include "llvm/Support/Compiler.h"
+#include <optional>
namespace mlir {
#include "llvm/ADT/Any.h"
#include "llvm/Support/raw_ostream.h"
#include <complex>
+#include <optional>
namespace mlir {
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/Sequence.h"
#include <complex>
+#include <optional>
namespace mlir {
class AffineMap;
#include "mlir/IR/Location.h"
#include <functional>
+#include <optional>
namespace llvm {
class MemoryBuffer;
#include "llvm/ADT/Twine.h"
#include "llvm/Support/RWMutex.h"
#include "llvm/Support/SMLoc.h"
+#include <optional>
namespace mlir {
//===----------------------------------------------------------------------===//
#include "llvm/Support/PointerLikeTypeTraits.h"
#include <type_traits>
+#include <optional>
namespace mlir {
class Builder;
#include "mlir/IR/OpDefinition.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Support/SMLoc.h"
+#include <optional>
namespace mlir {
class AsmParsedResourceEntry;
#include "mlir/IR/OperationSupport.h"
#include "mlir/IR/Region.h"
#include "llvm/ADT/Twine.h"
+#include <optional>
namespace mlir {
/// Operation is the basic unit of execution within MLIR.
#include "llvm/Support/PointerLikeTypeTraits.h"
#include "llvm/Support/TrailingObjects.h"
#include <memory>
+#include <optional>
namespace llvm {
class BitVector;
#include "mlir/IR/BuiltinOps.h"
#include "llvm/ADT/FunctionExtras.h"
#include "llvm/Support/TypeName.h"
+#include <optional>
namespace mlir {
#include "mlir/IR/Attributes.h"
#include "mlir/IR/Types.h"
#include "mlir/IR/Visitors.h"
+#include <optional>
namespace mlir {
//===----------------------------------------------------------------------===//
#include "mlir/IR/Value.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/Sequence.h"
+#include <optional>
namespace mlir {
class ValueRange;
#define MLIR_INTERFACES_INFERINTRANGEINTERFACE_H
#include "mlir/IR/OpDefinition.h"
+#include <optional>
namespace mlir {
/// A set of arbitrary-precision integers representing bounds on a given integer
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/Support/TypeName.h"
+#include <optional>
namespace mlir {
class AnalysisManager;
#include "mlir/Support/LogicalResult.h"
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/Statistic.h"
+#include <optional>
namespace mlir {
namespace detail {
#include "mlir/Support/LLVM.h"
#include "mlir/Support/TypeID.h"
+#include <optional>
namespace mlir {
class OperationName;
#include <functional>
#include <vector>
+#include <optional>
namespace llvm {
class Any;
#include "mlir/Support/TypeID.h"
#include <functional>
#include <utility>
+#include <optional>
namespace mlir {
class OpPassManager;
#include "mlir/Support/LLVM.h"
#include "llvm/ADT/Optional.h"
+#include <optional>
namespace mlir {
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringMapEntry.h"
#include "llvm/Support/raw_ostream.h"
+#include <optional>
namespace mlir {
#define MLIR_TOOLS_PDLL_AST_DIAGNOSTIC_H
#include <string>
+#include <optional>
#include "mlir/Support/LLVM.h"
#include "mlir/Support/LogicalResult.h"
#include "llvm/Support/SMLoc.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/TrailingObjects.h"
+#include <optional>
namespace mlir {
namespace pdll {
#include "mlir/Support/LLVM.h"
#include "mlir/Support/StorageUniquer.h"
+#include <optional>
namespace mlir {
namespace pdll {
#include "mlir/Support/LLVM.h"
#include "llvm/Support/SourceMgr.h"
+#include <optional>
namespace mlir {
namespace pdll {
#include "mlir/IR/Operation.h"
#include "llvm/Support/CommandLine.h"
+#include <optional>
namespace mlir {
template <typename OpTy>
#include "mlir/IR/DialectInterface.h"
#include "mlir/IR/Location.h"
#include "mlir/IR/Region.h"
+#include <optional>
namespace mlir {
#include "mlir/Analysis/DataFlow/ConstantPropagationAnalysis.h"
#include "mlir/Interfaces/CallInterfaces.h"
#include "mlir/Interfaces/ControlFlowInterfaces.h"
+#include <optional>
using namespace mlir;
using namespace mlir::dataflow;
#include "mlir/Interfaces/InferIntRangeInterface.h"
#include "mlir/Interfaces/LoopLikeInterface.h"
#include "llvm/Support/Debug.h"
+#include <optional>
#define DEBUG_TYPE "int-range-analysis"
#include "llvm/ADT/DenseSet.h"
#include "llvm/Support/Debug.h"
#include <numeric>
+#include <optional>
#define DEBUG_TYPE "presburger"
#include "mlir/Analysis/Presburger/PWMAFunction.h"
#include "mlir/Analysis/Presburger/Simplex.h"
+#include <optional>
using namespace mlir;
using namespace presburger;
#include <numeric>
#include <numeric>
+#include <optional>
using namespace mlir;
using namespace presburger;
#include "mlir/IR/Builders.h"
#include "mlir/IR/OpImplementation.h"
#include "llvm/Support/Base64.h"
+#include <optional>
namespace mlir {
namespace detail {
#include "ParserState.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/OpImplementation.h"
+#include <optional>
namespace mlir {
namespace detail {
#include "Token.h"
#include "llvm/ADT/StringExtras.h"
+#include <optional>
using namespace mlir;
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/SMLoc.h"
+#include <optional>
namespace mlir {
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/OpDefinition.h"
#include "mlir/IR/TensorEncoding.h"
+#include <optional>
using namespace mlir;
using namespace mlir::detail;
#include "mlir-c/Dialect/SparseTensor.h"
#include "mlir-c/IR.h"
#include "mlir/Bindings/Python/PybindAdaptors.h"
+#include <optional>
namespace py = pybind11;
using namespace llvm;
#include <string>
#include <vector>
+#include <optional>
#include "PybindUtils.h"
//===----------------------------------------------------------------------===//
#include <utility>
+#include <optional>
#include "IRModule.h"
#include "llvm/ADT/SmallVector.h"
#include <utility>
+#include <optional>
namespace py = pybind11;
using namespace mlir;
//===----------------------------------------------------------------------===//
#include <utility>
+#include <optional>
#include "IRModule.h"
#include "mlir-c/BuiltinAttributes.h"
#include "PybindUtils.h"
#include <vector>
+#include <optional>
#include "mlir-c/Bindings/Python/Interop.h"
#include <utility>
#include <vector>
+#include <optional>
#include "PybindUtils.h"
#include "mlir-c/BuiltinAttributes.h"
#include "mlir-c/BuiltinTypes.h"
+#include <optional>
namespace py = pybind11;
using namespace mlir;
#include "mlir/Parser/Parser.h"
#include <cstddef>
+#include <optional>
using namespace mlir;
#include "mlir/CAPI/Support.h"
#include "mlir/CAPI/Utils.h"
#include "mlir/Pass/PassManager.h"
+#include <optional>
using namespace mlir;
#include "mlir/CAPI/Wrap.h"
#include "mlir/Interfaces/InferTypeOpInterface.h"
#include "llvm/ADT/ScopeExit.h"
+#include <optional>
using namespace mlir;
#include "mlir/Pass/Pass.h"
#include "llvm/ADT/STLExtras.h"
+#include <optional>
namespace mlir {
#define GEN_PASS_DEF_CONVERTAMDGPUTOROCDL
#include "mlir/IR/BuiltinOps.h"
#include "mlir/IR/Matchers.h"
#include "mlir/Transforms/DialectConversion.h"
+#include <optional>
using namespace mlir;
#include "mlir/IR/BuiltinDialect.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/Pass/Pass.h"
+#include <optional>
namespace mlir {
#define GEN_PASS_DEF_CONVERTMATHTOLIBM
#include "mlir/Dialect/SPIRV/IR/SPIRVOps.h"
#include "mlir/Dialect/SPIRV/Transforms/SPIRVConversion.h"
#include "llvm/Support/Debug.h"
+#include <optional>
#define DEBUG_TYPE "memref-to-spirv-pattern"
#include "mlir/Transforms/RegionUtils.h"
#include "llvm/ADT/Sequence.h"
#include "llvm/Support/Debug.h"
+#include <optional>
#define DEBUG_TYPE "loops-to-gpu"
//===----------------------------------------------------------------------===//
#include <type_traits>
+#include <optional>
#include "mlir/Conversion/VectorToSCF/VectorToSCF.h"
#include "llvm/ADT/TypeSwitch.h"
#include <limits>
+#include <optional>
using namespace mlir;
using namespace mlir::amdgpu;
#include "llvm/ADT/TypeSwitch.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
+#include <optional>
#define DEBUG_TYPE "affine-analysis"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
+#include <optional>
#define DEBUG_TYPE "analysis-utils"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include <algorithm>
+#include <optional>
namespace mlir {
#define GEN_PASS_DEF_AFFINEDATACOPYGENERATION
#include "mlir/IR/IRMapping.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
+#include <optional>
namespace mlir {
#define GEN_PASS_DEF_AFFINELOOPTILING
#include "llvm/ADT/DenseMap.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
+#include <optional>
namespace mlir {
#define GEN_PASS_DEF_AFFINELOOPUNROLL
#include "mlir/IR/IRMapping.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/Support/CommandLine.h"
+#include <optional>
namespace mlir {
#define GEN_PASS_DEF_AFFINELOOPUNROLLANDJAM
#include "mlir/Support/LLVM.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Support/Debug.h"
+#include <optional>
namespace mlir {
#define GEN_PASS_DEF_AFFINEVECTORIZE
#include "mlir/IR/Operation.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
+#include <optional>
#define DEBUG_TYPE "loop-fusion-utils"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
+#include <optional>
#define DEBUG_TYPE "loop-utils"
#include "mlir/IR/IRMapping.h"
#include "mlir/IR/IntegerSet.h"
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
+#include <optional>
#define DEBUG_TYPE "affine-utils"
#include "mlir/Interfaces/InferIntRangeInterface.h"
#include "llvm/Support/Debug.h"
+#include <optional>
#define DEBUG_TYPE "int-range-analysis"
#include "mlir/Dialect/SparseTensor/IR/SparseTensor.h"
#include "mlir/Dialect/Tensor/IR/Tensor.h"
#include "mlir/IR/Matchers.h"
+#include <optional>
using namespace mlir;
using namespace mlir::bufferization;
#include "mlir/Pass/Pass.h"
#include "llvm/ADT/SetOperations.h"
#include "llvm/ADT/SmallString.h"
+#include <optional>
using namespace mlir;
using namespace mlir::bufferization;
#include "mlir/Pass/PassManager.h"
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
#include "mlir/Transforms/Passes.h"
+#include <optional>
namespace mlir {
namespace bufferization {
#include "mlir/Dialect/MemRef/IR/MemRef.h"
#include "mlir/IR/Dialect.h"
#include "mlir/IR/Operation.h"
+#include <optional>
namespace mlir {
namespace bufferization {
#include "mlir/Dialect/Bufferization/Transforms/OneShotAnalysis.h"
#include <random>
+#include <optional>
#include "mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h"
#include "mlir/Dialect/Bufferization/IR/Bufferization.h"
#include "llvm/Target/TargetMachine.h"
#include <string>
+#include <optional>
#define DEBUG_TYPE "serialize-to-blob"
#include "llvm/Transforms/IPO/Internalize.h"
#include <mutex>
+#include <optional>
using namespace mlir;
#include "mlir/IR/Builders.h"
#include "mlir/IR/OpImplementation.h"
#include "llvm/ADT/SmallString.h"
+#include <optional>
using namespace mlir;
using namespace mlir::index;
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/TypeSwitch.h"
#include "llvm/BinaryFormat/Dwarf.h"
+#include <optional>
using namespace mlir;
using namespace mlir::LLVM;
#include "llvm/Support/SourceMgr.h"
#include <numeric>
+#include <optional>
using namespace mlir;
using namespace mlir::LLVM;
#include "llvm/ADT/ScopeExit.h"
#include "llvm/ADT/TypeSwitch.h"
#include "llvm/Support/TypeSize.h"
+#include <optional>
using namespace mlir;
using namespace mlir::LLVM;
#include "llvm/IR/Type.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/SourceMgr.h"
+#include <optional>
using namespace mlir;
using namespace NVVM;
#include "llvm/Support/FormatVariadic.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/raw_ostream.h"
+#include <optional>
using namespace mlir;
using namespace mlir::linalg;
#include "mlir/IR/PatternMatch.h"
#include "mlir/Support/LLVM.h"
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
+#include <optional>
using namespace mlir;
using namespace mlir::linalg;
#include "mlir/Dialect/Utils/IndexingUtils.h"
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
#include "llvm/Support/Debug.h"
+#include <optional>
namespace mlir {
#define GEN_PASS_DEF_LINALGDATALAYOUTPROPAGATION
#include "mlir/Dialect/Affine/IR/AffineOps.h"
#include "mlir/Dialect/Linalg/IR/Linalg.h"
+#include <optional>
using namespace mlir;
using namespace mlir::linalg;
#include "mlir/Support/LLVM.h"
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
#include <utility>
+#include <optional>
namespace mlir {
#define GEN_PASS_DEF_LINALGFOLDUNITEXTENTDIMS
#include "llvm/Support/Debug.h"
#include <set>
+#include <optional>
#define DEBUG_TYPE "linalg-fusion"
#include "mlir/IR/AffineExpr.h"
#include "mlir/IR/AffineMap.h"
#include "mlir/Support/LLVM.h"
+#include <optional>
using namespace mlir;
using namespace linalg;
//===----------------------------------------------------------------------===//
#include <utility>
+#include <optional>
#include "mlir/Analysis/SliceAnalysis.h"
#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/Tensor/IR/Tensor.h"
#include "mlir/Dialect/Utils/StaticValueUtils.h"
#include "mlir/Interfaces/TilingInterface.h"
+#include <optional>
using namespace mlir;
using namespace mlir::linalg;
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include <type_traits>
+#include <optional>
using namespace mlir;
using namespace mlir::linalg;
#include "mlir/Pass/Pass.h"
#include "llvm/ADT/TypeSwitch.h"
#include "llvm/Support/Debug.h"
+#include <optional>
#define DEBUG_TYPE "linalg-utils"
#include "mlir/Dialect/CommonFolders.h"
#include "mlir/Dialect/Math/IR/Math.h"
#include "mlir/IR/Builders.h"
+#include <optional>
using namespace mlir;
using namespace mlir::math;
#include "mlir/Dialect/MemRef/IR/MemRef.h"
#include "mlir/Interfaces/SideEffectInterfaces.h"
#include "mlir/Transforms/InliningUtils.h"
+#include <optional>
using namespace mlir;
using namespace mlir::memref;
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallBitVector.h"
+#include <optional>
namespace mlir {
namespace memref {
#include "mlir/Interfaces/InferTypeOpInterface.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/TypeSwitch.h"
+#include <optional>
using namespace mlir;
using namespace mlir::pdl;
#include "mlir/Dialect/SCF/Transforms/Passes.h"
#include "mlir/Dialect/SCF/Transforms/Transforms.h"
#include "mlir/Transforms/DialectConversion.h"
+#include <optional>
using namespace mlir;
using namespace mlir::scf;
//===----------------------------------------------------------------------===//
#include <utility>
+#include <optional>
#include "mlir/Dialect/SPIRV/IR/SPIRVOps.h"
#include "mlir/IR/FunctionInterfaces.h"
#include "mlir/IR/Operation.h"
#include "mlir/IR/SymbolTable.h"
+#include <optional>
using namespace mlir;
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/StringExtras.h"
+#include <optional>
namespace mlir {
namespace spirv {
//===----------------------------------------------------------------------===//
#include "CodegenEnv.h"
+#include <optional>
using namespace mlir;
using namespace mlir::sparse_tensor;
#include "mlir/Dialect/SparseTensor/IR/SparseTensor.h"
#include "mlir/Dialect/SparseTensor/Transforms/Passes.h"
#include "mlir/Dialect/SparseTensor/Utils/Merger.h"
+#include <optional>
namespace mlir {
namespace sparse_tensor {
#include "mlir/IR/Matchers.h"
#include "mlir/IR/Types.h"
#include "mlir/IR/Value.h"
+#include <optional>
using namespace mlir;
using namespace mlir::sparse_tensor;
#include "SparseTensorStorageLayout.h"
#include "mlir/Dialect/SparseTensor/Transforms/Passes.h"
+#include <optional>
using namespace mlir;
using namespace sparse_tensor;
#include "mlir/Dialect/SparseTensor/Transforms/Passes.h"
#include "mlir/Dialect/Tensor/IR/Tensor.h"
#include "mlir/Transforms/DialectConversion.h"
+#include <optional>
using namespace mlir;
using namespace mlir::sparse_tensor;
#include "mlir/IR/Matchers.h"
#include "mlir/IR/TensorEncoding.h"
#include "llvm/ADT/SmallBitVector.h"
+#include <optional>
using namespace mlir;
using namespace mlir::sparse_tensor;
#include "mlir/IR/Operation.h"
#include "llvm/Support/Debug.h"
+#include <optional>
namespace mlir {
namespace sparse_tensor {
#include "llvm/ADT/SmallBitVector.h"
#include "llvm/ADT/StringRef.h"
#include <algorithm>
+#include <optional>
using namespace mlir;
using namespace mlir::tensor;
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/TypeUtilities.h"
#include "llvm/Support/FormatVariadic.h"
+#include <optional>
using namespace mlir;
#include "mlir/IR/BuiltinAttributes.h"
#include <numeric>
+#include <optional>
using namespace mlir;
#include "mlir/IR/Builders.h"
#include <numeric>
+#include <optional>
using namespace mlir;
//===----------------------------------------------------------------------===//
#include <type_traits>
+#include <optional>
#include "mlir/Dialect/Affine/IR/AffineOps.h"
#include "mlir/Dialect/Arith/IR/Arith.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/STLExtras.h"
#include <numeric>
+#include <optional>
#define DEBUG_TYPE "vector-unrolling"
#include <cstdint>
#include <numeric>
#include <utility>
+#include <optional>
using namespace mlir;
using llvm::Error;
#include "mlir/Support/TypeID.h"
#include "llvm/ADT/STLExtras.h"
#include <numeric>
+#include <optional>
using namespace mlir;
using namespace mlir::detail;
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/raw_ostream.h"
#include <numeric>
+#include <optional>
using namespace mlir;
#include "llvm/Support/Threading.h"
#include <tuple>
+#include <optional>
using namespace mlir;
using namespace mlir::detail;
#include "llvm/ADT/Sequence.h"
#include "llvm/ADT/TypeSwitch.h"
#include "llvm/Support/Endian.h"
+#include <optional>
using namespace mlir;
using namespace mlir::detail;
#include "llvm/Support/Signals.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/raw_ostream.h"
+#include <optional>
using namespace mlir;
using namespace mlir::detail;
#include "mlir/IR/DialectResourceBlobManager.h"
#include "llvm/ADT/SmallString.h"
+#include <optional>
using namespace mlir;
#include "llvm/Support/ThreadPool.h"
#include "llvm/Support/raw_ostream.h"
#include <memory>
+#include <optional>
#define DEBUG_TYPE "mlircontext"
#include "llvm/ADT/BitVector.h"
#include "llvm/Support/SHA1.h"
#include <numeric>
+#include <optional>
using namespace mlir;
#include "mlir/IR/Operation.h"
#include "llvm/ADT/DenseSet.h"
+#include <optional>
using namespace mlir;
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringSwitch.h"
+#include <optional>
using namespace mlir;
#include "llvm/Support/PrettyStackTrace.h"
#include "llvm/Support/Regex.h"
#include <atomic>
+#include <optional>
using namespace mlir;
#include "mlir/Interfaces/InferIntRangeInterface.h"
#include "mlir/IR/BuiltinTypes.h"
+#include <optional>
#include "mlir/Interfaces/InferIntRangeInterface.cpp.inc"
using namespace mlir;
#include "llvm/Support/Signals.h"
#include "llvm/Support/Threading.h"
#include "llvm/Support/ToolOutputFile.h"
+#include <optional>
using namespace mlir;
using namespace mlir::detail;
//===----------------------------------------------------------------------===//
#include <utility>
+#include <optional>
#include "mlir/Pass/Pass.h"
#include "mlir/Pass/PassManager.h"
#include "llvm/Support/Threading.h"
#include <chrono>
+#include <optional>
using namespace mlir;
using namespace mlir::detail;
#include "llvm/Support/Format.h"
#include "llvm/Support/FormatVariadic.h"
#include <numeric>
+#include <optional>
#define DEBUG_TYPE "pdl-bytecode"
#include "mlir/Interfaces/SideEffectInterfaces.h"
#include "mlir/Pass/Pass.h"
#include "mlir/Pass/PassManager.h"
+#include <optional>
using namespace mlir;
#include "llvm/Support/raw_ostream.h"
#include <atomic>
+#include <optional>
#include <chrono>
using namespace mlir;
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Transforms/Utils/Cloning.h"
#include "llvm/Transforms/Utils/ModuleUtils.h"
+#include <optional>
using namespace mlir;
using namespace mlir::LLVM;
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/Debug.h"
+#include <optional>
using namespace mlir;
#include "llvm/Support/Debug.h"
#include "llvm/Support/SaveAndRestore.h"
#include "llvm/Support/raw_ostream.h"
+#include <optional>
using namespace mlir;
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/ScopedPrinter.h"
#include <cstdint>
+#include <optional>
namespace mlir {
namespace spirv {
#include "llvm/ADT/bit.h"
#include "llvm/Support/Debug.h"
#include <cstdint>
+#include <optional>
#define DEBUG_TYPE "spirv-serialization"
#include "llvm/ADT/TypeSwitch.h"
#include "llvm/Support/SaveAndRestore.h"
#include "llvm/Support/ScopedPrinter.h"
+#include <optional>
using namespace mlir;
using namespace mlir::pdll::ast;
#include "mlir/Tools/PDLL/AST/Context.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/TypeSwitch.h"
+#include <optional>
using namespace mlir;
using namespace mlir::pdll::ast;
#include "mlir/Tools/PDLL/AST/Types.h"
#include "TypeDetail.h"
#include "mlir/Tools/PDLL/AST/Context.h"
+#include <optional>
using namespace mlir;
using namespace mlir::pdll;
#include "llvm/ADT/TypeSwitch.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/FormatVariadic.h"
+#include <optional>
using namespace mlir;
using namespace mlir::pdll;
#include "llvm/ADT/ScopedHashTable.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/TypeSwitch.h"
+#include <optional>
using namespace mlir;
using namespace mlir::pdll;
#include "mlir/Tools/PDLL/ODS/Operation.h"
#include "llvm/Support/ScopedPrinter.h"
#include "llvm/Support/raw_ostream.h"
+#include <optional>
using namespace mlir;
using namespace mlir::pdll::ods;
#include "llvm/TableGen/Error.h"
#include "llvm/TableGen/Parser.h"
#include <string>
+#include <optional>
using namespace mlir;
using namespace mlir::pdll;
#include <string>
#include <utility>
#include <vector>
+#include <optional>
namespace mlir {
struct LogicalResult;
#include "SourceMgrUtils.h"
#include "llvm/Support/Path.h"
+#include <optional>
using namespace mlir;
using namespace mlir::lsp;
#include "Protocol.h"
#include "llvm/Support/SourceMgr.h"
+#include <optional>
namespace mlir {
namespace lsp {
#include "llvm/Support/Error.h"
#include <system_error>
#include <utility>
+#include <optional>
using namespace mlir;
using namespace mlir::lsp;
#include "Protocol.h"
#include "llvm/ADT/FunctionExtras.h"
#include "llvm/ADT/StringMap.h"
+#include <optional>
#define DEBUG_TYPE "mlir-lsp-server"
#include "mlir/Parser/Parser.h"
#include "llvm/Support/Base64.h"
#include "llvm/Support/SourceMgr.h"
+#include <optional>
using namespace mlir;
#include "mlir/Support/LLVM.h"
#include "llvm/Support/Error.h"
#include <memory>
+#include <optional>
namespace mlir {
class DialectRegistry;
#include "Protocol.h"
#include "llvm/ADT/FunctionExtras.h"
#include "llvm/ADT/StringMap.h"
+#include <optional>
#define DEBUG_TYPE "pdll-lsp-server"
#include "llvm/ADT/TypeSwitch.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
+#include <optional>
using namespace mlir;
using namespace mlir::pdll;
#include "llvm/ADT/StringRef.h"
#include <memory>
#include <string>
+#include <optional>
namespace mlir {
namespace lsp {
#include "mlir/Parser/Parser.h"
#include "mlir/Tools/ParseUtilities.h"
#include "llvm/Support/SourceMgr.h"
+#include <optional>
using namespace mlir;
#include "TableGenServer.h"
#include "llvm/ADT/FunctionExtras.h"
#include "llvm/ADT/StringMap.h"
+#include <optional>
using namespace mlir;
using namespace mlir::lsp;
#include "llvm/Support/Path.h"
#include "llvm/TableGen/Parser.h"
#include "llvm/TableGen/Record.h"
+#include <optional>
using namespace mlir;
#include "llvm/ADT/StringRef.h"
#include <memory>
#include <string>
+#include <optional>
namespace mlir {
namespace lsp {
#include "mlir/Support/FileUtilities.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/ToolOutputFile.h"
+#include <optional>
namespace mlir {
#define GEN_PASS_DEF_LOCATIONSNAPSHOT
#include "llvm/ADT/MapVector.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
+#include <optional>
#define DEBUG_TYPE "inlining"
#include "llvm/Support/Format.h"
#include "llvm/Support/GraphWriter.h"
#include <utility>
+#include <optional>
namespace mlir {
#define GEN_PASS_DEF_VIEWOPGRAPH
#include "mlir/Analysis/DataFlow/SparseAnalysis.h"
#include "mlir/Interfaces/SideEffectInterfaces.h"
#include "mlir/Pass/Pass.h"
+#include <optional>
using namespace mlir;
using namespace mlir::dataflow;
#include "mlir/Analysis/DataFlowFramework.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Pass/Pass.h"
+#include <optional>
using namespace mlir;
#include "mlir/Dialect/Shape/Analysis/ShapeMappingAnalysis.h"
#include "mlir/IR/BuiltinOps.h"
#include "mlir/Pass/Pass.h"
+#include <optional>
using namespace mlir;
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringSwitch.h"
+#include <optional>
#include <numeric>
#include "llvm/ADT/Hashing.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/TypeSwitch.h"
+#include <optional>
using namespace mlir;
using namespace test;
#define MLIR_TESTTYPES_H
#include <tuple>
+#include <optional>
#include "TestTraits.h"
#include "mlir/IR/Diagnostics.h"
//===----------------------------------------------------------------------===//
#include <type_traits>
+#include <optional>
#include "mlir/Analysis/SliceAnalysis.h"
#include "mlir/Dialect/Affine/IR/AffineOps.h"
//===----------------------------------------------------------------------===//
#include <utility>
+#include <optional>
#include "mlir/Dialect/Affine/IR/AffineOps.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Pass/PassRegistry.h"
#include "mlir/Support/TypeID.h"
#include "mlir/Transforms/FoldUtils.h"
+#include <optional>
using namespace mlir;
using namespace mlir::dataflow;
#include "llvm/TableGen/TableGenBackend.h"
#include <list>
+#include <optional>
using llvm::ArrayRef;
using llvm::formatv;
#include <gtest/gtest.h>
#include <numeric>
+#include <optional>
using namespace mlir;
using namespace presburger;
#include <gmock/gmock.h>
#include <gtest/gtest.h>
+#include <optional>
using namespace mlir;
using namespace presburger;
#include <gmock/gmock.h>
#include <gtest/gtest.h>
+#include <optional>
using namespace mlir;
using namespace presburger;
#include "mlir/Support/LLVM.h"
#include <gtest/gtest.h>
+#include <optional>
namespace mlir {
namespace presburger {
#include "mlir/IR/BuiltinAttributes.h"
#include "mlir/IR/BuiltinTypes.h"
#include "gtest/gtest.h"
+#include <optional>
using namespace mlir;
using namespace mlir::detail;