Commit Graph

26662 Commits

Author SHA1 Message Date
mlippautz
ccae6b51a1 [heap] Fix type conversion in gc tracer
R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31970}
2015-11-12 19:41:53 +00:00
ahaas
71348aa2a0 [x64] Fixed a rounding error on x64 for the Uint64ToF64 conversion.
The least significant bit of the input value may affect the result of
the conversion through rounding. We OR the least significant with the
second least significant bit to preserve it over the SHR instruction.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31969}
2015-11-12 19:36:16 +00:00
yangguo
6df9a1db8c [JSON stringifier] Correctly load array elements.
BUG=chromium:554946
LOG=y
R=jkummerow@chromium.org, jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31968}
2015-11-12 19:30:58 +00:00
mbrandy
f83b8a61cf Skip test-run-machops/RunComputedCodeObject on AIX and PPC64BE.
This test, as written, is invalid on platforms which use function
descriptors.

See https://codereview.chromium.org/1377423002/ for background.

R=mstarzinger@chromium.org, titzer@chromium.org, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31967}
2015-11-12 19:10:32 +00:00
adamk
b0b97da506 [cleanup] Remove un-scoped ParseBlock from Parser
Because the Scope will be optimized away by the call to
FinalizeBlockScope in the case where there are no lexical
declarations in the block, this should have no effect on
anything downstream from the Parser, and simply removes
duplicate parsing code.

Due to the change from ParseStatement to ParseStatementListItem,
this will result in slightly different error messages for
lexical declarations in sloppy mode (until those are shipped).

R=littledan@chromium.org, rossberg@chromium.org
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel

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

Cr-Commit-Position: refs/heads/master@{#31966}
2015-11-12 17:41:37 +00:00
adamk
e752f964b6 Ship --harmony-default-parameters
BUG=v8:2160
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#31965}
2015-11-12 15:59:13 +00:00
evan.lucas
bc2e393b4c [tools] Make gen-postmortem-metadata.py more reliable
Instead of basing matches off of whitespace, walk the inheritance chain and include any classes that inherit from Object.

R=machenbach@chromium.org,jkummerow@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#31964}
2015-11-12 14:48:04 +00:00
mbrandy
59a0641820 Fix test-heap/LargeObjectSlotRecording.
Remove hard-coded assumption of large object size threshold.

This test fails on PPC in version 4.7 where the threshold is derived
directly from the allocator's pagesize.

R=hpayer@chromium.org, mstarzinger@chromium.org, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31963}
2015-11-12 14:33:19 +00:00
jkummerow
d001cd5665 [proxies] Teach ToPropertyDescriptor to deal with Proxies
BUG=v8:1543
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31962}
2015-11-12 14:17:51 +00:00
fedor
2b6d07abb2 tools: fix typo in postmortem generator
BUG=
R=machenbach

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

Cr-Commit-Position: refs/heads/master@{#31961}
2015-11-12 14:11:32 +00:00
bmeurer
c55161bf16 [turbofan] Add support for %_IsSpecObject intrinsic lowering.
Now JSIntrinsicLowering can also lower %_IsSpecObject intrinsics to a
diamond.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31960}
2015-11-12 14:05:49 +00:00
ishell
722e19efd6 Fixing --verify-predictable mode.
This CL fixes several sources of non-predictability by making Platform::MonotonicallyIncreasingTime() the only bottleneck for all time-querying functions and providing PredictablePlatform implementation.

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

Cr-Commit-Position: refs/heads/master@{#31959}
2015-11-12 13:43:04 +00:00
bmeurer
0b0581421e [turbofan] Make inlining heuristic less greedy.
Only inline one candidate per iteration to make sure we really inline
the stuff that is called most often.

R=mstarzinger@chromium.org
BUG=v8:4493, v8:4544
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31958}
2015-11-12 13:28:19 +00:00
bmeurer
c4e19c7d8d [turbofan] Lower JSCreate to an inline allocation in JSTypedLowering.
This adds initial support for fast inline allocations of JSObject
instances. It currently has exactly the same limitations as Crankshaft.

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

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

Cr-Commit-Position: refs/heads/master@{#31957}
2015-11-12 12:57:32 +00:00
yangguo
ee9020ddd9 Serializer: attach alignment to deferred objects.
R=jkummerow@chromium.org
BUG=chromium:523919
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31956}
2015-11-12 11:28:31 +00:00
mstarzinger
bae4492a3e [turbofan] Pass new target to JSCreate nodes.
This passes both, the actual constructor and the original constructor,
to nodes having the {JSCreate} operator. This is required for allocating
properly subclassed implicit receiver objects.

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

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

