- 22 May, 2019 1 commit
-
-
Yang Guo authored
Bug: v8:9247 Change-Id: I79e0553e8a0d6dac2aa16b94a6c0e05b6ccde4a1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621934 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#61725}
-
- 09 May, 2019 1 commit
-
-
Santiago Aboy Solanes authored
Going back on https://chromium-review.googlesource.com/c/v8/v8/+/1480382 since now 'tagged' means 'full tagged' again. I am keeping the access builder since that seems useful to have (as opposed to building the access builder in the implementation). Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng Bug: v8:8977, v8:7703, v8:9206 Change-Id: I7c38b090190aa1c3e91c5ab9f729588aeae2dc1b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1594439 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#61371}
-
- 22 Feb, 2019 1 commit
-
-
Santiago Aboy Solanes authored
This now makes it so TurboFan now uses full pointer loads for arguments values located on stack. Bug: v8:8876, v8:7703 Change-Id: Ib82d6f3b0f4c8d33669c7f86ce803381d210c019 Reviewed-on: https://chromium-review.googlesource.com/c/1480382Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#59798}
-
- 02 Jan, 2019 1 commit
-
-
Clemens Hammacher authored
Apart from being more in-line with the style guide, this allows to use DEFINE_LAZY_LEAKY_OBJECT_GETTER for defining {TypeCache::Get}. R=tebbi@chromium.org Bug: v8:8562 Change-Id: I016b28624950ce9404180fc1ca1a232551f75cd0 Reviewed-on: https://chromium-review.googlesource.com/c/1392201Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58500}
-
- 19 Dec, 2018 1 commit
-
-
Igor Sheludko authored
Bug: v8:8477, v8:8562 Change-Id: I0dab49a03b74abc68600885f4951c5cb727a3d73 Reviewed-on: https://chromium-review.googlesource.com/c/1366736Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#58364}
-
- 24 Aug, 2018 1 commit
-
-
Tobias Tebbi authored
[turbofan] escape analysis: remove TypeGuard renamings of dematerialized allocations from the effect chain Change-Id: Ie7b43feda381647523cb8cc3e7965823d3006063 Reviewed-on: https://chromium-review.googlesource.com/1188140Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#55386}
-
- 30 Apr, 2018 1 commit
-
-
Jaroslav Sevcik authored
This removes Type::operator-> which was used to split the change that removed undefined misuse of Type* to represent integers. Bug: v8:3770 Change-Id: I9a5bce5ccdc75461a7b939b4070cb58fe6040d99 Reviewed-on: https://chromium-review.googlesource.com/1033736Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#52878}
-
- 28 Apr, 2018 1 commit
-
-
Jaroslav Sevcik authored
This is part of the effort to decrease the amount of undefined behavior. that v8 relies on. The main change here is to represent types with class Type rather than with pointer Type*. To make the CL smaller, I used an operator overload hack to separate the change from `->` to `.`. I am working on a CL that will remove the operator and change all those arrows to dots. Bug: v8:3770 Change-Id: I71a197cb739a1467937bc95c2a757fab0469aa22 Reviewed-on: https://chromium-review.googlesource.com/1032551 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#52872}
-
- 05 Mar, 2018 2 commits
-
-
Sigurd Schneider authored
Bug: v8:7517, v8:7310 Change-Id: I438bc933d51062bfbb9a419be9c5b67032707fdb Reviewed-on: https://chromium-review.googlesource.com/946090 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51726}
-
Sigurd Schneider authored
This also introduces FrameStateInfoOf helper. Bug: v8:7517, v8:7310 Change-Id: If2dd1257fb9384fe957a980077a65154cc014d3b Reviewed-on: https://chromium-review.googlesource.com/946009 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51718}
-
- 13 Feb, 2018 1 commit
-
-
Camillo Bruni authored
FATAL(...) avoid creating literal strings for line number in release mode. Bug: v8:7310 Change-Id: I6a3e329adce36b0efcc240068f6a241d1cca4b6f Reviewed-on: https://chromium-review.googlesource.com/915066Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#51277}
-
- 17 Jan, 2018 1 commit
-
-
Tobias Tebbi authored
We need to maintain TypeGuard nodes until the EffectControlLinearizer, because they can protect partial operations from floating above a check. In the linked bug, it was a DeadValue node that got scheduled too early. In LoadElimination and EscapeAnalysis, the inserted TypeGuard nodes might depend on map checks on the effect chain. Thus TypeGuard has to be an effect chain node too. Bug: chromium:800929 Change-Id: Icdcff96a2273d96b7f8cd6f85511ad62c1cb129a Reviewed-on: https://chromium-review.googlesource.com/860405Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#50661}
-
- 14 Nov, 2017 1 commit
-
-
Michael Stanton authored
This reverts commit f010b28f. Reason for revert: Introduces a clusterfuzz issue and CAnary crash Original change's description: > [TurboFan] Diagnostic code to track down bug in representation selection > > We need to characterize the types of dead (IrOpcode::kDead) nodes > introduced in compilation phases prior to representation selection. > Normally, a dead node isn't expected at the start of this phase. The > question is, which phase introduced the dead node and failed to > deal with it properly? > > Bug: chromium:780658 > Change-Id: Ief5b45480bb7d704a2d09dafd60b5d389e0fd42e > Reviewed-on: https://chromium-review.googlesource.com/765968 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Commit-Queue: Michael Stanton <mvstanton@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49328} TBR=mvstanton@chromium.org,mstarzinger@chromium.org Change-Id: I5d628eb1de630ce4a353b6ef0f80fd74ad740f17 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:780658 Reviewed-on: https://chromium-review.googlesource.com/768747Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#49347}
-
- 13 Nov, 2017 1 commit
-
-
Mike Stanton authored
We need to characterize the types of dead (IrOpcode::kDead) nodes introduced in compilation phases prior to representation selection. Normally, a dead node isn't expected at the start of this phase. The question is, which phase introduced the dead node and failed to deal with it properly? Bug: chromium:780658 Change-Id: Ief5b45480bb7d704a2d09dafd60b5d389e0fd42e Reviewed-on: https://chromium-review.googlesource.com/765968Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#49328}
-
- 25 Sep, 2017 1 commit
-
-
Clemens Hammacher authored
Use the (D)CHECK_{EQ,NE,GT,...} macros instead of (D)CHECK with an embedded comparison. This gives better error messages and also does the right comparison for signed/unsigned mismatches. This will allow us to reenable the readability/check cpplint check. R=jarin@chromium.org Bug: v8:6837 Change-Id: I712580c2a4326e06ee3d6d0eb4ff8c7d24f5fdb9 Reviewed-on: https://chromium-review.googlesource.com/671227 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#48135}
-
- 04 Sep, 2017 1 commit
-
-
Michael Starzinger authored
This adds support for the backing store of mapped arguments objects to escape analysis. It also unifies two simplified operators representing allocations of these backing stores into a single {NewArgumentsElements} operator and threads through the "mapped count" to the deoptimizer. R=tebbi@chromium.org Change-Id: I1864e29a5703348597b7b2e41deaf5fab73e2c93 Reviewed-on: https://chromium-review.googlesource.com/643208 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#47800}
-
- 30 Aug, 2017 1 commit
-
-
Tobias Tebbi authored
Bug: Change-Id: Ib9e0d0844ad5e7bc6cd038f736546cad77669321 Reviewed-on: https://chromium-review.googlesource.com/641530Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#47699}
-
- 03 Aug, 2017 1 commit
-
-
Ben L. Titzer authored
R=mstarzinger@chromium.org Bug: Change-Id: I95acea7b33a6e5799399d0891b2a52103f5e4964 Reviewed-on: https://chromium-review.googlesource.com/598072Reviewed-by: Ben Titzer <titzer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#47116}
-
- 03 Mar, 2017 1 commit
-
-
tebbi authored
Following the design of https://codereview.chromium.org/2692753004, also compute the arguments length in the deoptimizer sucht that it does not have to be computed in optimized code. R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2729163002 Cr-Commit-Position: refs/heads/master@{#43587}
-
- 28 Feb, 2017 2 commits
-
-
tebbi authored
R=bmeurer@chromium.org BUG= Review-Url: https://codereview.chromium.org/2680973013 Cr-Original-Commit-Position: refs/heads/master@{#43163} Committed: https://chromium.googlesource.com/v8/v8/+/f01c8a6e4b24ab38e58bb141fc251bc6b75dbe21 Review-Url: https://codereview.chromium.org/2680973013 Cr-Commit-Position: refs/heads/master@{#43478}
-
tebbi authored
The new NewUnmappedArgumentsElements node now takes two inputs: - the frame holding the arguments (current frame or arguments adaptor frame) - the length of the suffix of passed arguments to be copied into the backing store These inputs are computed with two new node types: ArgumentsFrame() ArgumentsLength[formal_parameter_count,is_rest_length](Node* arguments_frame) The node type NewRestParameterElements can now be expressed with NewUnmappedArgumentsElements and an appropriate length and is thus not needed anymore. In escape analysis, we lower loads from the length field of NewUnmappedArgumentsElements with its length input and if we find out that no write access to the arguments elements exists, we replace element loads with direct stack access and replace the NewUnmappedArgumentsElements node with a node of the new node type ArgumentsElementsState. This corresponds to an ObjectState node and gets translated into a deoptimizer instruction to allocate the backing store. Together with the already existing deoptimizer support for the actual arguments object/rest parameters, this allows to remove all allocations for arguments objects/rest parameters in this case. In the deoptimizer, we read the actual parameters from the stack while transforming the static deopt info into TranslatedValue objects. If escape analysis cannot remove the backing store allocation, NewUnmappedArgumentsElements gets lo BUG=v8:5726 Review-Url: https://codereview.chromium.org/2692753004 Cr-Commit-Position: refs/heads/master@{#43475}
-
- 17 Feb, 2017 1 commit
-
-
jarin authored
Revert of [turbofan] extend escape analysis to reduce CheckMaps (patchset #7 id:140001 of https://codereview.chromium.org/2680973013/ ) Reason for revert: Likely causing http://crbug.com/692254 BUG=chromium:692254 Original issue's description: > [turbofan] extend escape analysis to reduce CheckMaps > > R=bmeurer@chromium.org > > BUG= > > Review-Url: https://codereview.chromium.org/2680973013 > Cr-Commit-Position: refs/heads/master@{#43163} > Committed: https://chromium.googlesource.com/v8/v8/+/f01c8a6e4b24ab38e58bb141fc251bc6b75dbe21 TBR=bmeurer@chromium.org,tebbi@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG= Review-Url: https://codereview.chromium.org/2704573003 Cr-Commit-Position: refs/heads/master@{#43282}
-
- 13 Feb, 2017 1 commit
-
-
tebbi authored
R=bmeurer@chromium.org BUG= Review-Url: https://codereview.chromium.org/2680973013 Cr-Commit-Position: refs/heads/master@{#43163}
-
- 31 Jan, 2017 1 commit
-
-
mstarzinger authored
These counters were used during the initial implementation to gather statistics about comparative effectiveness of the two escape analysis approaches in practice. The counters are not thread-safe and cannot be used for the analysis any longer as it is now running off main thread. We deprecate the counters in question in favor of maintaining deferred statistics until the need for such statistics arises again. R=bmeurer@chromium.org BUG=chromium:685942 Review-Url: https://codereview.chromium.org/2667453003 Cr-Commit-Position: refs/heads/master@{#42808}
-
- 30 Jan, 2017 1 commit
-
-
tebbi authored
R=bmeurer@chromium.org BUG=chromium:682570 Review-Url: https://codereview.chromium.org/2664683003 Cr-Commit-Position: refs/heads/master@{#42769}
-
- 03 Jan, 2017 2 commits
-
-
mvstanton authored
BUG=v8:5428 Review-Url: https://codereview.chromium.org/2606273002 Cr-Commit-Position: refs/heads/master@{#42027}
-
leszeks authored
Changes some for loops to use node->inputs() instead of iterating over InputCount and accessing InputAt(i). This saves some checks for "has_inline_inputs" and so some branches. Review-Url: https://codereview.chromium.org/2585713002 Cr-Commit-Position: refs/heads/master@{#42024}
-
- 13 Dec, 2016 1 commit
-
-
tebbi authored
R=epertoso@chromium.org,mstarzinger@chromium.org BUG=671324 Review-Url: https://codereview.chromium.org/2571793002 Cr-Commit-Position: refs/heads/master@{#41679}
-
- 15 Nov, 2016 1 commit
-
-
tebbi authored
R=bmeurer@chromium.org BUG=v8:5634 Review-Url: https://codereview.chromium.org/2500143003 Cr-Commit-Position: refs/heads/master@{#40995}
-
- 27 Sep, 2016 1 commit
-
-
mstarzinger authored
This makes sure we only replace load operations for fields on virtual objects. Even though data flow information for non-virtual (escaping) allocations is available, it might be inaccurate in certain situations where object state hasn't been cleared. R=jarin@chromium.org TEST=mjsunit/compiler/regress-escape-analysis-indirect Review-Url: https://codereview.chromium.org/2369953002 Cr-Commit-Position: refs/heads/master@{#39776}
-
- 23 Sep, 2016 1 commit
-
-
Michael Starzinger authored
This makes sure the {EscapeAnalysisReducer} inserts proper {TypeGuard} nodes if the replacement node is not a subtype of the original node. This happens predominantly for code that has been made unreachable by type checks. R=jarin@chromium.org TEST=mjsunit/regress/regress-crbug-640497 BUG=chromium:640497 Review URL: https://codereview.chromium.org/2363573003 . Cr-Commit-Position: refs/heads/master@{#39656}
-
- 22 Sep, 2016 1 commit
-
-
mstarzinger authored
This makes sure cycles in the object states graph are detected early by escape analysis instead of late in the scheduler. This is mainly done for improved debuggability. R=bmeurer@chromium.org BUG=chromium:613923 Review-Url: https://codereview.chromium.org/2354263002 Cr-Commit-Position: refs/heads/master@{#39614}
-
- 09 Aug, 2016 1 commit
-
-
bgeron authored
R=danno,jarin BUG= Review-Url: https://codereview.chromium.org/2226293002 Cr-Commit-Position: refs/heads/master@{#38502}
-
- 03 Aug, 2016 1 commit
-
-
mstarzinger authored
This completely removes the ability from nodes to point directly to the frame state representing their eager bailout point. All nodes now either have zero or one frame state inputs. These frame states can by now be found via checkpoints in the graph. R=bmeurer@chromium.org BUG=v8:5021 Review-Url: https://codereview.chromium.org/2020323004 Cr-Commit-Position: refs/heads/master@{#38282}
-
- 17 May, 2016 2 commits
-
-
mstarzinger authored
R=jarin@chromium.org Review-Url: https://codereview.chromium.org/1984203002 Cr-Commit-Position: refs/heads/master@{#36285}
-
mstarzinger authored
R=jarin@chromium.org Review-Url: https://codereview.chromium.org/1973323002 Cr-Commit-Position: refs/heads/master@{#36274}
-
- 04 Feb, 2016 1 commit
-
-
sigurds authored
This is also a refactoring of the merge function in escape analysis. BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1654163003 Cr-Commit-Position: refs/heads/master@{#33728}
-
- 25 Jan, 2016 2 commits
-
-
sigurds authored
* Add caching to handling of dangling loads * Add two unittests for load elimination on escaped objects BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1619103004 Cr-Commit-Position: refs/heads/master@{#33498}
-
sigurds authored
This CL reduces the memory overhead of escape analysis by introducing a "copy on demand" strategy for virtual states and virtual objects. BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1606613002 Cr-Commit-Position: refs/heads/master@{#33491}
-
- 22 Jan, 2016 1 commit
-
-
sigurds authored
R=jarin@chromium.org BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1608073003 Cr-Commit-Position: refs/heads/master@{#33468}
-