platform/upstream/v8.git
9 years agoFix windows builder after fe9a16b6.
ulan [Tue, 26 May 2015 15:48:20 +0000 (08:48 -0700)]
Fix windows builder after fe9a16b6.

TBR=hpayer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1161623003

Cr-Commit-Position: refs/heads/master@{#28635}

9 years agoPPC: Move hash code from hidden string to a private symbol
mbrandy [Tue, 26 May 2015 15:44:47 +0000 (08:44 -0700)]
PPC: Move hash code from hidden string to a private symbol

Port eca5b5d7abc0a9028cb9832087fbf2ed59dadf92

Original commit message:
* Hash code is now just done with a private own symbol instead of the hidden string, which predates symbols.
* In the long run we should do all hidden properties this way and get rid of the
hidden magic 0-length string with the zero hash code.  The advantages include
less complexity and being able to do things from JS in a natural way.
* Initially, the performance of weak set regressed, because it's a little harder
to do the lookup in C++.  Instead of heroics in C++ to make things faster I
moved some functionality into JS and got the performance back. JS is supposed to be good at looking up named properties on objects.
* This also changes hash codes of Smis so that they are always Smis.

Performance figures are in the comments to the code review.  Summary: Most of js-perf-test/Collections is neutral.  Set and Map with object keys are 40-50% better.  WeakMap is -5% and WeakSet is +9%.  After the measurements, I fixed global proxies, which cost 1% on most tests and 5% on the weak ones :-(.

In the code review comments is a patch with an example of the heroics we could do in C++ to make lookup faster (I hope we don't have to do this.  Instead of checking for the property, then doing a new lookup to insert it, we could do one lookup and handle the addition immediately).  With the current benchmarks above this buys us nothing, but if we go back to doing more lookups in C++ instead of in stubs and JS then it's a win.

In a similar vein we could give the magic zero hash code to the hash code
symbol.  Then when we look up the hash code we would sometimes see the table
with all the hidden properties.  This dual use of the field for either the hash
code or the table with all hidden properties and the hash code is rather ugly,
and this CL gets rid of it.  I'd be loath to bring it back.  On the benchmarks quoted above it's slightly slower than moving the hash code lookup to JS like in this CL.

One worry is that the benchmark results above are more monomorphic than real
world code, so may be overstating the performance benefits of moving to JS.  I
think this is part of a general issue we have with handling polymorphic code in
JS and any solutions there will benefit this solution, which boils down to
regular property access. Any improvement there will lift all boats.

R=erikcorry@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

Review URL: https://codereview.chromium.org/1157123002

Cr-Commit-Position: refs/heads/master@{#28634}

9 years agoPPC: Move work to omit unnecessary ObjectLiteral stores to the numbering pass.
mbrandy [Tue, 26 May 2015 15:43:34 +0000 (08:43 -0700)]
PPC: Move work to omit unnecessary ObjectLiteral stores to the numbering pass.

Port 32de677805877bbf8d697926e09c23963a27e191

Original commit message:
The reason is that this information will be needed to compute the number of
vector ic slots done at numbering time.

R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

Review URL: https://codereview.chromium.org/1153113002

Cr-Commit-Position: refs/heads/master@{#28633}

9 years agoFix test-heap/OldSpaceAllocationCounter.
ulan [Tue, 26 May 2015 15:42:20 +0000 (08:42 -0700)]
Fix test-heap/OldSpaceAllocationCounter.

TBR=hpayer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1156113003

Cr-Commit-Position: refs/heads/master@{#28632}

9 years ago[test] Sync in *san configurations from chromium.
machenbach [Tue, 26 May 2015 14:51:35 +0000 (07:51 -0700)]
[test] Sync in *san configurations from chromium.

This configures *san in v8 just like in chromium's
common.gypi. I also addresses compilation problems with ICU
and usage of instrumented libc++.

TBR=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/1146863006

Cr-Commit-Position: refs/heads/master@{#28631}

9 years agoTemporary fix for test-heap/OldSpaceAllocationCounter.
ulan [Tue, 26 May 2015 13:51:48 +0000 (06:51 -0700)]
Temporary fix for test-heap/OldSpaceAllocationCounter.

TBR=hpayer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1155683006

Cr-Commit-Position: refs/heads/master@{#28630}

9 years ago[test] Correctly merge expected test outcomes.
machenbach [Tue, 26 May 2015 13:22:18 +0000 (06:22 -0700)]
[test] Correctly merge expected test outcomes.

Without this change, wildcards always overwrite the outcomes
of more specific rules. Now we always merge.

Review URL: https://codereview.chromium.org/1153073002

Cr-Commit-Position: refs/heads/master@{#28629}

9 years agoCorrectly hook up materialized receiver into the evaluation context chain.
yangguo [Tue, 26 May 2015 13:06:38 +0000 (06:06 -0700)]
Correctly hook up materialized receiver into the evaluation context chain.

R=ulan@chromium.org
BUG=chromium:491943
LOG=Y

Review URL: https://codereview.chromium.org/1157993002

Cr-Commit-Position: refs/heads/master@{#28628}

9 years agoTemporary auto-CC'ing hablich to x87 changes
hablich [Tue, 26 May 2015 13:05:25 +0000 (06:05 -0700)]
Temporary auto-CC'ing hablich to x87 changes

BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/1157993003

Cr-Commit-Position: refs/heads/master@{#28627}

9 years agoWhite space change after infra breakage.
Michael Achenbach [Tue, 26 May 2015 12:41:18 +0000 (14:41 +0200)]
White space change after infra breakage.

Cr-Commit-Position: refs/heads/master@{#28626}

9 years ago[turbofan] Connect loops to end via Terminate during graph building.
bmeurer [Tue, 26 May 2015 12:17:57 +0000 (05:17 -0700)]
[turbofan] Connect loops to end via Terminate during graph building.

This way we don't need to connect (potentially) non-terminating loops
later during control reduction, which saves one forward pass over the
control graph.  Long term we will move the trimming functionality of
the control reducer to the GraphReducer, and get rid of the Finish
method again.

As a bonus, this change also properly rewires Terminate, Throw and
Deoptimize during inlining.

R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/1155683004

Cr-Commit-Position: refs/heads/master@{#28625}

9 years ago[turbofan] Verify uses of Deoptimize and Return in graph.
mstarzinger [Tue, 26 May 2015 11:52:44 +0000 (04:52 -0700)]
[turbofan] Verify uses of Deoptimize and Return in graph.

R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/1153963006

Cr-Commit-Position: refs/heads/master@{#28624}

9 years agoAdd old generation allocation throughput computation.
ulan [Tue, 26 May 2015 11:51:18 +0000 (04:51 -0700)]
Add old generation allocation throughput computation.

BUG=chromium:492021
LOG=n

Review URL: https://codereview.chromium.org/1154873003

Cr-Commit-Position: refs/heads/master@{#28623}

9 years agoMove hash code from hidden string to a private symbol
erikcorry [Tue, 26 May 2015 11:26:26 +0000 (04:26 -0700)]
Move hash code from hidden string to a private symbol

* Hash code is now just done with a private own symbol instead of the hidden string, which predates symbols.
* In the long run we should do all hidden properties this way and get rid of the
hidden magic 0-length string with the zero hash code.  The advantages include
less complexity and being able to do things from JS in a natural way.
* Initially, the performance of weak set regressed, because it's a little harder
to do the lookup in C++.  Instead of heroics in C++ to make things faster I
moved some functionality into JS and got the performance back. JS is supposed to be good at looking up named properties on objects.
* This also changes hash codes of Smis so that they are always Smis.

Performance figures are in the comments to the code review.  Summary: Most of js-perf-test/Collections is neutral.  Set and Map with object keys are 40-50% better.  WeakMap is -5% and WeakSet is +9%.  After the measurements, I fixed global proxies, which cost 1% on most tests and 5% on the weak ones :-(.

In the code review comments is a patch with an example of the heroics we could do in C++ to make lookup faster (I hope we don't have to do this.  Instead of checking for the property, then doing a new lookup to insert it, we could do one lookup and handle the addition immediately).  With the current benchmarks above this buys us nothing, but if we go back to doing more lookups in C++ instead of in stubs and JS then it's a win.

In a similar vein we could give the magic zero hash code to the hash code
symbol.  Then when we look up the hash code we would sometimes see the table
with all the hidden properties.  This dual use of the field for either the hash
code or the table with all hidden properties and the hash code is rather ugly,
and this CL gets rid of it.  I'd be loath to bring it back.  On the benchmarks quoted above it's slightly slower than moving the hash code lookup to JS like in this CL.

One worry is that the benchmark results above are more monomorphic than real
world code, so may be overstating the performance benefits of moving to JS.  I
think this is part of a general issue we have with handling polymorphic code in
JS and any solutions there will benefit this solution, which boils down to
regular property access. Any improvement there will lift all boats.

R=adamk@chromium.org, verwaest@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1149863005

Cr-Commit-Position: refs/heads/master@{#28622}

9 years ago[turbofan] Properly kill Terminate nodes when removing loops.
bmeurer [Tue, 26 May 2015 10:47:55 +0000 (03:47 -0700)]
[turbofan] Properly kill Terminate nodes when removing loops.

BUG=chromium:491578
LOG=n
R=jarin@chromium.org

Review URL: https://codereview.chromium.org/1161583002

Cr-Commit-Position: refs/heads/master@{#28621}

9 years ago[turbofan] Change End to take a variable number of inputs.
bmeurer [Tue, 26 May 2015 10:31:55 +0000 (03:31 -0700)]
[turbofan] Change End to take a variable number of inputs.

This simplifies the handling of the End node. Based on this CL we will
finally fix terminating every loop from the beginning (via Terminate
nodes) and fix inlining of Throw, Deoptimize and Terminate.

R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/1157023002

Cr-Commit-Position: refs/heads/master@{#28620}

9 years agoRevert of Fixed a couple of failing DCHECK(has_pending_exception()). (patchset #1...
ishell [Tue, 26 May 2015 10:28:23 +0000 (03:28 -0700)]
Revert of Fixed a couple of failing DCHECK(has_pending_exception()). (patchset #1 id:1 of https://codereview.chromium.org/1151373002/)

Reason for revert:
Broke V8 Linux - nosnap.

Original issue's description:
> Fixed a couple of failing DCHECK(has_pending_exception()).
>
> BUG=chromium:491062
> LOG=N
>
> Committed: https://crrev.com/62b56507cce3c57a2e1aebce6d34f29b3b64e762
> Cr-Commit-Position: refs/heads/master@{#28617}

TBR=yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:491062

Review URL: https://codereview.chromium.org/1148423004

Cr-Commit-Position: refs/heads/master@{#28619}

9 years agoDon't shrink new space based on allocation rate in predictable mode.
hpayer [Tue, 26 May 2015 10:14:13 +0000 (03:14 -0700)]
Don't shrink new space based on allocation rate in predictable mode.

BUG=

Review URL: https://codereview.chromium.org/1155163003

Cr-Commit-Position: refs/heads/master@{#28618}

9 years agoFixed a couple of failing DCHECK(has_pending_exception()).
ishell [Tue, 26 May 2015 10:06:47 +0000 (03:06 -0700)]
Fixed a couple of failing DCHECK(has_pending_exception()).

BUG=chromium:491062
LOG=N

Review URL: https://codereview.chromium.org/1151373002

Cr-Commit-Position: refs/heads/master@{#28617}

9 years agoFix lookup iterator checks in GetRealNamedProperty* methods
jochen [Tue, 26 May 2015 09:23:45 +0000 (02:23 -0700)]
Fix lookup iterator checks in GetRealNamedProperty* methods

BUG=v8:4143
R=verwaest@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/1161553004

Cr-Commit-Position: refs/heads/master@{#28616}

9 years agoMove work to omit unnecessary ObjectLiteral stores to the numbering pass.
mvstanton [Tue, 26 May 2015 09:05:53 +0000 (02:05 -0700)]
Move work to omit unnecessary ObjectLiteral stores to the numbering pass.

The reason is that this information will be needed to compute the number of
vector ic slots done at numbering time.

BUG=

Review URL: https://codereview.chromium.org/1150323002

Cr-Commit-Position: refs/heads/master@{#28615}

9 years agoExclude non-optimizable functions from OptimizeFunctionOnNextCall.
jarin [Tue, 26 May 2015 08:46:57 +0000 (01:46 -0700)]
Exclude non-optimizable functions from OptimizeFunctionOnNextCall.

BUG=chromium:491481
R=mstarzinger@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/1143223004

Cr-Commit-Position: refs/heads/master@{#28614}

9 years ago[turbofan] Fix known issue about computed property names.
mstarzinger [Tue, 26 May 2015 08:45:10 +0000 (01:45 -0700)]
[turbofan] Fix known issue about computed property names.

This fixes a corner-case where deoptimization while evaluating the
value to a __proto__ property after computed property names appeared
in an object literal, lead to environments not being in sync with
unoptimized code.

R=arv@chromium.org
TEST=mjsunit/harmony/computed-property-names-deopt

Review URL: https://codereview.chromium.org/1158443004

Cr-Commit-Position: refs/heads/master@{#28613}

9 years agoDo not leak message object beyond try-catch.
yangguo [Tue, 26 May 2015 08:00:04 +0000 (01:00 -0700)]
Do not leak message object beyond try-catch.

R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/1150293002

Cr-Commit-Position: refs/heads/master@{#28612}

9 years ago[test] Mark slow tests on msan.
machenbach [Tue, 26 May 2015 07:55:23 +0000 (00:55 -0700)]
[test] Mark slow tests on msan.

TBR=svenpanne@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/1159743002

Cr-Commit-Position: refs/heads/master@{#28611}

9 years agoImplement bookmarks for ExternalStreamingStream.
vogelheim [Tue, 26 May 2015 07:54:14 +0000 (00:54 -0700)]
Implement bookmarks for ExternalStreamingStream.

(Requires the embedder's ExternalSourceStream implementation to cooperate.
 See crrev.com/1154883003 for Blink.)

R=jochen@chromium.org
BUG=chromium:470930
LOG=Y

Review URL: https://codereview.chromium.org/1156733002

Cr-Commit-Position: refs/heads/master@{#28610}

9 years agoFix harmony-sharedarraybuffer implementation.
yangguo [Tue, 26 May 2015 07:39:51 +0000 (00:39 -0700)]
Fix harmony-sharedarraybuffer implementation.

NOTREECHECKS=true
NOTRY=true
TBR=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/1161553002

Cr-Commit-Position: refs/heads/master@{#28609}

9 years agoRevert of Revert of Hook up more import/exports in natives. (patchset #1 id:1 of...
yangguo [Tue, 26 May 2015 07:24:13 +0000 (00:24 -0700)]
Revert of Revert of Hook up more import/exports in natives. (patchset #1 id:1 of https://codereview.chromium.org/1154743003/)

Reason for revert:
Unrelated failure that was uncovered by this CL has been fixed (https://codereview.chromium.org/1152243002/)

Original issue's description:
> Revert of Hook up more import/exports in natives. (patchset #3 id:40001 of https://codereview.chromium.org/1154483002/)
>
> Reason for revert:
> [Sheriff] Speculative revert for gc stress failures:
> http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/builds/481
>
> Original issue's description:
> > Hook up more import/exports in natives.
> >
> > R=jkummerow@chromium.org
> >
> > Committed: https://crrev.com/7a918ac9658d11778f39593bfcc19d7c506defd9
> > Cr-Commit-Position: refs/heads/master@{#28573}
> >
> > Committed: https://crrev.com/e13a39dd7f4062898709d7c68900677df0513995
> > Cr-Commit-Position: refs/heads/master@{#28578}
>
> TBR=jkummerow@chromium.org,erik.corry@gmail.com,yangguo@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/eb0024d1dbdda5f51b006dd54887404ee6c5cbfc
> Cr-Commit-Position: refs/heads/master@{#28584}

TBR=jkummerow@chromium.org,erik.corry@gmail.com,machenbach@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1149773003

Cr-Commit-Position: refs/heads/master@{#28608}

9 years agoDo not patch IC in deoptimized code.
yangguo [Tue, 26 May 2015 06:56:15 +0000 (23:56 -0700)]
Do not patch IC in deoptimized code.

R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/1152243002

Cr-Commit-Position: refs/heads/master@{#28607}

9 years agoX87: [es6] Spread in array literals
chunyang.dai [Mon, 25 May 2015 13:15:22 +0000 (06:15 -0700)]
X87: [es6] Spread in array literals

port 9502e91adbed48a546463aa848656d07619d14e6 (r28534)

original commit message:

    This allows you to put iterables into your array literals
    and the will get spread into the array.

      let x = [0, ...range(1, 3)];  // [0, 1, 2]

    This is done by treating the array literal up to the first
    spread element as usual, including using a boiler plate
    array, and then appending the remaining expressions and rest
    expressions.

BUG=

Review URL: https://codereview.chromium.org/1152173002

Cr-Commit-Position: refs/heads/master@{#28606}

9 years agoX87: Vector ICs: Introduce Store and KeyedStore IC code stubs.
chunyang.dai [Mon, 25 May 2015 13:13:34 +0000 (06:13 -0700)]
X87: Vector ICs: Introduce Store and KeyedStore IC code stubs.

port a86384f192f88458bb46eece0a8f2709979057b8 (r28597).

original commit message:

    Also introduce new interface descriptors for the trampoline and full
    versions of those stubs.

    Currently, the stubs aren't functional.

BUG=

Review URL: https://codereview.chromium.org/1148963003

Cr-Commit-Position: refs/heads/master@{#28605}

9 years ago[release-tools] Fix auto-roller after depot tools change.
machenbach [Sat, 23 May 2015 19:24:37 +0000 (12:24 -0700)]
[release-tools] Fix auto-roller after depot tools change.

BUG=chromium:491581
LOG=n
NOTRY=true
TBR=hablich@chromium.org

Review URL: https://codereview.chromium.org/1155983002

Cr-Commit-Position: refs/heads/master@{#28604}

9 years agoWhitespace change to test CQ.
machenbach [Fri, 22 May 2015 19:40:50 +0000 (12:40 -0700)]
Whitespace change to test CQ.

TBR=tandrii@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/1155913002

Cr-Commit-Position: refs/heads/master@{#28603}

9 years agoUse OAuth for accessing Rietveld
sergiyb [Fri, 22 May 2015 18:48:42 +0000 (11:48 -0700)]
Use OAuth for accessing Rietveld

R=machenbach@chromium.org, tandrii@chromium.org
BUG=489483
LOG=n
NOTRY=true

Review URL: https://codereview.chromium.org/1150333002

Cr-Commit-Position: refs/heads/master@{#28602}

9 years agoUpdate UTF-8 decoder to detect more special cases.
jochen [Fri, 22 May 2015 18:47:36 +0000 (11:47 -0700)]
Update UTF-8 decoder to detect more special cases.

The blink version is stricter and for parsing it's important that both
decoders behave the same.

BUG=chromium:489944
R=vogelheim@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/1148653007

Cr-Commit-Position: refs/heads/master@{#28601}

9 years agoIntroduce a maybe-version of Function::New
jochen [Fri, 22 May 2015 18:39:40 +0000 (11:39 -0700)]
Introduce a maybe-version of Function::New

Internally, it invokes GetFunction() which returns a MaybeLocal<>

BUG=4134
R=vogelheim@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/1156693003

Cr-Commit-Position: refs/heads/master@{#28600}

9 years ago[test] Fix no-exceptions cc flag.
machenbach [Fri, 22 May 2015 16:40:27 +0000 (09:40 -0700)]
[test] Fix no-exceptions cc flag.

BUG=chromium:425187
LOG=n

Review URL: https://codereview.chromium.org/1154833002

Cr-Commit-Position: refs/heads/master@{#28599}

9 years ago[turbofan] Simplify handling of spreads in array literals.
mstarzinger [Fri, 22 May 2015 15:42:59 +0000 (08:42 -0700)]
[turbofan] Simplify handling of spreads in array literals.

R=arv@chromium.org
TEST=mjsunit/harmony/spread-array

Review URL: https://codereview.chromium.org/1154873002

Cr-Commit-Position: refs/heads/master@{#28598}

9 years agoVector ICs: Introduce Store and KeyedStore IC code stubs.
mvstanton [Fri, 22 May 2015 14:36:48 +0000 (07:36 -0700)]
Vector ICs: Introduce Store and KeyedStore IC code stubs.

Also introduce new interface descriptors for the trampoline and full
versions of those stubs.

Currently, the stubs aren't functional.

BUG=

Review URL: https://codereview.chromium.org/1149903005

Cr-Commit-Position: refs/heads/master@{#28597}

9 years agoRemove unnecessary TypeFeedbackIds, saves memory and simplifies TurboFan.
mvstanton [Fri, 22 May 2015 14:32:31 +0000 (07:32 -0700)]
Remove unnecessary TypeFeedbackIds, saves memory and simplifies TurboFan.

Consequence of going whole-hog for vector-based Load/KeyedLoad ICs.

BUG=

Review URL: https://codereview.chromium.org/1152063003

Cr-Commit-Position: refs/heads/master@{#28596}

9 years agoMIPS: Add float instructions and test coverage, part two
Djordje.Pesic [Fri, 22 May 2015 13:49:20 +0000 (06:49 -0700)]
MIPS: Add float instructions and test coverage, part two

Implement assembler, disassembler tests for all instructions for mips32 and mips64. Additionally, add missing single precision float instructions for r2 and r6 architecture variants in assembler, simulator and disassembler with corresponding tests.

Review URL: https://codereview.chromium.org/1145223002

Cr-Commit-Position: refs/heads/master@{#28595}

9 years agoImplement SharedArrayBuffer.
binji [Fri, 22 May 2015 13:43:38 +0000 (06:43 -0700)]
Implement SharedArrayBuffer.

This adds a new external type (v8::SharedArrayBuffer) that uses a JSArrayBuffer
under the hood. It can be distinguished from an ArrayBuffer by the newly-added
is_shared() bit.

Currently there is no difference in functionality between a SharedArrayBuffer
and an ArrayBuffer. However, a future CL will add the Atomics API, which is
only available on an SharedArrayBuffer. All non-atomic accesses are identical
to ArrayBuffer accesses.

LOG=N
BUG=

Review URL: https://codereview.chromium.org/1136553006

Cr-Commit-Position: refs/heads/master@{#28594}

9 years agoIdle old generation limit is used when allocation rate is low.
hpayer [Fri, 22 May 2015 13:10:18 +0000 (06:10 -0700)]
Idle old generation limit is used when allocation rate is low.

BUG=

Review URL: https://codereview.chromium.org/1153763003

Cr-Commit-Position: refs/heads/master@{#28593}

9 years agoMake delete API consistent for String objects
conradw [Fri, 22 May 2015 13:09:09 +0000 (06:09 -0700)]
Make delete API consistent for String objects

Deleting an in-bounds character index from a String object should always return
false.

BUG=
LOG=N

Review URL: https://codereview.chromium.org/1153673003

Cr-Commit-Position: refs/heads/master@{#28592}

9 years agoRemove v8::Private
jochen [Fri, 22 May 2015 12:42:00 +0000 (05:42 -0700)]
Remove v8::Private

Nothing uses it

R=rossberg@chromium.org
LOG=y
BUG=none

Review URL: https://codereview.chromium.org/1152523002

Cr-Commit-Position: refs/heads/master@{#28591}

9 years agoFix build.
yangguo [Fri, 22 May 2015 12:33:04 +0000 (05:33 -0700)]
Fix build.

TBR=machenbach@chromium.org
NOTRY=true
NOTREECHECKS=true

Review URL: https://codereview.chromium.org/1150303002

Cr-Commit-Position: refs/heads/master@{#28590}

9 years agoRevert of Implement SharedArrayBuffer (patchset #7 id:120001 of https://codereview...
yangguo [Fri, 22 May 2015 12:18:13 +0000 (05:18 -0700)]
Revert of Implement SharedArrayBuffer (patchset #7 id:120001 of https://codereview.chromium.org/1136553006/)

Reason for revert:
breaks build

Original issue's description:
> Implement SharedArrayBuffer.
>
> This adds a new external type (v8::SharedArrayBuffer) that uses a JSArrayBuffer under the hood. It can be distinguished from an ArrayBuffer by the newly-added is_shared() bit.
>
> Currently there is no difference in functionality between a SharedArrayBuffer and an ArrayBuffer. However, a future CL will add the Atomics API, which is only available on an SharedArrayBuffer. All non-atomic accesses are identical to ArrayBuffer accesses.
>
> BUG=
>
> Committed: https://crrev.com/57170bff7baf341c666252a7f6a49e9c08d51263
> Cr-Commit-Position: refs/heads/master@{#28588}

TBR=jarin@chromium.org,jochen@chromium.org,binji@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.chromium.org/1149203003

Cr-Commit-Position: refs/heads/master@{#28589}

9 years agoImplement SharedArrayBuffer.
binji [Fri, 22 May 2015 12:07:00 +0000 (05:07 -0700)]
Implement SharedArrayBuffer.

This adds a new external type (v8::SharedArrayBuffer) that uses a JSArrayBuffer under the hood. It can be distinguished from an ArrayBuffer by the newly-added is_shared() bit.

Currently there is no difference in functionality between a SharedArrayBuffer and an ArrayBuffer. However, a future CL will add the Atomics API, which is only available on an SharedArrayBuffer. All non-atomic accesses are identical to ArrayBuffer accesses.

BUG=

Review URL: https://codereview.chromium.org/1136553006

Cr-Commit-Position: refs/heads/master@{#28588}

9 years agoGeneralize alignment in heap GC functions.
bbudge [Fri, 22 May 2015 12:01:59 +0000 (05:01 -0700)]
Generalize alignment in heap GC functions.
Changes template parameters from int to AllocationAlignment.

LOG=N
BUG=v8:4124

Review URL: https://codereview.chromium.org/1152513002

Cr-Commit-Position: refs/heads/master@{#28587}

9 years agoUse conservative hash table capacity growth during entire snapshotting.
yangguo [Fri, 22 May 2015 11:50:38 +0000 (04:50 -0700)]
Use conservative hash table capacity growth during entire snapshotting.

We want to use the conservative growth strategy during
- isolate initialization
- bootstrapping a context

But not when
- not creating a snapshot
- running additional code for custom snapshot.

R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/1155823003

Cr-Commit-Position: refs/heads/master@{#28586}

9 years agoUncommit and shrink semi-spaces only on low allocation rate.
hpayer [Fri, 22 May 2015 11:43:11 +0000 (04:43 -0700)]
Uncommit and shrink semi-spaces only on low allocation rate.

BUG=chromium:481811
LOG=n

Review URL: https://codereview.chromium.org/1148633005

Cr-Commit-Position: refs/heads/master@{#28585}

9 years agoRevert of Hook up more import/exports in natives. (patchset #3 id:40001 of https...
machenbach [Fri, 22 May 2015 11:21:32 +0000 (04:21 -0700)]
Revert of Hook up more import/exports in natives. (patchset #3 id:40001 of https://codereview.chromium.org/1154483002/)

Reason for revert:
[Sheriff] Speculative revert for gc stress failures:
http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/builds/481

Original issue's description:
> Hook up more import/exports in natives.
>
> R=jkummerow@chromium.org
>
> Committed: https://crrev.com/7a918ac9658d11778f39593bfcc19d7c506defd9
> Cr-Commit-Position: refs/heads/master@{#28573}
>
> Committed: https://crrev.com/e13a39dd7f4062898709d7c68900677df0513995
> Cr-Commit-Position: refs/heads/master@{#28578}

TBR=jkummerow@chromium.org,erik.corry@gmail.com,yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1154743003

Cr-Commit-Position: refs/heads/master@{#28584}

9 years ago[turbofan] Rework Node guts to save space.
titzer [Fri, 22 May 2015 11:13:02 +0000 (04:13 -0700)]
[turbofan] Rework Node guts to save space.

This reduces the storage per-Node storage from 7 words to 6 and per-edge
storage from 6 words to 4.
On average this is about 10%-15% space savings over the whole graph.

Remove the use of std::deque as the out-of-line storage for inputs.
Reduce size of Use links and use pointer arithmetic to find Node
from Use.

R=mstarzinger@chromium.org,jarin@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1150923003

Cr-Commit-Position: refs/heads/master@{#28583}

9 years agoDon't UnshiftGrey any black objects
erikcorry [Fri, 22 May 2015 11:07:37 +0000 (04:07 -0700)]
Don't UnshiftGrey any black objects

R=hpayer@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1128683006

Cr-Commit-Position: refs/heads/master@{#28582}

9 years agoJavaScript stubs have access to their calling convention and minor key now.
svenpanne [Fri, 22 May 2015 11:01:53 +0000 (04:01 -0700)]
JavaScript stubs have access to their calling convention and minor key now.

First steps only, the TurboFan compilation is still triggered from C++ land.

Includes some simplifications/cleanups, too.

Review URL: https://codereview.chromium.org/1150263002

Cr-Commit-Position: refs/heads/master@{#28581}

9 years agoFix ToNameArray
verwaest [Fri, 22 May 2015 10:57:39 +0000 (03:57 -0700)]
Fix ToNameArray

BUG=

Review URL: https://codereview.chromium.org/1146113004

Cr-Commit-Position: refs/heads/master@{#28580}

9 years ago[strong] cache strong object literal maps
rossberg [Fri, 22 May 2015 10:51:49 +0000 (03:51 -0700)]
[strong] cache strong object literal maps

Also, add more literal tests.

R=dslomov@chromium.org
BUG=v8:3956
LOG=N

Review URL: https://codereview.chromium.org/1145213005

Cr-Commit-Position: refs/heads/master@{#28579}

9 years agoHook up more import/exports in natives.
yangguo [Fri, 22 May 2015 10:32:52 +0000 (03:32 -0700)]
Hook up more import/exports in natives.

R=jkummerow@chromium.org

Committed: https://crrev.com/7a918ac9658d11778f39593bfcc19d7c506defd9
Cr-Commit-Position: refs/heads/master@{#28573}

Review URL: https://codereview.chromium.org/1154483002

Cr-Commit-Position: refs/heads/master@{#28578}

9 years agoRemove obsolete JSFunction::IsOptimizable predicate.
mstarzinger [Fri, 22 May 2015 10:05:16 +0000 (03:05 -0700)]
Remove obsolete JSFunction::IsOptimizable predicate.

This just delegates to SharedFunctionInfo::optimization_disabled and
was primarily used for assertions. Removing it due to misleading name
because already optimized functions reported being "non-optimizable".

This relands commit 181d7b85977eb752b19e1de902093783e31330ef.

R=titzer@chromium.org

Review URL: https://codereview.chromium.org/1146423002

Cr-Commit-Position: refs/heads/master@{#28577}

9 years agoVectorICs: Create a StoreICState to more easily create matching code stubs.
mvstanton [Fri, 22 May 2015 09:58:06 +0000 (02:58 -0700)]
VectorICs: Create a StoreICState to more easily create matching code stubs.

This follows the logic of the load ics, in that the base extra ic state is
better encapsulated.

Introduce flag vector_stores to aid development of vector-based store ics.

BUG=
R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/1151253004

Cr-Commit-Position: refs/heads/master@{#28576}

9 years ago[turbofan] Don't mix up name/property accesses.
bmeurer [Fri, 22 May 2015 09:13:32 +0000 (02:13 -0700)]
[turbofan] Don't mix up name/property accesses.

R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/1149663003

Cr-Commit-Position: refs/heads/master@{#28575}

9 years agoRevert of Hook up more import/exports in natives. (patchset #2 id:20001 of https...
machenbach [Fri, 22 May 2015 08:53:21 +0000 (01:53 -0700)]
Revert of Hook up more import/exports in natives. (patchset #2 id:20001 of https://codereview.chromium.org/1154483002/)

Reason for revert:
[Sheriff] Breaks nosnap:
http://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20nosnap%20-%20shared/builds/6943

Original issue's description:
> Hook up more import/exports in natives.
>
> R=jkummerow@chromium.org
>
> Committed: https://crrev.com/7a918ac9658d11778f39593bfcc19d7c506defd9
> Cr-Commit-Position: refs/heads/master@{#28573}

TBR=jkummerow@chromium.org,erik.corry@gmail.com,yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1154793003

Cr-Commit-Position: refs/heads/master@{#28574}

9 years agoHook up more import/exports in natives.
yangguo [Fri, 22 May 2015 08:32:52 +0000 (01:32 -0700)]
Hook up more import/exports in natives.

R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/1154483002

Cr-Commit-Position: refs/heads/master@{#28573}

9 years agoUnbreak %DebugPrint output.
svenpanne [Fri, 22 May 2015 08:24:41 +0000 (01:24 -0700)]
Unbreak %DebugPrint output.

Review URL: https://codereview.chromium.org/1155773003

Cr-Commit-Position: refs/heads/master@{#28572}

9 years agoAndroid IA32: enable PIE
jing.bao [Fri, 22 May 2015 06:34:07 +0000 (23:34 -0700)]
Android IA32: enable PIE

BUG=

Review URL: https://codereview.chromium.org/1145513006

Cr-Commit-Position: refs/heads/master@{#28571}

9 years ago[turbofan] Pick word representation for phis with Type::Internal().
danno [Fri, 22 May 2015 05:53:19 +0000 (22:53 -0700)]
[turbofan] Pick word representation for phis with Type::Internal().

R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/1154463004

Cr-Commit-Position: refs/heads/master@{#28570}

9 years agoRevert of Revert of Pass GC flags to incremental marker and start incremental marking...
machenbach [Fri, 22 May 2015 05:52:10 +0000 (22:52 -0700)]
Revert of Revert of Pass GC flags to incremental marker and start incremental marking with (patchset #1 id:1 of https://codereview.chromium.org/1151143002/)

Reason for revert:
Wasn't the reason...

Original issue's description:
> Revert of Pass GC flags to incremental marker and start incremental marking with (patchset #3 id:40001 of https://codereview.chromium.org/1156463002/)
>
> Reason for revert:
> [Sheriff] Speculative revert because chromebook is really misbehaving:
> http://build.chromium.org/p/client.v8/builders/V8%20Arm/builds/2109
>
> I also triggered a retry with the failing build to be sure. If the revert doesn't help or the bot had a scary hiccup, this can reland.
>
> Original issue's description:
> > Pass GC flags to incremental marker and start incremental marking with
> > reduce memory footprint in idle notification.
> >
> > BUG=
> >
> > Committed: https://crrev.com/4656308147b12405037678b1ab192fb4f2437bbc
> > Cr-Commit-Position: refs/heads/master@{#28567}
>
> TBR=hpayer@chromium.org,ulan@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=
>
> Committed: https://crrev.com/634c58a4f10b346a98208ec34d169e1bdb04e1b7
> Cr-Commit-Position: refs/heads/master@{#28568}

TBR=hpayer@chromium.org,ulan@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.chromium.org/1157613002

Cr-Commit-Position: refs/heads/master@{#28569}

9 years agoRevert of Pass GC flags to incremental marker and start incremental marking with...
machenbach [Thu, 21 May 2015 20:34:45 +0000 (13:34 -0700)]
Revert of Pass GC flags to incremental marker and start incremental marking with (patchset #3 id:40001 of https://codereview.chromium.org/1156463002/)

Reason for revert:
[Sheriff] Speculative revert because chromebook is really misbehaving:
http://build.chromium.org/p/client.v8/builders/V8%20Arm/builds/2109

I also triggered a retry with the failing build to be sure. If the revert doesn't help or the bot had a scary hiccup, this can reland.

Original issue's description:
> Pass GC flags to incremental marker and start incremental marking with
> reduce memory footprint in idle notification.
>
> BUG=
>
> Committed: https://crrev.com/4656308147b12405037678b1ab192fb4f2437bbc
> Cr-Commit-Position: refs/heads/master@{#28567}

TBR=hpayer@chromium.org,ulan@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.chromium.org/1151143002

Cr-Commit-Position: refs/heads/master@{#28568}

9 years agoPass GC flags to incremental marker and start incremental marking with
ulan [Thu, 21 May 2015 18:23:30 +0000 (11:23 -0700)]
Pass GC flags to incremental marker and start incremental marking with
reduce memory footprint in idle notification.

BUG=

Review URL: https://codereview.chromium.org/1156463002

Cr-Commit-Position: refs/heads/master@{#28567}

9 years agoFixing Heap::Available() to return total of all spaces.
ssid [Thu, 21 May 2015 18:14:50 +0000 (11:14 -0700)]
Fixing Heap::Available() to return total of all spaces.

The Heap::Available method adds up the available size from only 4 of
the spaces. This CL fixes the method to return total of all spaces.

BUG=481504
LOG=N

Review URL: https://codereview.chromium.org/1141693003

Cr-Commit-Position: refs/heads/master@{#28566}

9 years ago[destructuring] Grand for statement parsing unification.
dslomov [Thu, 21 May 2015 17:47:07 +0000 (10:47 -0700)]
[destructuring] Grand for statement parsing unification.

Also support patterns in ``for (var p in/of ...)``

This CL extends the rewriting we used to do for ``for (let p in/of...)`` to
``for (var p in/of ...)``. For all for..in/of loop declaring variable,
we rewrite
   for (var/let/const pattern in/of e) b
into
   for (x' in/of e) { var/let/const pattern = e; b }

This adds a small complication for debugger: for a statement
   for (var v in/of e) ...
we used to have
   var v;
   for (v in/of e) ...
and there was a separate breakpoint on ``var v`` line.
This breakpoint is actually useless since it is immediately followed by
a breakpoint on evaluation of ``e``, so this CL removes that breakpoint
location.

Similiraly, for let, it used to be that
  for (let v in/of e) ...
became
  for (x' in/of e) { let v; v  = x'; ... }
``let v``generetaed a useless breakpoint (with the location at the
loop's head. This CL removes that breakpoint as well.

R=arv@chromium.org,rossberg@chromium.org
BUG=v8:811
LOG=N

Review URL: https://codereview.chromium.org/1149043005

Cr-Commit-Position: refs/heads/master@{#28565}

9 years agoPrepare GetProperty(Attributes)WithInterceptor to support elements
verwaest [Thu, 21 May 2015 17:24:28 +0000 (10:24 -0700)]
Prepare GetProperty(Attributes)WithInterceptor to support elements

BUG=v8:4137
LOG=n

Review URL: https://codereview.chromium.org/1147863002

Cr-Commit-Position: refs/heads/master@{#28564}

9 years agoSet V8_HAS_DECLSPEC_SELECTANY for clang-cl
hans [Thu, 21 May 2015 16:21:24 +0000 (09:21 -0700)]
Set V8_HAS_DECLSPEC_SELECTANY for clang-cl

This macro is used for defining static data members with
STATIC_CONST_MEMBER_DEFINITION. Clang-cl mimics MSVC's
behaviour here, so it also needs __declspec(selectany).

This change was prompted by Clang r237787 which changed
a bug where Clang would previously not emit symbols for
some static data members.

BUG=82385
LOG=N

Review URL: https://codereview.chromium.org/1145213004

Cr-Commit-Position: refs/heads/master@{#28563}

9 years agoReland "Avoid excessive GCs in small heaps."
ulan [Thu, 21 May 2015 16:01:56 +0000 (09:01 -0700)]
Reland "Avoid excessive GCs in small heaps."

Original issue's description:
> Avoid excessive GCs in small heaps.
>
> Small heaps and small heap growing factor can lead to excessive GCs in corner cases.
>
> Consider function F(old_gen_size, factor) that returns the number of bytes that
> have to be allocated in the old generation to start incremental marking.
>
> F(4MB, 1.1) = 4MB (because of kMinimumOldGenerationAllocationLimit)
> F(6MB, 1.1) = 2MB (because of kMinimumOldGenerationAllocationLimit)
> F(8MB, 1.1) = 800KB
>
> Funtion F should be monotonic in old_gen_size, but it currently has a minimum
> at kMinimumOldGenerationAllocationLimit.
>
> This CL makes F monotonic.
>
> BUG=
>
> Committed: https://crrev.com/22b1da99732b4db0754bf267ec470a2831216fb2
> Cr-Commit-Position: refs/heads/master@{#28549}

TBR=hpayer@chromium.org

Review URL: https://codereview.chromium.org/1148953005

Cr-Commit-Position: refs/heads/master@{#28562}

9 years ago[test] Apply more detailed origin tracking in MSAN builds.
machenbach [Thu, 21 May 2015 15:45:17 +0000 (08:45 -0700)]
[test] Apply more detailed origin tracking in MSAN builds.

BUG=chromium:425187
LOG=n
TBR=svenpanne@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/1148333004

Cr-Commit-Position: refs/heads/master@{#28561}

9 years agoPPC: [es6] Spread in array literals
mbrandy [Thu, 21 May 2015 15:35:46 +0000 (08:35 -0700)]
PPC: [es6] Spread in array literals

Port 9502e91adbed48a546463aa848656d07619d14e6

Original commit message:
This allows you to put iterables into your array literals
and the will get spread into the array.

  let x = [0, ...range(1, 3)];  // [0, 1, 2]

This is done by treating the array literal up to the first
spread element as usual, including using a boiler plate
array, and then appending the remaining expressions and rest
expressions.

R=arv@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

Review URL: https://codereview.chromium.org/1149873005

Cr-Commit-Position: refs/heads/master@{#28560}

9 years agoAdjust GetPropertyWithFailedAccessCheck to support elements
verwaest [Thu, 21 May 2015 15:24:53 +0000 (08:24 -0700)]
Adjust GetPropertyWithFailedAccessCheck to support elements

BUG=v8:4137
LOG=n

Review URL: https://codereview.chromium.org/1155503003

Cr-Commit-Position: refs/heads/master@{#28559}

9 years agoRevert of Avoid excessive GCs in small heaps. (patchset #1 id:1 of https://codereview...
ulan [Thu, 21 May 2015 14:47:20 +0000 (07:47 -0700)]
Revert of Avoid excessive GCs in small heaps. (patchset #1 id:1 of https://codereview.chromium.org/1144223002/)

Reason for revert:
Regressed Sunspider.

Original issue's description:
> Avoid excessive GCs in small heaps.
>
> Small heaps and small heap growing factor can lead to excessive GCs in corner cases.
>
> Consider function F(old_gen_size, factor) that returns the number of bytes that
> have to be allocated in the old generation to start incremental marking.
>
> F(4MB, 1.1) = 4MB (because of kMinimumOldGenerationAllocationLimit)
> F(6MB, 1.1) = 2MB (because of kMinimumOldGenerationAllocationLimit)
> F(8MB, 1.1) = 800KB
>
> Funtion F should be monotonic in old_gen_size, but it currently has a minimum
> at kMinimumOldGenerationAllocationLimit.
>
> This CL makes F monotonic.
>
> BUG=
>
> Committed: https://crrev.com/22b1da99732b4db0754bf267ec470a2831216fb2
> Cr-Commit-Position: refs/heads/master@{#28549}

TBR=hpayer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.chromium.org/1152533002

Cr-Commit-Position: refs/heads/master@{#28558}

9 years ago[test] Raise timeout for js-perf-tests.
machenbach [Thu, 21 May 2015 14:36:40 +0000 (07:36 -0700)]
[test] Raise timeout for js-perf-tests.

TBR=dslomov@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/1147323002

Cr-Commit-Position: refs/heads/master@{#28557}

9 years agoSimplify GetProperty helpers to ease element support
verwaest [Thu, 21 May 2015 14:34:52 +0000 (07:34 -0700)]
Simplify GetProperty helpers to ease element support

BUG=v8:4137
LOG=n

Review URL: https://codereview.chromium.org/1148583002

Cr-Commit-Position: refs/heads/master@{#28556}

9 years agoAdd a TurboFan skeleton for StringAddStub.
svenpanne [Thu, 21 May 2015 14:31:41 +0000 (07:31 -0700)]
Add a TurboFan skeleton for StringAddStub.

Currently the stub simply calls out to the runtime, this will be
improved in a later CLs. The current state at least avoids bit-rot and
later merging horror.

Fixes frame construction logic for stubs, too, and contains quite a few
tiny cleanups in stub-land.

Review URL: https://codereview.chromium.org/1150673002

Cr-Commit-Position: refs/heads/master@{#28555}

9 years agoRevert of Remove obsolete JSFunction::IsOptimizable predicate. (patchset #1 id:1...
mstarzinger [Thu, 21 May 2015 13:34:51 +0000 (06:34 -0700)]
Revert of Remove obsolete JSFunction::IsOptimizable predicate. (patchset #1 id:1 of https://codereview.chromium.org/1150683002/)

Reason for revert:
Causes assertions to fire when serializing optimized code.

Original issue's description:
> Remove obsolete JSFunction::IsOptimizable predicate.
>
> This just delegates to SharedFunctionInfo::optimization_disabled and
> was primarily used for assertions. Removing it due to misleading name
> because already optimized functions reported being "non-optimizable".
>
> R=titzer@chromium.org
>
> Committed: https://crrev.com/181d7b85977eb752b19e1de902093783e31330ef
> Cr-Commit-Position: refs/heads/master@{#28551}

TBR=titzer@chromium.org,bmeurer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1148973005

Cr-Commit-Position: refs/heads/master@{#28554}

9 years agoFix typo in standalone.gypi
jochen [Thu, 21 May 2015 13:13:21 +0000 (06:13 -0700)]
Fix typo in standalone.gypi

without the % we can't override the value which makes the Makefile thing
not work

R=vogelheim@chromium.org
LOG=n
BUG=none

Review URL: https://codereview.chromium.org/1147273002

Cr-Commit-Position: refs/heads/master@{#28553}

9 years agoReduce new space size during idle times only in memory mode after scavenge, full...
hpayer [Thu, 21 May 2015 13:09:29 +0000 (06:09 -0700)]
Reduce new space size during idle times only in memory mode after scavenge, full gc, or finalized incremental full gc.

BUG=

Review URL: https://codereview.chromium.org/1143973003

Cr-Commit-Position: refs/heads/master@{#28552}

9 years agoRemove obsolete JSFunction::IsOptimizable predicate.
mstarzinger [Thu, 21 May 2015 13:05:48 +0000 (06:05 -0700)]
Remove obsolete JSFunction::IsOptimizable predicate.

This just delegates to SharedFunctionInfo::optimization_disabled and
was primarily used for assertions. Removing it due to misleading name
because already optimized functions reported being "non-optimizable".

R=titzer@chromium.org

Review URL: https://codereview.chromium.org/1150683002

Cr-Commit-Position: refs/heads/master@{#28551}

9 years ago[turbofan] Fix UnifyReturn magic in the inliner.
bmeurer [Thu, 21 May 2015 13:02:18 +0000 (06:02 -0700)]
[turbofan] Fix UnifyReturn magic in the inliner.

The inliner previously assumed that there will only be returns reaching
the end node, but that's not true.  This refactoring will make it
possible to also hook up Deoptimize, Throw and Terminate nodes reaching
end properly.

R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/1146393002

Cr-Commit-Position: refs/heads/master@{#28550}

9 years agoAvoid excessive GCs in small heaps.
ulan [Thu, 21 May 2015 12:50:45 +0000 (05:50 -0700)]
Avoid excessive GCs in small heaps.

Small heaps and small heap growing factor can lead to excessive GCs in corner cases.

Consider function F(old_gen_size, factor) that returns the number of bytes that
have to be allocated in the old generation to start incremental marking.

F(4MB, 1.1) = 4MB (because of kMinimumOldGenerationAllocationLimit)
F(6MB, 1.1) = 2MB (because of kMinimumOldGenerationAllocationLimit)
F(8MB, 1.1) = 800KB

Funtion F should be monotonic in old_gen_size, but it currently has a minimum
at kMinimumOldGenerationAllocationLimit.

This CL makes F monotonic.

BUG=

Review URL: https://codereview.chromium.org/1144223002

Cr-Commit-Position: refs/heads/master@{#28549}

9 years agoDropping iterations and speedup from perf results.
bradnelson [Thu, 21 May 2015 12:49:37 +0000 (05:49 -0700)]
Dropping iterations and speedup from perf results.

The dashboard displays everything on one scale.
This isn't very useful.
Dropping these two fields as they're not really that
interesting anyway.

BUG=https://code.google.com/p/v8/issues/detail?id=4124
LOG=N
TEST=None
NOTRY=true
TBR=machenbach@chromium.org

Review URL: https://codereview.chromium.org/1144263002

Cr-Commit-Position: refs/heads/master@{#28548}

9 years ago[destructuring] Implement pattern matching in lexcal for-of/for-in.
dslomov [Thu, 21 May 2015 12:36:11 +0000 (05:36 -0700)]
[destructuring] Implement pattern matching in lexcal for-of/for-in.

R=arv@chromium.org,rossberg@chromium.org
BUG=v8:811
LOG=N

Review URL: https://codereview.chromium.org/1152503002

Cr-Commit-Position: refs/heads/master@{#28547}

9 years agoStart adding support for elements to the LookupIterator
verwaest [Thu, 21 May 2015 12:19:39 +0000 (05:19 -0700)]
Start adding support for elements to the LookupIterator

BUG=

Review URL: https://codereview.chromium.org/1144883002

Cr-Commit-Position: refs/heads/master@{#28546}

9 years ago[turbofan] Ship TF for "with" and "for-of" constructs.
mstarzinger [Thu, 21 May 2015 12:12:14 +0000 (05:12 -0700)]
[turbofan] Ship TF for "with" and "for-of" constructs.

R=danno@chromium.org
BUG=v8:4131
LOG=N

Review URL: https://codereview.chromium.org/1148653005

Cr-Commit-Position: refs/heads/master@{#28545}

9 years ago[turbofan] Prepare mechanism to enable TF on language subset.
mstarzinger [Thu, 21 May 2015 11:41:14 +0000 (04:41 -0700)]
[turbofan] Prepare mechanism to enable TF on language subset.

This allows enabling TurboFan on a certain subset of language features
in the AstNumberingVisitor. The heuristics of when to optimize remain
unchanged, only the choice of which optimizing compiler to use changes.

R=bmeurer@chromium.org
BUG=v8:4131
LOG=N

Review URL: https://codereview.chromium.org/1155503002

Cr-Commit-Position: refs/heads/master@{#28544}

9 years ago[turbofan] Enable deoptimization for non-asm.js TurboFan code.
bmeurer [Thu, 21 May 2015 11:33:42 +0000 (04:33 -0700)]
[turbofan] Enable deoptimization for non-asm.js TurboFan code.

Replace the --turbo-deoptimization flag with --turbo-asm-deoptimization
and enable deoptimization for non-asm.js TurboFan code unconditionally.

R=jarin@chromium.org

Review URL: https://codereview.chromium.org/1153483002

Cr-Commit-Position: refs/heads/master@{#28543}

9 years agoCheck in hello world example so it stays up to date
jochen [Thu, 21 May 2015 11:19:32 +0000 (04:19 -0700)]
Check in hello world example so it stays up to date

BUG=none
R=vogelheim@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/1148063003

Cr-Commit-Position: refs/heads/master@{#28542}

9 years agoGeneralize HeapObject alignment requirements.
bbudge [Thu, 21 May 2015 11:06:37 +0000 (04:06 -0700)]
Generalize HeapObject alignment requirements.
Removes EnsureDouble* methods.
Adds a RequiredAlignment method.
Changes call sites.

LOG=N
BUG=v8:4124

Review URL: https://codereview.chromium.org/1150953002

Cr-Commit-Position: refs/heads/master@{#28541}

9 years ago[turbofan] Add bounds check to Node::InputAt(index) and fix tests that go out of...
titzer [Thu, 21 May 2015 10:59:54 +0000 (03:59 -0700)]
[turbofan] Add bounds check to Node::InputAt(index) and fix tests that go out of bounds.

BUG=

Review URL: https://codereview.chromium.org/1149563004

Cr-Commit-Position: refs/heads/master@{#28540}

9 years agoDebugger: use weak cells to implement ScriptCache.
yangguo [Thu, 21 May 2015 10:35:51 +0000 (03:35 -0700)]
Debugger: use weak cells to implement ScriptCache.

R=ulan@chromium.org

Review URL: https://codereview.chromium.org/1145183004

Cr-Commit-Position: refs/heads/master@{#28539}

9 years agoIntroduce a new gyp flag to warn about to be deprecated APIs
jochen [Thu, 21 May 2015 10:34:42 +0000 (03:34 -0700)]
Introduce a new gyp flag to warn about to be deprecated APIs

This should help to keep syntax errors from creeping into v8.h

Also, I'll remove usages of to-be-deprecated APIs and turn this flag on
for standalone builds

BUG=4134
R=vogelheim@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/1149633003

Cr-Commit-Position: refs/heads/master@{#28538}

9 years agoMake new space allocation throughput estimation more accurate.
ulan [Thu, 21 May 2015 10:19:09 +0000 (03:19 -0700)]
Make new space allocation throughput estimation more accurate.

Sample new space allocation throughput at scavenge and at idle notificatioon.

This will allow better estimation of mutator idleness for switching between
latency and memory modes in idle notification handler.

BUG=chromium:486005
LOG=NO
TEST=cctest/test-heap/NewSpaceAllocationThroughput

Review URL: https://codereview.chromium.org/1125193005

Cr-Commit-Position: refs/heads/master@{#28537}

9 years ago[turbofan] Fix variable liveness control structure creation.
jarin [Thu, 21 May 2015 09:57:27 +0000 (02:57 -0700)]
[turbofan] Fix variable liveness control structure creation.

R=bmeurer@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1148133002

Cr-Commit-Position: refs/heads/master@{#28536}