platform/upstream/v8.git
9 years agoDebugger & classes: add debugger tests for classes.
marja [Mon, 9 Mar 2015 14:49:46 +0000 (07:49 -0700)]
Debugger & classes: add debugger tests for classes.

R=dslomov@chromium.org
BUG=

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

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

9 years agoCpuProfiler: fix for GetDeoptReason code.
loislo [Mon, 9 Mar 2015 14:43:29 +0000 (07:43 -0700)]
CpuProfiler: fix for GetDeoptReason code.

The original code always returned the first entry from RelocInfo that matched with
bailout_id. But we may have a few different deopt reasons for one bailout_id.
So we need to get the one which matches with a particular call from JumpTable.

We can do this by checking not 'target_address' (it maps to bailout_id)
but 'from' address which maps to a particular JumpTable entry.

The test was reworked so it tests identical functions against different reasons.

BUG=chromium:452067
LOG=n

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

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

9 years ago[strong] Fix scoping related errors for methods.
marja [Mon, 9 Mar 2015 14:30:28 +0000 (07:30 -0700)]
[strong] Fix scoping related errors for methods.

Methods can refer to the class name.

BUG=v8:3927
LOG=N

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

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

9 years agoSimplify promise event on throw handling.
yangguo [Mon, 9 Mar 2015 13:41:43 +0000 (06:41 -0700)]
Simplify promise event on throw handling.

R=mstarzinger@chromium.org

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

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

9 years agoRecorded slots in store buffer are never in free space. Remove migration consistency...
hpayer [Mon, 9 Mar 2015 13:33:12 +0000 (06:33 -0700)]
Recorded slots in store buffer are never in free space. Remove migration consistency check.

After establishing the invariant that the store buffer always has valid slots after marking, the store buffer integrity check is not needed anymore.

BUG=454157
LOG=n

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

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

9 years agoHide Math function implementations in a closure.
yangguo [Mon, 9 Mar 2015 13:25:37 +0000 (06:25 -0700)]
Hide Math function implementations in a closure.

R=jkummerow@chromium.org

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

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

9 years ago[turbofan] Fix lazy deopt for JSToNumber conversions in binary operations.
jarin [Mon, 9 Mar 2015 13:24:29 +0000 (06:24 -0700)]
[turbofan] Fix lazy deopt for JSToNumber conversions in binary operations.

This slightly hacky change provides lazy deopt points for to-number conversions in binops: When we deopt from a to-number conversion, we create a frame state with the already-converted value(s) so that we do not repeat the side effect of the conversion.

Embenchen numbers are below. It is not quite clear what happened to fasta - the hot code looks nearly identical.

Current: EmbenchenBox2d(RunTime): 12746 ms.
d8-master: EmbenchenBox2d(RunTime): 13861 ms.
----------- bullet.js
Current: EmbenchenBullet(RunTime): 17680 ms.
d8-master: EmbenchenBullet(RunTime): 19170 ms.
----------- copy.js
Current: EmbenchenCopy(RunTime): 4939 ms.
d8-master: EmbenchenCopy(RunTime): 4943 ms.
----------- corrections.js
Current: EmbenchenCorrections(RunTime): 6639 ms.
d8-master: EmbenchenCorrections(RunTime): 6728 ms.
----------- fannkuch.js
Current: EmbenchenFannkuch(RunTime): 4630 ms.
d8-master: EmbenchenFannkuch(RunTime): 4872 ms.
----------- fasta.js
Current: EmbenchenFasta(RunTime): 10209 ms.
d8-master: EmbenchenFasta(RunTime): 9673 ms.
----------- lua_binarytrees.js
Current: EmbenchenLuaBinaryTrees(RunTime): 12936 ms.
d8-master: EmbenchenLuaBinaryTrees(RunTime): 15529 ms.
----------- memops.js
Current: EmbenchenMemOps(RunTime): 7357 ms.
d8-master: EmbenchenMemOps(RunTime): 7340 ms.
----------- primes.js
Current: EmbenchenPrimes(RunTime): 7530 ms.
d8-master: EmbenchenPrimes(RunTime): 7457 ms.
----------- skinning.js
Current: EmbenchenSkinning(RunTime): 15832 ms.
d8-master: EmbenchenSkinning(RunTime): 15630 ms.
----------- zlib.js
Current: EmbenchenZLib(RunTime): 11176 ms.
d8-master: EmbenchenZLib(RunTime): 11324 ms.

BUG=

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

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

9 years ago[turbofan] Only reduce inline %DeoptimizeNow.
mstarzinger [Mon, 9 Mar 2015 13:20:16 +0000 (06:20 -0700)]
[turbofan] Only reduce inline %DeoptimizeNow.

This makes sure only the %_DeoptimizeNow intrinsic is inlined, and
not the %DeoptimizeNow one. It hence re-establishes the invariant
that JSIntrinsicLowering only deals with inline intrinsics.

R=jarin@chromium.org
TEST=mjsunit/compiler/eager-deopt-simple

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

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

9 years ago[turbofan] Make inlining independent of typing.
Benedikt Meurer [Mon, 9 Mar 2015 13:01:30 +0000 (14:01 +0100)]
[turbofan] Make inlining independent of typing.

The JSInliner used to load the context from the JSFunction node at
runtime, which introduced a HeapConstant (because we had to materialize
the JSFunction after context specialization) and a LoadField operation,
independent whether the inlinee actually uses the context. This is
rather cumbersome currently, and therefore this is now changed to just
embed the context constant instead. Once we do inlining based on
SharedFunctionInfo rather than JSFunction, we should reconsider this
decision and come up with a proper heuristic.

BUG=v8:3952
LOG=n
R=mstarzinger@chromium.org

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

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

9 years agoEliminate invalid pointers in store buffer after marking.
hpayer [Mon, 9 Mar 2015 12:49:51 +0000 (05:49 -0700)]
Eliminate invalid pointers in store buffer after marking.

