Subzero: Use 'override' as appropriate for C++11.

Not necessary for the LLVM 3.5 merge, but nice to have anyway.

BUG= https://code.google.com/p/nativeclient/issues/detail?id=3930
R=jfb@chromium.org, jvoung@chromium.org

Review URL: https://codereview.chromium.org/605123002
diff --git a/src/IceInst.cpp b/src/IceInst.cpp
index 9706ce9..9602935 100644
--- a/src/IceInst.cpp
+++ b/src/IceInst.cpp
@@ -196,7 +196,7 @@
 
 InstAlloca::InstAlloca(Cfg *Func, Operand *ByteCount, uint32_t AlignInBytes,
                        Variable *Dest)
-    : Inst(Func, Inst::Alloca, 1, Dest), AlignInBytes(AlignInBytes) {
+    : InstHighLevel(Func, Inst::Alloca, 1, Dest), AlignInBytes(AlignInBytes) {
   // Verify AlignInBytes is 0 or a power of 2.
   assert(AlignInBytes == 0 || llvm::isPowerOf2_32(AlignInBytes));
   addSource(ByteCount);
@@ -204,7 +204,7 @@
 
 InstArithmetic::InstArithmetic(Cfg *Func, OpKind Op, Variable *Dest,
                                Operand *Source1, Operand *Source2)
-    : Inst(Func, Inst::Arithmetic, 2, Dest), Op(Op) {
+    : InstHighLevel(Func, Inst::Arithmetic, 2, Dest), Op(Op) {
   addSource(Source1);
   addSource(Source2);
 }
@@ -221,7 +221,7 @@
 }
 
 InstAssign::InstAssign(Cfg *Func, Variable *Dest, Operand *Source)
-    : Inst(Func, Inst::Assign, 1, Dest) {
+    : InstHighLevel(Func, Inst::Assign, 1, Dest) {
   addSource(Source);
 }
 
@@ -230,7 +230,7 @@
 // semantics, there is at most one edge from one node to another.
 InstBr::InstBr(Cfg *Func, Operand *Source, CfgNode *TargetTrue,
                CfgNode *TargetFalse)
-    : Inst(Func, Inst::Br, 1, NULL), TargetFalse(TargetFalse),
+    : InstHighLevel(Func, Inst::Br, 1, NULL), TargetFalse(TargetFalse),
       TargetTrue(TargetTrue) {
   if (TargetTrue == TargetFalse) {
     TargetTrue = NULL; // turn into unconditional version
@@ -240,7 +240,8 @@
 }
 
 InstBr::InstBr(Cfg *Func, CfgNode *Target)
-    : Inst(Func, Inst::Br, 0, NULL), TargetFalse(Target), TargetTrue(NULL) {}
+    : InstHighLevel(Func, Inst::Br, 0, NULL), TargetFalse(Target),
+      TargetTrue(NULL) {}
 
 NodeList InstBr::getTerminatorEdges() const {
   NodeList OutEdges;
@@ -251,27 +252,27 @@
 }
 
 InstCast::InstCast(Cfg *Func, OpKind CastKind, Variable *Dest, Operand *Source)
-    : Inst(Func, Inst::Cast, 1, Dest), CastKind(CastKind) {
+    : InstHighLevel(Func, Inst::Cast, 1, Dest), CastKind(CastKind) {
   addSource(Source);
 }
 
 InstExtractElement::InstExtractElement(Cfg *Func, Variable *Dest,
                                        Operand *Source1, Operand *Source2)
-    : Inst(Func, Inst::ExtractElement, 2, Dest) {
+    : InstHighLevel(Func, Inst::ExtractElement, 2, Dest) {
   addSource(Source1);
   addSource(Source2);
 }
 
 InstFcmp::InstFcmp(Cfg *Func, FCond Condition, Variable *Dest, Operand *Source1,
                    Operand *Source2)
-    : Inst(Func, Inst::Fcmp, 2, Dest), Condition(Condition) {
+    : InstHighLevel(Func, Inst::Fcmp, 2, Dest), Condition(Condition) {
   addSource(Source1);
   addSource(Source2);
 }
 
 InstIcmp::InstIcmp(Cfg *Func, ICond Condition, Variable *Dest, Operand *Source1,
                    Operand *Source2)
-    : Inst(Func, Inst::Icmp, 2, Dest), Condition(Condition) {
+    : InstHighLevel(Func, Inst::Icmp, 2, Dest), Condition(Condition) {
   addSource(Source1);
   addSource(Source2);
 }
@@ -279,19 +280,19 @@
 InstInsertElement::InstInsertElement(Cfg *Func, Variable *Dest,
                                      Operand *Source1, Operand *Source2,
                                      Operand *Source3)
-    : Inst(Func, Inst::InsertElement, 3, Dest) {
+    : InstHighLevel(Func, Inst::InsertElement, 3, Dest) {
   addSource(Source1);
   addSource(Source2);
   addSource(Source3);
 }
 
 InstLoad::InstLoad(Cfg *Func, Variable *Dest, Operand *SourceAddr)
-    : Inst(Func, Inst::Load, 1, Dest) {
+    : InstHighLevel(Func, Inst::Load, 1, Dest) {
   addSource(SourceAddr);
 }
 
 InstPhi::InstPhi(Cfg *Func, SizeT MaxSrcs, Variable *Dest)
-    : Inst(Func, Phi, MaxSrcs, Dest) {
+    : InstHighLevel(Func, Phi, MaxSrcs, Dest) {
   Labels = Func->allocateArrayOf<CfgNode *>(MaxSrcs);
 }
 
@@ -350,14 +351,14 @@
 }
 
 InstRet::InstRet(Cfg *Func, Operand *RetValue)
-    : Inst(Func, Ret, RetValue ? 1 : 0, NULL) {
+    : InstHighLevel(Func, Ret, RetValue ? 1 : 0, NULL) {
   if (RetValue)
     addSource(RetValue);
 }
 
 InstSelect::InstSelect(Cfg *Func, Variable *Dest, Operand *Condition,
                        Operand *SourceTrue, Operand *SourceFalse)
-    : Inst(Func, Inst::Select, 3, Dest) {
+    : InstHighLevel(Func, Inst::Select, 3, Dest) {
   assert(typeElementType(Condition->getType()) == IceType_i1);
   addSource(Condition);
   addSource(SourceTrue);
@@ -365,14 +366,14 @@
 }
 
 InstStore::InstStore(Cfg *Func, Operand *Data, Operand *Addr)
-    : Inst(Func, Inst::Store, 2, NULL) {
+    : InstHighLevel(Func, Inst::Store, 2, NULL) {
   addSource(Data);
   addSource(Addr);
 }
 
 InstSwitch::InstSwitch(Cfg *Func, SizeT NumCases, Operand *Source,
                        CfgNode *LabelDefault)
-    : Inst(Func, Inst::Switch, 1, NULL), LabelDefault(LabelDefault),
+    : InstHighLevel(Func, Inst::Switch, 1, NULL), LabelDefault(LabelDefault),
       NumCases(NumCases) {
   addSource(Source);
   Values = Func->allocateArrayOf<uint64_t>(NumCases);
@@ -400,24 +401,25 @@
 }
 
 InstUnreachable::InstUnreachable(Cfg *Func)
-    : Inst(Func, Inst::Unreachable, 0, NULL) {}
+    : InstHighLevel(Func, Inst::Unreachable, 0, NULL) {}
 
 InstFakeDef::InstFakeDef(Cfg *Func, Variable *Dest, Variable *Src)
-    : Inst(Func, Inst::FakeDef, Src ? 1 : 0, Dest) {
+    : InstHighLevel(Func, Inst::FakeDef, Src ? 1 : 0, Dest) {
   assert(Dest);
   if (Src)
     addSource(Src);
 }
 
 InstFakeUse::InstFakeUse(Cfg *Func, Variable *Src)
-    : Inst(Func, Inst::FakeUse, 1, NULL) {
+    : InstHighLevel(Func, Inst::FakeUse, 1, NULL) {
   assert(Src);
   addSource(Src);
 }
 
 InstFakeKill::InstFakeKill(Cfg *Func, const VarList &KilledRegs,
                            const Inst *Linked)
-    : Inst(Func, Inst::FakeKill, KilledRegs.size(), NULL), Linked(Linked) {
+    : InstHighLevel(Func, Inst::FakeKill, KilledRegs.size(), NULL),
+      Linked(Linked) {
   for (VarList::const_iterator I = KilledRegs.begin(), E = KilledRegs.end();
        I != E; ++I) {
     Variable *Var = *I;
@@ -449,12 +451,6 @@
   Str << "\n";
 }
 
-void Inst::emit(const Cfg * /*Func*/) const {
-  llvm_unreachable("emit() called on a non-lowered instruction");
-}
-
-void Inst::emitIAS(const Cfg *Func) const { emit(Func); }
-
 void Inst::dump(const Cfg *Func) const {
   Ostream &Str = Func->getContext()->getStrDump();
   dumpDest(Func);
@@ -754,6 +750,4 @@
   Inst::dump(Func);
 }
 
-void InstTarget::dumpExtras(const Cfg *Func) const { Inst::dumpExtras(Func); }
-
 } // end of namespace Ice