Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
Show First 20 Lines • Show All 588 Lines • ▼ Show 20 Lines | PPCTTIImpl::enableMemCmpExpansion(bool OptSize, bool IsZeroCmp) const { | ||||
Options.MaxNumLoads = TLI->getMaxExpandSizeMemcmp(OptSize); | Options.MaxNumLoads = TLI->getMaxExpandSizeMemcmp(OptSize); | ||||
return Options; | return Options; | ||||
} | } | ||||
bool PPCTTIImpl::enableInterleavedAccessVectorization() { | bool PPCTTIImpl::enableInterleavedAccessVectorization() { | ||||
return true; | return true; | ||||
} | } | ||||
unsigned PPCTTIImpl::getNumberOfRegisters(bool Vector) { | unsigned PPCTTIImpl::getNumberOfRegisters(unsigned ClassID) const { | ||||
if (Vector && !ST->hasAltivec() && !ST->hasQPX()) | assert(ClassID == GPRRC || ClassID == FPRRC || | ||||
return 0; | ClassID == VRRC || ClassID == VSXRC); | ||||
return ST->hasVSX() ? 64 : 32; | if (ST->hasVSX()) { | ||||
assert(ClassID == GPRRC || ClassID == VSXRC); | |||||
return ClassID == GPRRC ? 32 : 64; | |||||
} | |||||
assert(ClassID == GPRRC || ClassID == FPRRC || ClassID == VRRC); | |||||
return 32; | |||||
} | |||||
unsigned PPCTTIImpl::getRegisterClassForType(Type *Ty, bool Vector) const { | |||||
if (ST->hasVSX()) { | |||||
if (!Vector && !Ty->getScalarType()->isFloatTy()) | |||||
return GPRRC; | |||||
else | |||||
return VSXRC; | |||||
} | |||||
if (Vector) | |||||
return VRRC; | |||||
else if (Ty->getScalarType()->isFloatTy()) | |||||
return FPRRC; | |||||
else | |||||
return GPRRC; | |||||
} | |||||
const char* PPCTTIImpl::getRegisterClassName(unsigned ClassID) const { | |||||
switch (ClassID) { | |||||
default: | |||||
llvm_unreachable("unknown register class"); | |||||
return "PPC::unknown register class"; | |||||
case GPRRC: return "PPC::GPRRC"; | |||||
case FPRRC: return "PPC::FPRRC"; | |||||
case VRRC: return "PPC::VRRC"; | |||||
case VSXRC: return "PPC::VSXRC"; | |||||
} | |||||
} | } | ||||
unsigned PPCTTIImpl::getRegisterBitWidth(bool Vector) const { | unsigned PPCTTIImpl::getRegisterBitWidth(bool Vector) const { | ||||
if (Vector) { | if (Vector) { | ||||
if (ST->hasQPX()) return 256; | if (ST->hasQPX()) return 256; | ||||
if (ST->hasAltivec()) return 128; | if (ST->hasAltivec()) return 128; | ||||
return 0; | return 0; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 291 Lines • Show Last 20 Lines |