Commit Graph

29428 Commits

Author SHA1 Message Date
ulan
6479d4264a Record slots in the string table to avoid iterating it twice.
Currently we iterate the string table to clear non-live references and
to update pointers. We can skip the second iteration if we record slots.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34936}
2016-03-21 13:28:21 +00:00
ishell
1c34e5f822 Run some slow tail call tests only for fast configurations.
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34935}
2016-03-21 13:06:03 +00:00
hpayer
08edc78b5a Perform RegisterReservationsForBlackAllocation atomically with deserialization of code.
BUG=596057
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34934}
2016-03-21 12:29:10 +00:00
mstarzinger
f1d04af52f [interpreter] Prepare for shipping --harmony-instanceof.
R=rmcilroy@chromium.org
TEST=cctest/test-interpreter/InterpreterInstanceOf
BUG=v8:4447
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34933}
2016-03-21 12:09:05 +00:00
jarin
1646d14d65 [turbofan] Representation inference: fail on operators with untested truncation mode.
Review URL: https://codereview.chromium.org/1820703003

Cr-Commit-Position: refs/heads/master@{#34932}
2016-03-21 12:07:15 +00:00
epertoso
06832bdcd2 Introduces a BranchIf helper in the CodeStubAssembler.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34931}
2016-03-21 12:03:51 +00:00
mvstanton
f19ec92600 ES6: improve performance of ES6 instanceof
This CL restores special crankshaft optimizations for instance of when
--harmony-instanceof is true. Similar work has to happen for TurboFan.

I've added a flag to pile-up the optimizations to be done elsewhere, which
will follow over several CLs.

R=verwaest@chromium.org, mstarzinger@chromium.org
BUG=v8:4447
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34930}
2016-03-21 11:35:18 +00:00
ishell
ac83355748 [interpreter] Disable some slow tail call tests.
TBR=machenbach@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34929}
2016-03-21 11:20:14 +00:00
machenbach
dc84f46f44 [test] Fix catching infra problems in test-runner.
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34928}
2016-03-21 11:03:04 +00:00
verwaest
75ed4a6071 Turn StoreWithInterceptor into a turbofan stub
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34927}
2016-03-21 10:26:45 +00:00
Benedikt Meurer
369a6ac018 [x64] Fix typo in MacroAssembler::AssertNotNumber.
TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34926}
2016-03-21 10:16:24 +00:00
epertoso
22523f25b1 Extends testb and cmpb/cmpw instruction support in the ia32 assembler.
This is in preparation for a CL that does the equivalent of http://crrev.com/1780193003 for ia32.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34925}
2016-03-21 10:09:26 +00:00
ulan
2a077a1a7c Allocate semaphore of page parallel job on heap.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34924}
2016-03-21 10:04:15 +00:00
machenbach
b954b18719 [Coverage] Add sancov_formatter unittest for split.
Unittest for feature added in:
https://codereview.chromium.org/1808663002/

BUG=chromium:568949
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34923}
2016-03-21 09:24:36 +00:00
bmeurer
b7aa4c3ab3 [stubs] Split ToNumberStub into reusable subparts.
Split ToNumberStub into the entry ToNumberStub, and two new stubs,
StringToNumberStub and NonNumberToNumberStub, which can be used when we
already know something about the input (i.e. in various branches of the
code stubs, or in TurboFan graphs).

Also introduce an appropriate StringToNumber simplified operator for
TurboFan, that is pure and is lowered to an invocation of the newly
added StringToNumberStub.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34922}
2016-03-21 09:05:49 +00:00
machenbach
741ec01107 Update V8 DEPS.
Rolling v8/build/gyp to 133eaf70b3720b7413017ef3f9c42f6811ef9347

Rolling v8/third_party/icu to 0d572d65aae621e13d6863fe470c9c8cee71043d

This is the same as the auto-generated version, but with a
landmine: https://codereview.chromium.org/1824563002/

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