Cr-Commit-Position: refs/heads/master@{#31955}
2015-11-12 09:33:37 +00:00
mstarzinger
11d5d09ce1 [turbofan] Initial support for constructor call inlining.
This implements a first version of support for constructor call inlining
in the inlining machinery. For now we can only inline calls where the
actual constructor and the original constructor coincide (i.e. no super
constructor calls). Note that the target of a super constructor call is
loaded with a runtime call, so there is no way for it to be constant
promoted at the moment.

R=bmeurer@chromium.org
BUG=v8:4544
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31954}
2015-11-12 08:51:28 +00:00
bmeurer
dd0ba4d132 [builtins] Get rid of a few %_ClassOf uses.
With subclassing and @@toStringTag, %_ClassOf is not necessarily what
you want for ES6 anymore, so better avoid relying on %_ClassOf in our
builtins.

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31953}
2015-11-12 08:34:02 +00:00
v8-autoroll
6d61622993 Update V8 DEPS.
Rolling v8/tools/clang to 0b258f75323161e854038f30334e97ab6aa58eab

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31952}
2015-11-12 04:36:58 +00:00
bradnelson
ab1165fb1a Fix ~ operator in asm typer, add more operator tests.
The ~ operator is de-sugared into true^x, which was
being improperly handled.

Adding tests of most bitwise operators and several error cases.

BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=test-asm-validator
R=titzer@chromium.org,aseemgarg@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31951}
2015-11-11 22:34:24 +00:00
mbrandy
b237b8a7da PPC: [turbofan] Fix trampoline pool blocking.
R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31950}
2015-11-11 22:22:14 +00:00
mbrandy
50d83f9077 PPC64: Implemented the RoundUint64ToFloat64 TurboFan operator.
R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31949}
2015-11-11 22:09:19 +00:00
ofrobots
f583661784 [heap] make inline allocation step size dynamic
Presently the inline allocation step is a static value defined to be the minimum
of the step sizes over all the observers. The step occur every (approx.) step
byte. This is unfair to observers whose steps are not evenly divisible by the
min step size. For example, consider two observers with steps sizes of 512 and
576 bytes. Across 16kb allocated, you would expect the first observer to be hit
approximately 32 times, and the second observer to be hit approximately 28
times.

In reality, the observers get notified 30 and 15 times respectively. The reason
is that each step is 512 bytes, and since 576 is not evenly divisible by 512,
it gets notified much less frequently.

This CL fixes the problem by making the next step size be the minimum (over all
observers) of the remaining bytes to get to the step, making the steps fair.

BUG=
R=hpayer@chromium.org,ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31948}
2015-11-11 20:55:48 +00:00
fedor
68e89fbb0a This commit adds some postmortem data that is otherwise unavailable.
I have discovered need in those values when writing:

https://github.com/indutny/llnode

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31947}
2015-11-11 19:13:52 +00:00
ahaas
857cd4c1f0 Implemented the RoundUint64ToFloat64 TurboFan operator for x64 and arm64.
I don't see obvious implementations for mips64 and ppc64, so I would need
help for these two platforms.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31946}
2015-11-11 19:12:37 +00:00
mbrandy
8779afc9c2 PPC: Fix trampoline pool blocking.
Check whether a trampoline pool should be emitted after unblocking.
Otherwise, back-to-back sequences which block the trampoline pool can
cause it to be out of reach.

R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31945}
2015-11-11 16:32:06 +00:00
bmeurer
095e6a4f84 [turbofan] Don't try to inline our builtins.
R=mstarzinger@chromium.org
BUG=v8:4493
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31944}
2015-11-11 14:28:06 +00:00
bmeurer
8a20d2b7dd [turbofan] Add support for fast elements access to sloppy/strict arguments.
Extend the element access specialization to also allow non-JSArray fast
packed elements, which now includes unaliased sloppy and strict
arguments.

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

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

Cr-Commit-Position: refs/heads/master@{#31943}
2015-11-11 13:01:03 +00:00
bmeurer
d49bb69a5e [runtime] Make elements backing store for arguments non-holey.
Change sloppy and strict arguments objects to FAST_ELEMENTS for their
backing stores, which will allow us to optimize them easier. Also fixes
a bug in the elements accessors that was triggered by this change.

R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31942}
2015-11-11 12:08:48 +00:00
verwaest
2ebd5fc7c9 Fix Array.prototype.slice with arguments object with negative length.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31941}
2015-11-11 11:50:38 +00:00
jarin
673baa3cf4 [deoptimizer] Remove unused function argument.
Review URL: https://codereview.chromium.org/1439583002

Cr-Commit-Position: refs/heads/master@{#31940}
2015-11-11 10:45:37 +00:00
machenbach
392d1469d3 [Interpreter] Disable another flaky test262 test.
This is for disabling 9.2.2. for release on arm64
(approximating a bit).

BUG=v8:4280
LOG=N
NOTRY=True
TBR=rmcilroy@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31939}
2015-11-11 08:09:59 +00:00
bmeurer
f5e6dcb62b [turbofan] Add support to lower Function.prototype.call.
Support lowering of Function.prototype.call in the JSBuiltinReducer,
which is actually straightforward because of the way we represent JS
calls in TurboFan.  Currently we cannot inline the actual target yet,
since inlining still runs before typed lowering, but that will be
possible as well soon(ish).

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31938}
2015-11-11 07:26:45 +00:00
paul.lind
6e0aa37c7e MIPS64: Fix after [turbofan] Avoid unnecessary write barriers and improve code generation.
Use 64-bit add for address.

