Commit Graph

3809 Commits

Author SHA1 Message Date
Clemens Hammacher
0e6129b7ee [iwyu] Fix includes in elements-inl.h
R=titzer@chromium.org

Bug: v8:7754, v8:7965
Change-Id: I5cb76b4e989fbe6d4d08bafb60dbbb26c3d58e2d
Reviewed-on: https://chromium-review.googlesource.com/1156515
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54820}
2018-07-31 14:09:29 +00:00
Ben L. Titzer
27cd5d0384 [iwyu] Make string-builder.h an inline file
As discussed offline, this header is not really useful without its
inline definitions. So instead of trying to split it (unnaturally),
declare defeat and make it an inline header file.

Also remove two unnecessary uses of it, move the JSON stringifier
class into its .cc file (because it needs IncrementalStringBuilder
inline) and forward declare in prettyprinter.h.

R=petermarshall@chromium.org, mstarzinger@chromium.org
BUG=v8:7965

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I7ba032ca718a195e156ec3e59f8e858a25423450
Reviewed-on: https://chromium-review.googlesource.com/1156401
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54818}
2018-07-31 12:52:22 +00:00
Michael Lippautz
714c0fd166 [heap-stats] Fix trace file reader for raw log files
Tbr: cbruni@chromium.org
No-try: true
Change-Id: Ica8c64e0956d4ca362646814e675104f94e77fac
Reviewed-on: https://chromium-review.googlesource.com/1155585
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54791}
2018-07-30 19:56:39 +00:00
Michael Lippautz
33e9321907 [heap,iwyu] More cleanup
The following are ready for iwyu:
- src/heap/mark-compact.h
- src/heap/objects-visiting.h

Bug: v8:7490
Change-Id: I4cb9b1146586adcef8c0e0cf187ca363fe6e9a8d
Reviewed-on: https://chromium-review.googlesource.com/1154970
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54788}
2018-07-30 14:53:01 +00:00
Peter Marshall
20ce87beef [cleanup] Fix more header includes to allow individual compilation
Fixes:
  src/parsing/parse-info.h
  src/parsing/preparsed-scope-data.h
  src/profiler/heap-profiler.h
  src/profiler/heap-snapshot-generator.h
  src/profiler/heap-snapshot-generator-inl.h'
  src/property.h
  src/prototype.h
  src/prototype-inl.h

Bug: v8:7754,v8:7490,v8:7965
Change-Id: Iba14292cdfbbaf29d5b989c16d579a1ee0edcc25
Reviewed-on: https://chromium-review.googlesource.com/1154967
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54787}
2018-07-30 14:36:41 +00:00
Michael Lippautz
268117f84c [heap,iwyu] Clean up scavenger and related headers
Bug: v8:7490
Change-Id: Id6e50a201732b4ca1fd1f69f8c43298e216ce95b
Reviewed-on: https://chromium-review.googlesource.com/1154788
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54785}
2018-07-30 13:07:52 +00:00
Michael Lippautz
80e85caa31 [iwyu] Cleanup more heap/ files
Bug: v8:7490
Change-Id: I6bed10a6389d83b1941ba894f06b2d9540e84139
Reviewed-on: https://chromium-review.googlesource.com/1152733
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54781}
2018-07-30 12:02:01 +00:00
Peter Marshall
a61c16b012 [cleanup] Fix more header includes to allow individual compilation
Fixes:
  src/map-updater.h
  src/objects/property-descriptor-object.h
  src/objects/prototype-info-inl.h
  src/objects/regexp-match-info.h
  src/objects/shared-function-info-inl.h

Bug: v8:7754,v8:7490,v8:7965

Change-Id: I7ae9dc86491c8e147d628f5fd8362534e861b15e
Reviewed-on: https://chromium-review.googlesource.com/1154221
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54780}
2018-07-30 09:34:27 +00:00
Sergiy Byelozyorov
e6bebb3a28 [tools] Whitespace CL
TBR=sergiyb@chromium.org

