MLIR 22.0.0git
BufferizationPipelines.cpp
Go to the documentation of this file.
1//===- BufferizationPipelines.cpp - Pipelines for bufferization -----------===//
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
10
15
16//===----------------------------------------------------------------------===//
17// Pipeline implementation.
18//===----------------------------------------------------------------------===//
19
23
26 memref::ExpandReallocPassOptions expandAllocPassOptions{
27 /*emitDeallocs=*/false};
28 pm.addPass(memref::createExpandReallocPass(expandAllocPassOptions));
30
31 OwnershipBasedBufferDeallocationPassOptions deallocationOptions{
32 options.privateFunctionDynamicOwnership};
33 pm.addPass(createOwnershipBasedBufferDeallocationPass(deallocationOptions));
35 pm.addPass(createBufferDeallocationSimplificationPass());
36 pm.addPass(createLowerDeallocationsPass());
39}
40
41//===----------------------------------------------------------------------===//
42// Pipeline registration.
43//===----------------------------------------------------------------------===//
44
47 "buffer-deallocation-pipeline",
48 "The default pipeline for automatically inserting deallocation "
49 "operations after one-shot bufferization. Deallocation operations "
50 "(except `memref.realloc`) may not be present already.",
53 });
54}
static llvm::ManagedStatic< PassManagerOptions > options
This class represents a pass manager that runs passes on either a specific operation type,...
Definition PassManager.h:46
void addPass(std::unique_ptr< Pass > pass)
Add the given pass to this pass manager.
Definition Pass.cpp:392
void registerBufferizationPipelines()
Registers all pipelines for the bufferization dialect.
void buildBufferDeallocationPipeline(OpPassManager &pm, const BufferDeallocationPipelineOptions &options)
Adds the buffer deallocation pipeline to the OpPassManager.
std::unique_ptr< Pass > createCSEPass()
Creates a pass to perform common sub expression elimination.
Definition CSE.cpp:412
std::unique_ptr< Pass > createCanonicalizerPass()
Creates an instance of the Canonicalizer pass, configured with default settings (which can be overrid...
PassPipelineRegistration provides a global initializer that registers a Pass pipeline builder routine...
Options for the buffer deallocation pipeline.
Definition Passes.h:24