- 28 Oct, 2019 1 commit
-
-
Jakob Gruber authored
Debug infos for embedded builtins (associating a file and line number with certain code ranges) should only be emitted in debug modes. This CL disables source position emission in Torque in release builds, and adds checks that the external filename / source position lists are empty in release builds. Bug: v8:9910 Change-Id: Ic69683a2324c3b334150ee2b7da9972fbee56483 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1879903Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64576}
-
- 13 Sep, 2019 1 commit
-
-
Clemens Hammacher authored
After https://crrev.com/c/1800575 and https://crrev.com/c/1803343, which tried to fix this on occuring compile errors, this CL systematically adds the <memory> include to each header that uses {std::unique_ptr}. R=sigurds@chromium.org TBR=mlippautz@chromium.org,alph@chromium.org,rmcilroy@chromium.org,verwaest@chromium.org Bug: v8:9396 Change-Id: If7f9c3140842f9543135dddd7344c0f357999da0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1803349Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#63767}
-
- 31 Jul, 2019 1 commit
-
-
Tom Tan authored
On Windows ARM64, OS stack walking does not work because the V8 ARM64 backend doesn't emit unwinding info and also because it doesn't emit ABI compliant stack frames. This was fixed for Windows X64 (https://crrev.com/c/1469329) and documented below: https://docs.google.com/document/d/1-wf50jFlii0c_Pr52lm2ZU-49m220nhYMrHDi3vXnh0 This problem can be fixed similarly for Windows ARM64 by observing that V8 frames usually all have the same prolog which maintains a chain via frame pointer (fp or x29 register). stp fp, lr, [sp, ...] One exception is JSEntry which stops fp pointer chain and needs to be handled specially. So it is possible to define XDATA with UNWIND_CODE which specify how Windows should walk through V8 dynamic frames. The same as X64, since V8 Code objects are all allocated in the same code-range for an Isolate, it is possible to register at most 2 XDATA and a group of PDATA entries to cover stack walking for all the code generated inside that code-range. This is more than 1 PDATA/XDATA because according to the Windows ARM64 exeption handling document, 1 PDATA can cover less than 1MB code range (see below doc). https://docs.microsoft.com/en-us/cpp/build/arm64-exception-handling This PR implements stackwalk for Windows ARM64 to be on par with X64, including embedded builtins, jitted code and wasm jitted code, but not including register handler for handling exception only, because there is no backward compatibility to maintain for Windows ARM64 which was released since 1709 windows build. Bug: chromium:893460 Change-Id: Ic74cbdad8af5cf342185030a4c53796f12ea5429 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1701133Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#63002}
-
- 27 May, 2019 2 commits
-
-
Jakob Gruber authored
The win64-specific unwinding info writer should not be part of the generic EmbeddedFileWriter class. Let's hide it in the platform-specific writer. Bug: v8:9103 Change-Id: Ifc4f8b326f07e037b6876e0592cb70b8281edb9a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627536 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#61850}
-
Jakob Gruber authored
Bug: v8:9103 Change-Id: I9a11bd99eb3f2b082749cf6a497ffe759216ad22 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627347 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#61843}
-
- 24 May, 2019 1 commit
-
-
Yang Guo authored
TBR=mvstanton@chromium.org,neis@chromium.org,ahaas@chromium.org Bug: v8:9247 Change-Id: I5433c863a54f3412d73df0d38aba3fdbcfac7ebe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627973 Commit-Queue: Yang Guo <yangguo@chromium.org> Auto-Submit: Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61830}
-
- 22 May, 2019 3 commits
-
-
Jakob Gruber authored
Refactor-only: move the more involved EmbeddedFileWriter methods into the .cc file. Bug: v8:9103 Change-Id: I546c23544a0425a32cbd04cecc759f9b553b7071 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624207 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#61748}
-
Jakob Gruber authored
This is in preparation for better cross-compile support in mksnapshot. Specifically, this CL series will introduce runtime switches to select the target platform for generated embedded.S assembly. Each platform writer will derive from the abstract base class PlatformEmbeddedFileWriterBase. Currently, the code remains functionally unmodified and was just moved to PlatformEmbeddedFileWriterGeneric. This will be split up in future CLs. Bug: v8:9103 Change-Id: Ie7e29bb60ba5a8ff6c0c1edec676943b80a1781b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622854 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#61745}
-
Jakob Gruber authored
The mksnapshot-specific runtime flag --target-arch, together with --target-os, specifies the target platform for the generated embedded.S file. Bug: v8:9103 Change-Id: Icb03a381101e7ab0db4a5fbbf3be8e23ed0b1a1c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624165 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#61739}
-
- 21 May, 2019 1 commit
-
-
Yang Guo authored
Bug: v8:9247 TBR=bmeurer@chromium.org,neis@chromium.org NOPRESUBMIT=true Change-Id: Ia1e49d1aac09c4ff9e05d58fab9d08dd71198878 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621931Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61682}
-
- 20 May, 2019 1 commit
-
-
Yang Guo authored
TBR=verwaest@chromium.org,rmcilroy@chromium.org NOTREECHECKS=true NOPRESUBMIT=true Bug: v8:9247 Change-Id: I9ddfb6e56ca8e47c4ac186a8df5f442d26420a69 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617661 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61642}
-
- 17 May, 2019 2 commits
-
-
Yang Guo authored
This reverts commit 5f285395. Reason for revert: presubmit failure Original change's description: > Move logging and diagnostics related source files > > This also introduces a COMMON_OWNERS file, which is derived from the > current top-level OWNERS file. It is to be used for parts of the > codebase that is not sensitive to domain-specific expertise. > > NOPRESUBMIT=true > TBR=verwaest@chromium.org > > Bug: v8:9247 > Change-Id: I34a5eaa7cb1509a80d15094a2aceedd62665b17c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613987 > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Commit-Queue: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61600} TBR=rmcilroy@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,verwaest@chromium.org Change-Id: I3827c3af4fd63b18aa48c49617f318a01746e813 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9247 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617247Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61601}
-
Yang Guo authored
This also introduces a COMMON_OWNERS file, which is derived from the current top-level OWNERS file. It is to be used for parts of the codebase that is not sensitive to domain-specific expertise. NOPRESUBMIT=true TBR=verwaest@chromium.org Bug: v8:9247 Change-Id: I34a5eaa7cb1509a80d15094a2aceedd62665b17c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613987Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61600}
-
- 15 May, 2019 1 commit
-
-
Clemens Hammacher authored
All macros defined in "format-macros.h" are dead now (after https://crrev.com/c/1613243). This CL removes this header, and includes <cinttypes> instead wherever we use format macros for the types defined in <cstdint>. Plus some drive-by cleanup of includes. R=mlippautz@chromium.org Bug: v8:9183 Change-Id: Ic379759b79edb50e38833defb1577cc3af7c8150 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1611800 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#61540}
-
- 24 Apr, 2019 1 commit
-
-
Clemens Hammacher authored
Use the existing {ArrayVector} method for this, which reads nicer. In some places, I replaced a stack-allocated array by {EmbeddedVector} to avoid the {ArrayVector} call. R=mstarzinger@chromium.org Bug: v8:8834 Change-Id: I5560c07f2775338fefd11acf67a540e003428e74 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1578899Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60975}
-
- 03 Apr, 2019 1 commit
-
-
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}
-
- 20 Mar, 2019 1 commit
-
-
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}
-
- 19 Mar, 2019 2 commits
-
-
Milad Farazmand authored
Due to ppc having a fixed 4 byte instruction length, changing ByteChunk length from 8 to 4 bytes will fix any padding issues while generating the "embed.S" file. Change-Id: Ide799908effd88d5387e97627917b095fcc3051c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1524720 Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#60337}
-
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}
-
- 18 Feb, 2019 1 commit
-
-
Mike Stanton authored
Reason for revert/reland: UBSan complained of unaligned reads. To improve the Torque debugging experience, we can add source positions for each line. This information is carried through the generated CSA code (in <output directory>/gen/torque-generated/*.cc) and embedded as SourcePositions in the Code object. At snapshot time, these SourcePositions are stripped from the Code object and turned into platform-appropriate line number debug information. At this time on Linux, you'll need to build with "is_clang=false" in order to use GCC, because crucial steps are missing in Clang's ability to convey the information into the binary successfully. This CL also introduces a flag to control the existing source information in CSA code. --enable-source-at-csa-bind is now set to false by default because it's a bit confusing to "hop" between source lines in .TQ files and in .CC files. I expect to continue making adjustments there, as I want to provide helpful debugging aids at the CSA level as well as the Torque level. The current configuration prioritizes Torque. TBR=tebbi@chromium.org Bug: v8:8418 Change-Id: Idb80467d3679ec2361386fe9b67597b93d7f72cf Reviewed-on: https://chromium-review.googlesource.com/c/1475763Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#59657}
-
- 24 Jan, 2019 1 commit
-
-
Anna Henningsen authored
Other platforms besides ARM64 Windows may also have alignment requirements, e.g. PPC and s390. These requirements may affect both the code pointer field and the size field, and so they each need alignment directives because they are stored in different sections. Since aligning wastes a handful of bytes at most, not making alignment conditional on the platform type seems like a good idea. Refs: https://github.com/nodejs/node/pull/24875 Change-Id: I1f58606af294be65e74a1f107cd05fc21e032704 Reviewed-on: https://chromium-review.googlesource.com/c/1433778 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#59058}
-
- 22 Jan, 2019 1 commit
-
-
Mike Stanton authored
Now, the CodeAssembler can annotate Nodes with SourcePositions. SourcePositions themselves get a new mode "external," in which they get a file_id, line and column. The file_id is currently maintained in the isolate, mapping to strings for filenames. Additionally, inlining information is ignored at this point, but in the long run I'd like to recognize calls to different CSA functions as manual inlinings. At this point, if you want to see the results in tools like GDB, you'll need to build without clang, and use the GCC toolchain. GN flag is_clang=false will do the trick. Bug: v8:8418 Change-Id: I123cdc041612285fa7d0ba532a625bceeda5d338 Reviewed-on: https://chromium-review.googlesource.com/c/1322954 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#59009}
-
- 28 Nov, 2018 2 commits
-
-
Tom Tan authored
Two Fixes included to make V8 build work for Windows ARM64. 1. Don't emit ".def" and related macros to define function beginning, because they are invalid for Windows ARM64. 2. Set alignment of data section to 8 which is required for instruction which loads element from v8_Default_embedded_blob_. Version 7.2.479 Performance and stability improvements on all platforms. TBR=v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com Change-Id: I0bfea5dd8ed6c1340d11c13dcc2e492e7b22aa8c Reviewed-on: https://chromium-review.googlesource.com/c/1352210Reviewed-by:
v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Cr-Original-Commit-Position: refs/heads/7.2.479@{#1} Cr-Original-Branched-From: a8152aac-refs/heads/master@{#57863} Bug: chromium:893460 Reviewed-on: https://chromium-review.googlesource.com/c/1352791Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Tom Tan <Tom.Tan@microsoft.com> Cr-Commit-Position: refs/heads/master@{#57915}
-
Vasili Skurydzin authored
Bug: v8:8043 Change-Id: Iff786eccd2dcb63e46e331b096d91a6ddb13f851 Reviewed-on: https://chromium-review.googlesource.com/c/1351129Reviewed-by:
Junliang Yan <jyan@ca.ibm.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#57913}
-
- 22 Nov, 2018 1 commit
-
-
Jakob Gruber authored
We recently changed embedded builtins to be emitted as raw assembly files during the build process in order to support MSVC (which doesn't support inline assembly on x64). Ninja uses ml.exe / ml64.exe as the assembler on all Windows builds (msvc & clang); these unfortunately don't support large data streams well and can take over 5 minutes for embedded.S. With this CL we work around this by going back to inlined assembly for clang Windows builds. Bug: v8:6666, v8:8475 Change-Id: I33beb3f5a1df07de3299df0fc2be4e8983701db0 Reviewed-on: https://chromium-review.googlesource.com/c/1344114 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Sergiy Belozorov <sergiyb@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#57726}
-
- 19 Nov, 2018 1 commit
-
-
Jakob Gruber authored
Windows MASM becomes extremely slow when given very large data streams. Runtime behavior is super-linear, with compile times of 5s for 50 KLOC in embedded.S 15s for 100KLOC 40s for 150KLOC Compilation of the 320KLOC file produced for debug builds took more than 5 minutes. This CL reduces compile time by emitting QWORD directives instead, which reduces the emitted debug embedded.S to around 120KLOC and compile times to around 40s. Bug: v8:8475,v8:6666 Change-Id: I19903cdf7d1b70a65c00ca67f40129847b17f386 Reviewed-on: https://chromium-review.googlesource.com/c/1341951Reviewed-by:
Dan Elphick <delphick@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57609}
-
- 15 Nov, 2018 3 commits
-
-
Jakob Gruber authored
This is a reland of 0b13f0f5 Original change's description: > [snapshot] Emit the embedded blob as assembly instead of inline assembly > > The motivation behind this is that MSVC doesn't support inline assembly > on x64. Emitting the embedded blob as a plain assembly file will give us > MSVC support (and possibly faster compilation times as a side-effect). > > Bug: v8:6666,v8:8349 > Change-Id: I2e6cf072faa9ef406fe721a05b63912c655546c2 > Reviewed-on: https://chromium-review.googlesource.com/c/1329205 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Michael Stanton <mvstanton@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57524} Tbr: yangguo@chromium.org,mvstanton@chromium.org Bug: v8:6666, v8:8349 Change-Id: Ib35696b60a9cd01bc2edf459c8e8d84716e3438d Reviewed-on: https://chromium-review.googlesource.com/c/1337733Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57546}
-
Jakob Gruber authored
This reverts commit 0b13f0f5. Reason for revert: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win32%20-%20debug/17373 Original change's description: > [snapshot] Emit the embedded blob as assembly instead of inline assembly > > The motivation behind this is that MSVC doesn't support inline assembly > on x64. Emitting the embedded blob as a plain assembly file will give us > MSVC support (and possibly faster compilation times as a side-effect). > > Bug: v8:6666,v8:8349 > Change-Id: I2e6cf072faa9ef406fe721a05b63912c655546c2 > Reviewed-on: https://chromium-review.googlesource.com/c/1329205 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Michael Stanton <mvstanton@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57524} TBR=yangguo@chromium.org,mvstanton@chromium.org,jgruber@chromium.org Change-Id: I35f7763f86b4de01e74827a95706b969b43af55e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6666, v8:8349 Reviewed-on: https://chromium-review.googlesource.com/c/1337574Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57528}
-
Jakob Gruber authored
The motivation behind this is that MSVC doesn't support inline assembly on x64. Emitting the embedded blob as a plain assembly file will give us MSVC support (and possibly faster compilation times as a side-effect). Bug: v8:6666,v8:8349 Change-Id: I2e6cf072faa9ef406fe721a05b63912c655546c2 Reviewed-on: https://chromium-review.googlesource.com/c/1329205 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#57524}
-