42 llvm::StringRef TargetID;
47 llvm::SmallDenseMap<llvm::AMDGPU::GPUKind, Info> Seen;
48 for (
const auto &[
T, ID] : Entries) {
49 std::optional<llvm::AMDGPU::TargetID> Parsed =
50 llvm::AMDGPU::TargetID::parse(
T, ID);
56 Info Cur{ID, Parsed->isXnackOnOrOff(), Parsed->isSramEccOnOrOff()};
57 auto [Loc, Inserted] = Seen.try_emplace(Parsed->getGPUKind(), Cur);
61 const Info &Prev = Loc->second;
62 if (Cur.HasXnack != Prev.HasXnack || Cur.HasSramEcc != Prev.HasSramEcc)
63 return std::make_pair(Prev.TargetID, ID);