Commit Graph

33189 Commits

Author SHA1 Message Date
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 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 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
bmeurer
e7609ecb01 [turbofan] Improve typing rules for various builtins.
Sanitize the typing rules for the various supported Math builtins, and
add appropriate typing rules for various Number, String, Object and global
builtins as well.

R=franzih@chromium.org

Review-Url: https://codereview.chromium.org/2222053002
Cr-Commit-Position: refs/heads/master@{#38472}
2016-08-09 07:16:12 +00:00
hpayer
a8a7794e49 [heap] Perform more aggressive compaction when optimizing for memory usage.
BUG=chromium:634900

Review-Url: https://codereview.chromium.org/2223903002
Cr-Commit-Position: refs/heads/master@{#38471}
2016-08-09 07:04:31 +00:00
machenbach
661a9c43b0 [test] Skip flaky test.
NOTRY=true
TBR=mstarzinger@chromium.org,bmeurer@chromium.org
BUG=v8:5276

Review-Url: https://codereview.chromium.org/2221313002
Cr-Commit-Position: refs/heads/master@{#38470}
2016-08-09 06:53:08 +00:00
v8-autoroll
f4954f4afc Update V8 DEPS.
Rolling v8/build to a348ac1d0bd4d6f42bf36f88904a52da2df9d899

Rolling v8/buildtools to 33a32b8aa2b7274d246fcf85ce8f762cf4291418

Rolling v8/tools/clang to 29b1d8ac90f12e64aa1604a14486f5ef383fe29e

Rolling v8/tools/mb to 7bf9c40acdef35ded30efc4b237d2d3946842126

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

Review-Url: https://codereview.chromium.org/2223183003
Cr-Commit-Position: refs/heads/master@{#38469}
2016-08-09 06:53:07 +00:00
zhengxing.li
759a06fca3 X87: Use Variable::binding_needs_init() to determine hole initialization.
port 6768456db5 (r38395)

  original commit message:
  The old code was using VariableMode, but that signal is both
  over-pessimistic (some CONST and LET variables need no hole-initialization)
  and inconsistent with other uses of the InitializationFlag enum (such
  as %LoadLookupSlot).

  This changes no observable behavior, but removes unnecessary hole
  initialization and hole checks in a few places, including
  block-scoped function declarations, super property lookups,
  and new.target.

BUG=

Review-Url: https://codereview.chromium.org/2223803002
Cr-Commit-Position: refs/heads/master@{#38468}
2016-08-09 06:53:06 +00:00
mythria
26e2d16b8f [Interpreter] Collect type feedback for subtract operation and pass it to turbofan.
Collect type feedback for subtract operation in interpreter. Also use it in
bytecode-graph-bulder to set the correct Hint for subtract operation.

BUG=v8:5273
LOG=N

Review-Url: https://codereview.chromium.org/2221833002
Cr-Commit-Position: refs/heads/master@{#38467}
2016-08-09 06:49:17 +00:00
bjaideep
aa9b7b7683 PPC/s390: Implement VisitFloat32Neg/VisitFloat64Neg and instr lcebr for s390
Implemented instruction selector functions VisitFloat32Neg/VisitFloat64Neg
for s390 and ppc. For s390 implemented instruction lcebr to load complement
for floatregisters.

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/2226103002
Cr-Commit-Position: refs/heads/master@{#38466}
2016-08-09 06:49:16 +00:00
zhengxing.li
978edb2421 X87: [stubs] Convert GrowElementsStub to TurboFan.
port eb84126923 (r38371)

  original commit message:
  One caveat: the Crankshaft stub used to preserve callee-clobbered double
  registers, which is contrary to any real platform ABI that we support. Since the
  only current use of this stub is in Crankshaft, the instruction there now must
  be marked as double-clobbering. This might result in a small performance
  regression. However, when this stub is eventually used in TF-generated code, it
  will be called from deferred code that can save doubles only on the rarely-taken
  path... something that Crankshaft can't do.

BUG=

Review-Url: https://codereview.chromium.org/2226673002
Cr-Commit-Position: refs/heads/master@{#38465}
2016-08-09 06:49:15 +00:00
zhengxing.li
59e2d106ba X87: [x64][ia32] Add Support for the Float64Neg and Float32Neg turbofan operators.
port f68059b73a (r38383)

  original commit message:
  Benedikt, do you think we could also provide these operators on mips,
  maybe by expanding them to "-0.0 -x"? If mips can provide these operators,
  then we could make Float64Neg and Float32Neg real operators and not just
  OptionalOperators.

BUG=

Review-Url: https://codereview.chromium.org/2223793002
Cr-Commit-Position: refs/heads/master@{#38464}
2016-08-09 06:45:13 +00:00
ahaas
c5f34d46c2 [test] Remove test exception, test has been removed.
The test has already been removed in
https://codereview.chromium.org/2226053002/.

NOTRY=true
R=machenbach@chromium.org, bradnelson@chromium.org

Review-Url: https://codereview.chromium.org/2229713002
Cr-Commit-Position: refs/heads/master@{#38463}
2016-08-09 06:45:12 +00:00
bbudge
a52d643a17 [Turbofan] Remove stray aliasing code from MoveOptimizer.
LOG=N
BUG=V8:4124

Review-Url: https://codereview.chromium.org/2214843003
Cr-Commit-Position: refs/heads/master@{#38462}
2016-08-09 00:42:34 +00:00
bradnelson
1c5c526b90 [wasm] Remove single function JIT support.
While we might at some point want to explore if this is a win versus
whole modules, for now we have the Tables interface planned.

R=titzer@chromium.org,ahaas@chromium.org,mtrofin@chromium.org,rossberg@chromium.org
BUG=v8:5044

Review-Url: https://codereview.chromium.org/2226053002
Cr-Commit-Position: refs/heads/master@{#38461}
2016-08-08 21:50:13 +00:00
verwaest
b1d53a1549 Replace SloppyBlockFunctionMap::Vector with linked list through SloppyBlockFunctionStatement
BUG=v8:5209

Review-Url: https://codereview.chromium.org/2226803003
Cr-Commit-Position: refs/heads/master@{#38460}
2016-08-08 20:39:06 +00:00
adamk
42cc6c051e Remove unused Scope::inside_with() accessor
scope_inside_with_ itself is still used internally during analysis.

R=verwaest@chromium.org

Review-Url: https://codereview.chromium.org/2221783005
Cr-Commit-Position: refs/heads/master@{#38459}
2016-08-08 20:20:24 +00:00
verwaest
6c1ea55ed5 Finalize scope via block-state in BuildParameterInitializationBlock
This avoids direct access to scope() for later lazy scope allocation.

BUG=v8:5209

Review-Url: https://codereview.chromium.org/2225773003
Cr-Commit-Position: refs/heads/master@{#38458}
2016-08-08 19:24:43 +00:00
adamk
49f509448c Remove more vestigial CONST_LEGACY support and clean up var declaration code
%InitializeConstGlobal has been dead code since the demise of legacy const
declarations. While getting rid of that call, also cleaned up and clarified
the surrounding code in a variety of ways.

R=neis@chromium.org

Review-Url: https://codereview.chromium.org/2219223002
Cr-Commit-Position: refs/heads/master@{#38457}
2016-08-08 19:24:42 +00:00
verwaest
8cdb64d82c Reduce number of scope() accesses
To be able to lazily allocate BlockScopes, we need to reduce access to scope(). The explicit accesses removed here just need access to the current scope to allocate unresolved variable proxies. Those in the future should go over ScopeState rather than directly to Scope.

BUG=v8:5209

Review-Url: https://codereview.chromium.org/2224843003
Cr-Commit-Position: refs/heads/master@{#38456}
2016-08-08 18:58:14 +00:00
mtrofin
5de4722278 [wasm] external serialization APIs
V8 APIs for wasm serialization/deserialization.

BUG=v8:5072

Review-Url: https://codereview.chromium.org/2226753002
Cr-Commit-Position: refs/heads/master@{#38455}
2016-08-08 18:19:55 +00:00
adamk
9b6c57045d Clean up and simplify Parser::Declare
This removes the "resolve" parameter from Declare, since there's no case
where Scope analysis wouldn't make the same resolution decision the
parser can make here.

Other cleanup includes:
  - Replace some if statements with DCHECKS where they could never be hit
  - After the above, reordered some conditions for clarity
  - Remove or edit down old comments

Should be no change in behavior.

R=neis@chromium.org

Review-Url: https://codereview.chromium.org/2217973003
Cr-Commit-Position: refs/heads/master@{#38454}
2016-08-08 18:19:54 +00:00
bmeurer
5afd1f303d [turbofan] Remove unused Type parameter from ReferenceEqual.
This parameter was never used and doesn't seem like it would ever be
useful, so it's gone now.

R=epertoso@chromium.org

Review-Url: https://codereview.chromium.org/2221043002
Cr-Commit-Position: refs/heads/master@{#38453}
2016-08-08 16:34:28 +00:00
mstarzinger
025ddb21ef [test] Split TurboFan mjsunit expectations for variants.
R=machenbach@chromium.org

Committed: https://crrev.com/5eed70c6b474635ccdf111e2269dbf33e629ce0b
Review-Url: https://codereview.chromium.org/2225843002
Cr-Original-Commit-Position: refs/heads/master@{#38445}
Cr-Commit-Position: refs/heads/master@{#38452}
2016-08-08 16:26:55 +00:00
neis
33f3262f55 [modules] Don't force context allocation of variables declared in module scope.
There's no need to do so.

Also simplify NeedsContext(), which doesn't need to check for with-scopes.

R=adamk@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2225683004
Cr-Commit-Position: refs/heads/master@{#38451}
2016-08-08 16:19:28 +00:00
bjaideep
5fc50a91c3 PPC: set kMinimumCodeRangeSize in test-spaces/Regress3540 as multiple of PageSize
Setting kMinimumCodeRangeSize as 3*pagesize. This will set the
constant correctly for PPC where pagesize is 4MB.

R=mlippautz@chromium.org, 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/2206583004
Cr-Commit-Position: refs/heads/master@{#38450}
2016-08-08 15:56:48 +00:00
mlippautz
63f41fcdc5 Remove unused isolate parameter from NumberToSize and TryNumberToSize
BUG=

Review-Url: https://codereview.chromium.org/2225013002
Cr-Commit-Position: refs/heads/master@{#38449}
2016-08-08 15:56:47 +00:00
jarin
ad8e0e2554 [turbofan] Fix silly bug in loop variable analysis.
Review-Url: https://codereview.chromium.org/2222953003
Cr-Commit-Position: refs/heads/master@{#38448}
2016-08-08 15:50:57 +00:00