No-Try: true
Bug: chromium:838266
Change-Id: I898579f780e40ee0fb5fd1948a92a6c500242dfd
Reviewed-on: https://chromium-review.googlesource.com/1154219
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54771}
2018-07-28 12:38:54 +00:00
Sergiy Byelozyorov
43316a0a6c [tools] Whitespace CL
TBR=sergiyb@chromium.org

No-Try: true
Bug: chromium:838266
Change-Id: I0c288eeaf28569d671220ab320aaec677825bb37
Reviewed-on: https://chromium-review.googlesource.com/1154218
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54770}
2018-07-28 12:17:34 +00:00
Sergiy Byelozyorov
382c18627b [tools] Whitespace CL
TBR=sergiyb@chromium.org

No-Try: true
Bug: chromium:842224
Change-Id: Icd00b7b4b86e1cc2de0234c69632eb5e6a63b11a
Reviewed-on: https://chromium-review.googlesource.com/1154216
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54769}
2018-07-28 11:27:24 +00:00
Matheus Marchini
09bca095e3 [postmortem] add ScopeInfo and Context types
The metadata introduced in this patch will be useful for postmortem
tools to inspect Contexts and ScopeInfos (see
https://github.com/nodejs/llnode/issues/211).

R=bmeurer@google.com, yangguo@google.com

Change-Id: I927fcab4014d128bd782046c1ecb9ee045723e95
Reviewed-on: https://chromium-review.googlesource.com/1153858
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54768}
2018-07-28 09:49:14 +00:00
Sergiy Byelozyorov
ae76bb4c35 [tools] Whitespace CL
TBR=sergiyb@chromium.org

No-Try: true
Bug: chromium:842224
Change-Id: Ic7c6093331f1bd35fffbfc98cd3f1d0ed3571eb4
Reviewed-on: https://chromium-review.googlesource.com/1154212
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54767}
2018-07-28 05:06:44 +00:00
Sergiy Byelozyorov
28232f63d2 [tools] Whitespace CL
TBR=sergiyb@chromium.org

No-Try: true
Bug: chromium:842224
Change-Id: I63c96969382fff550a64f80d35a7576d84092a0a
Reviewed-on: https://chromium-review.googlesource.com/1154211
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54766}
2018-07-28 04:52:24 +00:00
Sergiy Byelozyorov
d2d3cc588a [tools] Whitespace CL
TBR=sergiyb@chromium.org

No-Try: true
Bug: chromium:838864
Change-Id: Ie0e6e1742344bfd69ec109f55fcccbaca0d66d66
Reviewed-on: https://chromium-review.googlesource.com/1154209
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54764}
2018-07-28 02:56:40 +00:00
Sergiy Byelozyorov
6cd560b265 Revert "[tools] Add an option to checkout v8-perf repo before running perf tests"
This reverts commit ba02337157.

Reason for revert: decided to use CIPD package instead, see reasoning here: http://shortn/_MgZHcjC60Q.

Original change's description:
> [tools] Add an option to checkout v8-perf repo before running perf tests
>
> R=​machenbach@chromium.org
>
> No-Try: true
> Bug: chromium:838864
> Change-Id: I02e38778ec4c33a20f4b2e93fb22615baa316883
> Reviewed-on: https://chromium-review.googlesource.com/1151295
> Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54723}

TBR=machenbach@chromium.org,sergiyb@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

