Commit Graph

22257 Commits

Author SHA1 Message Date
yangguo
60dc30970c Correctly name memory stat for context snapshot size.
TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27765}
2015-04-10 22:36:02 +00:00
michael_dawson
18f9771db9 PPC: Always update raw pointers when handling interrupts inside RegExp code.
Fix c67cb287a9

Cannot access kStartIndex and kDirectCall parameters as ints on 64-bit BE platforms.

R=yangguo@chromium.org, mbrandy@us.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27764}
2015-04-10 21:54:40 +00:00
michael_dawson
48947af7d1 PPC: [es6] implement spread calls
Port 74c381221c

R=mbrandy@us.ibm.com

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27763}
2015-04-10 21:16:01 +00:00
michael_dawson
d646fcc2f0 PPC: [turbofan] Materialize JSFunction from frame if possible.
Port 725cdc533c

Original commit message:
This reduces the overhead of recursive calls when context specialization
is enabled. Based on this it might be possible to further reduce the
overhead by also specializing the call itself.

As a drive-by-fix, port the fast context materialization optimization to
arm and arm64, that was previously only supported on x64 and ia32.

R=mbrandy@us.ibm.com

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27762}
2015-04-10 21:02:25 +00:00
michael_dawson
3ab8a50244 PPC: Merge cellspace into old pointer space
Port 4e7163ce05

R=mbrandy@us.ibm.com

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27761}
2015-04-10 21:02:24 +00:00
yangguo
fc0dec31c0 Use array literals instead of array constructor in native javascript.
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27760}
2015-04-10 20:51:38 +00:00
caitpotter88
e0681f0b83 [cleanup] delete dead code leftover from 48eff34
Few pieces leftover which are now effectively dead code and can be safely
deleted.

BUG=v8:3502
LOG=N
R=arv@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27759}
2015-04-10 18:36:06 +00:00
caitpotter88
a6ba7ffe36 [cleanup] fix SpreadCalls perf-test names in JSTests.json
BUG=v8:3018
R=arv@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27758}
2015-04-10 18:29:25 +00:00
balazs.kilvady
b45a664f7b MIPS: Vector-ICs - speed towards the monomorphic exit as quickly as possible.
Port 35a67b745d

Original commit message:
Thanks to some careful assumptions, we can examine the object found at
vector[slot] and trust it's a heap object where the second field is
either a map if it's a WeakCell, or definitely not a map if it's a
Symbol, String or FixedArray. Use this to save a memory read.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27757}
2015-04-10 18:28:14 +00:00
conradw
3d5717a71b [strong] Implement static restrictions on binding 'undefined' in arrow functions
Implements the strong mode proposal's static restrictions on the use of the
identifier 'undefined', for arrow functions. Assumes these restrictions are
intended to be identical to the restrictions on the use of 'eval and 'arguments'
in strict mode. In addition, Location variables inconsistantly named (e.g.
dupe_error_loc vs dupe_loc) are now consistently named the shorter way.

Baseline: https://codereview.chromium.org/1070633002

BUG=v8:3956
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27756}
2015-04-10 18:27:05 +00:00
machenbach
7898475e92 Revert of Make full GC reduce memory footprint an explicit event in the idle notification handler. (patchset #2 id:20001 of https://codereview.chromium.org/1072363002/)
Reason for revert:
[Sheriff] breaks nosnap with timeouts:
http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap/builds/2513
http://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20nosnap%20-%20shared/builds/6220

Original issue's description:
> Make full GC reduce memory footprint an explicit event in the idle notification handler.
>
> BUG=
>
> Committed: https://crrev.com/845705aa99b6bfa8d264cfda1c3b5f1229802ab5
> Cr-Commit-Position: refs/heads/master@{#27753}

TBR=ulan@chromium.org,rmcilroy@chromium.org,hpayer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27755}
2015-04-10 18:21:43 +00:00
yangguo
88630d4e54 Use cctest to track memory stats for isolate and context.
R=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27754}
2015-04-10 14:13:25 +00:00
hpayer
845705aa99 Make full GC reduce memory footprint an explicit event in the idle notification handler.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27753}
2015-04-10 14:06:46 +00:00
wingo
fe031978cb Fix some -Werror=sign-compare errors
R=svenpanne@chromium.org
LOG=N
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27752}
2015-04-10 13:59:39 +00:00
verwaest
4bd9bdbb28 Reland "Merge cellspace into old pointer space"
This fixes the arm(64) and mips(64) write barriers

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27751}
2015-04-10 13:54:10 +00:00
dcarney
e7ba4791e5 simplify GlobalValueMap calls to DisposeWeak
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27750}
2015-04-10 13:40:31 +00:00
titzer
277be506c8 Remove Type::Array bit and replace with Type::GlobalObject
R=rossberg@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27749}
2015-04-10 13:29:39 +00:00
verwaest
8c98cc074e Add basic crankshaft support for slow-mode for-in to avoid disabling optimizations
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27748}
2015-04-10 13:15:31 +00:00
titzer
dee044d601 Add more exhaustive tests for Math.min and Math.max.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27747}
2015-04-10 12:35:16 +00:00
yangguo
7667d19eec Wrap proxy.js in a function.
Review URL: https://codereview.chromium.org/1075773003

