[CODEGEN][ANALYSIS] cleaning: moving towards better polymorphism for

tile layouts
This commit is contained in:
Philippe Tillet
2020-01-20 11:55:34 -05:00
parent fbf2a3f56f
commit 382ca2c745
11 changed files with 130 additions and 109 deletions

View File

@@ -11,13 +11,6 @@ using namespace llvm;
/* Distributed Tile */
void distributed_tile::init_indices() {
std::vector<size_t> id(axes_.size(), 0);
// create iteration order
std::vector<size_t> order(id.size());
std::iota(order.begin(), order.end(), 0);
auto cmp = [&](int x, int y) {
return order_[x] < order_[y];
};
std::sort(order.begin(), order.end(), cmp);
// build
size_t k = 0;
while(true) {
@@ -28,12 +21,12 @@ void distributed_tile::init_indices() {
indices_[current] = sz;
values_[current] = nullptr;
ordered_indices_.push_back(current);
id[order[0]]++;
while(id[order[k]] == axes_[order[k]].values.size()){
id[order_[0]]++;
while(id[order_[k]] == axes_[order_[k]].values.size()){
if(k == id.size() - 1)
return;
id[order[k++]] = 0;
id[order[k]]++;
id[order_[k++]] = 0;
id[order_[k]]++;
}
k = 0;
}