No-Try: true
No-Tree-Checks: true
Bug: chromium:838864
Change-Id: I65a5b075c6fede61b59528ba92f6803011f187c7
Reviewed-on: https://chromium-review.googlesource.com/1153687
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54759}
2018-07-27 21:28:58 +00:00
Michael Lippautz
8abada5b41 [iwyu] Untangle heap/local-allocator(-inl).h
Bug: v8:7490
Change-Id: I72444df6f75bc61c467c2df51f87581ef44fe09e
Reviewed-on: https://chromium-review.googlesource.com/1151632
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54751}
2018-07-27 10:44:30 +00:00
Peter Marshall
558cfa099e [cleanup] Fix more header includes to allow individual compilation
Fixes:
  src/objects/intl-objects-inl.h
  src/objects/js-collection.h
  src/objects/js-collection-inl.h
  src/objects/js-regexp-string-iterator-inl.h
  src/objects/microtask-inl.h
  src/objects/module-inl.h
  src/objects/ordered-hash-table-inl.h
  src/objects/promise-inl.h

Bug: v8:7754,v8:7490
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: Id5a5017713fa9920add2b38dbc56ab74abd4addd
Reviewed-on: https://chromium-review.googlesource.com/1152732
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54748}
2018-07-27 09:15:20 +00:00
Peter Marshall
fbedc72a6c [cleanup] Fix more header includes to allow individual compilation
Fixes:
  src/objects/arguments.h
  src/objects/arguments-inl.h
  src/objects/compilation-cache-inl.h
  src/objects/data-handler-inl.h
  src/objects/hash-table-inl.h

Bug: v8:7754,v8:7490
Change-Id: Ic17d4c3477c7d2003b325497cb9082899a0bf3fc
Reviewed-on: https://chromium-review.googlesource.com/1151312
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54736}
2018-07-26 21:27:09 +00:00
Sergiy Byelozyorov
ba02337157 [tools] Add an option to checkout v8-perf repo before running perf tests
R=machenbach@chromium.org

No-Try: true
Bug: chromium:838864
Change-Id: I02e38778ec4c33a20f4b2e93fb22615baa316883
Reviewed-on: https://chromium-review.googlesource.com/1151295
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54723}
2018-07-26 13:13:56 +00:00
Jakob Kummerow
f15cb8fe54 [tests] Make processing of test filters faster
The test driver compares command-line arguments against test names
it finds on disk. Using Python's "fnmatch" for this nicely handles
wildcards, but is relatively slow. For given test names that don't
contain any '*', we can use string equality testing, which is much
faster.

Example: the time to evaluate

 tools/run-tests.py --arch x64 --mode release \
   $(grep 'object-spread' -l -r test/test262/data/test/ | \
       sed -E 's|\.js$||' | \
       sed -E 's|^test/test262/data/test/|test262/|')

goes from "I gave up and killed the process after several minutes"
to a couple of seconds with this patch.

Change-Id: I9ec404b7516afd801fe6126347f6dff533d1977c
Reviewed-on: https://chromium-review.googlesource.com/1149196
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54704}
2018-07-25 20:48:05 +00:00
Michael Achenbach
46930afc4e [tools] Fix missing import in node script
NOTRY=true
TBR=yangguo@chromium.org

Change-Id: I2d8d07f048204874995dd4d349b6fb2b5b226630
Reviewed-on: https://chromium-review.googlesource.com/1150158
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54695}
2018-07-25 13:18:25 +00:00
Sergiy Byelozyorov
a82ea31afb [tools] Detect location of android build tools automatically
R=machenbach@chromium.org

No-Try: true
Bug: chromium:838864
Change-Id: Ifbdd9fe986e84197fd1ff6441c1565fed44c2c6f
Reviewed-on: https://chromium-review.googlesource.com/1149869
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54689}
2018-07-25 11:23:55 +00:00
Clemens Hammacher
6af63b9483 [iwyu] Fix includes in maybe-handles-inl.h and maybe-object-inl.h
R=titzer@chromium.org

