Subzero: Try to fix warnings and errors in the Windows build.
Quiet some unused-variable warnings when their only use is in an assert().
Forward-declare partial template specializations when the template method already has a default implementation, to avoid ODR violations and link errors.
BUG= https://codereview.chromium.org/296053008/
R=wala@chromium.org
Review URL: https://codereview.chromium.org/429993002
diff --git a/src/IceTargetLoweringX8632.cpp b/src/IceTargetLoweringX8632.cpp
index cc6f222..72e9a05 100644
--- a/src/IceTargetLoweringX8632.cpp
+++ b/src/IceTargetLoweringX8632.cpp
@@ -115,6 +115,7 @@
Type getInVectorElementType(Type Ty) {
assert(isVectorType(Ty));
size_t Index = static_cast<size_t>(Ty);
+ (void)Index;
assert(Index < TableTypeX8632AttributesSize);
return TableTypeX8632Attributes[Ty].InVectorElementType;
}
@@ -2051,6 +2052,7 @@
Operand *Src0RM = legalize(Src0, Legal_Reg | Legal_Mem);
Type DestType = Dest->getType();
Type SrcType = Src0RM->getType();
+ (void)DestType;
assert((DestType == IceType_i32 && SrcType == IceType_f32) ||
(DestType == IceType_f32 && SrcType == IceType_i32));
// a.i32 = bitcast b.f32 ==>
@@ -2751,8 +2753,8 @@
// Make sure the atomic load isn't elided when unused, by adding a FakeUse.
// Since lowerLoad may fuse the load w/ an arithmetic instruction,
// insert the FakeUse on the last-inserted instruction's dest.
- Context.insert(InstFakeUse::create(Func,
- Context.getLastInserted()->getDest()));
+ Context.insert(
+ InstFakeUse::create(Func, Context.getLastInserted()->getDest()));
return;
}
case Intrinsics::AtomicRMW:
@@ -3144,6 +3146,7 @@
return;
}
// Otherwise, we need a cmpxchg loop.
+ (void)NeedsCmpxchg;
assert(NeedsCmpxchg);
expandAtomicRMWAsCmpxchg(Op_Lo, Op_Hi, Dest, Ptr, Val);
}