Commit Graph

22234 Commits

Author SHA1 Message Date
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
adamk
9b09a28d5c Remove comparison operator and helper function from AstRawString interface
These comparisons are only meant to be done by AstValueFactory itself (in
its string_table_ operations), so make the Compare() function a private
member of AstValueFactory.

All other clients of AstRawStrings should compare them by pointer value.
There were only two clients which failed to abide by this rule, one
recently-added (in ModuleDescriptor) and the other in Literal::Match
(in ast.cc, added in https://code.google.com/p/v8/source/detail?r=24396).

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

Cr-Commit-Position: refs/heads/master@{#27715}
2015-04-09 19:38:34 +00:00
caitpotter88
74c381221c [es6] implement spread calls
BUG=v8:3018
R=
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27714}
2015-04-09 19:37:19 +00:00
brettw
3f036fc0ba Windows GN component build fixes.
This fixes the d8 target which previously was getting both USING_V8_SHARED
and BUILDING_V8_SHARED defined at the same time.

Renames direct_dependent_configs to public_configs (new name, same thing).

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

Cr-Commit-Position: refs/heads/master@{#27713}
2015-04-09 19:36:07 +00:00
yangguo
14d46f52aa Correctly wrap uri.js into a function.
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27712}
2015-04-09 19:34:58 +00:00
adamk
9e3e0aaa88 Revert of Merge cellspace into old pointer space (patchset #8 id:180001 of https://codereview.chromium.org/1010803012/)
Reason for revert:
Causes test failures on ARM bots related to cells and write barriers.

Original issue's description:
> Merge cellspace into old pointer space
>
> BUG=
>
> Committed: https://crrev.com/4e7163ce05f135918205c7855ae60a48e5d46cc5
> Cr-Commit-Position: refs/heads/master@{#27707}

TBR=hpayer@chromium.org,balazs.kilvady@imgtec.com,yangguo@chromium.org,verwaest@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27711}
2015-04-09 18:16:40 +00:00
Adam Klein
9164e0b62c Skip another debug test that fails in always-opt/turbofan
TBR=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27710}
2015-04-09 17:46:14 +00:00
dcarney
572196f6c2 [turbofan] support small immediates
R=titzer@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27709}
2015-04-09 14:06:24 +00:00
torne
5d56277e8f Remove android_webview_build conditions.
Remove references to android_webview_build now that we no longer support
that build configuration. This also removes use_system_stlport which was
only supported with android_webview_build.

BUG=chromium:440793
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27708}
2015-04-09 13:38:20 +00:00
verwaest
4e7163ce05 Merge cellspace into old pointer space
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27707}
2015-04-09 13:34:21 +00:00
chunyang.dai
536b7cf243 Set the default compiler for X87 to GCC.
Compiling v8 for X87 platform with clang compiler leads to some test case failure.
So we set the default compiler for X87 to GCC.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27706}
2015-04-09 13:26:34 +00:00
yangguo
4a5de9d9e3 Eagerly escape RegExp.source.
Escaping used to happen lazily, implemented in an accessor property.
However, native implementation of RegExp methods use .source as well.
This leads to performance regressions. Now we do it eagerly instead.

R=jkummerow@chromium.org
BUG=chromium:436447
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27705}
2015-04-09 13:22:22 +00:00
machenbach
107dbc96fe [cq] Add win nosnap shared trybot.
TBR=tandrii@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27704}
2015-04-09 12:43:31 +00:00
erikcorry
780f33c040 Relax heap size assert during compaction
R=ulan@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27703}
2015-04-09 12:42:28 +00:00
titzer
6e5d805718 [turbofan] Disable select matching due to bug manifesting on arm.
R=machenbach@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27702}
2015-04-09 12:41:18 +00:00
dcarney
5950acf29a [turbofan] Push layout descriptors to InstructionOperand subclasses.
Review URL: https://codereview.chromium.org/1070043002

Cr-Commit-Position: refs/heads/master@{#27701}
2015-04-09 11:28:58 +00:00
balazs.kilvady
8157b6c91a MIPS: [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.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27700}
2015-04-09 11:16:03 +00:00
mstarzinger
63eeab12eb Make TestInternalWeakLists more robust against flags.
This makes some tests in test-heap.cc more robust against flags, now
that top-level code can be optimized by the --always-opt flag.

R=hpayer@chromium.org
TEST=cctest/test-heap/TestInternalWeakLists

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

Cr-Commit-Position: refs/heads/master@{#27699}
2015-04-09 11:01:21 +00:00
dcarney
8392d9c43b [turbofan] Make AllocatedOperand an InstructionOperand::Kind.
This is preparatory work to have MachineTypes encoded in AllocatedOperands.

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

Cr-Commit-Position: refs/heads/master@{#27698}
2015-04-09 10:40:43 +00:00
Benedikt Meurer
f190a6d23d [turbofan] Add poor man's store elimination for storing to fields.
This is a very simple dead store elimination that removes StoreField
nodes which are immediately followed by other StoreField nodes that
store to the same field. Ideally there should be a fully featured store
elimination, which walks over the effect graph starting from the end,
but there are some technical difficulties to solve before we can get to
that, esp. we need to think about "effect producing" operators like
ValueEffect first. Once we have that, it is trivial to remove this temporary
poor man's store elimination.

R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27697}
2015-04-09 10:29:26 +00:00
machenbach
99be3e82bf [test-runner] Pass slowest test durations to buildbot.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27696}
2015-04-09 09:56:03 +00:00
v8-autoroll
ef6257f84f Update V8 DEPS.
Rolling v8/tools/clang to 5e71fff34c77c4ee9056fe3f2124c433768e2282

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27695}
2015-04-09 09:51:43 +00:00
chunyang.dai
8f3b3ba6ba X87: Code cleanup in GenerateRecordCallTarget.
port 6a222b8ff0 (r27630)

original commit message:

  Code cleanup in GenerateRecordCallTarget

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27694}
2015-04-09 09:31:56 +00:00
chunyang.dai
8fe72d6ff5 X87: Make --always-opt also optimize top-level code
port 2d281e71ac (r27633)

original commit message:

    Make --always-opt also optimize top-level code.

    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.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27693}
2015-04-09 09:30:52 +00:00