Commit ff6c525a authored by Jayaram Bobba's avatar Jayaram Bobba Committed by adstraw

Eliminate unnecessary Convert ops when input element type is the same as output element type (#709)

parent 01a29487
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include <unordered_map> #include <unordered_map>
#include "cpu_nop_elimination.hpp" #include "cpu_nop_elimination.hpp"
#include "ngraph/op/convert.hpp"
#include "ngraph/op/pad.hpp" #include "ngraph/op/pad.hpp"
#include "ngraph/op/sum.hpp" #include "ngraph/op/sum.hpp"
...@@ -52,10 +53,23 @@ HANDLER_DECL(eliminate_sum) ...@@ -52,10 +53,23 @@ HANDLER_DECL(eliminate_sum)
return false; return false;
} }
HANDLER_DECL(eliminate_convert)
{
auto convert = std::dynamic_pointer_cast<ngraph::op::Convert>(node);
if (convert->get_convert_element_type() == convert->get_input_op(0)->get_element_type())
{
function->replace_node(node, node->get_input_op(0));
return true;
}
return false;
}
static const std::unordered_map<std::type_index, static const std::unordered_map<std::type_index,
std::function<bool(const std::shared_ptr<ngraph::Function>&, std::function<bool(const std::shared_ptr<ngraph::Function>&,
const std::shared_ptr<ngraph::Node>&)>> const std::shared_ptr<ngraph::Node>&)>>
dispatcher{{TI(ngraph::op::Pad), &eliminate_pad}, {TI(ngraph::op::Sum), &eliminate_sum}}; dispatcher{{TI(ngraph::op::Pad), &eliminate_pad},
{TI(ngraph::op::Sum), &eliminate_sum},
{TI(ngraph::op::Convert), &eliminate_convert}};
bool ngraph::runtime::cpu::pass::CPUNopElimination::run_on_function( bool ngraph::runtime::cpu::pass::CPUNopElimination::run_on_function(
std::shared_ptr<ngraph::Function> function) std::shared_ptr<ngraph::Function> function)
......
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