mirror of https://github.com/llvm/circt.git
[HWArithToHW] Expose conversion patterns (#3840)
This commit is contained in:
parent
a9f0da9b98
commit
44793691b4
|
@ -14,6 +14,7 @@
|
|||
#ifndef CIRCT_CONVERSION_HWARITHTOHW_HWARITHTOHW_H
|
||||
#define CIRCT_CONVERSION_HWARITHTOHW_HWARITHTOHW_H
|
||||
|
||||
#include "circt/Support/LLVM.h"
|
||||
#include <memory>
|
||||
|
||||
namespace mlir {
|
||||
|
@ -21,6 +22,9 @@ class Pass;
|
|||
} // namespace mlir
|
||||
|
||||
namespace circt {
|
||||
/// Get the HWArith to HW conversion patterns.
|
||||
void populateHWArithToHWConversionPatterns(RewritePatternSet &patterns);
|
||||
|
||||
std::unique_ptr<mlir::Pass> createHWArithToHWPass();
|
||||
} // namespace circt
|
||||
|
||||
|
|
|
@ -407,6 +407,14 @@ static void addSignatureConversion(ConversionTarget &target,
|
|||
// Pass driver
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
void circt::populateHWArithToHWConversionPatterns(RewritePatternSet &patterns) {
|
||||
patterns.add<ConstantOpLowering, CastOpLowering, ICmpOpLowering,
|
||||
BinaryOpLowering<AddOp, comb::AddOp>,
|
||||
BinaryOpLowering<SubOp, comb::SubOp>,
|
||||
BinaryOpLowering<MulOp, comb::MulOp>, DivOpLowering>(
|
||||
patterns.getContext());
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
||||
class HWArithToHWPass : public HWArithToHWBase<HWArithToHWPass> {
|
||||
|
@ -433,11 +441,7 @@ public:
|
|||
hw::StructExplodeOp, hw::StructExtractOp, hw::StructInjectOp,
|
||||
hw::UnionCreateOp, hw::UnionExtractOp>(target, patterns, typeConverter);
|
||||
|
||||
patterns.add<ConstantOpLowering, CastOpLowering, ICmpOpLowering,
|
||||
BinaryOpLowering<AddOp, comb::AddOp>,
|
||||
BinaryOpLowering<SubOp, comb::SubOp>,
|
||||
BinaryOpLowering<MulOp, comb::MulOp>, DivOpLowering>(
|
||||
patterns.getContext());
|
||||
populateHWArithToHWConversionPatterns(patterns);
|
||||
|
||||
if (failed(applyPartialConversion(module, target, std::move(patterns))))
|
||||
return signalPassFailure();
|
||||
|
|
Loading…
Reference in New Issue