| 27 | namespace backends { |
| 28 | |
| 29 | bool FunctionProto::Match(const ir::Call *op) const { |
| 30 | if (name != op->name) return false; |
| 31 | if (ret_type != op->type()) return false; |
| 32 | if (op->read_args.size() != readonly_arg_types.size()) return false; |
| 33 | if (op->write_args.size() != mutable_arg_types.size()) return false; |
| 34 | |
| 35 | for (int i = 0; i < op->read_args.size(); i++) { |
| 36 | if (op->read_args[i].type() != readonly_arg_types[i]) return false; |
| 37 | } |
| 38 | for (int i = 0; i < op->write_args.size(); i++) { |
| 39 | if (op->write_args[i].type() != mutable_arg_types[i]) return false; |
| 40 | } |
| 41 | return true; |
| 42 | } |
| 43 | |
| 44 | void FunctionProto::AssertMatch(const ir::Call *op) const { |
| 45 | PADDLE_ENFORCE_EQ(name, |
no test coverage detected