platform/upstream/v8.git
9 years agoJust visit young array buffers during scavenge. Additionally keep the views in new...
hpayer [Wed, 11 Mar 2015 10:57:53 +0000 (03:57 -0700)]
Just visit young array buffers during scavenge. Additionally keep the views in new space in a separate global list and move them to the corresponding array buffers when they get promoted.

BUG=

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

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

9 years agoSimplify pending message script handling.
mstarzinger [Wed, 11 Mar 2015 10:02:39 +0000 (03:02 -0700)]
Simplify pending message script handling.

This removes the separate tracking of the pending message script,
because that script is already stored in the message object and
duplicating it in the ThreadLocalTop makes it more brittle.

R=bmeurer@chromium.org

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

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

9 years agoconvert most remaining api functions needing context to maybes
dcarney [Wed, 11 Mar 2015 09:32:57 +0000 (02:32 -0700)]
convert most remaining api functions needing context to maybes

BUG=

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

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

9 years agoContribution of PowerPC port (continuation of 422063005) - uplevel
michael_dawson [Wed, 11 Mar 2015 08:49:27 +0000 (01:49 -0700)]
Contribution of PowerPC port (continuation of 422063005) - uplevel

Contribution of PowerPC port (continuation of 422063005,
817143002,866843003, and 901083004). This patch updates
the ppc directories to make them current with changes in
common code as of today.

We had to exclude the test test-serialize/SerializeInternalReference
until we agree on the right way to add those changes for PPC as
outlined in the description in the google doc provided earlier.

We also had to exclude a couple of other tests due to new
failures seen since the last uplevel.  We excluded as opposed
to waiting until we could investigate to maximize the chance
of getting PPC compiling in the google repos before new
breaking changes are made.

I'll note that before applying any of our changes the
mozilla part of quickcheck was already broken when using
the lastest repo content so I had to run without that

modified:   src/compiler/ppc/code-generator-ppc.cc
modified:   src/compiler/ppc/instruction-codes-ppc.h
modified:   src/compiler/ppc/instruction-selector-ppc.cc
modified:   src/ic/ppc/handler-compiler-ppc.cc
modified:   src/ic/ppc/ic-compiler-ppc.cc
modified:   src/ppc/assembler-ppc-inl.h
modified:   src/ppc/assembler-ppc.cc
modified:   src/ppc/assembler-ppc.h
modified:   src/ppc/builtins-ppc.cc
modified:   src/ppc/code-stubs-ppc.cc
modified:   src/ppc/codegen-ppc.cc
modified:   src/ppc/full-codegen-ppc.cc
modified:   src/ppc/lithium-codegen-ppc.cc
modified:   src/ppc/macro-assembler-ppc.cc
modified:   src/ppc/macro-assembler-ppc.h
modified:   test/cctest/cctest.status

R=danno@chromium.org, svenpanne@chromium.org

BUG=

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

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

9 years agoAdd Cast() to Boolean
bashi [Tue, 10 Mar 2015 23:40:11 +0000 (16:40 -0700)]
Add Cast() to Boolean

We should be able to cast a Value to Boolean when IsBoolean() is true.

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

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

9 years agoMIPS: Remove frame pointer from StackHandler.
paul.lind [Tue, 10 Mar 2015 20:43:40 +0000 (13:43 -0700)]
MIPS: Remove frame pointer from StackHandler.

Port 36e69a916f2a88664887d2b62f0eaf8400edb182

Original commit message:
This reduces the size of the StackHandler by yet another word. We no
longer need to keep track of the frame pointer, as the stack walk will
be able to recalculate it.

BUG=

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

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

9 years ago[parser] parse arrow function only if no linefeed before =>
caitpotter88 [Tue, 10 Mar 2015 19:24:49 +0000 (12:24 -0700)]
[parser] parse arrow function only if no linefeed before =>

BUG=v8:3954
LOG=N
R=arv@chromium.org

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

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

9 years agohandle the special snowflakes that are Integer Indexed Exotic objects
dcarney [Tue, 10 Mar 2015 19:11:11 +0000 (12:11 -0700)]
handle the special snowflakes that are Integer Indexed Exotic objects

the implementation doesn't yet throw on strict mode assignment

BUG=

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

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

9 years agoMIPS: Remove code object from StackHandler.
balazs.kilvady [Tue, 10 Mar 2015 19:07:18 +0000 (12:07 -0700)]
MIPS: Remove code object from StackHandler.

