[RaiseImplicitCopy] Start of this pass
This commit is contained in:
parent
f9880d3b2b
commit
9500860fb6
|
@ -69,6 +69,7 @@ std::unique_ptr<Pass> createCreateMemrefSubviewPass();
|
||||||
std::unique_ptr<Pass> createPromoteBufferPass();
|
std::unique_ptr<Pass> createPromoteBufferPass();
|
||||||
std::unique_ptr<Pass> createAffineStoreForwardPass();
|
std::unique_ptr<Pass> createAffineStoreForwardPass();
|
||||||
std::unique_ptr<Pass> createSimplifyMemrefAccessPass();
|
std::unique_ptr<Pass> createSimplifyMemrefAccessPass();
|
||||||
|
std::unique_ptr<Pass> createRaiseImplicitCopyPass();
|
||||||
std::unique_ptr<Pass> createReduceInitialIntervalPass();
|
std::unique_ptr<Pass> createReduceInitialIntervalPass();
|
||||||
|
|
||||||
/// Directive optimization passes.
|
/// Directive optimization passes.
|
||||||
|
|
|
@ -381,6 +381,16 @@ def SimplifyMemrefAccess : Pass<"scalehls-simplify-memref-access", "FuncOp"> {
|
||||||
let constructor = "mlir::scalehls::createSimplifyMemrefAccessPass()";
|
let constructor = "mlir::scalehls::createSimplifyMemrefAccessPass()";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def RaiseImplicitCopy : Pass<"scalehls-raise-implicit-copy", "FuncOp"> {
|
||||||
|
let summary = "Raise copy in affine loops to memref.copy";
|
||||||
|
let description = [{
|
||||||
|
This raise-implicit-copy pass will detect implicit copy in affine loops and
|
||||||
|
raise to memref.copy in order to eliminate redundant copies.
|
||||||
|
}];
|
||||||
|
|
||||||
|
let constructor = "mlir::scalehls::createRaiseImplicitCopyPass()";
|
||||||
|
}
|
||||||
|
|
||||||
def ReduceInitialInterval : Pass<"scalehls-reduce-initial-interval", "FuncOp"> {
|
def ReduceInitialInterval : Pass<"scalehls-reduce-initial-interval", "FuncOp"> {
|
||||||
let summary = "Try to reduce the intiail interval";
|
let summary = "Try to reduce the intiail interval";
|
||||||
let description = [{
|
let description = [{
|
||||||
|
|
|
@ -20,6 +20,7 @@ add_mlir_library(MLIRScaleHLSTransforms
|
||||||
Memory/AffineStoreForward.cpp
|
Memory/AffineStoreForward.cpp
|
||||||
Memory/CreateMemrefSubview.cpp
|
Memory/CreateMemrefSubview.cpp
|
||||||
Memory/PromoteBuffer.cpp
|
Memory/PromoteBuffer.cpp
|
||||||
|
Memory/RaiseImplicitCopy.cpp
|
||||||
Memory/ReduceInitialInterval.cpp
|
Memory/ReduceInitialInterval.cpp
|
||||||
Memory/SimplifyMemrefAccess.cpp
|
Memory/SimplifyMemrefAccess.cpp
|
||||||
CreateRuntimeMain.cpp
|
CreateRuntimeMain.cpp
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// Copyright 2020-2021 The ScaleHLS Authors.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
#include "mlir/Dialect/Affine/Analysis/LoopAnalysis.h"
|
||||||
|
#include "mlir/Dialect/Affine/LoopUtils.h"
|
||||||
|
#include "mlir/Dialect/Affine/Utils.h"
|
||||||
|
#include "scalehls/Transforms/Passes.h"
|
||||||
|
#include "scalehls/Transforms/Utils.h"
|
||||||
|
|
||||||
|
using namespace mlir;
|
||||||
|
using namespace scalehls;
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
struct RaiseImplicitCopy : public RaiseImplicitCopyBase<RaiseImplicitCopy> {
|
||||||
|
void runOnOperation() override {}
|
||||||
|
};
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
std::unique_ptr<Pass> scalehls::createRaiseImplicitCopyPass() {
|
||||||
|
return std::make_unique<RaiseImplicitCopy>();
|
||||||
|
}
|
Loading…
Reference in New Issue