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/IceRegAlloc.cpp b/src/IceRegAlloc.cpp
index f59cb3c..993dc44 100644
--- a/src/IceRegAlloc.cpp
+++ b/src/IceRegAlloc.cpp
@@ -502,7 +502,7 @@
 // not appear within the current Variable's live range.
 void LinearScan::findRegisterPreference(IterationState &Iter) {
   Iter.Prefer = nullptr;
-  Iter.PreferReg = RegNumT::NoRegister;
+  Iter.PreferReg = RegNumT();
   Iter.AllowOverlap = false;
 
   if (!FindPreference)
@@ -738,7 +738,7 @@
         --RegUses[RegAlias];
         assert(RegUses[RegAlias] >= 0);
       }
-      Item->setRegNumTmp(RegNumT::NoRegister);
+      Item->setRegNumTmp(RegNumT());
       moveItem(Active, Index, Handled);
       Evicted.push_back(Item);
     }
@@ -756,7 +756,7 @@
     // instructions.
     if (Aliases[Item->getRegNumTmp()] && Item->rangeOverlaps(Iter.Cur)) {
       dumpLiveRangeTrace("Evicting I   ", Item);
-      Item->setRegNumTmp(RegNumT::NoRegister);
+      Item->setRegNumTmp(RegNumT());
       moveItem(Inactive, Index, Handled);
       Evicted.push_back(Item);
     }