remove redundant includes in all files; [QoREstimation] refactor include structure
This commit is contained in:
parent
a6c4ec403d
commit
2d943dd238
|
@ -2,27 +2,22 @@
|
||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#ifndef SCALEHLS_ANALYSIS_QORESTIMATION_H
|
#ifndef SCALEHLS_ANALYSIS_UTILS_H
|
||||||
#define SCALEHLS_ANALYSIS_QORESTIMATION_H
|
#define SCALEHLS_ANALYSIS_UTILS_H
|
||||||
|
|
||||||
#include "Dialect/HLSCpp/Visitor.h"
|
#include "Dialect/HLSCpp/HLSCpp.h"
|
||||||
#include "INIReader.h"
|
#include "mlir/IR/Operation.h"
|
||||||
#include "mlir/Analysis/AffineAnalysis.h"
|
|
||||||
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
|
||||||
#include "mlir/Pass/Pass.h"
|
|
||||||
#include "mlir/Transforms/LoopUtils.h"
|
|
||||||
#include "llvm/ADT/TypeSwitch.h"
|
|
||||||
|
|
||||||
namespace mlir {
|
namespace mlir {
|
||||||
namespace scalehls {
|
namespace scalehls {
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
// HLSCppToolBase Class Declaration and Definition
|
// HLSCppAnalysisBase Class
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
class HLSCppToolBase {
|
class HLSCppAnalysisBase {
|
||||||
public:
|
public:
|
||||||
explicit HLSCppToolBase(OpBuilder builder) : builder(builder) {}
|
explicit HLSCppAnalysisBase(OpBuilder builder) : builder(builder) {}
|
||||||
|
|
||||||
OpBuilder builder;
|
OpBuilder builder;
|
||||||
|
|
||||||
|
@ -56,14 +51,14 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get partition information methods.
|
/// Get partition information methods.
|
||||||
StringRef getPartitionType(ArrayOp op, unsigned dim) {
|
StringRef getPartitionType(hlscpp::ArrayOp op, unsigned dim) {
|
||||||
if (auto attr = op.partition_type()[dim].cast<StringAttr>())
|
if (auto attr = op.partition_type()[dim].cast<StringAttr>())
|
||||||
return attr.getValue();
|
return attr.getValue();
|
||||||
else
|
else
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned getPartitionFactor(ArrayOp op, unsigned dim) {
|
unsigned getPartitionFactor(hlscpp::ArrayOp op, unsigned dim) {
|
||||||
if (auto attr = op.partition_factor()[dim].cast<IntegerAttr>())
|
if (auto attr = op.partition_factor()[dim].cast<IntegerAttr>())
|
||||||
return attr.getUInt();
|
return attr.getUInt();
|
||||||
else
|
else
|
||||||
|
@ -95,7 +90,7 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
// HLSCppEstimator Class Declaration
|
// Common Used Type Declarations
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
// Profiled latency map.
|
// Profiled latency map.
|
||||||
|
@ -128,65 +123,7 @@ using PortsMap = DenseMap<Operation *, Ports>;
|
||||||
// For storing PortsMap indexed by the scheduling level.
|
// For storing PortsMap indexed by the scheduling level.
|
||||||
using PortsMapDict = DenseMap<unsigned, PortsMap>;
|
using PortsMapDict = DenseMap<unsigned, PortsMap>;
|
||||||
|
|
||||||
class HLSCppEstimator
|
|
||||||
: public HLSCppVisitorBase<HLSCppEstimator, Optional<unsigned>, unsigned>,
|
|
||||||
public HLSCppToolBase {
|
|
||||||
public:
|
|
||||||
explicit HLSCppEstimator(FuncOp &func, LatencyMap &latencyMap)
|
|
||||||
: HLSCppToolBase(OpBuilder(func)), func(func), latencyMap(latencyMap) {
|
|
||||||
getFuncMemRefDepends();
|
|
||||||
}
|
|
||||||
|
|
||||||
void getFuncMemRefDepends();
|
|
||||||
using HLSCppVisitorBase::visitOp;
|
|
||||||
Optional<unsigned> visitUnhandledOp(Operation *op, unsigned begin) {
|
|
||||||
// Default latency of any unhandled operation is 1.
|
|
||||||
setScheduleValue(op, begin, begin + 1);
|
|
||||||
return begin + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int32_t getPartitionIndex(Operation *op);
|
|
||||||
unsigned getLoadStoreSchedule(Operation *op, unsigned begin);
|
|
||||||
Optional<unsigned> visitOp(AffineLoadOp op, unsigned begin) {
|
|
||||||
return getLoadStoreSchedule(op, begin);
|
|
||||||
}
|
|
||||||
Optional<unsigned> visitOp(AffineStoreOp op, unsigned begin) {
|
|
||||||
return getLoadStoreSchedule(op, begin);
|
|
||||||
}
|
|
||||||
|
|
||||||
unsigned getOpMinII(AffineForOp forOp);
|
|
||||||
unsigned getResMinII(LoadStoresMap &map);
|
|
||||||
unsigned getDepMinII(AffineForOp forOp, LoadStoresMap &map);
|
|
||||||
Optional<unsigned> visitOp(AffineForOp op, unsigned begin);
|
|
||||||
|
|
||||||
Optional<unsigned> visitOp(AffineIfOp op, unsigned begin);
|
|
||||||
Optional<unsigned> visitOp(ReturnOp op, unsigned begin);
|
|
||||||
Optional<unsigned> visitOp(ArrayOp op, unsigned begin);
|
|
||||||
|
|
||||||
/// Handle operations with profiled latency.
|
|
||||||
#define HANDLE(OPTYPE, KEYNAME) \
|
|
||||||
Optional<unsigned> visitOp(OPTYPE op, unsigned begin) { \
|
|
||||||
auto end = begin + latencyMap[KEYNAME] + 1; \
|
|
||||||
setScheduleValue(op, begin, end); \
|
|
||||||
return end; \
|
|
||||||
}
|
|
||||||
HANDLE(AddFOp, "fadd");
|
|
||||||
HANDLE(MulFOp, "fmul");
|
|
||||||
HANDLE(DivFOp, "fdiv");
|
|
||||||
HANDLE(CmpFOp, "fcmp");
|
|
||||||
HANDLE(SelectOp, "fselect");
|
|
||||||
#undef HANDLE
|
|
||||||
|
|
||||||
Optional<unsigned> estimateBlock(Block &block, unsigned begin);
|
|
||||||
void estimateFunc();
|
|
||||||
|
|
||||||
FuncOp &func;
|
|
||||||
DependsMap dependsMap;
|
|
||||||
PortsMapDict portsMapDict;
|
|
||||||
LatencyMap &latencyMap;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace scalehls
|
} // namespace scalehls
|
||||||
} // namespace mlir
|
} // namespace mlir
|
||||||
|
|
||||||
#endif // SCALEHLS_ANALYSIS_QORESTIMATION_H
|
#endif // SCALEHLS_ANALYSIS_UTILS_H
|
|
@ -9,6 +9,7 @@
|
||||||
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
||||||
#include "mlir/Dialect/SCF/SCF.h"
|
#include "mlir/Dialect/SCF/SCF.h"
|
||||||
#include "mlir/Dialect/StandardOps/IR/Ops.h"
|
#include "mlir/Dialect/StandardOps/IR/Ops.h"
|
||||||
|
#include "llvm/ADT/TypeSwitch.h"
|
||||||
|
|
||||||
namespace mlir {
|
namespace mlir {
|
||||||
namespace scalehls {
|
namespace scalehls {
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
||||||
#include "mlir/IR/Builders.h"
|
#include "mlir/IR/Builders.h"
|
||||||
#include "mlir/IR/Dialect.h"
|
#include "mlir/IR/Dialect.h"
|
||||||
#include "mlir/IR/Function.h"
|
|
||||||
|
|
||||||
namespace mlir {
|
namespace mlir {
|
||||||
namespace scalehls {
|
namespace scalehls {
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
#include "Dialect/HLSKernel/HLSKernel.h"
|
#include "Dialect/HLSKernel/HLSKernel.h"
|
||||||
#include "mlir/Dialect/StandardOps/IR/Ops.h"
|
#include "mlir/Dialect/StandardOps/IR/Ops.h"
|
||||||
|
#include "llvm/ADT/TypeSwitch.h"
|
||||||
|
|
||||||
namespace mlir {
|
namespace mlir {
|
||||||
namespace scalehls {
|
namespace scalehls {
|
||||||
|
|
|
@ -2,16 +2,16 @@
|
||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#include "Analysis/QoREstimation.h"
|
|
||||||
#include "Analysis/Passes.h"
|
#include "Analysis/Passes.h"
|
||||||
#include "Dialect/HLSCpp/HLSCpp.h"
|
#include "Analysis/Utils.h"
|
||||||
|
#include "Dialect/HLSCpp/Visitor.h"
|
||||||
|
#include "INIReader.h"
|
||||||
|
#include "mlir/Analysis/AffineAnalysis.h"
|
||||||
#include "mlir/Analysis/AffineStructures.h"
|
#include "mlir/Analysis/AffineStructures.h"
|
||||||
#include "mlir/Analysis/LoopAnalysis.h"
|
#include "mlir/Analysis/LoopAnalysis.h"
|
||||||
#include "mlir/Analysis/Utils.h"
|
#include "mlir/Analysis/Utils.h"
|
||||||
|
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
||||||
#include "mlir/Dialect/Affine/IR/AffineValueMap.h"
|
#include "mlir/Dialect/Affine/IR/AffineValueMap.h"
|
||||||
#include "mlir/IR/Block.h"
|
|
||||||
#include "mlir/IR/Operation.h"
|
|
||||||
#include "mlir/IR/PatternMatch.h"
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace mlir;
|
using namespace mlir;
|
||||||
|
@ -19,7 +19,72 @@ using namespace scalehls;
|
||||||
using namespace hlscpp;
|
using namespace hlscpp;
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
// Helpers
|
// HLSCppEstimator Class Delaration
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
class HLSCppEstimator
|
||||||
|
: public HLSCppVisitorBase<HLSCppEstimator, Optional<unsigned>, unsigned>,
|
||||||
|
public HLSCppAnalysisBase {
|
||||||
|
public:
|
||||||
|
explicit HLSCppEstimator(FuncOp &func, LatencyMap &latencyMap)
|
||||||
|
: HLSCppAnalysisBase(OpBuilder(func)), func(func),
|
||||||
|
latencyMap(latencyMap) {
|
||||||
|
getFuncMemRefDepends();
|
||||||
|
}
|
||||||
|
|
||||||
|
void getFuncMemRefDepends();
|
||||||
|
using HLSCppVisitorBase::visitOp;
|
||||||
|
Optional<unsigned> visitUnhandledOp(Operation *op, unsigned begin) {
|
||||||
|
// Default latency of any unhandled operation is 1.
|
||||||
|
setScheduleValue(op, begin, begin + 1);
|
||||||
|
return begin + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int32_t getPartitionIndex(Operation *op);
|
||||||
|
unsigned getLoadStoreSchedule(Operation *op, unsigned begin);
|
||||||
|
Optional<unsigned> visitOp(AffineLoadOp op, unsigned begin) {
|
||||||
|
return getLoadStoreSchedule(op, begin);
|
||||||
|
}
|
||||||
|
Optional<unsigned> visitOp(AffineStoreOp op, unsigned begin) {
|
||||||
|
return getLoadStoreSchedule(op, begin);
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned getOpMinII(AffineForOp forOp);
|
||||||
|
unsigned getResMinII(LoadStoresMap &map);
|
||||||
|
unsigned getDepMinII(AffineForOp forOp, LoadStoresMap &map);
|
||||||
|
Optional<unsigned> visitOp(AffineForOp op, unsigned begin);
|
||||||
|
|
||||||
|
Optional<unsigned> visitOp(AffineIfOp op, unsigned begin);
|
||||||
|
Optional<unsigned> visitOp(ReturnOp op, unsigned begin);
|
||||||
|
Optional<unsigned> visitOp(ArrayOp op, unsigned begin);
|
||||||
|
|
||||||
|
/// Handle operations with profiled latency.
|
||||||
|
#define HANDLE(OPTYPE, KEYNAME) \
|
||||||
|
Optional<unsigned> visitOp(OPTYPE op, unsigned begin) { \
|
||||||
|
auto end = begin + latencyMap[KEYNAME] + 1; \
|
||||||
|
setScheduleValue(op, begin, end); \
|
||||||
|
return end; \
|
||||||
|
}
|
||||||
|
HANDLE(AddFOp, "fadd");
|
||||||
|
HANDLE(MulFOp, "fmul");
|
||||||
|
HANDLE(DivFOp, "fdiv");
|
||||||
|
HANDLE(CmpFOp, "fcmp");
|
||||||
|
HANDLE(SelectOp, "fselect");
|
||||||
|
#undef HANDLE
|
||||||
|
|
||||||
|
Optional<unsigned> estimateBlock(Block &block, unsigned begin);
|
||||||
|
void estimateFunc();
|
||||||
|
|
||||||
|
FuncOp &func;
|
||||||
|
DependsMap dependsMap;
|
||||||
|
PortsMapDict portsMapDict;
|
||||||
|
LatencyMap &latencyMap;
|
||||||
|
};
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
// Helper methods
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
// Check if the lhsOp and rhsOp is at the same scheduling level. In this check,
|
// Check if the lhsOp and rhsOp is at the same scheduling level. In this check,
|
||||||
|
@ -123,7 +188,7 @@ static void getLoadStoresMap(Block &block, LoadStoresMap &map) {
|
||||||
}
|
}
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
// MemRef Dependency Collection Methods
|
// HLSCppEstimator Class Definition
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
/// Collect all dependencies detected in the function.
|
/// Collect all dependencies detected in the function.
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
#include "Conversion/Passes.h"
|
#include "Conversion/Passes.h"
|
||||||
#include "Dialect/HLSCpp/HLSCpp.h"
|
#include "Dialect/HLSCpp/HLSCpp.h"
|
||||||
#include "mlir/Dialect/StandardOps/IR/Ops.h"
|
#include "mlir/Dialect/StandardOps/IR/Ops.h"
|
||||||
#include "mlir/Pass/Pass.h"
|
|
||||||
|
|
||||||
using namespace mlir;
|
using namespace mlir;
|
||||||
using namespace scalehls;
|
using namespace scalehls;
|
||||||
|
|
|
@ -8,8 +8,6 @@
|
||||||
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
||||||
#include "mlir/Dialect/StandardOps/IR/Ops.h"
|
#include "mlir/Dialect/StandardOps/IR/Ops.h"
|
||||||
#include "mlir/IR/IntegerSet.h"
|
#include "mlir/IR/IntegerSet.h"
|
||||||
#include "mlir/Pass/Pass.h"
|
|
||||||
#include "llvm/ADT/TypeSwitch.h"
|
|
||||||
|
|
||||||
using namespace mlir;
|
using namespace mlir;
|
||||||
using namespace scalehls;
|
using namespace scalehls;
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#include "Dialect/HLSCpp/HLSCpp.h"
|
#include "Dialect/HLSCpp/HLSCpp.h"
|
||||||
#include "mlir/IR/StandardTypes.h"
|
|
||||||
|
|
||||||
using namespace mlir;
|
using namespace mlir;
|
||||||
using namespace scalehls;
|
using namespace scalehls;
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#include "Dialect/HLSKernel/HLSKernel.h"
|
#include "Dialect/HLSKernel/HLSKernel.h"
|
||||||
#include "mlir/IR/StandardTypes.h"
|
|
||||||
|
|
||||||
using namespace mlir;
|
using namespace mlir;
|
||||||
using namespace scalehls;
|
using namespace scalehls;
|
||||||
|
|
|
@ -3,21 +3,14 @@
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#include "EmitHLSCpp.h"
|
#include "EmitHLSCpp.h"
|
||||||
#include "Dialect/HLSCpp/HLSCpp.h"
|
|
||||||
#include "Dialect/HLSCpp/Visitor.h"
|
#include "Dialect/HLSCpp/Visitor.h"
|
||||||
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
||||||
#include "mlir/Dialect/Affine/IR/AffineValueMap.h"
|
#include "mlir/Dialect/Affine/IR/AffineValueMap.h"
|
||||||
#include "mlir/Dialect/SCF/SCF.h"
|
#include "mlir/Dialect/SCF/SCF.h"
|
||||||
#include "mlir/Dialect/StandardOps/IR/Ops.h"
|
#include "mlir/Dialect/StandardOps/IR/Ops.h"
|
||||||
#include "mlir/IR/AffineExprVisitor.h"
|
#include "mlir/IR/AffineExprVisitor.h"
|
||||||
#include "mlir/IR/Function.h"
|
|
||||||
#include "mlir/IR/IntegerSet.h"
|
#include "mlir/IR/IntegerSet.h"
|
||||||
#include "mlir/IR/Module.h"
|
|
||||||
#include "mlir/IR/StandardTypes.h"
|
|
||||||
#include "mlir/Support/LLVM.h"
|
|
||||||
#include "mlir/Translation.h"
|
#include "mlir/Translation.h"
|
||||||
#include "llvm/ADT/StringSet.h"
|
|
||||||
#include "llvm/ADT/TypeSwitch.h"
|
|
||||||
#include "llvm/Support/raw_ostream.h"
|
#include "llvm/Support/raw_ostream.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
|
@ -4,9 +4,7 @@
|
||||||
|
|
||||||
#include "Transforms/Passes.h"
|
#include "Transforms/Passes.h"
|
||||||
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
||||||
#include "mlir/IR/Builders.h"
|
|
||||||
#include "mlir/IR/IntegerSet.h"
|
#include "mlir/IR/IntegerSet.h"
|
||||||
#include "mlir/Transforms/LoopUtils.h"
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace mlir;
|
using namespace mlir;
|
||||||
|
|
|
@ -2,16 +2,14 @@
|
||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#include "Analysis/QoREstimation.h"
|
#include "Analysis/Utils.h"
|
||||||
#include "Transforms/Passes.h"
|
#include "Transforms/Passes.h"
|
||||||
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
||||||
#include "mlir/Dialect/Affine/Passes.h"
|
|
||||||
#include "mlir/IR/Builders.h"
|
|
||||||
#include "mlir/Transforms/LoopUtils.h"
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace mlir;
|
using namespace mlir;
|
||||||
using namespace scalehls;
|
using namespace scalehls;
|
||||||
|
using namespace hlscpp;
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
struct ArrayPartition : public ArrayPartitionBase<ArrayPartition> {
|
struct ArrayPartition : public ArrayPartitionBase<ArrayPartition> {
|
||||||
|
@ -122,13 +120,13 @@ void ArrayPartition::runOnOperation() {
|
||||||
// Collect memory access information.
|
// Collect memory access information.
|
||||||
LoadStoresMap loadMap;
|
LoadStoresMap loadMap;
|
||||||
outermost.walk([&](mlir::AffineLoadOp loadOp) {
|
outermost.walk([&](mlir::AffineLoadOp loadOp) {
|
||||||
auto arrayOp = cast<ArrayOp>(loadOp.getMemRef().getDefiningOp());
|
auto arrayOp = loadOp.getMemRef().getDefiningOp();
|
||||||
loadMap[arrayOp].push_back(loadOp);
|
loadMap[arrayOp].push_back(loadOp);
|
||||||
});
|
});
|
||||||
|
|
||||||
LoadStoresMap storeMap;
|
LoadStoresMap storeMap;
|
||||||
outermost.walk([&](mlir::AffineStoreOp storeOp) {
|
outermost.walk([&](mlir::AffineStoreOp storeOp) {
|
||||||
auto arrayOp = cast<ArrayOp>(storeOp.getMemRef().getDefiningOp());
|
auto arrayOp = storeOp.getMemRef().getDefiningOp();
|
||||||
storeMap[arrayOp].push_back(storeOp);
|
storeMap[arrayOp].push_back(storeOp);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
|
|
||||||
#include "Dialect/HLSKernel/HLSKernel.h"
|
#include "Dialect/HLSKernel/HLSKernel.h"
|
||||||
#include "Transforms/Passes.h"
|
#include "Transforms/Passes.h"
|
||||||
#include "mlir/IR/Builders.h"
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace mlir;
|
using namespace mlir;
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
|
|
||||||
#include "Dialect/HLSKernel/HLSKernel.h"
|
#include "Dialect/HLSKernel/HLSKernel.h"
|
||||||
#include "Transforms/Passes.h"
|
#include "Transforms/Passes.h"
|
||||||
#include "mlir/IR/Builders.h"
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace mlir;
|
using namespace mlir;
|
||||||
|
|
|
@ -4,8 +4,6 @@
|
||||||
|
|
||||||
#include "Transforms/Passes.h"
|
#include "Transforms/Passes.h"
|
||||||
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
||||||
#include "mlir/Dialect/Affine/Passes.h"
|
|
||||||
#include "mlir/IR/Builders.h"
|
|
||||||
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
|
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
|
||||||
#include "mlir/Transforms/LoopUtils.h"
|
#include "mlir/Transforms/LoopUtils.h"
|
||||||
|
|
||||||
|
|
|
@ -4,8 +4,6 @@
|
||||||
|
|
||||||
#include "Transforms/Passes.h"
|
#include "Transforms/Passes.h"
|
||||||
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
||||||
#include "mlir/Dialect/Affine/Passes.h"
|
|
||||||
#include "mlir/IR/Builders.h"
|
|
||||||
#include "mlir/Transforms/LoopUtils.h"
|
#include "mlir/Transforms/LoopUtils.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#include "Analysis/QoREstimation.h"
|
#include "Analysis/Utils.h"
|
||||||
#include "Dialect/HLSCpp/HLSCpp.h"
|
#include "Dialect/HLSCpp/HLSCpp.h"
|
||||||
#include "Transforms/Passes.h"
|
#include "Transforms/Passes.h"
|
||||||
|
|
||||||
|
|
|
@ -4,8 +4,6 @@
|
||||||
|
|
||||||
#include "Transforms/Passes.h"
|
#include "Transforms/Passes.h"
|
||||||
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
||||||
#include "mlir/Dialect/Affine/Passes.h"
|
|
||||||
#include "mlir/IR/Builders.h"
|
|
||||||
#include "mlir/IR/IntegerSet.h"
|
#include "mlir/IR/IntegerSet.h"
|
||||||
#include "mlir/Transforms/LoopUtils.h"
|
#include "mlir/Transforms/LoopUtils.h"
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
|
|
||||||
#include "Dialect/HLSKernel/HLSKernel.h"
|
#include "Dialect/HLSKernel/HLSKernel.h"
|
||||||
#include "Transforms/Passes.h"
|
#include "Transforms/Passes.h"
|
||||||
#include "mlir/IR/Builders.h"
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace mlir;
|
using namespace mlir;
|
||||||
|
|
|
@ -5,18 +5,10 @@
|
||||||
#include "Analysis/Passes.h"
|
#include "Analysis/Passes.h"
|
||||||
#include "Dialect/HLSKernel/HLSKernel.h"
|
#include "Dialect/HLSKernel/HLSKernel.h"
|
||||||
#include "INIReader.h"
|
#include "INIReader.h"
|
||||||
#include "Transforms/Passes.h"
|
|
||||||
#include "mlir/IR/Dialect.h"
|
#include "mlir/IR/Dialect.h"
|
||||||
#include "mlir/IR/MLIRContext.h"
|
#include "mlir/IR/MLIRContext.h"
|
||||||
#include "mlir/IR/Types.h"
|
|
||||||
#include "mlir/InitAllDialects.h"
|
|
||||||
#include "mlir/InitAllPasses.h"
|
|
||||||
#include "mlir/Pass/Pass.h"
|
|
||||||
#include "mlir/Pass/PassManager.h"
|
|
||||||
#include "mlir/Support/FileUtilities.h"
|
#include "mlir/Support/FileUtilities.h"
|
||||||
#include "llvm/Support/CommandLine.h"
|
#include "llvm/Support/CommandLine.h"
|
||||||
#include "llvm/Support/InitLLVM.h"
|
|
||||||
#include "llvm/Support/SourceMgr.h"
|
|
||||||
#include "llvm/Support/ToolOutputFile.h"
|
#include "llvm/Support/ToolOutputFile.h"
|
||||||
#include <numeric>
|
#include <numeric>
|
||||||
|
|
||||||
|
@ -384,12 +376,6 @@ static LogicalResult processBenchmarkGen(raw_ostream &os) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
llvm::InitLLVM y(argc, argv);
|
|
||||||
|
|
||||||
// Register any pass manager command line options.
|
|
||||||
mlir::registerPassManagerCLOptions();
|
|
||||||
mlir::PassPipelineCLParser passPipeline("", "Compiler passes to run");
|
|
||||||
|
|
||||||
// Parse pass names in main to ensure static initialization completed.
|
// Parse pass names in main to ensure static initialization completed.
|
||||||
llvm::cl::ParseCommandLineOptions(argc, argv,
|
llvm::cl::ParseCommandLineOptions(argc, argv,
|
||||||
"MLIR modular optimizer driver\n");
|
"MLIR modular optimizer driver\n");
|
||||||
|
|
Loading…
Reference in New Issue