v8-autoroll [Wed, 27 May 2015 03:27:13 +0000 (20:27 -0700)]
Update V8 DEPS.
Rolling v8/third_party/icu to
f1ad7f9ba957571dc692ea3e187612c685615e19
Rolling v8/tools/clang to
dbc958e1b51949ca815ca31a8f9bf4a760ca1d35
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
1160693002
Cr-Commit-Position: refs/heads/master@{#28645}
arv [Tue, 26 May 2015 20:29:47 +0000 (13:29 -0700)]
[es6] Support super.property in eval and arrow functions
When we enter a method that needs access to the [[HomeObject]]
we allocate a local variable `.home_object` and assign it the
value from the [[HomeObject]] private symbol. Something along
the lines of:
method() {
var .home_object = %ThisFunction()[home_object_symbol];
...
}
BUG=v8:3867, v8:4031
LOG=N
Review URL: https://codereview.chromium.org/
1135243004
Cr-Commit-Position: refs/heads/master@{#28644}
machenbach [Tue, 26 May 2015 19:50:42 +0000 (12:50 -0700)]
[test] Verbose test runner output on windows.
TBR=jkummerow@chromium.org
NOTRY=true
Review URL: https://codereview.chromium.org/
1156133006
Cr-Commit-Position: refs/heads/master@{#28643}
adamk [Tue, 26 May 2015 18:50:14 +0000 (11:50 -0700)]
Add {Map,Set}::FromArray to the API
These are similar to the Map/Set constructors when called with an array,
except that they are guaranteed to be side-effect free if called with
a packed array.
This will be useful in implementing structured clone which, as
specified in HTML, speaks in terms of the internal [[MapData]]
and [[SetData]] slots without going through the exposed iteration
ES semantics.
BUG=v8:3340
LOG=y
Review URL: https://codereview.chromium.org/
1155893003
Cr-Commit-Position: refs/heads/master@{#28642}
mike [Tue, 26 May 2015 18:31:35 +0000 (11:31 -0700)]
[es6] Define generator prototype as writable prop
The April 14 2015 final draft of the ES6 specification states that the
`prototype` property of generator function instances should be writable.
BUG=v8:4140, v8:4140
LOG=N
R=arv@chromium.org
Review URL: https://codereview.chromium.org/
1153633003
Cr-Commit-Position: refs/heads/master@{#28641}
adamk [Tue, 26 May 2015 18:13:22 +0000 (11:13 -0700)]
Add {Map,Set}::AsArray to the API
These return arrays representing the current contents of the given
Map/Set. They are similar to what would be returned by the JS code:
Array.from(collection)
except that they are guaranteed side-effect free.
This will be useful in implementing structured clone which, as
specified in HTML, speaks in terms of the internal [[MapData]]
and [[SetData]] slots without going through the exposed iteration
ES semantics.
BUG=v8:3340
LOG=y
Review URL: https://codereview.chromium.org/
1148383007
Cr-Commit-Position: refs/heads/master@{#28640}
ben [Tue, 26 May 2015 18:10:34 +0000 (11:10 -0700)]
Use CLOCK_REALTIME_COARSE when available.
On systems that have CLOCK_REALTIME_COARSE with good enough resolution,
we can avoid making a system call to get the current time; it's serviced
from the vDSO.
This is v2 of the patch. v1 can be found at [0] but was reverted in [1]
because of Chromium sandbox restrictions. The necessary changes have
been applied upstream in [2].
[0] https://codereview.chromium.org/
1125003002
[1] https://codereview.chromium.org/
1130083003
[2] https://codereview.chromium.org/
1133653002
BUG=
LOG=N
Review URL: https://codereview.chromium.org/
1151283005
Cr-Commit-Position: refs/heads/master@{#28639}
hpayer [Tue, 26 May 2015 17:46:49 +0000 (10:46 -0700)]
Fix overflow in allocation throughput calculation.
BUG=chromium:492021
LOG=n
Review URL: https://codereview.chromium.org/
1148953009
Cr-Commit-Position: refs/heads/master@{#28638}
adamk [Tue, 26 May 2015 17:36:48 +0000 (10:36 -0700)]
Add basic API support for Map & Set
Only supports constructing new objects and returning size.
Followup patch will need to add ability to retrieve and
set contents in order to support structured clone.
Also removes a bunch of outdated "experimental" markers from v8.h.
BUG=v8:3340
LOG=y
Review URL: https://codereview.chromium.org/
1157453002
Cr-Commit-Position: refs/heads/master@{#28637}
mbrandy [Tue, 26 May 2015 15:51:03 +0000 (08:51 -0700)]
PPC: Vector ICs: Introduce Store and KeyedStore IC code stubs.
Port
a86384f192f88458bb46eece0a8f2709979057b8
Original commit message:
Also introduce new interface descriptors for the trampoline and full
versions of those stubs.
Currently, the stubs aren't functional.
R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1159483003
Cr-Commit-Position: refs/heads/master@{#28636}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}