Commit Graph

2315 Commits

Author SHA1 Message Date
mstarzinger
8377ce9552 [crankshaft] Move CompilationPhase into separate file.
The CompilationPhase helper class is only used in Crankshaft and is not
suitable for use in other compilers. This factors is out into a separate
file and moves it into the "crankshaft" directory.

R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34441}
2016-03-02 17:32:03 +00:00
machenbach
76876b9ae9 [test] Remove dependent commands.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34428}
2016-03-02 13:14:13 +00:00
joransiu
503d589340 S390: Initial impl of debug and ic
Initial implementation of S390 specific debug and IC functions.

R=danno@chromium.org,jkummerow@chromium.org,jochen@chromium.org,jyan@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34400}
2016-03-01 17:01:43 +00:00
yangguo
6f17848caa [serializer] split up src/snapshot/serialize.*
R=rossberg@chromium.org, ulan@chromium.org, vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34395}
2016-03-01 14:44:08 +00:00
jochen
b576da4059 Add include/ to include dir list for gcmole
BUG=
R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34381}
2016-03-01 09:03:03 +00:00
jochen
e8c914f18f [api] Assume that v8/include is in the include path for all public headers
Probably easier to use for embedders.

BUG=
R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34357}
2016-02-29 11:03:02 +00:00
machenbach
9c6f024d38 [release] Wait longer when tagging releases.
This is just a band-aid workaround.

