Commit Graph

33932 Commits

Author SHA1 Message Date
mstarzinger
d2189c6362 [turbofan] Solidify OSR deconstruction code a bit.
It is invalid for OSR deconstruction to leave a graph with a node
representing the OSR normal entry (and no OSR loop entry). Subsequent
lowering phases will not handle {OsrNormalEntry} operators and hence
will lead to serious clogging further down the pipeline.

R=bmeurer@chromium.org
BUG=chromium:641893

Review-Url: https://codereview.chromium.org/2336543002
Cr-Commit-Position: refs/heads/master@{#39340}
2016-09-12 10:46:25 +00:00
ahaas
685d488288 [wasm] Do not support grow_memory for asmjs modules.
With this CL the AstDecoder produces an error if it encounters a
grow_memory instruction in an asmjs module. Additionally asmjs
instructions are not allowed anymore in wasm modules.

BUG=chromium:644674
R=titzer@chromium.org

Review-Url: https://codereview.chromium.org/2324733002
Cr-Commit-Position: refs/heads/master@{#39339}
2016-09-12 10:16:46 +00:00
bmeurer
f0a0c432a5 [turbofan] Ship eval.
No longer disable TurboFan for functions with eval, but only disable
Crankshaft in those cases.

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

Review-Url: https://codereview.chromium.org/2334633002
Cr-Commit-Position: refs/heads/master@{#39338}
2016-09-12 09:41:29 +00:00
nikolaos
e850ed2a1e [parser] Refactor of Parse*Statement*, part 6
This patch moves the following parsing method to ParserBase:

- ParseSwitchStatement

It also removes ParseCaseClause and merges it with ParseSwitchStatement,
mainly to avoid the complexity of introducing one more abstract typedef
to be shared between parser implementations, but also because the merged
ParseSwitchStatement is now only 59 lines.

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

Review-Url: https://codereview.chromium.org/2324843005
Cr-Commit-Position: refs/heads/master@{#39337}
2016-09-12 09:39:52 +00:00
bmeurer
1247b0b296 [type-feedback-vector] Fix comment about TypeFeedbackVector shape.
R=mvstanton@chromium.org

Review-Url: https://codereview.chromium.org/2335533002
Cr-Commit-Position: refs/heads/master@{#39336}
2016-09-12 09:03:30 +00:00
ishell
0dbc719bb5 [stubs] Fix performance regression on x64 caused by modified double hole check.
Compare the whole word on 64-bit architectures with the kHoleNanInt64 value
since comparing only upper part produces slightly worse code on x64.
Currently TurboFan is not able to fold (array + ((const1 + index*scale) + const))
into single addressing mode: (array + (const + index*scale)).

BUG=chromium:645414

Review-Url: https://codereview.chromium.org/2322283002
Cr-Commit-Position: refs/heads/master@{#39335}
2016-09-12 08:56:50 +00:00
mstarzinger
fe0fad73b5 [turbofan] Remove dead Bounds class from type system.
R=mvstanton@chromium.org

Review-Url: https://codereview.chromium.org/2326493002
Cr-Commit-Position: refs/heads/master@{#39334}
2016-09-12 08:52:27 +00:00
neis
26a6825017 Shorten some names in ScopeInfo.
Remove the "Entry"/"Entries" suffix as it doesn't add any information and
ModuleInfoEntry would clash with another name being introduced soon.

R=adamk@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2300373002
Cr-Commit-Position: refs/heads/master@{#39333}
2016-09-12 08:50:52 +00:00
petermarshall
ae71fbc31f Revert of [builtins] Move StringNormalize to a cpp builtin. (patchset #10 id:180001 of https://codereview.chromium.org/2315343002/ )
Reason for revert:
Tests fail when i18n is switched off, trybots do not run this configuration

Original issue's description:
> [builtins] Move StringNormalize to a cpp builtin.
>
> BUG=v8:5364
>
> Committed: https://crrev.com/7f84a6a2e7000bebba49354b4648346ff606ca34
> Cr-Commit-Position: refs/heads/master@{#39331}

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

Review-Url: https://codereview.chromium.org/2335553002
Cr-Commit-Position: refs/heads/master@{#39332}
2016-09-12 08:47:44 +00:00
petermarshall
7f84a6a2e7 [builtins] Move StringNormalize to a cpp builtin.
BUG=v8:5364

Review-Url: https://codereview.chromium.org/2315343002
Cr-Commit-Position: refs/heads/master@{#39331}
2016-09-12 08:31:58 +00:00
ahaas
6fff60187a Use GetCurrentStackPosition() to calculate the stack limit.
The use of the address of a local variable causes problems with asan,
see https://build.chromium.org/p/tryserver.v8/builders/v8_linux64_asan_rel_ng_triggered/builds/7803

R=jochen@chromium.org

Review-Url: https://codereview.chromium.org/2317253006
Cr-Commit-Position: refs/heads/master@{#39330}
2016-09-12 07:59:45 +00:00
gdeepti
2a4b5933b8 [wasm] GrowMemory should use array_buffer_allocator instead of realloc.
- Using realloc is still unsafe as the allocator, using array_buffer_allocator
  - Fixing tests to avoid overlapping stores, adding more tests

BUG=v8:5344

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

Review-Url: https://codereview.chromium.org/2319983002
Cr-Commit-Position: refs/heads/master@{#39329}
2016-09-12 07:33:03 +00:00
bmeurer
a5ca412e5a [turbofan] Properly respect --max_inlining_levels with Ignition.
The logic to test whether we already reached --max_inlining_levels
when inlining into some optimized function only checked specifically
for FrameStateType::kJavaScriptFunction, and thereby didn't properly
account for FrameStateType::kInterpretedFunction, which is what we
see when we come in via the bytecode pipeline.

Review-Url: https://codereview.chromium.org/2329923002
Cr-Commit-Position: refs/heads/master@{#39328}
2016-09-12 07:28:41 +00:00
weiliang.lin
e151c66013 [x64] supplement SSE insturctions for SIMD.js
Both legacy and AVX versions

BUG=

Review-Url: https://codereview.chromium.org/2328843003
Cr-Commit-Position: refs/heads/master@{#39327}
2016-09-12 06:25:00 +00:00
nikolaos
bf85ca5315 [parser] Refactor of Parse*Statement*, part 5
This patch moves the following parsing methods to ParserBase:

- ParseDoExpression
- ParseDoWhileStatement
- ParseWhileStatement
- ParseThrowStatement

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

Review-Url: https://codereview.chromium.org/2321103002
Cr-Commit-Position: refs/heads/master@{#39326}
2016-09-10 18:05:25 +00:00
nikolaos
40ba1db51f [parser] Refactor of Parse*Statement*, part 4
This patch moves the following parsing methods to ParserBase:

- ParseExpressionOrLabelledStatement
- ParseIfStatement
- ParseContinueStatement
- ParseBreakStatement
- ParseReturnStatement
- ParseWithStatement

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

Review-Url: https://codereview.chromium.org/2323763002
Cr-Commit-Position: refs/heads/master@{#39325}
2016-09-10 17:05:38 +00:00
lpy
b4c9706e02 Add delegating initialize method for RuntimeCallTimerScope.
BUG=v8:5089

Review-Url: https://codereview.chromium.org/2329053002
Cr-Commit-Position: refs/heads/master@{#39324}
2016-09-10 04:58:03 +00:00
alph
c9516ded3c Add myself to src/profiler/OWNERS
NOTRY=true

Review-Url: https://codereview.chromium.org/2325993002
Cr-Commit-Position: refs/heads/master@{#39323}
2016-09-10 03:20:05 +00:00
kozyatinskiy
71781f31a2 [inspector] handle context destroyed after console.log
BUG=chromium:642496
R=dgozman@chromium.org

Review-Url: https://codereview.chromium.org/2323173004
Cr-Commit-Position: refs/heads/master@{#39322}
2016-09-10 01:49:01 +00:00
bjaideep
8d8cae5fe7 s390: Fixed error in calculating the power of 2 in Int64Mul
R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com

BUG
LOG=N

Review-Url: https://codereview.chromium.org/2321973006
Cr-Commit-Position: refs/heads/master@{#39321}
2016-09-09 22:36:58 +00:00
littledan
82bf7d758e Remove multiple usages of a VariableProxy from async/await code
R=adamk
BUG=v8:5167

Review-Url: https://codereview.chromium.org/2326963003
Cr-Commit-Position: refs/heads/master@{#39320}
2016-09-09 21:50:16 +00:00
kelvinjin
ec9bfc853b [Tracing] Minor bug fixes related to trace serialization
Escape sequences may now be written to a trace file (previously,
any string with a valid escapable character would fail a check).

Also, string properties are now surrounded with quotes.

BUG=v8:4561

Review-Url: https://codereview.chromium.org/2309943005
Cr-Commit-Position: refs/heads/master@{#39319}
2016-09-09 20:44:25 +00:00
eholk
0027218e1a [wasm] Trap handling: ProtectedLoad instruction
This CL introduces a ProtectedLoad instruction with is needed for out
of bounds trap handling. ProtectedLoad behaves like a regular load,
but it takes a context and source position parameter as well. These
are used by an out of line code fragment to generate code to throw a
JS exception for an out of bounds memory reference in Wasm.

These changes a cleaned up subset of
https://codereview.chromium.org/2148743004/

The rest of this feature will follow in future CLs. This includes a
table mapping memory instructions to landing pads as well as the
actual signal handler.

BUG= https://bugs.chromium.org/p/v8/issues/detail?id=5277

Review-Url: https://codereview.chromium.org/2301833004
Cr-Commit-Position: refs/heads/master@{#39318}
2016-09-09 17:41:11 +00:00
adamk
ca7eaa30a1 [cleanup] Remove dead code for handling pre-desugaring spread implementation
The array spread operator is now handled by desugaring in the parser.

Review-Url: https://codereview.chromium.org/2324013002
Cr-Commit-Position: refs/heads/master@{#39317}
2016-09-09 17:32:33 +00:00
adamk
39c9158f8e [cleanup] Remove unused PreParser factory method
R=nikolaos@chromium.org

Review-Url: https://codereview.chromium.org/2316373006
Cr-Commit-Position: refs/heads/master@{#39316}
2016-09-09 17:11:55 +00:00
Alexander.Gilday2
f439fcab69 [stubs] Port ToName stub to TurboFan.
Migrate the platform ToName stub to TurboFan.

BUG=v8:5049

Review-Url: https://codereview.chromium.org/2302923002
Cr-Commit-Position: refs/heads/master@{#39315}
2016-09-09 16:23:48 +00:00
alph
bb0b8b2da3 [inspector] Drop V8_VERSION checks.
BUG=chromium:635948

Review-Url: https://codereview.chromium.org/2323273002
Cr-Commit-Position: refs/heads/master@{#39314}
2016-09-09 15:52:35 +00:00
alph
5465c25cea Add two CpuProfileNode API functions to allow thread safe access to the node.
GetFunctionNameStr and GetScriptResourceNameStr can be called from a thread
other than isolate VM thread unlike their conterparts GetFunctionName
and GetScriptResourceName.

BUG=406277

Review-Url: https://codereview.chromium.org/2328673003
Cr-Commit-Position: refs/heads/master@{#39313}
2016-09-09 15:51:02 +00:00
v8-autoroll
fcac706add Update V8 DEPS.
Rolling v8/build to 69b6a57635907f95b6302a657d250832e3f91a1f

Rolling v8/third_party/WebKit/Source/platform/inspector_protocol to bfc71ffbbdc7ca43723d655d8d4ae972e9e431da

Rolling v8/third_party/jinja2 to b61a2c009a579593a259c1b300e0ad02bf48fd78

Rolling v8/tools/clang to 7d0756c437d8c3dd68f912f6cc47907b0120fc05

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

Review-Url: https://codereview.chromium.org/2319123006
Cr-Commit-Position: refs/heads/master@{#39312}
2016-09-09 15:05:16 +00:00
machenbach
9a3b720395 [gn] Switch off gyp in runhooks by default
This will be synced with an announcement on v8-dev. This
doesn't affect directly calling gyp in our old Makefiles.

BUG=chromium:474921
NOTRY=true

Committed: https://crrev.com/94f813e8dcd4ed5a67cede8af0f949009beaa501
Review-Url: https://codereview.chromium.org/2327033002
Cr-Original-Commit-Position: refs/heads/master@{#39308}
Cr-Commit-Position: refs/heads/master@{#39311}
2016-09-09 14:23:14 +00:00
franzih
16f34a416e [api] Add documentation for IndexedPropertyCallbacks.
BUG=v8:5260

Review-Url: https://codereview.chromium.org/2322673004
Cr-Commit-Position: refs/heads/master@{#39310}
2016-09-09 14:11:34 +00:00
machenbach
2931e42d46 Revert of [gn] Switch off gyp in runhooks by default (patchset #2 id:20001 of https://codereview.chromium.org/2327033002/ )
Reason for revert:
Broke stuff - need to fix the argument

Original issue's description:
> [gn] Switch off gyp in runhooks by default
>
> This will be synced with an announcement on v8-dev. This
> doesn't affect directly calling gyp in our old Makefiles.
>
> BUG=chromium:474921
> NOTRY=true
>
> Committed: https://crrev.com/94f813e8dcd4ed5a67cede8af0f949009beaa501
> Cr-Commit-Position: refs/heads/master@{#39308}

TBR=jochen@chromium.org,jkummerow@chromium.org,vogelheim@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:474921

Review-Url: https://codereview.chromium.org/2324173002
Cr-Commit-Position: refs/heads/master@{#39309}
2016-09-09 14:09:59 +00:00
machenbach
94f813e8dc [gn] Switch off gyp in runhooks by default
This will be synced with an announcement on v8-dev. This
doesn't affect directly calling gyp in our old Makefiles.

BUG=chromium:474921
NOTRY=true

Review-Url: https://codereview.chromium.org/2327033002
Cr-Commit-Position: refs/heads/master@{#39308}
2016-09-09 13:33:26 +00:00
ishell
9cf3333806 [stubs] Factor CSA::GrowElementsCapacity() out of existing code.
... and rename CheckAndGrowElementsCapacity() to TryGrowElementsCapacity().

Review-Url: https://codereview.chromium.org/2324863002
Cr-Commit-Position: refs/heads/master@{#39307}
2016-09-09 12:21:53 +00:00
mstarzinger
0681deb914 [interpreter] Fix destroyed new.target register use.
This fixes a corner-case where the bytecode was using the <new.target>
register directly without going through the local variable. The value
might be clobbered because the deoptimizer doesn't properly restore the
value. The label will causes bytecode pipeline to be flushed and hence
ensure {BytecodeRegisterOptimizer} doesn't reuse <new.target> anymore.

R=rmcilroy@chromium.org
TEST=mjsunit/regress/regress-crbug-645103
BUG=chromium:645103

Review-Url: https://codereview.chromium.org/2325133002
Cr-Commit-Position: refs/heads/master@{#39306}
2016-09-09 12:20:20 +00:00
ulan
6c2a217ef7 Revert of [heap] Fix a formatting bug in --trace-incremental-marking. (patchset #2 id:20001 of https://codereview.chromium.org/2324623004/ )
Reason for revert:
Revert to check if this is causing perf regressions in crbug.com/645411

Original issue's description:
> [heap] Fix a formatting bug in --trace-incremental-marking.
>
> BUG=
>
> Committed: https://crrev.com/212624b7570cd1c1cfad7cf958203b05af961637
> Cr-Commit-Position: refs/heads/master@{#39278}

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

Review-Url: https://codereview.chromium.org/2323293002
Cr-Commit-Position: refs/heads/master@{#39305}
2016-09-09 11:35:52 +00:00
marja
e34dfe04ea Include only stuff you need, part 9: variables.h
TBR=bmeurer@chromium.org
BUG=v8:5294

Review-Url: https://codereview.chromium.org/2324783002
Cr-Commit-Position: refs/heads/master@{#39304}
2016-09-09 10:55:50 +00:00
machenbach
4266d33e76 [gn] Switch noi18n bots to gn
BUG=chromium:474921
NOTRY=true
TBR=jochen@chromium.org

Review-Url: https://codereview.chromium.org/2314423005
Cr-Commit-Position: refs/heads/master@{#39303}
2016-09-09 09:16:00 +00:00
bmeurer
7d4ab7d43e [turbofan] Initial support for polymorphic inlining.
For call sites where the target is not a known constant, but potentially
a list of known constants (i.e. a Phi with all HeapConstant inputs), we
still record the call site as a potential candidate for inlining.
In case the heuristic picks that candidate for inlining, we
expand the call site to a dispatched call site and invoke the
actual inlining logic for all the nested call sites.

Like Crankshaft, we currently allow up to 4 targets for polymorphic inlining,
although we might want to refine that later.

This approach is different from what Crankshaft does in
that we don't duplicate the evaluation of the parameters per polymorphic
case. Instead we first perform the load of the target (which usually
dispatches based on the receiver map), then we evaluate all the
parameters, and then we dispatch again based on the known targets. This
might generate better or worse code compared to what Crankshaft does,
and for the cases where we generate worse code (i.e. because we have
only trivial parameters or no parameters at all), we might want to
investigate optimizing away the double dispatch in the
future.

R=mvstanton@chromium.org
BUG=v8:5267,v8:5365

Review-Url: https://codereview.chromium.org/2325943002
Cr-Commit-Position: refs/heads/master@{#39302}
2016-09-09 08:44:21 +00:00
machenbach
bcc3cb2ea4 [test] Fix the noi18n trybot
This is a work-around as v8_enable_i18n_support=false does
currently not imply icu_use_data_file_flag=false. The
swarming isolator then tries to find the data file also
in builds without ICU.

Making the implication is non-trivial as icu_use_data_file_flag lives
in ICU and v8_enable_i18n_support lives in V8.

BUG=chromium:474921
NOTRY=true
TBR=petermarshall@chromium.org, vogelheim@chromium.org, jochen@chromium.org

Review-Url: https://codereview.chromium.org/2321563007
Cr-Commit-Position: refs/heads/master@{#39301}
2016-09-09 08:23:38 +00:00
marja
751f8e99c9 Move ParseHoistableDeclaration to ParserBase.
BUG=

Review-Url: https://codereview.chromium.org/2311903003
Cr-Commit-Position: refs/heads/master@{#39300}
2016-09-09 07:58:48 +00:00
zhengxing.li
1d2574afe6 X87: [Interpreter] Collect allocation site feedback in call bytecode handler.
port 9a31162d9d3137d09063d6040865655b2e386384(r39283)

  original commit message:
  Adds support to collect allocation site feedback for Array function calls
  to the call bytecode handler.

BUG=

Review-Url: https://codereview.chromium.org/2319123004
Cr-Commit-Position: refs/heads/master@{#39299}
2016-09-09 06:36:13 +00:00
bjaideep
0565291784 PPC/s390: [Interpreter] Collect allocation site feedback in call bytecode handler.
Port 9a31162d9d

Original commit message:

    Adds support to collect allocation site feedback for Array function calls
    to the call bytecode handler.

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

BUG=v8:4280, v8:4780
LOG=N

Review-Url: https://codereview.chromium.org/2319913004
Cr-Commit-Position: refs/heads/master@{#39298}
2016-09-08 21:38:55 +00:00
bgeron
5a4cbaedb1 [turbolizer] Give the HTML file a title, for bookmarks and tab labels.
BUG=

Review-Url: https://codereview.chromium.org/2293483002
Cr-Commit-Position: refs/heads/master@{#39297}
2016-09-08 21:29:01 +00:00
jbroman
4c0ca533e7 Add a missing cast to ValueDeserializer::ReadVarint.
Without this cast, the integer type isn't promoted before being shifted, and so
for types larger than sizeof(int) there is data loss. This will become an issue
once the host begins using this helper to send 64-bit integers.

BUG=chromium:148757

Review-Url: https://codereview.chromium.org/2326653002
Cr-Commit-Position: refs/heads/master@{#39296}
2016-09-08 19:06:09 +00:00
lpy
252b84b0ed [Tracing] Fix runtime call stats tracing for GC.
This patch adds runtime call stats tracing for GC correctly, makes
--runtime-call-stats and tracing mutually exclusive with tracing taking
precedence if both modes are on, and uses only one runtime call stats in
counter.

BUG=v8:5089

Review-Url: https://codereview.chromium.org/2313193002
Cr-Commit-Position: refs/heads/master@{#39295}
2016-09-08 18:57:23 +00:00
adamk
e4273007b6 Properly handle holes following spreads in array literals
Before this change, the spread desugaring would naively call
`%AppendElement($R, the_hole)` and in some cases $R would have
a non-holey elements kind, putting the array into the bad state
of exposing holes to author code.

This patch avoids calling %AppendElement with a hole, instead
simply incrementing $R.length when it sees a hole in the literal
(this is safe because $R is known to be an Array). The existing
logic for elements transitions takes care of giving the array a
holey ElementsKind.

BUG=chromium:644215

Review-Url: https://codereview.chromium.org/2321533003
Cr-Commit-Position: refs/heads/master@{#39294}
2016-09-08 18:50:41 +00:00
cbruni
cd86053fac [printing] Fix DCHECK failure when printing FAST_HOLEY_DOUBLE_ELEMENTS
This CL fixes %DebugPrint for FAST_HOLEY_DOUBLE_ELEMENTS and now properly
distinguishes TheHole and NaN values.

BUG=

Review-Url: https://codereview.chromium.org/2294913004
Cr-Commit-Position: refs/heads/master@{#39293}
2016-09-08 18:31:42 +00:00
cbruni
6faf6c1545 Revert of [runtime] temporarily transform IsContext check from DHECK to CHECK (patchset #2 id:20001 of https://codereview.chromium.org/2164633002/ )
Reason for revert:
There have been no more occurrences of this on dev / beta so we can convert the CHECK back to DCHECK.

Original issue's description:
> [runtime] temporarily transform IsContext check from DCHECK to CHECK
>
> We are enabling this trial on canary to see if we can flush out some missing
> context restores.
>
> BUG=
>
> Committed: https://crrev.com/ec94ad400dc257af396efa3b1899bc3168347d82
> Cr-Commit-Position: refs/heads/master@{#37875}

TBR=jkummerow@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=

Review-Url: https://codereview.chromium.org/2303543003
Cr-Commit-Position: refs/heads/master@{#39292}
2016-09-08 18:28:22 +00:00
caitp
646f1f0a4a [JSON] call replacer function with correct holder in JSON.stringify
BUG=v8:5363
R=adamk@chromium.org, littledan@chromium.org, cbruni@chromium.org

Review-Url: https://codereview.chromium.org/2328523002
Cr-Commit-Position: refs/heads/master@{#39291}
2016-09-08 17:57:56 +00:00