Committed: https://crrev.com/1d6dba43c2b61900be68777297634e05d479a25a
Cr-Commit-Position: refs/heads/master@{#34914}

patch from issue 1824563002 at patchset 1 (http://crrev.com/1824563002#ps1)

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34921}
2016-03-21 08:57:06 +00:00
ishell
acbb968ded [crankshaft] Fixing ES6 tail call elimination.
In case when F inlined normal call to G which tail calls H we should not write translation for G for the tail call site.
Otherwise we will see G in a stack trace inside H.

This CL also enables all existing tests related to ES6 tail call elimination and adds more combinations.

TBR=bmeurer@chromium.org
BUG=v8:4698
LOG=N

Committed: https://crrev.com/689980f7d4dfd4c29492f616d7b616b86ec9af91
Cr-Commit-Position: refs/heads/master@{#34830}

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

Cr-Commit-Position: refs/heads/master@{#34920}
2016-03-21 08:48:37 +00:00
jochen
2a1570ef1a Temporarily undeprecate ForceSet
I first need to figure out what to do about window.document before we
can deprecate this: window.document is a regular accessor, however, once
the window navigated from about:blank, its value will never change.
Blink uses ForceSet to then replace the accessor with a data constant
which has way better performance than invoking the accessor all the
time.

Since the accessor, however, is installed as read only &
non-configurable, there is no spec compliant way to pull this off right
now

BUG=chromium:595601
R=verwaest@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#34919}
2016-03-21 07:53:23 +00:00
jarin
8872ec5eab [Crankshaft] Check that both sides of test context are connected.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34918}
2016-03-21 06:31:35 +00:00
jarin
811137ffe5 [turbofan] Use the type from the typer instead of computing new type in representation inference.
Review URL: https://codereview.chromium.org/1799023003

Cr-Commit-Position: refs/heads/master@{#34917}
2016-03-21 06:29:43 +00:00
bmeurer
524d01945c [stubs] Unify the type conversion call interface descriptors.
Up until now all type conversions (i.e. ToNumber, ToString and friends)
had their own specific call interface descriptors, where some of them
had to match (i.e. ToString and NumberToString have to use the same
argument register). Instead of all the different descriptors, it's
sufficient to have a single TypeConversionDescriptor instead.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34916}
2016-03-21 06:03:08 +00:00
bmeurer
27bce81995 Revert of Update V8 DEPS. (patchset #1 id:1 of https://codereview.chromium.org/1824563002/ )
Reason for revert:
ICU breakage.

Original issue's description:
> Update V8 DEPS.
>
> Rolling v8/build/gyp to 133eaf70b3720b7413017ef3f9c42f6811ef9347
>
> Rolling v8/third_party/icu to 0d572d65aae621e13d6863fe470c9c8cee71043d
>
> TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org
>
> Committed: https://crrev.com/1d6dba43c2b61900be68777297634e05d479a25a
> Cr-Commit-Position: refs/heads/master@{#34914}

TBR=hablich@chromium.org,machenbach@chromium.org,vogelheim@chromium.org,v8-autoroll@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34915}
2016-03-21 05:34:36 +00:00
v8-autoroll
1d6dba43c2 Update V8 DEPS.
Rolling v8/build/gyp to 133eaf70b3720b7413017ef3f9c42f6811ef9347

Rolling v8/third_party/icu to 0d572d65aae621e13d6863fe470c9c8cee71043d

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

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

Cr-Commit-Position: refs/heads/master@{#34914}
2016-03-21 03:26:45 +00:00
bmeurer
cc04776632 [json] Allow any callable object for toJSON.
Previously only JSFunctions seemed to be valid for toJSON, which doesn't
match the ES6 specification that allows any object with [[Call]]
internal method (i.e. any Callable in V8 terminology), including bound
functions and proxies.

BUG=chromium:595738, chromium:535408
R=yangguo@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34913}
2016-03-20 19:35:28 +00:00
akos.palfi
04c4bbb445 Disable AstDecoderTest.All*MemCombinations for big-endian.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34912}
2016-03-19 23:18:43 +00:00
v8-autoroll
b33076d114 Update V8 DEPS.
Rolling v8/tools/clang to a00149535c011c08b6e8cc583a1f10f38d3cdaf9

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

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

Cr-Commit-Position: refs/heads/master@{#34911}
2016-03-19 03:23:32 +00:00
adamk
3c5d6caac2 Pass all parser flags from Parser to PreParser
This revealed one Mozilla test that depended upon a lack
of early error for "with ({}) function ...". The test
has been marked as failing.

R=littledan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34910}
2016-03-19 00:55:10 +00:00
dgozman
5a476db04a Switch microtasks checks from V8_ENABLE_CHECKS to DEBUG to work with dcheck_always_on.
BUG=chromium:594974
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34909}
2016-03-19 00:20:22 +00:00
adamk
6a8de15322 Several mjsunit cleanups
- Move default parameters tests from harmony/ to es6/ and remove
    non-existent --harmony-default-parameters flag.
  - Remove some non-existent tests from mjsunit.status

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

Cr-Commit-Position: refs/heads/master@{#34908}
2016-03-18 23:20:44 +00:00
bradnelson
e7f7d2c943 Number lines in test-asm-validator from 1.
Dropping newlines in the test macros used in test-asm-validator.
This will make the tests number from 1, rather than 39,
making them easier to read.

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

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

Cr-Commit-Position: refs/heads/master@{#34907}
2016-03-18 23:15:34 +00:00
littledan
0d2e28cb24 Revert of Restore per-TypedArray-class length accessors as a perf workaround (patchset #2 id:20001 of https://codereview.chromium.org/1624383003/ )
Reason for revert:
This patch actually seemed to cause a further GameBoy regression! Reverting it seems to address the regression.

Original issue's description:
> Restore per-TypedArray-class length accessors as a perf workaround
>
> This patch is a workaround to the performance regression caused by
> implementing the ES2015 TypedArray prototype chain: Include a
> per-TypedArray-subclass length getter so that the superclass getter does
> not become polymorphic. The patch appears to fix a regression in the
> Gameboy Octane benchmark.
>
> BUG=chromium:579905
> R=adamk
> LOG=Y
>
> Committed: https://crrev.com/03ce7711e474a0ef74f723b30ae1527c89dec010
> Cr-Commit-Position: refs/heads/master@{#33501}

R=adamk@chromium.org
BUG=chromium:579905,chromium:593634
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#34906}
2016-03-18 18:29:37 +00:00
machenbach
3245d74490 Revert of Inline fast-path interceptor access in the IC utilities (patchset #2 id:20001 of https://codereview.chromium.org/1810083003/ )
Reason for revert:
[Sheriff] Breaks layout tests:
https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/5506

Original issue's description:
> Inline fast-path interceptor access in the IC utilities
>
> BUG=
>
> Committed: https://crrev.com/b3bda50ddd9e30b718ae7972d9dd0d095113f634
> Cr-Commit-Position: refs/heads/master@{#34892}

TBR=jkummerow@chromium.org,verwaest@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34905}
2016-03-18 18:17:38 +00:00
vogelheim
91d344288a Parser: Make skipping HTML comments optional.
API change: This adds a new flag skip_html_comments to v8::ScriptOriginOptions. This flag controls whether V8 will attempt to honour HTML-style comments in JS sources.

(That is: Gracefully ignore <!-- ... ---> in JS sources, which was a popular technique in the early days of JavaScript, to prevent non-JS-enabled browsers from displaying script sources to uses.)

The flag defaults to 'true' when using v8::ScriptOrigin constructor, which preserves the existing behaviour. Embedders which are happy with the existing behaviour will thus not need any changes.

BUG=chromium:573887
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#34904}
2016-03-18 17:24:19 +00:00
mtrofin
da81f841f4 [turbofan] Moved split edge form validation lower.
There are multiple ways we may construct an instruction sequence.
Moved the split edge form validation where they must all eventually
chokepoint to - the register allocation pipeline, which is also the main
and first consumer of this property.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34903}
2016-03-18 17:22:28 +00:00
mstarzinger
2701e67d1b Remove obsolete isolate from CompareOperation predicate.
This removes the Isolate argument from the IsLiteralCompareUndefined
predicate as it is no longer required to determine the answer.

R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34902}
2016-03-18 17:20:36 +00:00
mvstanton
d6ad4c7f1f An undefined literal should match as an undefined literal.
Just sayin'.

R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34901}
2016-03-18 16:49:27 +00:00
mstarzinger
62d2aa45e4 [compiler] Move feedback vector allocation to pipeline.
This moves the call-sites that ensure we have a feedback vector present
before kicking off a compiler into the actual compilation pipeline. The
backends no longer need to worry about the feedback vector.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34900}
2016-03-18 16:33:55 +00:00
rmcilroy
3b537f380f [Interpreter] Add ignition compile trace events.
BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34899}
2016-03-18 15:34:57 +00:00
ulan
4526365f53 Speed up clearing of old to new slots in dead objects.
Since we clear invalid slots eagerly, there is no need to check if a slot is a valid slot.

BUG=chromium:578883
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#34898}
2016-03-18 15:28:19 +00:00
ulan
25cb0b4d25 Update pointers in to-space in parallel after evacuation.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34897}
2016-03-18 15:28:18 +00:00
jkummerow
45616bfb27 [arm][arm64] Disable COHERENT_CACHE support
This is an experiment to see if it affects crash rates on Nexus 9 devices.
A small performance impact (3-4% on Octane) is expected.

