Commit Graph

32738 Commits

Author SHA1 Message Date
epertoso
524abd76b7 [turbofan] Adds speculative operator for bitwise and, or and xor.
BUG=

Review-Url: https://codereview.chromium.org/2201073002
Cr-Commit-Position: refs/heads/master@{#38246}
2016-08-02 13:43:58 +00:00
alph
aba8a8151e Add WeakCell support to heap profiler.
Review-Url: https://codereview.chromium.org/2204873003
Cr-Commit-Position: refs/heads/master@{#38245}
2016-08-02 13:43:57 +00:00
alph
0a920f607f Add Map::weak_cell_cache internal link to heap snapshot.
Review-Url: https://codereview.chromium.org/2204893002
Cr-Commit-Position: refs/heads/master@{#38244}
2016-08-02 13:06:19 +00:00
hpayer
682c4e448e Revert of [heap] Re-enable black allocation when finalizing marking. (patchset #1 id:1 of https://codereview.chromium.org/2202993002/ )
Reason for revert:
Crashes on tree.

Original issue's description:
> [heap] Re-enable black allocation when finalizing marking.
>
> BUG=chromium:630386
> LOG=n
>
> Committed: https://crrev.com/2c75cfd731e11daa649faf2e91cbb84767b11f8e
> Cr-Commit-Position: refs/heads/master@{#38240}

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

Review-Url: https://codereview.chromium.org/2204593005
Cr-Commit-Position: refs/heads/master@{#38243}
2016-08-02 12:29:33 +00:00
bmeurer
6bd7bd4bc6 [turbofan] Use CheckMaps in JSGlobalObjectSpecialization.
This is a simple cleanup to use the recently added CheckMaps operator
instead of the hand-crafted map check sequence.

R=epertoso@chromium.org

Review-Url: https://codereview.chromium.org/2199263002
Cr-Commit-Position: refs/heads/master@{#38242}
2016-08-02 12:14:54 +00:00
bmeurer
c9324fe6c5 [turbofan] Fix invalid representation selection for Phis/Selects.
We cannot just blindly make a representation selection for Phi or Select
based on the truncations, but we also need to consider the type of the
inputs (or actually of the Phi/Select node itself). We can only use
Word32 representation based on Word32 truncation if the inputs are
Number or Oddball, same for Float64.

R=epertoso@chromium.org
BUG=v8:5255

Review-Url: https://codereview.chromium.org/2206553002
Cr-Commit-Position: refs/heads/master@{#38241}
2016-08-02 12:11:09 +00:00
hpayer
2c75cfd731 [heap] Re-enable black allocation when finalizing marking.
BUG=chromium:630386
LOG=n

Review-Url: https://codereview.chromium.org/2202993002
Cr-Commit-Position: refs/heads/master@{#38240}
2016-08-02 11:59:42 +00:00
hpayer
db7c4f43cd [heap] MarkCompactCollector::EmptyMarkingDeque never expects filler objects.
BUG=

Review-Url: https://codereview.chromium.org/2205853002
Cr-Commit-Position: refs/heads/master@{#38239}
2016-08-02 11:55:48 +00:00
machenbach
8552e68223 [test] Fix joining FAIL expectations in status files
Without this fix, two rules [PASS, MODIFIER] and [FAIL]
would be joined as [PASS, MODIFIER, FAIL], undermining the
intention of the second rule to mark a test as failing.

BUG=v8:4680,v8:4900

Review-Url: https://codereview.chromium.org/2201033002
Cr-Commit-Position: refs/heads/master@{#38238}
2016-08-02 11:52:03 +00:00
mstarzinger
f4316f1604 [interpreter] Enable test that no longer fails.
R=machenbach@chromium.org

Review-Url: https://codereview.chromium.org/2207503002
Cr-Commit-Position: refs/heads/master@{#38237}
2016-08-02 10:26:10 +00:00
alph
d25e45df73 Deprecate CpuProfileNode::GetCallUid
The client can use scriptId + lineNumber + columnNumber
to uniquelly identify the call site.

Review-Url: https://codereview.chromium.org/2199003003
Cr-Commit-Position: refs/heads/master@{#38236}
2016-08-02 09:45:00 +00:00
bmeurer
66f2d3bd66 [turbofan] Introduce initial support for TypedArrays.
This adds support for lowering keyed access to JSTypedArray objects to
element loads and stores instead of IC calls. There's still a lot of
room for improvement, but the improvements can be done incrementally
later.

We add a dedicated UnsafePointerAdd operator, which sits in the effect
chain, and does the (GC invisible) computation of addresses that are
potentially inside HeapObjects. Also there's now a dedicated Retain
operator, which ensures that we retain a certain tagged value, which is
necessary to ensure that we keep a JSArrayBuffer alive as long as we
might still potentially access elements in its backing store.

R=epertoso@chromium.org

Review-Url: https://codereview.chromium.org/2203693002
Cr-Commit-Position: refs/heads/master@{#38235}
2016-08-02 09:41:01 +00:00
jgruber
8135caef32 Make CallSite constructor inaccessible from JS
This type is not supposed to be constructable by users. Internally, we
use CallSiteUtils::Construct to create CallSite objects; and we simply
map a thrower builtin as the public CallSite constructor.

R=yangguo@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2201823002
Cr-Commit-Position: refs/heads/master@{#38234}
2016-08-02 09:33:38 +00:00
mstarzinger
962fd4ae4b [interpreter] Elide OSR polling from fake loops.
This makes sure we are not inserting {OsrPoll} instructions for any
statements that are not actually loops and have no back edges. Without
back edges the {BytecodeGraphBuilder} is unable to deduce loop ranges
and hence cannot construct a graph for OSR entry.

R=neis@chromium.org
TEST=mjsunit/regress/regress-5252
BUG=v8:5252

Review-Url: https://codereview.chromium.org/2200733002
Cr-Commit-Position: refs/heads/master@{#38233}
2016-08-02 09:16:59 +00:00
marja
eaebdd858b Put Scopes into temporary Zone
When parsing a eagerly-parsed-but-lazily-compiled function, we
used to put some of its AST nodes into a discardable Zone. This
CL puts the function Scope, its inner Scopes and the related AST
nodes (Declarations, VariableProxys) into the temporary Zone
too. This reduces peak memory usage and enables future work to
keep the temporary Zone around for later compilation.

BUG=

Review-Url: https://codereview.chromium.org/2193793002
Cr-Commit-Position: refs/heads/master@{#38232}
2016-08-02 08:08:35 +00:00
bmeurer
a758144329 [turbofan] Fix invalid comparison operator narrowing.
When we narrow a signed32 comparison to uint8 or uint16 representation,
we also need to change the condition to unsigned comparisons otherwise
the comparison will be done on int16/int8 which interprets the narrowed
bits wrong.

R=epertoso@chromium.org
BUG=v8:5254

Review-Url: https://codereview.chromium.org/2202803003
Cr-Commit-Position: refs/heads/master@{#38231}
2016-08-02 07:46:15 +00:00
hpayer
1575072c06 [heap] Give marking functions for incremental marking more precise names.
BUG=

Review-Url: https://codereview.chromium.org/2195313003
Cr-Commit-Position: refs/heads/master@{#38230}
2016-08-02 07:46:14 +00:00
franzih
26c902ec8c [turbofan] Minor refactoring.
Use CodeStubAssembler functions instead of LoadObjectField with
the offset.

BUG=

Review-Url: https://codereview.chromium.org/2198133002
Cr-Commit-Position: refs/heads/master@{#38229}
2016-08-02 07:13:00 +00:00
franzih
4c482bc57e [turbofan] Use assembler->LoadMap().
BUG=

Review-Url: https://codereview.chromium.org/2200713002
Cr-Commit-Position: refs/heads/master@{#38228}
2016-08-02 07:08:58 +00:00
franzih
4602d98ea4 [turbofan] Stub for typeof operator.
Replace hydrogen stub for typeof with TurboFan stub.

BUG=chromium:608675

Review-Url: https://codereview.chromium.org/2195863002
Cr-Commit-Position: refs/heads/master@{#38227}
2016-08-02 07:05:10 +00:00
machenbach
c98f3a98d7 Revert of [builtins] implement Array.prototype.includes in TurboFan (patchset #20 id:380001 of https://codereview.chromium.org/2146293003/ )
Reason for revert:
[Sheriff] Breaks:
https://build.chromium.org/p/client.v8.ports/builders/V8%20Arm%20-%20builder/builds/2592

Original issue's description:
> [builtins] implement Array.prototype.includes in TurboFan
>
> BUG=v8:5162
> R=bmeurer@chromium.org, ishell@chromium.org
>
> Committed: https://crrev.com/a488b5d8eb111a4883dc400bd826d079420edd68
> Cr-Commit-Position: refs/heads/master@{#38223}

TBR=adamk@chromium.org,bmeurer@chromium.org,cbruni@chromium.org,danno@chromium.org,ishell@chromium.org,littledan@chromium.org,caitp@igalia.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:5162

Review-Url: https://codereview.chromium.org/2202163002
Cr-Commit-Position: refs/heads/master@{#38226}
2016-08-02 06:53:57 +00:00
Michael Achenbach
a9d51f9e97 Whitespace change to test infra change.
Cr-Commit-Position: refs/heads/master@{#38225}
2016-08-02 06:46:24 +00:00
v8-autoroll
994da5d715 Update V8 DEPS.
Rolling v8/build to a3a00fec14304015b590b283ba8ef6227aad4f53

Rolling v8/tools/mb to 65caad70eb36f22f3fcac6daa2f82365c0521657

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

Review-Url: https://codereview.chromium.org/2199203003
Cr-Commit-Position: refs/heads/master@{#38224}
2016-08-02 03:24:37 +00:00
caitp
a488b5d8eb [builtins] implement Array.prototype.includes in TurboFan
BUG=v8:5162
R=bmeurer@chromium.org, ishell@chromium.org

Review-Url: https://codereview.chromium.org/2146293003
Cr-Commit-Position: refs/heads/master@{#38223}
2016-08-01 22:19:57 +00:00
alph
1fe8207071 [heap profiler] Use internal type links for bound this and target function.
These are internal fields of the JSBoundFunction class.

Review-Url: https://codereview.chromium.org/2193993002
Cr-Commit-Position: refs/heads/master@{#38222}
2016-08-01 22:16:01 +00:00
ahaas
282cdf28ae [wasm] Use a LazyInstance in wasm-linkage.cc to avoid a data race.
The initialization of static variables that were used originally caused
a data race because multiple threads tried to initialize the variables
at the same time. The use of a LazyInstance guarantees that the
variables get initialized exactly once.

The same problem also existed in c-linkage.cc. There I fixed the problem
by using a local variable instead of a static variable.

BUG=v8:5242
R=titzer@chromium.org

Review-Url: https://codereview.chromium.org/2202433003
Cr-Commit-Position: refs/heads/master@{#38221}
2016-08-01 21:06:13 +00:00
hpayer
9005b5845a [heap] Drop filler objects on marking deque.
BUG=

Review-Url: https://codereview.chromium.org/2202633002
Cr-Commit-Position: refs/heads/master@{#38220}
2016-08-01 19:29:18 +00:00
klaasb
5bc2439783 Make FastNewFunctionContextStub take slots parameter
This will enable the interpreter to add a bytecode and use the stub.

BUG=v8:4280
LOG=n

Review-Url: https://codereview.chromium.org/2177273002
Cr-Commit-Position: refs/heads/master@{#38219}
2016-08-01 19:29:17 +00:00
hpayer
c1ea41645b [heap] Add more left and right trimming test cases for black areas.
BUG=

Review-Url: https://codereview.chromium.org/2185383002
Cr-Commit-Position: refs/heads/master@{#38218}
2016-08-01 17:10:31 +00:00
mattloring
292cebc58b Add libplatform deps file
Add deps file allowing libplatform.h to include v8-tracing.h.

Additionally removes redundant include/ that was causing build errors
for node-lkgr.

BUG=

Review-Url: https://codereview.chromium.org/2195403002
Cr-Commit-Position: refs/heads/master@{#38217}
2016-08-01 16:20:54 +00:00
jgruber
df4196db97 CHECK invalid arguments to CallSite constructor
This is a temporary measure to ensure clusterfuzz crashes at two
dedicated sites until the CallSite constructor is made inaccessible from
JS.

R=yangguo@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2196263002
Cr-Commit-Position: refs/heads/master@{#38216}
2016-08-01 15:27:28 +00:00
jgruber
e3d1061454 Remove GetStackTraceLine
BUG=

Review-Url: https://codereview.chromium.org/2194883002
Cr-Commit-Position: refs/heads/master@{#38215}
2016-08-01 15:10:13 +00:00
machenbach
6c1d6c9f81 [test] Add testing variant aliases.
This introduces aliases for testing variants that can be
combined with other variant names. E.g. --variants=dev,foo
would run the three developer default variants and variant
foo.

We'll have three stages: "dev" for variants to be run by
default on developer workstations, "more" for additional
variants, executed on all bots, "extra" for additional
variants executed on a subset of bots (e.g. not on very slow
or otherwise resource-limited bots).

BUG=v8:5238
NOTRY=true

Review-Url: https://codereview.chromium.org/2196223002
Cr-Commit-Position: refs/heads/master@{#38214}
2016-08-01 14:42:24 +00:00
cbruni
9aa4496278 [api] Cleaning up: Replace NeanderArray with FixedArray implementation
BUG=chromium:630217

Review-Url: https://codereview.chromium.org/2196533003
Cr-Commit-Position: refs/heads/master@{#38213}
2016-08-01 14:28:34 +00:00
jgruber
6c53efc7c4 Move FormatStackTrace to C++
BUG=

Review-Url: https://codereview.chromium.org/2191293002
Cr-Commit-Position: refs/heads/master@{#38212}
2016-08-01 14:28:33 +00:00
ulan
ea45a210a6 Fix performance regression of heap snapshot generator that was
introduced in https://crrev.com/72f884a19fa4434bba6fc0e013ec4ea0a2366893

The regression comes from adding the next weak field of AllocationSite
as a hidden reference into the snapshot.

Before 72f884 the reference was implicitly ignored because the body
descriptor of AllocationSite did not include it.

This patch explicitly skip the next weak field of AllocationSite.

BUG=chromium:630027

Review-Url: https://codereview.chromium.org/2189643004
Cr-Commit-Position: refs/heads/master@{#38211}
2016-08-01 13:34:26 +00:00
verwaest
d454e6cc59 Shuffle fields around in Scope to save more zone memory
This makes the debug-only scope-name actually debug-only-allocated, replaces num_vars_ usages by variables_.occupancy, and shuffles fields around in the scope class for better packing.

This reduces sizeof(i::Scope) from 360 to 328 bytes on x64.

BUG=v8:5209

Review-Url: https://codereview.chromium.org/2201763004
Cr-Commit-Position: refs/heads/master@{#38210}
2016-08-01 13:27:24 +00:00
mstarzinger
9ee6ca75d3 [turbofan] Switch inlining tests to global scope.
This switches our inlining tests (i.e. cctest/test-run-inlining) to rely
on global object instead of function context specialization, which is
more in sync with what we are actually shipping. It will also allow us
to test inlining with the BytecodeGraphBuilder without having to add
support for function context specialization just for testing purposes.

R=bmeurer@chromium.org
TEST=cctest/test-run-inlining
BUG=v8:5251

Review-Url: https://codereview.chromium.org/2200673002
Cr-Commit-Position: refs/heads/master@{#38209}
2016-08-01 12:59:58 +00:00
jgruber
061d082dd3 Properly set function index in CallSite constructor
BUG=632965
R=yangguo@chromium.org

Review-Url: https://codereview.chromium.org/2199673002
Cr-Commit-Position: refs/heads/master@{#38208}
2016-08-01 12:59:57 +00:00
machenbach
45d0c051e2 [gn] Switch msan bots to gn
BUG=chromium:631979
NOTRY=true

Review-Url: https://codereview.chromium.org/2194823002
Cr-Commit-Position: refs/heads/master@{#38207}
2016-08-01 12:35:44 +00:00
machenbach
a23a74a7be [test] Remove deprecated --ignition test-runner flag
The flag was introduced for ignition development. It can only
be used when running ignition tests in isolation on the bots.

The bots only use ignition_turbo in isolation since a while
and don't pass the --ignition flag anymore.

BUG=v8:5238

Review-Url: https://codereview.chromium.org/2197123002
Cr-Commit-Position: refs/heads/master@{#38206}
2016-08-01 12:11:43 +00:00
mstarzinger
df61ffeab3 [turbofan] Remove dead JSTypedLowering::EmptyFrameState.
R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2197163002
Cr-Commit-Position: refs/heads/master@{#38205}
2016-08-01 12:01:12 +00:00
jochen
95cae2eb35 Move ContextSlotCache to its own file
Also remove unnecessary includes of scopeinfo.h all over the place

R=marja@chromium.org
TBR=verwaest@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2197973002
Cr-Commit-Position: refs/heads/master@{#38204}
2016-08-01 11:33:46 +00:00
jochen
f22ef1207d Add parser finalization step
BUG=v8:5215
R=vogelheim@chromium.org,marja@chromium.org

Review-Url: https://codereview.chromium.org/2193813002
Cr-Commit-Position: refs/heads/master@{#38203}
2016-08-01 11:30:18 +00:00
machenbach
1acc2f536c [test] Use all test suites with the ignition alias
First step of deprecating the dedicated ignition alias.
Next it will be changed on the bots to use the bot_default
suite. Then we'll delete it.

BUG=v8:5238

Review-Url: https://codereview.chromium.org/2194153002
Cr-Commit-Position: refs/heads/master@{#38202}
2016-08-01 11:19:55 +00:00
mstarzinger
de79665c72 [heap] No leakage of store-buffer.h outside of heap.
This prevents the internal store-buffer.h header to be usable outisde of
the "heap" directory. The logic inside that component is only useful
within the GC and is now properly encapsulated.

R=hpayer@chromium.org

Review-Url: https://codereview.chromium.org/2194793005
Cr-Commit-Position: refs/heads/master@{#38201}
2016-08-01 11:12:43 +00:00
bmeurer
a085b8a2c7 [turbofan] Inline bunch of ArrayBuffer view accessors.
This adds initial support to inline a couple of the ArrayBuffer view
accessors like %TypeArray%.prototype.length and.
DataView.prototype.byteLength.

R=epertoso@chromium.org

Review-Url: https://codereview.chromium.org/2199753002
Cr-Commit-Position: refs/heads/master@{#38200}
2016-08-01 11:05:41 +00:00
cbruni
f4f06c5029 [keys] Trigger [[getOwnPropertyDescriptor]] trap on proxies for Object.keys
This CL fixes a long-standing bug with Object.keys where the enumerability
check was omitted if the [ownKeys] trap is not present. The only distinction the
KeyAccumulator needs is whether it collects keys for for-in (is_for_in_) or not.
ForInFilter performs a separate step to filter out non-enumerable keys later-on
while in all the other use-cases we have to filter keys.

BUG=v8:1543, v8:5250

Review-Url: https://codereview.chromium.org/2176113009
Cr-Commit-Position: refs/heads/master@{#38199}
2016-08-01 10:10:52 +00:00
yangguo
5d49286c69 [inspector] add test configuration for the parser test.
BUG=chromium:580337

R=machenbach@chromium.org

Review-Url: https://codereview.chromium.org/2189023002
Cr-Commit-Position: refs/heads/master@{#38198}
2016-08-01 09:50:14 +00:00
machenbach
5ef69e93a2 [build] Port using prebuilt instrumented libraries for msan
BUG=chromium:631979
NOTRY=true

Review-Url: https://codereview.chromium.org/2189343002
Cr-Commit-Position: refs/heads/master@{#38197}
2016-08-01 09:43:12 +00:00