Commit Graph

2490 Commits

Author SHA1 Message Date
yangguo
aef828dc74 [ignition] update layout test expectations.
Remove live-edit entries. They have been fixed.
Alphasort.
Group known failures.

TBR=machenbach@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/1985043002
Cr-Commit-Position: refs/heads/master@{#36278}
2016-05-17 12:02:18 +00:00
yangguo
4306fc4e30 [liveedit] skip crashing Layout test.
TBR=machenbach@chromium.org
BUG=v8:4765
LOG=N
NOTRY=true

Review-Url: https://codereview.chromium.org/1986703002
Cr-Commit-Position: refs/heads/master@{#36269}
2016-05-17 06:40:45 +00:00
nikolaos
8f6556bd19 Add callstats.py run --refresh flag
This flag forces the page to (soft) refresh a given number of times for
each iteration.  The statistics of all refreshes are collected in the
same file.

R=cbruni@chromium.org, mvstanton@chromium.org
BUG=
LOG=N

Review-Url: https://codereview.chromium.org/1967123002
Cr-Commit-Position: refs/heads/master@{#36214}
2016-05-12 15:55:53 +00:00
machenbach
51169f0c5d [tools] Use sandbox in callstats script
BUG=chromium:611010
NOTRY=true

Review-Url: https://codereview.chromium.org/1976593002
Cr-Commit-Position: refs/heads/master@{#36211}
2016-05-12 14:12:13 +00:00
cbruni
c4af1ba7e4 [tools] improving callstats.html istructions and making callstats.py executable
BUG=

Review-Url: https://codereview.chromium.org/1964453002
Cr-Commit-Position: refs/heads/master@{#36173}
2016-05-11 12:33:40 +00:00
nikolaos
5fa1c61ee0 Add script injection when replaying with callstats.py
This allows benchmarking without --single-process and correctly
gathering --runtime-call-stats numbers.

Add optional parameter to %GetAndResetRuntimeCallStats

-  Without any parameter, it returns a string with the runtime call
   statistics (as before).
-  With one string parameter, it appends the statistics to the file with
   that file name.
-  With one integer parameter (which must be 1=stdout or 2=stderr), it
   prints the statistics to the output with of that file descriptor.

The injected script is automatically generated.
Also, callstats.py does not have a hardwired DEFAULT_SITES anymore.

R=cbruni@chromium.org
BUG=
LOG=N

Review-Url: https://codereview.chromium.org/1966193002
Cr-Commit-Position: refs/heads/master@{#36172}
2016-05-11 12:24:37 +00:00
rmcilroy
24709a62ce [Interpreter] Add a bytecode annotate tool.
Adds a tool which enables annotation of the disassembly of bytecode handlers
based on perf output.

BUG=4899
LOG=N

Review-Url: https://codereview.chromium.org/1945673002
Cr-Commit-Position: refs/heads/master@{#36145}
2016-05-10 15:04:32 +00:00
rmcilroy
d9fd822aa2 [Interpreter] Fix bytecode offset for stack overflows.
Rather than pushing zero for the initial bytecode offset, we should push the
offset of the first bytecode handler, Smi tagged. This fixes the line number
for the top stack frame on overflow errors.

BUG=v8:4981
LOG=N

Review-Url: https://codereview.chromium.org/1950913004
Cr-Commit-Position: refs/heads/master@{#36137}
2016-05-10 12:30:08 +00:00
cbruni
aa1b7f6b81 [tools] Add callstats.html to analize --runtime-call-stats output
callstats.html in combination with callstats.py can be used to get an in-depth
view on where we spend time in v8. Furthermore, with callstats.html we can
compare different versions of v8/chrome and see where and how performnce
evolved.

Drive-by-fix: add missing copyrights header to ic-explorer.html and format
ic-explorer.html

BUG=

Review-Url: https://codereview.chromium.org/1947413004
Cr-Commit-Position: refs/heads/master@{#36080}
2016-05-06 13:24:39 +00:00
nikolaos
1d941a4466 Add script for benchmarking with --runtime-call-stats
R=cbruni@chromium.org
BUG=
LOG=N

Review-Url: https://codereview.chromium.org/1922873004
Cr-Commit-Position: refs/heads/master@{#36070}
2016-05-06 10:18:14 +00:00
mtrofin
c6405c4a60 [tools] added wasm to the list of benchmarks
BUG=

Review-Url: https://codereview.chromium.org/1931293005
Cr-Commit-Position: refs/heads/master@{#36055}
2016-05-05 19:12:31 +00:00
machenbach
37ca108f90 [Interpreter] Add test expectations for layout tests
BUG=v8:4866
LOG=n
NOTRY=true
TBR=yangguo@chromium.org

Review-Url: https://codereview.chromium.org/1939043002
Cr-Commit-Position: refs/heads/master@{#35937}
2016-05-02 14:51:32 +00:00
mtrofin
81db29dd10 [tools] Handle benchmark runs reporting more than one result.
The Wasm suite reports both compile time and code size, however,
perf-to-html.py elides one of the results (compile time, in this case).

This affects the effectiveness of results reported by perf try bot runs.

This CL addresses that.

BUG=

Review-Url: https://codereview.chromium.org/1941573002
Cr-Commit-Position: refs/heads/master@{#35935}
2016-05-02 14:25:00 +00:00
machenbach
8ba46715b0 [Ignition] Test ignition on all bots.
This adds ignition to the testing variants that are run on all
bots.

Failing tests can only be skipped with the NO_IGNITION
keyword in status files. Existing expectations for the
ignition_turbofan variant are all duplicated and use the
NO_IGNITION keyword as well now.

BUG=v8:4280
LOG=N

Committed: https://crrev.com/132c09ed619f23fb7c6d26a4e3552c703389eabd
Cr-Commit-Position: refs/heads/master@{#35865}

Review-Url: https://codereview.chromium.org/1804003002
Cr-Commit-Position: refs/heads/master@{#35926}
2016-05-02 09:25:00 +00:00
fedor
aee17a63b3 [prof] export slide offset in profile log
When exporting `shared-library` in profile log, additionally export a
slide offset. This is required to parse profile logs generated on
systems with ASLR (OS X), otherwise it is impossible to assign C++
symbol names to their addresses in the log.

See: https://github.com/nodejs/node/issues/6466

BUG=

Review-Url: https://codereview.chromium.org/1934453003
Cr-Commit-Position: refs/heads/master@{#35921}
2016-05-02 08:03:01 +00:00
mtrofin
5b519033f0 [tools] Specify affinity and raise priority when benchmarking
I plan to drive these options from the infra recipe.

Raising the priority of the benchmarked process, and fixing
its affinity to some other CPU than 0 improves stability of
measurements.

BUG=

Review-Url: https://codereview.chromium.org/1915303002
Cr-Commit-Position: refs/heads/master@{#35912}
2016-04-29 15:53:19 +00:00
machenbach
3bf44848c3 [gn] Move build to gypfiles
This prepares for pulling chromium's build as dependency for
gn. After this, the files in build and gypfiles need to stay
in sync until chromium is updated.

BUG=chromium:474921
LOG=n

Review-Url: https://codereview.chromium.org/1848553003
Cr-Commit-Position: refs/heads/master@{#35898}
2016-04-29 10:11:11 +00:00
machenbach
7595dfd949 [release] Run blink trybot on roll CLs
TBR=hablich@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/1929303002
Cr-Commit-Position: refs/heads/master@{#35895}
2016-04-29 09:12:01 +00:00
mstarzinger
b06fa13704 [interpreter] Be explicit when to test BytecodeGraphBuilder.
This adds a dedicated flag for enabling the BytecodeGraphBuilder. The
intention is to be explicit when this variant is being tested and to
avoid unnecessary overhead in production code for a configuration that
is not yet shipping.

R=rmcilroy@chromium.org

Review-Url: https://codereview.chromium.org/1925123002
Cr-Commit-Position: refs/heads/master@{#35892}
2016-04-29 08:41:11 +00:00
machenbach
af41997177 Revert of [Ignition] Test ignition on all bots. (patchset #4 id:60001 of https://codereview.chromium.org/1804003002/ )
Reason for revert:
Will resubmit with proper fix and more test skips.

Original issue's description:
> [Ignition] Test ignition on all bots.
>
> This adds ignition to the testing variants that are run on all
> bots.
>
> Failing tests can only be skipped with the NO_IGNITION
> keyword in status files. Existing expectations for the
> ignition_turbofan variant are all duplicated and use the
> NO_IGNITION keyword as well now.
>
> BUG=v8:4280
> LOG=N
> NOTRY=true

TBR=rmcilroy@chromium.org,mstarzinger@chromium.org,yangguo@chromium.org,mythria@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4280

Review-Url: https://codereview.chromium.org/1930943002
Cr-Commit-Position: refs/heads/master@{#35871}
2016-04-28 14:53:57 +00:00
machenbach
132c09ed61 [Ignition] Test ignition on all bots.
This adds ignition to the testing variants that are run on all
bots.

Failing tests can only be skipped with the NO_IGNITION
keyword in status files. Existing expectations for the
ignition_turbofan variant are all duplicated and use the
NO_IGNITION keyword as well now.

BUG=v8:4280
LOG=N
NOTRY=true

Review-Url: https://codereview.chromium.org/1804003002
Cr-Commit-Position: refs/heads/master@{#35865}
2016-04-28 13:32:27 +00:00
jochen
9e16f72a63 Remove stale V8_IMMINENT_DEPRECATION_WARNINGS defines
R=machenbach@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/1927083002
Cr-Commit-Position: refs/heads/master@{#35858}
2016-04-28 11:43:22 +00:00
lpy
aff441937d Dump C++ symbols and merge into v8 log.
Currently we already have tools to extract C++ symbols of d8, and output the
statistics result. This patch creates two scripts, one is to use exsisting tools
to extract C++ symbols and dump to output, the other collects all symbols and
merges them into v8 log. The format of C++ symbols in v8 log is:

cpp,start_address,size,symbol_name

BUG=v8:4906
LOG=n

Review-Url: https://codereview.chromium.org/1884493003
Cr-Commit-Position: refs/heads/master@{#35841}
2016-04-28 06:57:33 +00:00
fedor
8eda85d54e Postmortem: export DATA_CONSTANT
Useful for inspecting constant fields in objects.

BUG=
R=machenbach

Review-Url: https://codereview.chromium.org/1922903003
Cr-Commit-Position: refs/heads/master@{#35826}
2016-04-27 15:51:11 +00:00
machenbach
7f3954c57b [build] Move gyp folder
Uses now the same location chromium uses and which some tools
expect.

BUG=chromium:474921
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35817}
2016-04-27 12:37:35 +00:00
machenbach
7752614f35 [build] Remove deprecated gyp file.
This has moved to src/v8.gyp in:
https://codereview.chromium.org/1920793002/

BUG=chromium:474921
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#35812}
2016-04-27 09:25:33 +00:00
machenbach
4ffdce65dd [Interpreter] Prepare switching to new ignition testing variant.
This adds a new ignition_turbofan testing variant that'll
allow switching turbofan off in the other ignition variant.

The switch will happen in a follow up after reconfiguring
the bots.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35790}
2016-04-26 11:24:34 +00:00
machenbach
cb855fe728 [build] Prepare moving v8.gyp to src/
This will allow to pull in gyp as a deps to the same location
as chromium (tools/gyp not build/gyp), needed for gn switch.

This is the first step of a 3-way move.
1) Copy v8.gyp in v8
2) Update references in embedders (follow up)
3) Remove old v8.gyp (follow up)

BUG=chromium:474921
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#35760}
2016-04-25 12:20:24 +00:00
machenbach
6d21841ec3 [test] Print how test runner is called on swarming.
BUG=chromium:605516
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35718}
2016-04-22 10:28:05 +00:00
adamk
6a370a6f01 Remove support for Object.observe
The feature was deprecated in M49 and flagged off in M50.
This patch removes it entirely from the codebase.

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

Cr-Commit-Position: refs/heads/master@{#35714}
2016-04-22 09:02:41 +00:00
titzer
727c7df035 [wasm] Extra LEB utilities to leb-helper.h
R=bradnelson@chromium.org,aseemgarg@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35695}
2016-04-21 10:15:16 +00:00
machenbach
8127557ec2 [build] Fix build dependencies for embedded snapshot
The external snapshot target is missing a few build
dependencies.

TBR=vogelheim@chromium.org, yangguo@chromium.org, clemensh@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35686}
2016-04-21 08:05:07 +00:00
ssanfilippo
7fa7bfacf8 [Interpreter] Report hottest bytecodes in bytecode_dispatches_report.py
In addition to top source-destination pairs,
bytecode_dispatches_report.py now prints the hottest bytecode handlers
by the number of times they are executed and dispatch to another one,
regardless of the dispatch target.

Be aware that this figure does not match the number of times a handler
is executed for those which may not or will never dispatch, e.g.
Return or Throw.

BUG=v8:4899
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35629}
2016-04-19 16:04:05 +00:00
machenbach
9c927d0f01 [test] Set default locale in test runner
BUG=v8:4437,v8:2899,chromium:604310
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35614}
2016-04-19 11:27:08 +00:00
ssanfilippo
5110f6c881 [Interpreter] Always show misattributed samples in linux_perf_report.py
Misattributed samples are strictly related to handlers, and the size
of this special group helps understand how accurate the profile is.
For these reasons, it makes more sense to always show this group.

LOG=N
BUG=v8:4899

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

Cr-Commit-Position: refs/heads/master@{#35585}
2016-04-18 15:07:20 +00:00
danno
973fc5b9b0 Separate CodeAssembler and CodeStubAssembler
This separation is needed to make two goals possible simultaneously:
* is should be possible to offer V8 components a simple, clean
  interface to TurboFan's low-level code generation that doesn't
  expose details about the TF.
* it should be possible to easily create new CodeAssembler "macros"
  that don't require a review from an OWNER of the compiler directory.

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

Cr-Commit-Position: refs/heads/master@{#35576}
2016-04-18 11:58:05 +00:00
ssanfilippo
8b5d4c74ec [Interpreter] Add Ignition profile visualization tool.
A new script is introduced, linux_perf_report.py, which reads Linux perf
data collected when running with FLAG_perf_basic_prof enabled and
produces an input file for flamegraph.pl, or a report of the hottest
bytecode handlers.

The bottom blocks of the produced flamegraph are bytecode handlers.
Special bottom blocks exist as well for compile routines, time spent
outside the interpreter and interpreter entry trampolines.

Because various Stubs and other pieces of JITted code do not maintain the
frame pointer, some sampled callchains might be incomplete even if V8 is
compiled with no_omit_framepointer=on. The script is able to detect the
most common anomaly where an entry trampoline appears in a chain, but not
on top, meaning that the frame of another bytecode handler is hidden. In
this case, the sample will be moved to a [misattributed] group to avoid
skewing the profile of unrelated handlers.

Misattributed samples and compilation routines are hidden by default.

BUG=v8:4899
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35574}
2016-04-18 11:47:56 +00:00
jarin
b9e287c6d9 [turbofan] Effect linearization after representation inference.
This introduces a compiler pass that schedules the graph and re-wires effect chain according to the schedule. It also connects allocating representation changes to the effect chain, and removes the BeginRegion and EndRegion nodes - they should not be needed anymore because all effectful nodes should be already wired-in.

This is an intermediate CL - the next step is to move lowering of the Change*ToTaggedEffect nodes to StateEffectIntroduction so that we do not have to introduce the effectful versions of nodes.

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

Cr-Commit-Position: refs/heads/master@{#35565}
2016-04-18 08:29:51 +00:00
mlippautz
3ace01d1b3 Reland of "[heap] Better integrate handling of aborted compaction pages"
- Get rid of fixing up pointers on the main thread
- Get rid of sweeping on the main thread

Instead:
- Record (and process afterwards) slots in parallel
- Add the pages to the concurrent sweeper as pointers have already been fixed

This reverts commit 6df04b296b.

BUG=chromium:581412
LOG=N
TEST=cctest/test-compaction/*

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

Cr-Commit-Position: refs/heads/master@{#35485}
2016-04-14 11:07:20 +00:00
robtsuk
31355336d1 Fix android_arm build hosted on Mac
Fixes for misnamed toolchain from https://github.com/appcelerator/v8_titanium.

Added a way to specify the NDK path since the Mac versions of the NDK aren't checked into the tools repo.

Disabled a few dependencies which do not build on the Mac but which aren't needed for building usable V8 static libraries.

Made the including of libdl and librt omitted for Mac hosted builds.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35456}
2016-04-13 23:13:35 +00:00
aseemgarg
1d37d4216b [wasm] optimized switch implementation in asm.js to wasm builder
This change implements switch as a balanced if/else tree or break table or
hybrid. A lot of asm.js modules are expected to extensively use switch
alongside function tables that can benefit from a better implementation.

BUG=v8:4203
TEST=mjsunit/asm-wasm
R=titzer@chromium.org,bradnelson@chromium.org,ahaas@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35455}
2016-04-13 21:56:42 +00:00
fedor
1383d001ff tools: fix tickprocessor Cpp symbols on mac
Despite man page documentation:

    -f Display the symbol table of a dynamic library flat (as one
       file not separate modules).

`nm` on mac treats `-f` as a shorthand for `-format`. The `-f` argument
does not seem to be required, so just remove it completely.

(For `-format` documentation - see `nm --help` on mac).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35445}
2016-04-13 12:19:58 +00:00
machenbach
0a9f1037b4 [release] Fix ambiguous tag names.
TBR=hablich@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#35442}
2016-04-13 11:55:25 +00:00
machenbach
5b5c360227 [release] Fix release script.
Fix after https://codereview.chromium.org/1887583002/

TBR=hablich@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#35441}
2016-04-13 11:25:30 +00:00
ssanfilippo
b4df8dab45 [Interpreter] Add visualization tool for Ignition dispatch counters.
A new script, bytecode_dispatches_report.py reads the table produced
when FLAG_trace_ignition_dispatches is enabled and produces either a
report of top source-destination pairs, or a heatmap that can be
viewed interactively and saved to file.

BUG=v8:4899
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35438}
2016-04-13 10:14:26 +00:00
machenbach
6fe3387778 [release] Let release script fix missing tags.
Check if a previous run left an inconsistent state behind.
The check is right before trying to push a new state as then
all information is available, like commit message and tag
name.

This is still only a band-aid. If gnumbd is down for a
longer period, an unprocessed commit won't be found, but
the push attempt will still fail.

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

Cr-Commit-Position: refs/heads/master@{#35437}
2016-04-13 10:01:18 +00:00
jfb
9041833647 Fix printf formats
The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL:

 - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h.
 - Uses it appropriately.
 - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done).
 - Fixes a bunch of incorrect formats.

Original CL: https://codereview.chromium.org/1869433004
Reverted in: https://codereview.chromium.org/1867383002
Reverted again in: https://codereview.chromium.org/1877823003

Reverts due to non-CQ bots:
  - First: v8_win_dbg, v8_win64_dbg, v8_mac_dbg
  - Second: gc mole (added to v8_linux_rel_ng for this patch)

R= jochen@chromium.org
TBR= ahaas@chromium.org,bmeurer@chromium.org,yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35423}
2016-04-12 16:14:03 +00:00
machenbach
df826bf50f Revert of Fix printf formats (patchset #4 id:60001 of https://codereview.chromium.org/1877453002/ )
Reason for revert:
Breaks gc mole:
https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/9421

Original issue's description:
> Fix printf formats
>
> The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL:
>
>  - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h.
>  - Uses it appropriately.
>  - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done).
>  - Fixes a bunch of incorrect formats.
>
> Original CL: https://codereview.chromium.org/1869433004
> Reverted in: https://codereview.chromium.org/1867383002
>
> R= jochen@chromium.org
> TBR= bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org
>
> Committed: https://crrev.com/bf505329288e1b75bab0e6800371a9aac40fa5cc
> Cr-Commit-Position: refs/heads/master@{#35394}

TBR=jochen@chromium.org,ahaas@chromium.org,bmeurer@chromium.org,yangguo@chromium.org,jfb@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/1877823003

Cr-Commit-Position: refs/heads/master@{#35396}
2016-04-11 17:30:18 +00:00
jfb
bf50532928 Fix printf formats
The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL:

 - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h.
 - Uses it appropriately.
 - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done).
 - Fixes a bunch of incorrect formats.

Original CL: https://codereview.chromium.org/1869433004
Reverted in: https://codereview.chromium.org/1867383002

R= jochen@chromium.org
TBR= bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35394}
2016-04-11 16:27:54 +00:00
machenbach
af1f78b80e [test] Simplify progress indicators.
This removes the "AboutToRun" callback. It makes not much
sense as it is not actually called before a test is run,
but just before the results are retrieved from the results
queue. Therefore, from an information-value p-o-v it is
redundant to the "HasRun" callback.

This also reduces log size on the bots by 50%, in order to
reduce buildbot slowness, which is tied to the amount
of logs.

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

Cr-Commit-Position: refs/heads/master@{#35382}
2016-04-11 12:00:17 +00:00
jfb
4c4fdc2d63 Revert of Fix printf formats (patchset #8 id:140001 of https://codereview.chromium.org/1869433004/ )
Reason for revert:
One small issue easily fixed here: https://codereview.chromium.org/1867333003/

But it looks like MSVS 2013 doesn't like some of the formats and exists with the unhelpful:
Stderr:
f:\dd\vctools\crt\crtw32\stdio\output.c(1125) : Assertion failed: ("Incorrect
format specifier", 0)

It's easier to revert for now, I'll dig more into the docs:
https://msdn.microsoft.com/en-us/library/56e442dc(v=vs.120).aspx
https://msdn.microsoft.com/en-us/library/tcxf1dw6(v=vs.120).aspx

And then resubmit, making sure I run these bots.

Original issue's description:
> Fix printf formats
>
> The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL:
>
>  - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h.
>  - Uses it appropriately.
>  - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done).
>  - Fixes a bunch of incorrect formats.
>
> R= jochen@chromium.org, bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org
>
> Committed: https://crrev.com/6ebf9fbb93d31f9be41156a3325d58704ed4933d
> Cr-Commit-Position: refs/heads/master@{#35365}

TBR=jochen@chromium.org,bmeurer@chromium.org,yangguo@chromium.org,ahaas@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/1867383002

Cr-Commit-Position: refs/heads/master@{#35366}
2016-04-08 18:05:12 +00:00
jfb
6ebf9fbb93 Fix printf formats
The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL:

 - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h.
 - Uses it appropriately.
 - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done).
 - Fixes a bunch of incorrect formats.

R= jochen@chromium.org, bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35365}
2016-04-08 15:31:15 +00:00
rmcilroy
1b9066fdf1 [Interpreter] Remove separate Ignition snapshot.
Removes the seperate Ignition snapshot and build the Ignition bytecode
handlers in the default snapshot.

BUG=v8:4280
LOG=N

Committed: https://crrev.com/1798f3fe84faff32ba44e09f6aed79245dd98d80
Cr-Commit-Position: refs/heads/master@{#35058}

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

Cr-Commit-Position: refs/heads/master@{#35359}
2016-04-08 13:25:31 +00:00
mlippautz
68317868a0 [tools] Fix type in GC eval script
R=hpayer@chromium.org
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35357}
2016-04-08 12:15:43 +00:00
machenbach
9025b5ac8d [test] Report more test duration data.
This will allow the infrastructure to warn about new very
slow tests which are not marked as slow. If not marked, they
might be scheduled late in the test run and prolong the
overall running time uselessly.

BUG=chromium:601468
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35356}
2016-04-08 12:11:40 +00:00
machenbach
0504710837 [test] Rework how default timeout is handled.
The slow_archs list had only an effect when no timeout was
passed. Now it will also increase the timeout on the bots.

Also simplified the code a bit.

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

Cr-Commit-Position: refs/heads/master@{#35355}
2016-04-08 12:11:39 +00:00
Michael Lippautz
77f3c5efad [tools] Compute percentiles for GC NVP
R=hpayer@chromium.org
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35354}
2016-04-08 12:05:59 +00:00
ssanfilippo
2f8de2e80a Fix Gyp rule that broke node.js build after snapshot log removal.
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35328}
2016-04-07 09:13:08 +00:00
machenbach
aa81cc689d S390: Extend test timeout.
TBR=jyan@ca.ibm.com
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#35324}
2016-04-07 08:31:18 +00:00
ssanfilippo
cf8de862ab Fix annotated disassembly in ll_prof.py
An overzealous removal in
https://crrev.com/9e39a9fff1c2966a3f650a4c31dbbe533886d614
caused the disassembly not to be annotated with ticks, even when
requested.

LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35298}
2016-04-06 12:38:44 +00:00
ahaas
a7d3e24fd6 [wasm] Refactoring of wasm-external-refs.
1) I moved the implementations of the wrapper functions into a new cc
file so that I can use these wrapper functions in tests.

2) I made a generic test for all tests in
test-run-calls-to-external-references.cc. In the new test we only
compare the result of a function call through an external reference with
the result of a direct function call. This is sufficient because we only
want to test function calls through external references work here.
The implementation of these functions are tested somewhere else.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35289}
2016-04-06 09:26:05 +00:00
bmeurer
974721c661 [generators] Decouple generator resume from fullcodegen.
Introduce a ResumeGeneratorTrampoline, which does the actual stack state
reconstruction (currently always restores a fullcodegen frame), and
introduce appropriate TurboFan builtins for %GeneratorPrototype%.next,
%GeneratorPrototype%.return and %GeneratorPrototype%.throw based on
this native builtin.

Also unify the flooding in case of step-in to always work based on
JSFunction and remove the special casing for JSGeneratorObject.

R=mstarzinger@chromium.org, neis@chromium.org
TBR=rossberg@chromium.org
BUG=chromium:513471
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35283}
2016-04-06 08:39:24 +00:00
bjaideep
6b1f75343c PPC: Remove unnecessay file from v8.gyp
Since interface-descriptors-ppc.h is removed, so remove it from v8.gyp as well.

R=machenbach@chromium.org,joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35276}
2016-04-05 18:29:54 +00:00
ssanfilippo
9e39a9fff1 Remove snapshot log parsing and option from tools.
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35268}
2016-04-05 15:31:32 +00:00
mlippautz
cc8e11b785 [tools] Filter empty categories in GC eval script
R=hpayer@chromium.org
BUG=
NOTRY=yes

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

Cr-Commit-Position: refs/heads/master@{#35229}
2016-04-04 09:23:42 +00:00
jochen
cb7aa79b12 Expose a lower bound of malloc'd memory via heap statistics
We expect that the majority of malloc'd memory held by V8 is allocated
in Zone objects. Introduce an Allocator class that is used by Zones to
manage memory, and allows for querying the current usage.

BUG=none
R=titzer@chromium.org,bmeurer@chromium.org,jarin@chromium.org
LOG=n
TBR=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35196}
2016-04-01 10:01:56 +00:00
mlippautz
c80f2bf80c [tools] Beef up GC eval scripts
* Add csv output mode for spreadsheet pasting
* Add option to leave out top-level categories
* Deal with unknown categories

R=hpayer@chromium.org
LOG=N
BUG=
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#35168}
2016-03-31 15:09:00 +00:00
mlippautz
21f1dfe916 [heap] Remove store buffer top from roots
Change x64 to use the external references like all other platforms.

BUG=chromium:581076
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35160}
2016-03-31 11:16:26 +00:00
machenbach
a0aac3cb1d [test] Fix deterministic test shards.
Test case objects were sorted without key function, resulting
in random sort order. On sharded builds, the shards are
determined by the sort order and rely on a deterministic
sorting. This led to random cctest and unittest cases being
dropped or executed twice on sharded testers.

TBR=jkummerow@chromium.org, hablich@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35151}
2016-03-31 07:38:22 +00:00
hpayer
3b1578db0c [heap] Added fine grained timers to MC_MARK_WEAK_CLOSURE.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35107}
2016-03-29 14:52:22 +00:00
machenbach
5085e6f24b [release] Fix auto-roller.
Uploading chromium CLs requires hooks to be run now,
what the auto-roller doesn't do.

TBR=hablich@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#35105}
2016-03-29 13:15:18 +00:00
hpayer
816b4737af Update eval_gc_time.sh with new external timers.
BUG=
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#35093}
2016-03-29 10:17:49 +00:00
jarin
82e95f597b Linux perf integration with the new support for JIT.
Difference from --perf-basic-prof:
- correctly attributes samples when code space gets reused (when unused code object dies and a new code objects is allocated at the same place).
- outputs compiled machine code for instruction-level profile.

Just like --perf-basic-prof, the file writer is not synchronized (even worse, there is a per-isolate file handle), so we will run into trouble with multiple isolates. However, this patch is still an improvement on --perf-basic-prof, and it should be fine to replace ll-prof.

The patch also introduces experimental support for debug info, but it does not seem to be picked by the perf tool.

Usage:

You need the perf tool from Linux kernel >4.5. Then run:

$ perf record -k mono d8 --perf-prof <your JS file>
$ perf inject -j -i perf.data -o perf.data.jitted
$ perf report -i perf.data.jitted

Some explanations:
The "-k mono" switch from "perf record" tells the perf tool to use the monotonic clock for perf sample timestamping. The "perf inject -j" command injects the collected code events into the perf data file, writing the output into perf.data.jitted. The perf report command then creates the report.

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

Cr-Commit-Position: refs/heads/master@{#35091}
2016-03-29 06:25:30 +00:00
adamk
06403470e3 Remove --harmony-regexps flag
It's been on since M49. Also moved tests from harmony -> es6,
one of which was merged with another test of the same name.

While moving stuff over to regexp.js, I also noticed that there
were unused calls to %FunctionSetName and %SetNativeFlag (those
calls are already handled by InstallGetter()).

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

Cr-Commit-Position: refs/heads/master@{#35076}
2016-03-25 23:02:11 +00:00
littledan
92a571e546 Add ES2015 RegExp full subclassing semantics behind a flag
This patch implements ES2015 RegExp subclassing semantics, namely the
hardest part where RegExp.prototype.exec and certain flag getters can
be overridden in order to provide different behavior. This change is
hidden behind a new flag, --harmony-regexp-exec. The flag guards the
behavior by installing entirely different implementations of the
methods which follow the new semantics.

Preliminary performance tests show a 3-4x regression in the Octane
RegExp benchmark. The new code doesn't call out into several fast
paths that the old code supported, so this is expected.

The patch is tested mostly by test262, where most RegExp tests are fixed,
with the exception of deliberate spec violations for web compatibility,
and for the 'sticky' flag, which is not dynamically read by this patch
in all cases but rather statically compiled into the RegExp. The latter
will require a follow-on patch to implement. A small additional set of
tests verifies one particular case, mostly to check whether the flag
mechanism works.

R=adamk,yangguo@chromium.org
LOG=Y
BUG=v8:4602

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

Cr-Commit-Position: refs/heads/master@{#35068}
2016-03-24 22:27:21 +00:00
caitpotter88
1a272ba23e [esnext] implement String padding proposal
Spec http://tc39.github.io/proposal-string-pad-start-end/

BUG=
LOG=Y
R=adamk@chromium.org, littledan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35061}
2016-03-24 17:15:09 +00:00
rmcilroy
bdf953b5cc Revert of [Interpreter] Remove separate Ignition snapshot. (patchset #2 id:20001 of https://codereview.chromium.org/1833643002/ )
Reason for revert:
Makes nosnap bots timeout due to having to rebuild bytecode handlers.

Original issue's description:
> [Interpreter] Remove separate Ignition snapshot.
>
> Removes the seperate Ignition snapshot and build the Ignition bytecode
> handlers in the default snapshot.
>
> BUG=v8:4280
> LOG=N
>
> Committed: https://crrev.com/1798f3fe84faff32ba44e09f6aed79245dd98d80
> Cr-Commit-Position: refs/heads/master@{#35058}

TBR=machenbach@google.com,yangguo@chromium.org,mstarzinger@chromium.org,machenbach@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4280

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

Cr-Commit-Position: refs/heads/master@{#35059}
2016-03-24 17:13:10 +00:00
rmcilroy
1798f3fe84 [Interpreter] Remove separate Ignition snapshot.
Removes the seperate Ignition snapshot and build the Ignition bytecode
handlers in the default snapshot.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35058}
2016-03-24 13:42:12 +00:00
machenbach
2ef81f1d17 [Ignition] Add automatic reports for ignition issues on clusterfuzz.
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#35039}
2016-03-23 16:35:47 +00:00
mstarzinger
9d3e055212 [presubmit] Disable linter check for alpha-sorted includes.
The linter (i.e. cpplint.py) no longer needs to check for alpha-sorted
include directives because our source formatting (i.e. clang-format)
will take care of this by now. This is the current default configuration
of the underlying linter anyways.

Note that the two tools disagree about the correct ordering about files
containing dash characters. The ordering suggested by the formatter is
more natural. Having the formatter trigger linter errors is not a good
situation to be in.

R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34985}
2016-03-22 12:27:12 +00:00
epertoso
d158bf14b3 [Interpreter] TurboFan implementation of intrinsics.
Introduces a bytecode whose handler executes the equivalent of %_IsArray and %_IsJSReceiver without a runtime call.

BUG=v8:4822
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#34983}
2016-03-22 11:36:05 +00:00
adamk
249bf75e0c Remove runtime flags for Proxy and Reflect
Both of them shipped in Chrome 49 without incident.

Also move relevant tests from harmony/ to es6/.

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

Cr-Commit-Position: refs/heads/master@{#34964}
2016-03-21 19:40:02 +00:00
oth
48d082af38 [interpreter] Add support for scalable operands.
This change introduces wide prefix bytecodes to support wide (16-bit)
and extra-wide (32-bit) operands. It retires the previous
wide-bytecodes and reduces the number of operand types.

Operands are now either scalable or fixed size. Scalable operands
increase in width when a bytecode is prefixed with wide or extra-wide.

The bytecode handler table is extended to 256*3 entries. The
first 256 entries are used for bytecodes with 8-bit operands,
the second 256 entries are used for bytecodes with operands that
scale to 16-bits, and the third group of 256 entries are used for
bytecodes with operands that scale to 32-bits.

LOG=N
BUG=v8:4747,v8:4280

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

Cr-Commit-Position: refs/heads/master@{#34955}
2016-03-21 17:09:49 +00:00
mlippautz
731ebc0e99 [tools] Default to stdin for processing in eval_gc_time.sh
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34949}
2016-03-21 15:08:57 +00:00
jkummerow
6703cce1b7 [crankshaft] Delete unused Hydrogen-BCH code
Bounds check hoisting was known to be buggy and has never been turned on.
Since Crankshaft is deprecated, nobody is going to spend time fixing it,
so let's just get rid of it.

BUG=v8:4155,v8:4849
LOG=n
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34948}
2016-03-21 15:07:06 +00:00
machenbach
dc84f46f44 [test] Fix catching infra problems in test-runner.
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34928}
2016-03-21 11:03:04 +00:00
machenbach
b954b18719 [Coverage] Add sancov_formatter unittest for split.
Unittest for feature added in:
https://codereview.chromium.org/1808663002/

BUG=chromium:568949
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34923}
2016-03-21 09:24:36 +00:00
mlippautz
4fd954bb1d [heap] More evacuation tracing
BUG=chromium:524425
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34861}
2016-03-17 14:18:53 +00:00
ahaas
88309de158 Moved the ExternalReferenceTable class to src/external-reference-table.cc/.h
The new location allows to add an external reference without requiring
an lgtm from a snapshot/ owner.

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34858}
2016-03-17 13:14:39 +00:00
vogelheim
6c8fc936d2 Move FastAccessorAssembler from RawMachineAssembler to CodeStubAssembler.
(The goal is to have CodeStubAssembler be the sole assembler-like user of
the TF compiler pipeline; with RMA being a private implementation detail
and FAA being a client.)

BUG=chromium:508898
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#34852}
2016-03-17 11:06:14 +00:00
yangguo
974186e338 Fix gyp build.
NOTRY=true
NOTREECHECKS=true
TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34850}
2016-03-17 10:49:09 +00:00
yangguo
f507bc1c72 [serializer] Add API to warm up startup snapshot with an additional script.
A startup snapshot is considered cold when it does not contain any
function code. We can now create a warm startup snapshot from a cold one
by running a warm-up script. Functions exercised by the warm-up script
are compiled and its code included in the warm startup snapshot. Side
effects caused by the warm-up script does not persist.

R=vogelheim@chromium.org
BUG=v8:4836
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#34849}
2016-03-17 10:34:16 +00:00
machenbach
c44b02ba0f [Coverage] Add coverage-data-split feature.
This will allow to only load json data for the files under
review instead of the whole data set.

This will be called on the infra-side after all coverage
data has been merged.

Also fix a bunch of log lines.

BUG=chromium:568949
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34834}
2016-03-16 18:12:00 +00:00
machenbach
7f363d5d47 [test] Remove feature to mark flaky tests.
The feature was removed from the bots a while ago. It was
superseeded by the flaky-test detection which reruns tests.

Remaining tests still marked as flaky most certainly pass
since a while.

Referencing all the bugs whose expectations lines get
removed by this.

BUG=v8:3838,v8:3525,v8:3125
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34804}
2016-03-16 07:35:47 +00:00
jyan
3b5e84ab0e S390: Initial test changes and files checkin.
R=danno@chromium.org,jkummerow@chromium.org,jochen@chromium.org,joransiu@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34795}
2016-03-15 18:09:36 +00:00
yangguo
9a6069d194 Small fix for the timer event plotter.
Sometimes v8.log entries are cut off, and leave an unpaired quote.
Since the log is piped into d8 to run the tick processor, that quote
is interpreted to escape a line break.

This fix makes sure that we break lines even with unpaired quotes.

R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34786}
2016-03-15 12:55:25 +00:00
Michael Achenbach
07daad6c33 Whitespace change after adding more ignition test coverage.
Cr-Commit-Position: refs/heads/master@{#34770}
2016-03-15 08:22:35 +00:00
littledan
f3568ca400 Make test262 test runner check for which exception is thrown
test262 "negative" test expectations list which exception is thrown. The ES2017
draft specification is very specific about which exception class is thrown
from which path, and V8 works hard to be correct with respect to that spec.

Previously, the test262 test runner would accept any nonzero status code,
such as from a crash, or a FAIL printed out, for a negative test. This
patch makes negative tests check for the right answer using a quick-and-dirty
parsing of the exception printing from d8 to find the exception class.
It invokes d8 in a way to get a status code of 0 from thrown exceptions
so that 'negative' tests aren't actually implemented by negating the output.

Amazingly, this didn't catch any test262 failures, but I verified the extra
checking interactively by changing a negative test to expect a different type
and saw it fail.

BUG=v8:4803
R=machenbach
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#34763}
2016-03-14 21:20:37 +00:00
mstarzinger
51a22bdabc [testing] Extend interpreter testing to webkit suite.
This also runs the webkit test suite against Ignition. By now most of
the tests pass, the failing ones have been blacklisted.

R=machenbach@chromium.org
TEST=webkit

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

Cr-Commit-Position: refs/heads/master@{#34749}
2016-03-14 16:12:50 +00:00
ofrobots
cbd91c5208 Fix post-mortem data after frame-marking changes
Post-mortem metadata generation broke as a result of
https://codereview.chromium.org/1696043002

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34725}
2016-03-11 15:12:01 +00:00