Commit Graph

35318 Commits

Author SHA1 Message Date
neis
cc3195abda [modules] Disable Crankshaft for functions referencing module variables.
Also add a primitive mjsunit test that uses such a function optimized by
Turbofan.

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

Review-Url: https://codereview.chromium.org/2472143002
Cr-Commit-Position: refs/heads/master@{#40826}
2016-11-08 11:45:34 +00:00
neis
dd155e47bd [ignition,modules] Introduce bytecodes for loading/storing module variables.
This introduces two new bytecodes LdaModuleVariable and StaModuleVariable,
replacing the corresponding runtime calls.

Support in the bytecode graph builder exists only in the form of runtime calls.

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2471033004
Cr-Commit-Position: refs/heads/master@{#40825}
2016-11-08 11:01:40 +00:00
jgruber
60d60fd716 [debugger] Migrate more debugger tests to inspector
This moves all tests currently working with the inspector debugger wrapper to
test/debugger.

BUG=v8:5530

Review-Url: https://codereview.chromium.org/2480223002
Cr-Commit-Position: refs/heads/master@{#40824}
2016-11-08 10:39:08 +00:00
rmcilroy
4bc082f360 [Tools] Enable grouping of jited code in linux_perf_report.py.
Review-Url: https://codereview.chromium.org/2477363002
Cr-Commit-Position: refs/heads/master@{#40823}
2016-11-08 10:38:14 +00:00
ahaas
0ab9ecc23a [wasm] Fix a memory leak in test-run-wasm-module.
The memory leak is fixed by calling the GC at the end of the tests. The GC collects the WasmModuleWrapper objects, which deallocates WasmModule c++ object. For the mjsunit tests the GC is already called because of the --invoke_weak_callbacks flag.

BUG=chromium:662388

Review-Url: https://codereview.chromium.org/2476643003
Cr-Commit-Position: refs/heads/master@{#40822}
2016-11-08 10:34:34 +00:00
machenbach
34aec495e9 [test] Isolate files the perf runner depends on
BUG=chromium:616879
NOTRY=true
TBR=mtrofin@chromium.org

Review-Url: https://codereview.chromium.org/2476273003
Cr-Commit-Position: refs/heads/master@{#40821}
2016-11-08 10:25:13 +00:00
gdeepti
625767df91 [wasm] Linear/Exported memory maximum property should be set when maximum is defined.
- When module bytes have a memory maximum defined, compiled module object should set maximum memory
 - Exported memory objects should set maximum value on the memory objects
 - Update tests to use declared maximum values.

R=ahaas@chromium.org

Review-Url: https://codereview.chromium.org/2474333003
Cr-Commit-Position: refs/heads/master@{#40820}
2016-11-08 09:55:27 +00:00
jgruber
5a44be9a25 [debugger] Add entire directory to files in .isolate
Previously, tests in the newly added test/debugger/debug directory were
not executed on CQ.

BUG=v8:5530

Review-Url: https://codereview.chromium.org/2484713002
Cr-Commit-Position: refs/heads/master@{#40819}
2016-11-08 08:48:57 +00:00
zhengxing.li
db7580a495 X87: [turbofan] Refactor the compare-zero folding in instruction selector.
port 9b308dcaf5 (r40721)

  original commit message:

BUG=

Review-Url: https://codereview.chromium.org/2485033002
Cr-Commit-Position: refs/heads/master@{#40818}
2016-11-08 03:32:58 +00:00
lpy
7d28301d0c [Tracing] Use TracingCategoryObserver in gc statistics
This patch is a follow-up patch to enable gc statistics to use
TracingCategoryObserver.

Previously we need to pass --track_gc_object_stats to v8 if we want to enable
gc statistics in tracing. In this patch, we introducce an integer flag
FLAG_gc_stats, and FLAG_track_gc_object_stats and FLAG_trace_gc_object_stats
will set it to 0x01, tracing will set it to 0x10 when we start tracing and
reset the bit when we stop tracing.

BUG=v8:5590

Review-Url: https://codereview.chromium.org/2459903003
Cr-Commit-Position: refs/heads/master@{#40817}
2016-11-08 03:14:22 +00:00
zhengxing.li
a457336dbf X87: [builtins]: Uniformly push argument count in TF-generated builtins.
port 4447405b17 (r40712)

  original commit message:

BUG=

Review-Url: https://codereview.chromium.org/2486433004
Cr-Commit-Position: refs/heads/master@{#40816}
2016-11-08 03:08:28 +00:00
bjaideep
e1a57a03b2 [wasm] fix TestInterruptLoop for Big Endian platform
Using Read/WriteLittleEndianValue method to access native
memory. This will perform byte reversal depending on the
endianness of the patform.

Testcase was added in CL: https://codereview.chromium.org/2405293002

R=ahaas@chromium.org, titzer@chromium.org
BUG=
LOG=N

Review-Url: https://codereview.chromium.org/2479043003
Cr-Commit-Position: refs/heads/master@{#40815}
2016-11-07 23:26:05 +00:00
danno
57f8e38ecb [turbofan]: Convert StringFromCharCode to var-args style TF builtin
Review-Url: https://codereview.chromium.org/2448993002
Cr-Commit-Position: refs/heads/master@{#40814}
2016-11-07 21:26:51 +00:00
jarin
7f801ff35b [crankshaft] Do not optimize argument access if any parameter is context-allocated.
Note: This CL might regress code that relies on such arguments access.
In that case, we could still optimize the access if it accesses at
constant index (and the argument at that index is not context-allocated).

If any code relies on a general access to context-allocated arguments,
we would need to analyze the function for assignment to the arguments - this
might be quite tricky.

BUG=chromium:662845

Review-Url: https://codereview.chromium.org/2484723002
Cr-Commit-Position: refs/heads/master@{#40813}
2016-11-07 19:10:15 +00:00
alph
c57e54b389 [profiler] Introduce lightweight mode for Rutime Call Stats collection.
In the lightweight mode it only maintains pseudo stack and does not
collect timing information. It can be used in the sampling mode.

BUG=chromium:660428

Review-Url: https://codereview.chromium.org/2472193002
Cr-Commit-Position: refs/heads/master@{#40812}
2016-11-07 18:14:14 +00:00
machenbach
32ec567df1 Revert of [wasm] Indirect calls without function table cause validation errors. (patchset #3 id:40001 of https://codereview.chromium.org/2484623002/ )
Reason for revert:
Speculative revert for blocking roll:
https://codereview.chromium.org/2479233002/

Original issue's description:
> [wasm] Indirect calls without function table cause validation errors.
>
> The spec defines that indirect calls in WebAssembly code should cause a
> validation error if no function table exists.
>
> The CL contains the following changes:
> 1) Throw a validation error for indirect calls if the function table
>    not exist.
> 2) Do not create TF nodes to throw a runtime error for indirect calls
>    if the function table does not exist.
> 3) Fix existing unit tests by creating a dummy function table.
> 4) Add new a new test which tests that indirect calls without function
>    table cause a validation error.
>
> R=rossberg@chromium.org
> CC=titzer@chromium.org
>
> TEST=unittests/AstDecoderTest.IndirectCallsWithoutTableCrash

TBR=rossberg@chromium.org,titzer@chromium.org,ahaas@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/2479283002
Cr-Commit-Position: refs/heads/master@{#40811}
2016-11-07 17:57:54 +00:00
neis
08da5c98cf [compiler] Generalize context load/store operations in code-stub-assembler.
The existing Load/StoreContextElement operations take the index as an int.  This
CL adds versions that take the index as a Node.  These already existed in the
interpreter-assembler, from which they are now removed.

R=mstarzinger@chromium.org, rmcilroy@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2473003004
Cr-Commit-Position: refs/heads/master@{#40810}
2016-11-07 17:42:49 +00:00
verwaest
56b8afc1c3 [parser] Only track parsing-mode (and possibly switch to the preparser) in the parser
Otherwise we could in theory abort preparsing to the preparser and preparse again before aborting again... We shouldn't have this mess; so only set up mode_ in the parser in the first place.

BUG=

Review-Url: https://codereview.chromium.org/2479213002
Cr-Commit-Position: refs/heads/master@{#40809}
2016-11-07 16:34:58 +00:00
neis
21463f73e9 [modules] Maintain array of cells for imports and local exports.
This makes use of the newly introduced cell indices to speed up variable
accesses. Imports and local exports are now directly stored in (separate)
arrays. In the future, we may merge the two arrays into a single one, or
even into the module context.

This CL also replaces the LoadImport and LoadExport runtime functions with
a single LoadVariable taking a variable index as argument (rather than a
name).

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2465283004
Cr-Commit-Position: refs/heads/master@{#40808}
2016-11-07 16:23:47 +00:00
verwaest
17318a41b0 [parser] add preparse tracing of arrow functions
BUG=

Review-Url: https://codereview.chromium.org/2481743003
Cr-Commit-Position: refs/heads/master@{#40807}
2016-11-07 15:51:26 +00:00
jgruber
39b86ad453 Manually complete failed revert
The revert somehow lost the contents of regress-2825.js.

NOTRY=true
NOPRESUBMIT=true
NOTREECHECKS=true
BUG=chromium:662928

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

Cr-Commit-Position: refs/heads/master@{#40806}
2016-11-07 15:46:50 +00:00
jgruber
d5948caed5 Revert of [debugger] Migrate more debugger tests to inspector (patchset #2 id:20001 of https://codereview.chromium.org/2480223002/ )
Reason for revert:
http://build.chromium.org/p/client.v8/builders/V8%20Linux%20gcc%204.8/builds/9724

Original issue's description:
> [debugger] Migrate more debugger tests to inspector
>
> This moves all tests currently working with the inspector debugger wrapper to
> test/debugger.
>
> BUG=v8:5530

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

Review-Url: https://codereview.chromium.org/2480283002
Cr-Commit-Position: refs/heads/master@{#40805}
2016-11-07 15:11:46 +00:00
jgruber
9e07e0005d [debugger] Migrate more debugger tests to inspector
This moves all tests currently working with the inspector debugger wrapper to
test/debugger.

BUG=v8:5530

Review-Url: https://codereview.chromium.org/2480223002
Cr-Commit-Position: refs/heads/master@{#40804}
2016-11-07 14:58:59 +00:00
verwaest
32105d214d [parser] Give preparser and parser independent loggers
This
- removes the ParserRecorder base class,
- devirtualizes the LogFunction and LogMessage functions,
- reuses the SingletonLogger for all preparser calls

In a subsequent step the preparser should probably log directly to the CompleteParserRecorder rather than indirectly through the singleton logger...

BUG=

Review-Url: https://codereview.chromium.org/2474393003
Cr-Commit-Position: refs/heads/master@{#40803}
2016-11-07 13:23:23 +00:00
ahaas
3de5204737 [wasm] Indirect calls without function table cause validation errors.
The spec defines that indirect calls in WebAssembly code should cause a
validation error if no function table exists.

The CL contains the following changes:
1) Throw a validation error for indirect calls if the function table
   not exist.
2) Do not create TF nodes to throw a runtime error for indirect calls
   if the function table does not exist.
3) Fix existing unit tests by creating a dummy function table.
4) Add new a new test which tests that indirect calls without function
   table cause a validation error.

R=rossberg@chromium.org
CC=titzer@chromium.org

TEST=unittests/AstDecoderTest.IndirectCallsWithoutTableCrash

Review-Url: https://codereview.chromium.org/2484623002
Cr-Commit-Position: refs/heads/master@{#40802}
2016-11-07 12:37:27 +00:00
ahaas
15d4984b9c [wasm] Compare the maximum memory size with the spec limit, not with the V8 limit
The maximum memory size is a user-defined upper limit for the size of
the memory of a WebAssembly instance. The actual limit is the minimum of
the user-defined limit and the V8 limit. With this CL we allow the
user-defined limit to be greater than the V8 limit, which is required by
the spec.

R=titzer@chromium.org
CC=gdeepti@chromium.org

TEST=unittests/WasmModuleVerifyTest.MaxMaximumMemorySize

Review-Url: https://codereview.chromium.org/2484643002
Cr-Commit-Position: refs/heads/master@{#40801}
2016-11-07 12:26:19 +00:00
jgruber
ea48d0942a [debugger] Further stepping support in test wrapper
This CL adds further support to the test wrapper. We are now able to
run almost all mjsunit/debug-step-* tests using the inspector backend.

debug-stepframe-* tests are not yet supported since inspector does not
know a 'frame' step type.

The interface has also been improved to be able to move these tests to
inspector mostly without modification.

BUG=v8:5330

Review-Url: https://codereview.chromium.org/2466273005
Cr-Commit-Position: refs/heads/master@{#40800}
2016-11-07 12:25:24 +00:00
bmeurer
78f0d04cef [turbofan] Don't flush LoadElimination on unsupported field stores.
When we hit an unspported field store, only flush the state of
potentially aliasing objects, but don't flush the full state table.

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

Review-Url: https://codereview.chromium.org/2476213002
Cr-Commit-Position: refs/heads/master@{#40799}
2016-11-07 11:14:51 +00:00
mlippautz
142d4f97c0 [heap] Make LiveObjectIterator concurrency safe
LiveObjectIterator sometimes runs concurrently to the main thread. In this
scenarios we are not allowed to access memory of live objects in non-atomic
ways. Use synchronized reads where needed.

Correctness (already ok in current state):
- Reading a larger size is fine per definition.
- Reading a smaller size is fine since are guaranteed that one word fillers will
  follow.

BUG=v8:5583
R=ulan@chromium.org,hpayer@chromium.org

Review-Url: https://codereview.chromium.org/2477823003
Cr-Commit-Position: refs/heads/master@{#40798}
2016-11-07 11:11:48 +00:00
cbruni
072ea0c836 [tests] Change CodeStubAssemblerTester code type to BUILTIN
Drive-by-fix 1: be more precise in machine representations for
AllocateNameDictionary to make --turbo_verify_machine_graph happy.

Drive-by-fix 2: Improve graph verifier output by printing input
representation.

BUG=

Review-Url: https://codereview.chromium.org/2475913002
Cr-Commit-Position: refs/heads/master@{#40797}
2016-11-07 11:03:32 +00:00
cbruni
7344f4f0ff [tests] Enable Object.create JSPerf tests
R=jkummerow@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2461993002
Cr-Commit-Position: refs/heads/master@{#40796}
2016-11-07 11:03:31 +00:00
neis
9d6c6e5a66 [modules] Make handling of module info's regular exports more robust.
R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2473993002
Cr-Commit-Position: refs/heads/master@{#40795}
2016-11-07 09:55:55 +00:00
jgruber
f354558c80 [regexp] Fix a test case for RE.proto[@@search]
The test case did not test anything in its original form. Fix it and add
documentation.

BUG=v8:5339

Review-Url: https://codereview.chromium.org/2481733002
Cr-Commit-Position: refs/heads/master@{#40794}
2016-11-07 09:51:40 +00:00
yangguo
acd0c3cf76 [debugger] fix blacklisted tests.
BUG=v8:5581

R=jgruber@chromium.org

Review-Url: https://codereview.chromium.org/2469043003
Cr-Commit-Position: refs/heads/master@{#40793}
2016-11-07 09:43:57 +00:00
bmeurer
a758c19761 [turbofan] Properly rename receiver on CheckHeapObject.
We need to rename the receiver on CheckHeapObject, because we
don't canonicalize numbers in SignedSmall range, and thus we
the representation selection can hand out TaggedSigned values
for receiver uses, even though we checked for TaggedPointerness
first.

Note that this is rather hacky and just intended to fix the bug
ASAP. We need to think about how to deal with representations in
earlier compilation stages.

BUG=chromium:662410
R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2485563002
Cr-Commit-Position: refs/heads/master@{#40792}
2016-11-07 08:41:34 +00:00
ahaas
3a445b219e Fix typo in test-import-export-wrapper.js
TBR=mtrofin@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2481133002
Cr-Commit-Position: refs/heads/master@{#40791}
2016-11-07 08:12:13 +00:00
bmeurer
5f120e3801 [test] Drop flaky test mjsunit/compiler/deopt-arguments-oob.
TBR=machenbach@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2477303002
Cr-Commit-Position: refs/heads/master@{#40790}
2016-11-07 07:39:53 +00:00
yangguo
639f6f1774 [d8] cleanly force exit in d8 on windows.
Using _exit on windows may cause race conditions in threads.

BUG=chromium:603131

Review-Url: https://codereview.chromium.org/2478473003
Cr-Commit-Position: refs/heads/master@{#40789}
2016-11-07 07:25:38 +00:00
bmeurer
76bd4ff492 [turbofan] Also track Float64 fields in LoadElimination (on 64-bit platforms).
This adds support to track Float64 fields on 64-bit platforms, which is
necessary to properly deal with unboxed double fields there.

Drive-by-fix: Crash if we see Simd128 representation here.

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

Review-Url: https://codereview.chromium.org/2485543002
Cr-Commit-Position: refs/heads/master@{#40788}
2016-11-07 06:48:43 +00:00
bmeurer
d6ff45afad [crankshaft] Fix deoptimization loop w/ non-monomorphic arguments access.
In Crankshaft we unconditionally assume that accesses to arguments[i] will
be in-bounds and don't take into account IC feedback that would eventually
teach us about out-of-bounds accesses that have happened in the past, so
there's no real guard to protect the bounds check in optimized code.

TEST=mjsunit/compiler/deopt-arguments-oob
R=jarin@chromium.org
BUG=v8:5606

Review-Url: https://codereview.chromium.org/2481053002
Cr-Commit-Position: refs/heads/master@{#40787}
2016-11-07 06:39:34 +00:00
jing.bao
9e3eafdd28 [turbolizer] Recognize nested [] in json file
fix schedule viewing for text like
1756: HeapConstant[0x3ff62d29 <FixedArray[31]>] : HeapConstant(0x3ff62d29 <FixedArray[31]>)

BUG=

Review-Url: https://codereview.chromium.org/2471573007
Cr-Commit-Position: refs/heads/master@{#40786}
2016-11-07 01:51:19 +00:00
machenbach
146c52ef2c Revert of [Tracing] Use TracingCategoryObserver in gc statistics (patchset #5 id:100001 of https://codereview.chromium.org/2459903003/ )
Reason for revert:
Speculative revert for blocking roll:
https://codereview.chromium.org/2473003006/

E.g.:
https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/331898

Original issue's description:
> [Tracing] Use TracingCategoryObserver in gc statistics
>
> This patch is a follow-up patch to enable gc statistics to use
> TracingCategoryObserver.
>
> Previously we need to pass --track_gc_object_stats to v8 if we want to enable
> gc statistics in tracing. In this patch, we introducce an integer flag
> FLAG_gc_stats, and FLAG_track_gc_object_stats and FLAG_trace_gc_object_stats
> will set it to 0x01, tracing will set it to 0x10 when we start tracing and
> reset the bit when we stop tracing.
>
> BUG=v8:5590

TBR=fmeawad@chromium.org,mlippautz@chromium.org,lpy@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:5590

Review-Url: https://codereview.chromium.org/2477143002
Cr-Commit-Position: refs/heads/master@{#40785}
2016-11-05 13:28:01 +00:00
kozyatinskiy
c7eb622635 Roll third_party/inspector_protocol to ebda02bf94a742a2e26e4f818df1fc77517ac44c
This roll includes:
  - [inspector_protocol] remove old style domains support
  - Add missing virtual destructor to backend callbacks. [2]

[1] https://codereview.chromium.org/2479693002/
[2] https://codereview.chromium.org/2473393002/

BUG=none
R=dgozman@chromium.org

Review-Url: https://codereview.chromium.org/2478853002
Cr-Commit-Position: refs/heads/master@{#40784}
2016-11-04 22:47:25 +00:00
kozyatinskiy
f0fb658386 [inspector] added Debugger.getPossibleBreakpoints method
This method iterates through all shared function info which are related to passed script, compiles debug code for SFI in range if needed and returns possible break locations.

BUG=chromium:566801
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel

Review-Url: https://codereview.chromium.org/2465553003
Cr-Commit-Position: refs/heads/master@{#40783}
2016-11-04 19:59:48 +00:00
kozyatinskiy
efdc8acec2 [inspector] migrate Debugger to new style
BUG=none
R=dgozman@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel

Review-Url: https://codereview.chromium.org/2471583003
Cr-Commit-Position: refs/heads/master@{#40782}
2016-11-04 19:43:58 +00:00
vogelheim
3019b49764 Fix memory leak in test-scanner.cc.
BUG=chromium:662388

Review-Url: https://codereview.chromium.org/2468423008
Cr-Commit-Position: refs/heads/master@{#40781}
2016-11-04 18:54:14 +00:00
adamk
010770085b Remove always-true --harmony-restrictive-declarations flag
The flag has been on since at least Chrome 53.

R=littledan@chromium.org

Review-Url: https://codereview.chromium.org/2478883002
Cr-Commit-Position: refs/heads/master@{#40780}
2016-11-04 18:50:41 +00:00
littledan
3d0b227493 Stage ES2015 duplicate generator restrictions
R=adamk@chromium.org
BUG=v8:4806

Review-Url: https://codereview.chromium.org/2475383003
Cr-Commit-Position: refs/heads/master@{#40779}
2016-11-04 18:48:20 +00:00
littledan
3a5c693310 Allow the global object to be frozen through the global template
This patch fixes two bugs in V8 to allow the global object to have a frozen proto:
- The immutable prototype map check is done on the map of the "real receiver",
  the one that's found after the hidden prototype traversal, rather than
  the object that SetPrototype is called on.
- The immutable prototype bit from the ObjectTemplate used to instantiate
  the global object, as passed to Context::New, is respected when instantiating
  the global object.

R=adamk
BUG=v8:5149

Review-Url: https://codereview.chromium.org/2474843003
Cr-Commit-Position: refs/heads/master@{#40778}
2016-11-04 18:37:59 +00:00
lpy
75f1473880 [Tracing] Use TracingCategoryObserver in gc statistics
This patch is a follow-up patch to enable gc statistics to use
TracingCategoryObserver.

Previously we need to pass --track_gc_object_stats to v8 if we want to enable
gc statistics in tracing. In this patch, we introducce an integer flag
FLAG_gc_stats, and FLAG_track_gc_object_stats and FLAG_trace_gc_object_stats
will set it to 0x01, tracing will set it to 0x10 when we start tracing and
reset the bit when we stop tracing.

BUG=v8:5590

Review-Url: https://codereview.chromium.org/2459903003
Cr-Commit-Position: refs/heads/master@{#40777}
2016-11-04 17:38:45 +00:00