Port e0aa8ebf933b4c659e1c4a01ba244c5de452ff1c

Original commit message:
This reduces the size of the StackHandler by one word. We no longer
need to keep track of the code object, as the stack walk finds it.

BUG=

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

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

9 years agoMIPS: [es6] Throw TypeError for computed static prototype property name
balazs.kilvady [Tue, 10 Mar 2015 19:06:11 +0000 (12:06 -0700)]
MIPS: [es6] Throw TypeError for computed static prototype property name

Port 8d946b9c3f6ea42dd5232c0529be4d47798b06aa

Original commit message:
The prototype of a class constructor function is read only. When we set
computed property names we were ignoring this and we were overriding the
property.

Since the prototype is the only possible own read only property on the
constructor function object we special case this so we do not have to
check this for every property in the class literal.

BUG=v8:3945
LOG=N

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

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

9 years ago[strong] More scoping related errors: object literal methods.
marja [Tue, 10 Mar 2015 16:47:50 +0000 (09:47 -0700)]
[strong] More scoping related errors: object literal methods.

This CL adds errors for illegal references which occur inside object literal
methods inside computed properrty names.

BUG=v8:3948,v8:3956
LOG=N

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

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

9 years agoMIPS: [turbofan] Unify Math.floor / Math.ceil optimization.
balazs.kilvady [Tue, 10 Mar 2015 16:34:40 +0000 (09:34 -0700)]
MIPS: [turbofan] Unify Math.floor / Math.ceil optimization.

Port 022ea7e05779f07b9327bcc2d4709fc80b2aeecb

Original commit message:
Provide an intrinsic %MathFloor / %_MathFloor that is used to optimize
both Math.ceil and Math.floor, and use the JS inlining mechanism to
inline Math.ceil into TurboFan code. Although we need to touch code
outside of TurboFan to make this work, this does not affect the way we
handle Math.ceil and/or Math.floor in CrankShaft, because for CrankShaft
the old-style builtin function id based inlining still kicks in first.

Once this solution is stabilized, we can use it for Math.floor as well.
And once that is settled, we can establish it as the unified way to
inline builtins, and get rid of the specialized builtin function id
based inlining at some point.

Note that "builtin" applies to basically every piece of internal
JavaScript/intrinsics based code, so this also applies to the yet to be
defined JavaScript based code stubs and handlers.

BUG=v8:3953
LOG=n

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

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

9 years agoCpuProfiler: enable tests except four failing tests.
loislo [Tue, 10 Mar 2015 16:18:22 +0000 (09:18 -0700)]
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}

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

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

9 years agoRemove frame pointer from StackHandler.
mstarzinger [Tue, 10 Mar 2015 15:56:15 +0000 (08:56 -0700)]
Remove frame pointer from StackHandler.

This reduces the size of the StackHandler by yet another word. We no
longer need to keep track of the frame pointer, as the stack walk will
be able to recalculate it.

R=yangguo@chromium.org

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

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

9 years agoCpuProfiler: fix for CollectDeoptEvents test on arm
loislo [Tue, 10 Mar 2015 15:15:13 +0000 (08:15 -0700)]
CpuProfiler: fix for CollectDeoptEvents test on arm

The same idea as in https://codereview.chromium.org/984893003/

BUG=chromium:452067
LOG=n

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

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

9 years agoRemove uid and title from HeapSnapshot
yurys [Tue, 10 Mar 2015 15:14:01 +0000 (08:14 -0700)]
Remove uid and title from HeapSnapshot

None of these fields is used in Blink. Embedder always can implement them using existing API.

BUG=chromium:465651
LOG=Y

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

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

9 years agoCpuProfiler: slightly reduce the size of JumpTable code on arm64.
loislo [Tue, 10 Mar 2015 15:12:53 +0000 (08:12 -0700)]
CpuProfiler: slightly reduce the size of JumpTable code on arm64.

BUG=chromium:452067
LOG=n
R=svenpanne@chromium.org, jacob.bramley@arm.com, yurys@chromium.org

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

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

9 years agoRefactor TypeFeedbackOracle to accept Handle<Name> instead of Handle<String>.
Ben L. Titzer [Tue, 10 Mar 2015 15:06:10 +0000 (16:06 +0100)]
Refactor TypeFeedbackOracle to accept Handle<Name> instead of Handle<String>.

