Subzero: Avoid explicit references to RegNumT sentinel value. There are many occurrences of if (RegNum == RegNumT::NoRegister). This patch eliminates NoRegister and provides a simpler mechanism for declaring and testing RegNumT values to see if they are undefined. BUG= none R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1691193002 . Patch from Reed Kotler <rkotlerimgtec@gmail.com>.
diff --git a/src/IceInstX86BaseImpl.h b/src/IceInstX86BaseImpl.h index 6a087e8..b80a169 100644 --- a/src/IceInstX86BaseImpl.h +++ b/src/IceInstX86BaseImpl.h
@@ -1987,8 +1987,7 @@ Type Ty = Src0Var->getType(); // lea on x86-32 doesn't accept mem128 operands, so cast VSrc0 to an // acceptable type. - Src0Var->asType(isVectorType(Ty) ? IceType_i32 : Ty, RegNumT::NoRegister) - ->emit(Func); + Src0Var->asType(isVectorType(Ty) ? IceType_i32 : Ty, RegNumT())->emit(Func); } else { Src0->emit(Func); } @@ -2025,7 +2024,7 @@ InstX86Base::getTarget(Func)->typeWidthInBytesOnStack(SrcTy)); const Operand *NewSrc = Src; if (auto *SrcVar = llvm::dyn_cast<Variable>(Src)) { - auto NewRegNum = RegNumT::NoRegister; + RegNumT NewRegNum; if (SrcVar->hasReg()) NewRegNum = Traits::getGprForType(DestTy, SrcVar->getRegNum()); if (SrcTy != DestTy)