[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> createAffineStoreForwardPass();
|
||||
std::unique_ptr<Pass> createSimplifyMemrefAccessPass();
|
||||
std::unique_ptr<Pass> createRaiseImplicitCopyPass();
|
||||
std::unique_ptr<Pass> createReduceInitialIntervalPass();
|
||||
|
||||
/// Directive optimization passes.
|
||||
|
|
|
@ -381,6 +381,16 @@ def SimplifyMemrefAccess : Pass<"scalehls-simplify-memref-access", "FuncOp"> {
|
|||
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"> {
|
||||
let summary = "Try to reduce the intiail interval";
|
||||
let description = [{
|
||||
|
|
|
@ -20,6 +20,7 @@ add_mlir_library(MLIRScaleHLSTransforms
|
|||
Memory/AffineStoreForward.cpp
|
||||
Memory/CreateMemrefSubview.cpp
|
||||
Memory/PromoteBuffer.cpp
|
||||
Memory/RaiseImplicitCopy.cpp
|
||||
Memory/ReduceInitialInterval.cpp
|
||||
Memory/SimplifyMemrefAccess.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