R=verwaest@chromium.org
BUG=

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

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

9 years agoRemoved bailout-only 'implementations' of intrinsics in Crankshaft.
svenpanne [Tue, 10 Mar 2015 15:00:08 +0000 (08:00 -0700)]
Removed bailout-only 'implementations' of intrinsics in Crankshaft.

Doing a runtime call should always be better than totally giving up
(unless we have fullcode-only intrinsics, which we'll probably never
have).

BUG=v8:3947
LOG=n

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

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

9 years agoSimplify and correctify pending message location handling.
mstarzinger [Tue, 10 Mar 2015 14:45:14 +0000 (07:45 -0700)]
Simplify and correctify pending message location handling.

This makes sure that the pending message location is only tracked by
the message object, as only this is saved for finally-blocks. The
location information is duplicated and becomes stale.

R=titzer@chromium.org
TEST=maeh, not so much.

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

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

9 years ago[turbofan] Do not generate any framestates with --noturbo-deoptimization.
jarin [Tue, 10 Mar 2015 14:40:07 +0000 (07:40 -0700)]
[turbofan] Do not generate any framestates with --noturbo-deoptimization.

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

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

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

9 years agoRemove unnecessary NoBarrier_load instructions in store buffer.
hpayer [Tue, 10 Mar 2015 14:19:14 +0000 (07:19 -0700)]
Remove unnecessary NoBarrier_load instructions in store buffer.

There are no stale store buffer pointers anymore. The sweeper thread can not be in conflict with store buffer processing.

BUG=

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

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

9 years ago[es6] Throw TypeError for computed static prototype property name
arv [Tue, 10 Mar 2015 14:14:32 +0000 (07:14 -0700)]
[es6] Throw TypeError for computed static prototype property name

The prototype of a class constructor function is read only. When we set
computed property names we were ignoring this and we were overriding the
property.

Since the prototype is the only possible own read only property on the
constructor function object we special case this so we do not have to
check this for every property in the class literal.

BUG=v8:3945
LOG=N
R=mstarzinger@chromium.org, dslomov@chromium.org

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

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

9 years agoRemove lazy sweeping of new space and corresponding complicated pointer updating...
hpayer [Tue, 10 Mar 2015 13:42:15 +0000 (06:42 -0700)]
Remove lazy sweeping of new space and corresponding complicated pointer updating logic.

We can do that now since we have the invariant that the store buffer always has valid slots after marking.

BUG=

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

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

9 years agoReland Fix old space check in IsSlotInBlackObject.
hpayer [Tue, 10 Mar 2015 13:25:58 +0000 (06:25 -0700)]
Reland Fix old space check in IsSlotInBlackObject.

BUG=

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

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

9 years agoRemove code object from StackHandler.
mstarzinger [Tue, 10 Mar 2015 13:20:11 +0000 (06:20 -0700)]
Remove code object from StackHandler.

This reduces the size of the StackHandler by one word. We no longer
need to keep track of the code object, as the stack walk finds it.

R=yangguo@chromium.org

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

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

9 years agoConverted Crankshaft to have its own list of known intrinsics.
svenpanne [Tue, 10 Mar 2015 13:17:58 +0000 (06:17 -0700)]
Converted Crankshaft to have its own list of known intrinsics.

We can remove a few of them now (those which unconditionally bailout),
but this will be done in a separate CL to see any impact separately.

BUG=v8:3947
LOG=n

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

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

9 years agoUpdate V8 DEPS.
v8-autoroll [Tue, 10 Mar 2015 12:24:47 +0000 (05:24 -0700)]
Update V8 DEPS.

Rolling v8/tools/clang to ed79fd57317ab9f09ce52a5e1c7424eebb80a73e

BUG=chromium:464657
LOG=n

TBR=machenbach@chromium.org

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

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

9 years agoAdded a workaround for undefined behavior.
Sven Panne [Tue, 10 Mar 2015 12:12:41 +0000 (13:12 +0100)]
Added a workaround for undefined behavior.

Note that this patch is not really a *solution*, it is just enough to
make the undefined behavior unobservable. The real fix would be being
much more correct about sizes and signedness in our code base...

BUG=chromium:464657
LOG=n
R=dcarney@chromium.org

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

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

9 years agoIn PrintCode, keep the debug_name string alive for all uses.
jarin [Tue, 10 Mar 2015 12:02:45 +0000 (05:02 -0700)]
In PrintCode, keep the debug_name string alive for all uses.

