Commit Graph

30418 Commits

Author SHA1 Message Date
machenbach
8ba46715b0 [Ignition] Test ignition on all bots.
This adds ignition to the testing variants that are run on all
bots.

Failing tests can only be skipped with the NO_IGNITION
keyword in status files. Existing expectations for the
ignition_turbofan variant are all duplicated and use the
NO_IGNITION keyword as well now.

BUG=v8:4280
LOG=N

Committed: https://crrev.com/132c09ed619f23fb7c6d26a4e3552c703389eabd
Cr-Commit-Position: refs/heads/master@{#35865}

Review-Url: https://codereview.chromium.org/1804003002
Cr-Commit-Position: refs/heads/master@{#35926}
2016-05-02 09:25:00 +00:00
clemensh
bf1797b1d0 [wasm] Pass byte position for trapping instructions
During ast decoding and turbofan graph construction, we explicitely pass
the byte offset for all instructions which potentially trap.
The byte offset is finally passed to the runtime function which throws
the actual error, but it is not used there yet.

The WasmGraphBuilder::Binop and Unop methods have a default value of -1
for the position, which allows for more compact code for all the
functions which assemble bigger snippets from the primitive operations.
Whenever the position is actually used for generating a trap, we
check that it is not negative.

R=titzer@chromium.org

Review-Url: https://codereview.chromium.org/1915123006
Cr-Commit-Position: refs/heads/master@{#35925}
2016-05-02 08:48:24 +00:00
bmeurer
ceca5ae308 [turbofan] Remove left-over change bits from ChangeLowering.
Now ChangeLowering is only concerned with lowering memory access and
allocation operations, and all changes are consistently lowered during
the effect/control linearization pass. The next step is to move the
left over lowerings to a pass dedicated to eliminate redundant loads and
stores, eliminate write barriers, fold and inline allocations.

Also remove the atomic regions now that we wire everything into the
effect chain properly. This is an important step towards allocation
inlining.

Drive-by-fix: Rename ChangeBitToBool to ChangeBitToTagged,
ChangeBoolToBit to ChangeTaggedToBit, and ChangeInt31ToTagged to
ChangeInt31ToTaggedSigned for consistency.

CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux64_tsan_rel

Review-Url: https://codereview.chromium.org/1941673002
Cr-Commit-Position: refs/heads/master@{#35924}
2016-05-02 08:42:03 +00:00
mstarzinger
d9462d04a0 [compiler] Guard implicit tier-up when ensuring deopt support.
This makes sure that Compiler::EnsureDeoptimizationSupport follows the
same limitations as other compilation functions that trigger a tier-up.
Specifically it prevents against tier-up while inlining when activations
are present on the stack.

R=yangguo@chromium.org
BUG=chromium:607494
LOG=n

Review-Url: https://codereview.chromium.org/1917193007
Cr-Commit-Position: refs/heads/master@{#35923}
2016-05-02 08:37:30 +00:00
jochen
f580f76503 Port arm, arm64, mipsle, and mips64le flags to GN
BUG=chromium:607461
R=machenbach@chromium.org,brettw@chromium.org
LOG=n

Review-Url: https://codereview.chromium.org/1927893002
Cr-Commit-Position: refs/heads/master@{#35922}
2016-05-02 08:11:45 +00:00
fedor
aee17a63b3 [prof] export slide offset in profile log
When exporting `shared-library` in profile log, additionally export a
slide offset. This is required to parse profile logs generated on
systems with ASLR (OS X), otherwise it is impossible to assign C++
symbol names to their addresses in the log.

See: https://github.com/nodejs/node/issues/6466

BUG=

Review-Url: https://codereview.chromium.org/1934453003
Cr-Commit-Position: refs/heads/master@{#35921}
2016-05-02 08:03:01 +00:00
bmeurer
914ad0a379 [turbofan] Nuke types before entering the concurrent phase.
It is unsound to look at the types in the TurboFan graphs after the
representation selection (and early optimization) phases, because

 (a) the remaining phases (might) run concurrently, and
 (b) the types may not be accurate (or even correct) after
     representation selection due to the way we deal with
     truncations.

So in Debug builds we now explicitly remove all types from the nodes
right after we uninstall the Typer decorator from the Graph, so any
further attempt to access the Type of a Node will lead to a crash (again
in Debug only for now).

CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux64_tsan_rel
BUG=v8:4969
LOG=n

Review-Url: https://codereview.chromium.org/1937803002
Cr-Commit-Position: refs/heads/master@{#35920}
2016-05-02 05:25:14 +00:00
v8-autoroll
461bf17ca3 Update V8 DEPS.
Rolling v8/tools/clang to a14766ac344d97871f75e60c4dd39385a6cd2865

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

Review-Url: https://codereview.chromium.org/1936953003
Cr-Commit-Position: refs/heads/master@{#35919}
2016-05-02 04:06:22 +00:00
bmeurer
d1b3d426ce [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.

Drive-by-fix: Remove the dead code from ChangeLowering, and stack
allocate the Typer in the pipeline. Also migrate the AllocateStub to a
native code builtin, so that we have the code object + a handle to it
available all the time.

CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux64_tsan_rel
R=mstarzinger@chromium.org
BUG=v8:4969
LOG=n

Review-Url: https://codereview.chromium.org/1926023002
Cr-Commit-Position: refs/heads/master@{#35918}
2016-04-30 19:01:01 +00:00
bmeurer
987bd9ccc7 Revert of Stop using deprecated hash_map in vtune-jit.cc. (patchset #1 id:1 of https://codereview.chromium.org/1924403002/ )
Reason for revert:
Breaks vtune-jit build, see https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20vtunejit/builds/10670

Original issue's description:
> Stop using deprecated hash_map in vtune-jit.cc.
>
> Fixes https://github.com/nodejs/node/issues/6422.

TBR=jochen@chromium.org,info@bnoordhuis.nl,ben@strongloop.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.chromium.org/1940693002
Cr-Commit-Position: refs/heads/master@{#35917}
2016-04-30 18:27:03 +00:00
ben
54c47545ef Stop using deprecated hash_map in vtune-jit.cc.
Fixes https://github.com/nodejs/node/issues/6422.

Review-Url: https://codereview.chromium.org/1924403002
Cr-Commit-Position: refs/heads/master@{#35916}
2016-04-30 11:32:01 +00:00
v8-autoroll
f03c694308 Update V8 DEPS.
Rolling v8/build to 5fbb07a2443f8095963594c2f365f99bad549180

Rolling v8/tools/clang to 0e474b23030b2723dfb3dd0c038746ec2c042469

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

Review-Url: https://codereview.chromium.org/1941543002
Cr-Commit-Position: refs/heads/master@{#35915}
2016-04-30 03:23:18 +00:00
mike
efe5b72d02 [parser] Enforce module-specific identifier restriction
Restrict the use of the `await` token as an identifier when parsing
source text as module code.

From
http://www.ecma-international.org/ecma-262/6.0/#sec-future-reserved-words:

> 11.6.2.2 Future Reserved Words
>
> The following tokens are reserved for used as keywords in future
> language extensions.
>
> Syntax
>
>     FutureReservedWord ::
>         enum
>         await
>
> await is only treated as a FutureReservedWord when Module is the goal
> symbol of the syntactic grammar.

BUG=v8:4767
LOG=N
R=adamk@chromium.org

Review-Url: https://codereview.chromium.org/1723313002
Cr-Commit-Position: refs/heads/master@{#35914}
2016-04-29 18:14:48 +00:00
mbrandy
791c0400cf Avoid reliance on undefined malloc(0) behavior.
AIX returns NULL rather than a valid heap address.

TEST=cctest/test-run-wasm-module/Run_WasmModule_CallAdd_rev
R=titzer@chromium.org, jochen@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/1934633002
Cr-Commit-Position: refs/heads/master@{#35913}
2016-04-29 16:54:53 +00:00
mtrofin
5b519033f0 [tools] Specify affinity and raise priority when benchmarking
I plan to drive these options from the infra recipe.

Raising the priority of the benchmarked process, and fixing
its affinity to some other CPU than 0 improves stability of
measurements.

BUG=

Review-Url: https://codereview.chromium.org/1915303002
Cr-Commit-Position: refs/heads/master@{#35912}
2016-04-29 15:53:19 +00:00
ishell
b83edcc8b1 [runtime] Don't crash when creating an instance of a class inherited from a Proxy.
BUG=v8:4972
LOG=N

Review-Url: https://codereview.chromium.org/1925803005
Cr-Commit-Position: refs/heads/master@{#35911}
2016-04-29 15:07:35 +00:00
mlippautz
45f52fcb60 Reland of "[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

This reverts commit 25ff296c4c.

Review-Url: https://codereview.chromium.org/1929503002
Cr-Commit-Position: refs/heads/master@{#35910}
2016-04-29 14:28:18 +00:00
rmcilroy
ac2a17abcb [Interpreter] Use FastCloneShallowObjectStub in CreateObjectLiteral bytecode.
Adapts FastCloneShallowObjectStub to enable it to be used by the
CreateObjectLiteral bytecode.

BUG=v8:4280
LOG=N

Review-Url: https://codereview.chromium.org/1922523002
Cr-Commit-Position: refs/heads/master@{#35909}
2016-04-29 14:21:33 +00:00
Michael Achenbach
4ecf8c6471 [build] Pull "build" from chromium as dependency
BUG=chromium:474921
LOG=n
R=jochen@chromium.org
TBR=jkummerow@chromium.org, jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35908}
2016-04-29 13:38:03 +00:00
machenbach
7494983788 [build] Remove deprecated build files
BUG=chromium:474921
LOG=n
TBR=jochen@chromium.org,jkummerow@chromium.org

Review-Url: https://codereview.chromium.org/1936523002
Cr-Commit-Position: refs/heads/master@{#35907}
2016-04-29 13:01:15 +00:00
clemensh
0d6d0b700f [wasm] Add tests for function name encoding
In order to have a wasm object (as JSObject), this adds a method to
instantiate the TestingModule. In order for this to work, the bytecode
and the function names of the TestingModule are stored for usage during
instantiation.

R=titzer@chromium.org

Review-Url: https://codereview.chromium.org/1916403002
Cr-Commit-Position: refs/heads/master@{#35906}
2016-04-29 12:43:51 +00:00
clemensh
9fd2650ae0 [wasm] Store function names in the wasm object
We now store the wasm object and the function index in the
deoptimization data of the wasm Code object, and store an array with
function names in the wasm object.

This will make both the wasm module as well as the respective function
name available from the code object.

Tests will follow in https://codereview.chromium.org/1916403002.

R=titzer@chromium.org, mstarzinger@chromium.org, machenbach@chromium.org

Review-Url: https://codereview.chromium.org/1912103002
Cr-Commit-Position: refs/heads/master@{#35905}
2016-04-29 12:26:28 +00:00
mstarzinger
5749d710bc [compiler] Fix TurboFan to respect kOptimizeFromBytecode.
This ensures that the TurboFan pipeline is respecting the flag on the
CompilationInfo controlling whether to use the BytecodeGraphBuilder or
the AstGraphBuilder when ensuring deoptimization support.

R=rmcilroy@chromium.org
BUG=chromium:607871
LOG=n

Review-Url: https://codereview.chromium.org/1934563002
Cr-Commit-Position: refs/heads/master@{#35904}
2016-04-29 12:04:43 +00:00
jkummerow
3a9bfecfe4 Fix overflow issue in Zone::New
When requesting a large allocation near the end of the address space,
the computation could overflow and erroneously *not* grow the Zone
as required.

BUG=chromium:606115
LOG=y

Review-Url: https://codereview.chromium.org/1930873002
Cr-Commit-Position: refs/heads/master@{#35903}
2016-04-29 11:55:49 +00:00
ulan
25fbb9047e Move V8 GC trace events to their own catergory.
This will allow us to enable GC events without enabling IC events.
Telemetry currently cannot handle huge number of IC events in a trace.

BUG=

Review-Url: https://codereview.chromium.org/1924333003
Cr-Commit-Position: refs/heads/master@{#35902}
2016-04-29 11:44:54 +00:00
clemensh
295e7a08a2 [wasm] Fix turbolizer output
The header / start of the json file was missing before.

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

Review-Url: https://codereview.chromium.org/1928503002
Cr-Commit-Position: refs/heads/master@{#35901}
2016-04-29 11:42:27 +00:00
clemensh
9763806ae6 [wasm] Add a flag to output the generated code size
The output is once per module, and includes the size of relocation information.

R=titzer@chromium.org

Review-Url: https://codereview.chromium.org/1933513003
Cr-Commit-Position: refs/heads/master@{#35900}
2016-04-29 10:50:26 +00:00
jkummerow
1095835a61 Reland of Remove more dead code after Object.observe removal (patchset #1 id:1 of https://codereview.chromium.org/1929293002/ )
This moves __{define,lookup}{Getter,Setter}__ to builtins.cc.

Compared to the first attempt, this patch now preserves non-spec-compliant legacy behavior and does not throw on failure.

Original review: https://codereview.chromium.org/1904313004

Review-Url: https://codereview.chromium.org/1932163002
Cr-Commit-Position: refs/heads/master@{#35899}
2016-04-29 10:15:54 +00:00
machenbach
3bf44848c3 [gn] Move build to gypfiles
This prepares for pulling chromium's build as dependency for
gn. After this, the files in build and gypfiles need to stay
in sync until chromium is updated.

BUG=chromium:474921
LOG=n

Review-Url: https://codereview.chromium.org/1848553003
Cr-Commit-Position: refs/heads/master@{#35898}
2016-04-29 10:11:11 +00:00
titzer
ee03b7217b [wasm] Binary 11: Bump module version to 0xB.
[wasm] Binary 11: Swap the order of section name / section length.
[wasm] Binary 11: Shorter section names.
[wasm] Binary 11: Add a prefix for function type declarations.
[wasm] Binary 11: Function types encoded as pcount, p*, rcount, r*
[wasm] Fix numeric names for functions.

R=rossberg@chromium.org,jfb@chromium.org,ahaas@chromium.org
BUG=chromium:575167
LOG=Y

Review-Url: https://codereview.chromium.org/1896863003
Cr-Commit-Position: refs/heads/master@{#35897}
2016-04-29 09:40:24 +00:00
titzer
2aa4656eeb [wasm] Binary 11: WASM AST is now postorder.
[wasm] Binary 11: br_table takes a value.
[wasm] Binary 11: Add implicit blocks to if arms.
[wasm] Binary 11: Add arities to call, return, and breaks
[wasm] Binary 11: Add experimental version.

This CL changes the encoder, decoder, and tests to use a postorder
encoding of the AST, which is more efficient in decode time and
space.

R=bradnelson@chromium.org,rossberg@chromium.org,binji@chromium.org
BUG=chromium:575167
LOG=Y

Review-Url: https://codereview.chromium.org/1830663002
Cr-Commit-Position: refs/heads/master@{#35896}
2016-04-29 09:16:21 +00:00
machenbach
7595dfd949 [release] Run blink trybot on roll CLs
TBR=hablich@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/1929303002
Cr-Commit-Position: refs/heads/master@{#35895}
2016-04-29 09:12:01 +00:00
machenbach
8aeb1ab74e [CQ] Raise blink trybot percentage to 100
TBR=hablich@chromium.org
NOTRY=true
NOPRESUBMIT=true

Review-Url: https://codereview.chromium.org/1930163003
Cr-Commit-Position: refs/heads/master@{#35894}
2016-04-29 09:05:06 +00:00
verwaest
efffb98b09 Simplify length-range-check in Array.prototype.push
BUG=

Review-Url: https://codereview.chromium.org/1925993005
Cr-Commit-Position: refs/heads/master@{#35893}
2016-04-29 09:02:46 +00:00
mstarzinger
b06fa13704 [interpreter] Be explicit when to test BytecodeGraphBuilder.
This adds a dedicated flag for enabling the BytecodeGraphBuilder. The
intention is to be explicit when this variant is being tested and to
avoid unnecessary overhead in production code for a configuration that
is not yet shipping.

R=rmcilroy@chromium.org

Review-Url: https://codereview.chromium.org/1925123002
Cr-Commit-Position: refs/heads/master@{#35892}
2016-04-29 08:41:11 +00:00
verwaest
49a4f2d14a Turn Array.isArray into a Turbofan stub
The current stub supports everything except JSProxy

BUG=

Review-Url: https://codereview.chromium.org/1924233002
Cr-Commit-Position: refs/heads/master@{#35891}
2016-04-29 08:19:21 +00:00
adamk
f1a0f054fb Several tiny cleanups in test-parsing.cc
R=littledan@chromium.org

Review-Url: https://codereview.chromium.org/1926133003
Cr-Commit-Position: refs/heads/master@{#35890}
2016-04-29 06:44:18 +00:00
zhengxing.li
1542e46d0d X87: [api] Expose FunctionCallbackInfo::NewTarget.
port 306c412ce0 (r35833)

  original commit message:
  This is needed by Blink to implement the Custom Elements spec.

BUG=

Review-Url: https://codereview.chromium.org/1928213002
Cr-Commit-Position: refs/heads/master@{#35889}
2016-04-29 06:44:17 +00:00
zhengxing.li
ad32faee80 X87: [turbofan] Enable concurrent (re)compilation.
port ff19726d80 (r35818)

  original commit message:
  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.

BUG=

Review-Url: https://codereview.chromium.org/1926383002
Cr-Commit-Position: refs/heads/master@{#35888}
2016-04-29 06:42:03 +00:00
v8-autoroll
fc6469d5df Update V8 DEPS.
Rolling v8/tools/clang to e18fbfd9a57db60c8667acfc60f5296337c7f4ab

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

Review-Url: https://codereview.chromium.org/1925193003
Cr-Commit-Position: refs/heads/master@{#35887}
2016-04-29 06:42:02 +00:00
machenbach
819371c628 Revert of Remove more dead code after Object.observe removal (patchset #5 id:80001 of https://codereview.chromium.org/1904313004/ )
Reason for revert:
[Sheriff] Looks like this breaks layout tests:
https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/6442

Original issue's description:
> Remove more dead code after Object.observe removal
>
> This moves __{define,lookup}{Getter,Setter}__ to builtins.cc to free up the JavaScript implementation of DefineOwnProperty for deletion.

TBR=verwaest@chromium.org,jkummerow@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/1929293002
Cr-Commit-Position: refs/heads/master@{#35886}
2016-04-29 06:31:02 +00:00
littledan
3d66e5d1d7 Add checks for detached ArrayBuffers to ArrayBuffer.prototype.slice
These checks ensure that a TypeError is thrown, per spec, rather than
a runtime assert failure.

BUG=v8:4964
R=adamk
LOG=Y

Review-Url: https://codereview.chromium.org/1929123002
Cr-Commit-Position: refs/heads/master@{#35885}
2016-04-28 22:50:56 +00:00
alph
a4fa471a33 Sampling heap profiler: remove empty nodes from profile.
Review-Url: https://codereview.chromium.org/1919223003
Cr-Commit-Position: refs/heads/master@{#35884}
2016-04-28 22:39:49 +00:00
alph
7961e2e923 Sampling heap profiler: Fix potential crash on accessing scripts.
Do not hold bare pointers to scripts during sampling heap tree construction,
as string conversions may lead to an allocation that in turn could cause GC
which renders all pointers invalid.

Review-Url: https://codereview.chromium.org/1929813002
Cr-Commit-Position: refs/heads/master@{#35883}
2016-04-28 21:47:20 +00:00
bbudge
3f5d24cc99 V8: Fix OS X build of ARM simulator.
Fixes 4 compile errors on Mac due to specifiers not matching type casts.

LOG=N
BUG=

Review-Url: https://codereview.chromium.org/1921483004
Cr-Commit-Position: refs/heads/master@{#35882}
2016-04-28 21:36:22 +00:00
mlippautz
5dc254f63b Revert "[heap] Optimize NewSpace::AllocatedSinceLastGC"
Also revert "[heap] Force inlining of AllocatedSinceLastGC"

This is a speculative revert to see if it actually impacts the benchmarks in
question.

This reverts commit 723e120bd0.
This reverts commit 08dbdd4037.

BUG=chromium:605524
LOG=N
TBR=ulan@chromium.org

Review-Url: https://codereview.chromium.org/1932883002
Cr-Commit-Position: refs/heads/master@{#35881}
2016-04-28 21:10:24 +00:00
dgozman
9cf856a8ce Allow CpuProfiler::SetIdle to be called while executing JS.
This could be the case when running nested message loop
while paused in debugger.

BUG=none
LOG=N

Review-Url: https://codereview.chromium.org/1922703005
Cr-Commit-Position: refs/heads/master@{#35880}
2016-04-28 19:58:02 +00:00
jyan
3e9924f6dd S390X: [turbofan] Fix checked loads/stores.
This refines 6382a61059 -- as we still
require clean up of the uint index register.

TEST=mjsunit/asm/float32array-negative-offset
R=joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
BUG=

Conflicts:
	src/compiler/s390/code-generator-s390.cc

Review-Url: https://codereview.chromium.org/1921073003
Cr-Commit-Position: refs/heads/master@{#35879}
2016-04-28 19:44:29 +00:00
jyan
38e7d1fb1a S390: [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, bjaideep@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com

BUG=v8:4261
LOG=N

Review-Url: https://codereview.chromium.org/1925233002
Cr-Commit-Position: refs/heads/master@{#35878}
2016-04-28 19:37:38 +00:00
jarin
a5c6676b13 Unship try-catch and try-finally optimizations in Turbofan.
Try catch interacts badly with OSR and for-in.

BUG=chromium:607493
LOG=n

Review-Url: https://codereview.chromium.org/1931973002
Cr-Commit-Position: refs/heads/master@{#35877}
2016-04-28 18:59:48 +00:00