Commit Graph

33064 Commits

Author SHA1 Message Date
vogelheim
fab2efa84a Make LiteralBuffer + LiteralScope private.
Reduce the Scanner API, in order to make subsequent rework easier.

R=marja@chromium.org
BUG=v8:4947

Review-Url: https://codereview.chromium.org/2192883002
Cr-Commit-Position: refs/heads/master@{#38522}
2016-08-10 08:40:40 +00:00
yangguo
56b7a5fa68 Revert of [debugger] reapply break points after clearing one shots. (patchset #1 id:1 of https://codereview.chromium.org/2221333002/ )
Reason for revert:
Found better solution.

Original issue's description:
> [debugger] reapply break points after clearing one shots.
>
> On the debug info, we have a list of existing break points.  When we
> step in the debugger, we flood the function with one-shot break points.
> Afterwards, we clear these one-shots by clearing all break locations.
>
> Previously, while clearing break locations, we would skip ones that have
> actual break points. Now we clear all break locations, and then reapply
> break points. This is necessary for the next step, when we encode break
> point info by source position, and not code offset. Encoding by code
> offset would mean that break points are dependent on the code kind we
> use.
>
> R=jgruber@chromium.org
> BUG=v8:5265
>
> Committed: https://crrev.com/808981a22ee19461bbe981ab33b58792d991533e
> Cr-Commit-Position: refs/heads/master@{#38492}

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

Review-Url: https://codereview.chromium.org/2231653003
Cr-Commit-Position: refs/heads/master@{#38521}
2016-08-10 08:22:52 +00:00
danno
3899776f28 [turbolizer] Fix selection bugs and performance problems
Review-Url: https://codereview.chromium.org/2234523002
Cr-Commit-Position: refs/heads/master@{#38520}
2016-08-10 08:16:59 +00:00
neis
6e8a2d2722 [ast][parser] Remove redundant Declaration::mode_.
BUG=

Review-Url: https://codereview.chromium.org/2226223002
Cr-Commit-Position: refs/heads/master@{#38519}
2016-08-10 08:10:47 +00:00
jarin
acf0fd3ca1 [turbofan] Remove redundant 'virtual' from store elimination.
Review-Url: https://codereview.chromium.org/2234703002
Cr-Commit-Position: refs/heads/master@{#38518}
2016-08-10 07:26:03 +00:00
jarin
ca9ec36eb5 [turbofan] Do not rename context for loop exits in bytecode graph builder.
Renaming context confuses specialization passes. (And looking through
loop exit renames does not help because we insert Phis for SSA.)

BUG=chromium:635808

Review-Url: https://codereview.chromium.org/2221363002
Cr-Commit-Position: refs/heads/master@{#38517}
2016-08-10 06:51:22 +00:00
mtrofin
d29bb4bfab [wasm] serialization: updated external APIs.
We only need these external v8 APIs to expose serialization externally,
so bypassed having an internal layer for now.

BUG=v8:5072

Review-Url: https://codereview.chromium.org/2228073002
Cr-Commit-Position: refs/heads/master@{#38516}
2016-08-10 06:35:42 +00:00
yangguo
ead3188129 [serializer] reserve maps one by one to avoid fragmentation.
R=hpayer@chromium.org
BUG=chromium:612816,chromium:634900

Review-Url: https://codereview.chromium.org/2229583003
Cr-Commit-Position: refs/heads/master@{#38515}
2016-08-10 06:31:31 +00:00
bmeurer
7060bab81c [turbofan] Properly guard keyed stores wrt. setters in the prototype chain.
For holey/growing keyed stores, we need to check that there are no
setters in the prototype chain and protect against changes to that
via code dependencies.

R=verwaest@chromium.org
BUG=v8:5275,v8:5276

Review-Url: https://codereview.chromium.org/2231683002
Cr-Commit-Position: refs/heads/master@{#38514}
2016-08-10 06:30:22 +00:00
marija.antic
93809055aa MIPS: Implement Bovc and Bnvc instruction macros.
Implement Bovc and Bnvc instruction macros in macro assembler.

The change 6f920d7d59 revealed an issue with AddBranchOvf for mips R6.
All branching instructions other than BOVC and BNVC are handled by Branch macro, which assures
correct handling of long and short branches. As a consequence, AddBranchOvf for R6 was working correctly
only before trampoline was emitted, but the case of long branch was not handled at all. Implemented
instruction macros enable proper handling of BOVC and BNVC in cases when long branching is needed.

TEST=test/intl/general/case-mapping.js

BUG=

Review-Url: https://codereview.chromium.org/2225323002
Cr-Commit-Position: refs/heads/master@{#38513}
2016-08-10 06:06:53 +00:00
bmeurer
3909250a6c [turbofan] Add support for keyed access to strings.
This introduces initial support to handle keyed load access to
String primitives. This is accomplished via the existing operators
StringCharCodeAt and StringFromCharCode, which we already use to
optimize String.prototype.charCodeAt and String.fromCharCode.

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

Review-Url: https://codereview.chromium.org/2232483002
Cr-Commit-Position: refs/heads/master@{#38512}
2016-08-10 04:33:32 +00:00
v8-autoroll
400f03ab97 Update V8 DEPS.
Rolling v8/build to e1fa1d72e5795ddcaff4ded5b083b1b08e52023a

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

Rolling v8/third_party/icu to 53ce631655a61aaaa42b43b4d64abe23e9b8d71f

Rolling v8/tools/mb to d4f0973ff21ab990fed45c3803731c77197d65c8

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

Review-Url: https://codereview.chromium.org/2234653002
Cr-Commit-Position: refs/heads/master@{#38511}
2016-08-10 03:22:58 +00:00
lpy
7a3631e7e1 [Reland][Tracing] Embed V8 runtime call stats into tracing.
Currently we have V8 RuntimeCallStats that is independently from tracing when
running d8 with flag --runtime_call_stats. This patch embeds V8 runtime call
stats into tracing, by having a global table of runtime call counters each
isolate, resetting the table each time we enter a top level trace event, and
dumping the table for each top level trace event. This will make trace file more
compat, as well as enable runtime call stats in tracing system.

This patch adds ~5% overhead to V8 when the category is enabled, we measure the
overhead by running a script when category is enabled.

BUG=v8:5089

Committed: https://crrev.com/d014866173eaa2b548c566217b2c94b1d49385fa
Committed: https://crrev.com/1ca3b73bba4a7253ca8eeef39321d70e7d414331
Committed: https://crrev.com/3f936a5b17754783e92d2146eaf66c88a78ee45b
Review-Url: https://codereview.chromium.org/2187693002
Cr-Original-Original-Original-Commit-Position: refs/heads/master@{#38270}
Cr-Original-Original-Commit-Position: refs/heads/master@{#38314}
Cr-Original-Commit-Position: refs/heads/master@{#38403}
Cr-Commit-Position: refs/heads/master@{#38510}
2016-08-10 01:19:01 +00:00
bgeron
5caabdd5cc [turbofan] Improve the store-store elimination.
It can now deal with multiple objects at the same time (but no
aliasing), and it propagates store information upwards across effect
chain splits.

R=jarin
BUG=

Review-Url: https://codereview.chromium.org/2159303002
Cr-Commit-Position: refs/heads/master@{#38509}
2016-08-09 20:00:40 +00:00
verwaest
652e1e6d51 Redirect Scope::NewTemporary over parser
BUG=v8:5209

Review-Url: https://codereview.chromium.org/2220363004
Cr-Commit-Position: refs/heads/master@{#38508}
2016-08-09 19:49:49 +00:00
verwaest
0904b84e45 Indirect Get*Scope over parser/parserbase
This avoids direct scope() accesses and allows us to redirect it over ScopeState.

BUG=v8:5209

Review-Url: https://codereview.chromium.org/2226243002
Cr-Commit-Position: refs/heads/master@{#38507}
2016-08-09 19:06:10 +00:00
bmeurer
a12aa89151 [turbofan] Simplify BinaryOperationHints and CompareOperationHints.
Remove the useless information from the BinaryOperationHints and
CompareOperationHints, and cache the JS operators appropriately.

R=epertoso@chromium.org

Review-Url: https://codereview.chromium.org/2228983002
Cr-Commit-Position: refs/heads/master@{#38506}
2016-08-09 18:12:08 +00:00
adamk
2028c0931e Remove two more special cases from Scope::MustAllocate(Variable*)
Block scopes don't need any special treatment here (it's unclear
to me why they ever did). And the has_forced_context_allocation() check
seems, according to our tests, to only have been necessary for proper
handling of 'with' scopes. This patch instead uses the "is_used" bit
to keep track of variables that are accessed from within a with.

R=neis@chromium.org

Review-Url: https://codereview.chromium.org/2220293003
Cr-Commit-Position: refs/heads/master@{#38505}
2016-08-09 17:28:59 +00:00
adamk
86e141eb2d Remove unnecessary checks for forced context allocation
If a whole scope has forced context allocation, MustAllocateInContext()
already takes care of returning true for all variables, there's no need
to individually call ForceContextAllocation() on them.

R=neis@chromium.org

Review-Url: https://codereview.chromium.org/2222843005
Cr-Commit-Position: refs/heads/master@{#38504}
2016-08-09 17:03:57 +00:00
ishell
d634e65fb0 [ic] Don't share LoadGlobalIC slots inside typeof and outside typeof.
Because in case of interceptors we will install a slow stub that suits only one case.

BUG=chromium:634467
TBR=verwaest@chromium.org

Review-Url: https://codereview.chromium.org/2219303002
Cr-Commit-Position: refs/heads/master@{#38503}
2016-08-09 16:30:44 +00:00
bgeron
01766cd8cc [turbolizer] Visualize also the dead nodes.
R=danno,jarin
BUG=

Review-Url: https://codereview.chromium.org/2226293002
Cr-Commit-Position: refs/heads/master@{#38502}
2016-08-09 16:20:32 +00:00
franzih
9243d5e32b [turbofan] Rewrite ToObject as TurboFan stub.
Drive-by fix: Use  CodeStubAssembler::LoadNativeContext()

BUG=chromium:608675

Review-Url: https://codereview.chromium.org/2227763003
Cr-Commit-Position: refs/heads/master@{#38501}
2016-08-09 16:14:37 +00:00
bgeron
a57b243c0f [turbolizer] Show operator properties and arity in tooltip.
BUG=

Review-Url: https://codereview.chromium.org/2225683009
Cr-Commit-Position: refs/heads/master@{#38500}
2016-08-09 15:45:43 +00:00
klaasb
ab674bab6d Fix mistake in FastNewFunctionContextStub
We assumed we could use a do..while, but the requested amount of slots could've
been 0 and we already started at MIN_CONTEXT_SLOTS. In that case the loop
should've been skipped.

Review-Url: https://codereview.chromium.org/2227723003
Cr-Commit-Position: refs/heads/master@{#38499}
2016-08-09 15:21:11 +00:00
mtrofin
c001a9ecc1 [wasm] Serialization/Deserialization of compiled module
Implementation of serialization/deserialization for compiled wasm
module.

BUG=v8:5072

Review-Url: https://codereview.chromium.org/2205973003
Cr-Commit-Position: refs/heads/master@{#38498}
2016-08-09 15:19:38 +00:00
jkummerow
2cf2eef77b Reland "[KeyedLoadIC] Support Smi "handlers" for element loads"
This reverts commit d9d719e7a8.
Original review: https://codereview.chromium.org/2180273002/

With additional fixes to repair performance regressions:
- check PropertyCell::kValueOffset, not Cell::kValueOffset
- convert HeapNumbers to int on the fly if possible

NOPRESUBMIT=true

Review-Url: https://codereview.chromium.org/2227703003
Cr-Commit-Position: refs/heads/master@{#38497}
2016-08-09 15:16:57 +00:00
cbruni
0cabbd3d60 [api] Templatize do_callback parameter in CallDepthScope
Drive-by-fix: mark isolates as const in stack-allocated scopes

BUG=chromium:630217

Review-Url: https://codereview.chromium.org/2220993003
Cr-Commit-Position: refs/heads/master@{#38496}
2016-08-09 13:57:49 +00:00
hpayer
a7b7d69106 [heap] Enforce finalization of marking at heap limit when optimizing for memory usage.
BUG=chromium:634900

Review-Url: https://codereview.chromium.org/2225363002
Cr-Commit-Position: refs/heads/master@{#38495}
2016-08-09 13:09:14 +00:00
mstarzinger
c403ab7f57 [test] Fully deprecate NO_IGNITION directive.
R=machenbach@chromium.org

Review-Url: https://codereview.chromium.org/2228853002
Cr-Commit-Position: refs/heads/master@{#38494}
2016-08-09 13:08:09 +00:00
verwaest
2f6b26ed45 Read zone() directly from parser_ in ParserTraits
BUG=

Review-Url: https://codereview.chromium.org/2225373002
Cr-Commit-Position: refs/heads/master@{#38493}
2016-08-09 13:05:22 +00:00
yangguo
808981a22e [debugger] reapply break points after clearing one shots.
On the debug info, we have a list of existing break points.  When we
step in the debugger, we flood the function with one-shot break points.
Afterwards, we clear these one-shots by clearing all break locations.

Previously, while clearing break locations, we would skip ones that have
actual break points. Now we clear all break locations, and then reapply
break points. This is necessary for the next step, when we encode break
point info by source position, and not code offset. Encoding by code
offset would mean that break points are dependent on the code kind we
use.

R=jgruber@chromium.org
BUG=v8:5265

Review-Url: https://codereview.chromium.org/2221333002
Cr-Commit-Position: refs/heads/master@{#38492}
2016-08-09 13:04:16 +00:00
bmeurer
78727d4362 [runtime] %GrowArrayElements doesn't have a native context in TurboFan.
When we compile a growing store in TurboFan, we don't pass a (native)
context to the %GrowArrayElements fallback function, as the whole logic
is actually context independent. However, that means that we need to
bailout early in case the object is a prototype, which requires context
dependent checks in the array protector code.

R=cbruni@chromium.org
BUG=chromium:635798

Review-Url: https://codereview.chromium.org/2224253003
Cr-Commit-Position: refs/heads/master@{#38491}
2016-08-09 13:03:07 +00:00
hpayer
d45f845237 Revert of [heap] Enable black allocation when finalizing incremental marking. (patchset #1 id:1 of https://codereview.chromium.org/2224153003/ )
Reason for revert:
crashing on ToT

Original issue's description:
> [heap] Enable black allocation when finalizing incremental marking.
>
> BUG=chromium:630386
>
> Committed: https://crrev.com/bb4e028648a27a6958afc9b5040366b899cda50d
> Cr-Commit-Position: refs/heads/master@{#38487}

TBR=mlippautz@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/2223423003
Cr-Commit-Position: refs/heads/master@{#38490}
2016-08-09 12:58:44 +00:00
mstarzinger
9b6d753170 [test] Speedup serializer test for large code objects.
R=yangguo@chromium.org
TEST=cctest/test-serialize/CodeSerializerLargeCodeObject

Review-Url: https://codereview.chromium.org/2226233002
Cr-Commit-Position: refs/heads/master@{#38489}
2016-08-09 12:17:00 +00:00
jarin
c9379e5e86 [turbofan] Fix TickEvents cctest typo.
Review-Url: https://codereview.chromium.org/2225033004
Cr-Commit-Position: refs/heads/master@{#38488}
2016-08-09 12:08:45 +00:00
hpayer
bb4e028648 [heap] Enable black allocation when finalizing incremental marking.
BUG=chromium:630386

Review-Url: https://codereview.chromium.org/2224153003
Cr-Commit-Position: refs/heads/master@{#38487}
2016-08-09 12:06:36 +00:00
mstarzinger
20e34ace72 [test] Mark flaky tests after variant split.
R=machenbach@chromium.org
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.chromium.org/2227703002
Cr-Commit-Position: refs/heads/master@{#38486}
2016-08-09 12:05:06 +00:00
verwaest
a9d00623e6 Don't preallocate temps, params, decls space if we're ScopeInfo backed
Such scopes don't use those lists.

BUG=v8:5209

Review-Url: https://codereview.chromium.org/2221003002
Cr-Commit-Position: refs/heads/master@{#38485}
2016-08-09 11:44:59 +00:00
bmeurer
750202973b [turbofan] Fix typed lowering of JSConvertReceiver.
We lowered JSConvertReceiver using JSToObject, w/o connecting the
JSToObject to the control chain (which is fine since that ToObject
cannot throw). But then the lowering of the JSToObject would insert
an IfSuccess, which is immediately dead, since it is not used. This
was fine in a sense that it didn't seem to crash anything, but we
now want to do more aggressive checking if IfSuccess/IfException
nodes and so we need to fix this sloppyness in the lowerings.

R=mstarzinger@chromium.org

Review-Url: https://codereview.chromium.org/2228783003
Cr-Commit-Position: refs/heads/master@{#38484}
2016-08-09 11:27:50 +00:00
mstarzinger
b531266da1 [test] Split Ignition mjsunit expectations for variants.
R=rmcilroy@chromium.org

Review-Url: https://codereview.chromium.org/2227663002
Cr-Commit-Position: refs/heads/master@{#38483}
2016-08-09 11:06:38 +00:00
yangguo
63dc5a02df [liveedit] deal with FCG and bytecode... at the same time.
BUG=v8:5265

Review-Url: https://codereview.chromium.org/2218873002
Cr-Commit-Position: refs/heads/master@{#38482}
2016-08-09 10:56:56 +00:00
hpayer
6380c31a5c [heap] Use size-based live object iterator.
BUG=chromium:634900

Review-Url: https://codereview.chromium.org/2226023005
Cr-Commit-Position: refs/heads/master@{#38481}
2016-08-09 10:50:43 +00:00
klaasb
6c9ef89540 [interpreter] Add register output to ObjectLiteral
Avoids the always generated Star bytecodes after ObjectLiteral.

BUG=v4:4820
LOG=n

Review-Url: https://codereview.chromium.org/2216023003
Cr-Commit-Position: refs/heads/master@{#38480}
2016-08-09 10:30:29 +00:00
bgeron
b5f4de9186 [turbolizer] Output correct JSON when source contains a backslash.
Previously, we would output \x5c to escape a backslash, but this is
invalid JSON and it would crash Turbolizer. Use \u005c instead.

BUG=

Review-Url: https://codereview.chromium.org/2224913002
Cr-Commit-Position: refs/heads/master@{#38479}
2016-08-09 09:18:38 +00:00
danno
87448cdd01 [stubs] Cleanup FixedArray copying
Use common CodeStubAssembler routines for FixedArray-copying builtin.
Also cleanup a few shared pieces of code along the way.

BUG=chromium:608675

Review-Url: https://codereview.chromium.org/2220673002
Cr-Commit-Position: refs/heads/master@{#38478}
2016-08-09 08:55:49 +00:00
neis
54ff89b2e6 [ast][parsing] Variable declaration cleanups.
- Remove Declaration::initialization(), move logic into parser.
  The backends should only care about the actual initialization flag on the
  variable.
- Introduce DeclareVariable convenience function that covers most cases of
  variable declarations.

R=adamk@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2223843002
Cr-Commit-Position: refs/heads/master@{#38477}
2016-08-09 08:48:56 +00:00
zhengxing.li
8f0ff8f821 X87: [turbofan] Make Float32Neg and Float64Neg mandatory operators.
port 6c44ab30fd (r38399)

  original commit message:

BUG=

Review-Url: https://codereview.chromium.org/2221323002
Cr-Commit-Position: refs/heads/master@{#38476}
2016-08-09 08:06:55 +00:00
jgruber
613e29b18d Move family of MakeError functions to C++
These were the final remnants of error code written in JavaScript.

BUG=

Review-Url: https://codereview.chromium.org/2222893002
Cr-Commit-Position: refs/heads/master@{#38475}
2016-08-09 07:43:19 +00:00
rmcilroy
c1ae15d930 [Interpreter] Don't try to create bytecode array if HasStackOverflow().
BUG=chromium:635429

Review-Url: https://codereview.chromium.org/2228503004
Cr-Commit-Position: refs/heads/master@{#38474}
2016-08-09 07:24:13 +00:00
hablich
d9d719e7a8 Revert of [KeyedLoadIC] Support Smi "handlers" for element loads (patchset #5 id:80001 of https://codereview.chromium.org/2180273002/ )
Reason for revert:
Times out webgl errors: https://bugs.chromium.org/p/chromium/issues/detail?id=635545

Original issue's description:
> [KeyedLoadIC] Support Smi "handlers" for element loads
>
> This is an experiment as far as performance is concerned. If Smi-configured
> element loading directly from the dispatcher stub is fast enough, then we
> can stop compiling LoadFastElementStubs (and drop the corresponding code).
>
> Committed: https://crrev.com/c9308147b341596de2733039223918a6202afa5f
> Cr-Commit-Position: refs/heads/master@{#38377}

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

Review-Url: https://codereview.chromium.org/2222273003
Cr-Commit-Position: refs/heads/master@{#38473}
2016-08-09 07:20:07 +00:00