TEST=mjsunit/sparse-array.js, others.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31937}
2015-11-11 06:38:40 +00:00
v8-autoroll
1ff9258ba6 Update V8 DEPS.
Rolling v8/buildtools to 4a95614772d9bcbd8bc197e1d9bd034e088fc740

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31936}
2015-11-11 04:26:08 +00:00
zhengxing.li
f1478bd141 X87: [turbofan] Avoid unnecessary write barriers and improve code generation.
port 1e2770123b (r31914)

   original commit message:
   Avoid write barriers when storing values in the root set, and use
   cheaper write barriers for storing maps or tagged pointers. Also
   improve the generated code for write barriers, utilizing the out
   of line code mechanism that is available to TurboFan backends,
   which moves the unlikely case out of the hot path.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31935}
2015-11-11 03:37:55 +00:00
zhengxing.li
e9528b8300 X87: Support fast-path allocation for subclass constructors with correctly initialized initial maps.
port b9d25d86a8 (r31913)

  original commit message:

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31934}
2015-11-11 03:35:19 +00:00
mbrandy
693c553c54 PPC64: Implemented the RoundInt64ToFloat32 TurboFan operator.
R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31933}
2015-11-11 02:17:04 +00:00
mostynb
d62efc1284 make v8_use_snapshot configurable in gn
Changing this value is not guaranteed to work yet, but it needs to be
an arg in order to experiment with it.

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

Cr-Commit-Position: refs/heads/master@{#31932}
2015-11-11 01:09:15 +00:00
mbrandy
d151feeb37 PPC64: Implemented the Word64Popcnt TurboFan operator.
R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31931}
2015-11-10 23:06:24 +00:00
epertoso
56c7a053e9 Revert changes introduced in http://crrev.com/1367953002.
This CL is in preparation for the API change introduced in http://crrev.com/1407313004.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31930}
2015-11-10 21:00:18 +00:00
ahaas
1b535ca075 Implemented the RoundInt64ToFloat32 TurboFan operator for x64, arm64, and mips64.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31929}
2015-11-10 20:39:57 +00:00
ahaas
01fd8e05dc Implemented the Word64Popcnt TurboFan operator for x64.
Popcnt is implemented as an optional operator, which is only implementd by x64
at the moment.

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

Cr-Commit-Position: refs/heads/master@{#31928}
2015-11-10 20:38:40 +00:00
mbrandy
e2f4f04f20 PPC: [turbofan] Avoid unnecessary write barriers and improve code generation.
Port 1e2770123b

Original commit message:
    Avoid write barriers when storing values in the root set, and use
    cheaper write barriers for storing maps or tagged pointers. Also
    improve the generated code for write barriers, utilizing the out
    of line code mechanism that is available to TurboFan backends,
    which moves the unlikely case out of the hot path.

R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31927}
2015-11-10 19:59:23 +00:00
mbrandy
f372694458 PPC: Support fast-path allocation for subclass constructors with correctly initialized initial maps.
Port b9d25d86a8

R=verwaest@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
BUG=v8:3330
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31926}
2015-11-10 19:56:09 +00:00
mbrandy
432d1a6f6a PPC64: Define the optional ctz Turbo Fan operator.
Like its 32-bit counterpart, this is not implemented on PPC.

R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31925}
2015-11-10 19:54:53 +00:00
mtrofin
b10e8506ac Revert "Revert of [turbofan] Remove redundant code. (patchset #1 id:1
of https://codereview.chromium.org/1428943004/ )"

This reverts commit 5f4828a12d.

Maintaining the behavior of processing both ranges with spill ranges,
as well as those with spill operands.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31924}
2015-11-10 18:06:32 +00:00
rmcilroy
0609ed27a0 [Interpreter] Disable Arm/Arm64 tests on release as well as debug for ignition.
BUG=v8:4280
LOG=N
NOTRY=True
TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31923}
2015-11-10 17:39:48 +00:00
balazs.kilvady
6993cd0de5 MIPS: Fix 'MIPS:r6 compact branch optimization.'
Jic and jialc compact branch ops are fixed as they does not have 'forbidden slot' restriction. Also COP1 branches (CTI instructions) added to IsForbiddenAfterBranchInstr().

TEST=cctest/test-disasm-mips/Type0
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31922}
2015-11-10 17:16:09 +00:00
ulan
e28e4d5f52 Remove redundant activation threshold for incremental marking.
The minimum allocation limit already enforces this constraint for normal GCs.

GCs triggered by the memory reducer and external limit should work for all heap sizes.

BUG=chromium:552305
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#31921}
2015-11-10 17:14:18 +00:00