Bug: v8:7965
Change-Id: I1bdd5b3bc8626727c94b95b519a8896384ff990b
Reviewed-on: https://chromium-review.googlesource.com/1148573
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54684}
2018-07-25 09:24:29 +00:00
Peter Marshall
1465c36d85 [cleanup] Fix the includes for some more files
Change-Id: I87b141d44706fedf7821c266c6207564fd77a9b6
Reviewed-on: https://chromium-review.googlesource.com/1148577
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54677}
2018-07-25 08:11:14 +00:00
Clemens Hammacher
81f12eee5c [iwyu] Fix includes in double.h
Drive-by: Convert const to constexpr.

R=titzer@chromium.org

Bug: v8:7965
Change-Id: Ifddfba78e819a0d340fba27a6efedea654b057e8
Reviewed-on: https://chromium-review.googlesource.com/1148722
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54676}
2018-07-25 07:57:55 +00:00
Frank Tang
ac8b5b919e [Intl] Implement Intl.ListFormat constructor
Spec: http://tc39.github.io/proposal-intl-list-format/

Design Doc:  go/add-intl.listformat-to-v8

Test: intl/list-format/*

R=gsathya@chromium.org, mvstanton@chromium.org

Bug: v8:7871
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I0dfb91b7806007e4f02f3b0438c30528c8143081
Reviewed-on: https://chromium-review.googlesource.com/1124343
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Daniel Ehrenberg <littledan@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54668}
2018-07-24 21:50:13 +00:00
Peter Marshall
d2abbc138e [cleanup] Fix header includes for js-array-inl.h
Change-Id: Ib0a047c0e02b3feaf878af2ec87d5d0f35167280
Reviewed-on: https://chromium-review.googlesource.com/1148561
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54665}
2018-07-24 18:56:35 +00:00
Clemens Hammacher
ce3a402d0e [iwyu][wasm] Fix IWYU violations
R=titzer@chromium.org

Bug: v8:7965
Change-Id: I5e44e8a4dd522703e7a20e32abae1f66ba44451e
Reviewed-on: https://chromium-review.googlesource.com/1148566
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54661}
2018-07-24 17:32:34 +00:00
Clemens Hammacher
d324382e1c Reland "[turboassembler] Introduce hard-abort mode"
This is a reland of a462a7854a

Original change's description:
> [turboassembler] Introduce hard-abort mode
> 
> For checks and assertions (mostly for debug code, like stack alignment
> or zero extension), we had two modes: Emit a call to the {Abort}
> runtime function (the default), and emit a debug break (used for
> testing, enabled via --trap-on-abort).
> In wasm, where we cannot just call a runtime function because code must
> be isolate independent, we always used the trap-on-abort behaviour.
> This causes problems for our fuzzers, which do not catch SIGTRAP, and
> hence do not detect debug code failures.
> 
> This CL introduces a third mode ("hard abort"), which calls a C
> function via {ExternalReference}. The C function still outputs the
> abort reason, but does not print the stack trace. It then aborts via
> "OS::Abort", just like the runtime function.
> This will allow fuzzers to detect the crash and even find a nice error
> message.
> 
> Even though this looks like a lot of code churn, it is actually not.
> Most added lines are new tests, and other changes are minimal.
> 
> R=mstarzinger@chromium.org
> 
> Bug: chromium:863799
> Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
> Reviewed-on: https://chromium-review.googlesource.com/1142163
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54592}

Bug: chromium:863799
Change-Id: I7729a47b4823a982a8e201df36520aa2b6ef5326
Reviewed-on: https://chromium-review.googlesource.com/1146100
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54656}
2018-07-24 15:58:46 +00:00
Tobias Tebbi
24ebe454f2 [iwyu] enable header include checks for torque
This also fixes all resulting failures.

Bug: v8:7965
Change-Id: I5451cdd3a3ec48c708107a22445808c268efe861
Reviewed-on: https://chromium-review.googlesource.com/1148336
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54643}
2018-07-24 12:53:21 +00:00
Michael Achenbach
2acc4d440b [test] Add reusable negative-test output processor
Bug: chromium:846711
Change-Id: Ic51e31a48106e495c3dc7d75ef4c97fa82071a64
Reviewed-on: https://chromium-review.googlesource.com/1148057
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54633}
2018-07-24 09:50:18 +00:00
Clemens Hammacher
bb5de1b719 [iwyu] Extend header includes blacklist
In order to make the bot green and start shrinking down the blacklist,
we first need to extend it more unfortunately.

R=marja@chromium.org

Bug: v8:7966, v8:7965
Change-Id: I44ddcceb6fe0ef572222b9635117deb15ed166d1
Reviewed-on: https://chromium-review.googlesource.com/1148050
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54630}
2018-07-24 09:01:57 +00:00
Théotime Grohens
fe45ddcc14 [dataview] Improve exception error messages
This CL makes the unoptimized DataView getter and setter methods
output the right function name when throwing an exception,
instead of a generic one.

It also contains a little drive-by cleanup of the Torque code
to keep it up to date with the language.

Change-Id: I10eb37090a0206172e470b5958af6a5968f3836f
Reviewed-on: https://chromium-review.googlesource.com/1146570
Commit-Queue: Théotime Grohens <theotime@google.com>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54615}
2018-07-23 15:45:09 +00:00
Sigurd Schneider
039c18e19a Speculatively revert "[turboassembler] Introduce hard-abort mode"
This reverts commit a462a7854a.

Reason for revert: Breaks a TurboAssembler test:
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Arm/7726

Original change's description:
> [turboassembler] Introduce hard-abort mode
> 
> For checks and assertions (mostly for debug code, like stack alignment
> or zero extension), we had two modes: Emit a call to the {Abort}
> runtime function (the default), and emit a debug break (used for
> testing, enabled via --trap-on-abort).
> In wasm, where we cannot just call a runtime function because code must
> be isolate independent, we always used the trap-on-abort behaviour.
> This causes problems for our fuzzers, which do not catch SIGTRAP, and
> hence do not detect debug code failures.
> 
> This CL introduces a third mode ("hard abort"), which calls a C
> function via {ExternalReference}. The C function still outputs the
> abort reason, but does not print the stack trace. It then aborts via
> "OS::Abort", just like the runtime function.
> This will allow fuzzers to detect the crash and even find a nice error
> message.
> 
> Even though this looks like a lot of code churn, it is actually not.
> Most added lines are new tests, and other changes are minimal.
> 
> R=​mstarzinger@chromium.org
> 
> Bug: chromium:863799
> Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
> Reviewed-on: https://chromium-review.googlesource.com/1142163
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54592}

TBR=mstarzinger@chromium.org,clemensh@chromium.org

Change-Id: I60c011cfe262ccebbb9abf32699a9fe17e72a3c8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:863799
Reviewed-on: https://chromium-review.googlesource.com/1145431
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54597}
2018-07-20 17:28:49 +00:00
Clemens Hammacher
a462a7854a [turboassembler] Introduce hard-abort mode
For checks and assertions (mostly for debug code, like stack alignment
or zero extension), we had two modes: Emit a call to the {Abort}
runtime function (the default), and emit a debug break (used for
testing, enabled via --trap-on-abort).
In wasm, where we cannot just call a runtime function because code must
be isolate independent, we always used the trap-on-abort behaviour.
This causes problems for our fuzzers, which do not catch SIGTRAP, and
hence do not detect debug code failures.

This CL introduces a third mode ("hard abort"), which calls a C
function via {ExternalReference}. The C function still outputs the
abort reason, but does not print the stack trace. It then aborts via
"OS::Abort", just like the runtime function.
This will allow fuzzers to detect the crash and even find a nice error
message.

Even though this looks like a lot of code churn, it is actually not.
Most added lines are new tests, and other changes are minimal.

R=mstarzinger@chromium.org

Bug: chromium:863799
Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
Reviewed-on: https://chromium-review.googlesource.com/1142163
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54592}
2018-07-20 14:44:29 +00:00
Clemens Hammacher
4b4125778a [iwyu] Add script to check that headers can be included in isolation
The most important point of IWYU (include-what-you-use) is that each
header includes everything it is using, so that whoever includes that
header does not need to additionally include other things.
This CL adds a script which generates files to automatically check this.
It is automatically invoked during "gclient runhooks" if the
"check_v8_header_includes" variable is set. This script generates a
number of .cc files in the "check-header-includes" directory, together
with a "sources.gni" file which lists all the generated cc files. Each
file includes one header.
If additionally the gn args "v8_check_header_includes" is set, this gni
file is included, and all the generated CC files will be compiled. This
will detect violations of the aforementioned IWYU rule.

R=titzer@chromium.org, machenbach@chromium.org

Bug: v8:7754, v8:7965
Change-Id: Id1cf256507052c3a9ea82f8c80ea1c0385457e31
Reviewed-on: https://chromium-review.googlesource.com/1145199
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54590}
2018-07-20 13:54:59 +00:00
Yang Guo
2ebce7a814 [tools] opt out of metrics when fetching deps for node
R=machenbach@chromium.org

Change-Id: Ia50f6e637aec58e9c1bdd726c84b296fd71d7cbb
Reviewed-on: https://chromium-review.googlesource.com/1142767
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54571}
2018-07-20 09:05:55 +00:00
Tobias Sargeant
af0bd71140 Fix a trivial typo in grokdump.py
Change-Id: I5977c58d7d39f5f13352234f0d016c47ce9be133
Reviewed-on: https://chromium-review.googlesource.com/1143465
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Tobias Sargeant <tobiasjs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54562}
2018-07-19 16:46:14 +00:00
Clemens Hammacher
a6a727357e [foozzie] Move --suppress-asm-messages flag to FLAGS
Instead of repeating it in every configuration, just add it to the
common FLAGS.

R=machenbach@chromium.org

Change-Id: I93e7ef0f0ad55bfe0a0e24f50d5a73d4658d7554
Reviewed-on: https://chromium-review.googlesource.com/1141733
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54552}
2018-07-19 10:39:37 +00:00
Clemens Hammacher
605f94b700 [foozzie] Update existing configs for liftoff
Instead of having a separate liftoff config, which is tested against
the default (which currently means tier-up from liftoff to turbofan),
just choose reasonable liftoff configs for the existing configs.
'ignition' now implies pure liftoff execution.
'ignition_turbo_opt' always compiles with turbofan.
Other configs use the default (tier up).

R=machenbach@chromium.org

Bug: chromium:824098, v8:6600
Change-Id: I92c008fc1b1fa54d3161fb5695a095127d6ac263
Reviewed-on: https://chromium-review.googlesource.com/1141731
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54548}
2018-07-19 09:51:06 +00:00
Sergiy Byelozyorov
60acf3e8af Revert "[tools] Keep raw data in the generated JSON for debugging purposes"
This reverts commit 1e1cca61da.

Reason for revert: breaks builders

Original change's description:
> [tools] Keep raw data in the generated JSON for debugging purposes
> 
> R=​machenbach@chromium.org
> 
> Bug: chromium:861668
> Change-Id: Ic3225ed5919c21a7f6a9f21cba4aa491e1d6606d
> Reviewed-on: https://chromium-review.googlesource.com/1140331
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54508}

TBR=machenbach@chromium.org,sergiyb@chromium.org

Change-Id: I10dff94c9cfe08c4a6b6d4d225b429fe16b95d19
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:861668
Reviewed-on: https://chromium-review.googlesource.com/1141784
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54517}
2018-07-18 10:51:30 +00:00
Marja Hölttä
9991fbd21f [in-place weak refs] Make NormalizedMapCache use in-place weak references.
Now we can finally get rid of Map::weak_cell_cache!

BUG=v8:7308

Change-Id: I87a06509bf638bf6833ea2ba1eca525fb4b15df1
Reviewed-on: https://chromium-review.googlesource.com/1128882
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54511}
2018-07-18 07:35:52 +00:00
Sergiy Byelozyorov
1e1cca61da [tools] Keep raw data in the generated JSON for debugging purposes
R=machenbach@chromium.org

Bug: chromium:861668
Change-Id: Ic3225ed5919c21a7f6a9f21cba4aa491e1d6606d
Reviewed-on: https://chromium-review.googlesource.com/1140331
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54508}
2018-07-18 06:35:03 +00:00
Vasili Skurydzin
abab9fbb64 s390, ppc64: Enable v8gen.py on Linux s390, ppc64
Change-Id: Ia05e949e1a823e30a45894c47f6f6df2e159befe
Reviewed-on: https://chromium-review.googlesource.com/1135540
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54485}
2018-07-17 08:54:26 +00:00
Matheus Marchini
804a693eb4 [postmortem] add JS_ERROR_TYPE and context embedder index
* JS_ERROR_TYPE is required for postmortem tools to inspect JSError
    objects (see https://github.com/nodejs/llnode/pull/215 for a usage
    example)
  * The context embedder index is required for postmortem tools to
    access embedder data stored in the context (see
    https://github.com/nodejs/llnode/pull/204 for a usage example)

R=bmeurer@google.com, yangguo@google.com

Change-Id: Ib7c7eb44f6ad327fc71a1d45f510c49377db7a25
Reviewed-on: https://chromium-review.googlesource.com/1138493
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54475}
2018-07-16 18:42:35 +00:00
Camillo Bruni
e3b4ffa9ba [tools] Improve function event logging and parse processor
- Log script sources with --log-function-events
- Don't show confusing duration in graphs
- Introduce separate compilation category
- Log script details after deserialization
- Log parse times for eval scripts
- Display deserialized scripts and functions

Change-Id: I58f3bf8efe3955632322f958716c36ad38761fd0
Bug: chromium:757467, chromium:850038
Reviewed-on: https://chromium-review.googlesource.com/1128082
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54465}
2018-07-16 14:05:14 +00:00
Sigurd Schneider
b8e3793a8e [turbolizer] Treeshake d3 library
Bug: v8:7327
Change-Id: I96fa8f6c2dbc9fb3da0be9a8b8d730cc1d1e3415
Reviewed-on: https://chromium-review.googlesource.com/1131456
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54452}
2018-07-16 08:45:20 +00:00
Camillo Bruni
3ffeaac89b [tools] Limit number of retries in callstats.py
Abort after reaching MAX_NOF_RETRIES since there is only a very low chance
that the page will keep on working after that.

Change-Id: Ia9e5f3cf69ae2b5ad40a60f86a46800541404862
Bug: v8:7941
Reviewed-on: https://chromium-review.googlesource.com/1134771
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54433}
2018-07-13 10:52:03 +00:00
Clemens Hammacher
3255d8dd41 Reland "Fix and extend lldbinit"
This is a reland of 5b744bfbd4.
Node is fixed by this pull request:
https://github.com/v8/node/pull/75

Original change's description:
> Fix and extend lldbinit
>
> 1) Define all commands in one file.
> 2) Add logic to make 'jco' print current pc by default.
> 3) Add a comment to explain how to load the lldb_commands.py file.
> 4) Minor refactorings.
>
> R=ahaas@chromium.org
> No-Try: true
>
> Bug: v8:7754
> Change-Id: I553f2ce4cefedad05466c692a8665a570372b76a
> Reviewed-on: https://chromium-review.googlesource.com/1127892
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54329}

Bug: v8:7754
Change-Id: I8645ae07176fe6983a581dd175ed6f2b2b15d4ea
Reviewed-on: https://chromium-review.googlesource.com/1135026
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54424}
2018-07-13 07:40:19 +00:00