- 02 Jun, 2020 1 commit
-
-
Jakob Gruber authored
If --turbo-nci is enabled, use compare op builtins with feedback collection during generic lowering. Bug: v8:8888 Change-Id: I886020e2ee280f65388d9987c70958546f99e0f3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2215821Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#68100}
-
- 28 May, 2020 1 commit
-
-
Georg Neis authored
Change-Id: I20d5d22e424bf2327e201afe4d395939a862bdcd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2218057 Auto-Submit: Georg Neis <neis@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#68032}
-
- 21 May, 2020 1 commit
-
-
Seth Brenith authored
Currently, if d8 is run with the --turbo-profiling flag, it prints info about every TurboFan-compiled function. This info includes the number of times that each basic block in the function was run. It also includes text representations of the function's schedule and code, so that the person reading the output can associate counters with blocks of code. The data about each function is currently stored in a BasicBlockProfiler::Data instance, which is attached to a list owned by the singleton BasicBlockProfiler. Each Data contains an std::vector<uint32_t> which represents how many times each block in the function has executed. The generated code for each block uses a raw pointer into the storage of that vector to implement incrementing the counter. With this change, if you compile with v8_enable_builtins_profiling and then run with --turbo-profiling, d8 will print that same info about builtins too. In order to generate code that can survive being serialized to a snapshot and reloaded, this change uses counters in the JS heap instead of a std::vector outside the JS heap. The steps for instrumentation are as follows: 1. Between scheduling and instruction selection, add code to increment the counter for each block. The counters array doesn't yet exist at this point, and allocation is disallowed, so at this point the code refers to a special marker value. 2. During finalization of the code, allocate a BasicBlockProfilingData object on the JS heap containing data equivalent to what is stored in BasicBlockProfiler::Data. This includes a ByteArray that is big enough to store the counters for each block. 3. Patch the reference in the BuiltinsConstantsTableBuilder so that instead of referring to the marker object, it now refers to this ByteArray. Also add the BasicBlockProfilingData object to a list that is attached to the heap roots so it can be easily accessed for printing. Because these steps include modifying the BuiltinsConstantsTableBuilder, this procedure is only applicable to builtins. Runtime-generated code still uses raw pointers into std::vector instances. In order to keep divergence between these code paths to a minimum, most work is done referring to instances of BasicBlockProfiler::Data (the C++ class), and functions are provided to copy back and forth between that type and BasicBlockProfilingData (the JS heap object). This change is intended only to make --turbo-profiling work consistently on more kinds of functions, but with some further work, this data could form the basis for: - code coverage info for fuzzers, and/or - hot-path info for profile-guided optimization. Bug: v8:10470, v8:9119 Change-Id: Ib556a5bc3abe67cdaa2e3ee62702a2a08b11cb61 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2159738 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#67944}
-
- 11 May, 2020 1 commit
-
-
Seth Brenith authored
This CL is pretty mechanical; I just iterated through some Torque classes making the following changes: - Use @generateCppClass if it seems easy to - Use @generatePrint if the existing printer doesn't do anything special - Fix up any imprecise field types It also includes two minor changes to implementation-visitor: - Add a new -inl.h file with the things needed for torque-generated/class-definitions-tq.cc so we don't need to keep changing the compiler when we add @generateCppClass. - Avoid emitting incorrect accessors for ExternalPointers. This isn't strictly necessary for correctness, as the accessors defined in C++ already hide the ones inherited from generated code, but it makes me feel safer. Change-Id: I4d5a8ba6f86ebff57a0d147619212a3993b087c0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2185824Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#67719}
-
- 22 Apr, 2020 1 commit
-
-
Milad Farazmand authored
Test needs to be removed as discussed under https://crrev.com/c/2099445. Change-Id: If026b54ba5d27aea23cb62fe11688d86bcee9df2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2161388Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#67322}
-
- 21 Apr, 2020 1 commit
-
-
Bill Budge authored
- Adds builtins to convert between Int32/Float64 and JS Number. - WasmInt32ToHeapNumber (bypass SMI test) - WasmFloat64ToNumber - Adds builtins to convert between Tagged and Int32/Float64. - WasmTaggedNonSmiToInt32 (bypass SMI test) - WasmTaggedToFloat64 - Uses these builtins in Wasm import and export wrappers instead of generating the equivalent code inline. Results of running Wasm/import-export-wrappers.js Benchmark: https://docs.google.com/document/d/1QIB0xnqdJFRsOJKQYZ8DZgzWn4WysybgugbcO0sYcQA/edit?usp=sharing NOTE: CL will need to be rebased after linkage fix lands. Bug: v8:10070 Change-Id: Ib34507fcd18bdf80938b5707310a5a4f76cdec72 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2099445Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#67292}
-
- 17 Apr, 2020 1 commit
-
-
Clemens Backes authored
{StaticCharVector}, according to its name, should return a {Vector<const char>}. For getting a {Vector<const uint8_t>}, the method should be called {StaticOneByteVector}, analog to the {OneByteVector} methods that already exist. Also, {StaticCharVector} is constexpr, but {StaticOneByteVector} cannot be, since it contains a {reinterpret_cast}. The same holds for {Vector::cast} in general. This CL - changes the return type of {StaticCharVector} to be {Vector<const char>}, - introduces a new {StaticOneByteVector} which returns {Vector<const uint8_t>}, - fixes constexpr annotations at various methods returning {Vector}s, - refactors users of {StaticCharVector} to either use {StaticOneByteVector} instead, or work on {char} if that makes more sense. R=leszeks@chromium.org Bug: v8:10426 Change-Id: I71e336097e41ad30f982aa6344ca3d67b3a01fe3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2154196 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#67213}
-
- 16 Apr, 2020 1 commit
-
-
Bill Budge authored
- Adds kFPReturnRegister0 for all platforms. - Reworks linkage.cc to assign return registers to the proper register type, using the new FP return register. Bug: v8:10070 Change-Id: I5c876d248de9b825a1c80847ab134881dcda6f04 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2107510Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#67183}
-
- 31 Mar, 2020 1 commit
-
-
Junliang Yan authored
Drive-by: Fix a few BE related issue with ptr-compr enabled. Change-Id: Ic2ff9e69a42e65089a1c1544e5eba1833c2fd95e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2057355Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#66926}
-
- 17 Mar, 2020 1 commit
-
-
Georgia Kouveli authored
Generate a BTI instruction at each target of an indirect branch (BR/BLR). An indirect branch that doesn't jump to a BTI instruction will generate an exception on a BTI-enabled core. On cores that do not support the BTI extension, the BTI instruction is a NOP. Targets of indirect branch instructions include, among other things, function entrypoints, exception handlers and jump tables. Lazy deopt exits can potentially be reached through an indirect branch when an exception is thrown, so they also get an additional BTI instruction. Bug: v8:10026 Change-Id: I0ebf51071f1b604f60f524096e013dfd64fcd7ff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1967315 Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66751}
-
- 12 Mar, 2020 1 commit
-
-
Jakob Kummerow authored
In preparation for adding reference types, which need an additional parameter to indicate the referenced type. Bug: v8:7748 Change-Id: If4023f3d9c7f42ed603b69c43356d2e8b81a0daa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2091471 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66687}
-
- 04 Mar, 2020 1 commit
-
-
Camillo Bruni authored
Drive-by-fix: Add V8_WARN_UNUSED_RESULT to MaybeHandle::ToHandle Bug: chromium:1057653 Change-Id: I2834806ca498a2fa43a64f5391606cdbfb4af4fa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2084814Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#66582}
-
- 21 Feb, 2020 1 commit
-
-
Wouter Vermeiren authored
After support for ARCH_PPC was dropped, it became a subset of ARCH_PPC64. If you compile for ppc64, then you set the ARCH_PPC64 define which also sets the ARCH_PPC define. To be able to again support ppc (32 bit) those defines should be split up again. This commit only splits up the defines but does not introduce a working ARCH_PPC variant. Bug: v8:10102 Change-Id: I64e0749f8e5a7dc078ee7890d92e57b82706a849 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1989826 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Milad Farazmand <miladfar@ca.ibm.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#66390}
-
- 18 Feb, 2020 1 commit
-
-
Georg Neis authored
... in favor of CodeAssembler's ScopedExceptionHandler. Also remove unused exception arguments from some iterator related methods. Bug: v8:10187 Change-Id: I8eb7dfd4eb339e4f566970efa5757c3771926ba6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2060496 Commit-Queue: Georg Neis <neis@chromium.org> Auto-Submit: Georg Neis <neis@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#66306}
-
- 17 Feb, 2020 1 commit
-
-
Santiago Aboy Solanes authored
Bug: v8:6949, v8:10155 Change-Id: I0113efe2d4d3a462533c306a87ebee851b1cb85c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2056853Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#66286}
-
- 14 Feb, 2020 1 commit
-
-
Santiago Aboy Solanes authored
Bug: v8:6949, v8:10155 Change-Id: Id170bafa2a5085bee6ff5b3cff8084254c67e113 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2056846Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#66275}
-
- 20 Jan, 2020 1 commit
-
-
Santiago Aboy Solanes authored
In the case of having: * NodeA(...) * NodeB(NodeA, NodeA), with this being the only use of NodeA. this CL gives A's ownership to B. Before, we used to say that B didn't have ownership of A due to A having two uses. This brings it in line with OwnedBy with two owners check: https://source.chromium.org/chromium/_/chromium/v8/v8.git/+/abd1a0fc04476bbb27ef2dfda2e444cc1467f5f6:src/compiler/node.cc;l=291 Change-Id: I15fdf373136a21bf423e6dffd9588054fd720d72 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2007502Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#65867}
-
- 16 Jan, 2020 1 commit
-
-
Jakob Gruber authored
Function calls can push arguments onto the stack. The consumed stack slots are not considered by the function-entry stack check, since initial frame setup only reserves space for local slots, not call arguments. This CL adds such logic by tracking the maximum pushed argument count during instruction selection, and adding these slots to the (existing) stack check offset logic in code generation. Bug: chromium:1030167 Change-Id: I26a9407cf38009839b1dda2ff0c8ec297c15ed8d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2002540 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#65814}
-
- 13 Jan, 2020 1 commit
-
-
Santiago Aboy Solanes authored
TNodified: * StoreObjectField * StoreObjectFieldNoWriteBarrier Bug: v8:10021 Change-Id: I74b34af410c560a1b005c0b93c71468ef57087fe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1993296 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#65733}
-
- 10 Jan, 2020 1 commit
-
-
Clemens Backes authored
The fuzzers picked up this flag, and are now complaining that they run into UNREACHABLE/FATAL too often because the {PerfJitLogger} is not implemented on non-linux platforms. This CL removes the flag if it's not supported, so users get a warning about the unknown flag, but otherwise it's ignored. This should unblock the fuzzers, and slightly reduces binary size on non-linux. R=ahaas@chromium.org Bug: chromium:1035233 Change-Id: I6b9282318bc82ff23173bc83ae31cb2d8cbdcdb7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1993969 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#65695}
-
- 09 Jan, 2020 1 commit
-
-
Maya Lekova authored
Bug: v8:7790 Change-Id: Idf066adcd5c3dca3004e2eaa0d8fa389755720af Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1991490Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#65671}
-
- 18 Dec, 2019 1 commit
-
-
Thibaud Michaud authored
This is a reland of c509bb8c Original change's description: > Cache native modules in the wasm engine by their wire bytes. This is to > prepare for sharing {Script} objects between multiple {WasmModuleObject} > created from the same bytes. This also saves unnecessary compilation > time and memory. > > R=clemensb@chromium.org > > Bug: v8:6847 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916603 > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65296} R=clemensb@chromium.org Bug: v8:6847 Change-Id: I8839c9ec96dc4141cf3c30916a62ccf86f5463ff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1960287 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65500}
-
- 02 Dec, 2019 2 commits
-
-
Maya Lekova authored
This reverts commit c509bb8c. Reason for revert: Breaks arm64 - sim - MSAN, see https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/30050 Original change's description: > [wasm] Share native modules compiled from the same bytes > > Cache native modules in the wasm engine by their wire bytes. This is to > prepare for sharing {Script} objects between multiple {WasmModuleObject} > created from the same bytes. This also saves unnecessary compilation > time and memory. > > R=clemensb@chromium.org > > Bug: v8:6847 > Change-Id: Iad5f70efbfe3f0f134dcb851edbcec50691677e0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916603 > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65296} TBR=clemensb@chromium.org,thibaudm@chromium.org Change-Id: I908b0f59bce26678d0b5d7fddc986384c40b4709 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6847 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1946334Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#65297}
-
Thibaud Michaud authored
Cache native modules in the wasm engine by their wire bytes. This is to prepare for sharing {Script} objects between multiple {WasmModuleObject} created from the same bytes. This also saves unnecessary compilation time and memory. R=clemensb@chromium.org Bug: v8:6847 Change-Id: Iad5f70efbfe3f0f134dcb851edbcec50691677e0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916603 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65296}
-
- 28 Nov, 2019 2 commits
-
-
Michael Starzinger authored
R=tebbi@chromium.org BUG=v8:10021 Change-Id: I39052fa22ea90b392a36e7841f8586c19c8ca9cf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940156 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#65229}
-
Michael Starzinger authored
This removes the aforementioned untyped method and switches all users to the typed TNode<> version. Those versions now contain proper checks to compare the static information against the return count and types stored in the call descriptor. R=leszeks@chromium.org BUG=v8:10021 Change-Id: I393ea6211babc100e007fb1678877d36efa7bbf7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1939753Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#65225}
-
- 26 Nov, 2019 2 commits
-
-
Clemens Backes authored
Make WasmFeatures a proper class which uses an EnumSet under the hood. This way, it inherits all behaviour of EnumSet like comparison, merge, etc. Accesses change from being simple field access into the struct to actually bit tests in the EnumSet. R=mstarzinger@chromium.org Bug: v8:10019 Change-Id: I768f92b90ac0294156f4482defba5ce00bc70165 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1934334 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#65184}
-
Georg Neis authored
This flag has had no effect since mid 2017 when its use-site was accidentally removed (in https://codereview.chromium.org/2902533003). Change-Id: I81436b064c2664deff781ad6d75ad47937e3fdc0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1934333 Auto-Submit: Georg Neis <neis@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#65172}
-
- 18 Nov, 2019 1 commit
-
-
Ng Zhi An authored
This implements the rest of the load extend instructions: - i32x4.load16x4_s - i32x4.load16x4_u - i64x2.load32x2_s - i64x2.load32x2_u Bug: v8:9886 Change-Id: I4649f77bae5224042a1628d9f0498c050b1e599d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903812Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#65017}
-
- 11 Nov, 2019 1 commit
-
-
Santiago Aboy Solanes authored
Including but not limiting to removing: * BitcastCompressedXXX * CheckedCompressedXXX * ChangeXXXToCompressedYYY * ChangeCompressedXXX As a note, ChangeTaggedToCompressed can't be removed just yet as it is still in use. Bug: v8:7703 Change-Id: I98cf88a32adfa976d419e69702d1cac4d3e811a5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903435 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64880}
-
- 08 Nov, 2019 1 commit
-
-
Ng Zhi An authored
Implements v32x4.load_splat and v64x2.load_splat. Bug: v8:9886 Change-Id: I18f3b012f9980d258985edf2ff26577fe495eff5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903747Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#64866}
-
- 07 Nov, 2019 1 commit
-
-
Clemens Backes authored
This makes the {code_size_estimate} computation explicit in the caller, and removes one of the two {NewNativeModule} constructors. It turns out that the calculation is totally off in the streaming calculation phase, since no function bodies have been parsed yet. So all {WasmFunction::code} fields are still empty, and we compute an estimate that is way too low. This CL prepares the actual fix for that (by computing a better estimate at specific call sites). R=ahaas@chromium.org Bug: v8:9950 Change-Id: I68a891c97e5f65a9c7e73e21684bdfa7e261e216 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1901273 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#64845}
-
- 06 Nov, 2019 1 commit
-
-
Ng Zhi An authored
Introduce new operator LoadTransform that holds a LoadTransformInfo param, which describes the kind of load (normal, unaligned, protected), and a transformation (splat or extend, signed or unsigned). We have a new method that a full decoder needs to implement, LoadTransform, which resuses the existing LoadType we have, but also takes a LoadTransform, to distinguish between splats and extends at the decoder level. This implements 4 out of the 10 suggested load splat/extend operations (to keep the cl smaller), and is also missing interpreter support (will be added in the future). Change-Id: I1e65c693bfbe30e2a511c81b5a32e06aacbddc19 Bug: v8:9886 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1863863Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#64819}
-
- 31 Oct, 2019 1 commit
-
-
Maya Lekova authored
Implement the possibility to revisit the same function in the serializer using equality of its arguments. Bug: v8:7790 Change-Id: I609a6009bf503e378e50d0b32c6f1c13721d2557 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1863198 Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#64683}
-
- 24 Oct, 2019 1 commit
-
-
Mike Stanton authored
Add VirtualBoundFunction to the serializer which takes care of processing the result of Function.prototype.bind. Add cctest and an mjsunit test. Bug: v8:7790 Change-Id: Ic2b48d356cbe3b576eb22f58215cc886a8994e31 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1859625 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#64548}
-
- 21 Oct, 2019 1 commit
-
-
Mike Stanton authored
TurboFan can normally inline an arrow function closure callback like: [1, 2, 3].map(x => x * x); The serializer has information to support this in the form of FunctionBlueprint Hints, though it's not exploiting them. This CL remedies that. Bug: v8:7790 Change-Id: I8fc10f04ffc9bd2ea03cd761e8a5a41258000c76 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1863939Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#64409}
-
- 17 Oct, 2019 1 commit
-
-
Toon Verwaest authored
This is a reland of c7c47c68. This makes TSAN happy in addition to: Previously I presumed that the context read from a frame in the profiler was a valid context. Turns out that on non-intel we're not guaranteed that the frame is properly set up. In the case we looked at, the profiler took a sample right before writing the frame marker indicating a builtin frame, causing the "context" pointer from that frame to be a bytecode array. Since we'll read random garbage on the stack as a possible context pointer, I made the code reading the native context from it a little more defensive. Bug: v8:9860 Tbr: ulan@chromium.org, neis@chromium.org, ishell@chromium.org Original change's description: > [runtime] Move Context::native_context to the map > > Remove the native context slot from contexts by making context maps > native-context-specific. Now we require 2 loads to go from a context to the > native context, but we have 1 field fewer to store when creating contexts. > > Change-Id: I3c0d7c50c94060c4129db684f46a567de6f30e8d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1859629 > Commit-Queue: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Maya Lekova <mslekova@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Cr-Commit-Position: refs/heads/master@{#64296} Change-Id: I4d0ab4cbbb23a9ae616407f17ef8f35a0b68ddb4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864654 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#64360}
-
- 16 Oct, 2019 2 commits
-
-
Sathya Gunasekaran authored
This reverts commit c7c47c68. Reason for revert: breaks TSAN https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/28738 Original change's description: > Reland "[runtime] Move Context::native_context to the map" > > This is a reland of f05bae1e > > Previously I presumed that the context read from a frame in the profiler was > a valid context. Turns out that on non-intel we're not guaranteed that the > frame is properly set up. In the case we looked at, the profiler took a > sample right before writing the frame marker indicating a builtin frame, > causing the "context" pointer from that frame to be a bytecode array. Since > we'll read random garbage on the stack as a possible context pointer, I made > the code reading the native context from it a little more defensive. > > Bug: v8:9860 > > Original change's description: > > [runtime] Move Context::native_context to the map > > > > Remove the native context slot from contexts by making context maps > > native-context-specific. Now we require 2 loads to go from a context to the > > native context, but we have 1 field fewer to store when creating contexts. > > > > Change-Id: I3c0d7c50c94060c4129db684f46a567de6f30e8d > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1859629 > > Commit-Queue: Toon Verwaest <verwaest@chromium.org> > > Reviewed-by: Igor Sheludko <ishell@chromium.org> > > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > > Reviewed-by: Maya Lekova <mslekova@chromium.org> > > Reviewed-by: Georg Neis <neis@chromium.org> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#64296} > > Change-Id: If9461e9b21d35a260d71c79d7f95e518cc429e09 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864930 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Commit-Queue: Toon Verwaest <verwaest@chromium.org> > Auto-Submit: Toon Verwaest <verwaest@chromium.org> > Cr-Commit-Position: refs/heads/master@{#64314} TBR=ulan@chromium.org,neis@chromium.org,petermarshall@chromium.org,ishell@chromium.org,verwaest@chromium.org,mslekova@chromium.org,victorgomes@google.com Change-Id: I4f9edc62ea6f9f5857619ff0ad1a63cab4b33cc3 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9860 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864937Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#64316}
-
Toon Verwaest authored
This is a reland of f05bae1e Previously I presumed that the context read from a frame in the profiler was a valid context. Turns out that on non-intel we're not guaranteed that the frame is properly set up. In the case we looked at, the profiler took a sample right before writing the frame marker indicating a builtin frame, causing the "context" pointer from that frame to be a bytecode array. Since we'll read random garbage on the stack as a possible context pointer, I made the code reading the native context from it a little more defensive. Bug: v8:9860 Original change's description: > [runtime] Move Context::native_context to the map > > Remove the native context slot from contexts by making context maps > native-context-specific. Now we require 2 loads to go from a context to the > native context, but we have 1 field fewer to store when creating contexts. > > Change-Id: I3c0d7c50c94060c4129db684f46a567de6f30e8d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1859629 > Commit-Queue: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Maya Lekova <mslekova@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Cr-Commit-Position: refs/heads/master@{#64296} Change-Id: If9461e9b21d35a260d71c79d7f95e518cc429e09 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864930Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#64314}
-
- 15 Oct, 2019 1 commit
-
-
Sathya Gunasekaran authored
This reverts commit f05bae1e. Reason for revert: broke arm sim debug https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20debug/17714 https://logs.chromium.org/logs/v8/buildbucket/cr-buildbucket.appspot.com/8899519852984476944/+/steps/Check_-_trusted/0/logs/FunctionDetailsInlining/0 Original change's description: > [runtime] Move Context::native_context to the map > > Remove the native context slot from contexts by making context maps > native-context-specific. Now we require 2 loads to go from a context to the > native context, but we have 1 field fewer to store when creating contexts. > > Change-Id: I3c0d7c50c94060c4129db684f46a567de6f30e8d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1859629 > Commit-Queue: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Maya Lekova <mslekova@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Cr-Commit-Position: refs/heads/master@{#64296} TBR=ulan@chromium.org,neis@chromium.org,petermarshall@chromium.org,ishell@chromium.org,verwaest@chromium.org,mslekova@chromium.org,victorgomes@google.com Change-Id: Ie7b4086c3a9ab2627ecac599da36b20cf8d1f948 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1863200Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#64299}
-