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