- 22 Nov, 2018 40 commits
-
-
Ben L. Titzer authored
Add a profiler for functions imported to WASM instances. This profiler is implemented entirely in JavaScript and monkey-patches WebAssembly.instantiate() and new WebAssembly.Instance() to instrument the imported functions to each instance in order to count their invocations and cumulative time. R=mstarzinger@chromium.org Bug: v8:8423 Change-Id: If456355aba07dc69c5500bafbe35fc56b31486af Reviewed-on: https://chromium-review.googlesource.com/c/1347488 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57746}
-
Junliang Yan authored
Port fed7bb50 Original Commit Message: This test cases ensures that it is possible to maintain a coherent instruction cache by using {Assembler::FlushICache} in any order with respect to changing page permissions via {SetPermissions}. R=mstarzinger@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG=v8:6792 LOG=N Change-Id: I23d5d0828dcbdd527aaa8708fa726a7cb5cbedfe Reviewed-on: https://chromium-review.googlesource.com/c/1347511Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#57745}
-
Igor Sheludko authored
this will allow to add raw fields to the native context in a pointer compression friendly way. This CL also adds a microtask_queue field to native context which will be used in a follow-up CL. Bug: v8:8238, v8:7703 Change-Id: I5ecf72dbc52e8261b694551cbc8476f967967723 Reviewed-on: https://chromium-review.googlesource.com/c/1348073 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#57744}
-
Toon Verwaest authored
Instead, simply track it as a valid binding pattern. To do this in the case of parenthesized formals, we delay throwing the binding pattern error for parenthesized (and async "calls") until we know it's not an arrow function head by itself. This guarantees that if an arrow head is a valid binding pattern, it's either a valid parenthesized head or a valid identifier, or invalid pattern ("array" or "object" literal style). We can detect the latter case by checking that the current token is not a RPAREN and the expression isn't an identifier. (Alternatively we could check that the curren token is RBRACE or RBRACK...) Bug: chromium:907575 Change-Id: Ie40cc3235d3188f2620b6c089a0f49d93604dda6 Reviewed-on: https://chromium-review.googlesource.com/c/1348078Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#57743}
-
George Wort authored
This adds the function call functionality for the arm32 port of Liftoff. Bug: v8:6600 Change-Id: I8ca00b370c629157c91fd9a905f34ea41ec53d29 Reviewed-on: https://chromium-review.googlesource.com/c/1346336Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#57742}
-
George Wort authored
Add a check to bailout in the case when F32 parameters are used for Arm. Bug: v8:6600, chromium:904026, chromium:904606 Change-Id: I7f70c0806994a89dca31ef7e0b68f91d68484936 Reviewed-on: https://chromium-review.googlesource.com/c/1346492 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#57741}
-
Michael Starzinger authored
R=ulan@chromium.org BUG=chromium:845877 Change-Id: If8a9e2f107bb775494b1d4a83c3fb045bb846b10 Reviewed-on: https://chromium-review.googlesource.com/c/1347482Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57740}
-
Jakob Gruber authored
There's no reason to scatter this all over when we have a single choke point in Isolate::Init. Drive-by: Remove unused DLH builtin kind. Bug: v8:8238 Change-Id: I46373a1044e51d90d3a9c3e772f5930d57097937 Reviewed-on: https://chromium-review.googlesource.com/c/1347481Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57739}
-
Jaroslav Sevcik authored
Bug: v8:8361, v8:7790 Change-Id: I1d7a8cba1873efff9d49b12994a1561879d200de Reviewed-on: https://chromium-review.googlesource.com/c/1347487Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#57738}
-
Sigurd Schneider authored
Notry: true Change-Id: I06cbd9a2a49f602dafd43e2d3b4e386d65c7da23 Bug: v8:7327 Reviewed-on: https://chromium-review.googlesource.com/c/1348070Reviewed-by: Daniel Clifford <danno@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#57737}
-
Igor Sheludko authored
Bug: v8:8477, v8:8238 Change-Id: I0b39b0c13c17acd08fc754db1897f00741466122 Reviewed-on: https://chromium-review.googlesource.com/c/1346337Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#57736}
-
Toon Verwaest authored
Bug: chromium:907669 Change-Id: I7633780b1f3a1a290593818a3e558c5a1bb81502 Reviewed-on: https://chromium-review.googlesource.com/c/1347486 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#57735}
-
Sergiy Byelozyorov authored
R=machenbach@chromium.org, mathias@chromium.org Bug: v8:8467 Change-Id: I7369fa993d0762cf9c3c6f55361d074d067a0eb5 Reviewed-on: https://chromium-review.googlesource.com/c/1338347Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Sergiy Belozorov <sergiyb@chromium.org> Cr-Commit-Position: refs/heads/master@{#57734}
-
Marja Hölttä authored
Now that Map just contains a pointer, and is passed by value to Logger::MapDetails, printing the this pointer in Map::PrintMapDetails no longer makes sense, but we need to print the underlying pointer. BUG=v8:3770 Change-Id: I87f41c796dbff7a8800731bb1d63a7482b9ff71c Reviewed-on: https://chromium-review.googlesource.com/c/1347485Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#57733}
-
Toon Verwaest authored
Change-Id: Ibe539f0c90fdcd93ba5da40240c6325138a05bac Reviewed-on: https://chromium-review.googlesource.com/c/1347480Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#57732}
-
Peter Marshall authored
Bug: chromium:906043 Change-Id: I308b29af0644c318d73926b27e65a94913c760c7 Reviewed-on: https://chromium-review.googlesource.com/c/1346115 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57731}
-
Ross McIlroy authored
Now that Asm.js code is also context independent, move code to ensure context independence from BytecodeGenerator to FinalizeUnoptimizedCode. Change-Id: I7738eb3b347ea82764ecd3b5548dc82cb06d2f4e Reviewed-on: https://chromium-review.googlesource.com/c/1347483Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#57730}
-
George Wort authored
This adds stack access functionality for the arm32 port of Liftoff. Bug: v8:6600 Change-Id: I163ab133efc63045f37d1387fd5f32be333bc501 Reviewed-on: https://chromium-review.googlesource.com/c/1346333 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#57729}
-
Clemens Hammacher authored
We were missing a few undefs there. Add a script to auto-generate object-macros-undef.h from object-macros.h and update object-macros-undef.h with the output of that script. R=marja@chromium.org Bug: v8:5402, v8:8238 Change-Id: I6917940dcbfdf68039a25dc7fb8c219fe55adb10 Reviewed-on: https://chromium-review.googlesource.com/c/1345991Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#57728}
-
Ulan Degenbaev authored
This fixes places that assume that DescriptorArray is a WeakFixedArray. In addition to the existing: - LoadDetailsByKeyIndex - LoadValueByKeyIndex - LoadFieldTypeByKeyIndex This introduces Load*ByDescriptorEntry versions and LoadKeyByKeyIndex. Bug: v8:8486 Change-Id: I958867138df7756c715ae3d449b3206a32076514 Reviewed-on: https://chromium-review.googlesource.com/c/1346501 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#57727}
-
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}
-
Dan Elphick authored
Adds a new field rare_data of type FunctionTemplateRareData to FunctionTemplateInfo and moves 8 others which are unset on 90% of FunctionTemplateInfo objects to this field. Getters like prototype_template() are changed to GetPrototypeTemplate() to indicate they're not trivial. The setters are replaced with static methods (e.g. SetPrototypeTemplate) that take an Isolate and the template object, since they can now perform allocation. Bug: v8:8478 Change-Id: If72b132ade4ca4a3f803f913761c9caddc0e9dd6 Reviewed-on: https://chromium-review.googlesource.com/c/1342519 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#57725}
-
Michael Achenbach authored
Many tests were already skipped in debug mode, but they kept running on CQ which sets dcheck_always_on, probably equally slow. Some other tests are marked as slow based on a recent run of the arm64 sim trybot. NOTRY=true Bug: v8:7783 Change-Id: Ic022518edfa112ea6d228ae9a68653c99651dbb4 Reviewed-on: https://chromium-review.googlesource.com/c/1347479Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#57724}
-
Ulan Degenbaev authored
Previosly, LoadArrayElement assumed that the array is a FixedArray. The PropertyArray and WeakFixedArray pretended to be a FixedArray and had static asserts about length offsets. This patch make LoadArrayElement generic and uses a new LoadArrayLength function to fetch the length of the array without hard-coding the length offset. Bug: v8:8486 Change-Id: Ib27132bf3fcecc135ad632c4227c57ca0a05036f Reviewed-on: https://chromium-review.googlesource.com/c/1346498 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#57723}
-
Clemens Hammacher authored
Remove PrintableInstructionSequence and friends, just overload operator<< directly for the respective types. R=herhut@chromium.org Bug: v8:8238 Change-Id: I67713978ab06f7ec5309e52b4090256480f362b1 Reviewed-on: https://chromium-review.googlesource.com/c/1346113Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Stephan Herhut <herhut@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#57722}
-
Jakob Gruber authored
With the last remaining TF code stubs gone, c-s-a.{h,cc} is no longer needed in the final binary. Bug: v8:7777 Change-Id: I8573199401678758698df56e0cb680f125f06bdc Reviewed-on: https://chromium-review.googlesource.com/c/1346329 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#57721}
-
George Wort authored
Bug: v8:6600 Change-Id: I4bf99aeac7336eda8989bc6772d8bd34c44117ea Reviewed-on: https://chromium-review.googlesource.com/c/1346112 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#57720}
-
Jakob Gruber authored
This CL moves the two remaining IC stubs to builtins, generating a dedicated builtin for each KeyedAccessStoreMode variant. Bug: v8:7777 Change-Id: I540b3c3437adb94094771a19713e71ec8a349553 Reviewed-on: https://chromium-review.googlesource.com/c/1346095Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57719}
-
Sigurd Schneider authored
Notry: true Change-Id: I4de1f561682e8ad7fac0358c259efa44559c1389 Bug: v8:7327 Reviewed-on: https://chromium-review.googlesource.com/c/1347477Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#57718}
-
Sigurd Schneider authored
This CL moves optimization capabilities from typed lowering to typed optimization. In particular, this allows retyping of Speculative to number optimizations depending on their input types. This can save type checks if we know that inputs are already in SafeIntegerRange and uses are truncating to 32bit integers. This change recovers the performance lost to 31bit Smis on Octane/crypto on x64: 32bit nosmis avg 30,984.84 stddev 180.52 31bit smis (w/o patch) avg 29,438.52 stddev 120.30 -4.99% 31bit smis avg 31,274.52 stddev 176.26 +0.93% +6.24% Change-Id: I86d6e37305262336f4f7bd46aac0d2cbca11e8c1 Bug: v8:8344 Reviewed-on: https://chromium-review.googlesource.com/c/1323729 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#57717}
-
Sigurd Schneider authored
This should make it possible to load a new graph without reloading Turbolizer. Notry: true Change-Id: Ic6f8bdf7fee658836612043d8893614ae54d7e15 Bug: v8:7327 Reviewed-on: https://chromium-review.googlesource.com/c/1347476 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#57716}
-
Daniel Clifford authored
This is a reland of 74a0ad7d Original change's description: > [torque] Implement intrinsics support > > Also add the first intrinsic and usage of it: %RawCast > > Bug: v8:7793 > Change-Id: Id1e3288e8bab6adb510731076a39590e8fd156be > Reviewed-on: https://chromium-review.googlesource.com/c/1344152 > Commit-Queue: Daniel Clifford <danno@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57692} Bug: v8:7793 Change-Id: I315c7d44f265d0f937598e8afb1c28b08d6a23da Reviewed-on: https://chromium-review.googlesource.com/c/1347472Reviewed-by: Daniel Clifford <danno@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#57715}
-
Jakob Gruber authored
In preparation for converting these stubs to builtins. This turns compile-time elements kind parameters into a runtime check, essentially emitting all contained logic for each elements kinds and dispatching at runtime. Bug: v8:7777 Change-Id: I7a5c97ea2775e9f8ff469db6ab577de6c65c6bbe Reviewed-on: https://chromium-review.googlesource.com/c/1340282 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#57714}
-
Hannes Payer authored
Change-Id: Ie2d740b6b584c5104849e46c1286550c80f1f5c9 Reviewed-on: https://chromium-review.googlesource.com/c/1340252Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#57713}
-
peterwmwong authored
Initial port of Array.p.join came before Torque had exception handling. This small cleanup also simplifies a future CL porting TypedArray.p.join. Bug: v8:7624 Change-Id: I74f3880ee6e87917bc87e41d94be1a83b039384b Reviewed-on: https://chromium-review.googlesource.com/c/1347514Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Cr-Commit-Position: refs/heads/master@{#57712}
-
Yang Guo authored
This reverts commit 1d726111. Reason for revert: This breaks a layout test, and blocks V8 roll https://ci.chromium.org/p/chromium/builders/luci.chromium.try/win7_chromium_rel_ng/135831 Original change's description: > Implement Faster MicrotaskQueue Step 2 > > This is an implementation of https://bit.ly/v8-faster-microtask-queues > step 2. > > This CL overhauls MicrotaskQueue class, the previous one is on V8 heap, > and the new one is on C++ heap. > > Benchmark: > This CL improves a benchmark score around promise by 5~23%. > https://github.com/v8/promise-performance-tests > https://docs.google.com/spreadsheets/d/1HtwZGzUAGJYg87VmYhV9hLdvfddlCtC6Oz0iOj-WwQA/edit#gid=1952666737 > > Bug: chromium:887920, v8:7253 > Change-Id: I1f26e02c45ae60ae39d1ccc168daa98bca4663d9 > Reviewed-on: https://chromium-review.googlesource.com/c/1290751 > Commit-Queue: Taiju Tsuiki <tzik@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Adam Klein <adamk@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57681} TBR=ulan@chromium.org,adamk@chromium.org,yangguo@chromium.org,ishell@chromium.org,bmeurer@chromium.org,tzik@chromium.org Change-Id: I639882a95fe63c029a2e53d610dc4133d1ac48f2 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:887920, v8:7253 Reviewed-on: https://chromium-review.googlesource.com/c/1347473 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#57711}
-
Michael Achenbach authored
This commit adds a --run-skipped flag to the test runner that will bypass the 'SKIP' status. Bug: v8:8485 Change-Id: Iac012bdaf2de6b0f8e44ed3a65bc9330709527bb Reviewed-on: https://chromium-review.googlesource.com/c/1346490 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#57710}
-
Jaroslav Sevcik authored
Bug: v8:8361 Change-Id: If5d7e8dd6c4e800ce6f8b82d197c29111bc8707d Reviewed-on: https://chromium-review.googlesource.com/c/1340296Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#57709}
-
Tao Pan authored
IA support both "push reg" and "push [mem]" assemble instruction. Use OperandGenerator::UseAny() for initializing Operand of kX64Push with should be more willing to use spill slots (Use constraints are marked as register-beneficial; UseAny are not) UnallocatedOperand: :REGISTER_OR_SLOT. That way, the register allocator Change-Id: I8ffd66915c8acd64221182710257232ef19f06d6 Reviewed-on: https://chromium-review.googlesource.com/c/1337312Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#57708}
-
Jaroslav Sevcik authored
With constant field tracking, we get more properties on instance. This negatively affects the common scenario where objects are used as module, i.e., they have large number of constant functions as properties. In that case, we would transition the objects to dictionary mode. Bug: v8:8361 Change-Id: If4831bd081f3c45be651e051e7375eb275d265b4 Reviewed-on: https://chromium-review.googlesource.com/c/1344110 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#57707}
-