Commit acbb2e88 authored by Paul's avatar Paul
Browse files

Format

parent 3a58dbf9
...@@ -81,20 +81,17 @@ struct compile_plan ...@@ -81,20 +81,17 @@ struct compile_plan
context* ctx; context* ctx;
operation preop; operation preop;
instruction_ref ins; instruction_ref ins;
optional<tuning_config> config = nullopt; optional<tuning_config> config = nullopt;
std::vector<compiled_result> results = {}; std::vector<compiled_result> results = {};
void update_config() void update_config() { config = get_tuning_config(*ctx, ins, preop); }
{ template <class Vector>
config = get_tuning_config(*ctx, ins, preop);
}
template<class Vector>
void add_compiles(Vector& compiles) void add_compiles(Vector& compiles)
{ {
if (config.has_value()) if(config.has_value())
{ {
const auto& solutions = config.value().solutions; const auto& solutions = config.value().solutions;
results.resize(solutions.size()); results.resize(solutions.size());
for(auto i:range(solutions.size())) for(auto i : range(solutions.size()))
{ {
auto solution = solutions[i]; auto solution = solutions[i];
compiles.emplace_back([=] { compiles.emplace_back([=] {
...@@ -141,17 +138,15 @@ void compile_ops::apply(module& m) const ...@@ -141,17 +138,15 @@ void compile_ops::apply(module& m) const
operation preop = any_cast<precompile_op>(ins->get_operator()).op; operation preop = any_cast<precompile_op>(ins->get_operator()).op;
cps.push_back({ctx, preop, ins}); cps.push_back({ctx, preop, ins});
} }
par_compile(cps.size(), [&](auto i) { par_compile(cps.size(), [&](auto i) { cps[i].update_config(); });
cps[i].update_config();
});
std::vector<std::function<void()>> compiles; std::vector<std::function<void()>> compiles;
for(auto& cp:cps) for(auto& cp : cps)
{ {
cp.add_compiles(compiles); cp.add_compiles(compiles);
} }
par_compile(compiles.size(), [&](auto i) { compiles[i](); }); par_compile(compiles.size(), [&](auto i) { compiles[i](); });
for(const auto& cp:cps) for(const auto& cp : cps)
{ {
cp.replace(m); cp.replace(m);
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment