diff --git a/llvm/include/llvm/ADT/Triple.h b/llvm/include/llvm/ADT/Triple.h --- a/llvm/include/llvm/ADT/Triple.h +++ b/llvm/include/llvm/ADT/Triple.h @@ -76,6 +76,7 @@ sparc, // Sparc: sparc sparcv9, // Sparcv9: Sparcv9 sparcel, // Sparc: (endianness = little). NB: 'Sparcle' is a CPU variant + sparcv9el, // Sparcv9: (endianness = little) systemz, // SystemZ: s390x tce, // TCE (http://tce.cs.tut.fi/): tce tcele, // TCE little endian (http://tce.cs.tut.fi/): tcele @@ -824,6 +825,21 @@ return getArch() == Triple::riscv32 || getArch() == Triple::riscv64; } + /// Tests whether the target is 32-bit SPARC (little and big endian). + bool isSPARC32() const { + return getArch() == Triple::sparc || getArch() == Triple::sparcel; + } + + /// Tests whether the target is 64-bit SPARC (little and big endian). + bool isSPARC64() const { + return getArch() == Triple::sparcv9 || getArch() == Triple::sparcv9el; + } + + /// Tests whether the target is SPARC. + bool isSPARC() const { + return isSPARC32() || isSPARC64(); + } + /// Tests whether the target is SystemZ. bool isSystemZ() const { return getArch() == Triple::systemz;