- 01 Nov, 2021 1 commit
-
-
Milad Fa authored
Port: 89933af6 Bug: v8:11112 Change-Id: I59d5cf363e427e7e5157be8c9eb033a11614fad1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3251587Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/main@{#77630}
-
- 26 Oct, 2021 1 commit
-
-
Thibaud Michaud authored
R=ahaas@chromium.org CC=fgm@chromium.org Bug: v8:12191 Change-Id: Ied9ab5fa5009e5ab268d1c9893729d8210ae62ce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3220344 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#77542}
-
- 25 Oct, 2021 1 commit
-
-
Milad Fa authored
variable 'pushed_stack_space' set but not used. Change-Id: I427f76448b9933f9c8f1169709e28eef4512241f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3241543Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/main@{#77526}
-
- 20 Oct, 2021 1 commit
-
-
Milad Fa authored
Port e127f584 Original Commit Message: Handling of class constructors was moved from CallFunction to Call in [1]. When reducing calls with spread we forward varargs directly to CallFunction, if we are spreading to inlined arguments or arguments of the outermost function. In that case we didn't check for class constructors and therefore didn't raise an exception. This CL adds checks for class constructors to all JSCall* nodes in JSCallReducer that missed them before. [1] https://crrev.com/c/3186434 R=pthier@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Change-Id: I02cba90369354f064201daa1bf8812e17cb2dc21 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3234040Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/main@{#77480}
-
- 30 Sep, 2021 1 commit
-
-
Milad Fa authored
Port b9a6301e Original Commit Message: Load instance type into a register instead of using memory operands for several checks on ia32 and x64. R=pthier@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Change-Id: I05ea2bd32ea2a2053b601323813c580d55094e46 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3198130Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/main@{#77179}
-
- 29 Sep, 2021 1 commit
-
-
Milad Fa authored
Port: 1cd7a582 Original Commit Message: Class Constructors are special, because they are callable but [[Call]] raises an exception. Instead of checking if a JS function is a class constructor for every JS function call, this CL adds a new instance type for class constructors. This way we can use a fast instance type range check for the common case, and only check for class constructors in the uncommon case were a class constructor is called and when we need to raise an exception. Change-Id: I578fde90d00d1e80cf36ba28205ce9bfe6830afb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3192422Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/main@{#77147}
-
- 07 Sep, 2021 1 commit
-
-
Milad Fa authored
Port 787bec09 Original Commit Message: Remove the BaselineData intermediate structure for baseline code, and write the baseline Code object into the SharedFunctionInfo directly. We still need a pointer to the BytecodeArray/InterpreterData, so re-use the Code object's deoptimization data slot for this (baseline code doesn't have deoptimization data). A consequence of this is that the BytecodeArray pointer becomes immutable when there is baseline code. This means that we cannot install a debug BytecodeArray while baseline code is active (we have to flush it first), and we can't tier-up code with debug BytecodeArray to baseline. R=leszeks@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Change-Id: I7e0f7d964341774340d27f1890cef4c7d9ee9dda Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3145171Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/main@{#76694}
-
- 12 Aug, 2021 1 commit
-
-
Ross McIlroy authored
These are no longer enabled, so remove the code mitigation logic from the codebase. BUG=chromium:1003890 Change-Id: I536bb1732e8463281c21da446bbba8f47ede8ebe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3045704 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#76256}
-
- 04 Aug, 2021 1 commit
-
-
Milad Fa authored
Port 6e474ae9 Original Commit Message: This CL is a port of https://crrev.com/c/3045349 for ia32 and arm, adding helper methods to drop arguments from the stack. R=pthier@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Change-Id: I7099bd98285eb22cc1cbf3abd634b3479fe9e9d9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3072539Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#76099}
-
- 19 Jul, 2021 2 commits
-
-
Seth Brenith authored
I've noticed a few places where class fields as defined in Torque have different names than the corresponding accessors in the C++ class. I think they should match. Most of this change is just mechanically updating the various places that use k##Field##Offset for those fields. Change-Id: I8ba52aed7f6a1cd6b2d71158f71150b66c2c0da0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3027263 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#75796}
-
Mythri A authored
This is in preparation for baseline code flushing. After a deopt we choose to execute baseline or bytecode based on whether SharedFunctionInfo has any baseline code. With baseline code flushing, it is possible that baseline code is flushed after this point and before we start executing the unoptimized code (for ex: materializing objects). To handle such situations this CL updates the BaselineEnterAt* builtins to check for baseline code and restart either at baseline / bytecode. Bug: v8:11947 Change-Id: I2084e38196c882f802d1186ff8c9ab881a35b16b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3030711 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Patrick Thier <pthier@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#75783}
-
- 30 Jun, 2021 1 commit
-
-
Ross McIlroy authored
Adds support for a seperate dynamic map checks trampoline that takes the feedback vector as an argument rather than reading it from the stack frame, to enable it to work for inlined functions. Plumbs the logic through the compiler to select between these trampolines based on the framestate. BUG=v8:9684,chromium:1224367 Change-Id: Ibc7facdc78930aedec4a102693a926f64f6de7e2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2992724 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#75461}
-
- 28 Jun, 2021 1 commit
-
-
Milad Fa authored
Change-Id: I507ce1132470fe1502a37e82e43c2de323443b22 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2992460Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#75425}
-
- 24 Jun, 2021 1 commit
-
-
Camillo Bruni authored
This is a reland of 2588380d Fixes arm compilation. Original change's description: > [assembler][arm64][arm][ia32] Add more Assembler::CodeComment > > Use more code comments to better document generated assembler code. > This CL also attaches a CodeComment to FrameScope. > > Change-Id: I45afc3e4078dc161316b877fbbd1ae8bcd6e821d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2964392 > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Reviewed-by: Victor Gomes <victorgomes@chromium.org> > Commit-Queue: Camillo Bruni <cbruni@chromium.org> > Cr-Commit-Position: refs/heads/master@{#75277} Change-Id: I150c9166e0d31e4af857f76c567b829d16da87e4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2976651Reviewed-by: Victor Gomes <victorgomes@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#75351}
-
- 21 Jun, 2021 2 commits
-
-
Nico Hartmann authored
This reverts commit 2588380d. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Arm%20-%20debug%20builder/34664/overview Original change's description: > [assembler][arm64][arm][ia32] Add more Assembler::CodeComment > > Use more code comments to better document generated assembler code. > This CL also attaches a CodeComment to FrameScope. > > Change-Id: I45afc3e4078dc161316b877fbbd1ae8bcd6e821d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2964392 > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Reviewed-by: Victor Gomes <victorgomes@chromium.org> > Commit-Queue: Camillo Bruni <cbruni@chromium.org> > Cr-Commit-Position: refs/heads/master@{#75277} Change-Id: I6d36535ca96133cc83b3d6194a3d53889f735499 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972826Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#75278}
-
Camillo Bruni authored
Use more code comments to better document generated assembler code. This CL also attaches a CodeComment to FrameScope. Change-Id: I45afc3e4078dc161316b877fbbd1ae8bcd6e821d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2964392Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Victor Gomes <victorgomes@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#75277}
-
- 18 Jun, 2021 1 commit
-
-
Milad Fa authored
Port f09de17c R=zhin@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Change-Id: I3b8c3df178a281b5195da649048e7c722516fd45 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2971551Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#75257}
-
- 16 Jun, 2021 1 commit
-
-
Milad Fa authored
When pushing/popping registers, we need a way in PPC and S390 to detect if Simd registers need to be pushed or not. On PPC Simd registers are separate from FP registers, hence we need to push them both. If Simd is not available then we push an empty space in place of Simd registers. On S390 the Simd and FP registers are shared. If Simd is available then we only push them and not the FPs, else we push FP registers as well as an empty space the size of FPs as the stack needs to look like as if Simds were saved too. We also need to check if we are generating builtins or call is being made at runtime. We cannot use `SupportsWasmSimd128` when generating builtin as `CpuFeatures` are turned off, so we need to emit the `if/else` manually for checking the value of `SupportsWasmSimd128`. Change-Id: Id149c6578db9c2f92d903fd871d85c648d43ce70 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2958963Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#75188}
-
- 14 Jun, 2021 1 commit
-
-
Camillo Bruni authored
- Convert Builtin to enum class - Change int-based builtin_index methods to use Builtin - Change Builtins::builtin to Builtins::code Change-Id: Id9e3bb83da97e8894ca7ca78e1e852da60675619 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2949104 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#75127}
-
- 11 Jun, 2021 1 commit
-
-
Junliang Yan authored
Port c5d41ae6 Original Message: Migrate the remaining architectures to the new callee save RecordWrite approach. Bug: v8:11420 Change-Id: I20ddf47690203fe9a0cd76dea3a08658582faf9d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2953486 Auto-Submit: Junliang Yan <junyan@redhat.com> Reviewed-by: Milad Fa <mfarazma@redhat.com> Commit-Queue: Junliang Yan <junyan@redhat.com> Cr-Commit-Position: refs/heads/master@{#75104}
-
- 07 Jun, 2021 1 commit
-
-
Camillo Bruni authored
- Add new Builtin enum - Move Builtins::Name:kXXX to Builtin::kXXX - Update existing code Follow CLs will unify the mix of using int builtin-ids and Builtins::Name to only use the new Builtin enum and changing it to an enum class. Change-Id: Ib39aa45a25696acdf147f46392901b1e051deaa4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2905592 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#74995}
-
- 01 Jun, 2021 1 commit
-
-
Camillo Bruni authored
Various behaviour preserving changes that make it easier to switch on callee-saved registers without having to land refactoring code at the same time. - Use MaybeStoreRegisters / MaybeRestoreRegisters - Use CallRecordWriteStubSaveRegisters everywhere for now. Eventually this will be replaced by CallRecordWriteStub in places with fixed registers. - Use WriteBarrierDescriptor::ComputeSavedRegisters, which for now returns the same as allocatable_registers Full x64 implementation: https://crrev.com/c/2922604 Bug: v8:11420 Change-Id: I04e6ac2f6333edc91cb1030a0217f59ad441a1d3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2922250Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#74876}
-
- 12 May, 2021 1 commit
-
-
Junliang Yan authored
Change-Id: I8b7c63ce7438f7a7015ebd4a8d96a976f7d28704 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2892604Reviewed-by: Milad Fa <mfarazma@redhat.com> Commit-Queue: Junliang Yan <junyan@redhat.com> Cr-Commit-Position: refs/heads/master@{#74542}
-
- 11 May, 2021 2 commits
-
-
Milad Fa authored
Port cc06b8c7 Original Commit Message: Convert StoreOrigin, TypeOfMode, SaveFPRegsMode and ArgvMode to enum classes with k-prefixed values. R=cbruni@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Change-Id: I46993e6e846cf7c1f6b3d15ea0aaea3d5693bf4d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2887646Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#74508}
-
Camillo Bruni authored
Convert StoreOrigin, TypeOfMode, SaveFPRegsMode and ArgvMode to enum classes with k-prefixed values. Change-Id: Ib6ca3a9995297e8303a7e013b1d829613c0db510 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2885042Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Reviewed-by: Zhi An Ng <zhin@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#74497}
-
- 10 May, 2021 1 commit
-
-
Camillo Bruni authored
- Share RemeberedSetAction and SmiCheck enums between all platforms. - Convert to enum classes with k-prefixed values Bug: v8:11420 Change-Id: Ib265a229f12a850ea866fd01d8022cbae5e1a9d8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2885040Reviewed-by: Zhi An Ng <zhin@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#74489}
-
- 06 May, 2021 1 commit
-
-
Milad Fa authored
Port dc7906c9 R=victorgomes@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Change-Id: Ic6643492969efcf4113a25a886792038b291cacf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2876987Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#74411}
-
- 21 Apr, 2021 1 commit
-
-
Leszek Swirski authored
Similar to the recent change to --code-comments, make --debug-code a build-time enabled flag, enabled by default on debug builds. This also removes the emit_debug_code() option from the assembler, instead using the flag directly (there were no cases where this option didn't match the global flag). Change-Id: Ic26b0d37b615a055508c9dda099ffbe979eae030 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2843348 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#74095}
-
- 19 Apr, 2021 2 commits
-
-
Milad Fa authored
Port 2871e05c Original Commit Message: This is a reland of ae0752df Reland fixes: * Remove UNREACHABLE() from constexpr switch, since we don't have a CONSTEXPR_UNREACHABLE() (it's ok, the switch is exhaustive for the enum anyway). * Fix IsRegisterArray trait to use public inheritance and size_t for std::array size. Original change's description: > [codegen] Add static interface descriptors > > Add a new CRTP StaticCallInterfaceDescriptor class, which provides > static constexpr getters for a descriptor's registers, parameter counts, > and so on. Each CallInterfaceDescriptor subclass is changed to extend > StaticCallInterfaceDescriptor, with StaticCallInterfaceDescriptor itself > extending CallInterfaceDescriptor to still provide a dynamic lookup > where needed. > > StaticCallInterfaceDescriptor provides a couple of customisation points, > where it reads its CRTP derived descriptor's static fields and > functions, with default fallbacks where appropriate. With these > customisation points, the definition of CallInterfaceDescriptor > subclasses is simplified to: > > a) Providing parameter names (as before) > b) Providing parameter types (as before) > c) Optionally setting flags (like kNoContext or kAllowVarArgs) as > static booleans on the class. > d) Optionally providing a `registers()` method that returns a > std::array<Register, N> of registers that may be used for > parameters (if not provided, this defaults to the implementation > specific default register set). > > Parameter registers (and register count) are automagically set based on > the number of parameters and number of given registers, with extra magic > to ignore no_reg registers (to reduce ia32 special casing). The > CallInterfaceDescriptorData is initialized based on these static > functions, rather than manual per-descriptor initializers. > > This allows us to skip loading descriptors dynamically for CallBuiltin > in Sparkplug, and instead lets us use a bit of template magic to > statically set up arguments for the calls. Any other users of statically > known descriptors will also benefit, thanks to C++ picking the static > methods over the dynamic methods on the base class when available. > > Because we can remove various virtual functions and trigger heavier > inlining of constantly known values, binary size slightly decreases with > this change. > > Note that torque-generated descriptors are changed to use the same magic, > rather than having Torque-specific magic, for consistency. > > Bug: v8:11420 > Change-Id: Icc5e238b6313a08734feb564204a13226b450c22 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2814518 > Auto-Submit: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73996} R=leszeks@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Change-Id: Id854bb901df72787ed225fc8790c3f626121ab3a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2830897Reviewed-by: Junliang Yan <junyan@redhat.com> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#74034}
-
Patrick Thier authored
Rename - InterpreterEnterBytecodeDispatch to InterpreterEnterAtBytecode - InterpreterEnterBytecodeAdvance to InterpreterEnterAtNextBytecode. The reason for renaming is consistency with baseline trampolines that have similar functionality, but the old names didn't fit for baseline very well. Change-Id: I35897972fdd71f3bb0db74820db2b9034144a3c8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2830794Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Auto-Submit: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/master@{#74027}
-
- 15 Apr, 2021 1 commit
-
-
Milad Fa authored
Port 06a2c2e0 Original Commit Message: We currently allow OSR (On-Stack Replacement) of arbitrarily deep return addresses. This is in direct violation of Intel CET's shadow stack, which we plan to enable eventually. This change works around this by postponing OSR until after we return to the old code. The main changes are: - Reserve a slot in Liftoff frames to store the OSR target, - Skip the return address modification, and instead store the new code pointer in the dedicated slot, - Upon returning to the old code, check the slot and do an indirect jump to the new code if needed. CET also prevents indirect jumps to arbitrary locations, so the last point is also a CET violation. Valid indirect jump targets must be marked with the ENDBRANCH instruction, which I will do in a follow-up CL. R=thibaudm@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Change-Id: Id972de1ba7556474cb00b377ea3a38eb4332eae3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2828870Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#73984}
-
- 14 Apr, 2021 1 commit
-
-
Milad Fa authored
Port 885b1ac9 Original Commit Message: Similarly to Windows, on macOS we should touch the memory in a page when allocating stack space that crosses page boundaries. R=victorgomes@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Change-Id: I6d3fc012c5a88e287deb0bb4d78ae001a1318b4b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2826230Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#73954}
-
- 06 Apr, 2021 1 commit
-
-
Milad Fa authored
Port 064ca18c Original Commit Message: This is a reland of b9c521d0. Fixes crashes by calling kInstallBaselineCode from BaselineEntry if needed, i.e. when there is no feedback vector (required a bit of register rejiggling). This can happen with cross-realm calls. The OSR arming is stored as part of the BytecodeArray and therefore shared across realms. Original change's description: > [sparkplug] OSR Ignition -> Sparkplug > > Add support for OSR to baseline code. > We compile baseline and perform OSR immediately when the bytecode budget > interrupt hits. > > Drive-by: Clean-up deoptimizer special handling of JumpLoop by using > the newly introduced GetBaselinePCForNextExecutedBytecode instead of > GetBaselineEndPCForBytecodeOffset. > > Bug: v8:11420 > Change-Id: Ifbea264d4a83a127dd2a11e28626bf2a5e8aca59 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784687 > Commit-Queue: Patrick Thier <pthier@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73677} R=pthier@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Change-Id: I724e8f7a3a2064daae282d892c0e0d6dbd8b691a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2807854Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#73807}
-
- 25 Mar, 2021 1 commit
-
-
Milad Fa authored
This reverts commit d8c6b2ec. Reason for revert: original cl has relanded Original change's description: > Revert "PPC/s390: [sparkplug][deoptimizer] Deoptimize to baseline." > > This reverts commit 94272ea5. > > Reason for revert: original port was reverted > > Original change's description: > > PPC/s390: [sparkplug][deoptimizer] Deoptimize to baseline. > > > > Port bdcd7d79 > > > > Original Commit Message: > > > > If we have baseline code, deoptimize to baseline instead of the > > interpreter. The process is similar to deopting to the interpreter. > > We just use different builtins > > (BaselineEnterAtBytecode/BaselineEnterAtNextBytecode) instead of > > InterpreterEnterBytecodeDispatch/InterpreterEnterBytecodeAdvance, that > > patch an interpreter frame to a baseline frame and continue execution in > > baseline code (based on the deopt type, at the current or next > > bytecode). > > > > R=pthier@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com > > BUG= > > LOG=N > > > > Change-Id: I3230f3f3c6506230b2751a3389f10b022dec61a3 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783022 > > Reviewed-by: Junliang Yan <junyan@redhat.com> > > Commit-Queue: Milad Fa <mfarazma@redhat.com> > > Cr-Commit-Position: refs/heads/master@{#73618} > > Change-Id: I903ad90099c4dc5f153d28aea9246933ac69972b > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784002 > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> > Commit-Queue: Milad Fa <mfarazma@redhat.com> > Cr-Commit-Position: refs/heads/master@{#73630} Change-Id: I7746f42472ae63e49770f491ae6b8ef7b596cfce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2785380 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#73661}
-
- 24 Mar, 2021 1 commit
-
-
Milad Fa authored
This reverts commit 94272ea5. Reason for revert: original port was reverted Original change's description: > PPC/s390: [sparkplug][deoptimizer] Deoptimize to baseline. > > Port bdcd7d79 > > Original Commit Message: > > If we have baseline code, deoptimize to baseline instead of the > interpreter. The process is similar to deopting to the interpreter. > We just use different builtins > (BaselineEnterAtBytecode/BaselineEnterAtNextBytecode) instead of > InterpreterEnterBytecodeDispatch/InterpreterEnterBytecodeAdvance, that > patch an interpreter frame to a baseline frame and continue execution in > baseline code (based on the deopt type, at the current or next > bytecode). > > R=pthier@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com > BUG= > LOG=N > > Change-Id: I3230f3f3c6506230b2751a3389f10b022dec61a3 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783022 > Reviewed-by: Junliang Yan <junyan@redhat.com> > Commit-Queue: Milad Fa <mfarazma@redhat.com> > Cr-Commit-Position: refs/heads/master@{#73618} Change-Id: I903ad90099c4dc5f153d28aea9246933ac69972b No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784002 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#73630}
-
- 23 Mar, 2021 1 commit
-
-
Milad Fa authored
Port bdcd7d79 Original Commit Message: If we have baseline code, deoptimize to baseline instead of the interpreter. The process is similar to deopting to the interpreter. We just use different builtins (BaselineEnterAtBytecode/BaselineEnterAtNextBytecode) instead of InterpreterEnterBytecodeDispatch/InterpreterEnterBytecodeAdvance, that patch an interpreter frame to a baseline frame and continue execution in baseline code (based on the deopt type, at the current or next bytecode). R=pthier@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Change-Id: I3230f3f3c6506230b2751a3389f10b022dec61a3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783022Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#73618}
-
- 11 Mar, 2021 1 commit
-
-
Milad Fa authored
Port 3f9ff062 Original Commit Message: This is a reland of 80f5dfda. A condition in pipeline.cc was inverted, which lead to a CSA verifier error. Original change's description: > [no-wasm] Exclude src/wasm from compilation > > This is the biggest chunk, including > - all of src/wasm, > - torque file for wasm objects, > - torque file for wasm builtins, > - wasm builtins, > - wasm runtime functions, > - int64 lowering, > - simd scala lowering, > - WasmGraphBuilder (TF graph construction for wasm), > - wasm frame types, > - wasm interrupts, > - the JSWasmCall opcode, > - wasm backing store allocation. > > Those components are all recursively entangled, so I found no way to > split this change up further. > > Some includes that were recursively included by wasm headers needed to > be added explicitly now. > > backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc > because it only tests wasm backing stores. This file is excluded from > no-wasm builds then. > > R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org > > Bug: v8:11238 > Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b > Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955 > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73344} R=clemensb@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Change-Id: I006f32407aea051c960f32942f9353f415547116 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2753143Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#73357}
-
- 25 Feb, 2021 1 commit
-
-
Victor Gomes authored
Change-Id: I59b26323bd8d2fd35379fb73c799943315d5422b Bug: v8:11502 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2719564 Commit-Queue: Victor Gomes <victorgomes@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Victor Gomes <victorgomes@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#73042}
-
- 23 Feb, 2021 1 commit
-
-
Milad Fa authored
Port 679af80e Original Commit Message: Avoid duplicating the list of parameter registers to push in the WasmCompileLazy builtin by reusing the existing arrays from wasm-linkage.h. Also verify the computed results against different constants. R=clemensb@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Bug: v8:11377 Change-Id: I7277e865c30d83dd4d13aa501d913fb0d88526b7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2716322Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#72982}
-
- 16 Feb, 2021 1 commit
-
-
Milad Fa authored
Port 89ea44bf Original Commit Message: - Also changes in arm and ia32 for consistency - Removes fall-through since MaybeOptimizeCode never returns R=victorgomes@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Change-Id: I5a91f709f10065692ae654bdd79e6088e1fe88c7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2697388Reviewed-by: Junliang Yan <junyan@redhat.com> Reviewed-by: Victor Gomes <victorgomes@chromium.org> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#72780}
-