Bug 1173764 - Disable JitSpew argument computation in optimizied builds. r=bhackett

This commit is contained in:
Nicolas B. Pierron 2015-06-19 15:17:25 +02:00
parent 801fa6e99f
commit 7d29cabdbd
6 changed files with 18 additions and 9 deletions

View File

@ -1401,13 +1401,13 @@ BacktrackingAllocator::tryAllocateRegister(PhysicalRegister& r, LiveBundle* bund
if (JitSpewEnabled(JitSpew_RegAlloc)) {
if (aliasedConflicting.length() == 1) {
LiveBundle* existing = aliasedConflicting[0];
mozilla::DebugOnly<LiveBundle*> existing = aliasedConflicting[0];
JitSpew(JitSpew_RegAlloc, " %s collides with %s [weight %lu]",
r.reg.name(), existing->toString(), computeSpillWeight(existing));
} else {
JitSpew(JitSpew_RegAlloc, " %s collides with the following", r.reg.name());
for (size_t i = 0; i < aliasedConflicting.length(); i++) {
LiveBundle* existing = aliasedConflicting[i];
mozilla::DebugOnly<LiveBundle*> existing = aliasedConflicting[i];
JitSpew(JitSpew_RegAlloc, " %s [weight %lu]",
existing->toString(), computeSpillWeight(existing));
}

View File

@ -1412,7 +1412,7 @@ jit::BailoutIonToBaseline(JSContext* cx, JitActivation* activation, JitFrameIter
// Entry - Interpreter or other calling into Ion.
// Rectifier - Arguments rectifier calling into Ion.
MOZ_ASSERT(iter.isBailoutJS());
FrameType prevFrameType = iter.prevType();
mozilla::DebugOnly<FrameType> prevFrameType = iter.prevType();
MOZ_ASSERT(prevFrameType == JitFrame_IonJS ||
prevFrameType == JitFrame_BaselineStub ||
prevFrameType == JitFrame_Entry ||

View File

@ -285,6 +285,7 @@ CollectInterpreterStackScripts(JSContext* cx, const Debugger::ExecutionObservabl
return true;
}
#ifdef DEBUG
static const char*
ICEntryKindToString(ICEntry::Kind kind)
{
@ -309,6 +310,7 @@ ICEntryKindToString(ICEntry::Kind kind)
MOZ_CRASH("bad ICEntry kind");
}
}
#endif // DEBUG
static void
SpewPatchBaselineFrame(uint8_t* oldReturnAddress, uint8_t* newReturnAddress,

View File

@ -217,12 +217,17 @@ class JitSpewIndent
~JitSpewIndent() {}
};
static inline void JitSpew(JitSpewChannel, const char* fmt, ...)
{ }
static inline void JitSpewStart(JitSpewChannel channel, const char* fmt, ...)
{ }
static inline void JitSpewCont(JitSpewChannel channel, const char* fmt, ...)
// The computation of some of the argument of the spewing functions might be
// costly, thus we use variaidic macros to ignore any argument of these
// functions.
static inline void JitSpewCheckArguments(JitSpewChannel channel, const char* fmt)
{ }
#define JitSpewCheckExpandedArgs(channel, fmt, ...) JitSpewCheckArguments(channel, fmt)
#define JitSpew(...) JitSpewCheckExpandedArgs(__VA_ARGS__)
#define JitSpewStart(...) JitSpewCheckExpandedArgs(__VA_ARGS__)
#define JitSpewCont(...) JitSpewCheckExpandedArgs(__VA_ARGS__)
static inline void JitSpewFin(JitSpewChannel channel)
{ }

View File

@ -1295,7 +1295,7 @@ JitcodeRegionEntry::WriteRun(CompactBufferWriter& writer,
uint32_t curBc = curBytecodeOffset;
while (curBc < nextBytecodeOffset) {
jsbytecode* pc = entry[i].tree->script()->offsetToPC(curBc);
JSOp op = JSOp(*pc);
mozilla::DebugOnly<JSOp> op = JSOp(*pc);
JitSpewCont(JitSpew_Profiling, "%s ", js_CodeName[op]);
curBc += GetBytecodeLength(pc);
}

View File

@ -117,7 +117,9 @@ MResumePoint::writeRecoverData(CompactBufferWriter& writer) const
// arguments_object.
MOZ_ASSERT(CountArgSlots(script, fun) < SNAPSHOT_MAX_NARGS + 4);
#ifdef DEBUG
uint32_t implicit = StartArgSlot(script);
#endif
uint32_t formalArgs = CountArgSlots(script, fun);
uint32_t nallocs = formalArgs + script->nfixed() + exprStack;