Commit Graph

34370 Commits

Author SHA1 Message Date
leszeks
537c855882 [ignition] BytecodeGraphBuilder: Merge correct environment in try block
Making new nodes inside of exception-handled blocks fiddles around with the
current environment to merge the exception paths. In particular, the current
environment pointer is mutated. This patch ensures that when we merge the fast
and slow paths of the LdaContextLookup, we actually merge the correct
environment and do not accidentally merge the exceptional environment.

BUG=chromium:651394

Review-Url: https://codereview.chromium.org/2379043002
Cr-Commit-Position: refs/heads/master@{#39878}
2016-09-29 15:18:06 +00:00
kozyatinskiy
497af7fca5 [inspector] added devtools-reviews@chromium.org in WATCHLISTS for inspector
BUG=chromium:635948
R=dgozman@chromium.org,jochen@chromium.org

Review-Url: https://codereview.chromium.org/2373983003
Cr-Commit-Position: refs/heads/master@{#39877}
2016-09-29 15:16:54 +00:00
lkelvin
429e93bd6b PPC/s390: [heap] New heuristics for incremental marking step size.
Port: 1beb89f24c

This patch simplifies code for speeding up marking and
removes write barrier counter.

The step size is now computed based in two parts:
- bytes to mark in order to keep up with allocation,
- bytes to mark in order to make progress.

R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com, bjaideep@ca.ibm.com
BUG=

Review-Url: https://codereview.chromium.org/2378053003
Cr-Commit-Position: refs/heads/master@{#39876}
2016-09-29 15:15:58 +00:00
jarin
fb7904c6dc [turbofan] Explicit OSR environment merge for bytecode graph builder.
Review-Url: https://codereview.chromium.org/2377343002
Cr-Commit-Position: refs/heads/master@{#39875}
2016-09-29 15:14:45 +00:00
alph
57b0e37443 [tracing] r39794 follow-up: Update the missing part of the test.
The test now checks the case when an observer is added after tracing is started.

BUG=chromium:406277

Review-Url: https://codereview.chromium.org/2376953002
Cr-Commit-Position: refs/heads/master@{#39874}
2016-09-29 15:13:46 +00:00
machenbach
7496c9de94 Revert of [modules] Properly initialize declared variables. (patchset #5 id:80001 of https://codereview.chromium.org/2375793002/ )
Reason for revert:
Suspect for causing win64 debug problems:
https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20debug/builds/12646

Original issue's description:
> [modules] Properly initialize declared variables.
>
> Before evaluating a module, all variables declared at the top-level
> in _any_ of the modules in the dependency graph must be initialized.
> This is observable because a module A can access a variable imported
> from module B (e.g. a function) at a point when module B's body hasn't
> been evaluated yet.
>
> We achieve this by implementing modules internally as generators with
> two states (not initialized, initialized).
>
> R=adamk@chromium.org
> BUG=v8:1569
>
> Committed: https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20
> Cr-Commit-Position: refs/heads/master@{#39871}

TBR=adamk@chromium.org,mstarzinger@chromium.org,neis@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2379063002
Cr-Commit-Position: refs/heads/master@{#39873}
2016-09-29 15:10:30 +00:00
tebbi
8c87212186 [stubs] Port ToString platform stub to TurboFan.
R=bmeurer@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2380973002
Cr-Commit-Position: refs/heads/master@{#39872}
2016-09-29 14:50:57 +00:00
neis
f4dfb6fbe1 [modules] Properly initialize declared variables.
Before evaluating a module, all variables declared at the top-level
in _any_ of the modules in the dependency graph must be initialized.
This is observable because a module A can access a variable imported
from module B (e.g. a function) at a point when module B's body hasn't
been evaluated yet.

We achieve this by implementing modules internally as generators with
two states (not initialized, initialized).

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2375793002
Cr-Commit-Position: refs/heads/master@{#39871}
2016-09-29 14:20:56 +00:00
jkummerow
145d21af6e Revert of [builtins] migrate C++ String Iterator builtins to baseline TurboFan (patchset #13 id:260001 of https://codereview.chromium.org/2358263002/ )
Reason for revert:
Introduces an infinite loop (see comment).

Original issue's description:
> [builtins] migrate C++ String Iterator builtins to baseline TurboFan
>
> Migrate newly added C++ String Iterator builtins to TFJ builtins, per
> step 4. of the String Iterator Baseline Implementation section of the design doc
>
> BUG=v8:5388
> R=bmeurer@chromium.org, mstarzinger@chromium.org
>
> Committed: https://crrev.com/f9a2c8b1112c4e915df8bc5f7ea1fccdf7a33ff8
> Cr-Commit-Position: refs/heads/master@{#39765}

TBR=bmeurer@chromium.org,mstarzinger@chromium.org,caitp@igalia.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=v8:5388

Review-Url: https://codereview.chromium.org/2374123005
Cr-Commit-Position: refs/heads/master@{#39870}
2016-09-29 14:09:06 +00:00
jarin
ff7e60c869 [turbofan] Refactor the OSR environment merging to create an explicit environment.
This is useful for my upcoming work on OSR typing, which needs
to create checkpoints (which in turn require environments).

Review-Url: https://codereview.chromium.org/2379643003
Cr-Commit-Position: refs/heads/master@{#39869}
2016-09-29 13:56:16 +00:00
leszeks
837c91e87b [base] Template MatchFun in TemplateHashMapImpl
Make MatchFun a template parameter in TemplateHashMapImpl, moving the
PointersMatch function down to an implementation which extends
TemplateHashMapImpl to void* key and value (i.e. the same as the current
HashMap and ZoneHashMap typedefs).

This will allow other instantiations of TemplateHashMapImpl, with
different MatchFun values, e.g. std::equal_to, to have their key
equality test inlined, rather than calling a function pointer,

Review-Url: https://codereview.chromium.org/2354593002
Cr-Commit-Position: refs/heads/master@{#39868}
2016-09-29 13:53:24 +00:00
epertoso
4b27480e11 [interpreter] Specify and type the parameters of the Interpreter*Descriptors.
BUG=

Review-Url: https://codereview.chromium.org/2380523005
Cr-Commit-Position: refs/heads/master@{#39867}
2016-09-29 13:48:18 +00:00
kozyatinskiy
dc1c71c0dc [inspector] added inspector test runner [part 1]
- added a inspector folder,
- added related GN and gyp files,
- added task handling infrastructure for test runner.

BUG=chromium:635948
R=dgozman@chromium.org,alph@chromium.org

Review-Url: https://codereview.chromium.org/2361623006
Cr-Commit-Position: refs/heads/master@{#39866}
2016-09-29 13:46:06 +00:00
cbruni
4714069473 [tools] Add support for replacing the default content in callstats.html
BUG=
NOTRY=true

Review-Url: https://codereview.chromium.org/2376103003
Cr-Commit-Position: refs/heads/master@{#39865}
2016-09-29 13:31:31 +00:00
verwaest
fecd09ce32 Readd default function variables upon scope reset for preparse abort
BUG=chromium:651327

Review-Url: https://codereview.chromium.org/2380993003
Cr-Commit-Position: refs/heads/master@{#39864}
2016-09-29 13:29:15 +00:00
bmeurer
cb0de11d80 [turbofan] Eliminate unnecessary hole to undefined conversion.
Add simplified operator reduction rule that reduces

  CheckedTaggedSignedToInt32(ConvertTaggedHoleToUndefined(x))

to

  CheckedTaggedSignedToInt32(x)

which avoids the unnecessary hole to undefined conversion, as the check
operation will fail equally on either hole or undefined.

BUG=v8:5267
R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2384453002
Cr-Commit-Position: refs/heads/master@{#39863}
2016-09-29 12:52:07 +00:00
jarin
6ca8c11fb3 Add a flag for aborting on stack overflow.
This is useful for correctness fuzzing where different compilers might
overflow the stack in different points.

Review-Url: https://codereview.chromium.org/2381773003
Cr-Commit-Position: refs/heads/master@{#39862}
2016-09-29 12:20:31 +00:00
titzer
c1e320b074 [wasm] Rename encoder.(cc,h) to wasm-module-builder.(cc,h)
R=bradnelson@chromium.org,mtrofin@chromium.org,mstarzinger@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2383463002
Cr-Commit-Position: refs/heads/master@{#39861}
2016-09-29 11:29:19 +00:00
balazs.kilvady
96cb6d5a58 MIPS64: Improve performance of simulator in debug mode.
BUG=

Review-Url: https://codereview.chromium.org/2375673002
Cr-Commit-Position: refs/heads/master@{#39860}
2016-09-29 11:25:16 +00:00
mlippautz
9b7264e30d [heap] Always use getter when accessing MarkingDeque
BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2377273002
Cr-Commit-Position: refs/heads/master@{#39859}
2016-09-29 10:56:35 +00:00
jacob.bramley
4baa8d86f0 [arm] Remove --enable-movw-movt.
This flag was disabled by default, and has been broken for a long time.

BUG=

Review-Url: https://codereview.chromium.org/2374063004
Cr-Commit-Position: refs/heads/master@{#39858}
2016-09-29 10:44:55 +00:00
bjaideep
1fb4498c40 Fixed minor error in IncrementalMarking::AdvanceIncrementalMarkingOnAllocation
bytes_processed should be used instead of bytes_to_process when
updating bytes_allocated_. Also updated the type of bytes_processed
since min() takes in 2 variables of the same type.
The code was added as part of:
https://codereview.chromium.org/2359903002

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

Review-Url: https://codereview.chromium.org/2380853002
Cr-Commit-Position: refs/heads/master@{#39857}
2016-09-29 10:22:42 +00:00
machenbach
964f54ba1a [test] Reduce time spent on js-perf tests and fix timeouts.
Strings takes a considerate amount of time and times out on
many platforms. Generally the iterations need to be reduced
to free resources.

NOTRY=true
TBR=hablich@chromium.org

Review-Url: https://codereview.chromium.org/2374393002
Cr-Commit-Position: refs/heads/master@{#39856}
2016-09-29 09:33:45 +00:00
alph
e4e3650e8b [profiler] Introduce Tracing CPU profiler V8 API.
Tracing CPU profiler allows V8 to automatically collect CPU profile when tracing
is started with category v8.cpu_profile2 enabled.

BUG=chromium:406277

Review-Url: https://codereview.chromium.org/2378143003
Cr-Commit-Position: refs/heads/master@{#39855}
2016-09-29 09:25:21 +00:00
mlippautz
9af3142fba Revert of [heap] Remove border page
Reason for revert:
No real improvement as we still lack the ability to promote from
scavenges/young gen GCs.

Let's keep this in mind for later.

Original issue's description:
> [heap] Remove border page
>
> A page now belongs either the nursery *or* the intermediate gen. The page that
> contained objects of both spaces is removed in this change.
>
> BUG=chromium:636331
>
> Committed: https://crrev.com/42ece47446f0dbd3779d6e0e00dce97a1931a9f9
> Cr-Commit-Position: refs/heads/master@{#39778}

TBR=ulan@chromium.org,hpayer@chromium.org
BUG=chromium:636331

Review-Url: https://codereview.chromium.org/2383443002
Cr-Commit-Position: refs/heads/master@{#39854}
2016-09-29 09:21:08 +00:00
alph
1e937f6676 Allow thread-safe access to add/remove code event observers.
BUG=406277

Review-Url: https://codereview.chromium.org/2321073004
Cr-Commit-Position: refs/heads/master@{#39853}
2016-09-29 08:24:10 +00:00
jgruber
e3222de330 [stubs] Port String.prototype.substring to TurboFan
BUG=v8:5415

Committed: https://crrev.com/cc37dff7ba21345b3a867a86127a208e34a3f707
Review-Url: https://codereview.chromium.org/2358133004
Cr-Original-Commit-Position: refs/heads/master@{#39717}
Cr-Commit-Position: refs/heads/master@{#39852}
2016-09-29 08:16:19 +00:00
jgruber
261d750ea5 [stubs] Port SubStringStub to TurboFan
This ports the platform-specific SubStringStub to TurboFan.

It also contains a minor bug-fix for the case when the requested substring
length equals the subject string length, but the start index is not equal to 0.
The old stub implementation returned the subject string, while the new
implementation calls into runtime, which finally results in a thrown exception.

BUG=v8:5415

Committed: https://crrev.com/49be31921536716706a6790fbbf9c346b975af16
Review-Url: https://codereview.chromium.org/2355793003
Cr-Original-Commit-Position: refs/heads/master@{#39653}
Cr-Commit-Position: refs/heads/master@{#39851}
2016-09-29 07:35:03 +00:00
franzih
c5e735deac [tracing] Simplify include statement.
Change include statement, otherwise embedders have problems compiling.

BUG=

Review-Url: https://codereview.chromium.org/2378773004
Cr-Commit-Position: refs/heads/master@{#39850}
2016-09-29 07:02:30 +00:00
bmeurer
def77f4f42 [turbofan] Properly optimize immutable property loads.
When lowering a JSLoadNamed with an immutable own property of a
known constant JSObject, we can just constant fold the load during
native context specialization, similar to what Crankshaft does in
HOptimizedGraphBuilder::BuildLoadNamedField. This way we can also
constant-fold stuff like Math.LN2 and friends.

R=jarin@chromium.org
BUG=v8:5267

Review-Url: https://codereview.chromium.org/2376033002
Cr-Commit-Position: refs/heads/master@{#39849}
2016-09-29 06:56:43 +00:00
mtrofin
aff5ab1132 [wasm] fix for GC during instantiation.
BUG=chromium:651070

Review-Url: https://codereview.chromium.org/2371403003
Cr-Commit-Position: refs/heads/master@{#39848}
2016-09-29 04:24:42 +00:00
v8-autoroll
37687e3184 Update V8 DEPS.
Rolling v8/base/trace_event/common to 08b7b94e88aecc99d435af7f29fda86bd695c4bd

Rolling v8/build to d3f34f8dfaecc23202a6ef66957e83462d6c826d

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

Review-Url: https://codereview.chromium.org/2380463004
Cr-Commit-Position: refs/heads/master@{#39847}
2016-09-29 03:40:49 +00:00
kozyatinskiy
e9ceb376e4 [inspector] add presubmit.py to compile inspector-related scripts
BUG=chromium:635948
R=dgozman@chromium.org,alph@chromium.org

Review-Url: https://codereview.chromium.org/2354263003
Cr-Commit-Position: refs/heads/master@{#39846}
2016-09-29 00:57:04 +00:00
mtrofin
df490c3484 [wasm] Fix for cloning module heap size value
The module size is encoded as a HeapNumber, and needs to be
explicitly cloned.

BUG=chromium:647649

Review-Url: https://codereview.chromium.org/2347333002
Cr-Commit-Position: refs/heads/master@{#39845}
2016-09-29 00:48:28 +00:00
kozyatinskiy
28fe488fb7 [inspector] fix crash in wrapping result for async Runtime.evaluate
BUG=chromium:651211,chromium:650965
R=dgozman@chromium.org

Review-Url: https://codereview.chromium.org/2376143002
Cr-Commit-Position: refs/heads/master@{#39844}
2016-09-29 00:32:55 +00:00
kozyatinskiy
bcedfb029c [inspector] don't truncate [[Entries]] from Runtime.getProperties
BUG=chromium:650729
R=dgozman@chromium.org

Review-Url: https://codereview.chromium.org/2373753003
Cr-Commit-Position: refs/heads/master@{#39843}
2016-09-29 00:10:11 +00:00
adamk
622bb78d9b Remove getters that duplicate FunctionKind in SharedFunctionInfo and ParseInfo
R=neis@chromium.org

Review-Url: https://codereview.chromium.org/2372373002
Cr-Commit-Position: refs/heads/master@{#39842}
2016-09-28 21:24:06 +00:00
machenbach
ddbc4dcce6 [build] Roll buildtools 86f7e41d94..5fd66957f0
Ports https://codereview.chromium.org/2375753002/

TBR=dpranke@chromium.org, jochen@chromium.org

Review-Url: https://codereview.chromium.org/2379743002
Cr-Commit-Position: refs/heads/master@{#39841}
2016-09-28 21:17:09 +00:00
gdeepti
64e43be959 Fix bounds check of a store instruction after a grow_memory instruction
- Store instruction with an offset bigger than GrowMemory offset should handle out of bounds correctly
 - Refactor to separate runnning from compile so arguments can be passed in to module builder tests.

BUG=chromium:644670

R=ahaas@chromium.org, titzer@chromium.org

Review-Url: https://codereview.chromium.org/2373613004
Cr-Commit-Position: refs/heads/master@{#39840}
2016-09-28 20:56:01 +00:00
hlopko
3208cdf347 Make UsingEmbedderHeapTracer nicer
BUG=
LOG=no

Review-Url: https://codereview.chromium.org/2379623002
Cr-Commit-Position: refs/heads/master@{#39839}
2016-09-28 20:07:33 +00:00
ulan
7e652694a0 Reland "[heap] New heuristics for starting of incremental marking. (patchset #9 id:160001 of https://codereview.chromium.org/2364923002/ )"
This reverts commit a5440d1190.

BUG=chromium:616434
TBR=hpayer@chromium.org
LOG=NO

Review-Url: https://codereview.chromium.org/2379663002
Cr-Commit-Position: refs/heads/master@{#39838}
2016-09-28 17:52:00 +00:00
georgia.kouveli
c98fed4c78 [turbofan] Add option to filter --print-opt-code.
BUG=

Review-Url: https://codereview.chromium.org/2375933003
Cr-Commit-Position: refs/heads/master@{#39837}
2016-09-28 17:03:43 +00:00
bradnelson
21e46b05a2 [wasm] [asm.js] Fix various asm.js issues.
Several of the asm.js tests were disabled and wrong (mismatched number of args
on the stdlib functions).

Fixing issue around negation and float + doubles.

Renaming function for IsNegate to IsInvert (to reflect what it actually does).

Added tests for negate and invert.

BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203
R=aseemgarg@chromium.org,jpp@chromium.org

Review-Url: https://codereview.chromium.org/2377903002
Cr-Commit-Position: refs/heads/master@{#39836}
2016-09-28 16:37:04 +00:00
cbruni
d67aafa6af [tools] Fix typo in callstats.py and show stdout/stderr with replay
BUG=

Review-Url: https://codereview.chromium.org/2379613002
Cr-Commit-Position: refs/heads/master@{#39835}
2016-09-28 15:59:50 +00:00
verwaest
375079b167 Preparse top-level functions in discardable zones
BUG=

Committed: https://crrev.com/ff8cfa9e5e8495165291ddf6e01dba3f8cb5a177
Review-Url: https://codereview.chromium.org/2374963002
Cr-Original-Commit-Position: refs/heads/master@{#39809}
Cr-Commit-Position: refs/heads/master@{#39834}
2016-09-28 15:58:37 +00:00
machenbach
a5440d1190 Revert of [heap] New heuristics for starting of incremental marking. (patchset #9 id:160001 of https://codereview.chromium.org/2364923002/ )
Reason for revert:
OOMs in nosnap debug:
https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug/builds/9572

Original issue's description:
> [heap] New heuristics for starting of incremental marking.
>
> The motivation for this patch is to move more marking work to tasks.
> This is done by postponing the start of incremental marking until
> a marking task is running.
>
> This patch introduces a soft and a hard limits for incremental marking.
> When the soft limit is reached, the marking task is scheduled.
> If the hard limit is reached before the task is running, then
> incremental marking is started without waiting for the task.
>
> BUG=chromium:616434
> LOG=NO
>
> Committed: https://crrev.com/55683ddd2a32e0dfb8df66271fbf53e3618cce9d
> Cr-Commit-Position: refs/heads/master@{#39831}

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

Review-Url: https://codereview.chromium.org/2375983002
Cr-Commit-Position: refs/heads/master@{#39833}
2016-09-28 15:20:10 +00:00
leszeks
d8d964baa2 [ignition] Add lookup fast path to generated turbofan graph
Adds a fast-path test and branch for the turbofan graph generated by
BytecodeGraphBuilder for dynamic local lookups.

BUG=v8:5263

Review-Url: https://codereview.chromium.org/2378653003
Cr-Commit-Position: refs/heads/master@{#39832}
2016-09-28 14:55:34 +00:00
ulan
55683ddd2a [heap] New heuristics for starting of incremental marking.
The motivation for this patch is to move more marking work to tasks.
This is done by postponing the start of incremental marking until
a marking task is running.

This patch introduces a soft and a hard limits for incremental marking.
When the soft limit is reached, the marking task is scheduled.
If the hard limit is reached before the task is running, then
incremental marking is started without waiting for the task.

BUG=chromium:616434
LOG=NO

Review-Url: https://codereview.chromium.org/2364923002
Cr-Commit-Position: refs/heads/master@{#39831}
2016-09-28 14:43:59 +00:00
mvstanton
9686d0811e [turbofan] Type::Contains() and Constants() is unnecessary.
Cleanup.

BUG=

Review-Url: https://codereview.chromium.org/2379573002
Cr-Commit-Position: refs/heads/master@{#39830}
2016-09-28 14:09:28 +00:00
nikolaos
da33b67ad7 [parser] Refactor of ParseClass* and ParseNativeDeclaration
This patch moves the following parsing method to ParserBase:

- ParseClassDeclaration
- ParseClassLiteral
- ParseNativeDeclaration

R=adamk@chromium.org, marja@chromium.org
BUG=
LOG=N

Committed: https://crrev.com/7818355363b7a66ff7709e33c72bfdef5eb21450
Review-Url: https://codereview.chromium.org/2368083002
Cr-Original-Commit-Position: refs/heads/master@{#39814}
Cr-Commit-Position: refs/heads/master@{#39829}
2016-09-28 13:42:39 +00:00