Commit Graph

30355 Commits

Author SHA1 Message Date
machenbach
9212be866d Revert of [turbofan] Run everything after representation selection concurrently. (patchset #2 id:20001 of https://codereview.chromium.org/1926023002/ )
Reason for revert:
[Sheriff] Flaky crashed here and there:
https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/9867
https://build.chromium.org/p/client.v8/builders/V8%20Linux64/builds/9589
https://build.chromium.org/p/client.v8/builders/V8%20Mac/builds/7679

Original issue's description:
> [turbofan] Run everything after representation selection concurrently.
>
> Further refactor the pipeline to even run the first scheduler (part of
> the effect control linearization) concurrently. This temporarily
> disables most of the write barrier elimination, but we will get back to
> that later.

TBR=mstarzinger@chromium.org,bmeurer@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/1925073002
Cr-Commit-Position: refs/heads/master@{#35863}
2016-04-28 13:14:39 +00:00
neis
5595d3579c [ignition] Reactivate check for jumps to unbound targets.
- Move the check from the BytecodeArrayBuilder destructor, which doesn't get
  called, to the ToBytecodeArray function.
- Remove the now empty destructor.
- For generators, bind unused resume point labels somewhere.

R=rmcilroy@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/1924093005
Cr-Commit-Position: refs/heads/master@{#35862}
2016-04-28 13:01:33 +00:00
bmeurer
e045a06625 [turbofan] Run everything after representation selection concurrently.
Further refactor the pipeline to even run the first scheduler (part of
the effect control linearization) concurrently. This temporarily
disables most of the write barrier elimination, but we will get back to
that later.

Review-Url: https://codereview.chromium.org/1926023002
Cr-Commit-Position: refs/heads/master@{#35861}
2016-04-28 12:54:49 +00:00
machenbach
e7e7124c83 [build] Fix empty action inputs for xcode-ninja builds
BUG=chromium:606898
LOG=n

Review-Url: https://codereview.chromium.org/1932703002
Cr-Commit-Position: refs/heads/master@{#35860}
2016-04-28 12:43:44 +00:00
epertoso
914c6c52a5 [compiler] Reduce the code size of the ToBoolean stub.
We effectively have 4 different cases to deal with, including the default, but on some platform where we emit the jump table inline (e.g. arm64) we end up emitting an unconditional jump to the same address 127 times.

BUG=

Review-Url: https://codereview.chromium.org/1765883002
Cr-Commit-Position: refs/heads/master@{#35859}
2016-04-28 12:22:10 +00:00
jochen
9e16f72a63 Remove stale V8_IMMINENT_DEPRECATION_WARNINGS defines
R=machenbach@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/1927083002
Cr-Commit-Position: refs/heads/master@{#35858}
2016-04-28 11:43:22 +00:00
vogelheim
5e9b1eb3b5 Prevent unnecessary memory (de-)allocations in LiteralBuffer::CopyFrom.
BUG=v8:4947
LOG=Y

Review-Url: https://codereview.chromium.org/1919673006
Cr-Commit-Position: refs/heads/master@{#35857}
2016-04-28 11:23:55 +00:00
yangguo
9a93964503 [debugger,interpreter] tentatively unskip gc-stress tests.
R=machenbach@chromium.org
BUG=v8:4690
LOG=N

Review-Url: https://codereview.chromium.org/1925993002
Cr-Commit-Position: refs/heads/master@{#35856}
2016-04-28 11:19:16 +00:00
jarin
5247b2679c [turbofan] Abort compilation when the max deoptimization table size is exceeded.
BUG=chromium:607115
LOG=n

Review-Url: https://codereview.chromium.org/1928903002
Cr-Commit-Position: refs/heads/master@{#35855}
2016-04-28 11:12:38 +00:00
balazs.kilvady
5345727935 MIPS: Fix unbounded label counter.
TEST=mjsunit/asm/embenchen/zlib
BUG=

Review-Url: https://codereview.chromium.org/1925543003
Cr-Commit-Position: refs/heads/master@{#35854}
2016-04-28 11:01:12 +00:00
jochen
686558dcff Fix comment about when we rehash ObjectHashTables before growing them
R=ulan@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/1918403003
Cr-Commit-Position: refs/heads/master@{#35853}
2016-04-28 10:38:24 +00:00
verwaest
b7be3cf551 Turn sliced strings into flat cons-strings upon internalization
Flat cons-strings point directly to the internalized version of the string. This makes reinternalization much faster.

BUG=

Review-Url: https://codereview.chromium.org/1932663002
Cr-Commit-Position: refs/heads/master@{#35852}
2016-04-28 10:10:50 +00:00
epertoso
941f553574 Revert of [ignition] Inline the binary op TurboFan code stubs in the bytecode handlers. (patchset #4 id:60001 of https://codereview.chromium.org/1902823002/ )
Reason for revert:
Caused a performance regression in TurboFan and did not improve in a significant way Ignition's performances.

Original issue's description:
> [ignition] Inline the binary op TurboFan code stubs in the bytecode handlers.
>
> Adds a Generate method to the stubs that can be used to embed the graph directly in the bytecode handlers.
>
> Committed: https://crrev.com/e8caf78ff2a9f7d50ac9b47f6b4c80f92b69914a
> Cr-Commit-Position: refs/heads/master@{#35696}

TBR=bmeurer@chromium.org,rmcilroy@chromium.org,machenbach@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.

Review-Url: https://codereview.chromium.org/1927873002
Cr-Commit-Position: refs/heads/master@{#35851}
2016-04-28 10:04:06 +00:00
neis
622c92b88f Correctly set the closing condition in array patterns.
This fixes a bug where the iterable's .return method gets called when it
shouldn't.

R=littledan@chromium.org
BUG=v8:4952
LOG=n

Review-Url: https://codereview.chromium.org/1927073002
Cr-Commit-Position: refs/heads/master@{#35850}
2016-04-28 10:01:23 +00:00
yangguo
31182fb2aa Skip more tests for ignition and gc-stress.
NOTRY=true
TBR=machenbach@chromium.org
BUG=v8:4961
LOG=N

Review-Url: https://codereview.chromium.org/1928893002
Cr-Commit-Position: refs/heads/master@{#35849}
2016-04-28 09:34:23 +00:00
mstarzinger
0b9b6c51ce [compiler] Avoid using CompilationInfoWithZone.
This is a preparatory change to only use the class in question when
allocating a CompilationInfo on the C-heap for a compilation job. As a
next step we will make CompilationInfoWithZone disappear and make the
CompilationJob be the one C-heap allocated object.

R=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/1931573003
Cr-Commit-Position: refs/heads/master@{#35848}
2016-04-28 09:16:48 +00:00
jacob.bramley
c55cff52c3 [arm64] Fix GCC build warnings.
Remove a couple of variables that are written but not read.

BUG=

Review-Url: https://codereview.chromium.org/1923913002
Cr-Commit-Position: refs/heads/master@{#35847}
2016-04-28 08:37:20 +00:00
verwaest
adc0215072 Propagate not-found on proxy target to GetRealNamedProperty
BUG=v8:4932
LOG=n

Review-Url: https://codereview.chromium.org/1929853002
Cr-Commit-Position: refs/heads/master@{#35846}
2016-04-28 08:26:17 +00:00
yangguo
47ffcac6d5 Skip es6/block-conflicts for ignition and gc-stress.
TBR=machenbach@chromium.org
BUG=v8:4961
LOG=N
NOTRY=true

Review-Url: https://codereview.chromium.org/1924093004
Cr-Commit-Position: refs/heads/master@{#35845}
2016-04-28 08:13:05 +00:00
mlippautz
4c880dec62 [heap] Bail out to regular evacuation if new->old fails to allocate a page
BUG=chromium:607226, chromium:581412
LOG=N

Review-Url: https://codereview.chromium.org/1928883002
Cr-Commit-Position: refs/heads/master@{#35844}
2016-04-28 08:01:55 +00:00
clemensh
2f1df8a39f Refactoring to use ArrayVector where applicable
It's more readable than the construction
Vector<T>(buffer, arraysize(buffer)).
All those places are now replaced by ArrayVector(buffer).

R=titzer@chromium.org, jarin@chromium.org, rossberg@chromium.org

Review-Url: https://codereview.chromium.org/1916393002
Cr-Commit-Position: refs/heads/master@{#35843}
2016-04-28 08:01:54 +00:00
yangguo
cd3a5ee951 Skip es6/typedarray-copywithin for ignition
R=machenbach@chromium.org
BUG=v8:4961
NOTRY=true
LOG=N
NOTREECHECKS=true

Review-Url: https://codereview.chromium.org/1915033008
Cr-Commit-Position: refs/heads/master@{#35842}
2016-04-28 07:33:25 +00:00
lpy
aff441937d Dump C++ symbols and merge into v8 log.
Currently we already have tools to extract C++ symbols of d8, and output the
statistics result. This patch creates two scripts, one is to use exsisting tools
to extract C++ symbols and dump to output, the other collects all symbols and
merges them into v8 log. The format of C++ symbols in v8 log is:

cpp,start_address,size,symbol_name

BUG=v8:4906
LOG=n

Review-Url: https://codereview.chromium.org/1884493003
Cr-Commit-Position: refs/heads/master@{#35841}
2016-04-28 06:57:33 +00:00
yangguo
c218683494 [debugger,interpreter] precisely determine execution tier.
R=mstarzinger@chromium.org
BUG=v8:4690
LOG=N

Review-Url: https://codereview.chromium.org/1921853005
Cr-Commit-Position: refs/heads/master@{#35840}
2016-04-28 06:19:48 +00:00
v8-autoroll
7dc18f8539 Update V8 DEPS.
Rolling v8/buildtools to cdbd50759bf2289d2c9d3f1f7d02239b4b4b1209

Rolling v8/tools/clang to 4652e9c8cea11f68101411f5826eca51b4838eda

Rolling v8/tools/gyp to e24c83726b7294179f479a683eeb351568fcc4ee

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

Review-Url: https://codereview.chromium.org/1926883003
Cr-Commit-Position: refs/heads/master@{#35839}
2016-04-28 03:22:54 +00:00
bjaideep
4f75124044 PPC: [api] Expose FunctionCallbackInfo::NewTarget
Port 306c412ce0

Original commit message:

    This is needed by Blink to implement the Custom Elements spec.

R=adamk@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com

BUG=v8:4261
LOG=N

Review-Url: https://codereview.chromium.org/1929703002
Cr-Commit-Position: refs/heads/master@{#35838}
2016-04-27 22:40:00 +00:00
caitpotter88
ff956f4dee [esnext] implement StringPad spec changes from March TC39 meeting
Return the empty string from StringPad if the filler argument is the empty
string, effectively returning the string unchanged in StringPadStart and
StringPadEnd.

```
"foo".padStart(100000, "") -> "foo"
```

BUG=v8:4957, v8:4954
LOG=N
R=littledan@chromium.org

Review-Url: https://codereview.chromium.org/1926773003
Cr-Commit-Position: refs/heads/master@{#35837}
2016-04-27 22:03:27 +00:00
caitpotter88
20360b08e0 [esnext] stage --harmony-string-padding
BUG=v8:4954
LOG=Y
R=littledan@chromium.org

Review-Url: https://codereview.chromium.org/1932453002
Cr-Commit-Position: refs/heads/master@{#35836}
2016-04-27 19:21:03 +00:00
littledan
63b935428c Disallow generator declarations in certain locations
The legacy function declaration locations from Annex B 3.2 and 3.4 do not
apply for generator declarations. This patch cracks down on those usages,
which is tested for by new incoming test262 tests.

BUG=v8:4824
LOG=Y
R=adamk

Review-Url: https://codereview.chromium.org/1900033003
Cr-Commit-Position: refs/heads/master@{#35835}
2016-04-27 19:18:38 +00:00
mstarzinger
a1cd3cc8aa [compiler] Remove deprecated CompilationJob status.
The status FAILED and BAILED_OUT only distinguishes between whether an
exception is pending or not. Such a distinction is obsolete by now as
all callers check for pending exceptions directly. Also it is impossible
for any concurrent part of the job to actually set a pending exception,
hence even the assertion that the concurrent part does not return FAILED
is obsolete.

R=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/1926693003
Cr-Commit-Position: refs/heads/master@{#35834}
2016-04-27 18:40:47 +00:00
adamk
306c412ce0 [api] Expose FunctionCallbackInfo::NewTarget
This is needed by Blink to implement the Custom Elements spec.

BUG=v8:4261
LOG=y

Review-Url: https://codereview.chromium.org/1910253005
Cr-Commit-Position: refs/heads/master@{#35833}
2016-04-27 18:09:05 +00:00
mstarzinger
5a54000eda [compiler] Rename OptimizingCompileJob to CompilationJob.
R=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/1925743002
Cr-Commit-Position: refs/heads/master@{#35832}
2016-04-27 17:56:16 +00:00
mstarzinger
82ffd16087 [compiler] Unify common code in GetOptimizedCode.
This moves the common code for allocating a compilation job into one
single place in the compilation pipeline. This will make it easier to
reason about involved lifetimes.

R=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/1923293002
Cr-Commit-Position: refs/heads/master@{#35831}
2016-04-27 17:47:39 +00:00
danno
757d82eec5 [stubs] Micro optimizations to CodeAssember's allocation path
Now that the GC team has landed the appropriate changes to ensure that the top
page of the address space is never used for allocation, the inlined fast-case
allocation path in the CodeAssembler can be micro-optimized to an add to top
followed by an unsigned compare to limit, eliding a no-longer-needed overflow
check.

Review-Url: https://codereview.chromium.org/1923803003
Cr-Commit-Position: refs/heads/master@{#35830}
2016-04-27 17:45:25 +00:00
bjaideep
9bf7a31a8c PPC: Get rid of AllocationFlags::TAG_OBJECT
Port ef49c6b11a

Original commit message:

    Default (and only way) is now to retrieve a tagged object.

R=mlippautz@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com

BUG=chromium:606711
LOG=N

Review-Url: https://codereview.chromium.org/1917353002
Cr-Commit-Position: refs/heads/master@{#35829}
2016-04-27 17:09:19 +00:00
jacob.bramley
fec99c689b [arm64] Use 'dc civac' to work around some errata.
This addresses Cortex-A53 errata 819472, 826319, 827319 and 824069.

Note that using "civac" rather than "cvau" doesn't appear to affect
performance at all.

BUG=

Review-Url: https://codereview.chromium.org/1921173004
Cr-Commit-Position: refs/heads/master@{#35828}
2016-04-27 16:37:27 +00:00
mstarzinger
98ef8a9dac [turbofan] Avoid obsolete steps in FunctionTester.
This makes sure that the testing pipeline withing the FunctionTester
class only performs AST analysis and deoptimization preparation when
graphs are generated from the AST (as opposed to from bytecode).

R=yangguo@chromium.org

Review-Url: https://codereview.chromium.org/1928523002
Cr-Commit-Position: refs/heads/master@{#35827}
2016-04-27 16:31:11 +00:00
fedor
8eda85d54e Postmortem: export DATA_CONSTANT
Useful for inspecting constant fields in objects.

BUG=
R=machenbach

Review-Url: https://codereview.chromium.org/1922903003
Cr-Commit-Position: refs/heads/master@{#35826}
2016-04-27 15:51:11 +00:00
ulan
75f05161d7 Print more debug info on semaphore failure.
BUG=chromium:605349
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#35825}
2016-04-27 15:09:26 +00:00
mattloring
05e9284943 Include file names in trace-opt/trace-deopt output
Trace-opt/trace-deopt output is ambiguous if multiple functions share
the same name. This change adds file names to this output behind the
--trace-file-names flag to reduce this ambiguity.

R=ofrobots@google.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35824}
2016-04-27 14:50:02 +00:00
verwaest
41acd51bc3 Remove now-dead DefineDataPropertyUnchecked
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35823}
2016-04-27 13:22:17 +00:00
ishell
f95e130b7e [es8] Report proper syntax error for tail call expressions in for-in and for-of bodies.
BUG=v8:4915
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#35822}
2016-04-27 13:03:12 +00:00
yangguo
3ef2f7a8c5 [debugger] remove some dead code.
The change removes threading information from the JSON debug API, which
is deprecated anyways.

R=cbruni@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35821}
2016-04-27 12:42:11 +00:00
neis
42c0e2ec7c [generators] Perform state dispatch in loop header.
This is necessary to eventually build a turbofan graph.

BUG=v8:4907
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35820}
2016-04-27 12:42:10 +00:00
hablich
25ff296c4c Revert of [heap] Uncommit pooled pages concurrently (patchset #5 id:120001 of https://codereview.chromium.org/1913083002/ )
Reason for revert:
Creates a spike of OOM(v8) crashers on Win32.

Original issue's description:
> [heap] Uncommit pooled pages concurrently
>
> - Move the concurrent unmapping to MemoryAllocator
> - Hide (private) members where possible
> - MemoryAllocator:Free is now the bottleneck for freeing
> - Pooled pages are either allocated from a set of pooled pages are obtained
>   through work stealing from the concurrent unmapper
>
> BUG=chromium:605866, chromium:581412
> LOG=N
>
> Committed: https://crrev.com/2158df87116906160cebc3ad20c97f454822da03
> Cr-Commit-Position: refs/heads/master@{#35797}

TBR=hpayer@chromium.org,mlippautz@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:605866, chromium:581412

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

Cr-Commit-Position: refs/heads/master@{#35819}
2016-04-27 12:40:01 +00:00
bmeurer
ff19726d80 [turbofan] Enable concurrent (re)compilation.
Refactor the TurboFan pipeline to allow for concurrent recompilation in
the same way that Crankshaft does it. For now we limit the concurrent
phases to scheduling, instruction selection, register allocation and
jump threading.

R=mstarzinger@chromium.org, ahaas@chromium.org, jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35818}
2016-04-27 12:40:00 +00:00
machenbach
7f3954c57b [build] Move gyp folder
Uses now the same location chromium uses and which some tools
expect.

BUG=chromium:474921
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35817}
2016-04-27 12:37:35 +00:00
ssanfilippo
905becd13b [Interpreter] Add Ignition statistics JavaScript extension.
This commit introduces IgnitionStatisticsExtension, which provides
methods for accessing Ignition statistics and counters from JavaScript.

The extension is registered when FLAG_ignition and
FLAG_trace_ignition_dispatches are both enabled.

For the moment, the only exposed function is
getIgnitionDispatchCounters(), which allows to retrieve Ignition
dispatch counters as a JavaScript object.

BUG=v8:4899
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35816}
2016-04-27 11:11:44 +00:00
yangguo
612985b298 Revert of [debugger] unskip mjsunit/debug-stepin-builtin-callback-opt. (patchset #1 id:1 of https://codereview.chromium.org/1927543002/ )
Reason for revert:
Now we do have a repro!

https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20gc%20stress/builds/3187/steps/Mjsunit%20-%20ignition%20-%20turbofan/logs/debug-stepin-builtin-..

Original issue's description:
> [debugger] unskip mjsunit/debug-stepin-builtin-callback-opt.
>
> This test does not seem to fail any longer.
>
> R=machenbach@chromium.org
> BUG=v8:4690
> LOG=N
>
> Committed: https://crrev.com/f8e44fb5aaaa80cf2d39bc3164f2c962a6b57f5e
> Cr-Commit-Position: refs/heads/master@{#35814}

TBR=machenbach@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4690

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

Cr-Commit-Position: refs/heads/master@{#35815}
2016-04-27 10:54:53 +00:00
yangguo
f8e44fb5aa [debugger] unskip mjsunit/debug-stepin-builtin-callback-opt.
This test does not seem to fail any longer.

R=machenbach@chromium.org
BUG=v8:4690
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35814}
2016-04-27 10:20:33 +00:00