Index: src/IceTargetLoweringMIPS32.cpp |
diff --git a/src/IceTargetLoweringMIPS32.cpp b/src/IceTargetLoweringMIPS32.cpp |
index 40d510d0c5cf266da2e9a1a5bfa3714d66895f26..378d3b0b5393dc8d965a126c1f9430c01eb78067 100644 |
--- a/src/IceTargetLoweringMIPS32.cpp |
+++ b/src/IceTargetLoweringMIPS32.cpp |
@@ -290,22 +290,22 @@ const char *RegNames[RegMIPS32::Reg_NUM] = { |
} // end of anonymous namespace |
-const char *RegMIPS32::getRegName(int32_t RegNum) { |
- assert(RegNum < RegMIPS32::Reg_NUM); |
+const char *RegMIPS32::getRegName(RegNumT RegNum) { |
+ assert(unsigned(RegNum) < RegMIPS32::Reg_NUM); |
Eric Holk
2016/02/08 19:37:10
Should there be a fixme somewhere around here?
Jim Stichnoth
2016/02/09 19:33:39
Probably not, given this is basically a bounds che
Eric Holk
2016/02/10 01:11:30
Good point.
|
return RegNames[RegNum]; |
} |
-IceString TargetMIPS32::getRegName(SizeT RegNum, Type Ty) const { |
+IceString TargetMIPS32::getRegName(RegNumT RegNum, Type Ty) const { |
(void)Ty; |
return RegMIPS32::getRegName(RegNum); |
} |
-Variable *TargetMIPS32::getPhysicalRegister(SizeT RegNum, Type Ty) { |
+Variable *TargetMIPS32::getPhysicalRegister(RegNumT RegNum, Type Ty) { |
if (Ty == IceType_void) |
Ty = IceType_i32; |
if (PhysicalRegisters[Ty].empty()) |
PhysicalRegisters[Ty].resize(RegMIPS32::Reg_NUM); |
- assert(RegNum < PhysicalRegisters[Ty].size()); |
+ assert(unsigned(RegNum) < PhysicalRegisters[Ty].size()); |
Eric Holk
2016/02/08 19:37:10
fixme?
Jim Stichnoth
2016/02/09 19:33:39
same as above I think
Eric Holk
2016/02/10 01:11:30
I think so too. Plus, the code is in an assert, so
|
Variable *Reg = PhysicalRegisters[Ty][RegNum]; |
if (Reg == nullptr) { |
Reg = Func->makeVariable(Ty); |
@@ -328,12 +328,12 @@ void TargetMIPS32::emitJumpTable(const Cfg *Func, |
} |
/// Provide a trivial wrapper to legalize() for this common usage. |
-Variable *TargetMIPS32::legalizeToReg(Operand *From, int32_t RegNum) { |
+Variable *TargetMIPS32::legalizeToReg(Operand *From, RegNumT RegNum) { |
return llvm::cast<Variable>(legalize(From, Legal_Reg, RegNum)); |
} |
/// Legalize undef values to concrete values. |
-Operand *TargetMIPS32::legalizeUndef(Operand *From, int32_t RegNum) { |
+Operand *TargetMIPS32::legalizeUndef(Operand *From, RegNumT RegNum) { |
(void)RegNum; |
Type Ty = From->getType(); |
if (llvm::isa<ConstantUndef>(From)) { |
@@ -355,11 +355,11 @@ Operand *TargetMIPS32::legalizeUndef(Operand *From, int32_t RegNum) { |
return From; |
} |
-Variable *TargetMIPS32::makeReg(Type Type, int32_t RegNum) { |
+Variable *TargetMIPS32::makeReg(Type Type, RegNumT RegNum) { |
// There aren't any 64-bit integer registers for Mips32. |
assert(Type != IceType_i64); |
Variable *Reg = Func->makeVariable(Type); |
- if (RegNum == Variable::NoRegister) |
+ if (RegNum == RegNumT::NoRegister) |
Reg->setMustHaveReg(); |
else |
Reg->setRegNum(RegNum); |
@@ -410,20 +410,20 @@ void TargetMIPS32::lowerArguments() { |
if (Ty == IceType_i64) { |
if (NumGPRRegsUsed >= MIPS32_MAX_GPR_ARG) |
continue; |
- int32_t RegLo = RegMIPS32::Reg_A0 + NumGPRRegsUsed; |
- int32_t RegHi = RegLo + 1; |
+ RegNumT RegLo = RegNumT::fixme(RegMIPS32::Reg_A0 + NumGPRRegsUsed); |
+ RegNumT RegHi = RegNumT::fixme(RegLo + 1); |
++NumGPRRegsUsed; |
// Always start i64 registers at an even register, so this may end |
// up padding away a register. |
if (RegLo % 2 != 0) { |
- ++RegLo; |
+ RegLo = RegNumT::fixme(RegLo + 1); |
++NumGPRRegsUsed; |
} |
// If this leaves us without room to consume another register, |
// leave any previously speculatively consumed registers as consumed. |
if (NumGPRRegsUsed >= MIPS32_MAX_GPR_ARG) |
continue; |
- // RegHi = RegMIPS32::Reg_A0 + NumGPRRegsUsed; |
+ // RegHi = RegNumT::fixme(RegMIPS32::Reg_A0 + NumGPRRegsUsed); |
Eric Holk
2016/02/08 19:37:10
Could we just delete this line, since it's comment
Jim Stichnoth
2016/02/09 19:33:39
I'll leave that to Reed, he may be holding the com
Eric Holk
2016/02/10 01:11:30
Ok.
|
++NumGPRRegsUsed; |
Variable *RegisterArg = Func->makeVariable(Ty); |
auto *RegisterArg64On32 = llvm::cast<Variable64On32>(RegisterArg); |
@@ -441,7 +441,7 @@ void TargetMIPS32::lowerArguments() { |
assert(Ty == IceType_i32); |
if (NumGPRRegsUsed >= MIPS32_MAX_GPR_ARG) |
continue; |
- int32_t RegNum = RegMIPS32::Reg_A0 + NumGPRRegsUsed; |
+ RegNumT RegNum = RegNumT::fixme(RegMIPS32::Reg_A0 + NumGPRRegsUsed); |
++NumGPRRegsUsed; |
Variable *RegisterArg = Func->makeVariable(Ty); |
if (BuildDefs::dump()) { |
@@ -1156,7 +1156,7 @@ void TargetMIPS32::postLower() { |
} |
void TargetMIPS32::makeRandomRegisterPermutation( |
- llvm::SmallVectorImpl<int32_t> &Permutation, |
+ llvm::SmallVectorImpl<RegNumT> &Permutation, |
const llvm::SmallBitVector &ExcludeRegisters, uint64_t Salt) const { |
(void)Permutation; |
(void)ExcludeRegisters; |
@@ -1213,7 +1213,7 @@ void TargetDataMIPS32::lowerJumpTables() { |
// Helper for legalize() to emit the right code to lower an operand to a |
// register of the appropriate type. |
-Variable *TargetMIPS32::copyToReg(Operand *Src, int32_t RegNum) { |
+Variable *TargetMIPS32::copyToReg(Operand *Src, RegNumT RegNum) { |
Type Ty = Src->getType(); |
Variable *Reg = makeReg(Ty, RegNum); |
if (isVectorType(Ty) || isFloatingType(Ty)) { |
@@ -1227,7 +1227,7 @@ Variable *TargetMIPS32::copyToReg(Operand *Src, int32_t RegNum) { |
} |
Operand *TargetMIPS32::legalize(Operand *From, LegalMask Allowed, |
- int32_t RegNum) { |
+ RegNumT RegNum) { |
Type Ty = From->getType(); |
// Assert that a physical register is allowed. To date, all calls |
// to legalize() allow a physical register. Legal_Flex converts |
@@ -1252,7 +1252,7 @@ Operand *TargetMIPS32::legalize(Operand *From, LegalMask Allowed, |
// Also try the inverse and use MVN if possible. |
// Do a movw/movt to a register. |
Variable *Reg; |
- if (RegNum == Variable::NoRegister) |
+ if (RegNum == RegNumT::NoRegister) |
Reg = makeReg(Ty, RegNum); |
else |
Reg = getPhysicalRegister(RegNum); |
@@ -1280,7 +1280,7 @@ Operand *TargetMIPS32::legalize(Operand *From, LegalMask Allowed, |
// register, or |
// RegNum is required and Var->getRegNum() doesn't match. |
if ((!(Allowed & Legal_Mem) && !MustHaveRegister) || |
- (RegNum != Variable::NoRegister && RegNum != Var->getRegNum())) { |
+ (RegNum != RegNumT::NoRegister && RegNum != Var->getRegNum())) { |
From = copyToReg(From, RegNum); |
} |
return From; |