Cr-Commit-Position: refs/heads/master@{#27746}
2015-04-10 12:32:20 +00:00
jkummerow
c1f28b6c10 Handlify Map::SetPrototype()
Review URL: https://codereview.chromium.org/1005393004

Cr-Commit-Position: refs/heads/master@{#27745}
2015-04-10 12:13:22 +00:00
conradw
8ef7159582 [strong] Implement static restrictions on binding/assignment to 'undefined'
identifier. Delete unused (and now incorrect) function IsValidStrictVariable.

Implements the strong mode proposal's static restrictions on the use of the
identifier 'undefined'. Assumes these restrictions are intended to be identical
to the restrictions on the use of 'eval' and 'arguments' in strict mode. The
AllowEvalOrArgumentsAsIdentifier enum has been renamed to
AllowRestrictedIdentifiers as logic involving it is now also used for this case.

BUG=v8:3956

LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27744}
2015-04-10 12:04:55 +00:00
machenbach
fd0556efa0 [test-runner] Make perf runner robust for missing executable.
TBR=yangguo@chromium.org
NOTRY=true
NOTREECHECKS=true
NOPRESUBMIT=true

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

Cr-Commit-Position: refs/heads/master@{#27743}
2015-04-10 12:01:27 +00:00
jkummerow
052924abe3 Speculative fix for stack overflow in CollectEvacuationCandidates
I don't have a repro, but it seems that when we are close to the stack limit,
CollectEvacuationCandidates' local variables can blow the limit. To avoid
this, instead of always allocating a 2000-pointer-sizes array on the stack,
use a std::vector (which stores its elements on the heap), and while we're
at it, only allocate as many elements as we actually need.

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

Cr-Commit-Position: refs/heads/master@{#27742}
2015-04-10 11:24:24 +00:00
bmeurer
d8679a2350 [turbofan] JSUnaryNot and JSToBoolean have exactly 2 inputs, no need to trim.
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27741}
2015-04-10 11:08:50 +00:00
akos.palfi
826a954d1d MIPS64: [es6] implement spread calls
Port 74c381221c

Patch from Paul Lind <paul.lind@imgtec.com>.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27740}
2015-04-10 10:48:26 +00:00
bmeurer
35f6c0fdbf [turbofan] Optimize silent hole checks on legacy const context slots.
Currently we always generate a diamond in the graph builder for every
legacy const context slot, which we cannot get rid of until late control
reduction, even if we know after context specialization that the slot is
already initialized.

Now we generate a select instead, which the CommonOperatorReducer
happily removes during typed lowering. This greatly speeds up asm.js
code generated by Emscripten with the new POINTER_MASKING mode.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27739}
2015-04-10 10:28:12 +00:00
yangguo
c0593a1fc8 Add perf test configuration to track memory use of context and isolate.
R=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27738}
2015-04-10 09:48:57 +00:00
titzer
ff9eaef188 Split cctest/test-types.cc into heap and zone versions for more parallelism.
R=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27737}
2015-04-10 09:26:00 +00:00
jochen
f56fb72f98 Special case the "empty string" root so it doesn't constantly jump around
BUG=none
R=hpayer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27736}
2015-04-10 09:23:44 +00:00
Yang Guo
8d4bae91c9 Make mksnapshot stats unambiguous for easier parsing.
R=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27735}
2015-04-10 08:47:56 +00:00
jochen
335254608c Add CHECKs that the array buffers list is always sorted new to old
BUG=none
R=hpayer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27734}
2015-04-10 08:40:07 +00:00
mstarzinger
7196ea72c8 [crankshaft] Fix interceptor shadowing constant global property.
This makes sure Crankshaft respects interceptors in the global object
even when they shadow a constant global property.

R=verwaest@chromium.org
TEST=cctest/test-api-interceptors/PrePropertyHandler

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

Cr-Commit-Position: refs/heads/master@{#27733}
2015-04-10 08:30:44 +00:00
mvstanton
69c434e3dd MIPS port for implement spread calls
R=svenpanne@chromium.org
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27732}
2015-04-10 07:47:02 +00:00
bmeurer
4eff883bce [x86] Support immediate indices for StoreWriteBarrier.
Ideally we would not need the StoreWriteBarrier instructions at all,
but represent the RecordWrite functionality as machine subgraph, but
that'll take some time to get there. In the mean time we can have a
shorter instruction sequence on Intel platforms by recognizing immediate
indices here.

