- 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 2 commits
-
-
danno authored
R=ishell@chromium.org LOG=N Review-Url: https://codereview.chromium.org/2608433003 Cr-Commit-Position: refs/heads/master@{#41977}
-
ishell authored
... and add explicit CallPrologue/CallEpilogue callbacks to CodeAssemblerState instead. This will allow IntepreterAssembler to use any other helper assembler. TBR=rmcilroy@chromium.org BUG= Review-Url: https://codereview.chromium.org/2600183004 Cr-Commit-Position: refs/heads/master@{#41973}
-
- 16 Dec, 2016 7 commits
-
-
cbruni authored
Many websites use simple calls to String.prototype.indexOf with either a one character ASCII needle or needles bigger than the search string. This CL adds a TFJ builtin for these simple cases, giving up to factor 5 speedup. Drive-by-fix: Add default Object type to Arguments.at BUG= Review-Url: https://codereview.chromium.org/2539093002 Cr-Commit-Position: refs/heads/master@{#41760}
-
ishell authored
[interpreter] Avoid allocation of temporary array of Nodes when generating dispatch to bytecode handler. BUG= Review-Url: https://codereview.chromium.org/2576213007 Cr-Commit-Position: refs/heads/master@{#41759}
-
ishell authored
.. by using variadic templates in CodeAssembler. BUG= Review-Url: https://codereview.chromium.org/2584743003 Cr-Commit-Position: refs/heads/master@{#41755}
-
ishell authored
... by using variadic templates in CodeAssembler. BUG= Review-Url: https://codereview.chromium.org/2579163003 Cr-Commit-Position: refs/heads/master@{#41753}
-
ishell authored
... as they are no longer needed. BUG= Review-Url: https://codereview.chromium.org/2582593005 Cr-Commit-Position: refs/heads/master@{#41750}
-
ishell authored
.. by using variadic templates in CodeAssembler. BUG= Review-Url: https://codereview.chromium.org/2577913003 Cr-Commit-Position: refs/heads/master@{#41749}
-
ishell authored
.. by using variadic templates in CodeAssembler. BUG= Review-Url: https://codereview.chromium.org/2577013003 Cr-Commit-Position: refs/heads/master@{#41746}
-
- 15 Dec, 2016 3 commits
-
-
ishell authored
.. by using variadic templates in CodeAssembler and RawMachineAssembler. BUG= Review-Url: https://codereview.chromium.org/2580823002 Cr-Commit-Position: refs/heads/master@{#41733}
-
ishell authored
The error reported by the graph verifier looks like: # # Fatal error in ../src/compiler/machine-graph-verifier.cc, line 638 # TypeError: node #54:ChangeInt32ToInt64 uses node #53:ChangeUint32ToUint64 which doesn't have an int32-compatible representation. # # Specify option --csa-trap-on-node=test,54 for debugging. # BUG= Review-Url: https://codereview.chromium.org/2574353002 Cr-Commit-Position: refs/heads/master@{#41721}
-
ishell authored
[stubs] Enable machine graph verification for CodeStubAssembler and friends by default in debug mode. BUG= Review-Url: https://codereview.chromium.org/2570213002 Cr-Commit-Position: refs/heads/master@{#41715}
-
- 13 Dec, 2016 1 commit
-
-
ishell authored
[interpreter][stubs] Enable graph verification for bytecode handlers and stubs included into snapshot. BUG= Review-Url: https://codereview.chromium.org/2575473002 Cr-Commit-Position: refs/heads/master@{#41676}
-
- 06 Dec, 2016 1 commit
-
-
ishell authored
This allows us to forward declare Label and Variable classes without including the code-assembler.h. BUG= Review-Url: https://codereview.chromium.org/2551163003 Cr-Commit-Position: refs/heads/master@{#41509}
-
- 05 Dec, 2016 1 commit
-
-
ishell authored
1) CSA::Select() receives lambdas for generating true/false values. The representation parameter made mandatory. 2) CSA::Select[Type]Constant() methods receive true/false nodes directly. These methods are intended to be used for generating "selects" when true/false values are already computed. BUG= Review-Url: https://codereview.chromium.org/2550683003 Cr-Commit-Position: refs/heads/master@{#41483}
-
- 01 Dec, 2016 3 commits
-
-
ishell authored
1) CSA::StoreMap() added which triggers map-specific write barrier unlike StoreObjectField() which triggers the full write barrier. 2) CSA::StoreMapNoWriteBarrier(object, map_root_index) added. 3) StoreMapNoWriteBarrier() is used for storing immortal immovable maps since they don't require write barriers even for objects in old space. BUG= Review-Url: https://codereview.chromium.org/2544793002 Cr-Commit-Position: refs/heads/master@{#41435}
-
ishell authored
... because only MachineRepresentation::kTagged makes sense there. BUG= Review-Url: https://codereview.chromium.org/2544713003 Cr-Commit-Position: refs/heads/master@{#41426}
-
ishell authored
... to avoid confusion. BUG= Review-Url: https://codereview.chromium.org/2546723002 Cr-Commit-Position: refs/heads/master@{#41424}
-
- 30 Nov, 2016 1 commit
-
-
ishell authored
BUG=chromium:666947 Review-Url: https://codereview.chromium.org/2539013002 Cr-Commit-Position: refs/heads/master@{#41390}
-
- 16 Nov, 2016 2 commits
-
-
jkummerow authored
This is in preparation for introducing more specialized CodeStubAssembler subclasses. The state object can be handed around, while the Assembler instances are temporary-scoped. BUG=v8:5628 Original review: https://codereview.chromium.org/2498073002/ Review-Url: https://codereview.chromium.org/2502293002 Cr-Commit-Position: refs/heads/master@{#41028}
-
machenbach authored
Revert of [refactoring] Split CodeAssemblerState out of CodeAssembler (patchset #8 id:140001 of https://codereview.chromium.org/2498073002/ ) Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20shared doesn't want to compile. Missing export annotation? Original issue's description: > [refactoring] Split CodeAssemblerState out of CodeAssembler > > This is in preparation for introducing more specialized > CodeStubAssembler subclasses. The state object can be handed > around, while the Assembler instances are temporary-scoped. > > BUG=v8:5628 TBR=ishell@chromium.org,mstarzinger@chromium.org,jkummerow@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5628 Review-Url: https://codereview.chromium.org/2504913002 Cr-Commit-Position: refs/heads/master@{#41018}
-
- 15 Nov, 2016 1 commit
-
-
jkummerow authored
This is in preparation for introducing more specialized CodeStubAssembler subclasses. The state object can be handed around, while the Assembler instances are temporary-scoped. BUG=v8:5628 Review-Url: https://codereview.chromium.org/2498073002 Cr-Commit-Position: refs/heads/master@{#41015}
-
- 14 Nov, 2016 1 commit
-
-
franzih authored
CodeAssembler::CallRuntime() with 5 arguments was declared but not implemented. BUG= Review-Url: https://codereview.chromium.org/2503523002 Cr-Commit-Position: refs/heads/master@{#40973}
-
- 03 Nov, 2016 1 commit
-
-
danno authored
Review-Url: https://codereview.chromium.org/2467513002 Cr-Commit-Position: refs/heads/master@{#40712}
-
- 02 Nov, 2016 3 commits
-
-
danno authored
In the process, add a more general mechanism for passing around and amending list of CodeStubAssembler Variables. That change makes it possible to more easily add Variables to loops that are generated by utility functions, e.g. BuildFastLoop. LOG=N Review-Url: https://codereview.chromium.org/2461363002 Cr-Commit-Position: refs/heads/master@{#40700}
-
danno authored
This is preparation for using TF to create builtins that handle variable number of arguments and have to remove these arguments dynamically from the stack upon return. The gist of the changes: - Added a second argument to the Return node which specifies the number of stack slots to pop upon return in addition to those specified by the Linkage of the compiled function. - Removed Tail -> Non-Tail fallback in the instruction selector. Since TF now should handles all tail-call cases except where the return value type differs, this fallback was not really useful and in fact caused unexpected behavior with variable sized argument popping, since it wasn't possible to materialize a Return node with the right pop count from the TailCall without additional context. - Modified existing Return generation to pass a constant zero as the additional pop argument since the variable pop functionality LOG=N Review-Url: https://codereview.chromium.org/2446543002 Cr-Commit-Position: refs/heads/master@{#40699}
-
machenbach authored
Revert of [turbofan] Support variable size argument popping in TF-generated functions (patchset #13 id:240001 of https://codereview.chromium.org/2446543002/ ) Reason for revert: Seems to break arm64 sim debug and blocks roll: https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20debug/builds/3294 Original issue's description: > [turbofan] Support variable size argument removal in TF-generated functions > > This is preparation for using TF to create builtins that handle variable number of > arguments and have to remove these arguments dynamically from the stack upon > return. > > The gist of the changes: > - Added a second argument to the Return node which specifies the number of stack > slots to pop upon return in addition to those specified by the Linkage of the > compiled function. > - Removed Tail -> Non-Tail fallback in the instruction selector. Since TF now should > handles all tail-call cases except where the return value type differs, this fallback > was not really useful and in fact caused unexpected behavior with variable > sized argument popping, since it wasn't possible to materialize a Return node > with the right pop count from the TailCall without additional context. > - Modified existing Return generation to pass a constant zero as the additional > pop argument since the variable pop functionality > > LOG=N TBR=bmeurer@chromium.org,mstarzinger@chromium.org,epertoso@chromium.org,danno@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. NOPRESUBMIT=true Review-Url: https://codereview.chromium.org/2473643002 Cr-Commit-Position: refs/heads/master@{#40691}
-
- 31 Oct, 2016 1 commit
-
-
danno authored
This is preparation for using TF to create builtins that handle variable number of arguments and have to remove these arguments dynamically from the stack upon return. The gist of the changes: - Added a second argument to the Return node which specifies the number of stack slots to pop upon return in addition to those specified by the Linkage of the compiled function. - Removed Tail -> Non-Tail fallback in the instruction selector. Since TF now should handles all tail-call cases except where the return value type differs, this fallback was not really useful and in fact caused unexpected behavior with variable sized argument popping, since it wasn't possible to materialize a Return node with the right pop count from the TailCall without additional context. - Modified existing Return generation to pass a constant zero as the additional pop argument since the variable pop functionality LOG=N Review-Url: https://codereview.chromium.org/2446543002 Cr-Commit-Position: refs/heads/master@{#40678}
-
- 25 Oct, 2016 1 commit
-
-
cbruni authored
Object.create(null) is most likely to be used for dictionary-like objects. Hence it would be beneficial to directly create a slow-mode object and avoid additional overhead later-on. BUG= Review-Url: https://codereview.chromium.org/2430273007 Cr-Commit-Position: refs/heads/master@{#40551}
-
- 21 Oct, 2016 1 commit
-
-
jgruber authored
This adds a fast-path for calls to RegExp.prototype[@@replace] for cases in which the given regexp is unmodified and global, and the given replace argument is callable. The fast-path implementation itself is almost identical to the original JS implementation except that it currently does not reuse result_array. SunSpider/unpack-code relies heavily on this codepath. BUG=v8:5339 Review-Url: https://chromiumcodereview.appspot.com/2433923003 Cr-Commit-Position: refs/heads/master@{#40504}
-
- 19 Oct, 2016 1 commit
-
-
jkummerow authored
BUG= Review-Url: https://chromiumcodereview.appspot.com/2403483002 Cr-Commit-Position: refs/heads/master@{#40423}
-
- 18 Oct, 2016 2 commits
-
-
epertoso authored
BranchIf and helpers were introduced when exporting the schedule from the RawMachineAssembler was not ensuring that the CFG was well-form. These methods, that were used to introduce blocks to ensure edge-split form, are now unnecessary. BUG= Review-Url: https://codereview.chromium.org/2426923002 Cr-Commit-Position: refs/heads/master@{#40402}
-
danno authored
In the process: - Add ToString to the CodeStubAssembler and use it where appropriate - Add constant-folding versions of IntPtrAdd/IntPtrSub to simplify code in element offset computation, especially for strings. BUG=chromium:608675 LOG=N Review-Url: https://codereview.chromium.org/2407813002 Cr-Commit-Position: refs/heads/master@{#40379}
-
- 17 Oct, 2016 1 commit
-
-
epertoso authored
BUG= Review-Url: https://codereview.chromium.org/2425723002 Cr-Commit-Position: refs/heads/master@{#40367}
-
- 11 Oct, 2016 1 commit
-
-
epertoso authored
This makes the MachineGraphVerifier happy with the stub. R=jarin@chromium.org BUG= Review-Url: https://codereview.chromium.org/2394193002 Cr-Commit-Position: refs/heads/master@{#40154}
-
- 30 Sep, 2016 1 commit
-
-
jgruber authored
This ports RegExp.prototype.exec to a TurboFan builtin. LastMatchInfo is now stored on the context in order to be able to access it from the stub. Unmodified RegExp instances go through a fast path of accessing the lastIndex property as an in-object field, while modified instances call into runtime for lastIndex loads and stores. Octane/regexp shows slight improvements (between 0 and 5%) with this CL. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2375953002 Cr-Commit-Position: refs/heads/master@{#39899}
-
- 27 Sep, 2016 1 commit
-
-
ishell authored
This CL introduces StoreICTFStub and StoreICTrampolineTFStub and a switch to enable them instead of respective platform stubs. This should ease the split of StoreIC to StoreGlobalIC and StoreIC. StubCache tests now exercise both load and store ICs. BUG=chromium:576312 Review-Url: https://codereview.chromium.org/2163253002 Cr-Commit-Position: refs/heads/master@{#39751}
-
- 21 Sep, 2016 1 commit
-
-
ishell authored
This cleanup is necessary to make HCallWithDescriptor support passing arguments on the stack. BUG=v8:5407 Review-Url: https://codereview.chromium.org/2352163004 Cr-Commit-Position: refs/heads/master@{#39590}
-