- 04 Apr, 2019 1 commit
-
-
Clemens Hammacher authored
We only use the safe math helpers (CheckedNumeric<T>) in very few places. The headers are huge though, and complex. They are pulled in to 839 of our object files, increasing compilation time. I also find the implicit checks more easy to understand than the complex logic in CheckedNumeric. Thus, this CL removes the safe_math headers and implements bounds checks for the five uses explicitly. R=jkummerow@chromium.org, mlippautz@chromium.org Bug: v8:8834 Change-Id: I2d60f95799ee61cfa161354428605f67829cd736 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547651Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60630}
-
- 03 Apr, 2019 5 commits
-
-
Adithya Srinivasan authored
This reverts commit 42beed97. Reason for revert: This commit seems to cause consistent failures in some ProcessMemoryMetricsEmitterTest tests on Mac and ChromeOS. I'm not sure what the exact reasoning behind this is. See https://crbug.com/949157. Original change's description: > Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64" > > This is a reland of 4f051fd5 > > Relanding after fixing Chromium issues. > > Original change's description: > > [ptr-compr][x64] Temporarily enable pointer compression on x64 > > > > ... and make sure that the x64 ptr-compr bots proceed testing V8 without > > pointer compression in order to keep testing the full pointer mode. > > > > Bug: v8:7703 > > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel > > Change-Id: Iee725deda813425a6f0722948b54976154f50909 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497139 > > Reviewed-by: Michael Hablich <hablich@chromium.org> > > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#60230} > > Bug: v8:7703 > Change-Id: Ic2d1c2ae41ec645f34963f5f561c33199c72ef4b > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel > Cq-Include-Trybots: luci.chromium.try:fuchsia_x64,linux-rel > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535819 > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60582} TBR=machenbach@chromium.org,hablich@chromium.org,leszeks@chromium.org,ishell@chromium.org,verwaest@chromium.org Change-Id: Ib9737081e90dddcfe44af9da1275a610da209323 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7703 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1550709 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#60618}
-
Z Duong Nguyen-Huu authored
This is a part of porting Proxy-related builtins to Torque. Spec: https://tc39.github.io/ecma262/#sec-proxy.revocable Bug: v8:6664 Change-Id: I5f53eb4dff8ff9d3156b601652f3f86ede25fc1d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1529261 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#60613}
-
Clemens Hammacher authored
The cache also needs to keep the code alive. The code objects are import wrappers and not wasm functions (which we will focus on first), but eventually we would also like to collect unused import wrappers. This CL explicitly increments the ref count when {WasmCode} is added to the cache, and derements all ref counts in the destructor. R=titzer@chromium.org Bug: v8:8217 Change-Id: I1bfb276b25b359d83900147e75ec47788e1fa8de Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535825Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60588}
-
Igor Sheludko authored
This is a reland of 4f051fd5 Relanding after fixing Chromium issues. Original change's description: > [ptr-compr][x64] Temporarily enable pointer compression on x64 > > ... and make sure that the x64 ptr-compr bots proceed testing V8 without > pointer compression in order to keep testing the full pointer mode. > > Bug: v8:7703 > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel > Change-Id: Iee725deda813425a6f0722948b54976154f50909 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497139 > Reviewed-by: Michael Hablich <hablich@chromium.org> > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60230} Bug: v8:7703 Change-Id: Ic2d1c2ae41ec645f34963f5f561c33199c72ef4b Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel Cq-Include-Trybots: luci.chromium.try:fuchsia_x64,linux-rel Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535819 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#60582}
-
Paolo Severini authored
This is a reland of 3cda21de Original change's description: > V8 x64 backend doesn't emit ABI compliant stack frames > > On 64 bit Windows, the OS stack walking does not work because the V8 x64 > backend doesn't emit unwinding info and also because it doesn't emit ABI > compliant stack frames. See > https://docs.google.com/document/d/1-wf50jFlii0c_Pr52lm2ZU-49m220nhYMrHDi3vXnh0/edit > for more details. > > This problem can be fixed by observing that V8 frames usually all have the same > prolog and epilog: > > push rbp, > mov rbp, rsp > ... > pop rbp > ret N > > and that it is possible to define XDATA (UNWIND_CODEs) that specify how Windows > should walk through V8 frames. Furthermore, since V8 Code objects are all > allocated in the same code-range for an Isolate, it is possible to register a > single PDATA/XDATA entry to cover stack walking for all the code generated > inside that code-range. > > This PR contains changes required to enable stack walking on Win64: > > EmbeddedFileWriter now adds assembler directives to the builtins > snapshot source file (embedded.cc) to emit additional entries in the .pdata and > in the .xdata section of the V8 executable. This takes care of stack walking > for embedded builtins. (The case of non-embedded builtins is not supported). > The x64 Assembler has been modified to collect the information required to emit > this unwind info for builtins. > > Stack walking for jitted code is handled is Isolate.cpp, by registering > dynamically PDATA/XDATA for the whole code-range address space every time a new > Isolate is initialized, and by unregistering them when the Isolate is > destroyed. > > Stack walking for WASM jitted code is handled is the same way in > wasm::NativeModule (wasm/wasm-code-manager.cpp). > > It is important to note that Crashpad and Breakpad are already registering > PDATA/XDATA to manage and report unhandled exceptions (but not for embedded > builtins). Since it is not possible to register multiple PDATA entries for the > same address range, a new function is added to the V8 API: > SetUnhandledExceptionCallback() can be used by an embedder to register its own > unhandled exception handler for exceptions that arise in v8-generated code. > V8 embedders should be modified accordingly (code for this is in a separate PR > in the Chromium repository: > https://chromium-review.googlesource.com/c/chromium/src/+/1474703). > > All these changes are experimental, behind: > > the 'v8_win64_unwinding_info' build flag, and > the '--win64-unwinding-info' runtime flag. > > Bug: v8:3598 > Change-Id: Iea455ab6d0e2bf1c556aa1cf870841d44ab6e4b1 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1469329 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Paolo Severini <paolosev@microsoft.com> > Cr-Commit-Position: refs/heads/master@{#60330} Bug: v8:3598 Change-Id: If988baf7d3e4af165b919d6e54c1ad985f8e25e3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1534618Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Paolo Severini <paolosev@microsoft.com> Cr-Commit-Position: refs/heads/master@{#60581}
-
- 02 Apr, 2019 2 commits
-
-
Tobias Tebbi authored
This reverts commit 6beea97e. Reason for revert: https://crbug.com/942497 Original change's description: > Reland^2 "[build] disable C++ optimization for mksnapshot code." > > This is a reland of a6b95a6a > > In addition to UBSan, also ASAN needs optimizations. > So this CL doesn't disable optimizations for all sanitizer builds. > > Original change's description: > > Reland "[build] disable C++ optimization for mksnapshot code." > > > > This is a reland of cee2f772 > > > > Original change's description: > > > [build] disable C++ optimization for mksnapshot code. > > > > > > By disabling C++ optimizations for code that's only run in mksnapshot, > > > that is, CSA and Torque-generated code, we can save compile time. > > > I observed up to 2x improvements of compile time for some files, > > > while the mksnapshot time did not increase significantly. > > > > > > Bug: v8:7629 > > > Change-Id: I96be2966611b2471b68023e0dd9e351d94f0013c > > > Reviewed-on: https://chromium-review.googlesource.com/c/1460941 > > > Reviewed-by: Yang Guo <yangguo@chromium.org> > > > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > > > Cr-Commit-Position: refs/heads/master@{#59585} > > > > Bug: v8:7629 > > Change-Id: I8330f93173ab3d7b400e15ea4935bbe8256b250f > > Reviewed-on: https://chromium-review.googlesource.com/c/1473292 > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > > Commit-Queue: Sigurd Schneider <sigurds@chromium.org> > > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#59606} > > Bug: v8:7629 > Change-Id: I42175c472d8e41345573df81645dfe3accc9d8c4 > Reviewed-on: https://chromium-review.googlesource.com/c/1475396 > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59632} TBR=yangguo@chromium.org,sigurds@chromium.org,tebbi@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:7629 chromium:942497 Change-Id: Ie51d7b53440230b41fb763541908cb1162d8850d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1549158 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#60577}
-
Peter Marshall authored
Autoroller updated protobuf which has some different files now. Change-Id: If3b2f6452d30e754504e8798de5adb8706371cb5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547866 Auto-Submit: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#60571}
-
- 28 Mar, 2019 5 commits
-
-
Simon Zünd authored
This reverts commit 3bd49f9b. Reason for revert: Build failure on Win Bot Original change's description: > [torque] Throw exception instead of aborting if something goes wrong > > This CL enables exceptions for the Torque compiler and Torque language > server. Instead of aborting when something goes wrong during > compilation, a TorqueError is thrown, containing the error message > and a source position. The compiler executable still prints the error > and aborts, while the language server will pass this information > along to the client (not included in this CL). > > R=danno@chromium.org > > Bug: v8:8880 > Change-Id: Iad83c46fb6a91c1babbc0ae7dbd94fbe4e7f1663 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526003 > Reviewed-by: Daniel Clifford <danno@chromium.org> > Commit-Queue: Simon Zünd <szuend@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60512} TBR=danno@chromium.org,mvstanton@chromium.org,szuend@chromium.org Change-Id: Iac253da404eaf6e534267f59a42ca93667c205e4 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8880 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1543849Reviewed-by:
Simon Zünd <szuend@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#60513}
-
Simon Zünd authored
This CL enables exceptions for the Torque compiler and Torque language server. Instead of aborting when something goes wrong during compilation, a TorqueError is thrown, containing the error message and a source position. The compiler executable still prints the error and aborts, while the language server will pass this information along to the client (not included in this CL). R=danno@chromium.org Bug: v8:8880 Change-Id: Iad83c46fb6a91c1babbc0ae7dbd94fbe4e7f1663 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526003Reviewed-by:
Daniel Clifford <danno@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#60512}
-
Pierre Langlois authored
This is a reland of 93716b9e Original change's description: > [snapshot] Add support for native counters. > > Counters in generated code, as enabled with --native-code-counters, do not work > in the snapshot. This adds a `v8_enable_snapshot_code_counters` build option > enabled by defaut in debug mode that allows code from the snapshot to increment > the current isolate's set of counters. > > For this to work, we need to add native code counters in the external reference > table. > > To keep the no snapshot configuration similar, we've also enabled the > --native-code-counters flag by default for debug builds. > > Change-Id: I4478b79858c9b04f57e06e7ec67449e9e3a76f53 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1528998 > Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60495} Change-Id: Ib6427caf068ca196a032e3f3b97d9f9219e0fe60 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1543349Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Cr-Commit-Position: refs/heads/master@{#60507}
-
Peter Marshall authored
This adds dependencies on Perfetto and Protobuf and the required configs to build them. The build configs are behind a gn flag (v8_use_perfetto) and are disabled by default. Actual implementation of Perfetto will follow. Based on Primiano's prototype: https://chromium-review.googlesource.com/c/v8/v8/+/1290549 Bug: v8:8339 TBR: yangguo@chromium.org Change-Id: I2b7462d567bfb0a5a3ffbbb8b6fcbf41c824e285 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1517876Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Auto-Submit: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#60502}
-
Michael Achenbach authored
This reverts commit 93716b9e. Reason for revert: Breaks asan debug: https://ci.chromium.org/p/v8/builders/ci/V8%20Clusterfuzz%20Mac64%20ASAN%20-%20debug%20builder/7872 https://ci.chromium.org/p/v8/builders/ci/V8%20Clusterfuzz%20Linux64%20ASAN%20-%20debug%20builder/7874 Original change's description: > [snapshot] Add support for native counters. > > Counters in generated code, as enabled with --native-code-counters, do not work > in the snapshot. This adds a `v8_enable_snapshot_code_counters` build option > enabled by defaut in debug mode that allows code from the snapshot to increment > the current isolate's set of counters. > > For this to work, we need to add native code counters in the external reference > table. > > To keep the no snapshot configuration similar, we've also enabled the > --native-code-counters flag by default for debug builds. > > Change-Id: I4478b79858c9b04f57e06e7ec67449e9e3a76f53 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1528998 > Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60495} TBR=sigurds@chromium.org,jgruber@chromium.org,petermarshall@chromium.org,pierre.langlois@arm.com Change-Id: I93f1ed714e3dcd309f3100685e4bd282db471d46 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1543209Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#60500}
-
- 27 Mar, 2019 1 commit
-
-
Pierre Langlois authored
Counters in generated code, as enabled with --native-code-counters, do not work in the snapshot. This adds a `v8_enable_snapshot_code_counters` build option enabled by defaut in debug mode that allows code from the snapshot to increment the current isolate's set of counters. For this to work, we need to add native code counters in the external reference table. To keep the no snapshot configuration similar, we've also enabled the --native-code-counters flag by default for debug builds. Change-Id: I4478b79858c9b04f57e06e7ec67449e9e3a76f53 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1528998 Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#60495}
-
- 26 Mar, 2019 1 commit
-
-
Sigurd Schneider authored
Together with the previous CL, this is a 10x improvement. Bug: v8:8834 Change-Id: I89b86ee88c82479997c08b725571369b1bf9d190 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1539592 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#60470}
-
- 25 Mar, 2019 2 commits
-
-
Cliff Smolinsky authored
The only use of shlwapi is for a single method which can be easily replaced by simple wstring calls. This change makes that swap and removes the reference to shlwapi completely. Bug: v8:9031 Change-Id: Ia8f2c44e8166d93e309016896b26a84bdb90d720 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1534960Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Cliff Smolinsky <cliffsmo@microsoft.com> Cr-Commit-Position: refs/heads/master@{#60451}
-
Clemens Hammacher authored
Both js-to-wasm-wrapper-cache-inl.h and wasm-import-wrapper-cache-inl.h do not include any inl headers, thus they can be plain headers. If they ever need to include inl headers again, we should split out the respective functions into a separete inl header to follow the usual pattern to have *both* a plain header *and* an inl header. R=mstarzinger@chromium.org Bug: v8:8834 Change-Id: I1b1b917a8e2c47f1354522479f8c57475bee6244 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535826Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60431}
-
- 22 Mar, 2019 1 commit
-
-
Jakob Gruber authored
Just the outermost wrapper function (which does almost nothing). Bug: v8:8976 Change-Id: I8137f86bde5e10ba7edd5051e7c86bfc631bfe94 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1528531 Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Reviewed-by:
Simon Zünd <szuend@chromium.org> Reviewed-by:
Peter Wong <peter.wm.wong@gmail.com> Cr-Commit-Position: refs/heads/master@{#60402}
-
- 21 Mar, 2019 2 commits
-
-
Michael Achenbach authored
This reverts commit 7b896836. Reason for revert: Lots of test failures on current roll: https://chromium-review.googlesource.com/c/chromium/src/+/1534141 Original change's description: > Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64" > > This is a reland of 4f051fd5 > > Relanding because last revert was caused by unrelated flakes. > > Original change's description: > > [ptr-compr][x64] Temporarily enable pointer compression on x64 > > > > ... and make sure that the x64 ptr-compr bots proceed testing V8 without > > pointer compression in order to keep testing the full pointer mode. > > > > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel > > Bug: v8:7703 > > Change-Id: Ied4e7bacf99c9d63e0459613fec522273f595de8 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523327 > > Commit-Queue: Igor Sheludko <ishell@chromium.org> > > Auto-Submit: Leszek Swirski <leszeks@chromium.org> > > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#60339} > > Bug: v8:7703 > Change-Id: I9c588de77070d4fbf1bb1a21ae58c398a22eed9c > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng, v8_linux64_tsan_rel, v8_mac64_gc_stress_dbg > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530819 > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60370} TBR=machenbach@chromium.org,ishell@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:7703 Change-Id: I1c037470b5895c4269c9574e6c93d0eed6fe90d5 Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng, v8_linux64_tsan_rel, v8_mac64_gc_stress_dbg Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533867Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#60397}
-
Cliff Smolinsky authored
V8_libbase.dll, in a component build where the dll is created, statically links against shlwapi.dll. Shlwapi is only needed for a single use within the debug stacktrace code and is therefore not needed in most cases. Statically loading shlwapi also brings in user32.dll and gdi32.dll, so this is a decent perf hit which is generally unnecessary. This changes delayloads shlwapi so that is only loaded when actually used. Bug: v8:9024 Change-Id: Ib8842893a43cde4b1110a333ae07d861088ba829 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533145Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Cliff Smolinsky <cliffsmo@microsoft.com> Cr-Commit-Position: refs/heads/master@{#60394}
-
- 20 Mar, 2019 4 commits
-
-
Leszek Swirski authored
This reverts commit 3cda21de. Reason for revert: Breaks the roll on Windows (see https://cr-buildbucket.appspot.com/build/8918477701097622400) Original change's description: > V8 x64 backend doesn't emit ABI compliant stack frames > > On 64 bit Windows, the OS stack walking does not work because the V8 x64 > backend doesn't emit unwinding info and also because it doesn't emit ABI > compliant stack frames. See > https://docs.google.com/document/d/1-wf50jFlii0c_Pr52lm2ZU-49m220nhYMrHDi3vXnh0/edit > for more details. > > This problem can be fixed by observing that V8 frames usually all have the same > prolog and epilog: > > push rbp, > mov rbp, rsp > ... > pop rbp > ret N > > and that it is possible to define XDATA (UNWIND_CODEs) that specify how Windows > should walk through V8 frames. Furthermore, since V8 Code objects are all > allocated in the same code-range for an Isolate, it is possible to register a > single PDATA/XDATA entry to cover stack walking for all the code generated > inside that code-range. > > This PR contains changes required to enable stack walking on Win64: > > EmbeddedFileWriter now adds assembler directives to the builtins > snapshot source file (embedded.cc) to emit additional entries in the .pdata and > in the .xdata section of the V8 executable. This takes care of stack walking > for embedded builtins. (The case of non-embedded builtins is not supported). > The x64 Assembler has been modified to collect the information required to emit > this unwind info for builtins. > > Stack walking for jitted code is handled is Isolate.cpp, by registering > dynamically PDATA/XDATA for the whole code-range address space every time a new > Isolate is initialized, and by unregistering them when the Isolate is > destroyed. > > Stack walking for WASM jitted code is handled is the same way in > wasm::NativeModule (wasm/wasm-code-manager.cpp). > > It is important to note that Crashpad and Breakpad are already registering > PDATA/XDATA to manage and report unhandled exceptions (but not for embedded > builtins). Since it is not possible to register multiple PDATA entries for the > same address range, a new function is added to the V8 API: > SetUnhandledExceptionCallback() can be used by an embedder to register its own > unhandled exception handler for exceptions that arise in v8-generated code. > V8 embedders should be modified accordingly (code for this is in a separate PR > in the Chromium repository: > https://chromium-review.googlesource.com/c/chromium/src/+/1474703). > > All these changes are experimental, behind: > > the 'v8_win64_unwinding_info' build flag, and > the '--win64-unwinding-info' runtime flag. > > Bug: v8:3598 > Change-Id: Iea455ab6d0e2bf1c556aa1cf870841d44ab6e4b1 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1469329 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Paolo Severini <paolosev@microsoft.com> > Cr-Commit-Position: refs/heads/master@{#60330} TBR=bbudge@chromium.org,ulan@chromium.org,mvstanton@chromium.org,mstarzinger@chromium.org,gdeepti@chromium.org,jgruber@chromium.org,paolosev@microsoft.com Change-Id: If8470da94c58df8c800cbe8887f9f86236e43353 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:3598 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1532321Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#60372}
-
Igor Sheludko authored
This is a reland of 4f051fd5 Relanding because last revert was caused by unrelated flakes. Original change's description: > [ptr-compr][x64] Temporarily enable pointer compression on x64 > > ... and make sure that the x64 ptr-compr bots proceed testing V8 without > pointer compression in order to keep testing the full pointer mode. > > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel > Bug: v8:7703 > Change-Id: Ied4e7bacf99c9d63e0459613fec522273f595de8 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523327 > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Auto-Submit: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60339} Bug: v8:7703 Change-Id: I9c588de77070d4fbf1bb1a21ae58c398a22eed9c Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng, v8_linux64_tsan_rel, v8_mac64_gc_stress_dbg Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530819 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#60370}
-
Michael Lippautz authored
Omit user roots when raw heap snapshots are used, i.e., when the gn flag v8_enable_raw_heap_snapshots is enabled. For regular Chrome production builds this is not the case. Blink CL: https://crrev.com/c/1529096 Bug: chromium:936797 Change-Id: I5ae0ec1ecfab9a76352d8ce927d1c40e707262cc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1528994 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Alexei Filippov <alph@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#60351}
-
Tom Anderson authored
This CL includes a revert of [1] with thakis@'s proposed fix at [2]. Verified a build with the below gn args works on Linux: target_os = "win" target_cpu = "x86" is_debug = false is_official_build = true is_component_build = false use_goma = true enable_nacl = false use_custom_libcxx = true [1] https://chromium.googlesource.com/v8/v8.git/+/93ee541417b6f5904072c0ecdfc6fc041811b489 [2] https://bugs.chromium.org/p/chromium/issues/detail?id=942347#c2 BUG=chromium:942347 R=machenbach CC=thakis Change-Id: I34f5744a9f600efbc075f4b5ba8d1c66bff46ae6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1529250 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Auto-Submit: Thomas Anderson <thomasanderson@chromium.org> Cr-Commit-Position: refs/heads/master@{#60349}
-
- 19 Mar, 2019 4 commits
-
-
Deepti Gandluri authored
This reverts commit 4f051fd5. Reason for revert: Fails with custom snapshot on GC stress - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/24855 Original change's description: > Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64" > > This is a reland of 589d1a6b > > Relanding after fixing TSan and UBSan issues. > > Original change's description: > > [ptr-compr][x64] Temporarily enable pointer compression on x64 > > > > ... and make sure that the x64 ptr-compr bots proceed testing V8 without > > pointer compression in order to keep testing the full pointer mode. > > > > Bug: v8:7703 > > Change-Id: Iee725deda813425a6f0722948b54976154f50909 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497139 > > Reviewed-by: Michael Hablich <hablich@chromium.org> > > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#60230} > > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel > Bug: v8:7703 > Change-Id: Ied4e7bacf99c9d63e0459613fec522273f595de8 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523327 > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Auto-Submit: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60339} TBR=machenbach@chromium.org,hablich@chromium.org,leszeks@chromium.org,ishell@chromium.org,verwaest@chromium.org Change-Id: Ia06829e9dfdf09501ceebc0eef175d3261969d1f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7703 Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng, v8_linux64_tsan_rel Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1531120Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#60340}
-
Igor Sheludko authored
This is a reland of 589d1a6b Relanding after fixing TSan and UBSan issues. Original change's description: > [ptr-compr][x64] Temporarily enable pointer compression on x64 > > ... and make sure that the x64 ptr-compr bots proceed testing V8 without > pointer compression in order to keep testing the full pointer mode. > > Bug: v8:7703 > Change-Id: Iee725deda813425a6f0722948b54976154f50909 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497139 > Reviewed-by: Michael Hablich <hablich@chromium.org> > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60230} Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel Bug: v8:7703 Change-Id: Ied4e7bacf99c9d63e0459613fec522273f595de8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523327 Commit-Queue: Igor Sheludko <ishell@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#60339}
-
Paolo Severini authored
On 64 bit Windows, the OS stack walking does not work because the V8 x64 backend doesn't emit unwinding info and also because it doesn't emit ABI compliant stack frames. See https://docs.google.com/document/d/1-wf50jFlii0c_Pr52lm2ZU-49m220nhYMrHDi3vXnh0/edit for more details. This problem can be fixed by observing that V8 frames usually all have the same prolog and epilog: push rbp, mov rbp, rsp ... pop rbp ret N and that it is possible to define XDATA (UNWIND_CODEs) that specify how Windows should walk through V8 frames. Furthermore, since V8 Code objects are all allocated in the same code-range for an Isolate, it is possible to register a single PDATA/XDATA entry to cover stack walking for all the code generated inside that code-range. This PR contains changes required to enable stack walking on Win64: EmbeddedFileWriter now adds assembler directives to the builtins snapshot source file (embedded.cc) to emit additional entries in the .pdata and in the .xdata section of the V8 executable. This takes care of stack walking for embedded builtins. (The case of non-embedded builtins is not supported). The x64 Assembler has been modified to collect the information required to emit this unwind info for builtins. Stack walking for jitted code is handled is Isolate.cpp, by registering dynamically PDATA/XDATA for the whole code-range address space every time a new Isolate is initialized, and by unregistering them when the Isolate is destroyed. Stack walking for WASM jitted code is handled is the same way in wasm::NativeModule (wasm/wasm-code-manager.cpp). It is important to note that Crashpad and Breakpad are already registering PDATA/XDATA to manage and report unhandled exceptions (but not for embedded builtins). Since it is not possible to register multiple PDATA entries for the same address range, a new function is added to the V8 API: SetUnhandledExceptionCallback() can be used by an embedder to register its own unhandled exception handler for exceptions that arise in v8-generated code. V8 embedders should be modified accordingly (code for this is in a separate PR in the Chromium repository: https://chromium-review.googlesource.com/c/chromium/src/+/1474703). All these changes are experimental, behind: the 'v8_win64_unwinding_info' build flag, and the '--win64-unwinding-info' runtime flag. Bug: v8:3598 Change-Id: Iea455ab6d0e2bf1c556aa1cf870841d44ab6e4b1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1469329Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Paolo Severini <paolosev@microsoft.com> Cr-Commit-Position: refs/heads/master@{#60330}
-
Peter Marshall authored
This was unimplemented but is needed for Perfetto which posts delayed tasks on worker threads e.g. drain the trace buffer into a file every x seconds. This is implemented by adding a second queue which holds the delayed tasks in chronological order of 'next-to-execute'. We use an std::multimap for the queue so that we can easily get the next delayed task with begin(). The implementation will move delayed tasks into the main task queue when their deadline expires. Drive-by cleanup of the runner destructor which can just use = default. Bug: v8:8339 Change-Id: I3629c5d6e15ced2fc47eb1b7519a2dbbf8461fce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1521114 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#60320}
-
- 18 Mar, 2019 3 commits
-
-
Z Duong Nguyen-Huu authored
This is a part of effort to port Proxy-related builtins to Torque. Spec: https://tc39.github.io/ecma262/#sec-proxy-revocation-functions Bug: v8:6664 Change-Id: I283a4d8109a31c7e91f1cea8eb7a6e819e60b1cc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1521921 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#60311}
-
peterwmwong authored
Bug: v8:8996 Change-Id: I035c380768c324d8912aa8bc414d533dbf7f3e5a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1524640 Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Reviewed-by:
Simon Zünd <szuend@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#60292}
-
Igor Sheludko authored
This reverts commit 68612784. Reason for revert: I'll follow Jakob's suggestion and fix unaligned accesses in C++ with ReadUnalignedValue(). Original change's description: > [build] Suppress UBSan alignment checks in pointer compression > > It is a design decision of pointer compression to allow unaligned pointers, > so disable this check in UBSan. > > Bug: v8:7703 > Change-Id: I3fab34e77ad755cdef3cd385a3615e3d0e350c16 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523346 > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > Auto-Submit: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60235} TBR=jkummerow@chromium.org,machenbach@chromium.org,leszeks@chromium.org,verwaest@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:7703 Change-Id: I17e669e7b5e2dea8f0686911730d27f3d2732b85 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526200Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#60283}
-
- 14 Mar, 2019 5 commits
-
-
peterwmwong authored
Consolidates all the work into a single TFS builtin (CreateHTML) called by all these functions. Reduces the builtin size by about half. Change-Id: I92b2c7889f72db4c8c79d7ef0ce0e61036ab619e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1522727 Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#60248}
-
Maciej Goszczycki authored
Piggybacking of splitting heap setup, this change adds a shared read-only heap and a flag to enable it. Also makes CallOnce use std::function instead of a raw function pointer so the CL can use lambdas with CallOnce. Bug: v8:7464 Change-Id: I9a97fb1baa6badca39a7381de3fd9e01f5969340 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1518180Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Commit-Queue: Maciej Goszczycki <goszczycki@google.com> Cr-Commit-Position: refs/heads/master@{#60241}
-
Leszek Swirski authored
It is a design decision of pointer compression to allow unaligned pointers, so disable this check in UBSan. Bug: v8:7703 Change-Id: I3fab34e77ad755cdef3cd385a3615e3d0e350c16 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523346 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#60235}
-
Maya Lekova authored
This reverts commit 589d1a6b. Reason for revert: Breaking UBSan - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20UBSan/5219 Original change's description: > [ptr-compr][x64] Temporarily enable pointer compression on x64 > > ... and make sure that the x64 ptr-compr bots proceed testing V8 without > pointer compression in order to keep testing the full pointer mode. > > Bug: v8:7703 > Change-Id: Iee725deda813425a6f0722948b54976154f50909 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497139 > Reviewed-by: Michael Hablich <hablich@chromium.org> > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60230} TBR=machenbach@chromium.org,hablich@chromium.org,ishell@chromium.org,verwaest@chromium.org Change-Id: I5a9f04acba1ef23ae944d97a029ea018808c7fcb No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7703 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1522991Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#60231}
-
Igor Sheludko authored
... and make sure that the x64 ptr-compr bots proceed testing V8 without pointer compression in order to keep testing the full pointer mode. Bug: v8:7703 Change-Id: Iee725deda813425a6f0722948b54976154f50909 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497139Reviewed-by:
Michael Hablich <hablich@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#60230}
-
- 08 Mar, 2019 3 commits
-
-
Z Duong Nguyen-Huu authored
This is the reland of https://chromium-review.googlesource.com/c/v8/v8/+/1495898 builtin_function_id corresponded to BuiltinFunctionId (a manually maintained list of 'interesting' functionsmainly used during optimization). With this change, we nuke builtin-function-id in favor of builtin-id and 8 bits is freed up in SFI. Bug: v8:6993 Change-Id: I7e1681cc2a95864c71ce8bdda075481310607166 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1506445Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Cr-Commit-Position: refs/heads/master@{#60131}
-
Mike Stanton authored
This CL contains find, findIndex, every and some. Now that we've established the pattern on the torque side for iterating array builtins, it's a very easy port, which nonetheless decreases code size in the snapshot, w00t! Bug: v8:8906 Change-Id: I3082d8e3e298e55733a42d6b441e5812b7f12f3d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1496976 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#60128}
-
Mike Stanton authored
Optimizations to use fast memmove to move elements are preserved, as well as heuristics for bailout to the runtime if left or right trimming is desired. Bug: v8:7672 Change-Id: I01ffc1143b63d705d99a40eab3a7e873596d0aa4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1499495 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#60118}
-
- 06 Mar, 2019 1 commit
-
-
Igor Sheludko authored
... and fix header includes to please the respective bot. Drive-by-fix: decompression implementation is now MSVC friendly. Bug: v8:7703, v8:8834 Change-Id: Iaf589138e5bafb32b0d9feab5cf074b71f241a3c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1505579 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#60074}
-