mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
Add Triple::isMIPS()/isMIPS32()/isMIPS64(). NFC
There are quite a few if statements that enumerate all these cases. It gets even worse in our fork of LLVM where we also have a Triple::cheri (which is mips64 + CHERI instructions) and we had to update all if statements that check for Triple::mips64 to also handle Triple::cheri. This patch helps to reduce our diff to upstream and should also make some checks more readable. Reviewed By: atanasyan Differential Revision: https://reviews.llvm.org/D48548 llvm-svn: 335493
This commit is contained in:
parent
91c55cb124
commit
efbf6691b6
@ -658,6 +658,21 @@ public:
|
||||
return getArch() == Triple::aarch64 || getArch() == Triple::aarch64_be;
|
||||
}
|
||||
|
||||
/// Tests whether the target is MIPS 32-bit (little and big endian).
|
||||
bool isMIPS32() const {
|
||||
return getArch() == Triple::mips || getArch() == Triple::mipsel;
|
||||
}
|
||||
|
||||
/// Tests whether the target is MIPS 64-bit (little and big endian).
|
||||
bool isMIPS64() const {
|
||||
return getArch() == Triple::mips64 || getArch() == Triple::mips64el;
|
||||
}
|
||||
|
||||
/// Tests whether the target is MIPS (little and big endian, 32- or 64-bit).
|
||||
bool isMIPS() const {
|
||||
return isMIPS32() || isMIPS64();
|
||||
}
|
||||
|
||||
/// Tests whether the target supports comdat
|
||||
bool supportsCOMDAT() const {
|
||||
return !isOSBinFormatMachO();
|
||||
|
@ -85,8 +85,7 @@ static void initialize(TargetLibraryInfoImpl &TLI, const Triple &T,
|
||||
}
|
||||
// Mips, on the other hand, needs signext on i32 parameters corresponding
|
||||
// to both signed and unsigned ints.
|
||||
if (T.getArch() == Triple::mips || T.getArch() == Triple::mipsel ||
|
||||
T.getArch() == Triple::mips64 || T.getArch() == Triple::mips64el) {
|
||||
if (T.isMIPS()) {
|
||||
ShouldSignExtI32Param = true;
|
||||
}
|
||||
TLI.setShouldExtI32Param(ShouldExtI32Param);
|
||||
|
@ -529,8 +529,7 @@ void MCObjectFileInfo::initELFMCObjectFileInfo(const Triple &T, bool Large) {
|
||||
// MIPS .debug_* sections should have SHT_MIPS_DWARF section type
|
||||
// to distinguish among sections contain DWARF and ECOFF debug formats.
|
||||
// Sections with ECOFF debug format are obsoleted and marked by SHT_PROGBITS.
|
||||
if (T.getArch() == Triple::mips || T.getArch() == Triple::mipsel ||
|
||||
T.getArch() == Triple::mips64 || T.getArch() == Triple::mips64el)
|
||||
if (T.isMIPS())
|
||||
DebugSecType = ELF::SHT_MIPS_DWARF;
|
||||
|
||||
// Debug Info Sections.
|
||||
|
@ -513,11 +513,7 @@ public:
|
||||
CpRestoreOffset = -1;
|
||||
|
||||
const Triple &TheTriple = sti.getTargetTriple();
|
||||
if ((TheTriple.getArch() == Triple::mips) ||
|
||||
(TheTriple.getArch() == Triple::mips64))
|
||||
IsLittleEndian = false;
|
||||
else
|
||||
IsLittleEndian = true;
|
||||
IsLittleEndian = TheTriple.isLittleEndian();
|
||||
|
||||
if (getSTI().getCPU() == "mips64r6" && inMicroMipsMode())
|
||||
report_fatal_error("microMIPS64R6 is not supported", false);
|
||||
|
@ -57,7 +57,7 @@ MipsABIInfo MipsABIInfo::computeTargetABI(const Triple &TT, StringRef CPU,
|
||||
return MipsABIInfo::N64();
|
||||
assert(Options.getABIName().empty() && "Unknown ABI option for MIPS");
|
||||
|
||||
if (TT.getArch() == Triple::mips64 || TT.getArch() == Triple::mips64el)
|
||||
if (TT.isMIPS64())
|
||||
return MipsABIInfo::N64();
|
||||
return MipsABIInfo::O32();
|
||||
}
|
||||
|
@ -21,16 +21,14 @@ void MipsMCAsmInfo::anchor() { }
|
||||
MipsMCAsmInfo::MipsMCAsmInfo(const Triple &TheTriple) {
|
||||
IsLittleEndian = TheTriple.isLittleEndian();
|
||||
|
||||
if ((TheTriple.getArch() == Triple::mips64el) ||
|
||||
(TheTriple.getArch() == Triple::mips64)) {
|
||||
if (TheTriple.isMIPS64()) {
|
||||
CodePointerSize = CalleeSaveStackSlotSize = 8;
|
||||
}
|
||||
|
||||
// FIXME: This condition isn't quite right but it's the best we can do until
|
||||
// this object can identify the ABI. It will misbehave when using O32
|
||||
// on a mips64*-* triple.
|
||||
if ((TheTriple.getArch() == Triple::mipsel) ||
|
||||
(TheTriple.getArch() == Triple::mips)) {
|
||||
if (TheTriple.isMIPS32()) {
|
||||
PrivateGlobalPrefix = "$";
|
||||
PrivateLabelPrefix = "$";
|
||||
}
|
||||
@ -54,8 +52,7 @@ MipsMCAsmInfo::MipsMCAsmInfo(const Triple &TheTriple) {
|
||||
HasMipsExpressions = true;
|
||||
|
||||
// Enable IAS by default for O32.
|
||||
if (TheTriple.getArch() == Triple::mips ||
|
||||
TheTriple.getArch() == Triple::mipsel)
|
||||
if (TheTriple.isMIPS32())
|
||||
UseIntegratedAssembler = true;
|
||||
|
||||
// Enable IAS by default for Debian mips64/mips64el.
|
||||
|
@ -47,7 +47,7 @@ using namespace llvm;
|
||||
/// FIXME: Merge with the copy in MipsSubtarget.cpp
|
||||
StringRef MIPS_MC::selectMipsCPU(const Triple &TT, StringRef CPU) {
|
||||
if (CPU.empty() || CPU == "generic") {
|
||||
if (TT.getArch() == Triple::mips || TT.getArch() == Triple::mipsel)
|
||||
if (TT.isMIPS32())
|
||||
CPU = "mips32";
|
||||
else
|
||||
CPU = "mips64";
|
||||
|
@ -493,10 +493,8 @@ static ShadowMapping getShadowMapping(Triple &TargetTriple, int LongSize,
|
||||
bool IsSystemZ = TargetTriple.getArch() == Triple::systemz;
|
||||
bool IsX86 = TargetTriple.getArch() == Triple::x86;
|
||||
bool IsX86_64 = TargetTriple.getArch() == Triple::x86_64;
|
||||
bool IsMIPS32 = TargetTriple.getArch() == Triple::mips ||
|
||||
TargetTriple.getArch() == Triple::mipsel;
|
||||
bool IsMIPS64 = TargetTriple.getArch() == Triple::mips64 ||
|
||||
TargetTriple.getArch() == Triple::mips64el;
|
||||
bool IsMIPS32 = TargetTriple.isMIPS32();
|
||||
bool IsMIPS64 = TargetTriple.isMIPS64();
|
||||
bool IsArmOrThumb = TargetTriple.isARM() || TargetTriple.isThumb();
|
||||
bool IsAArch64 = TargetTriple.getArch() == Triple::aarch64;
|
||||
bool IsWindows = TargetTriple.isOSWindows();
|
||||
|
@ -539,8 +539,7 @@ TransformedFunction DataFlowSanitizer::getCustomFunctionType(FunctionType *T) {
|
||||
bool DataFlowSanitizer::doInitialization(Module &M) {
|
||||
Triple TargetTriple(M.getTargetTriple());
|
||||
bool IsX86_64 = TargetTriple.getArch() == Triple::x86_64;
|
||||
bool IsMIPS64 = TargetTriple.getArch() == Triple::mips64 ||
|
||||
TargetTriple.getArch() == Triple::mips64el;
|
||||
bool IsMIPS64 = TargetTriple.isMIPS64();
|
||||
bool IsAArch64 = TargetTriple.getArch() == Triple::aarch64 ||
|
||||
TargetTriple.getArch() == Triple::aarch64_be;
|
||||
|
||||
|
@ -537,7 +537,7 @@ void EfficiencySanitizer::createDestructor(Module &M, Constant *ToolInfoArg) {
|
||||
bool EfficiencySanitizer::initOnModule(Module &M) {
|
||||
|
||||
Triple TargetTriple(M.getTargetTriple());
|
||||
if (TargetTriple.getArch() == Triple::mips64 || TargetTriple.getArch() == Triple::mips64el)
|
||||
if (TargetTriple.isMIPS64())
|
||||
ShadowParams = ShadowParams40;
|
||||
else
|
||||
ShadowParams = ShadowParams47;
|
||||
|
@ -3980,8 +3980,7 @@ static VarArgHelper *CreateVarArgHelper(Function &Func, MemorySanitizer &Msan,
|
||||
Triple TargetTriple(Func.getParent()->getTargetTriple());
|
||||
if (TargetTriple.getArch() == Triple::x86_64)
|
||||
return new VarArgAMD64Helper(Func, Msan, Visitor);
|
||||
else if (TargetTriple.getArch() == Triple::mips64 ||
|
||||
TargetTriple.getArch() == Triple::mips64el)
|
||||
else if (TargetTriple.isMIPS64())
|
||||
return new VarArgMIPS64Helper(Func, Msan, Visitor);
|
||||
else if (TargetTriple.getArch() == Triple::aarch64)
|
||||
return new VarArgAArch64Helper(Func, Msan, Visitor);
|
||||
|
Loading…
x
Reference in New Issue
Block a user