BUG=chromium:524337
LOG=n
R=hablich@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34896}
2016-03-18 15:03:03 +00:00
yangguo
b3a1adc6cc [heap] Fix skip list for deserialized code objects.
R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34895}
2016-03-18 14:57:59 +00:00
yangguo
1e2d0e1136 [regexp] catch stack overflow when parsing back references.
R=jkummerow@chromium.org
BUG=chromium:595657
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34894}
2016-03-18 14:52:41 +00:00
verwaest
c6f9883d53 Remove oob elements collected from the prototype chain by trimming in GetArrayKeys
BUG=chromium:594953
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34893}
2016-03-18 14:37:36 +00:00
verwaest
b3bda50ddd Inline fast-path interceptor access in the IC utilities
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34892}
2016-03-18 14:12:37 +00:00
mstarzinger
6691814f58 [compiler] Readability refactor of comilation pipeline.
This is a pure refactoring CL and should not contain any functional
changes to the code. The following has been done:
- Group compiler.cc into sections for each component.
- Surround local helper methods by anonymous namespace.
- Move implementation of Compiler (API class) together.

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34891}
2016-03-18 13:57:42 +00:00
caitpotter88
17c92fe6bb [es7] implement exponentiation operator proposal
Implements Stage 4 proposal from http://rwaldron.github.io/exponentiation-operator/,
without adding any knowledge of the feature to compiler backends.

BUG=v8:3915
LOG=Y
R=adamk@chromium.org, rossberg@chromium.org, littledan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34890}
2016-03-18 13:54:05 +00:00
Ilija.Pavlovic
a4e5d1541a MIPS64: Fix test Cvt_s_uw_Trunc_uw_s.
The higher word (bits 32 - 63) of FPU register is set on zero before
storing result.

TEST=cctest/test-macro-assembler-mips64/Cvt_s_uw_Trunc_uw_s
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34889}
2016-03-18 13:22:03 +00:00
cbruni
cda9a79931 [elements] Fix sorting dictionary element keys
Using std::sort on a FixedArray with HeapNumbers is not very GC friendly.
Adding a separate step to properly record possible HeapNumbers.

BUG=chromium:594954
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34888}
2016-03-18 12:44:13 +00:00
mstarzinger
8ba35e73ba [compiler] Remove redundant unoptimized compile trigger.
The trigger point in question is by now obsolete. The optimized compile
job will itself ensure that deoptimization support is present on the
incoming SharedFunctionInfo, this will make sure to produce baseline
code when necessary. The ScopeInfo is also installed at that point in
time.

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34887}
2016-03-18 12:09:30 +00:00