Skip to content

Commit

Permalink
treewide: Clean up populating of conversions.
Browse files Browse the repository at this point in the history
  • Loading branch information
xlauko committed Aug 7, 2024
1 parent df0782d commit 63b09fb
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 21 deletions.
12 changes: 5 additions & 7 deletions include/vast/Conversion/Common/Mixins.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,9 @@ namespace vast {
);
}

template< typename... lists >
static void populate_conversions_base(auto &cfg) {
(self::template populate_conversions_impl< lists >(cfg), ...);
template< typename... conversions >
static void populate_conversions(auto &cfg) {
(self::template populate_conversions_impl< conversions >(cfg), ...);
}
};

Expand Down Expand Up @@ -176,7 +176,7 @@ namespace vast {
// }
//
// static void populate_conversions(base_conversion_config &cfg) {
// base::populate_conversions_base<
// base::populate_conversions<
// // pass conversion type_lists here
// >(cfg);
// }
Expand All @@ -185,8 +185,6 @@ namespace vast {
template< typename derived, template< typename > typename base >
struct ModuleConversionPassMixin : ModuleConversionPassMixinBase< derived, base >
{
void populate_conversions(base_conversion_config &cfg) {}

base_conversion_config make_config() {
auto &ctx = this->getContext();
return { rewrite_pattern_set(&ctx), derived::create_conversion_target(ctx) };
Expand All @@ -209,7 +207,7 @@ namespace vast {
// }
//
// static void populate_conversions(llvm_conversion_config &patterns) {
// base::populate_conversions_base<
// base::populate_conversions<
// // pass conversion type_lists here
// >(cfg);
// }
Expand Down
7 changes: 5 additions & 2 deletions lib/vast/Conversion/Core/ToLLVM.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,10 @@ namespace vast

} //namespace pattern

struct CoreToLLVMPass : ModuleConversionPassMixin< CoreToLLVMPass, CoreToLLVMBase > {
struct CoreToLLVMPass : ModuleConversionPassMixin< CoreToLLVMPass, CoreToLLVMBase >
{
using base = ModuleConversionPassMixin< CoreToLLVMPass, CoreToLLVMBase >;

static conversion_target create_conversion_target(mcontext_t &context) {
conversion_target target(context);

Expand All @@ -271,7 +274,7 @@ namespace vast
}

static void populate_conversions(auto &cfg) {
populate_conversions_base< pattern::bin_lop_conversions >(cfg);
base::populate_conversions< pattern::bin_lop_conversions >(cfg);
}

void run_after_conversion() {
Expand Down
4 changes: 3 additions & 1 deletion lib/vast/Conversion/FromHL/EmitLazyRegions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,8 @@ namespace vast
struct HLEmitLazyRegionsPass
: ModuleConversionPassMixin< HLEmitLazyRegionsPass, HLEmitLazyRegionsBase >
{
using base = ModuleConversionPassMixin< HLEmitLazyRegionsPass, HLEmitLazyRegionsBase >;

static conversion_target create_conversion_target(mcontext_t &context) {
conversion_target target(context);
target.addLegalDialect< vast::core::CoreDialect >();
Expand All @@ -135,7 +137,7 @@ namespace vast
}

static void populate_conversions(auto &cfg) {
populate_conversions_base< bin_lop_conversions >(cfg);
base::populate_conversions< bin_lop_conversions >(cfg);
}
};

Expand Down
8 changes: 3 additions & 5 deletions lib/vast/Conversion/FromHL/ToHLBI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -409,18 +409,16 @@ namespace vast::conv {

struct HLToHLBIPass : ModuleConversionPassMixin< HLToHLBIPass, HLToHLBIBase >
{
using base = ModuleConversionPassMixin< HLToHLBIPass, HLToHLBIBase >;

static conversion_target create_conversion_target(mcontext_t &context) {
conversion_target target(context);
target.addLegalDialect< hlbi::HLBuiltinDialect >();
return target;
}

static void populate_conversions(auto &cfg) {
populate_conversions_base<
util::type_list<
convert_builtin_operation< hl::CallOp >
>
>(cfg);
base::populate_conversions< convert_builtin_operation< hl::CallOp > >(cfg);
}
};
} // namespace vast::conv
Expand Down
4 changes: 3 additions & 1 deletion lib/vast/Conversion/FromHL/ToLLCF.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -499,6 +499,8 @@ namespace vast::conv {

struct HLToLLCF : ModuleConversionPassMixin< HLToLLCF, HLToLLCFBase >
{
using base = ModuleConversionPassMixin< HLToLLCF, HLToLLCFBase >;

static auto create_conversion_target(mcontext_t &mctx) {
mlir::ConversionTarget trg(mctx);
trg.addLegalDialect< ll::LowLevelDialect >();
Expand All @@ -516,7 +518,7 @@ namespace vast::conv {
}

static void populate_conversions(auto &cfg) {
populate_conversions_base< pattern::cf_patterns >(cfg);
base::populate_conversions< pattern::cf_patterns >(cfg);
}

void run_after_conversion() {
Expand Down
7 changes: 4 additions & 3 deletions lib/vast/Conversion/FromHL/ToLLFunc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,17 @@ namespace vast::conv::hltollfunc
};
} // namespace pattern

struct HLToLLFunc : ModuleConversionPassMixin< HLToLLFunc, HLToLLFuncBase > {
using base = ModuleConversionPassMixin< HLToLLFunc, HLToLLFuncBase >;
struct HLToLLFunc : ModuleConversionPassMixin< HLToLLFunc, HLToLLFuncBase >
{
using base = ModuleConversionPassMixin< HLToLLFunc, HLToLLFuncBase >;

static conversion_target create_conversion_target(mcontext_t &context) {
conversion_target target(context);
return target;
}

static void populate_conversions(auto &cfg) {
base::populate_conversions_base< util::type_list< pattern::func_op > >(cfg);
base::populate_conversions< pattern::func_op >(cfg);
}
};
} // namespace vast::conv::hltollfunc
Expand Down
3 changes: 1 addition & 2 deletions lib/vast/Conversion/ToLLVM/IRsToLLVM.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1560,7 +1560,7 @@ namespace vast::conv::irstollvm
}

static void populate_conversions(auto &cfg) {
base::populate_conversions_base<
base::populate_conversions<
one_to_one_conversions,
shift_conversions,
inline_region_from_op_conversions,
Expand All @@ -1581,7 +1581,6 @@ namespace vast::conv::irstollvm
static void set_lower_to_llvm_options(lower_to_llvm_options &llvm_options) {
llvm_options.useBarePtrCallConv = true;
}

};
} // namespace vast::conv

Expand Down

0 comments on commit 63b09fb

Please sign in to comment.