more progress
This commit is contained in:
@@ -157,7 +157,7 @@ grids::fragment_t grids::get_fragmentation_type(node_t x, graph_t &graph){
|
||||
}
|
||||
|
||||
void grids::connected_components(node_t x, const std::vector<ir::metaparameter *> mps, const std::vector<std::string> prefixes, std::set<node_t> &nodes, graph_t &graph, unsigned group_id) {
|
||||
// std::cout << "connected component: " << x.first->get_name() << " " << x.second << std::endl;
|
||||
std::cout << "connected component: " << x.first->get_name() << " " << x.second << std::endl;
|
||||
groups_[x.first].insert({x.second, group_id});
|
||||
if(nodes.find(x) != nodes.end()){
|
||||
nodes.erase(x);
|
||||
@@ -229,10 +229,13 @@ void grids::run(ir::module &mod) {
|
||||
create_grids(grids_, references, fn);
|
||||
}
|
||||
|
||||
|
||||
unsigned num_threads = get_num_threads();
|
||||
auto clamp = [&](unsigned x, unsigned lo, unsigned hi) { return std::min(std::max(x, lo), hi); };
|
||||
|
||||
for(ir::value *i: grids_){
|
||||
std::cout << "grid: " << i->get_name() << std::endl;
|
||||
|
||||
if(!i->get_type()->is_tile_ty())
|
||||
continue;
|
||||
auto shapes = i->get_type()->get_tile_shapes();
|
||||
|
@@ -1436,6 +1436,7 @@ void selection::lower_tile_instruction(ir::instruction *ins, llvm::IRBuilder<> &
|
||||
}
|
||||
|
||||
void selection::lower_instruction(ir::instruction *src, IRBuilder<> &builder) {
|
||||
std::cout << src->get_name() << std::endl;
|
||||
if(src->has_tile_result_or_op()) {
|
||||
lower_tile_instruction(src, builder);
|
||||
}
|
||||
|
@@ -731,6 +731,7 @@ barrier_inst* barrier_inst::create(context &ctx, const std::string &name, instru
|
||||
return new barrier_inst(ctx, name, next);
|
||||
}
|
||||
|
||||
|
||||
// nv_dynamic_program_idx
|
||||
nv_dynamic_program_idx_inst::nv_dynamic_program_idx_inst(type *ty, const std::string &name, instruction *next)
|
||||
: instruction(ty, 0, 1, name, next) { }
|
||||
@@ -754,5 +755,6 @@ nv_static_program_idx* nv_static_program_idx::get(constant_range* range) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -199,7 +199,7 @@ std::unique_ptr<driver::module> function::make_bin(ir::module &module, driver::c
|
||||
codegen::analysis::liveness shmem_liveness(&shmem_info);
|
||||
codegen::analysis::memalloc shmem_allocation(&shmem_liveness, &shmem_info, &grids);
|
||||
codegen::analysis::align alignment_info;
|
||||
codegen::transform::reorder reorder(&alignment_info);
|
||||
codegen::transform::reorder reorder(&alignment_info, &shmem_info);
|
||||
codegen::transform::membar shmem_barriers(&shmem_allocation, &shmem_info);
|
||||
codegen::transform::vectorize vectorize(&grids);
|
||||
codegen::transform::dce dce;
|
||||
@@ -211,7 +211,9 @@ std::unique_ptr<driver::module> function::make_bin(ir::module &module, driver::c
|
||||
dce.run(module);
|
||||
alignment_info.run(module);
|
||||
ir::print(module, std::cout);
|
||||
// reorder.run(module);
|
||||
if(target->is_gpu())
|
||||
shmem_info.run(module);
|
||||
reorder.run(module);
|
||||
dce.run(module);
|
||||
ir::print(module, std::cout);
|
||||
grids.run(module);
|
||||
@@ -229,6 +231,7 @@ std::unique_ptr<driver::module> function::make_bin(ir::module &module, driver::c
|
||||
dce.run(module);
|
||||
vectorize.run(module);
|
||||
dce.run(module);
|
||||
ir::print(module, std::cout);
|
||||
// generate llvm code
|
||||
llvm::LLVMContext ctx;
|
||||
std::unique_ptr<llvm::Module> llvm(new llvm::Module(module.get_name(), ctx));
|
||||
|
Reference in New Issue
Block a user