TBR=hablich@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34349}
2016-02-28 12:31:56 +00:00
joransiu
23cf65926e S390: Initial impl of S390 asm, masm, code-stubs,...
Initial commit with the bulk of the src/s390/* changes
along with associated changes to the build toolchain for
the new files.

A minor update to V8PRIuPTR definition for Mac OS X
affecting 32-bit S390 sim compilations.

R=danno@chromium.org,jkummerow@chromium.org,jochen@chromium.org,jyan@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34331}
2016-02-26 16:25:04 +00:00
rmcilroy
cb29f9cdbc [Interpreter] Add support for cpu profiler logging.
Adds support for cpu profiler logging to the interpreter. Modifies the
the API to be passed AbstractCode objects instead of Code objects, and
adds extra functions to AbstractCode which is required by log.cc and
cpu-profiler.cc.

The main change in sampler.cc is to determine if a stack frame is an
interpreter stack frame, and if so, use the bytecode address as the pc
for that frame. This allows sampling of bytecode functions. This
requires adding support to SafeStackIterator to determine if a frame is
interpreted, which we do by checking the PC against pre-stored addresses
for the start and end of interpreter entry builtins.

Also removes CodeDeleteEvents which are dead code and haven't
been reported for some time.

Still to do is tracking source positions which will be done in a
followup CL.

BUG=v8:4766
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34321}
2016-02-26 11:04:55 +00:00
ulan
01b8fc894b Reland "Replace slots buffer with remembered set. (patchset #14 id:250001 of https://codereview.chromium.org/1703823002/ )"
This reverts commit 9146bc5e20.

This contains a fix for the following crash:
1. We record slots for a fixed array.
2. We trim the fixed array, so that some recorded slots are now in free space.
3. During mark-compact we sweep the page with the fixed array. Now free list items contain memory with recorded slots.
4. We evacuate a byte array using the new free list items.
5. We iterate slots that are now inside the byte array and crash.

BUG=chromium:589413,chromium:578883
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#34302}
2016-02-25 17:29:22 +00:00
ulan
9146bc5e20 Revert of Replace slots buffer with remembered set. (patchset #14 id:250001 of https://codereview.chromium.org/1703823002/ )
Reason for revert:
Revert because of canary crashes: crbug.com/589413

Original issue's description:
> Replace slots buffer with remembered set.
>
> Slots pointing to evacuation candidates are now recorded in the new RememberedSet<OLD_TO_OLD>.
>
> The remembered set is extended to support typed slots.
>
> During parallel evacuation all migration slots are recorded in local slots buffers.
> After evacuation all local slots are added to the remembered set.
>
> BUG=chromium:578883
> LOG=NO
>
> Committed: https://crrev.com/2285a99ef6f7d52f4f0c4d88a7db4224443ee152
> Cr-Commit-Position: refs/heads/master@{#34212}

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

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

Cr-Commit-Position: refs/heads/master@{#34238}
2016-02-24 09:48:21 +00:00
Michael Achenbach
5c21fa8e95 Whitespace change to trigger bots.
Cr-Commit-Position: refs/heads/master@{#34232}
2016-02-24 06:49:26 +00:00
ulan
2285a99ef6 Replace slots buffer with remembered set.
Slots pointing to evacuation candidates are now recorded in the new RememberedSet<OLD_TO_OLD>.

The remembered set is extended to support typed slots.

During parallel evacuation all migration slots are recorded in local slots buffers.
After evacuation all local slots are added to the remembered set.

BUG=chromium:578883
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#34212}
2016-02-23 13:53:02 +00:00
littledan
0b53b7d36b Remove Reflect.enumerate
The Proxy enumerate trap and Reflect.enumerate are removed from the
ES2016 draft specification. This patch removes the Reflect.enumerate
function, and a follow-on patch will be responsible for the Proxy
trap changes.

R=adamk
LOG=Y
BUG=v8:4768

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

Cr-Commit-Position: refs/heads/master@{#34196}
2016-02-22 19:10:43 +00:00
ben
344d99c4bb Fix gen-postmortem-metadata.py script.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34186}
2016-02-22 08:16:35 +00:00
bmeurer
8a7186b87a [turbofan] Remove the JSContextRelaxation reducer.
This reducer doesn't really add value, because:

 (a) it is only concerned with JSCallFunction and JSToNumber, but when
     we get to it, all JSCallFunction nodes will have been replaced by
     Call nodes, and in the not so far future, we will also have
     replaced almost all JSToNumber nodes with better code,
 (b) and the reducer tries to be smart and use one of the outermost
     contexts, but that might not be beneficial always; actually it
     might even create longer live ranges and lead to more spilling
     in some cases.

But most importantly, the JSContextRelaxation currently blocks inlining
based on SharedFunctionInfo, because it requires the inliner to check
the native context, which in turn requires JSFunction knowledge. So I'm
removing this reducer for now to unblock the more important inliner
changes.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34139}
2016-02-19 07:55:48 +00:00
machenbach
2363a6a6d9 [Swarming] Isolate jsfunfuzz.
This isolates all files necessary to run jsfunfuzz. The fuzz
harness is copied into the jsfunfuzz directory and will be
deleted in the old location after the migration to swarming.

BUG=chromium:535160
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34122}
2016-02-18 15:24:48 +00:00
machenbach
01d8f3be92 [Swarming] Allow overwriting archive location of fuzzer.
On swarming, we need to be able to pass the location of the
archive, so that it ends up in swarming's outdir.

BUG=chromium:535160
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34116}
2016-02-18 14:07:02 +00:00
machenbach
504796e916 [Swarming] Isolate deopt fuzzer.
This also ports a few changes from run-test.py to make sure
cwd = v8 root directory.

BUG=chromium:535160
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34110}
2016-02-18 10:48:21 +00:00
machenbach
7a9ebb5846 [Swarming] Bundle jsfunfuzz.
This downloads a patched version of jsfunfuzz from google
storage (google internal bucket) as a hook on demand.

Similar to the gcmole approach from
https://codereview.chromium.org/1703533002/

BUG=chromium:535160
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34106}
2016-02-18 09:47:34 +00:00
machenbach
e761942801 [Swarming] Add missing files to gcmole isolate.
BUG=chromium:535160
LOG=n
TBR=tandrii@chromium.org, kjellander@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34079}
2016-02-17 13:26:57 +00:00
machenbach
a08701cb0f [Swarming] Add missing files to gcmole isolate.
BUG=chromium:535160
LOG=n
TBR=tandrii@chromium.org, kjellander@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34075}
2016-02-17 12:51:03 +00:00
nikolaos
186728f7e3 Add a revision flag for try_perf.py
R=machenbach@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34074}
2016-02-17 12:13:18 +00:00
machenbach
95e4c70287 [Swarming] Isolate gcmole.
BUG=chromium:535160
LOG=n
TBR=tandrii@chromium.org, kjellander@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34065}
2016-02-17 10:08:09 +00:00
machenbach
4fbca26cde [Swarming] Make gcmole wrapper cwd-independent.
Some parts of the wrapped scripts seem to expect cwd to be
the v8 directory.

BUG=chromium:535160
LOG=n
TBR=tandrii@chromium.org, kjellander@chromium.org, mstarzinger@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34059}
2016-02-17 08:40:05 +00:00
machenbach
3ec1417050 [Swarming] Bundle gcmole tools.
This enables downloading all gcmole dependencies from
google storage on demand, controlled by a gyp flag
"gcmole=1". This makes the analysis portable to any linux64
host. The archive contains a prebuilt clang in the needed
version, the gcmole plugin and a lua binary.

The tool can be run through a new wrapper that sets up the
environment. This'll ease running it on swarming.

BUG=chromium:535160
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34046}
2016-02-16 19:07:57 +00:00
machenbach
4a58b46e55 Revert of [tools] add --pretty switch to run_perf.py (patchset #8 id:140001 of https://codereview.chromium.org/1681283004/ )
Reason for revert:
[Sheriff] Still fails on android.

Original issue's description:
> reland [tools] add --pretty switch to run_perf.py
>
> This CL improves running our internal benchmarks locally by adding the
> --pretty option to tools/run_perf.py. With the flag enabled we print
> the run-time of each benchmark directly and avoid the json output at
> the end.
>
> NOTRY=true
>
> Committed: https://crrev.com/b543c40d78c3aa8283a7d9fccb6c9e26a9a81f90
> Cr-Commit-Position: refs/heads/master@{#34023}

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

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

Cr-Commit-Position: refs/heads/master@{#34033}
2016-02-16 12:56:43 +00:00
ulan
4fdc19ae33 Add a generic remembered set class.
This new class provides a unified interface for recording and iterating slots in store and slots buffers:

RememberedSet<OLD_TO_NEW>::Insert(page, slot);
RememberedSet<OLD_TO_OLD>::Insert(page, slot);

RememberedSet<OLD_TO_NEW>::Iterate(heap, callback);
RememberedSet<OLD_TO_OLD>::Iterate(heap, callback);

After this change the store buffer is responsible only for collecting slots from the generated code.

Subsequent CLs will remove the slots buffer.

BUG=chromium:578883
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#34031}
2016-02-16 12:34:38 +00:00
jarin
75cdb91366 Move FieldType to separate h/cc files.
Review URL: https://codereview.chromium.org/1700923002

Cr-Commit-Position: refs/heads/master@{#34026}
2016-02-16 10:22:34 +00:00
cbruni
b543c40d78 reland [tools] add --pretty switch to run_perf.py
This CL improves running our internal benchmarks locally by adding the
--pretty option to tools/run_perf.py. With the flag enabled we print
the run-time of each benchmark directly and avoid the json output at
the end.

NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34023}
2016-02-16 09:51:54 +00:00
machenbach
2f8e33526b Revert of [tools] add --pretty switch to run_perf.py (patchset #7 id:120001 of https://codereview.chromium.org/1681283004/ )
Reason for revert:
[Sheriff] Breaks android runs. Will look later why.

Original issue's description:
> [tools] add --pretty switch to run_perf.py
>
> This CL improves running our internal benchmarks locally by adding the
> --pretty option to tools/run_perf.py. With the flag enabled we print
> the run-time of each benchmark directly and avoid the json output at
> the end.
>
> NOTRY=true
>
> Committed: https://crrev.com/83f69507ab1b9380b56758b747d4f3fabc849e49
> Cr-Commit-Position: refs/heads/master@{#33981}

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

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

Cr-Commit-Position: refs/heads/master@{#34017}
2016-02-16 08:19:32 +00:00
machenbach
b065c216e7 [Swarming] Isolate valgrind runner.
This creates an isolate with the v8-side valgrind wrapper and
the valgrind binaries from third_party. It's dynamically
checked if the directories are present.

Follow up after https://codereview.chromium.org/1585093002/
and https://codereview.chromium.org/1583933006/

BUG=chromium:535160
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#33992}
2016-02-15 12:47:54 +00:00
cbruni
83f69507ab [tools] add --pretty switch to run_perf.py
This CL improves running our internal benchmarks locally by adding the
--pretty option to tools/run_perf.py. With the flag enabled we print
the run-time of each benchmark directly and avoid the json output at
the end.

NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#33981}
2016-02-15 09:23:26 +00:00
machenbach
061eca59f8 [test runner] Handle missing files gracefully.
This returns a proper test result (failure) when files are
missing for setting up the command.

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

Cr-Commit-Position: refs/heads/master@{#33946}
2016-02-12 13:54:36 +00:00
Michael Achenbach
a89e667a79 Whitespace change to trigger bots.
Cr-Commit-Position: refs/heads/master@{#33903}
2016-02-11 15:14:22 +00:00
rmcilroy
d1c28849c7 [Interpreter] Make InterpreterAssembler a subclass of CodeStubAssembler.
Moves InterpreterAssembler out of the compiler directory and into the
interpreter directory. Makes InterpreterAssembler as subclass of
CodeStubAssembler.

As part of this change, the special bytecode dispatch linkage type
is removed and instead we use a InterfaceDispatchDescriptor and
a normal CodeStub linkage type.

Removes a bunch of duplicated logic in InterpreterAssembler and
instead uses the CodeStubAssembler logic. Refactors Interpreter
with these changes.

Modifies CodeStubAssembler to add the extra operations required
by the Interpreter (extra call types, raw memory access and some extra
binary ops). Also adds the ability for subclasses to add extra
prologue and epilogue operations around calls, which is required
for the Interpreter.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#33873}
2016-02-10 16:39:32 +00:00
yangguo
35b6ca2528 [json parser] add position to error message.
R=jochen@chromium.org, verwaest@chromium.org
BUG=chromium:585724
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#33864}
2016-02-10 11:28:53 +00:00
machenbach
de366e2985 [Ignition] Fix separate ignition snapshot for separate toolsets.
BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#33842}
2016-02-09 10:49:44 +00:00
bmeurer
07e9921f5a [turbofan] Introduce JSCreateLowering for optimizing JSCreate nodes.
This moves the JSCreate related functionality from JSTypedLowering into
a dedicated JSCreateLowering reducer. This is in preparation of landing
the support for optimized literals in TurboFan, which would blow up
JSTypedLowering quite seriously otherwise.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#33813}
2016-02-08 12:33:59 +00:00
ulan
bb883395a8 New page local store buffer.
This replaces the global remembered set with per-page remembered sets.

Each page in the old space, map space, and large object space keeps track of
the set of slots in the page pointing to the new space.

The data structure for storing slot sets is a two-level bitmap, which allows
us to remove the store buffer overflow and SCAN_ON_SCAVENGE logic.

Design doc: https://goo.gl/sMKCf7

BUG=chromium:578883
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#33806}
2016-02-08 08:51:38 +00:00
yangguo
a13e0af506 Update tools/v8heapconst.py.
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#33803}
2016-02-08 08:14:50 +00:00
Michael Achenbach
41f9ef8887 Whitespace change to kick off bots.
Cr-Commit-Position: refs/heads/master@{#33791}
2016-02-05 19:25:57 +00:00
cbruni
709be02b9f [tools] improve the ic-explorer
- drilldown lazy and recursive
- improve parsing

NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#33774}
2016-02-05 13:19:51 +00:00
sigurds
4094d6b567 [benchmarks] Add R script for statistical tests on benchmark results
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#33769}
2016-02-05 12:29:58 +00:00
machenbach
dfc09f6851 [swarming] Roll luci-go/isolate.
Ports https://codereview.chromium.org/1671753002

It brings auth support (so developers can use 'isolate' if
they really want to) and adds *.pyc to default isolate
blacklist.

TBR=maruel@chromium.org,  vadimsh@chromium.org, stip@chromium.org
BUG=584073
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#33763}
2016-02-05 09:03:35 +00:00
yangguo
876d35e228 [interpreter] add source positions for call and call-new.
This change adds the basic infrastructure to record source
positions for bytecode.

R=rmcilroy@chromium.org, vogelheim@chromium.org
BUG=v8:4960
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#33726}
2016-02-04 10:50:18 +00:00
machenbach
c5a2e049da [Ignition] Push startup data to Android devices for performance tests.
BUG=v8:4280
LOG=N
NOTRY=true
TBR=rmcilroy@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#33725}
2016-02-04 10:27:33 +00:00
machenbach
5a0df034d1 [Ignition] Use separate startup data for ignition.
BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#33724}
2016-02-04 10:18:11 +00:00
ahaas
1101739898 [wasm] Initial commit for the Int64Reducer.
The goal of the Int64Reducer is to replace all int64 nodes in a tf graph
with a set of int32 nodes such that 64 bit tf functions can be executed
on 32 bit platforms. At the moment the Int64Reducer only replaces
Int64Constants, TruncateInt64ToInt32, and Word64And.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#33721}
2016-02-04 09:41:23 +00:00
hablich
ccf47c4d30 [Release] Automatically notify mailing list on a pending merge
With the combination of the WATCHLISTS feature and
create_release.py it is possible to notify the
mailing list v8-merges@googlegroups.com on pending
merges.

On master this notification is deactivated.

R=machenbach@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#33719}
2016-02-04 09:03:13 +00:00