R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27731}
2015-04-10 06:16:28 +00:00
v8-autoroll
4baa0aaf5b Update V8 DEPS.
Rolling v8/tools/clang to 48782e07265a7680f544494a0fd1ad12ca826624

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27730}
2015-04-10 03:33:00 +00:00
caitpotter88
9836c34dba [es6] do not add caller/arguments to ES6 function definitions
BUG=v8:3946, v8:3982
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
LOG=N
R=arv@chromium.org, rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27729}
2015-04-09 22:40:28 +00:00
michael_dawson
806e57f401 PPC: Vector-ICs - speed towards the monomorphic exit as quickly as possible.
Port 35a67b745d

Original commit message:
Thanks to some careful assumptions, we can examine the object found at
vector[slot] and trust it's a heap object where the second field is
either a map if it's a WeakCell, or definitely not a map if it's a
Symbol, String or FixedArray. Use this to save a memory read.

R=mbrandy@us.ibm.com

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27728}
2015-04-09 22:32:12 +00:00
michael_dawson
c00de38657 PPC: [turbofan] Add new Float32Abs and Float64Abs operators.
Port 9af9f1d026

Original commit message:
These operators compute the absolute floating point value of some
arbitrary input, and are implemented without any branches (i.e. using
vabs on arm, and andps/andpd on x86).

R=mbrandy@us.ibm.com

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27727}
2015-04-09 22:29:29 +00:00
michael_dawson
5110b400bf PPC: Make --always-opt also optimize top-level code.
Port 2d281e71ac

Original commit message:
This enables eager optimization of top-level code with TurboFan and
extends test coverage by triggering it with the --always-opt flag.
Script contexts are now also properly allocated in TurboFan.

R=titzer@chromium.org, mstarzinger@chromium.org,mbrandy@us.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27726}
2015-04-09 22:14:33 +00:00
michael_dawson
9fc9d8bd3d PPC: Code cleanup in GenerateRecordCallTarget.
Port 6a222b8ff0

R=mbrandy@us.ibm.com

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27725}
2015-04-09 22:13:22 +00:00
adamk
52bbb4f609 Collect list of requested modules in ModuleDescriptor while parsing
BUG=v8:1569
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27724}
2015-04-09 22:09:47 +00:00
michael_dawson
ae475b54c9 PPC: Reland "Merge old data and pointer space."
Port 59be4ba7f4

Original commit message:
This reverts commit cbfcee5575.

R=mbrandy@us.ibm.com

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27723}
2015-04-09 21:45:48 +00:00
machenbach
ec0329e2d6 [release-tools] Make chromium roll more robust after failing rolls.
Always use the same branch name (the old version leaked
branches). Always try to delete a possibly existing branch
on start-up and also clean up in the end.

NOTRY=true
TBR=tandrii@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27722}
2015-04-09 21:37:37 +00:00
thakis
1f7a7b32d7 Fix C++ violation.
gcc rejects the following snippet, clang rejects it in -std=c++11 mode:
  namespace A { template<class T> class C {}; }
  namespace B { template class A::C<int>; }

Indeed, the C++ standard says in 14.7.2p2 "An explicit instantiation shall
appear in an enclosing namespace of its template", so cl.exe is incorrect to
allow this.

Just move the instantiation out of the v8 namespace to fix.  No intended
behavior change.  Fixes building with clang-cl on Windows.

BUG=chromium:475643
LOG=N
TBR=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27721}
2015-04-09 21:22:50 +00:00
caitpotter88
48eff34c32 [es6] don't "replace" Object.prototype.toString for --harmony-tostring
When ObjectToString is installed on Object.prototype twice (once in v8natives.js, and once in harmony-tostring.js), this pollutes old code spaces on some devices. To prevent this, the function is only installed once, preventing test failures when the --harmony-tostring flag is flipped on by default.

BUG=v8:3502
LOG=N
R=arv@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27720}
2015-04-09 20:53:46 +00:00
michael_dawson
a5d71c2cac PPC: JSEntryTrampoline: check for stack space before pushing arguments
Port 146598f44a

Original commit message:
Optimistically pushing a lot of arguments can run into the stack limit of the process, at least on operating systems where this limit is close to the limit that V8 sets for itself.

R=mbrandy@us.ibm.com

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27719}
2015-04-09 20:52:41 +00:00
michael_dawson
3865493a06 PPC: Match -0 - x with sign bit flip.
Optimiation similar to what is done for x86

R=mbrandy@us.ibm.com

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27718}
2015-04-09 20:51:36 +00:00
mstarzinger
96ef78aa0b [turbofan] Fix FrameInspector when deoptimizer is disabled.
This is a workaround to make the debugger happy about TurboFan frames
when the debugger causes frame inspection. Note that this can happen
because the debugger can be activated while there still are optimized
TurboFan activations on the stack.

R=ishell@chromium.org
BUG=chromium:465298
TEST=mjsunit/regress/regress-crbug-465298
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27717}
2015-04-09 19:40:49 +00:00
arv
635b5fea98 Lexical arguments for arrow functions
Only allocate 'arguments' if the scope is not an arrow scope.

BUG=v8:2700
LOG=N
R=adamk@chromium.org, wingo@igalia.cmo

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

Cr-Commit-Position: refs/heads/master@{#27716}
2015-04-09 19:39:38 +00:00