================ @@ -115,6 +115,30 @@ StringRef Triple::getArchName(ArchType Kind, SubArchType SubArch) { if (SubArch == AArch64SubArch_arm64e) return "arm64e"; break; + case Triple::dxil: + switch (SubArch) { + case Triple::NoSubArch: + case Triple::DXILSubArch_v1_0: + return "dxilv1.0"; + case Triple::DXILSubArch_v1_1: + return "dxilv1.1"; + case Triple::DXILSubArch_v1_2: + return "dxilv1.2"; + case Triple::DXILSubArch_v1_3: + return "dxilv1.3"; + case Triple::DXILSubArch_v1_4: + return "dxilv1.4"; + case Triple::DXILSubArch_v1_5: + return "dxilv1.5"; + case Triple::DXILSubArch_v1_6: + return "dxilv1.6"; + case Triple::DXILSubArch_v1_7: + return "dxilv1.7"; + case Triple::DXILSubArch_v1_8: + return "dxilv1.8"; + default: + return ""; ---------------- bharadwajy wrote:
> Would we want to llvm_unreachable or otherwise fail here, or does the caller > handle this case well? The `default` case would be true for a call such as `getArchName(Triple::dxil, Triple::<NonDXILSubArch>)`, where `NonDXILSubArch` is something other than `DXILSubArch_v1_[0..8]` (e.g., `MipsSubArch_r6`). I considered 3 options to handle this case: 1. Report failure / crash with a message indicating incorrect DXIL `SubArch`: not chosen as such behavior is not consistent with other `SuArch`s as pointed out [here](https://github.com/llvm/llvm-project/pull/89823/files#r1581314588) in the feedback for PR #89823. 2. Fall through to return the value of `getArchTypeName(Kind)` where `Kind` is `Triple::dxil` to return the string "dxil": not chosen since "dxil" does **not** represent the `ArchTypeName` for the `Arch/SubArch` combination of `Triple::dxil/Triple::<NonDXILSubArch>` (e.g., `Triple::dxil//Triple::MipsSubArch_r6`) and returning "dxil" would indicate that it is a valid `ArchTypeName`. 3. Return null string (""): chosen to indicate that there is no valid `ArchTypeName` for the `Arch/SubArch` combination of `Triple::dxil/Triple::<NonDXILSubArch>`(e.g., `Triple::dxil/Triple::MipsSubArch_r6`). The consumer of the Triple checks for validity of Arch to issue an error for a non-viable empty architecture name as I think it is a cleaner option compared to either reporting a failure or asserting here. https://github.com/llvm/llvm-project/pull/90809 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits