Hannes Payer [Thu, 12 Mar 2015 18:01:47 +0000 (19:01 +0100)]
Reactivate all the cores in cpu.sh.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
1004763002
Cr-Commit-Position: refs/heads/master@{#27170}
balazs.kilvady [Thu, 12 Mar 2015 17:29:00 +0000 (10:29 -0700)]
MIPS: Improve naming of turbofan ops for %_DoubleHi, %_DoubleLo and %_ConstructDouble.
BUG=
Review URL: https://codereview.chromium.org/
1006523002
Cr-Commit-Position: refs/heads/master@{#27169}
balazs.kilvady [Thu, 12 Mar 2015 16:43:39 +0000 (09:43 -0700)]
MIPS: [turbofan] Introduce optional Float64Min and Float64Max machine operators.
Port
99f8d57f3c5d967bc3b10356b22d7ec7be55e89f
Original commit message:
Basically recognize certain x < y ? x : y constructs and turn that into
Float64Min/Float64Max operations, if the target machine supports that.
On x86 we lower to (v)minsd/(v)maxsd.
BUG=
Review URL: https://codereview.chromium.org/
1006513002
Cr-Commit-Position: refs/heads/master@{#27168}
arv [Thu, 12 Mar 2015 16:36:16 +0000 (09:36 -0700)]
Use path in name for test262-es6
For ES5 the file names always included the whole path, like this:
ch15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-3.js
For ES6 this is no longer true:
language/computed-property-names/basics/symbol.js
language/computed-property-names/class/method/symbol.js
To allow the status file to correctly identify the right test we need
to change the reported test name to include the whole path.
BUG=None
LOG=N
R=rossberg@chromium.org, machenbach@chromium.org
Review URL: https://codereview.chromium.org/
1001613002
Cr-Commit-Position: refs/heads/master@{#27167}
dcarney [Thu, 12 Mar 2015 16:03:19 +0000 (09:03 -0700)]
remove DeletedField from PropertyDetails
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1002703002
Cr-Commit-Position: refs/heads/master@{#27166}
dslomov [Thu, 12 Mar 2015 15:44:32 +0000 (08:44 -0700)]
Switch the order of experimental global initialization and running natives.
The order should match the one for normal natives.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
988513003
Cr-Commit-Position: refs/heads/master@{#27165}
jochen [Thu, 12 Mar 2015 15:39:41 +0000 (08:39 -0700)]
Use target_cpu instead of cpu_arch in BUILD.gn
Also add missing defines for arm simulator build
BUG=v8:3841
R=machenbach@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
874393007
Cr-Commit-Position: refs/heads/master@{#27164}
johan [Thu, 12 Mar 2015 15:12:37 +0000 (08:12 -0700)]
Fix build on solaris platforms
e8b9f2d7 introduced a different cast which broke building on Illumos.
Revert to previous behavior for V8_OS_SOLARIS only.
Found on SmartOS while building with gcc 4.9.0.
edit1: adding jochen to reviewers since he was assigned through the issue tracker and danno since he seems to do a fair amount of cross-platform work
edit2: removing BUG reference because I don't understand what LOG needs to contain (and it seems to link to chromium and not the v8 repo). Please edit commit message as appropriate.
BUG=3935
LOG=n
Review URL: https://codereview.chromium.org/
990063002
Cr-Commit-Position: refs/heads/master@{#27163}
mstarzinger [Thu, 12 Mar 2015 15:04:30 +0000 (08:04 -0700)]
[turbofan] Bring back long lost comment to AstGraphBuilder.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/
1004673002
Cr-Commit-Position: refs/heads/master@{#27162}
yangguo [Thu, 12 Mar 2015 14:47:35 +0000 (07:47 -0700)]
Hide RegExp and String initialization in a closure.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
1000063002
Cr-Commit-Position: refs/heads/master@{#27161}
bmeurer [Thu, 12 Mar 2015 14:07:28 +0000 (07:07 -0700)]
[turbofan] Introduce optional Float64Min and Float64Max machine operators.
Basically recognize certain x < y ? x : y constructs and turn that into
Float64Min/Float64Max operations, if the target machine supports that.
On x86 we lower to (v)minsd/(v)maxsd.
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/
998283002
Cr-Commit-Position: refs/heads/master@{#27160}
caitpotter88 [Thu, 12 Mar 2015 14:01:56 +0000 (07:01 -0700)]
[es6] support template literals after MemberExpression
BUG=v8:3958, 450942
LOG=N
R=arv@chromium.org
Review URL: https://codereview.chromium.org/
996223003
Cr-Commit-Position: refs/heads/master@{#27159}
balazs.kilvady [Thu, 12 Mar 2015 13:54:31 +0000 (06:54 -0700)]
MIPS: Simplify pending message object handling.
Port
d4696c484142c601cbd691ae80164043785a3af7
Original commit message:
This moves the decision whether to report a message or not to when
the pending exception is propagated instead of trying to preserve the
decision in a ThreadLocalTop field.
BUG=
Review URL: https://codereview.chromium.org/
1004623002
Cr-Commit-Position: refs/heads/master@{#27158}
mstarzinger [Thu, 12 Mar 2015 13:49:55 +0000 (06:49 -0700)]
[turbofan] Introduce builders for property access.
This introduces a choke point in the AstGraphBuilder for property
access creation. This makes it easier to enrich all such nodes with
additional side-table or debugging information.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/
1002713002
Cr-Commit-Position: refs/heads/master@{#27157}
bashi [Thu, 12 Mar 2015 12:27:41 +0000 (05:27 -0700)]
Add Cast() for Int32 and Uint32
It should be possible to cast a Value to Int32 without throwing an exception
when IsInt32() is true. Same for Uint32.
BUG=chromium:462402
LOG=Y
Review URL: https://codereview.chromium.org/
1003663002
Cr-Commit-Position: refs/heads/master@{#27156}
Sven Panne [Thu, 12 Mar 2015 11:46:12 +0000 (12:46 +0100)]
Remove funky 2-stage initialization of ParserInfo and an adventurous memset.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/
1002673002
Cr-Commit-Position: refs/heads/master@{#27155}
ishell [Thu, 12 Mar 2015 11:44:23 +0000 (04:44 -0700)]
Incorrect handling of HTransitionElementsKind in hydrogen check elimination phase fixed.
BUG=chromium:460917
LOG=Y
Review URL: https://codereview.chromium.org/
1000893003
Cr-Commit-Position: refs/heads/master@{#27154}
marja [Thu, 12 Mar 2015 10:52:04 +0000 (03:52 -0700)]
[strong] Cleanup and fix test (declaration-after-use.js).
Cleanup: Better helpers, unified line splitting. Also asserting that without
strong mode, the snippets don't produce errors.
Fix: The eval related tests were wrong (we didn't make sure that the error
thrown comes from strong scoping and is not a normal runtime error).
BUG=v8:3956
LOG=N
Review URL: https://codereview.chromium.org/
993393002
Cr-Commit-Position: refs/heads/master@{#27153}
balazs.kilvady [Thu, 12 Mar 2015 10:46:22 +0000 (03:46 -0700)]
MIPS: CpuProfiler: enable tests except four failing tests.
Port
84e90b2d0d28229b4107ff350620fc40935c5770
Original commit message:
Four tests are failing due to a problem with no frame ranges.
TEST=cctest/test-cpu-profiler/CollectDeoptEvents
BUG=
Review URL: https://codereview.chromium.org/
1000723002
Cr-Commit-Position: refs/heads/master@{#27152}
dcarney [Thu, 12 Mar 2015 10:44:31 +0000 (03:44 -0700)]
add 0 length guard in IsNonArrayIndexInteger
TBR=verwaest@chromium.org
BUG=466086
LOG=N
Review URL: https://codereview.chromium.org/
998213002
Cr-Commit-Position: refs/heads/master@{#27151}
mstarzinger [Thu, 12 Mar 2015 09:50:30 +0000 (02:50 -0700)]
Simplify pending message object handling.
This moves the decision whether to report a message or not to when
the pending exception is propagated instead of trying to preserve the
decision in a ThreadLocalTop field.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/
998943003
Cr-Commit-Position: refs/heads/master@{#27150}
mvstanton [Thu, 12 Mar 2015 09:22:47 +0000 (02:22 -0700)]
Vector-ICs: Implement slot sharing for global loads.
We can reduce the number of type feedback vector slots required, and
also reduce IC misses.
Review URL: https://codereview.chromium.org/
1001533002
Cr-Commit-Position: refs/heads/master@{#27149}
bmeurer [Thu, 12 Mar 2015 09:02:07 +0000 (02:02 -0700)]
[turbofan] Remove unused diamonds during control reduction.
A diamond is unused if the Merge node has no Phi/EffectPhi uses, exactly
two inputs, one IfTrue and one IfFalse, which have the same Branch
control input and no other uses except for the Merge. In this case the
diamond can safely be removed.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1000883003
Cr-Commit-Position: refs/heads/master@{#27148}
machenbach [Thu, 12 Mar 2015 08:15:48 +0000 (01:15 -0700)]
Mark ProcessDebugMessagesThreaded as flaky.
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
1004583002
Cr-Commit-Position: refs/heads/master@{#27147}
michael_dawson [Thu, 12 Mar 2015 08:14:38 +0000 (01:14 -0700)]
PPC: simplify delta calculation in DoDeferredInstanceOfKnownGlobal.
... and improve protection against trampoline table generation in this
sequence.
R=danno@chromium.org, svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
985933003
Cr-Commit-Position: refs/heads/master@{#27146}
michael_dawson [Thu, 12 Mar 2015 07:54:30 +0000 (00:54 -0700)]
PPC: remove test excludes no longer required
The test/cctest/cctest.status and test/mjsunit/mjsunit.status
tests now pass under the simulator so removing these
excludes
modified: test/cctest/cctest.status
modified: test/mjsunit/mjsunit.status
R=danno@chromium.org, svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
995393003
Cr-Commit-Position: refs/heads/master@{#27145}
michael_dawson [Thu, 12 Mar 2015 04:27:11 +0000 (21:27 -0700)]
PPC: Simplify pending message script handling.
Port
f71e26268338d2840133264329bf35a63011bb5a
Original commit message:
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}
R=danno@chromium.org, svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
999093002
Cr-Commit-Position: refs/heads/master@{#27144}
adamk [Wed, 11 Mar 2015 23:19:44 +0000 (16:19 -0700)]
Modules: simplify logic around allocation of module internal variables
Since recursive modules are gone, only the top-level scope can have
module inner scopes. Rename Scope::AllocateModulesRecursively to
Scope::AllocateModules, and add test showing the module Variables
are still allocated appropriately in the top level scope.
BUG=v8:1569,v8:3940
LOG=n
Review URL: https://codereview.chromium.org/
999893003
Cr-Commit-Position: refs/heads/master@{#27143}
dpranke [Wed, 11 Mar 2015 21:55:41 +0000 (14:55 -0700)]
Fix the toolchain used to build the snapshots in GN.
We need the v8 snapshot to be compiled on the host cpu (the
machine doing the build), but using generated code that has the
same pointer size as the target_arch; i.e., for 32-bit arm builds,
we need to use a 32-bit x86 host binary, not a 64-bit host binary.
The easiest way to ensure that this happens is to just specify
a custom toolchain in GN to use to build the snapshot.
R=jochen@chromium.org, cjhopman@chromium.org
BUG=465456, 395249
LOG=Y
Review URL: https://codereview.chromium.org/
993173003
Cr-Commit-Position: refs/heads/master@{#27142}
ishell [Wed, 11 Mar 2015 19:29:51 +0000 (12:29 -0700)]
Reland of 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, chromium:465273
LOG=Y
Review URL: https://codereview.chromium.org/
988363002
Cr-Commit-Position: refs/heads/master@{#27141}
balazs.kilvady [Wed, 11 Mar 2015 17:24:59 +0000 (10:24 -0700)]
MIPS: Simplify pending message script handling.
Port
f71e26268338d2840133264329bf35a63011bb5a
Original commit message:
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.
BUG=
Review URL: https://codereview.chromium.org/
999763003
Cr-Commit-Position: refs/heads/master@{#27140}
balazs.kilvady [Wed, 11 Mar 2015 16:52:15 +0000 (09:52 -0700)]
MIPS64: CpuProfiler: fix for CollectDeoptEvents test.
Port
a925f3f4784f8318f69a201a6b44aa94f97e4ba3
Original commit message:
The same idea as in https://codereview.chromium.org/
984893003/
BUG=chromium:452067
LOG=n
Review URL: https://codereview.chromium.org/
993233003
Cr-Commit-Position: refs/heads/master@{#27139}
yangguo [Wed, 11 Mar 2015 15:53:24 +0000 (08:53 -0700)]
Hide native Date implementation in function context.
This further reduces the context size.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
996213003
Cr-Commit-Position: refs/heads/master@{#27138}
svenpanne [Wed, 11 Mar 2015 15:18:44 +0000 (08:18 -0700)]
Re-arranged intrinsic macros a bit.
Outside of runtime.h, only the distinction between intrinsics
returning pairs and those returning pairs is really meaningful, not
the internal traditional partitioning of them.
BUG=v8:3947
LOG=n
Review URL: https://codereview.chromium.org/
997933003
Cr-Commit-Position: refs/heads/master@{#27137}
michael_dawson [Wed, 11 Mar 2015 14:57:57 +0000 (07:57 -0700)]
cctest/test-deoptimization/DeoptimizeCompare was failing on PPC because the path that is optimized for isel incorrectly used integer values instead of Smi's
BUG=
Review URL: https://codereview.chromium.org/
996223002
Cr-Commit-Position: refs/heads/master@{#27136}
svenpanne [Wed, 11 Mar 2015 14:03:21 +0000 (07:03 -0700)]
Converted FullCode to have its own list of known intrinsics.
Combined the various lists, the only slightly ugly thing is now the
distinction between intrinsics returning pairs and the rest, but
that's no big deal.
BUG=v8:3947
LOG=n
Review URL: https://codereview.chromium.org/
989273003
Cr-Commit-Position: refs/heads/master@{#27135}
loislo [Wed, 11 Mar 2015 13:51:18 +0000 (06:51 -0700)]
CpuProfiler: simplify inlined function info magic.
I did some investigation and found that in the most cases
the old schema with the separate List for functions and inlines
gives us no memory benefits because more frequently we inlines
different functions into parent function. So the plain schema
wins a tens or even hundreds bytes a few thousand times.
The only drawback is that we will print the inlined body
the each time when we inline it. But is not a problem
because it happens only under FLAG_hydrogen_track_positions.
Also I added script_id to the structure, so it could be used later
by cpu-profiler.
BUG=chromium:452067
LOG=n
Review URL: https://codereview.chromium.org/
996153003
Cr-Commit-Position: refs/heads/master@{#27134}
balazs.kilvady [Wed, 11 Mar 2015 13:42:39 +0000 (06:42 -0700)]
MIPS: CpuProfiler: fix for CollectDeoptEvents test.
Port
a925f3f4784f8318f69a201a6b44aa94f97e4ba3
Original commit message:
The same idea as in https://codereview.chromium.org/
984893003/
BUG=chromium:452067
LOG=n
Review URL: https://codereview.chromium.org/
996883002
Cr-Commit-Position: refs/heads/master@{#27133}
mstarzinger [Wed, 11 Mar 2015 13:36:08 +0000 (06:36 -0700)]
Remove superfluous ThreadLocalTop::catcher field.
The external v8::TryCatch handler was computed eagerly and kept in
intact. This changes it to be computed lazily for simplicity and
readability of the code.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
997863003
Cr-Commit-Position: refs/heads/master@{#27132}
svenpanne [Wed, 11 Mar 2015 13:28:29 +0000 (06:28 -0700)]
Bailout for %_FastOneByteArrayJoin again.
This recovers the performance loss for some ancient benchmarks.
Added some comments/UNIMPLEMENTED on the way.
BUG=v8:3947
LOG=n
Review URL: https://codereview.chromium.org/
996153002
Cr-Commit-Position: refs/heads/master@{#27131}
dcarney [Wed, 11 Mar 2015 12:14:08 +0000 (05:14 -0700)]
the IsPromise function should not execute js
BUG=v8:3929
LOG=n
Review URL: https://codereview.chromium.org/
998943002
Cr-Commit-Position: refs/heads/master@{#27130}
verwaest [Wed, 11 Mar 2015 11:33:18 +0000 (04:33 -0700)]
[scanner] Extend fast-smi parsing to the entire range minus Smi::kMinValue
BUG=
Review URL: https://codereview.chromium.org/
998893002
Cr-Commit-Position: refs/heads/master@{#27129}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}