Path: blob/main/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonDepArch.h
35269 views
//===----------------------------------------------------------------------===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//78#ifndef LLVM_LIB_TARGET_HEXAGON_HEXAGONDEPARCH_H9#define LLVM_LIB_TARGET_HEXAGON_HEXAGONDEPARCH_H1011#include "llvm/ADT/StringSwitch.h"12#include <optional>1314namespace llvm {15namespace Hexagon {16enum class ArchEnum {17NoArch,18Generic,19V5,20V55,21V60,22V62,23V65,24V66,25V67,26V68,27V69,28V71,29V7330};3132inline std::optional<Hexagon::ArchEnum> getCpu(StringRef CPU) {33return StringSwitch<std::optional<Hexagon::ArchEnum>>(CPU)34.Case("generic", Hexagon::ArchEnum::V5)35.Case("hexagonv5", Hexagon::ArchEnum::V5)36.Case("hexagonv55", Hexagon::ArchEnum::V55)37.Case("hexagonv60", Hexagon::ArchEnum::V60)38.Case("hexagonv62", Hexagon::ArchEnum::V62)39.Case("hexagonv65", Hexagon::ArchEnum::V65)40.Case("hexagonv66", Hexagon::ArchEnum::V66)41.Case("hexagonv67", Hexagon::ArchEnum::V67)42.Case("hexagonv67t", Hexagon::ArchEnum::V67)43.Case("hexagonv68", Hexagon::ArchEnum::V68)44.Case("hexagonv69", Hexagon::ArchEnum::V69)45.Case("hexagonv71", Hexagon::ArchEnum::V71)46.Case("hexagonv71t", Hexagon::ArchEnum::V71)47.Case("hexagonv73", Hexagon::ArchEnum::V73)48.Default(std::nullopt);49}50} // namespace Hexagon51} // namespace llvm5253#endif // LLVM_LIB_TARGET_HEXAGON_HEXAGONDEPARCH_H545556