- 19 Jul, 2017 1 commit
-
-
Ross McIlroy authored
There remained a few of regressions and we didn't see any significant improvement in the real world with this turned on. This CL reverts all the StringConcat bytecode work which landed. BUG=v8:6243 Change-Id: I832eb72e880ad41411dbec8fe29f71ef0f2025c8 Reviewed-on: https://chromium-review.googlesource.com/575130 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46769}
-
- 11 Jul, 2017 1 commit
-
-
Camillo Bruni authored
Change-Id: Id3989d09f6adfb934842a9b0761d811117d69993 Reviewed-on: https://chromium-review.googlesource.com/567003 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46568}
-
- 14 Jun, 2017 1 commit
-
-
Caitlin Potter authored
Simplifies the implementation of IteratorClose in IteratorBuiltinsAssembler, and makes clear that it is only invoked when an exception occurs. Adds exception handling support to GetIterator, IteratorStep, and IteratorCloseOnException. Moves the Promise.all resolveElement closure and it's caller to builtins-promise-gen.cc. Instead of creating an internal array (and copying its elements into a result array), a single JSArray is allocated, and appended with BuildAppendJSArray(), falling back to %CreateDataProperty(), and elements are updated in the resolve closure the same way. This should always be unobservable. This CL increases the size of snapshot_blob.bin on an x64.release build by 8.51kb BUG=v8:5343 R=cbruni@chromium.org, gsathysa@chromium.org, jgruber@chromium.org, hpayer@chromium.org, tebbi@chromium.org Change-Id: I29c4a529154ef49ad65555ce6ddc2c5b7c9de6b3 Reviewed-on: https://chromium-review.googlesource.com/508473 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#45946}
-
- 07 Jun, 2017 1 commit
-
-
Ross McIlroy authored
Adds support for lowering of ToPrimitiveToString and StringConcat bytecodes to the corresponding builtins. As part of this, moves the interpreter implementation of these operations into the appropriate builtin generators and add builtin support for them. Also adds TailCallRuntimeN operator to code-assembler which enables tail calling a runtime function when the arguments have already been pushed onto the stack. BUG=v8:6243 Change-Id: Id5c851bc42e4ff490d9a23a8990ae331c7eac73e Reviewed-on: https://chromium-review.googlesource.com/515362 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#45756}
-
- 24 May, 2017 1 commit
-
-
Camillo Bruni authored
Change-Id: I5e725f984178c2c9d48ba48c1270faea1b63ff3e Reviewed-on: https://chromium-review.googlesource.com/513943Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#45517}
-
- 15 May, 2017 1 commit
-
-
Camillo Bruni authored
Change-Id: I102558ee4fac29e5bc259117129a47632cc8bd58 Reviewed-on: https://chromium-review.googlesource.com/505508Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#45311}
-
- 29 Apr, 2017 5 commits
-
-
danno authored
This CL changes certain frequently-called Array builtins to use CodeStubArguments rather than peek at the stack frames above array builtins to determine if options arguments have been passed into them. Previous failure likely due to unfortunate/unluckily timed GC that moved due to changed timing/allocation from this CL. Test mitigation for allocation-site-info.js included. BUG=v8:1956 LOG=N Review-Url: https://codereview.chromium.org/2829093004 Cr-Commit-Position: refs/heads/master@{#44998}
-
danno authored
Revert of [turbofan] Avoid going through ArgumentsAdaptorTrampoline for CSA/C++ builtins (patchset #8 id:140001 of https://codereview.chromium.org/2829093004/ ) Reason for revert: Still fails. Likely has to do with gc heap size for allocation site tests, mitigation pending... Original issue's description: > [turbofan] Reland: Avoid going through ArgumentsAdaptorTrampoline for select CSA array builtins > > This CL changes certain frequently-called Array builtins to use CodeStubArguments > rather than peek at the stack frames above array builtins to determine if options > arguments have been passed into them. > > Previous failure cannot be reproed with failing config. Flake? > > BUG=v8:1956 > LOG=N > > Review-Url: https://codereview.chromium.org/2829093004 > Cr-Commit-Position: refs/heads/master@{#44996} > Committed: https://chromium.googlesource.com/v8/v8/+/7ca381e84792b83581d0199dfae2888781785273 TBR=mvstanton@chromium.org,ishell@chromium.org,bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:1956 Review-Url: https://codereview.chromium.org/2851063002 Cr-Commit-Position: refs/heads/master@{#44997}
-
danno authored
This CL changes certain frequently-called Array builtins to use CodeStubArguments rather than peek at the stack frames above array builtins to determine if options arguments have been passed into them. Previous failure cannot be reproed with failing config. Flake? BUG=v8:1956 LOG=N Review-Url: https://codereview.chromium.org/2829093004 Cr-Commit-Position: refs/heads/master@{#44996}
-
danno authored
Revert of [turbofan] Avoid going through ArgumentsAdaptorTrampoline for CSA/C++ builtins (patchset #8 id:140001 of https://codereview.chromium.org/2829093004/ ) Reason for revert: Nosnap failure Original issue's description: > [turbofan] Avoid going through ArgumentsAdaptorTrampoline for select CSA/C++ builtins > > This CL changes certain frequently-called Array builtins to use CodeStubArguments > rather than peek at the stack frames above array builtins to determine if options > arguments have been passed into them. > > BUG=v8:1956 > LOG=N > > Review-Url: https://codereview.chromium.org/2829093004 > Cr-Commit-Position: refs/heads/master@{#44994} > Committed: https://chromium.googlesource.com/v8/v8/+/680356278ddc7577e3b967fcc92055522ce00856 TBR=mvstanton@chromium.org,ishell@chromium.org,bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:1956 Review-Url: https://codereview.chromium.org/2851703005 Cr-Commit-Position: refs/heads/master@{#44995}
-
danno authored
This CL changes certain frequently-called Array builtins to use CodeStubArguments rather than peek at the stack frames above array builtins to determine if options arguments have been passed into them. BUG=v8:1956 LOG=N Review-Url: https://codereview.chromium.org/2829093004 Cr-Commit-Position: refs/heads/master@{#44994}
-
- 21 Apr, 2017 5 commits
-
-
jgruber authored
If we avoid throwing a stack overflow exception from Irregexp code during direct calls, there is no need to construct exit frames before the Irregexp call anymore. As that was the last remaining blocker, we can now implement the entire stub in CSA. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2752143003 Cr-Original-Original-Commit-Position: refs/heads/master@{#44770} Committed: https://chromium.googlesource.com/v8/v8/+/74f2497eae068f85da26904d8c451376c77957bf Review-Url: https://codereview.chromium.org/2752143003 Cr-Original-Commit-Position: refs/heads/master@{#44775} Committed: https://chromium.googlesource.com/v8/v8/+/9c0832eb1aceba625a2443a31d51bcaf550c575a Review-Url: https://codereview.chromium.org/2752143003 Cr-Commit-Position: refs/heads/master@{#44779}
-
jgruber authored
Revert of [regexp] Remove remainder of native RegExpExecStub (patchset #10 id:180001 of https://codereview.chromium.org/2752143003/ ) Reason for revert: More failures on ports: https://build.chromium.org/p/client.v8.ports/builders/V8%20Android%20Arm64%20-%20builder/builds/9123/steps/compile/logs/stdio https://build.chromium.org/p/client.v8.ports/builders/V8%20Mips%20-%20builder/builds/8966/steps/compile/logs/stdio Original issue's description: > [regexp] Remove remainder of native RegExpExecStub > > If we avoid throwing a stack overflow exception from Irregexp code during > direct calls, there is no need to construct exit frames before the Irregexp > call anymore. As that was the last remaining blocker, we can now implement the > entire stub in CSA. > > BUG=v8:5339 > > Review-Url: https://codereview.chromium.org/2752143003 > Cr-Original-Commit-Position: refs/heads/master@{#44770} > Committed: https://chromium.googlesource.com/v8/v8/+/74f2497eae068f85da26904d8c451376c77957bf > Review-Url: https://codereview.chromium.org/2752143003 > Cr-Commit-Position: refs/heads/master@{#44775} > Committed: https://chromium.googlesource.com/v8/v8/+/9c0832eb1aceba625a2443a31d51bcaf550c575a TBR=ishell@chromium.org,mstarzinger@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5339 Review-Url: https://codereview.chromium.org/2832193002 Cr-Commit-Position: refs/heads/master@{#44776}
-
jgruber authored
If we avoid throwing a stack overflow exception from Irregexp code during direct calls, there is no need to construct exit frames before the Irregexp call anymore. As that was the last remaining blocker, we can now implement the entire stub in CSA. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2752143003 Cr-Original-Commit-Position: refs/heads/master@{#44770} Committed: https://chromium.googlesource.com/v8/v8/+/74f2497eae068f85da26904d8c451376c77957bf Review-Url: https://codereview.chromium.org/2752143003 Cr-Commit-Position: refs/heads/master@{#44775}
-
machenbach authored
Revert of [regexp] Remove remainder of native RegExpExecStub (patchset #8 id:140001 of https://codereview.chromium.org/2752143003/ ) Reason for revert: https://build.chromium.org/p/client.v8.ports/builders/V8%20Android%20Arm64%20-%20builder/builds/9118 Original issue's description: > [regexp] Remove remainder of native RegExpExecStub > > If we avoid throwing a stack overflow exception from Irregexp code during > direct calls, there is no need to construct exit frames before the Irregexp > call anymore. As that was the last remaining blocker, we can now implement the > entire stub in CSA. > > BUG=v8:5339 > > Review-Url: https://codereview.chromium.org/2752143003 > Cr-Commit-Position: refs/heads/master@{#44770} > Committed: https://chromium.googlesource.com/v8/v8/+/74f2497eae068f85da26904d8c451376c77957bf TBR=ishell@chromium.org,mstarzinger@chromium.org,jgruber@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5339 Review-Url: https://codereview.chromium.org/2833083002 Cr-Commit-Position: refs/heads/master@{#44771}
-
jgruber authored
If we avoid throwing a stack overflow exception from Irregexp code during direct calls, there is no need to construct exit frames before the Irregexp call anymore. As that was the last remaining blocker, we can now implement the entire stub in CSA. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2752143003 Cr-Commit-Position: refs/heads/master@{#44770}
-
- 19 Apr, 2017 1 commit
-
-
jgruber authored
The StringIndexOf fast path used to be very narrow, only allowing one-byte single-char search strings (and a one-byte subject string). This changes the CSA fast path to call into our internal SearchString C++ function instead (after attempting to unpack both Strings), and can handle strings of arbitrary length and encoding. The only remaining runtime call is when either string needs to be flattened. BUG= Review-Url: https://codereview.chromium.org/2814373002 Cr-Commit-Position: refs/heads/master@{#44718}
-
- 13 Apr, 2017 1 commit
-
-
jkummerow authored
Taking the slow runtime path for every non-internalized string key can be avoided by doing optimistic string table lookups: if there is a matching entry, use that; if there isn't, then no existing object has a property with that name. The hashing/internalizing logic is in C++ and called directly. Review-Url: https://codereview.chromium.org/2811333002 Cr-Commit-Position: refs/heads/master@{#44650}
-
- 11 Apr, 2017 1 commit
-
-
aseemgarg authored
BUG=v8:4614 R=binji@chromium.org,jarin@chromium.org Review-Url: https://codereview.chromium.org/2799863002 Cr-Commit-Position: refs/heads/master@{#44542}
-
- 08 Apr, 2017 1 commit
-
-
ivica.bogosavljevic authored
On those architectures that do support unaligned memory access there is no need to emit heap alignment code in TypedArrayInitialize. BUG=chromium:708545 Review-Url: https://codereview.chromium.org/2802003003 Cr-Commit-Position: refs/heads/master@{#44501}
-
- 06 Apr, 2017 1 commit
-
-
Camillo Bruni authored
Change-Id: I525e29f278c76dbd02cb727d9c70c2d67a47e4c9 Reviewed-on: https://chromium-review.googlesource.com/449676 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#44431}
-
- 31 Mar, 2017 1 commit
-
-
jyan authored
some arch like s390 has native instr can benefit from this. see ~10% improvement on MathAbs on s390 Review-Url: https://codereview.chromium.org/2785773002 Cr-Commit-Position: refs/heads/master@{#44310}
-
- 29 Mar, 2017 1 commit
-
-
Caitlin Potter authored
- Introduce new struct AsyncGeneratorRequest, which holds information pertinent to resuming execution of an AsyncGenerator, such as the Promise associated with the async generator request. It is intended to be used as a singly linked list, and holds a pointer to the next item in te queue. - Introduce JSAsyncGeneratorObject (subclass of JSGeneratorObject), which includes several new internal fields (`queue` which contains a singly linked list of AsyncGeneratorRequest objects, and `await_input` which contains the sent value from an Await expression (This is necessary to prevent function.sent (used by yield*) from having the sent value observably overwritten during execution). - Modify SuspendGenerator to accept a set of Flags, which indicate whether the suspend is for a Yield or Await, and whether it takes place on an async generator or ES6 generator. - Introduce interpreter intrinsics and TF intrinsic lowering for accessing the await input of an async generator - Modify the JSGeneratorStore operator to understand whether or not it's suspending for a normal yield, or an AsyncGenerator Await. This ensures appropriate registers are stored. - Add versions of ResumeGeneratorTrampoline which store the input value in a different field depending on wether it's an AsyncGenerator Await resume, or an ordinary resume. Also modifies whether debug code will assert that the generator object is a JSGeneratorObject or a JSAsyncGeneratorObject depending on the resume type. BUG=v8:5855 R=bmeurer@chromium.org, rmcilroy@chromium.org, jgruber@chromium.org, littledan@chromium.org, neis@chromium.org TBR=marja@chromium.org Change-Id: I9d58df1d344465fc937fe7eed322424204497187 Reviewed-on: https://chromium-review.googlesource.com/446961 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#44240}
-
- 22 Mar, 2017 1 commit
-
-
mvstanton authored
filter creates an output array with the Array species constructor for storing values from the input array that pass the user-supplied predicate function. Our new array builtins are implemented such that if we fall out of the fast path, we'll pick up where we left off in a continuation function. It's important to pass the index of where we left off appending to the output array, because otherwise we will read it at the start of the continuation function. That would be observable, and a spec violation. BUG= Review-Url: https://codereview.chromium.org/2771483002 Cr-Commit-Position: refs/heads/master@{#44023}
-
- 21 Mar, 2017 1 commit
-
-
danno authored
BUG=v8:1956 Review-Url: https://codereview.chromium.org/2752273003 Cr-Commit-Position: refs/heads/master@{#43987}
-
- 16 Mar, 2017 2 commits
-
-
aseemgarg authored
BUG=v8:4614 R=binji@chromium.org Review-Url: https://codereview.chromium.org/2649703002 Cr-Commit-Position: refs/heads/master@{#43878}
-
danno authored
Previous to this CL, CSA-optimized Array builtins--like forEach, some, and every--were written in a single, monolithic block of CSA code. This CL teases the code for each of these builtins apart into two chunks, a main body with optimizations for fast cases, and a "continuation" builtin that performs a spec-compliant, but slower version of the main loop of the builtin. The general idea is that when the "fast" main body builtin encounters an unexpected condition that invalidates assumptions allowing fast-case code, it tail calls to the slow, correct version of the loop that finishes the builtin execution. This separation currently doens't really provide any specific advantage over the combined version. However, it paves the way to TF-optimized inlined Array builtins. Inlined Array builtins may trigger deopts during the execution of the builtin's loop, and those deopt must continue execution from the point at which they failed. With some massaging of the deoptimizer, it will be possible to make those deopt points create an extra frame on the top of the stack which resumes execution in the slow-loop builtin created in this CL. BUG=v8:1956 LOG=N Review-Url: https://codereview.chromium.org/2753793002 Cr-Commit-Position: refs/heads/master@{#43867}
-
- 13 Mar, 2017 1 commit
-
-
Peter Marshall authored
Part of the performance and refactoring work to move the TypedArray constructors into CSA. This CL moves ConstructByArrayBuffer from JS to CSA. BUG=v8:5977 Change-Id: I0a200e6b3f6261ea2372ea9c3d3ca98e313cf2c5 Reviewed-on: https://chromium-review.googlesource.com/451620 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#43747}
-
- 07 Mar, 2017 1 commit
-
-
aseemgarg authored
BUG=v8:4614 R=binji@chromium.org Review-Url: https://codereview.chromium.org/2623633003 Cr-Commit-Position: refs/heads/master@{#43623}
-
- 24 Feb, 2017 1 commit
-
-
caitp authored
Introduce a new Object to allow GetIterator("async") to function when the iterable does not have a Symbol.asyncIterator method. This patch has been split out from https://codereview.chromium.org/2622833002/ and incorporates test cases. BUG=v8:5855, v8:4483 R=jgruber@chromium.org, rmcilroy@chromium.org, neis@chromium.org TBR=hpayer@chromium.org, bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2645313003 Cr-Commit-Position: refs/heads/master@{#43419}
-
- 23 Feb, 2017 1 commit
-
-
Marja Hölttä authored
BUG=v8:5294 Change-Id: If45f25aae8de526027b7851cb4efe0ccf4a7c4b1 Reviewed-on: https://chromium-review.googlesource.com/444226 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#43388}
-
- 22 Feb, 2017 1 commit
-
-
jgruber authored
This should improve readability, code generation, and ensure that we verify such locations are never reached. BUG= Review-Url: https://codereview.chromium.org/2705163005 Cr-Commit-Position: refs/heads/master@{#43367}
-
- 17 Feb, 2017 1 commit
-
-
Igor Sheludko authored
BUG= Change-Id: Ifc441739ef730a0b2278be0b662413c223631a72 Reviewed-on: https://chromium-review.googlesource.com/444190Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43288}
-
- 08 Feb, 2017 1 commit
-
-
cbruni authored
Review-Url: https://codereview.chromium.org/2684043002 Cr-Commit-Position: refs/heads/master@{#43040}
-
- 25 Jan, 2017 1 commit
-
-
jgruber authored
It's a common pattern to create a Variable and immediately initialize it. This adds a new constructor to make that pattern more natural. BUG= Review-Url: https://codereview.chromium.org/2657533003 Cr-Commit-Position: refs/heads/master@{#42649}
-
- 18 Jan, 2017 2 commits
-
-
mattloring authored
FFI Compiler outline based on code stub assembler. We are looking to land this frame to allow specific type translation implementations to proceed in parallel. BUG=v8:4456 Review-Url: https://codereview.chromium.org/2607993003 Cr-Commit-Position: refs/heads/master@{#42475}
-
epertoso authored
CodeAssemblerLabel's destructor was not calling RawMachineLabel's destructor, because label_ is zone-allocated. RawMachineLabel's destructor contains a DCHECK that would make debugging easier. If the DCHECK is not triggered, things will go awry in the register allocation phase, making it harder to debug the issue. BUG= Review-Url: https://codereview.chromium.org/2641863002 Cr-Commit-Position: refs/heads/master@{#42461}
-
- 05 Jan, 2017 1 commit
-
-
franzih authored
Add a feedback vector slot for computed property names in object and class literals. Introduce new slot kind for storing computed property names. Change StaDataPropertyInLiteral to use the accumulator (again), so we don't exceed Bytecodes::kMaxOperands. We assume that most computed property names are symbols. Therefore we should see performance improvements, even if we deal with monomorphic ICs only. This CL only collects feedback but does not use it in Reduce() yet. BUG=v8:5624 Review-Url: https://codereview.chromium.org/2587393006 Cr-Commit-Position: refs/heads/master@{#42082}
-
- 02 Jan, 2017 1 commit
-
-
caitp authored
- Adds CodeAssembler::ConstructJS() to simplify calling JS functions as constructors, used by NewPromiseCapability() - Defines PromiseCapability as a special JSObject subclass, with a non-exensible Map, and read-only non-configurable DataDescriptors which point to its in-object fields. This allows its fields to be used by JS builtins until there is no longer any need. Currently, the performance benefit comes from https://codereview.chromium.org/2567033003/, but does not appear to regress performance in any significant way. BUG=v8:5343 TBR=ulan@chromium.org Review-Url: https://codereview.chromium.org/2567333002 Cr-Commit-Position: refs/heads/master@{#42014}
-
- 28 Dec, 2016 1 commit
-
-
danno authored
R=ishell@chromium.org LOG=N Review-Url: https://codereview.chromium.org/2608433003 Cr-Commit-Position: refs/heads/master@{#41977}
-