BUG=chromium:465645
LOG=n
R=titzer@chromium.org

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

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

9 years ago[turbofan] Use builtin inlining mechanism for Math.floor.
bmeurer [Tue, 10 Mar 2015 11:59:20 +0000 (04:59 -0700)]
[turbofan] Use builtin inlining mechanism for Math.floor.

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

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

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

9 years agoRemove deprecated CpuProfiler methods
yurys [Tue, 10 Mar 2015 11:58:14 +0000 (04:58 -0700)]
Remove deprecated CpuProfiler methods

BUG=None
LOG=Y

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

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

9 years agoFix CompilerHints flag order to match FunctionKind.
marja [Tue, 10 Mar 2015 11:57:08 +0000 (04:57 -0700)]
Fix CompilerHints flag order to match FunctionKind.

The bits in CompilerHints are accessed via FunctionKindBits, and on the other
hand, with accessors defined by BOOL_ACCESSORS(SharedFunctionInfo,
compiler_hints, is_accessor_function, kIsAccessorFunction) etc.

So the bit order in FunctionKind must match CompilerHints.

This is not causing problems (yet) because there's no accessor for these two
bits, but if somebody adds one, things will go wrong.

R=dslomov@chromium.org
BUG=

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

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

9 years agoRevert of Fix old space check in IsSlotInBlackObject. (patchset #1 id:1 of https...
hpayer [Tue, 10 Mar 2015 11:55:56 +0000 (04:55 -0700)]
Revert of Fix old space check in IsSlotInBlackObject. (patchset #1 id:1 of https://codereview.chromium.org/993513009/)

Reason for revert:
Breaks arm.debug.

Original issue's description:
> Fix old space check in IsSlotInBlackObject.
>
> BUG=
>
> Committed: https://crrev.com/4f865389bcecdff6aa56512fab3a147507a95a51
> Cr-Commit-Position: refs/heads/master@{#27090}

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

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

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

9 years agoCpuProfiler: fix for CollectDeoptEvents test on arm64
loislo [Tue, 10 Mar 2015 10:45:07 +0000 (03:45 -0700)]
CpuProfiler: fix for CollectDeoptEvents test on arm64

We use slightly different schema for JumpTable on arm64 than for x64.

We do a branch (B) to the JumpTable from the code,
then a branch (B) to the end of jump table code
and then branch to the deoptimizer code with putting
the return address into lr register (Call which is actually Blr).

As a result the 'from' address in Deoptimizer always points to
the end of JumpTable code and we can get nothing from this information.

0) I moved save_doubles and needs_frame code out of for_loop.

1) I replaced B commands with Bl so we put different return addresses
to lr register for the different jump table entries and replaced
the final Call with Br which do not touch lr register.

Also I removed the last_entry check so we will always do the Bl
even for the last entry because we need the right address in lr.
I don't think that this will affect the performance because it
just one more branch for entire deopt mechanics.

BUG=chromium:452067
LOG=n

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

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

9 years agoAdd test case for serializing external references to runtime functions.
yangguo [Tue, 10 Mar 2015 10:36:06 +0000 (03:36 -0700)]
Add test case for serializing external references to runtime functions.

R=svenpanne@chromium.org
BUG=chromium:465564
LOG=N

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

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

9 years agoDon't scan on scavenge dead large objects.
hpayer [Tue, 10 Mar 2015 10:34:05 +0000 (03:34 -0700)]
Don't scan on scavenge dead large objects.

BUG=

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

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

9 years agoMake sweeper threads respect the max_available_threads constraint.
ulan [Tue, 10 Mar 2015 09:58:18 +0000 (02:58 -0700)]
Make sweeper threads respect the max_available_threads constraint.

BUG=

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

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

9 years agoFix old space check in IsSlotInBlackObject.
hpayer [Tue, 10 Mar 2015 09:49:42 +0000 (02:49 -0700)]
Fix old space check in IsSlotInBlackObject.

BUG=

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

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

9 years agoFix runtime assert in %LiveEditCheckAndDropActivations.
mstarzinger [Tue, 10 Mar 2015 09:48:06 +0000 (02:48 -0700)]
Fix runtime assert in %LiveEditCheckAndDropActivations.

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

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

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

9 years ago[turbofan] Fix --turbo-osr for OSRing into inner loop inside for-in.
titzer [Tue, 10 Mar 2015 09:27:33 +0000 (02:27 -0700)]
[turbofan] Fix --turbo-osr for OSRing into inner loop inside for-in.

R=mstarzinger@chromium.org
BUG=chromium:462775
LOG=Y

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

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

9 years agoconvert Function and Promise to maybe
dcarney [Tue, 10 Mar 2015 09:15:46 +0000 (02:15 -0700)]
convert Function and Promise to maybe

BUG=

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

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

9 years ago[turbofan] Unify Math.floor / Math.ceil optimization.
bmeurer [Tue, 10 Mar 2015 08:42:47 +0000 (01:42 -0700)]
[turbofan] Unify Math.floor / Math.ceil optimization.

Provide an intrinsic %MathFloor / %_MathFloor that is used to optimize
both Math.ceil and Math.floor, and use the JS inlining mechanism to
inline Math.ceil into TurboFan code. Although we need to touch code
outside of TurboFan to make this work, this does not affect the way we
handle Math.ceil and/or Math.floor in CrankShaft, because for CrankShaft
the old-style builtin function id based inlining still kicks in first.

Once this solution is stabilized, we can use it for Math.floor as well.
And once that is settled, we can establish it as the unified way to
inline builtins, and get rid of the specialized builtin function id
based inlining at some point.

Note that "builtin" applies to basically every piece of internal
JavaScript/intrinsics based code, so this also applies to the yet to be
defined JavaScript based code stubs and handlers.

BUG=v8:3953
LOG=n
R=yangguo@chromium.org,svenpanne@chromium.org

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

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

9 years ago[turbofan] Context specialize during inlining.
bmeurer [Tue, 10 Mar 2015 08:37:16 +0000 (01:37 -0700)]
[turbofan] Context specialize during inlining.

Context specialization enables inlining (at least currently it is the
only enabler for inlining), but inlining enables more possibilities for
context specialization. So we really need to run them together.

This is especially important with the "module based builtins" that we're
working towards.

BUG=v8:3952
LOG=n

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

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

9 years agoremove phantom naming from the api
dcarney [Mon, 9 Mar 2015 21:47:54 +0000 (14:47 -0700)]
remove phantom naming from the api

since the old style weakness is slated for removal, we might as well reuse the name to limit confusion.  additionally I simplified the callback type to a enum to either get internal field values or not

this should be a non-breaking change with the exception of PhantomPersistentValueMap, which is unused.

R=jochen@chromium.org, erikcorry@chromium.org

BUG=

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

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

9 years agoFix 'MIPS: [turbofan] Support for %_DoubleHi, %_DoubleLo and %_ConstructDouble.'
balazs.kilvady [Mon, 9 Mar 2015 17:46:52 +0000 (10:46 -0700)]
Fix 'MIPS: [turbofan] Support for %_DoubleHi, %_DoubleLo and %_ConstructDouble.'

BUG=

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

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

9 years agoFix full rebuilding after clang rolls.
machenbach [Mon, 9 Mar 2015 17:22:20 +0000 (10:22 -0700)]
Fix full rebuilding after clang rolls.

BUG=chromium:464657
LOG=n
TBR=jochen@chromium.org

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

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

9 years agoForce full rebuilding after clang rolls.
machenbach [Mon, 9 Mar 2015 16:24:40 +0000 (09:24 -0700)]
Force full rebuilding after clang rolls.

BUG=chromium:464657
LOG=n

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

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

9 years agoHandle *all* runtime versions of intrinsics in the serializer.
svenpanne [Mon, 9 Mar 2015 15:11:40 +0000 (08:11 -0700)]
Handle *all* runtime versions of intrinsics in the serializer.

Note that this is done only for consistency at this point in time.
The change should probably have been in
https://codereview.chromium.org/984963002/ already.

BUG=v8:3947
LOG=n

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

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

9 years agoMake VerifyMarking work in the presence of grey objects
jochen [Mon, 9 Mar 2015 15:01:34 +0000 (08:01 -0700)]
Make VerifyMarking work in the presence of grey objects

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

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

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

9 years agoExtract ParseInfo from CompilationInfo.
titzer [Mon, 9 Mar 2015 14:51:13 +0000 (07:51 -0700)]
Extract ParseInfo from CompilationInfo.

Rationale: separate the inputs and outputs of parsing + analysis from the business of compiling (i.e. generating machine code).

BUG=

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

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

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}