The store buffer can contain stale store buffer entries, i.e., slot in dead objects pointing to new space objects. These slots are treaded as live slots which cause problems with non-pointer fields and makes concurrent sweeping complicated. Removing these pointers from the store buffer before it is used makes life easier.

BUG=

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

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

9 years agoRevert of Store the next serial number in the function cache rather than in the isola...
verwaest [Mon, 9 Mar 2015 12:30:03 +0000 (05:30 -0700)]
Revert of Store the next serial number in the function cache rather than in the isolate.Don't overwrite existi (patchset #4 id:60001 of https://codereview.chromium.org/988693003/)

Reason for revert:
This doesn't do what it's supposed to do. The problem seems to lie on the blink side, people aren't reusing their FunctionTemplates (or creating them when not necessary).

Original issue's description:
> Don't overwrite existing serial numbers on the function template, otherwise instantiating the function for a new context causes the serial number to bump.
>
> Committed: https://crrev.com/1e638c3610ec6938e5fb16c42018642195782fb2
> Cr-Commit-Position: refs/heads/master@{#27048}

TBR=yangguo@chromium.org,dcarney@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

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

9 years agouse a hash table for the function cache as blink is leaking functiontemplates
dcarney [Mon, 9 Mar 2015 12:26:22 +0000 (05:26 -0700)]
use a hash table for the function cache as blink is leaking functiontemplates

BUG=

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

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

9 years ago[x86] Faster/shorter code for stack checks.
Benedikt Meurer [Mon, 9 Mar 2015 11:06:30 +0000 (12:06 +0100)]
[x86] Faster/shorter code for stack checks.

Avoid loading the stack pointer and the stack limit into allocatable
registers first, but generate a cmp rsp,[limit] instead.

R=dcarney@chromium.org

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

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

9 years agoDo not set target in deoptimized code in keyed store IC.
Jaroslav Sevcik [Mon, 9 Mar 2015 10:10:59 +0000 (11:10 +0100)]
Do not set target in deoptimized code in keyed store IC.

BUG=chromium:460937
R=ishell@chromium.org
LOG=n

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

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

9 years agoRevert of Remove slots that point to unboxed doubles from the StoreBuffer/SlotsBuffer...
ishell@chromium.org [Mon, 9 Mar 2015 10:10:36 +0000 (11:10 +0100)]
Revert of Remove slots that point to unboxed doubles from the StoreBuffer/SlotsBuffer. (patchset #4 id:230001 of https://codereview.chromium.org/957273002/)

Reason for revert:
It caused a lot of Canary crashes.

Original issue's description:
> Remove slots that point to unboxed doubles from the StoreBuffer/SlotsBuffer.
>
> The problem is that tagged slot could become a double slot after migrating of an object to another map with "shifted" fields (for example as a result of generalizing immutable data property to a data field).
> This CL also adds useful machinery that helps triggering incremental write barriers.
>
> BUG=chromium:454297
> LOG=Y
>
> Committed: https://crrev.com/9633ebabd405c264d33f603f8798c31f59418dcd
> Cr-Commit-Position: refs/heads/master@{#27054}

TBR=verwaest@chromium.org,hpayer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:454297

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

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

9 years ago[turbofan] Minor cleanup for JSGenericLowering.
Benedikt Meurer [Mon, 9 Mar 2015 10:07:52 +0000 (11:07 +0100)]
[turbofan] Minor cleanup for JSGenericLowering.

Include what you use, and move implementation details to .cc file.

R=svenpanne@chromium.org

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

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

9 years agoadd V8_DEPRECATE_SOON macros to make it easier to identify calls which need deprecation
Dan Carney [Mon, 9 Mar 2015 09:49:09 +0000 (10:49 +0100)]
add V8_DEPRECATE_SOON macros to make it easier to identify calls which need deprecation

BUG=
R=svenpanne@chromium.org

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

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

9 years ago[turbofan] Add an extra frame state for deoptimization before binary op.
Jaroslav Sevcik [Mon, 9 Mar 2015 08:37:01 +0000 (09:37 +0100)]
[turbofan] Add an extra frame state for deoptimization before binary op.

BUG=
R=bmeurer@chromium.org

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

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

9 years ago[turbofan] Add support for inlining of builtins.
Benedikt Meurer [Mon, 9 Mar 2015 08:05:24 +0000 (09:05 +0100)]
[turbofan] Add support for inlining of builtins.

We mark certain builtins for inlining, and those should always be
inlined into optimized code (CrankShaft already handles it this way), so
we should support that in TurboFan as well. Currently this mainly
affects a certain set of Math functions, but once have the basics in
place we can extend this to any kind of builtin/code stub/accessor.

This adds a new flag --turbo_builtin_inlining (enabled by default), that
forces the inliner to always inline builtins marked for inlining, but
does not affect inlining of other functions (this is still controlled by
the --turbo-inlining flag).

BUG=v8:3952
LOG=n
R=jarin@chromium.org

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

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

9 years ago[turbofan] Skip function entry stack check for inlinee.
Benedikt Meurer [Mon, 9 Mar 2015 07:30:44 +0000 (08:30 +0100)]
[turbofan] Skip function entry stack check for inlinee.

This is currently the cleanest approach to avoid the useless stack check
during inlining. We might be able to just remove the useless stack
checks later when we have a phase that also takes care of removing
redundant stack checks on loop back edges (which we do not generate
currently).

On the other hand, the flag introduced here might be useful when
building code stubs/builtins/dom stubs using JS based DSL, because you
certainly don't want a JS-level stack check in a code stub.

R=jarin@chromium.org
BUG=v8:3952
LOG=n

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

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

9 years ago[fdlibm] Inline coefficients for __kernel_sin and __kernel_cos.
Benedikt Meurer [Mon, 9 Mar 2015 07:29:57 +0000 (08:29 +0100)]
[fdlibm] Inline coefficients for __kernel_sin and __kernel_cos.

Loading the coefficients from a the constants typed array is currently
blocking inlining MathSin and MathCos into TurboFan generated code,
because there is no type feedback and hence TurboFan has to generate a
LOAD_IC for every coefficient.

R=yanggou@chromium.org
BUG=v8:3952
LOG=n

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

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

9 years ago[turbofan] Introduce JSStackCheck operator.
Benedikt Meurer [Mon, 9 Mar 2015 05:01:53 +0000 (06:01 +0100)]
[turbofan] Introduce JSStackCheck operator.

The key idea here is that the stack check should be explicit, such that
we can eliminate unnecessary stack checks after graph building and
potentially inlining.

R=mstarzinger@chromium.org

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

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

9 years agointroduce android_x64 build target
Weiliang Lin [Mon, 9 Mar 2015 03:25:07 +0000 (11:25 +0800)]
introduce android_x64 build target

BUG=
R=jkummerow@chromium.org

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

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

9 years agoRemove slots that point to unboxed doubles from the StoreBuffer/SlotsBuffer.
ishell [Fri, 6 Mar 2015 23:54:59 +0000 (15:54 -0800)]
Remove slots that point to unboxed doubles from the StoreBuffer/SlotsBuffer.

The problem is that tagged slot could become a double slot after migrating of an object to another map with "shifted" fields (for example as a result of generalizing immutable data property to a data field).
This CL also adds useful machinery that helps triggering incremental write barriers.

BUG=chromium:454297
LOG=Y

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

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

9 years agoWhitespace change to test recipe trigger.
Michael Achenbach [Fri, 6 Mar 2015 19:55:03 +0000 (20:55 +0100)]
Whitespace change to test recipe trigger.

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

9 years agoRevert of Revert of Revert of Turn on job based recompilation (patchset #1 id:1 of...
rmcilroy [Fri, 6 Mar 2015 18:24:28 +0000 (10:24 -0800)]
Revert of Revert of Revert of Turn on job based recompilation (patchset #1 id:1 of https://codereview.chromium.org/955723002/)

Reason for revert:
Breaks Octane on Arm64 running on Chrome.

BUG=464538

Original issue's description:
> Revert of Revert of Turn on job based recompilation (patchset #1 id:1 of https://codereview.chromium.org/937263004/)
>
> Reason for revert:
> reland
>
> Original issue's description:
> > Revert of Turn on job based recompilation (patchset #1 id:1 of https://codereview.chromium.org/935243003/)
> >
> > Reason for revert:
> > waterfall disagrees
> >
> > Original issue's description:
> > > Turn on job based recompilation
> > >
> > > BUG=v8:3608
> > > R=yangguo@chromium.org
> > > LOG=y
> > >
> > > Committed: https://crrev.com/4ae82f64b09cdc0182cee3a5cc619a9117ac5fbc
> > > Cr-Commit-Position: refs/heads/master@{#26826}
> >
> > TBR=yangguo@chromium.org
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=v8:3608
> >
> > Committed: https://crrev.com/35cc692aecdea54fb07479b8d7b71059851e07e8
> > Cr-Commit-Position: refs/heads/master@{#26827}
>
> TBR=yangguo@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=v8:3608
>
> Committed: https://crrev.com/3735a0851a9e2726f8b50a46a3bc770992328264
> Cr-Commit-Position: refs/heads/master@{#26829}

TBR=yangguo@chromium.org,jochen@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3608

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

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

9 years ago[parser] better error message for generator constructors
caitpotter88 [Fri, 6 Mar 2015 16:54:34 +0000 (08:54 -0800)]
[parser] better error message for generator constructors

BUG=
LOG=N
R=arv@chromium.org

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

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

9 years agoMIPS: Update test status files.
dusan.milosavljevic [Fri, 6 Mar 2015 16:41:29 +0000 (08:41 -0800)]
MIPS: Update test status files.

TEST=
BUG=

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

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

9 years agoAdd MoveOnlyTypeForCPP03 to UniquePersistent for compatibility with Chromium.
kalman [Fri, 6 Mar 2015 16:39:02 +0000 (08:39 -0800)]
Add MoveOnlyTypeForCPP03 to UniquePersistent for compatibility with Chromium.

R=dcarney@chromium.org

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

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

9 years agoDon't overwrite existing serial numbers on the function template, otherwise instantia...
verwaest [Fri, 6 Mar 2015 15:25:51 +0000 (07:25 -0800)]
Don't overwrite existing serial numbers on the function template, otherwise instantiating the function for a new context causes the serial number to bump.

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

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

9 years agoDo not include code objects for functions in the start-up snapshot.
yangguo [Fri, 6 Mar 2015 15:06:54 +0000 (07:06 -0800)]
Do not include code objects for functions in the start-up snapshot.

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

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

9 years agoIntrinsics in the RUNTIME_FUNCTION_LIST are now available with '_', too.
svenpanne [Fri, 6 Mar 2015 14:58:35 +0000 (06:58 -0800)]
Intrinsics in the RUNTIME_FUNCTION_LIST are now available with '_', too.

Now the three intrinsic lists only differ in their compiler
support. Unifying the lists and making the logic what is supported in
which compiler local to the compilers themselves is handled in a
follow-up CL.

BUG=v8:3947
LOG=n

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

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

9 years agoDo not use eternal handles when creating a start-up snapshot.
yangguo [Fri, 6 Mar 2015 14:44:43 +0000 (06:44 -0800)]
Do not use eternal handles when creating a start-up snapshot.

R=ulan@chromium.org

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

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

9 years agoReland: Simplify and compact transitions storage
jkummerow [Fri, 6 Mar 2015 14:08:33 +0000 (06:08 -0800)]
Reland: Simplify and compact transitions storage

Original issue: https://codereview.chromium.org/980573002/

Simple transitions are now stored in a map's "transitions" field (as a WeakCell wrapping the target map); full TransitionArrays are used when that's not sufficient.
To encapsulate these storage format implementation details, functions for manipulating and querying transitions have been refactored to be static functions on the TransitionArray class, and take maps as inputs.

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

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

9 years agoIntrinsics in the INLINE_FUNCTION_LIST are now avaliable without '_', too.
svenpanne [Fri, 6 Mar 2015 13:49:54 +0000 (05:49 -0800)]
Intrinsics in the INLINE_FUNCTION_LIST are now avaliable without '_', too.

This involved renaming apart a few more intrinsics. In the long run,
we want to clean up redundant intrinsics which just delegate.

BUG=v8:3947
LOG=n

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

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

9 years agoMake automated branch creation gnumbd-save.
machenbach [Fri, 6 Mar 2015 13:10:22 +0000 (05:10 -0800)]
Make automated branch creation gnumbd-save.

This makes now the same simplification as the chromium
release scripts do. For creating branch B from a gnumbd'ed
(aka real) commit X do:
1. Branch Y off the real X
2. Set refs/pending/heads/B to Y
3. Set refs/pending-tags/B to X
4. Set refs/heads/B to X

The old algorithm tried to branch off the pending
correspondent of X. That commit was determined by comparing
tree objects of the real X and commits on pending.
Unfortunately, multiple commits on one branch can refer to
the same tree object, e.g., for commits P, Q, R with R being
the revert of Q, P and R refer to the same tree object.

TBR=tandrii@chromium.org
NOTRY=true
TEST=./script_test.py
TEST=tools/release/create_release.py -a me -r you --dry-run

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

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

9 years ago[turbofan] Fix the deopt ids in assignment.
jarin [Fri, 6 Mar 2015 12:50:33 +0000 (04:50 -0800)]
[turbofan] Fix the deopt ids in assignment.

BUG=chromium:463028
LOG=n
R=bmeurer@chromium.org

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

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

9 years agoRetain maps embedded in optimized code for several garbage collections.
ulan [Fri, 6 Mar 2015 12:36:16 +0000 (04:36 -0800)]
Retain maps embedded in optimized code for several garbage collections.

This keeps dying maps alive for FLAG_retain_maps_for_n_gc garbage collections
to increase chances of them being reused for new objects in future and
decrease number of deoptimizations.

BUG=v8:3664
LOG=N
TEST=cctest/test-heap/MapRetaining

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

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

9 years agoMerged INLINE_OPTIMIZED intrinsic type into INLINE.
svenpanne [Fri, 6 Mar 2015 11:01:43 +0000 (03:01 -0800)]
Merged INLINE_OPTIMIZED intrinsic type into INLINE.

BUG=v8:3947
LOG=n

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

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

9 years agoconvert more things to maybe
dcarney [Fri, 6 Mar 2015 10:28:02 +0000 (02:28 -0800)]
convert more things to maybe

BUG=v8:3929
LOG=y

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

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

9 years agoRevert of CpuProfiler: enable tests except four failing tests. (patchset #3 id:100001...
loislo [Fri, 6 Mar 2015 10:19:51 +0000 (02:19 -0800)]
Revert of CpuProfiler: enable tests except four failing tests. (patchset #3 id:100001 of https://codereview.chromium.org/976203003/)

Reason for revert:
Some tests still flaky

Original issue's description:
> CpuProfiler: enable tests except four failing tests.
>
> Four tests are failing due to a problem with no frame ranges.
>
> BUG=
> LOG=n
>
> Committed: https://crrev.com/2be160e726f2be6272b77e53fbd556aded6024f1
> Cr-Commit-Position: refs/heads/master@{#27035}

TBR=yurys@chromium.org,svenpanne@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

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

9 years ago[turbofan] Preserve pending message while inside finally-block.
mstarzinger [Fri, 6 Mar 2015 10:15:49 +0000 (02:15 -0800)]
[turbofan] Preserve pending message while inside finally-block.

This makes sure that any pending message is saved before entering
and restored after exiting a finally block. It also makes sure that
operand stacks are kept in sync to full-codegen.

R=bmeurer@chromium.org
TEST=cctest/test-run-jsexceptions/ThrowMessage

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

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

9 years agoCpuProfiler: enable tests except four failing tests.
loislo [Fri, 6 Mar 2015 10:01:40 +0000 (02:01 -0800)]
CpuProfiler: enable tests except four failing tests.

Four tests are failing due to a problem with no frame ranges.

BUG=
LOG=n

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

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

9 years agoDon't double-allocate mutable heap numbers in the json parser. This removes some...
verwaest [Fri, 6 Mar 2015 08:37:12 +0000 (00:37 -0800)]
Don't double-allocate mutable heap numbers in the json parser. This removes some stupidity when committing state.

BUG=

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

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

9 years agoSerializer: simplify external reference encoding.
yangguo [Fri, 6 Mar 2015 08:15:03 +0000 (00:15 -0800)]
Serializer: simplify external reference encoding.

External references are encoded as a tuple of type and ID. This
requires both the external reference encode and the decoder to
create a mapping between the encoding and the external reference
table index.

Instead, we simply use the external reference table index as
encoding.

We now also assume that there are no duplicate entries. Existing
duplicates have been removed in this change.

R=vogelheim@chromium.org

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

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

9 years agoAdd the code change for turbofan unsupported port.
chunyang.dai [Fri, 6 Mar 2015 06:15:41 +0000 (22:15 -0800)]
Add the code change for turbofan unsupported port.

   This is introduced by 8d2e45669f84076e95131503ea623f32483b3a7d (r26993)

original commit message:
   First shot at eager deoptimization in Turbofan.

BUG=

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

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

9 years agoOnly reference constant root list entries in the snapshot.
yangguo [Thu, 5 Mar 2015 21:24:12 +0000 (13:24 -0800)]
Only reference constant root list entries in the snapshot.

R=hpayer@chromium.org

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

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

9 years agoRevert of Simplify and compact transitions storage (patchset #4 id:80001 of https...
jkummerow [Thu, 5 Mar 2015 20:41:47 +0000 (12:41 -0800)]
Revert of Simplify and compact transitions storage (patchset #4 id:80001 of https://codereview.chromium.org/980573002/)

Reason for revert:
x64 test failures

Original issue's description:
> Simplify and compact transitions storage
>
> Simple transitions are now stored in a map's "transitions" field (as a WeakCell wrapping the target map); full TransitionArrays are used when that's not sufficient.
> To encapsulate these storage format implementation details, functions for manipulating and querying transitions have been refactored to be static functions on the TransitionArray class, and take maps as inputs.
>
> Committed: https://crrev.com/45fbef7f2252fce10634931cb103ccc1fc95ae6a
> Cr-Commit-Position: refs/heads/master@{#27029}

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

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

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

9 years agoSimplify and compact transitions storage
jkummerow [Thu, 5 Mar 2015 20:09:26 +0000 (12:09 -0800)]
Simplify and compact transitions storage

Simple transitions are now stored in a map's "transitions" field (as a WeakCell wrapping the target map); full TransitionArrays are used when that's not sufficient.
To encapsulate these storage format implementation details, functions for manipulating and querying transitions have been refactored to be static functions on the TransitionArray class, and take maps as inputs.

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

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

9 years agoMIPS: [turbofan] Support for %_DoubleHi, %_DoubleLo and %_ConstructDouble.
balazs.kilvady [Thu, 5 Mar 2015 19:28:12 +0000 (11:28 -0800)]
MIPS: [turbofan] Support for %_DoubleHi, %_DoubleLo and %_ConstructDouble.

Port 4436c2642a9b7adc9a1b68577ae9ca9a9a404c06

Original commit message:
This adds support for the double bits intrinsics to TurboFan, and is
a first step towards fast Math functions inlined into TurboFan code
or even compiled by themselves with TurboFan.

BUG=

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

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

9 years agoMIPS: [turbofan] Implement throwing exceptions into TurboFan code.
balazs.kilvady [Thu, 5 Mar 2015 19:26:49 +0000 (11:26 -0800)]
MIPS: [turbofan] Implement throwing exceptions into TurboFan code.

Port 1382879f29bd71c36aeda2421e867c4cdd232a0d

Original commit message:
This extends the stack unwinding logic to respect optimized frames
and perform a lookup in the handler table to find handlers. It also
contains fixes to the API call stubs to allow a stack walk while
promoting scheduled exceptions.

BUG=

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

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

9 years agoRemove promotion backup case and report OOM instead.
hpayer [Thu, 5 Mar 2015 18:38:30 +0000 (10:38 -0800)]
Remove promotion backup case and report OOM instead.

There are no test cases for this piece of code and it is really hard to test. If this rare case triggers, we are anyway in an OOM situation and would crash probably soon afterwards.

BUG=

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

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

9 years ago[V8] Use Function.name for stack frames in v8::StackTrace
kozyatinskiy [Thu, 5 Mar 2015 18:31:32 +0000 (10:31 -0800)]
[V8] Use Function.name for stack frames in v8::StackTrace

If function.name property has string type then stack frame will contain it otherwise DebugName from shared function info.

BUG=17356
LOG=Y
R=yurys@chromium.org

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

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

9 years agodisable some arm tests after r27020
Dan Carney [Thu, 5 Mar 2015 17:49:29 +0000 (18:49 +0100)]
disable some arm tests after r27020

TBR=yangguo@chromium.org

BUG=

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

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

9 years agoMIPS: Fix exception for assignment to uninitialised const.
balazs.kilvady [Thu, 5 Mar 2015 17:04:23 +0000 (09:04 -0800)]
MIPS: Fix exception for assignment to uninitialised const.

Port 2ecdf736cf0409b52832f78a4439ace855d6739b

BUG=

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

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

9 years agoDisable turbofan for serializer tests.
Yang Guo [Thu, 5 Mar 2015 14:46:39 +0000 (15:46 +0100)]
Disable turbofan for serializer tests.

TBR=dcarney@chromium.org

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

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

9 years agoFix progress check in auto-roller.
machenbach [Thu, 5 Mar 2015 14:04:59 +0000 (06:04 -0800)]
Fix progress check in auto-roller.

Using a git range check for checking progress is wrong when
the last rolled revision and the revision candidate are on
different branches. The range A..B will always show the
commits from the merge-base of A and B until B.

Better compare the tags of the last rolled revision and the
candidate. The candidate's version must be strictly greater
than what's in chromium.

TBR=tandrii@chromium.org
NOTRY=true
TEST=./script_test.py

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

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

9 years agoSerializer: correctly deal with internal references.
yangguo [Thu, 5 Mar 2015 13:46:31 +0000 (05:46 -0800)]
Serializer: correctly deal with internal references.

Internal references are absolute addresses into the instruction
stream. Turn them into relative addresses when serializing and
back when deserializing to keep them valid.

R=bmeurer@chromium.org

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

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

9 years agoUse faster IsDecimalDigit in the json parser
verwaest [Thu, 5 Mar 2015 13:44:17 +0000 (05:44 -0800)]
Use faster IsDecimalDigit in the json parser

BUG=

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

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

9 years agoreland rename UniquePersistent to Global
dcarney [Thu, 5 Mar 2015 13:26:20 +0000 (05:26 -0800)]
reland rename UniquePersistent to Global

BUG=

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

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

9 years agoAllow passing sourceMapUrl when compiling scripts
yurys [Thu, 5 Mar 2015 13:03:42 +0000 (05:03 -0800)]
Allow passing sourceMapUrl when compiling scripts

According to Source Map specification [1] source map url can be passed either as a magic comment at the end of script or as SourceMap http header. We already parse the former value and expose it on Script object. This change allows to unify the way we deal with source map urls received in http header by providing api for passing that url into the script being compiled.

source_map_url is intentionally not passed into CompilationCacheScript::Lookup. The cache is anyways disabled when debugger is on.

[1] https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit

LOG=Y
BUG=chromium:462572

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

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

9 years ago[turbofan] Implement throwing exceptions into TurboFan code.
mstarzinger [Thu, 5 Mar 2015 13:02:34 +0000 (05:02 -0800)]
[turbofan] Implement throwing exceptions into TurboFan code.

This extends the stack unwinding logic to respect optimized frames
and perform a lookup in the handler table to find handlers. It also
contains fixes to the API call stubs to allow a stack walk while
promoting scheduled exceptions.

R=jarin@chromium.org
TEST=cctest/test-run-jsexceptions

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

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

9 years agoFix host compilation with clang for android.
machenbach [Thu, 5 Mar 2015 12:54:27 +0000 (04:54 -0800)]
Fix host compilation with clang for android.

BUG=

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

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

9 years agoFix exception for assignment to uninitialised const
rossberg [Thu, 5 Mar 2015 12:43:55 +0000 (04:43 -0800)]
Fix exception for assignment to uninitialised const

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

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

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

9 years agoconvert compile functions to use maybe
dcarney [Thu, 5 Mar 2015 12:26:07 +0000 (04:26 -0800)]
convert compile functions to use maybe

BUG=v8:3929
LOG=y

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

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

9 years agoRevert of rename UniquePersistent to Global (patchset #2 id:20001 of https://coderevi...
machenbach [Thu, 5 Mar 2015 12:10:23 +0000 (04:10 -0800)]
Revert of rename UniquePersistent to Global (patchset #2 id:20001 of https://codereview.chromium.org/980173003/)

Reason for revert:
breaks arm compile

Original issue's description:
> rename UniquePersistent to Global
>
> BUG=
>
> Committed: https://crrev.com/3f5ae16c62b031ad572f750d81ffc71c5d6d1f9b
> Cr-Commit-Position: refs/heads/master@{#27011}

TBR=svenpanne@chromium.org,dcarney@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

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

9 years agorename UniquePersistent to Global
dcarney [Thu, 5 Mar 2015 11:40:35 +0000 (03:40 -0800)]
rename UniquePersistent to Global

BUG=

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

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

9 years agoMade the entries of the various *_FUNCTION_LISTs disjoint.
svenpanne [Thu, 5 Mar 2015 11:26:32 +0000 (03:26 -0800)]
Made the entries of the various *_FUNCTION_LISTs disjoint.

This way, every function in those lists has one C++ implementation
called Runtime_##name. The previous distinction was confusing.

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

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

9 years agoMake auto-roller roll recent release based on timestamp.
machenbach [Thu, 5 Mar 2015 10:50:00 +0000 (02:50 -0800)]
Make auto-roller roll recent release based on timestamp.

Before this change, out of two versions 4.2.13.1 and
4.2.14, the latter would have been considered the newest.
Now, the timestamp of the commit determines the age, which
allows to roll a patched version first. The auto-roller
will only roll forward (i.e. there needs to be a commit
range between the last roll and the new candidate).

Additionally, this CL does some cleanups:
- Use the sheriff detection mechanism in the auto-roller.
- Require the roll revision parameter in the chromium_roll
script to avoid redundancy. The auto_roll script determines
that revision automatically.
- Simplify the revision summary in the commit message. The
summary will now show last_roll..new_roll, which e.g.
includes the version change CL. It'll now show useful
information for cherry-picks, which it didn't before.
- Remove unused clusterfuzz check. That check is part of the
release process script.

TBR=tandrii@chromium.org
NOTRY=true
TEST=./script_test.py
TEST=./tools/release/chromium_roll.py --dry-run --sheriff -c ~/tmp/chromium/src --last-roll 55b9049ea3978a589d8db2aa191d21222eef737f fc263505535a175c8efa18f4c787bd92a1d1ab3d --use-commit-queue -r me -a you

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

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

9 years agoCpuProfiler: simplify test.
loislo [Thu, 5 Mar 2015 10:37:56 +0000 (02:37 -0800)]
CpuProfiler: simplify test.

BUG=
LOG=n
TBR=yurys, svenpanne

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

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

9 years ago[ia32] Fix typo in no-SSE4.1 code.
Benedikt Meurer [Thu, 5 Mar 2015 09:45:51 +0000 (10:45 +0100)]
[ia32] Fix typo in no-SSE4.1 code.

TBR=dcarney@chromium.org

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

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

9 years ago[turbofan] Support for %_DoubleHi, %_DoubleLo and %_ConstructDouble.
bmeurer [Thu, 5 Mar 2015 09:22:26 +0000 (01:22 -0800)]
[turbofan] Support for %_DoubleHi, %_DoubleLo and %_ConstructDouble.

This adds support for the double bits intrinsics to TurboFan, and is
a first step towards fast Math functions inlined into TurboFan code
or even compiled by themselves with TurboFan.

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

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

9 years ago[turbofan] Enable DeoptFinallyReturn test that no longer fails.
mstarzinger [Thu, 5 Mar 2015 09:17:03 +0000 (01:17 -0800)]
[turbofan] Enable DeoptFinallyReturn test that no longer fails.

This was fixed by 064be2385ad3 and will no longer fail, even on the
no-snap ARM64 simulator.

R=bmeurer@chromium.org
TEST=cctest/test-run-jsexceptions/DeoptFinallyReturn

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

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

9 years agogive UniquePersistent full move semantics
dcarney [Thu, 5 Mar 2015 08:30:43 +0000 (00:30 -0800)]
give UniquePersistent full move semantics

BUG=v8:3669
LOG=Y

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

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

9 years agoX87: Refactor BreakLocationIterator
chunyang.dai [Thu, 5 Mar 2015 05:40:56 +0000 (21:40 -0800)]
X87: Refactor BreakLocationIterator

port 1a608493e55eacf5c7569e2b1213da42eb0e6207 (r26983)

original commit message:

   Refactor BreakLocationIterator.

   We now have BreakLocation::Iterator to iterate via RelocIterator, and
   create a BreakLocation when we are done iterating. The reloc info is
   stored in BreakLocation in a GC-safe way and instantiated on demand.

BUG=

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

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

9 years agoUpdate V8 DEPS.
v8-autoroll [Thu, 5 Mar 2015 04:24:13 +0000 (20:24 -0800)]
Update V8 DEPS.

Rolling v8/build/gyp to 4a9b712d5cb4a5ba7a9950128a7219569caf7263

Rolling v8/buildtools to d4dd4f79f60bf019625b3a1436979b0a42c892df

Rolling v8/tools/clang to 5309ba9a6f1e56592860a623db451aef00ae941d

TBR=machenbach@chromium.org

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

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

9 years agoX87: Implement subclassing Arrays.
chunyang.dai [Thu, 5 Mar 2015 02:58:50 +0000 (18:58 -0800)]
X87: Implement subclassing Arrays.

port 1604bd46bf7fe0a8f7cd7780174030e26b93ab37 (r26972).

original commit message:

   Implement subclassing Arrays.

BUG=

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

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

9 years agoX87: Move stack unwinding logic into the runtime.
chunyang.dai [Thu, 5 Mar 2015 02:57:43 +0000 (18:57 -0800)]
X87: Move stack unwinding logic into the runtime.

port 4acbc93dbfe338adb217f4971e914f77afe504d9 (r26957)

original commit message:

   Move stack unwinding logic into the runtime.

BUG=

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

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

9 years agoUpdate V8 DEPS.
machenbach [Wed, 4 Mar 2015 19:45:30 +0000 (11:45 -0800)]
Update V8 DEPS.

Rolling v8/third_party/icu to eda9e75b1fa17f57ffa369ee3543a2301b68d0a9

TBR=jochen@chromium.org

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

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

9 years agoUse bit_cast for Runtime_Double{Hi,Lo}.
yangguo [Wed, 4 Mar 2015 18:55:01 +0000 (10:55 -0800)]
Use bit_cast for Runtime_Double{Hi,Lo}.

To avoid undefined behavior.

R=bmeurer@chromium.org

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

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

9 years agoSpeed up string scanning
verwaest [Wed, 4 Mar 2015 17:57:51 +0000 (09:57 -0800)]
Speed up string scanning

BUG=

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

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

9 years agoES6: Make function name configurable
arv [Wed, 4 Mar 2015 16:56:55 +0000 (08:56 -0800)]
ES6: Make function name configurable

Function name property is now standardized in ES6. It was a Mozilla proprietary
extension before. With ES6, the property was made configurable, so that it can
be used instead of another proprietary property, displayName.

This is a revert of revert https://chromium.googlesource.com/v8/v8.git/+/c791d8411225aa95518c880defd9a5b1ea243afc.

Last time this broke a Chrome browser test which has since been updated:

https://chromium.googlesource.com/chromium/src/+/5f75a3be4c9334aba627d6c5eb884adf965e1d78

BUG=v8:3333
LOG=N
R=mstarzinger@chromium.org,verwaest@chromium.org
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel

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

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

9 years agoMIPS: ARM: Load undefined receiver sentinel without constant pool.
balazs.kilvady [Wed, 4 Mar 2015 16:55:43 +0000 (08:55 -0800)]
MIPS: ARM: Load undefined receiver sentinel without constant pool.

Port a820568b1ffbf76c3f80b9e00fc0b988b073dfaf

Each call to emit_32 uses 5 constant pool slots:
* the "emit_32" string
* undefined (the receiver)
* the argument (heap number)
* the load IC
* the call IC

This change cuts that down 20% to 4, by loading the undefined from the heap roots.

BUG=

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

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

9 years agoSerializer: fix false negative in hashmap lookups.
yangguo [Wed, 4 Mar 2015 15:36:02 +0000 (07:36 -0800)]
Serializer: fix false negative in hashmap lookups.

If we use HashMap::Lookup with insert=true, the returned entry may have
NULL as value. This could either mean that the value is 0, or that the
entry has just been inserted. This ambiguity can cause false negatives
in PartialCacheIndexMap::LookupOrInsert.

Also fix a TODO.

R=vogelheim@chromium.org

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

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

9 years ago[turbofan] First shot at eager deoptimization in Turbofan.
jarin [Wed, 4 Mar 2015 15:21:14 +0000 (07:21 -0800)]
[turbofan] First shot at eager deoptimization in Turbofan.

BUG=

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

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

9 years agoSerializer: still install experimental globals when creating a snapshot.
yangguo [Wed, 4 Mar 2015 15:01:55 +0000 (07:01 -0800)]
Serializer: still install experimental globals when creating a snapshot.

Experimental globals are simply flag values on the builtins object to
turn on/off harmony features. We still need to declare them even when
we don't turn on harmony features for the snapshot.

R=vogelheim@chromium.org

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

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

9 years ago[turbofan] Simplify and fix JS typed lowering type init.
jarin [Wed, 4 Mar 2015 14:55:23 +0000 (06:55 -0800)]
[turbofan] Simplify and fix JS typed lowering type init.

Removing and fixing some embarrassing stuff in js-typed-lowering.

BUG=
R=bmeurer@chromium.org

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

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

9 years agoMIPS64: Fix 'Use Rotate*() functions instead of doing this manually.'
balazs.kilvady [Wed, 4 Mar 2015 14:34:00 +0000 (06:34 -0800)]
MIPS64: Fix 'Use Rotate*() functions instead of doing this manually.'

BUG=

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

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

9 years ago[turbofan] Fix exception being re-thrown after finally-block.
mstarzinger [Wed, 4 Mar 2015 14:28:33 +0000 (06:28 -0800)]
[turbofan] Fix exception being re-thrown after finally-block.

This makes sure that the implicit exception edges in the graph pass
the correct exception object and also fixes a bug in the dominance
relationship of the value entering the finally block and it's uses.

R=jarin@chromium.org
TEST=cctest/test-run-jsexceptions/FinallyBreak

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

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

9 years agoRevert of Remove default value for number of threads in Isolate::Init. (patchset...
yangguo [Wed, 4 Mar 2015 14:27:22 +0000 (06:27 -0800)]
Revert of Remove default value for number of threads in Isolate::Init. (patchset #1 id:1 of https://codereview.chromium.org/978773002/)

Reason for revert:
build failures.

Original issue's description:
> Remove default value for number of threads in Isolate::Init.
>
> Just fixing a TODO.
>
> R=jochen@chromium.org
>
> Committed: https://crrev.com/fbcebbc5bdfd8eed82d121faf07b536eb3142fb7
> Cr-Commit-Position: refs/heads/master@{#26987}

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

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

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

9 years agoRemove default value for number of threads in Isolate::Init.
yangguo [Wed, 4 Mar 2015 14:08:33 +0000 (06:08 -0800)]
Remove default value for number of threads in Isolate::Init.

Just fixing a TODO.

R=jochen@chromium.org

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

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

9 years agoRevert of Default-enable external startup data for Linux for stand-alone builds....
vogelheim [Wed, 4 Mar 2015 13:53:11 +0000 (05:53 -0800)]
Revert of Default-enable external startup data for Linux for stand-alone builds. (patchset #1 id:1 of https://codereview.chromium.org/956373002/)

Reason for revert:
The CL caused two issues:
- a weird build issue on V8 mips builder
- d8 cannot be invoked via PATH, since then it doesn't find its external snapshot.

The 2nd issue might even be WAI, but this needs more consideration.

Original issue's description:
> Default-enable external startup data for Linux for stand-alone builds.
>
> Notes:
> - Other platforms to follow later.
> - This follows Chromium practice, that mostly uses this feature these days.
> - The statically linked-in startup data will stay. So whoever prefers
>   the old way just needs to set the flag differently.
>
> Reland crrev.com/959693002, once crrev.com/960883003 is in.
>
> R=machenbach@chromium.org
> BUG=
>
> Committed: https://crrev.com/a0bdb103b676b4c7fa6b9f2e7149e716549c05d1
> Cr-Commit-Position: refs/heads/master@{#26980}

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

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

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

9 years agoRespect accumulative old generation memory limit in all spaces.
hpayer [Wed, 4 Mar 2015 13:43:23 +0000 (05:43 -0800)]
Respect accumulative old generation memory limit in all spaces.

Before the max_old_space_size was set for each space, which is not intuitive and not what we want. There is still a miss match between capacity and actual committed memory which should be cleaned up in a follow up cl.

BUG=

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

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

9 years ago[x86] Fix InstructionSelector::SupportedMachineOperatorFlags().
bmeurer [Wed, 4 Mar 2015 13:38:40 +0000 (05:38 -0800)]
[x86] Fix InstructionSelector::SupportedMachineOperatorFlags().

Word32 shifts are always safe on ia32 and x64, independent of whether
SSE4.1 is available.

R=dcarney@chromium.org

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

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

9 years agoRefactor BreakLocationIterator.
yangguo [Wed, 4 Mar 2015 13:15:07 +0000 (05:15 -0800)]
Refactor BreakLocationIterator.

We now have BreakLocation::Iterator to iterate via RelocIterator, and
create a BreakLocation when we are done iterating. The reloc info is
stored in BreakLocation in a GC-safe way and instantiated on demand.

R=ulan@chromium.org
BUG=v8:3924
LOG=N

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

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

9 years agoDisable experimental natives when creating a start-up snapshot.
yangguo [Wed, 4 Mar 2015 13:01:23 +0000 (05:01 -0800)]
Disable experimental natives when creating a start-up snapshot.

Re-installing experimental natives after deserialization causes failures if
said experimental native is already included in the snapshot. However, there
is no way to tell whether a certain harmony feature has been included.

Experimental natives may also be turned on/off on-demand, which a snapshot
that includes them would not support for all cases.

The simple solution for the meantime is to never include experimental natives
in the snapshot and initialize them after deserialization on-demand.

R=vogelheim@chromium.org

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

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

9 years agoconvert remaining object functions to maybes
dcarney [Wed, 4 Mar 2015 12:58:31 +0000 (04:58 -0800)]
convert remaining object functions to maybes

BUG=v8:3929
LOG=y

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

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

9 years agoDefault-enable external startup data for Linux for stand-alone builds.
vogelheim [Wed, 4 Mar 2015 12:21:52 +0000 (04:21 -0800)]
Default-enable external startup data for Linux for stand-alone builds.

Notes:
- Other platforms to follow later.
- This follows Chromium practice, that mostly uses this feature these days.
- The statically linked-in startup data will stay. So whoever prefers
  the old way just needs to set the flag differently.

Reland crrev.com/959693002, once crrev.com/960883003 is in.

R=machenbach@chromium.org
BUG=

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

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

9 years agoARM: Load undefined receiver sentinel without constant pool
erikcorry [Wed, 4 Mar 2015 11:02:21 +0000 (03:02 -0800)]
ARM: Load undefined receiver sentinel without constant pool

Each call to emit_32 uses 5 constant pool slots:
* the "emit_32" string
* undefined (the receiver)
* the argument (heap number)
* the load IC
* the call IC

This change cuts that down 20% to 4, by loading the undefined from the heap roots.

R=verwaest@chromium.org
BUG=

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

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

9 years agoFix Initialize & Dispose for external snapshot. Make sure v8::V8::(Initialize|Dispose...
vogelheim [Wed, 4 Mar 2015 10:37:47 +0000 (02:37 -0800)]
Fix Initialize & Dispose for external snapshot. Make sure v8::V8::(Initialize|Dispose) can be called in any order.

This is a follow-on to crrev.com/960883003, which fixed a memory leak in this code, but uncovered another, more subtle bug:

Previously, the code expected you would v8::V8::Initialize once, and v8::V8::Dispose once. The first bug was that in this case the holder_ variable would point to deallocated memory. The second bug was that once the snapshot was disposed, there was no way to get it back on a future Initialize. These are uncovered by the InitializeAndDisposeMultiple test case.

The fix is to keep memory to the raw snapshot and to then cleanly build & destroy the tables in Initialize & Dispose. Since sometimes setNativesBlob is called just after Initialize, that situation must be handled, too.

BUG=

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

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