#include "ShapeInference.h"
#include <loco/IR/CanonicalNode.h>
+#include <loco/IR/CanonicalDialect.h>
#include <loco/IR/CanonicalNodeVisitor.h>
#include <loco/Service/ShapeInference.h>
#include <loco/Service/CanonicalShapeInferenceRule.h>
+#include <loco/Service/MultiDialectShapeInferenceRule.h>
+
+#include <locoex/COpCall.h>
+#include <locoex/COpDialect.h>
+#include <locoex/Service/COpShapeInferenceRule.h>
void ShapeInference::run(loco::Graph *g)
{
// TODO Adjust indentation level
{
- loco::CanonicalShapeInferenceRule rule;
- loco::apply(&rule).to(g);
+ loco::CanonicalShapeInferenceRule canonical_rule;
+ locoex::COpShapeInferenceRule cop_rule;
+ loco::MultiDialectShapeInferenceRule rules;
+
+ rules.bind(loco::CanonicalDialect::get(), &canonical_rule)
+ .bind(locoex::COpDialect::get(), &cop_rule);
+
+ loco::apply(&rules).to(g);
+
return;
}
}