| 31 | } |
| 32 | |
| 33 | StatusOr<HloOpcode> StringToHloOpcode(const string& opcode_name) { |
| 34 | static auto* opcode_map = new absl::flat_hash_map<string, HloOpcode>({ |
| 35 | #define STRING_TO_OPCODE_ENTRY(enum_name, opcode_name, ...) \ |
| 36 | {opcode_name, HloOpcode::enum_name}, |
| 37 | HLO_OPCODE_LIST(STRING_TO_OPCODE_ENTRY) |
| 38 | #undef STRING_TO_OPCODE_ENTRY |
| 39 | }); |
| 40 | auto it = opcode_map->find(opcode_name); |
| 41 | if (it == opcode_map->end()) { |
| 42 | return InvalidArgument("Unknown opcode: %s", opcode_name); |
| 43 | } |
| 44 | return it->second; |
| 45 | } |
| 46 | |
| 47 | bool HloOpcodeIsComparison(HloOpcode opcode) { |
| 48 | return opcode == HloOpcode::kCompare; |