Lines Matching defs:RC
76 /// class \p RC.
79 const TargetRegisterClass *RC) const;
112 getLargestLegalSuperClass(const TargetRegisterClass *RC,
149 /// a cross register class copy, return the specified RC. Returns NULL if it
152 getCrossCopyRegClass(const TargetRegisterClass *RC) const override;
203 static bool isSGPRClass(const TargetRegisterClass *RC) {
204 return hasSGPRs(RC) && !hasVGPRs(RC) && !hasAGPRs(RC);
218 static bool isVGPRClass(const TargetRegisterClass *RC) {
219 return hasVGPRs(RC) && !hasAGPRs(RC) && !hasSGPRs(RC);
223 static bool isAGPRClass(const TargetRegisterClass *RC) {
224 return hasAGPRs(RC) && !hasVGPRs(RC) && !hasSGPRs(RC);
228 bool isVectorSuperClass(const TargetRegisterClass *RC) const {
229 return hasVGPRs(RC) && hasAGPRs(RC) && !hasSGPRs(RC);
233 bool isVSSuperClass(const TargetRegisterClass *RC) const {
234 return hasVGPRs(RC) && hasSGPRs(RC) && !hasAGPRs(RC);
238 static bool hasVGPRs(const TargetRegisterClass *RC) {
239 return RC->TSFlags & SIRCFlags::HasVGPR;
243 static bool hasAGPRs(const TargetRegisterClass *RC) {
244 return RC->TSFlags & SIRCFlags::HasAGPR;
248 static bool hasSGPRs(const TargetRegisterClass *RC) {
249 return RC->TSFlags & SIRCFlags::HasSGPR;
253 static bool hasVectorRegisters(const TargetRegisterClass *RC) {
254 return hasVGPRs(RC) || hasAGPRs(RC);
293 const TargetRegisterClass *RC,
313 bool isDivergentRegClass(const TargetRegisterClass *RC) const override {
314 return !isSGPRClass(RC);
320 ArrayRef<int16_t> getRegSplitParts(const TargetRegisterClass *RC,
331 unsigned getRegPressureLimit(const TargetRegisterClass *RC,
411 bool isProperlyAlignedRC(const TargetRegisterClass &RC) const;
413 // Given \p RC returns corresponding aligned register class if required
416 getProperlyAlignedRC(const TargetRegisterClass *RC) const;
443 unsigned getRegClassAlignmentNumBits(const TargetRegisterClass *RC) const {
444 return (RC->TSFlags & SIRCFlags::RegTupleAlignUnitsMask) * 32;
447 // Check if register class RC has required alignment.
448 bool isRegClassAligned(const TargetRegisterClass *RC,
451 unsigned RCAlign = getRegClassAlignmentNumBits(RC);
456 // Return alignment of a SubReg relative to start of a register in RC class.
457 // No check if the subreg is supported by the current RC is made.
458 unsigned getSubRegAlignmentNumBits(const TargetRegisterClass *RC,
461 // \returns a number of registers of a given \p RC used in a function.
464 const TargetRegisterClass &RC) const;
476 /// Get the size in bits of a register from the register class \p RC.
477 unsigned getRegBitWidth(const TargetRegisterClass &RC);