SpiderMonkey: Cancel GCC compilation noise. no bug r=jandem
authorNicolas B. Pierron <nicolas.b.pierron@mozilla.com>
Wed, 05 Dec 2012 01:38:39 -0800
changeset 115036 b6b2744cbe217ad65e7d2b57b187957e9e95b987
parent 115035 88986a16df5bcb41f253d8e49d00f637b22843dc
child 115037 ab23919fe63635dfe39030c3468792d3a2a8aa71
push id23951
push useremorley@mozilla.com
push dateWed, 05 Dec 2012 15:27:45 +0000
treeherdermozilla-central@56f34c1cc509 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjandem
milestone20.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
SpiderMonkey: Cancel GCC compilation noise. no bug r=jandem
js/src/ion/Ion.cpp
js/src/ion/shared/CodeGenerator-x86-shared.cpp
js/src/jsclone.cpp
js/src/jsinfer.cpp
js/src/jsobjinlines.h
js/src/jsworkers.cpp
--- a/js/src/ion/Ion.cpp
+++ b/js/src/ion/Ion.cpp
@@ -1850,22 +1850,21 @@ ion::Invalidate(types::TypeCompartment &
     for (IonActivationIterator iter(fop->runtime()); iter.more(); ++iter)
         InvalidateActivation(fop, iter.top(), false);
 
     // Drop the references added above. If a script was never active, its
     // IonScript will be immediately destroyed. Otherwise, it will be held live
     // until its last invalidated frame is destroyed.
     for (size_t i = 0; i < invalid.length(); i++) {
         types::CompilerOutput &co = *invalid[i].compilerOutput(types);
-        ExecutionMode executionMode;
+        ExecutionMode executionMode = SequentialExecution;
         switch (co.kind()) {
           case types::CompilerOutput::MethodJIT:
             continue;
           case types::CompilerOutput::Ion:
-            executionMode = SequentialExecution;
             break;
           case types::CompilerOutput::ParallelIon:
             executionMode = ParallelExecution;
             break;
         }
         JS_ASSERT(co.isValid());
         JSScript *script = co.script;
         IonScript *ionScript = GetIonScript(script, executionMode);
--- a/js/src/ion/shared/CodeGenerator-x86-shared.cpp
+++ b/js/src/ion/shared/CodeGenerator-x86-shared.cpp
@@ -570,17 +570,17 @@ CodeGeneratorX86Shared::visitSubI(LSubI 
 }
 
 bool
 CodeGeneratorX86Shared::visitOutOfLineUndoALUOperation(OutOfLineUndoALUOperation *ool)
 {
     LInstruction *ins = ool->ins();
     Register reg = ToRegister(ins->getDef(0));
 
-    LAllocation *lhs = ins->getOperand(0);
+    mozilla::DebugOnly<LAllocation *> lhs = ins->getOperand(0);
     LAllocation *rhs = ins->getOperand(1);
 
     JS_ASSERT(reg == ToRegister(lhs));
     JS_ASSERT_IF(rhs->isGeneralReg(), reg != ToRegister(rhs));
 
     // Undo the effect of the ALU operation, which was performed on the output
     // register and overflowed. Writing to the output register clobbered an
     // input reg, and the original value of the input needs to be recovered
--- a/js/src/jsclone.cpp
+++ b/js/src/jsclone.cpp
@@ -202,26 +202,28 @@ SCInput::SCInput(JSContext *cx, uint64_t
 {
     JS_ASSERT((uintptr_t(data) & 7) == 0);
     JS_ASSERT((nbytes & 7) == 0);
 }
 
 bool
 SCInput::read(uint64_t *p)
 {
-    if (point == end)
+    if (point == end) {
+        *p = 0;  /* initialize to shut GCC up */
         return eof();
+    }
     *p = SwapBytes(*point++);
     return true;
 }
 
 bool
 SCInput::readPair(uint32_t *tagp, uint32_t *datap)
 {
-    uint64_t u = 0;     /* initialize to shut GCC up */
+    uint64_t u;
     bool ok = read(&u);
     if (ok) {
         *tagp = uint32_t(u >> 32);
         *datap = uint32_t(u);
     }
     return ok;
 }
 
--- a/js/src/jsinfer.cpp
+++ b/js/src/jsinfer.cpp
@@ -6144,18 +6144,17 @@ TypeCompartment::sweep(FreeOp *fop)
     /*
      * Iterate through the array/object type tables and remove all entries
      * referencing collected data. These tables only hold weak references.
      */
 
     if (arrayTypeTable) {
         for (ArrayTypeTable::Enum e(*arrayTypeTable); !e.empty(); e.popFront()) {
             const ArrayTableKey &key = e.front().key;
-            TypeObject *obj = e.front().value;
-            JS_ASSERT(obj->proto == key.proto);
+            JS_ASSERT(e.front().value->proto == key.proto);
             JS_ASSERT(!key.type.isSingleObject());
 
             bool remove = false;
             TypeObject *typeObject = NULL;
             if (key.type.isTypeObject()) {
                 typeObject = key.type.typeObject();
                 if (IsTypeObjectAboutToBeFinalized(&typeObject))
                     remove = true;
--- a/js/src/jsobjinlines.h
+++ b/js/src/jsobjinlines.h
@@ -923,18 +923,20 @@ JSObject::finish(js::FreeOp *fop)
 
 /* static */ inline bool
 JSObject::hasProperty(JSContext *cx, js::HandleObject obj,
                       js::HandleId id, bool *foundp, unsigned flags)
 {
     js::RootedObject pobj(cx);
     js::RootedShape prop(cx);
     JSAutoResolveFlags rf(cx, flags);
-    if (!lookupGeneric(cx, obj, id, &pobj, &prop))
+    if (!lookupGeneric(cx, obj, id, &pobj, &prop)) {
+        *foundp = false;  /* initialize to shut GCC up */
         return false;
+    }
     *foundp = !!prop;
     return true;
 }
 
 inline bool
 JSObject::isCallable()
 {
     return isFunction() || getClass()->call;
--- a/js/src/jsworkers.cpp
+++ b/js/src/jsworkers.cpp
@@ -310,17 +310,17 @@ WorkerThread::threadLoop()
                 state.unlock();
                 return;
             }
             state.wait(WorkerThreadState::WORKER);
         }
 
         ionBuilder = state.ionWorklist.popCopy();
 
-        ion::ExecutionMode executionMode = ionBuilder->info().executionMode();
+        DebugOnly<ion::ExecutionMode> executionMode = ionBuilder->info().executionMode();
         JS_ASSERT(GetIonScript(ionBuilder->script().unsafeGet(), executionMode) == ION_COMPILING_SCRIPT);
 
         state.unlock();
 
         {
             ion::IonContext ictx(NULL, ionBuilder->script()->compartment(), &ionBuilder->temp());
             ionBuilder->setBackgroundCodegen(ion::CompileBackEnd(ionBuilder));
         }