- 31 Aug, 2018 3 commits
-
-
jgruber authored
This reorders arguments in preparation for removing ebx from its calling convention (in a follow-up some args will be passed on the stack). Drive-by: Improve readability in the code handling different cases (array,spread,...). Bug: v8:6666 Change-Id: I0160f8efafd0fd0e841739578e01c32b38adb66e Reviewed-on: https://chromium-review.googlesource.com/1196884Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55557}
-
Georg Neis authored
This reverts commit 1c48d52b. Reason for revert: Clusterfuzz found something. Original change's description: > [interpreter] Add bytecode for leading array spreads. > > This CL improves the performance of creating [...a, b] or [...a]. > If the array literal has a leading spread, this CL emits the bytecode > [CreateArrayFromIterable] to create the literal. CreateArrayFromIterable > is implemented by [IterableToListDefault] builtin to create the initial > array for the leading spread. IterableToListDefault has a fast path to > clone efficiently if the spread is an actual array. > > The bytecode generated is now shorter. Bytecode generation is refactored > into to BuildCreateArrayLiteral, which allows VisitCallSuper to benefit > from this optimization also. > For now, turbofan also lowers the bytecode to the builtin. > > The idiomatic use of [...a] to clone the array a now performs better > than a simple for-loop, but still does not match the performance of slice. > > Bug: v8:7980 > > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng > Change-Id: Ibde659c82d3c7aa1b1777a3d2f6426ac8cc15e35 > Reviewed-on: https://chromium-review.googlesource.com/1181024 > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Commit-Queue: Georg Neis <neis@chromium.org> > Commit-Queue: Hai Dang <dhai@google.com> > Cr-Commit-Position: refs/heads/master@{#55520} TBR=rmcilroy@chromium.org,neis@chromium.org,sigurds@chromium.org,gsathya@chromium.org,jgruber@chromium.org,dhai@google.com Change-Id: I1c86ddcc24274da9f5a8dd3d8bf8d869cbb55cb6 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7980 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1199303Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#55544}
-
Benedikt Meurer authored
In the KeyedLoadICGeneric case the engine previously immediately fell back to the %KeyedGetProperty runtime function if the key was not a Name or a valid array index. This turns out to be really slow if a program passes for example objects as keys. Since we already have all the logic in place to convert an arbitrary JavaScript value to a Name, we can just call into ToName first and then operate on the result of that, which is significantly faster since C++ usually doesn't need to call back into JavaScript then to convert a JSReceiver into a Name. This also changes the ToName builtin to use the existing builtin for NonPrimitiveToPrimitive, which stays in JavaScript land completely. Since there's not really a point in inlining ToName into the call sites, the other uses were also changed to call the builtin instead, which saves some space and might also help with instruction cache utilization (especially when the ToName logic is more involved now). This improves the performance on the microbenchmark ```js const n = 1e7; const obj = {}; const key = [1,2]; const start = Date.now(); for (let i = 0; i < n; ++i) { if (obj[key] === undefined) obj[key] = key; } print(`time: ${Date.now() - start} ms.`); ``` by up to 36%. On the ARES-6 ML benchmark the steady state improves by up to ~7% and the overall mean for ARES-6 ML improves by up to ~6%. Further improvements might be possible here if the GetProperty builtin could be made faster for common prototype lookups like Symbol.toPrimitive and the "valueOf" and "toString" functions. Bug: v8:6344, v8:6670 Change-Id: Ic3ac2bc4d4277836ef03039de4eda5c5f66a85da Reviewed-on: https://chromium-review.googlesource.com/1199022 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#55540}
-
- 30 Aug, 2018 2 commits
-
-
Hai Dang authored
This CL improves the performance of creating [...a, b] or [...a]. If the array literal has a leading spread, this CL emits the bytecode [CreateArrayFromIterable] to create the literal. CreateArrayFromIterable is implemented by [IterableToListDefault] builtin to create the initial array for the leading spread. IterableToListDefault has a fast path to clone efficiently if the spread is an actual array. The bytecode generated is now shorter. Bytecode generation is refactored into to BuildCreateArrayLiteral, which allows VisitCallSuper to benefit from this optimization also. For now, turbofan also lowers the bytecode to the builtin. The idiomatic use of [...a] to clone the array a now performs better than a simple for-loop, but still does not match the performance of slice. Bug: v8:7980 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Ibde659c82d3c7aa1b1777a3d2f6426ac8cc15e35 Reviewed-on: https://chromium-review.googlesource.com/1181024Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Commit-Queue: Hai Dang <dhai@google.com> Cr-Commit-Position: refs/heads/master@{#55520}
-
Dan Elphick authored
Use BuiltinAssemblerOptions to generate AssemblerOptions when generating the bytecode handlers (assuming v8_enable_embedded_bytecode_handlers is on). Mark all but InvokeIntrinsic, InvokeIntrinsicWide, InvokeIntrinsicExtraWide, TestIn, TestInWide, TestInExtraWide and TestTypeOf as isolate-independent. The excluded handlers create jump tables which have absolute addresses. Bug: v8:8068 Change-Id: Ia29e9c737ec345193e24fc2aa3684daefb113a9a Reviewed-on: https://chromium-review.googlesource.com/1195508Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#55514}
-
- 28 Aug, 2018 1 commit
-
-
Hai Dang authored
The SharedFeedbackSlot helper class allow bytecodes to share one feedback slot. The helper will only create the slot on-demand, at the first-use. This does not encapsulate the use-case of FeedbackSlotCache. Change-Id: I22aec19d59e52e7395898fa2a59c5c1ec95abbe8 Reviewed-on: https://chromium-review.googlesource.com/1189904 Commit-Queue: Hai Dang <dhai@google.com> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#55452}
-
- 24 Aug, 2018 1 commit
-
-
Dan Elphick authored
This doubles the size of the snapshot since it creates all of the handlers twice (and it doesn't use any of these new ones). However it's all behind a flag. For now all bytecode handlers are marked as being not Isolate independent to prevent snapshot creation failures. Bug: v8:8068 Change-Id: Id49f521445643d9fc6b141353f0a29b585160e10 Reviewed-on: https://chromium-review.googlesource.com/1185100 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#55411}
-
- 23 Aug, 2018 1 commit
-
-
Creddy authored
No need to create allocation site for array literals in oneshot code since they are executed only once. The interpreter emits a runtime call to CreateArrayLiteralWithoutAllocationSite for creating literals in oneshot code instead. Change-Id: I285879c84759ff9e2ce281e9548112f52ce5e7d1 Reviewed-on: https://chromium-review.googlesource.com/1167843Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Chandan Reddy <chandanreddy@google.com> Cr-Commit-Position: refs/heads/master@{#55349}
-
- 21 Aug, 2018 2 commits
-
-
Adam Klein authored
Also update comments that'd gotten unnecessarily verbose over ten years of language development. Bug: v8:8015 Change-Id: I6688ce22e4aa92f66f937159d890b9922f109d43 Reviewed-on: https://chromium-review.googlesource.com/1180357Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#55288}
-
Benedikt Meurer authored
This removes a couple of intrinsics/runtime functions/macros that are no longer needed at all (or not in TurboFan for performance reasons). Bug: v8:8015 Change-Id: I08ae8de7cc63019eb30d3b71dd1c824d6392076a Reviewed-on: https://chromium-review.googlesource.com/1183481Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55277}
-
- 13 Aug, 2018 1 commit
-
-
Camillo Bruni authored
This should make the uses of binary vs. bitwise not very clear: - Word32BinaryNot for logical negation - Word32BitwiseNot for bitwise negation Change-Id: I3345913111da0dbdae6fdf285f090b67eb3f3afc Reviewed-on: https://chromium-review.googlesource.com/1169205 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#55091}
-
- 10 Aug, 2018 1 commit
-
-
Creddy authored
No need to create allocation site for literals in oneshot code since they are executed only once. The interpreter emits a runtime call to CreateObjectLiteralWithoutAllocationSite for creating literals in oneshot code instead. Change-Id: I224b3a30f10361cfe9ff63129b36da8230c5e403 Reviewed-on: https://chromium-review.googlesource.com/1163615 Commit-Queue: Chandan Reddy <chandanreddy@google.com> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#55050}
-
- 09 Aug, 2018 2 commits
-
-
Simon Zünd authored
This CL changes the order of the parameters of HasProperty to be more consistent with other CSA macros. Drive-by-change: Use HasProperty stub directly in Torque. R=jgruber@chromium.org Bug: v8:8015 Change-Id: I73d1096afbb86d52e2af67c1969549f1158448a7 Reviewed-on: https://chromium-review.googlesource.com/1166831 Commit-Queue: Simon Zünd <szuend@google.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#55025}
-
Creddy authored
This is a reland of 690bda84 Original change's description: > [Interpreter] Do not use IC slots for property load/stores in an IIFE and top-level code > > An IIFE or top-level code is executed only once hence, there is no need to collect > type feedback. We can save some memory by not using IC slots for property Loads/Stores > within a IIFE/top-level code. This CL emits Runtime Get/Set property calls instead of LdaNamedProperty > /StaNamedProperty for the property loads within a IIFE and top-level code. > > Change-Id: I3e0ce26d05d82bb3648cb9262c4e112a2c4556c9 > Reviewed-on: https://chromium-review.googlesource.com/1146579 > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Marja Hölttä <marja@chromium.org> > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Chandan Reddy <chandanreddy@google.com> > Cr-Commit-Position: refs/heads/master@{#54949} Change-Id: I7b07ce86f7236d82191caaceafd31b86e5863ff5 Reviewed-on: https://chromium-review.googlesource.com/1167802Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Chandan Reddy <chandanreddy@google.com> Cr-Commit-Position: refs/heads/master@{#55017}
-
- 08 Aug, 2018 1 commit
-
-
Michael Achenbach authored
This reverts commit 690bda84. Reason for revert: Speculative revert for: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8-Blink%20Linux%2064/25372 See more at: https://github.com/v8/v8/wiki/Blink-layout-tests Original change's description: > [Interpreter] Do not use IC slots for property load/stores in an IIFE and top-level code > > An IIFE or top-level code is executed only once hence, there is no need to collect > type feedback. We can save some memory by not using IC slots for property Loads/Stores > within a IIFE/top-level code. This CL emits Runtime Get/Set property calls instead of LdaNamedProperty > /StaNamedProperty for the property loads within a IIFE and top-level code. > > Change-Id: I3e0ce26d05d82bb3648cb9262c4e112a2c4556c9 > Reviewed-on: https://chromium-review.googlesource.com/1146579 > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Marja Hölttä <marja@chromium.org> > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Chandan Reddy <chandanreddy@google.com> > Cr-Commit-Position: refs/heads/master@{#54949} TBR=rmcilroy@chromium.org,adamk@chromium.org,marja@chromium.org,yangguo@chromium.org,cbruni@chromium.org,leszeks@chromium.org,verwaest@chromium.org,chandanreddy@google.com Change-Id: I642164a72453189fd0fe92b69f199f958ce56bef No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/1166782Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#54955}
-
- 07 Aug, 2018 2 commits
-
-
Creddy authored
An IIFE or top-level code is executed only once hence, there is no need to collect type feedback. We can save some memory by not using IC slots for property Loads/Stores within a IIFE/top-level code. This CL emits Runtime Get/Set property calls instead of LdaNamedProperty /StaNamedProperty for the property loads within a IIFE and top-level code. Change-Id: I3e0ce26d05d82bb3648cb9262c4e112a2c4556c9 Reviewed-on: https://chromium-review.googlesource.com/1146579Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Chandan Reddy <chandanreddy@google.com> Cr-Commit-Position: refs/heads/master@{#54949}
-
Tobias Tebbi authored
This enables fast bounds checks on FixedArray's. Change-Id: I0ae57b2c6981d8e1b2c7017ba658fd9c890d2bad Reviewed-on: https://chromium-review.googlesource.com/1163614 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54946}
-
- 25 Jul, 2018 1 commit
-
-
Caitlin Potter authored
Includes fixes for several ClusterFuzz regressions: 1) fix an invalid Handle-cast in ic.cc (chromium:866282) 2) fix for improper accounting of used/unused inobject fields, found by clusterfuzz (chromium:866357). 3) fix number of control outputs for the JSCloneObject operator to be used by IfSuccess and IfException nodes (chromium:866727). 4) fix property constness in out-of-object properties of fast-cloned object to be compatible with DCHECKs in StoreIC (chromium:866861). Also includes the fixups missing from the initial commit, and regression tests BUG=v8:7611, chromium:866282, chromium:866357, chromium:866727, chromium:866861 R=jkummerow@chromium.org, mvstanton@chromium.org TBR=rmcilroy@chromium.org Change-Id: I77220308482f16db2893c0dcebec36530d0f5540 Reviewed-on: https://chromium-review.googlesource.com/1146297 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#54706}
-
- 23 Jul, 2018 1 commit
-
-
Stephan Herhut authored
api.h had an implicit dependency on objects-inl.h. Bug: v8:7490 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I56ef7abefed7205bdbff2aa5f451f1a843bef9f9 Reviewed-on: https://chromium-review.googlesource.com/1145191Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Stephan Herhut <herhut@chromium.org> Cr-Commit-Position: refs/heads/master@{#54616}
-
- 20 Jul, 2018 4 commits
-
-
Sigurd Schneider authored
This reverts commit 29379945. Reason for revert: Needed for other revert: https://chromium-review.googlesource.com/c/v8/v8/+/1145431 Original change's description: > [cleanup] Rename {kLastErrorMessage} to {kNumberOfReasons} > > The name {kLastErrorMessage} is misleading, as it's not actually the > index of the last message (or reason), but one more (i.e. number of > messages / reasons). Thus this renaming. > > R=mstarzinger@chromium.org > > Bug: v8:7754 > Change-Id: Id21edcecac84c0e6068423c6124ef2881116dc7c > Reviewed-on: https://chromium-review.googlesource.com/1145305 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54593} TBR=mstarzinger@chromium.org,clemensh@chromium.org Change-Id: I2af83f4a2299e05ad9bcacfe69c0b483fd1488de No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7754 Reviewed-on: https://chromium-review.googlesource.com/1145520Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#54596}
-
Caitlin Potter authored
As discussed in https://docs.google.com/document/d/1sBdGe8RHgeYP850cKSSgGABTyfMdvaEWLy-vertuTCo/edit?ts=5b3ba5cc#, this CL introduces a new bytecode (CloneObject), and a new IC type. In this prototype implementation, the type feedback looks like the following: Uninitialized case: { uninitialized_sentinel, uninitialized_sentinel } Monomorphic case: { weak 'source' map, strong 'result' map } Polymorphic case: { WeakFixedArray with { weak 'source' map, strong 'result' map }, cleared value } Megamorphic case: { megamorphic_sentinel, cleared_Value } In the fast case, Object cloning is done by allocating an object with the saved result map, and a shallow clone of the fast properties from the source object, as well as cloned fast elements from the source object. If at any point the fast case can't be taken, the IC transitions to the slow case and remains there. This prototype CL does not include any TurboFan optimization, and the CloneObject operation is merely reduced to a stub call. It may still be possible to get some further improvements by somehow incorporating compile-time boilerplate elements into the cloned object, or simplifying how the boilerplate elements are inserted into the object. In terms of performance, we improve the ObjectSpread score in JSTests/ObjectLiteralSpread/ by about 8x, with substantial improvements over the Babel and ObjectAssign scores. R=gsathya@chromium.org, mvstanton@chromium.org, rmcilroy@chromium.org, neis@chromium.org, bmeurer@chromium.org BUG=v8:7611 Change-Id: I79e1796eb77016fb4feba0e1d3bb9abb348c183e Reviewed-on: https://chromium-review.googlesource.com/1127472 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#54595}
-
Clemens Hammacher authored
The name {kLastErrorMessage} is misleading, as it's not actually the index of the last message (or reason), but one more (i.e. number of messages / reasons). Thus this renaming. R=mstarzinger@chromium.org Bug: v8:7754 Change-Id: Id21edcecac84c0e6068423c6124ef2881116dc7c Reviewed-on: https://chromium-review.googlesource.com/1145305 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54593}
-
Marja Hölttä authored
BUG=v8:7754,v8:5402 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I5306005e7d0fcfe188c9e0270a003c6e1098c9e9 Reviewed-on: https://chromium-review.googlesource.com/1144824Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#54578}
-
- 12 Jul, 2018 1 commit
-
-
Leszek Swirski authored
With ReadOnlyRoots and GetIsolate on JSReceiver, we can remove almost every isolate parameter from <Object>::Print. The remaining ones, like Map, are special-caseable for read-only maps, and as a result we can remove isolate parameters from <Object>::Print entirely. This patch also opportunistically cleans up a few places where isolates were only needed for Object::Print, such as TransitionAccessors and DescriptorArrays. TBR=yangguo@chromium.org,mstarzinger@chromium.org Bug: v8:7786 Change-Id: Id44bd53b9893e679eea5f37b9548257595a1bfd9 Reviewed-on: https://chromium-review.googlesource.com/1133385Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54401}
-
- 06 Jul, 2018 1 commit
-
-
Sigurd Schneider authored
This CL surfaces AssemblerOptions to CodeAssembler::GenerateCode and to pipeline methods. To allow forward declaring AssemblerOptions, AssemblerBase::Options was moved out of the AssemblerBase class. Bug: v8:6666 Change-Id: If9fc50d3d4767bb5dd39a0c3b6e094021f4cae2b Reviewed-on: https://chromium-review.googlesource.com/1127039 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#54286}
-
- 05 Jul, 2018 1 commit
-
-
Creddy authored
* Rename BoilerplateDescription to ObjectBoilerplateDescription * Add literal_type flag to ObjectBoilerplateDescription, which is stored as zeroth element of Fixed array * Create ArrayBoilerplateDescription with elements_kind and constant_elements field * Replace CompileTimeValue and ConstantElementPair with ArrayBoilerplateDescription * Kill ConstantElementPair and CompileTimeValue Change-Id: Icb42dcfd575a27e2b64ffd5e2e61f9d703d5e986 Bug: v8:7787, chromium:818642 Reviewed-on: https://chromium-review.googlesource.com/1122411 Commit-Queue: Chandan Reddy <chandanreddy@google.com> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#54272}
-
- 04 Jul, 2018 2 commits
-
-
Dan Elphick authored
In future the RO_SPACE root accessors in Heap will become private, so instead convert them all to use ReadOnlyRoots. Bug: v8:7786 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I4a5fb4bc70169874d003d9c31f1713f52e2bba93 Reviewed-on: https://chromium-review.googlesource.com/1126118Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#54216}
-
Igor Sheludko authored
This is a preliminary step before changing the way we store zone pointers in the zones. Bug: v8:7903, v8:7754 Change-Id: I1e1af1823766c888ee0f8fe190f205f5b7e21973 Reviewed-on: https://chromium-review.googlesource.com/1118887Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#54193}
-
- 02 Jul, 2018 1 commit
-
-
Creddy authored
This promotes CompileTimeValue as a seperate struct instead of FixedArray. This reduces the heap object size by one word (size field of FixedArray) Change-Id: Id09d9e04c4c1a98aa9fa53b1a44ec17e8cd06f34 Bug: v8:7787, chromium:818642 Reviewed-on: https://chromium-review.googlesource.com/1119918 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#54135}
-
- 26 Jun, 2018 1 commit
-
-
Dan Elphick authored
All Object::Print functions now take an Isolate* parameter. Various XX::XXPrint functions now take an Isolate if it's needed rather than calling GetIsolate(). Such method use DECL_PRINTER_WITH_ISOLATE rather than DECL_PRINTER. The _v8_internal_Print_ function (intended for use in gdb) now uses Isolate::Current() to get hold of an Isolate. Reduces the GetIsolate and GetHeap count by 9 and 5 respectively. Also removes unneeded gdb/lldb macros (along with their support functions), jfv, jfm, jda and jta, since job does the same thing. Bug: v8:7786 Change-Id: Ib93ebca6ca47c4db9c85cc6d9ff8004da5942dec Reviewed-on: https://chromium-review.googlesource.com/1112001 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54029}
-
- 22 Jun, 2018 1 commit
-
-
Georg Neis authored
Use V8_INLINE and V8_NOINLINE instead. R=sigurds@chromium.org TBR=yangguo@chromium.org TBR=hpayer@chromium.org Change-Id: I1ccfcdc2178ded15ec730ab0577c4fc96a76a4f9 Reviewed-on: https://chromium-review.googlesource.com/1111840 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#53966}
-
- 21 Jun, 2018 1 commit
-
-
Igor Sheludko authored
Bug: v8:7754, v8:6600 Change-Id: I4db943d4a4a02a14bba670f89661ea98c5e306dd Reviewed-on: https://chromium-review.googlesource.com/1107919 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53907}
-
- 20 Jun, 2018 1 commit
-
-
Creddy authored
This is a reland of 380dba0a Original change's description: > [runtime][gc] Drop AllocationSite::weak_next field for sub-literals > > Use AllocationSite without Weaknext field for all the allocations in nested > literal except for Root. The nested field is sufficient to link all the > allocations in a nested literal. Only the Root is added to heap weak_alloc_list > for GC to traverse > > Change-Id: I946e63292c6d168197cd2a087f697c73cc431272 > Reviewed-on: https://chromium-review.googlesource.com/1101323 > Commit-Queue: Chandan Reddy <chandanreddy@google.com> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53813} Change-Id: Ic451fb3600b87f8f69748b1659ff89a80c9322fa Reviewed-on: https://chromium-review.googlesource.com/1106257Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Chandan Reddy <chandanreddy@google.com> Cr-Commit-Position: refs/heads/master@{#53872}
-
- 18 Jun, 2018 2 commits
-
-
Clemens Hammacher authored
Currently each isolate stores its own array of {CallInterfaceDescriptorData}. This array has size 173, and each entry has 40 bytes. That's already 7kB per isolate. Additionally, each {CallInterfaceDescriptorData} allocates two heap-allocated arrays, which probably add up to more than the static size of the {CallInterfaceDescriptorData}. Note that all the {CallInterfaceDescriptorData} instances are initialized eagerly on isolate creation. Since {CallInterfaceDescriptor} is totally isolate independent itself, this CL refactors the current design to avoid a copy of them per isolate, and instead shares them process-wide. Still, we need to free the allocated heap arrays when the last isolate dies to avoid leaks. This can probably be refactored later by statically initializing more and avoiding the heap allocations all together. This refactoring will also allow us to use {CallInterfaceDescriptor}s from wasm background compilation threads, which are not bound to any isolate. R=mstarzinger@chromium.org, titzer@chromium.org Bug: v8:6600 Change-Id: If8625b89951eec8fa8986b49a5c166e874a72494 Reviewed-on: https://chromium-review.googlesource.com/1100879 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#53803}
-
Leszek Swirski authored
Return the raw Object* when accessing the constant pool of bytecode with the bytecode array accessor, to avoid needing an isolate there. If the returned value needs to be a handle, we create the handle later. Bug: v8:7786 Change-Id: Ifeac2a06f0383230bf7e9bfc1b751d9750ecfb51 Reviewed-on: https://chromium-review.googlesource.com/1102334 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#53784}
-
- 14 Jun, 2018 3 commits
-
-
jgruber authored
The stack check instruction sequence is pattern-matched in instruction-selector-{ia32,x64}.cc and replaced with its own specialized opcode, for which we later generate an efficient stack check in a single instruction. But this pattern matching has never worked for CSA-generated code. The matcher expected LoadStackPointer in the right operand and the external reference load in the left operand. CSA generated exactly vice-versa. This CL does a few things; it 1. reverts the recent change to load the limit from smi roots: Revert "[csa] Load the stack limit from smi roots" This reverts commit 507c29c9. 2. tweaks the CSA instruction sequence to output what the matcher expects. 3. refactors stack check matching into a new StackCheckMatcher class. 4. typifies CSA::PerformStackCheck as a drive-by. Bug: v8:6666,v8:7844 Change-Id: I9bb879ac10bfe7187750c5f9e7834dc4accf28b5 Reviewed-on: https://chromium-review.googlesource.com/1099068Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#53737}
-
Clemens Hammacher authored
This is a reland of 0909dbe3. Added missing V8_EXPORT_PRIVATE to AndroidLogStream. TBR=mstarzinger@chromium.org Original change's description: > Introduce StdoutStream which prints to Android log or stdout > > The often used construct {OFStream(stdout)} does not work on Android. > This CL introduces an {StdoutStream} which behaves exactly like > {OFStream(stdout)} on non-android platforms, and redirects to the > Android log on appropriate systems and configurations. > > R=mstarzinger@chromium.org > > Bug: v8:7820 > Change-Id: Ia682fdf6d064e37c605c19b032f5a10b96ac825b > Reviewed-on: https://chromium-review.googlesource.com/1088911 > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53692} Bug: v8:7820 Change-Id: I8164bad78a401dbe4246c9ffcacd050fe511ed58 Reviewed-on: https://chromium-review.googlesource.com/1100636Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53733}
-
Michael Achenbach authored
This reverts commit 0909dbe3. Reason for revert: Blocks roll: https://chromium-review.googlesource.com/c/chromium/src/+/1099143 Original change's description: > Introduce StdoutStream which prints to Android log or stdout > > The often used construct {OFStream(stdout)} does not work on Android. > This CL introduces an {StdoutStream} which behaves exactly like > {OFStream(stdout)} on non-android platforms, and redirects to the > Android log on appropriate systems and configurations. > > R=mstarzinger@chromium.org > > Bug: v8:7820 > Change-Id: Ia682fdf6d064e37c605c19b032f5a10b96ac825b > Reviewed-on: https://chromium-review.googlesource.com/1088911 > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53692} TBR=mstarzinger@chromium.org,jarin@chromium.org,jgruber@chromium.org,clemensh@chromium.org,bmeurer@chromium.org Change-Id: Iadadd9a0df10dca0fad647138a83db50148e864d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7820 Reviewed-on: https://chromium-review.googlesource.com/1100635Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#53725}
-
- 13 Jun, 2018 1 commit
-
-
Clemens Hammacher authored
The often used construct {OFStream(stdout)} does not work on Android. This CL introduces an {StdoutStream} which behaves exactly like {OFStream(stdout)} on non-android platforms, and redirects to the Android log on appropriate systems and configurations. R=mstarzinger@chromium.org Bug: v8:7820 Change-Id: Ia682fdf6d064e37c605c19b032f5a10b96ac825b Reviewed-on: https://chromium-review.googlesource.com/1088911Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53692}
-
- 12 Jun, 2018 1 commit
-
-
Igor Sheludko authored
Bug: v8:7754 Change-Id: I11845f84c5e837d3d7323c4a932c36af08b61a8e Reviewed-on: https://chromium-review.googlesource.com/1096940Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#53670}
-