- 03 Apr, 2019 33 commits
-
-
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}
-
Sigurd Schneider authored
Bug: v8:9020 Change-Id: I45f85807132fc9278e90b4cfc7f0dc8326870dfe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1541046 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#60612}
-
Z Duong Nguyen-Huu authored
Bug: v8:6831 Change-Id: I7d51a49dfbf2e5a1fa2675fe0d70bb4091a4db78 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1544274Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Cr-Commit-Position: refs/heads/master@{#60611}
-
Frederik Gossen authored
Merged WasmCode::Tier into Execution Tier. Bug: v8:9003 Change-Id: I0ad439b8bc060f73e71d60ab9c93dd6bc18d05fe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547852 Commit-Queue: Frederik Gossen <frgossen@google.com> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60610}
-
Clemens Hammacher authored
Even though both are allowed in the style guide, it recommends to use 'using', as its syntax is more consistent with the rest of C++. This CL turns all typedefs in interpreter code to 'using' declarations. R=leszeks@chromium.org Bug: v8:8834 Change-Id: Ide1e8a35a56a840b36b3ceab1307df1bcab94acd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1545900Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60609}
-
Clemens Hammacher authored
This CL enables adding code to the top-most {WasmCodeRefScope} when either adding code to the {NativeModule} (we have a nice choke point for that in {PublishCodeLocked}), or when looking up existing code from a {NativeModule}. It also enables the DCHECK that for each such operation, there must be an enclosing {WasmCodeRefScope}. R=titzer@chromium.org Bug: v8:8217 Change-Id: Ie93ca0b31b1577bef074923b3d228a9f214a909c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533861 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60608}
-
Benedikt Meurer authored
When TurboFan optimizes field access, we need to check first that the runtime already determined the correct field representation properly. If the field representation is still None, we cannot optimize this in TurboFan straight away but we have to call the IC to let the runtime do the magic. Bug: chromium:944865 Change-Id: I032a48824e83806e1be7670346f518b258a9dd65 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1549167Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60607}
-
Simon Zünd authored
The native flag is a left-over from self-hosted JavaScript. Currently only the empty function and empty script are marked native. This CL removes the native flag from the ParseInfo, UnoptimizedCompilationInfo and its handling in the bytecode generator. R=leszeks@chromium.org Bug: v8:8834,v8:9043 Change-Id: I60726e28ce83cc84249e9c49bdc88d81f0a695c9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1545079Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#60606}
-
Clemens Hammacher authored
Using the Isolate's allocator when creating the WasmModule can lead to use-after-free situations when the NativeModule is shared across Isolates. R=mstarzinger@chromium.org Bug: v8:9079 Change-Id: I5a564852179cc5b9d4cbad2a002d3b6e14b01968 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1550404Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60605}
-
Benedikt Meurer authored
This adds new timed histograms to measure the time that TurboFan spends on various compilation phases on a per function bases. This includes the following new counters: - V8.TurboFanOptimizePrepare Time spent in the preparation phase of TurboFan optimization. Recorded on each regular optimization of a function. - V8.TurboFanOptimizeExecute Time spent in the execution phase of TurboFan optimization. Recorded on each regular optimization of a function. - V8.TurboFanOptimizeFinalize Time spent in the finalization phase of TurboFan optimization. Recorded on each regular optimization of a function. - V8.TurboFanOptimizeTotalForeground Total time spent on the main thread during TurboFan optimization. Recorded on each regular optimization of a function. - V8.TurboFanOptimizeTotalBackground Total time spent on a background thread during TurboFan optimization. Recorded on each regular optimization of a function. - V8.TurboFanOptimizeTotalTime Total time from starting optimizing to installing the code object. Recorded on each regular optimization of a function. - V8.TurboFanOptimizeForOnStackReplacementPrepare Time spent in the preparation phase of TurboFan optimization for On Stack Replacement (OSR). Recorded on each optimization for on-stack replacement of a function. - V8.TurboFanOptimizeForOnStackReplacementExecute Time spent in the execution phase of TurboFan optimization for On Stack Replacement (OSR). Recorded on each optimization for on-stack replacement of a function. - V8.TurboFanOptimizeForOnStackReplacementFinalize Time spent in the finalization phase of TurboFan optimization for On Stack Replacement (OSR). Recorded on each optimization for on-stack replacement of a function. - V8.TurboFanOptimizeForOnStackReplacementTotalTime Total time from starting optimizing for On Stack Replacement (OSR) to installing the code object. Recorded on each optimization for on-stack replacement of a function. This should give us a good overview and guide/validate future work on the concurrent optimization pipeline. Bug: v8:7790, v8:9074 Change-Id: I96573cd1da472684d06624b7573e4afd6efca99c Doc: http://doc/1umgFxjLQ9p22lVS_BdhmAlo1o9xnxnWlhVi_HMWNktM Cq-Include-Trybots: luci.chromium.try:linux-blink-rel Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547864 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#60604}
-
Mythri A authored
With lazy feedback allocation we load the interrupt budget from the ClosureFeedbackCellArray instead of the bytecode array. The factory method that constructs the ClosureFeedbackCellArray ensures we have a field for interrupt budget. So, it is safe to omit bounds check here. Including the bounds check increases the size of all jump bytecode handlers by around ~120 bytes. This translates to ~9-10KB of the native code size on Android. Bug: chromium:948835 Change-Id: I8e10b3f630097728ae9e520bfb0d85dfc0f806ea Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1550403Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#60603}
-
Jaroslav Sevcik authored
On arm processors, we need to have some kind of subexpression elimination running after memory optimizer, so that we reuse index calculation for loads and stores. This CL introduces a small cleanup phase after memory optimizer. Bug: chromium:947225 Change-Id: Ifda7b348d968d58f31947a4ba139863059f4112d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547664Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#60602}
-
Michael Starzinger authored
This seals any surrounding {HandleScope} when the interpreter enters the main interpreter loop. It ensures that there are no accidental leaks of handles into the surrounding scope and enforces that operations dealing with handles open their own scope. R=clemensh@chromium.org Change-Id: I43d479129bef60beb7565022b24577f8bf1dc522 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1550401Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60601}
-
Peter Marshall authored
Bug: v8:8834 Change-Id: I1d7451a6306bc34e6254383fd79e8411bffd26ce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1545894Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#60600}
-
Clemens Hammacher authored
Reading --verify_predictable makes me sad, whereas --verify-predictable makes me happy. This CL introduces more happiness. R=machenbach@chromium.org Bug: v8:8834 Change-Id: Id51a75f32e6d5a2f87aed81e058a8b6dff189758 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1550399Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60599}
-
Michael Starzinger authored
This adds preliminary support for handling the "br_on_exn" opcode in the interpreter. It also makes "catch" and "rethrow" use a proper exception reference instead of a dummy value. To that end this also adds {Handle<>} as a new kind of {WasmValue} which is intended to pass reference values (e.g. "anyref" or "except_ref") to the runtime system. Therefore lifetime of such a {WasmValue} is directly coupled to any surrounding {HandleScope}. For now we just store {Handle<>} directly on the simulated operand stack of the interpreter. This is of course bogus, since the surrounding scope does not outlive the interpreter activation. Decoupling the lifetime of the operand stack from a {HandleScope} will be done in a follow-up CL. As a drive-by this change also implements support for the "ref_null" and the "ref_is_null" opcodes as a proof-of-concept that the new {WasmValue} is also applicable to the "anyref" reference type. R=clemensh@chromium.org TEST=cctest/test-run-wasm-interpreter/ReferenceTypeLocals BUG=v8:8091,v8:7581 Change-Id: I2307e0689a19c4aab1d67f1ba6742cb3cc31aa3c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1550299 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60598}
-
Daniel Clifford authored
In the process turn the Torque's Arguments type into a real struct and add interoperability with it and CSA's CodeStubArguments. This change is motivated by the desire to include Arguments in structs (e.g. iterators), which is not possible for constexpr fields. Bug: v8:7793 Change-Id: I840538b84c4c58fee75e0b9cd3bdbb3b96a6b948 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1549162 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#60597}
-
Maciej Goszczycki authored
Bug: v8:8834 Change-Id: Iac747d915f50c64bb91ca7b8365a51d96eacd2ed Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1549161Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Maciej Goszczycki <goszczycki@google.com> Cr-Commit-Position: refs/heads/master@{#60596}
-
Toon Verwaest authored
- Use IsInRange - Convert scale to index using >>1 which works for 1, 2, 4 - Use mask to check Reads/Writes accumulator Change-Id: Iaeb2236a2d179dc70b62fa599c08984800170336 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1541039 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#60595}
-
v8-ci-autoroll-builder authored
Rolling v8/base/trace_event/common: https://chromium.googlesource.com/chromium/src/base/trace_event/common/+log/c69a8ff..ebb658a Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/a72af28..c2f2e5a Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/5b63b1f..e1fc0b0 Rolling v8/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/8d3ba46..865445e Rolling v8/third_party/googletest/src: https://chromium.googlesource.com/external/github.com/google/googletest/+log/a18ac39..b617b27 Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/82dbc02..b823d94 TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org Change-Id: If24d37b7a86a73dcb3526e0a75513b0659758aa7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1549791Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#60594}
-
Clemens Hammacher authored
During instantiation, exceptions can be thrown when looking up the imports, e.g. because of proxies. If the exception is thrown internally, before actually calling out to JS code, it won't be externally caught. This CL removes the DCHECK that errornously checked that a pending exception was externally caught. R=mstarzinger@chromium.org Bug: chromium:948228 Change-Id: Idbdb340167c1943f78397cc9b310ef5743755726 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547855Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60593}
-
Daniel Clifford authored
Const-qualified fields are allowed in both classes and structs. In both cases, const fields can only be set via initialization during construction. Drive-by: unitialized -> uninitialized Bug: v8:7793 Change-Id: Idec08df30f7897c756b7dd6f2b10bb6012fefb6a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547853 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#60592}
-
Frederik Gossen authored
The tiers are now consistently referred to as baselin and top tier. Bug: v8:9003 Change-Id: I74ad1867aca63bee9eb83b7f0f9fbaf2b1523dcb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547667 Commit-Queue: Frederik Gossen <frgossen@google.com> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60591}
-
Andrew Comminos authored
Adds the notion of a "source type" to CpuProfileNode instances, hinting at the underlying source of the function or state that resulted in the generation of the node. Bug: v8:9001 Change-Id: Ie14c54d41b99eb02f54b423fa5d939e9d7f63785 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1510576 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#60590}
-
Sigurd Schneider authored
This CL uses MemCopy in CopyElements, because we think that the input FixedArrays can never overlap. This CL also adds a DCHECK to ensure this. If our assumption is wrong, it will be interesting to learn why. Change-Id: Ib8258b934f43b82b1281481c592762e43b35938f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1549154 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60589}
-
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}
-
Santiago Aboy Solanes authored
Includes both changing from compressed pointers and to compressed pointers. Also added tests to the representation changer test B Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng,v8_linux64_arm64_pointer_compression_rel_ng Bug: v8:8977 Change-Id: I8a13f6b7ec2208442aa354949173cc9061bce168 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533866Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#60587}
-
Michael Starzinger authored
This introduces a helper class for the immediates to a "br_on_exn" instruction. It is basically a wrapper around a pair of existing immediates to simplify PC offset calculations. This is similar to what is being done for e.g. {MemoryCopyImmediate} already. R=clemensh@chromium.org BUG=v8:8091 Change-Id: I85a552baa6bfa78304abc6cf9509aef365d47057 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547865Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60586}
-
Clemens Hammacher authored
Even though both are allowed in the style guide, it recommends to use 'using', as its syntax is more consistent with the rest of C++. This CL turns all typedefs in src/regexp to 'using' declarations. R=jgruber@chromium.org Bug: v8:8834 Change-Id: I2765c3465fec7e8c42c3a84b924522f220ab5676 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1545904Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60585}
-
Clemens Hammacher authored
All standard containers provide a method named {empty} to check whether the container is empty. On {base::Vector}, that method is named {is_empty}, while {empty} is an unused factory method for creating an empty {Vector}. This CL renames {is_empty} to {empty} and removes the unused factory method. R=leszeks@chromium.org Bug: v8:8834 Change-Id: I686bd07527801fbe783c412bc241221d8ec3660a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547862 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#60584}
-
Michael Lippautz authored
They are already filtered by the incremental marker. Change-Id: If43a16d54a2b0eb7d6a36482d3439fc7191c31a6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1549160 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60583}
-
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 7 commits
-
-
Sathya Gunasekaran authored
Bug: v8:7317 Change-Id: I54c0505bcdd4354a896a317ce756bc7121f61d48 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1548580Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#60580}
-
Michael Lippautz authored
Adds the following UMA counters: - V8.GCMarkingSum: Overall time spent in marking per GC cycle - V8.GCMainThreadMarkingThroughput: Overall marking throughput considering marking time spent on the main thread and allocated bytes after GC. Only reported if more than 1MB of live objects have been marked in the cycle. Bug: chromium:945806 Change-Id: I24a37bf59f02da9aba984bed9de62fdb39be8882 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547657 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60579}
-
Mythri A authored
There was a negation missing in the check. Bug: chromium:948559 Change-Id: I54cfdd8b83771d80aebe506e4c2793cef301e48b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1549164 Auto-Submit: Mythri Alle <mythria@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#60578}
-
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}
-
Sigurd Schneider authored
This reverts commit d746be9c. Reason for revert: Speculative revert because this CL *might* cause timeouts on several bots: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20predictable/23351 Original change's description: > [wasm] Use work-stealing queues for background compilation > > This reduces contention on the mutex protecting the {CompilationState} > by splitting the compilation unit queues into several queues (one per > background task). Each task executes its own queue first, and steals > from other queues once it runs out of work. > The implementation of the set of work-stealing queues is encapsulated > in the new {CompilationUnitQueues} class in module-compiler.cc. > > R=titzer@chromium.org > > Bug: v8:8916 > Change-Id: I5a40314917e7d4a35d7ff9e8ec124ec212beacab > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1543350 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60572} TBR=mstarzinger@chromium.org,titzer@chromium.org,clemensh@chromium.org Change-Id: I92d8862ec0ff0002160a62ed9df9b044fc95c93d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8916 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1549166Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#60576}
-
peterwmwong authored
This is a reland of 660d8287 Original change's description: > [debug] Mark toLocaleString and TA#join builtins as side-effect free. > > Bug: chromium:940373 > Change-Id: If5f90ff5f873f0687c6a6a4063e0d09d6bbbd556 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533157 > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> > Cr-Commit-Position: refs/heads/master@{#60440} Bug: chromium:940373 Change-Id: I03fe4c06cad9848db211739170462d52ce3f7acf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1538791Reviewed-by: Simon Zünd <szuend@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Cr-Commit-Position: refs/heads/master@{#60575}
-
Igor Sheludko authored
... which doesn't respect address hints when reserving an address space region and therefore makes it impossible to fulfill V8 heap alignment requirements. As a workaround we just overreserve address space to ensure that we will be able to find a properly aligned 4GB subregion. Bug: v8:7703 Change-Id: Ibf54e5e13131c2640a448944e3a3bae937c8b938 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547861 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#60574}
-