- 08 Jan, 2020 2 commits
-
-
Santiago Aboy Solanes authored
We were missing some possible load compressions due to not having these bitcasts as cases. Bug: v8:7703 Change-Id: I866196c4fd09d313d3a461cb7f8f80bc92278e13 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1989830Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#65647}
-
Santiago Aboy Solanes authored
The only one remaining was the one in CSA. Once that was removed, we can simplify the pipeline. In order to remove it, we have to update the machine graph verifer so that Word32Equal can accept Tagged values as well. Bug: v8:7703 Change-Id: Ia3c4d872babc2005be1b402b4614a6039c59dbf3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1987254 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#65634}
-
- 28 Nov, 2019 3 commits
-
-
Santiago Aboy Solanes authored
git cl upload failed since I needed to do a git cl format. Missed that and uploaded https://chromium-review.googlesource.com/c/v8/v8/+/1940153 without the rename. Bug: v8:7703 Change-Id: I26090433af86968357eaeecf3e906a9e824647a5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940260 Auto-Submit: Santiago Aboy Solanes <solanes@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#65250}
-
Santiago Aboy Solanes authored
Due to the ordering of the nodes to be changed, we might change the ChangeTaggedToCompressed's input before the ChangeTaggedToCompressed node itself changes. Then, we need to check for this possibility too. Bug: v8:7703 Change-Id: I2b453211dc264b509f2ea7c0cf891be50f404009 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1942607 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#65248}
-
Santiago Aboy Solanes authored
Even though they don't generate any code, it breaks some pattern matching when these nodes are present (e.g comparisons with compressed heap objects). Bug: v8:7703 Change-Id: I9670c2b4e85b1635061b16d4b125de9ff51fd403 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940153Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#65227}
-
- 26 Nov, 2019 1 commit
-
-
Santiago Aboy Solanes authored
In both ChangeIntPtrToSmi and ChangeInt32ToSmi we can use bitcasts instead of change nodes for Smi Tagging, when we are using 31 bit smis in 64 bit architectures with pointer compression enabled. In ChangeIntPtrToSmi we can ignore the truncation as well. Updated DecompressionOptimizer to match the new pattern. Change-Id: I4487ba40ba9fda7b1ab31da95ff7bd144407d02d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1924355 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#65168}
-
- 13 Nov, 2019 1 commit
-
-
Santiago Aboy Solanes authored
This reverts commit 4d1b7af7. Reason for revert: Broke clusterfuzz asan build Original change's description: > [turbofan][64] Remove Smi Untagging extra nodes for 31 bit smis > > There are some cases where we can ignore some truncations or > change nodes for Smi Untagging, when we are using 31 bit smis > in 64 bit architectures. > > Updated DecompressionOptimizer to match the new pattern. > > Change-Id: I89d34407e6f780ec0399cd427cf9d3e24ee5669a > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1889877 > Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#64909} TBR=jgruber@chromium.org,tebbi@chromium.org,solanes@chromium.org Bug: chromium:1023972 Change-Id: I7773455a970a11c345a020c1421c961314c8eb5c No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914202 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#64930}
-
- 12 Nov, 2019 1 commit
-
-
Santiago Aboy Solanes authored
There are some cases where we can ignore some truncations or change nodes for Smi Untagging, when we are using 31 bit smis in 64 bit architectures. Updated DecompressionOptimizer to match the new pattern. Change-Id: I89d34407e6f780ec0399cd427cf9d3e24ee5669a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1889877 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#64909}
-
- 06 Nov, 2019 2 commits
-
-
Santiago Aboy Solanes authored
There is at least one case where a Load output flows into an In32LessThanOrEqual node without any bitcasts or truncations in the middle. We have to consider these cases in the reducer. Bug: v8:7703 Change-Id: I1ed9c41e80c0603fd287d096c3050c5ae27c2b3e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1879945 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64811}
-
Santiago Aboy Solanes authored
Phis act as proxys: a phi's input has only 32 bits observed iff the phi's output has only 32 bits observed. When the Tagged Phi has only 32 bits observed, the Phi's MachineRepresentation changes to the Compressed counterpart. Also, update machine graph verifier so that Phis of Compressed accept Tagged inputs as well. Bug: v8:7703 Change-Id: I365d0b38f76edbaecbfea29f603abd2ce2224878 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1879943Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#64802}
-
- 04 Nov, 2019 1 commit
-
-
Santiago Aboy Solanes authored
Relevant opcodes: * kFrameState * kStateValues * kTypedStateValues The code to decompress CompressedHeapConstants is not there for the opcodes stated above. We can only do this optimization for Loads for the moment. Bug: v8:7703 Change-Id: I226089f1b2b78d0bd742785c7c9924284a97c72d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1879942 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64732}
-
- 30 Oct, 2019 2 commits
-
-
Santiago Aboy Solanes authored
Bug: v8:7703 Change-Id: I06c47aa4057362d52e53b6a45d4e8a5febb92c82 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876055 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64643}
-
Santiago Aboy Solanes authored
Smi checks get lowered to Word32And, so they are important to consider in the reducer. Bug: v8:7703 Change-Id: Ie6e2403db84f83808edcc1e44ecb60ecd72ae34d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876053 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#64638}
-
- 23 Oct, 2019 1 commit
-
-
Santiago Aboy Solanes authored
Added the opcodes kWord32Equal and kChangeTaggedToCompressed to DecompressionOptimizer. Currently TaggedEqual node generates ChangeTaggedToCompressed nodes before the Word32Equal inputs. This means we need to also propagate kOnly32BitsObserved from kChangeTaggedToCompressed. Bug: v8:7703 Change-Id: I61fee07269696c60e065e1bbfee3a65c1b1537fc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871911Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#64513}
-
- 22 Oct, 2019 1 commit
-
-
Santiago Aboy Solanes authored
We should be encountering this due to TaggedEquality. DecompressionElimination used to take care of this, but it will not be present in the new system. Bug: v8:7703 Change-Id: I9fe00ee116ed1514cb4c465a8d19df6e785ef913 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868623Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#64471}
-
- 17 Oct, 2019 1 commit
-
-
Santiago Aboy Solanes authored
The DecompressionOptimizer aims to avoid adding the root in AnyTagged or TaggedPointer loads. For the TaggedSigned case, we already solve it in instruction selection. The new phase will run only when pointer compression is enabled. For the moment, it's also requires FLAG_turbo_decompression_elimination to be false. This latter flag is only temporary to test out the implementation. The phase needs to be run when Machine are present in the graph, i.e at the very end of the pipeline. Also, since this phase may change the load's MachineRepresentation from Tagged to Compressed, it's best to run it as late as possible in order to keep the phases that know about Compressed MachineRepresentation to a minimum. As an example, if we Load a Tagged value only to Store it back again (i.e Load -> Store nodes, with the Load being the Store's value) we don't need to fully decompress it since the Store will ignore the top bits. Bug: v8:7703 Change-Id: I6b4aec203ab8cbb540b2513cabb1e2a5691ce938 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1859615 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#64358}
-