Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(22)

Unified Diff: src/IceInstX8632.cpp

Issue 686913005: Turn off dump/emit routines when building minimal subzero. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Fix nits. Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/IceInstX8632.cpp
diff --git a/src/IceInstX8632.cpp b/src/IceInstX8632.cpp
index 7ebf187a37bb92d79806245ed530dad5896ea58a..3da2aa2950dcc64b12f0d2f0b4d6bc9f82db0fbd 100644
--- a/src/IceInstX8632.cpp
+++ b/src/IceInstX8632.cpp
@@ -343,12 +343,16 @@ InstX8632Xchg::InstX8632Xchg(Cfg *Func, Operand *Dest, Variable *Source)
// ======================== Dump routines ======================== //
void InstX8632::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
Str << "[X8632] ";
Inst::dump(Func);
}
void InstX8632Label::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
Str << getName(Func) << ":";
}
@@ -359,11 +363,15 @@ void InstX8632Label::emitIAS(const Cfg *Func) const {
}
void InstX8632Label::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
Str << getName(Func) << ":";
}
void InstX8632Br::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
Str << "\t";
@@ -420,6 +428,8 @@ void InstX8632Br::emitIAS(const Cfg *Func) const {
}
void InstX8632Br::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
Str << "br ";
@@ -441,6 +451,8 @@ void InstX8632Br::dump(const Cfg *Func) const {
}
void InstX8632Call::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 1);
Str << "\tcall\t";
@@ -489,6 +501,8 @@ void InstX8632Call::emitIAS(const Cfg *Func) const {
}
void InstX8632Call::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
if (getDest()) {
dumpDest(Func);
@@ -504,6 +518,8 @@ void InstX8632Call::dump(const Cfg *Func) const {
// template issues.
void emitTwoAddress(const char *Opcode, const Inst *Inst, const Cfg *Func,
bool ShiftHack) {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(Inst->getSrcSize() == 2);
Variable *Dest = Inst->getDest();
@@ -1036,6 +1052,8 @@ const x86::AssemblerX86::XmmEmitterShiftOp InstX8632Psra::Emitter = {
&x86::AssemblerX86::psra};
template <> void InstX8632Sqrtss::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 1);
Type Ty = getSrc(0)->getType();
@@ -1047,6 +1065,8 @@ template <> void InstX8632Sqrtss::emit(const Cfg *Func) const {
}
template <> void InstX8632Addss::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
char buf[30];
snprintf(buf, llvm::array_lengthof(buf), "add%s",
TypeX8632Attributes[getDest()->getType()].SdSsString);
@@ -1054,6 +1074,8 @@ template <> void InstX8632Addss::emit(const Cfg *Func) const {
}
template <> void InstX8632Padd::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
char buf[30];
snprintf(buf, llvm::array_lengthof(buf), "padd%s",
TypeX8632Attributes[getDest()->getType()].PackString);
@@ -1061,6 +1083,8 @@ template <> void InstX8632Padd::emit(const Cfg *Func) const {
}
template <> void InstX8632Pmull::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
char buf[30];
bool TypesAreValid = getDest()->getType() == IceType_v4i32 ||
getDest()->getType() == IceType_v8i16;
@@ -1094,6 +1118,8 @@ template <> void InstX8632Pmull::emitIAS(const Cfg *Func) const {
}
template <> void InstX8632Subss::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
char buf[30];
snprintf(buf, llvm::array_lengthof(buf), "sub%s",
TypeX8632Attributes[getDest()->getType()].SdSsString);
@@ -1101,6 +1127,8 @@ template <> void InstX8632Subss::emit(const Cfg *Func) const {
}
template <> void InstX8632Psub::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
char buf[30];
snprintf(buf, llvm::array_lengthof(buf), "psub%s",
TypeX8632Attributes[getDest()->getType()].PackString);
@@ -1108,6 +1136,8 @@ template <> void InstX8632Psub::emit(const Cfg *Func) const {
}
template <> void InstX8632Mulss::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
char buf[30];
snprintf(buf, llvm::array_lengthof(buf), "mul%s",
TypeX8632Attributes[getDest()->getType()].SdSsString);
@@ -1115,12 +1145,16 @@ template <> void InstX8632Mulss::emit(const Cfg *Func) const {
}
template <> void InstX8632Pmuludq::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
assert(getSrc(0)->getType() == IceType_v4i32 &&
getSrc(1)->getType() == IceType_v4i32);
emitTwoAddress(Opcode, this, Func);
}
template <> void InstX8632Divss::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
char buf[30];
snprintf(buf, llvm::array_lengthof(buf), "div%s",
TypeX8632Attributes[getDest()->getType()].SdSsString);
@@ -1128,6 +1162,8 @@ template <> void InstX8632Divss::emit(const Cfg *Func) const {
}
template <> void InstX8632Div::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 3);
Operand *Src1 = getSrc(1);
@@ -1145,6 +1181,8 @@ template <> void InstX8632Div::emitIAS(const Cfg *Func) const {
}
template <> void InstX8632Idiv::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 3);
Operand *Src1 = getSrc(1);
@@ -1166,6 +1204,8 @@ namespace {
// pblendvb and blendvps take xmm0 as a final implicit argument.
void emitVariableBlendInst(const char *Opcode, const Inst *Inst,
const Cfg *Func) {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(Inst->getSrcSize() == 3);
assert(llvm::cast<Variable>(Inst->getSrc(2))->getRegNum() ==
@@ -1190,6 +1230,8 @@ emitIASVariableBlendInst(const Inst *Inst, const Cfg *Func,
} // end anonymous namespace
template <> void InstX8632Blendvps::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
assert(static_cast<TargetX8632 *>(Func->getTarget())->getInstructionSet() >=
TargetX8632::SSE4_1);
emitVariableBlendInst(Opcode, this, Func);
@@ -1204,6 +1246,8 @@ template <> void InstX8632Blendvps::emitIAS(const Cfg *Func) const {
}
template <> void InstX8632Pblendvb::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
assert(static_cast<TargetX8632 *>(Func->getTarget())->getInstructionSet() >=
TargetX8632::SSE4_1);
emitVariableBlendInst(Opcode, this, Func);
@@ -1218,6 +1262,8 @@ template <> void InstX8632Pblendvb::emitIAS(const Cfg *Func) const {
}
template <> void InstX8632Imul::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 2);
Variable *Dest = getDest();
@@ -1280,6 +1326,8 @@ template <> void InstX8632Insertps::emitIAS(const Cfg *Func) const {
}
template <> void InstX8632Cbwdq::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 1);
Operand *Src0 = getSrc(0);
@@ -1330,6 +1378,8 @@ template <> void InstX8632Cbwdq::emitIAS(const Cfg *Func) const {
}
void InstX8632Mul::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 2);
assert(llvm::isa<Variable>(getSrc(0)));
@@ -1352,6 +1402,8 @@ void InstX8632Mul::emitIAS(const Cfg *Func) const {
}
void InstX8632Mul::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
dumpDest(Func);
Str << " = mul." << getDest()->getType() << " ";
@@ -1359,6 +1411,8 @@ void InstX8632Mul::dump(const Cfg *Func) const {
}
void InstX8632Shld::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
Variable *Dest = getDest();
assert(getSrcSize() == 3);
@@ -1389,6 +1443,8 @@ void InstX8632Shld::emitIAS(const Cfg *Func) const {
}
void InstX8632Shld::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
dumpDest(Func);
Str << " = shld." << getDest()->getType() << " ";
@@ -1396,6 +1452,8 @@ void InstX8632Shld::dump(const Cfg *Func) const {
}
void InstX8632Shrd::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
Variable *Dest = getDest();
assert(getSrcSize() == 3);
@@ -1426,6 +1484,8 @@ void InstX8632Shrd::emitIAS(const Cfg *Func) const {
}
void InstX8632Shrd::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
dumpDest(Func);
Str << " = shrd." << getDest()->getType() << " ";
@@ -1433,6 +1493,8 @@ void InstX8632Shrd::dump(const Cfg *Func) const {
}
void InstX8632Cmov::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
Variable *Dest = getDest();
Str << "\t";
@@ -1459,6 +1521,8 @@ void InstX8632Cmov::emitIAS(const Cfg *Func) const {
}
void InstX8632Cmov::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
Str << "cmov" << InstX8632BrAttributes[Condition].DisplayString << ".";
Str << getDest()->getType() << " ";
@@ -1468,6 +1532,8 @@ void InstX8632Cmov::dump(const Cfg *Func) const {
}
void InstX8632Cmpps::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 2);
assert(Condition < CondX86::Cmpps_Invalid);
@@ -1499,6 +1565,8 @@ void InstX8632Cmpps::emitIAS(const Cfg *Func) const {
}
void InstX8632Cmpps::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
assert(Condition < CondX86::Cmpps_Invalid);
dumpDest(Func);
@@ -1508,6 +1576,8 @@ void InstX8632Cmpps::dump(const Cfg *Func) const {
}
void InstX8632Cmpxchg::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 3);
if (Locked) {
@@ -1538,6 +1608,8 @@ void InstX8632Cmpxchg::emitIAS(const Cfg *Func) const {
}
void InstX8632Cmpxchg::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
if (Locked) {
Str << "lock ";
@@ -1547,6 +1619,8 @@ void InstX8632Cmpxchg::dump(const Cfg *Func) const {
}
void InstX8632Cmpxchg8b::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 5);
if (Locked) {
@@ -1569,6 +1643,8 @@ void InstX8632Cmpxchg8b::emitIAS(const Cfg *Func) const {
}
void InstX8632Cmpxchg8b::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
if (Locked) {
Str << "lock ";
@@ -1578,6 +1654,8 @@ void InstX8632Cmpxchg8b::dump(const Cfg *Func) const {
}
void InstX8632Cvt::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 1);
Str << "\tcvt";
@@ -1650,6 +1728,8 @@ void InstX8632Cvt::emitIAS(const Cfg *Func) const {
}
void InstX8632Cvt::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
dumpDest(Func);
Str << " = cvt";
@@ -1661,6 +1741,8 @@ void InstX8632Cvt::dump(const Cfg *Func) const {
}
void InstX8632Icmp::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 2);
Str << "\tcmp" << getWidthString(getSrc(0)->getType()) << "\t";
@@ -1690,12 +1772,16 @@ void InstX8632Icmp::emitIAS(const Cfg *Func) const {
}
void InstX8632Icmp::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
Str << "cmp." << getSrc(0)->getType() << " ";
dumpSources(Func);
}
void InstX8632Ucomiss::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 2);
Str << "\tucomi" << TypeX8632Attributes[getSrc(0)->getType()].SdSsString
@@ -1719,12 +1805,16 @@ void InstX8632Ucomiss::emitIAS(const Cfg *Func) const {
}
void InstX8632Ucomiss::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
Str << "ucomiss." << getSrc(0)->getType() << " ";
dumpSources(Func);
}
void InstX8632UD2::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 0);
Str << "\tud2";
@@ -1736,11 +1826,15 @@ void InstX8632UD2::emitIAS(const Cfg *Func) const {
}
void InstX8632UD2::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
Str << "ud2\n";
}
void InstX8632Test::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 2);
Str << "\ttest" << getWidthString(getSrc(0)->getType()) << "\t";
@@ -1771,12 +1865,16 @@ void InstX8632Test::emitIAS(const Cfg *Func) const {
}
void InstX8632Test::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
Str << "test." << getSrc(0)->getType() << " ";
dumpSources(Func);
}
void InstX8632Mfence::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 0);
Str << "\tmfence";
@@ -1788,11 +1886,15 @@ void InstX8632Mfence::emitIAS(const Cfg *Func) const {
}
void InstX8632Mfence::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
Str << "mfence\n";
}
void InstX8632Store::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 2);
Type Ty = getSrc(0)->getType();
@@ -1834,6 +1936,8 @@ void InstX8632Store::emitIAS(const Cfg *Func) const {
}
void InstX8632Store::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
Str << "mov." << getSrc(0)->getType() << " ";
getSrc(1)->dump(Func);
@@ -1842,6 +1946,8 @@ void InstX8632Store::dump(const Cfg *Func) const {
}
void InstX8632StoreP::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 2);
Str << "\tmovups\t";
@@ -1862,6 +1968,8 @@ void InstX8632StoreP::emitIAS(const Cfg *Func) const {
}
void InstX8632StoreP::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
Str << "storep." << getSrc(0)->getType() << " ";
getSrc(1)->dump(Func);
@@ -1870,6 +1978,8 @@ void InstX8632StoreP::dump(const Cfg *Func) const {
}
void InstX8632StoreQ::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 2);
assert(getSrc(1)->getType() == IceType_i64 ||
@@ -1892,6 +2002,8 @@ void InstX8632StoreQ::emitIAS(const Cfg *Func) const {
}
void InstX8632StoreQ::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
Str << "storeq." << getSrc(0)->getType() << " ";
getSrc(1)->dump(Func);
@@ -1900,6 +2012,8 @@ void InstX8632StoreQ::dump(const Cfg *Func) const {
}
template <> void InstX8632Lea::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 1);
assert(getDest()->hasReg());
@@ -1918,6 +2032,8 @@ template <> void InstX8632Lea::emit(const Cfg *Func) const {
}
template <> void InstX8632Mov::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 1);
Operand *Src = getSrc(0);
@@ -2046,6 +2162,8 @@ template <> void InstX8632Movd::emitIAS(const Cfg *Func) const {
}
template <> void InstX8632Movp::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
// TODO(wala,stichnot): movups works with all vector operands, but
// there exist other instructions (movaps, movdqa, movdqu) that may
// perform better, depending on the data type and alignment of the
@@ -2071,6 +2189,8 @@ template <> void InstX8632Movp::emitIAS(const Cfg *Func) const {
}
template <> void InstX8632Movq::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 1);
assert(getDest()->getType() == IceType_i64 ||
@@ -2130,6 +2250,8 @@ template <> void InstX8632Movzx::emitIAS(const Cfg *Func) const {
}
void InstX8632Nop::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
// TODO: Emit the right code for each variant.
Str << "\tnop\t# variant = " << Variant;
@@ -2142,11 +2264,15 @@ void InstX8632Nop::emitIAS(const Cfg *Func) const {
}
void InstX8632Nop::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
Str << "nop (variant = " << Variant << ")";
}
void InstX8632Fld::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 1);
Type Ty = getSrc(0)->getType();
@@ -2200,12 +2326,16 @@ void InstX8632Fld::emitIAS(const Cfg *Func) const {
}
void InstX8632Fld::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
Str << "fld." << getSrc(0)->getType() << " ";
dumpSources(Func);
}
void InstX8632Fstp::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 0);
// TODO(jvoung,stichnot): Utilize this by setting Dest to nullptr to
@@ -2269,6 +2399,8 @@ void InstX8632Fstp::emitIAS(const Cfg *Func) const {
}
void InstX8632Fstp::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
dumpDest(Func);
Str << " = fstp." << getDest()->getType() << ", st(0)";
@@ -2276,6 +2408,8 @@ void InstX8632Fstp::dump(const Cfg *Func) const {
}
template <> void InstX8632Pcmpeq::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
char buf[30];
snprintf(buf, llvm::array_lengthof(buf), "pcmpeq%s",
TypeX8632Attributes[getDest()->getType()].PackString);
@@ -2283,6 +2417,8 @@ template <> void InstX8632Pcmpeq::emit(const Cfg *Func) const {
}
template <> void InstX8632Pcmpgt::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
char buf[30];
snprintf(buf, llvm::array_lengthof(buf), "pcmpgt%s",
TypeX8632Attributes[getDest()->getType()].PackString);
@@ -2290,6 +2426,8 @@ template <> void InstX8632Pcmpgt::emit(const Cfg *Func) const {
}
template <> void InstX8632Pextr::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 2);
// pextrb and pextrd are SSE4.1 instructions.
@@ -2334,6 +2472,8 @@ template <> void InstX8632Pextr::emitIAS(const Cfg *Func) const {
}
template <> void InstX8632Pinsr::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 3);
// pinsrb and pinsrd are SSE4.1 instructions.
@@ -2407,6 +2547,8 @@ template <> void InstX8632Shufps::emitIAS(const Cfg *Func) const {
}
void InstX8632Pop::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 0);
Str << "\tpop\t";
@@ -2425,12 +2567,16 @@ void InstX8632Pop::emitIAS(const Cfg *Func) const {
}
void InstX8632Pop::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
dumpDest(Func);
Str << " = pop." << getDest()->getType() << " ";
}
void InstX8632AdjustStack::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
Str << "\tsubl\t$" << Amount << ", %esp";
Func->getTarget()->updateStackAdjustment(Amount);
@@ -2443,11 +2589,15 @@ void InstX8632AdjustStack::emitIAS(const Cfg *Func) const {
}
void InstX8632AdjustStack::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
Str << "esp = sub.i32 esp, " << Amount;
}
void InstX8632Push::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(getSrcSize() == 1);
// Push is currently only used for saving GPRs.
@@ -2467,12 +2617,16 @@ void InstX8632Push::emitIAS(const Cfg *Func) const {
}
void InstX8632Push::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
Str << "push." << getSrc(0)->getType() << " ";
dumpSources(Func);
}
template <> void InstX8632Psll::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
assert(getDest()->getType() == IceType_v8i16 ||
getDest()->getType() == IceType_v8i1 ||
getDest()->getType() == IceType_v4i32 ||
@@ -2484,6 +2638,8 @@ template <> void InstX8632Psll::emit(const Cfg *Func) const {
}
template <> void InstX8632Psra::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
assert(getDest()->getType() == IceType_v8i16 ||
getDest()->getType() == IceType_v8i1 ||
getDest()->getType() == IceType_v4i32 ||
@@ -2495,6 +2651,8 @@ template <> void InstX8632Psra::emit(const Cfg *Func) const {
}
void InstX8632Ret::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
Str << "\tret";
}
@@ -2505,6 +2663,8 @@ void InstX8632Ret::emitIAS(const Cfg *Func) const {
}
void InstX8632Ret::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
Type Ty = (getSrcSize() == 0 ? IceType_void : getSrc(0)->getType());
Str << "ret." << Ty << " ";
@@ -2512,6 +2672,8 @@ void InstX8632Ret::dump(const Cfg *Func) const {
}
void InstX8632Xadd::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
if (Locked) {
Str << "\tlock";
@@ -2540,6 +2702,8 @@ void InstX8632Xadd::emitIAS(const Cfg *Func) const {
}
void InstX8632Xadd::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
if (Locked) {
Str << "lock ";
@@ -2550,6 +2714,8 @@ void InstX8632Xadd::dump(const Cfg *Func) const {
}
void InstX8632Xchg::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
Str << "\txchg" << getWidthString(getSrc(0)->getType()) << "\t";
getSrc(1)->emit(Func);
@@ -2572,6 +2738,8 @@ void InstX8632Xchg::emitIAS(const Cfg *Func) const {
}
void InstX8632Xchg::dump(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrDump();
Type Ty = getSrc(0)->getType();
Str << "xchg." << Ty << " ";
@@ -2579,6 +2747,8 @@ void InstX8632Xchg::dump(const Cfg *Func) const {
}
void OperandX8632Mem::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
if (SegmentReg != DefaultSegment) {
assert(SegmentReg >= 0 && SegmentReg < SegReg_NUM);
@@ -2613,6 +2783,8 @@ void OperandX8632Mem::emit(const Cfg *Func) const {
}
void OperandX8632Mem::dump(const Cfg *Func, Ostream &Str) const {
+ if (!ALLOW_DUMP)
+ return;
if (SegmentReg != DefaultSegment) {
assert(SegmentReg >= 0 && SegmentReg < SegReg_NUM);
Str << InstX8632SegmentRegNames[SegmentReg] << ":";
@@ -2712,6 +2884,8 @@ x86::Address VariableSplit::toAsmAddress(const Cfg *Func) const {
}
void VariableSplit::emit(const Cfg *Func) const {
+ if (!ALLOW_DUMP)
+ return;
Ostream &Str = Func->getContext()->getStrEmit();
assert(!Var->hasReg());
// The following is copied/adapted from TargetX8632::emitVariable().
@@ -2725,6 +2899,8 @@ void VariableSplit::emit(const Cfg *Func) const {
}
void VariableSplit::dump(const Cfg *Func, Ostream &Str) const {
+ if (!ALLOW_DUMP)
+ return;
switch (Part) {
case Low:
Str << "low";
« no previous file with comments | « src/IceInstX8632.h ('k') | src/IceOperand.h » ('j') | tests_lit/reader_tests/alloca.ll » ('J')

Powered by Google App Engine
This is Rietveld 408576698