Commit 62970436 authored by Paul's avatar Paul
Browse files

Rename output field

parent 7cafc6cd
...@@ -24,7 +24,7 @@ void dead_code_elimination::apply(program& p) const ...@@ -24,7 +24,7 @@ void dead_code_elimination::apply(program& p) const
break; break;
fix([&](auto self, auto leaf) { fix([&](auto self, auto leaf) {
assert(p.has_instruction(leaf)); assert(p.has_instruction(leaf));
if(leaf->output.empty()) if(leaf->outputs().empty())
{ {
auto args = leaf->inputs(); auto args = leaf->inputs();
leaf->clear_arguments(); leaf->clear_arguments();
......
...@@ -57,8 +57,8 @@ struct instruction ...@@ -57,8 +57,8 @@ struct instruction
bool valid(instruction_ref start) const bool valid(instruction_ref start) const
{ {
return valid() && std::all_of(arguments.begin(), arguments.end(), [&](instruction_ref i) { return valid() && std::all_of(arguments.begin(), arguments.end(), [&](instruction_ref i) {
auto self = std::find(i->output.begin(), i->output.end(), *this); auto self = std::find(i->outputs().begin(), i->outputs().end(), *this);
return self != i->output.end() && return self != i->outputs().end() &&
std::distance(start, i) < std::distance(start, *self); std::distance(start, i) < std::distance(start, *self);
}); });
} }
......
...@@ -120,11 +120,11 @@ instruction_ref program::replace_instruction(instruction_ref ins, instruction_re ...@@ -120,11 +120,11 @@ instruction_ref program::replace_instruction(instruction_ref ins, instruction_re
assert(has_instruction(rep)); assert(has_instruction(rep));
assert(ins != rep); assert(ins != rep);
// TODO: Should it be an error if the output is empty? // TODO: Should it be an error if the output is empty?
if(ins->output.empty()) if(ins->outputs().empty())
{ {
return rep; return rep;
} }
for(auto&& out : ins->output) for(auto&& out : ins->outputs())
{ {
// TODO: Check for possible cycles // TODO: Check for possible cycles
if(out != rep) if(out != rep)
...@@ -134,7 +134,7 @@ instruction_ref program::replace_instruction(instruction_ref ins, instruction_re ...@@ -134,7 +134,7 @@ instruction_ref program::replace_instruction(instruction_ref ins, instruction_re
assert(out->valid(begin())); assert(out->valid(begin()));
} }
// Replacement should not be dead code unless its the last instruction // Replacement should not be dead code unless its the last instruction
assert(!rep->output.empty() or rep == std::prev(end())); assert(!rep->outputs().empty() or rep == std::prev(end()));
assert(ins->valid(begin())); assert(ins->valid(begin()));
assert(rep->valid(begin())); assert(rep->valid(begin()));
return rep; return rep;
...@@ -143,7 +143,7 @@ instruction_ref program::replace_instruction(instruction_ref ins, instruction_re ...@@ -143,7 +143,7 @@ instruction_ref program::replace_instruction(instruction_ref ins, instruction_re
instruction_ref program::remove_instruction(instruction_ref ins) instruction_ref program::remove_instruction(instruction_ref ins)
{ {
assert(has_instruction(ins)); assert(has_instruction(ins));
assert(ins->output.empty()); assert(ins->outputs().empty());
ins->clear_arguments(); ins->clear_arguments();
return impl->instructions.erase(ins); return impl->instructions.erase(ins);
} }
...@@ -155,7 +155,7 @@ instruction_ref program::remove_instructions(instruction_ref first, instruction_ ...@@ -155,7 +155,7 @@ instruction_ref program::remove_instructions(instruction_ref first, instruction_
// TODO: Check every element // TODO: Check every element
assert(has_instruction(first)); assert(has_instruction(first));
std::for_each(first, last, [&](instruction& ins) { ins.clear_arguments(); }); std::for_each(first, last, [&](instruction& ins) { ins.clear_arguments(); });
assert(std::all_of(first, last, [&](instruction& ins) { return ins.output.empty(); })); assert(std::all_of(first, last, [&](instruction& ins) { return ins.outputs().empty(); }));
return impl->instructions.erase(first, last); return impl->instructions.erase(first, last);
} }
......
...@@ -27,9 +27,9 @@ void simplify_reshapes::apply(program& p) const ...@@ -27,9 +27,9 @@ void simplify_reshapes::apply(program& p) const
{ {
if(not is_reshaper(ins->name())) if(not is_reshaper(ins->name()))
continue; continue;
if(ins->output.size() != 1) if(ins->outputs().size() != 1)
continue; continue;
if(is_reshaper(ins->output.front()->name())) if(is_reshaper(ins->outputs().front()->name()))
continue; continue;
// Gather reshapes // Gather reshapes
std::vector<instruction_ref> reshapes{ins}; std::vector<instruction_ref> reshapes{ins};
......
...@@ -16,7 +16,7 @@ void eliminate_workspace::apply(program& p) const ...@@ -16,7 +16,7 @@ void eliminate_workspace::apply(program& p) const
std::vector<instruction_ref> allocs; std::vector<instruction_ref> allocs;
for(auto ins : iterator_for(p)) for(auto ins : iterator_for(p))
{ {
if(ins->output.size() != 1) if(ins->outputs().size() != 1)
continue; continue;
if(ins->name() != "hip::allocate") if(ins->name() != "hip::allocate")
continue; continue;
......
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