Bug 869234 - No need for barriers on the LIR constant pool. r=bhackett
authorTerrence Cole <terrence@mozilla.com>
Wed, 08 May 2013 11:45:22 -0700
changeset 142232 3dea7cce5f643439fb5b6f5974a32305014970d0
parent 142231 25bce82749bc1934b8131e70613a4231584951b9
child 142233 b1041ccc5475c07c1f5aaa65272ace5609dfe58c
push id2579
push userakeybl@mozilla.com
push dateMon, 24 Jun 2013 18:52:47 +0000
treeherdermozilla-beta@b69b7de8a05a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbhackett
bugs869234
milestone23.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
Bug 869234 - No need for barriers on the LIR constant pool. r=bhackett
js/src/ion/Ion.cpp
js/src/ion/IonCode.h
js/src/ion/LIR.h
--- a/js/src/ion/Ion.cpp
+++ b/js/src/ion/Ion.cpp
@@ -718,17 +718,17 @@ IonScript::copySafepoints(const Safepoin
 
 void
 IonScript::copyBailoutTable(const SnapshotOffset *table)
 {
     memcpy(bailoutTable(), table, bailoutEntries_ * sizeof(uint32_t));
 }
 
 void
-IonScript::copyConstants(const HeapValue *vp)
+IonScript::copyConstants(const Value *vp)
 {
     for (size_t i = 0; i < constantEntries_; i++)
         constants()[i].init(vp[i]);
 }
 
 void
 IonScript::copyScriptEntries(JSScript **scripts)
 {
--- a/js/src/ion/IonCode.h
+++ b/js/src/ion/IonCode.h
@@ -443,17 +443,17 @@ struct IonScript
     size_t runtimeSize() const {
         return runtimeSize_;
     }
     void toggleBarriers(bool enabled);
     void purgeCaches(JS::Zone *zone);
     void destroyCaches();
     void copySnapshots(const SnapshotWriter *writer);
     void copyBailoutTable(const SnapshotOffset *table);
-    void copyConstants(const HeapValue *vp);
+    void copyConstants(const Value *vp);
     void copySafepointIndices(const SafepointIndex *firstSafepointIndex, MacroAssembler &masm);
     void copyOsiIndices(const OsiIndex *firstOsiIndex, MacroAssembler &masm);
     void copyRuntimeData(const uint8_t *data);
     void copyCacheEntries(const uint32_t *caches, MacroAssembler &masm);
     void copySafepoints(const SafepointWriter *writer);
     void copyScriptEntries(JSScript **scripts);
     void copyCallTargetEntries(JSScript **callTargets);
 
--- a/js/src/ion/LIR.h
+++ b/js/src/ion/LIR.h
@@ -1251,17 +1251,17 @@ public:
     LAllocation *operator ->() const {
         return **this;
     }
 };
 
 class LIRGraph
 {
     Vector<LBlock *, 16, IonAllocPolicy> blocks_;
-    Vector<HeapValue, 0, IonAllocPolicy> constantPool_;
+    Vector<Value, 0, IonAllocPolicy> constantPool_;
     Vector<LInstruction *, 0, IonAllocPolicy> safepoints_;
     Vector<LInstruction *, 0, IonAllocPolicy> nonCallSafepoints_;
     uint32_t numVirtualRegisters_;
     uint32_t numInstructions_;
 
     // Number of stack slots needed for local spills.
     uint32_t localSlotCount_;
     // Number of stack slots needed for argument construction for calls.
@@ -1322,20 +1322,20 @@ class LIRGraph
     }
     uint32_t totalSlotCount() const {
         return localSlotCount() + (argumentSlotCount() * sizeof(Value) / STACK_SLOT_SIZE);
     }
     bool addConstantToPool(const Value &v, uint32_t *index);
     size_t numConstants() const {
         return constantPool_.length();
     }
-    HeapValue *constantPool() {
+    Value *constantPool() {
         return &constantPool_[0];
     }
-    const HeapValue &getConstant(size_t index) const {
+    const Value &getConstant(size_t index) const {
         return constantPool_[index];
     }
     void setEntrySnapshot(LSnapshot *snapshot) {
         JS_ASSERT(!entrySnapshot_);
         JS_ASSERT(snapshot->bailoutKind() == Bailout_Normal);
         snapshot->setBailoutKind(Bailout_ArgumentCheck);
         entrySnapshot_ = snapshot;
     }