- 22 Mar, 2022 1 commit
-
-
Darius M authored
This is a reland of 6b690a6b. The previous version of this CL was a bit too aggressive in the duplication of branch conditions. This caused an increase in register pressure in some cases, thus reducing performance. In fact, duplicating branch conditions that require an "== 0" to be added provides no benefits. We are thus now a bit less aggressive, and only duplicate comparisons. Original change's description: > Reland [compiler] Simplify "==0" branches in MachineOperatorReducer > > This is a reland of 48b443f6. > > While fixing the initial CL, we stumbled upon a few bugs that > we had to fix: > > - CommonOperatorReducer and SimplifiedOperatorReducer were applied > before and after SimplifiedLowering, but always assumed that it > was before SimplifiedLowering, and thus had the wrong semantics > for branches in some cases. They now have an added parameter to > know which semantics of branch they should use. > > - The lowering of StaticAssert was wrong and could leave kHeapConstant > in the assert (instead of machine Booleans). > > Original change's description: > > [compiler] Simplify "==0" branches in MachineOperatorReducer > > > > Bug: v8:12484 > > Change-Id: I0667c7464c0dd71338bc199a24a69248a7a0a525 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497303 > > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > > Owners-Override: Tobias Tebbi <tebbi@chromium.org> > > Commit-Queue: Darius Mercadier <dmercadier@chromium.org> > > Cr-Commit-Position: refs/heads/main@{#79379} > > Bug: v8:12484 > Change-Id: Ibbf5df96fce5ccb04868dc517539479bf69f5703 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3516869 > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Commit-Queue: Darius Mercadier <dmercadier@chromium.org> > Cr-Commit-Position: refs/heads/main@{#79528} Bug: v8:12484 Change-Id: I31f575a59811a83c7c1acb4c14bf5ded63a8f536 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3540102Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Darius Mercadier <dmercadier@chromium.org> Cr-Commit-Position: refs/heads/main@{#79560}
-
- 21 Mar, 2022 1 commit
-
-
Darius Mercadier authored
This reverts commit 6b690a6b. Reason for revert: causes a few regressions here https://chromeperf.appspot.com/group_report?rev=79528 Original change's description: > Reland [compiler] Simplify "==0" branches in MachineOperatorReducer > > This is a reland of 48b443f6. > > While fixing the initial CL, we stumbled upon a few bugs that > we had to fix: > > - CommonOperatorReducer and SimplifiedOperatorReducer were applied > before and after SimplifiedLowering, but always assumed that it > was before SimplifiedLowering, and thus had the wrong semantics > for branches in some cases. They now have an added parameter to > know which semantics of branch they should use. > > - The lowering of StaticAssert was wrong and could leave kHeapConstant > in the assert (instead of machine Booleans). > > Original change's description: > > [compiler] Simplify "==0" branches in MachineOperatorReducer > > > > Bug: v8:12484 > > Change-Id: I0667c7464c0dd71338bc199a24a69248a7a0a525 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497303 > > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > > Owners-Override: Tobias Tebbi <tebbi@chromium.org> > > Commit-Queue: Darius Mercadier <dmercadier@chromium.org> > > Cr-Commit-Position: refs/heads/main@{#79379} > > Bug: v8:12484 > Change-Id: Ibbf5df96fce5ccb04868dc517539479bf69f5703 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3516869 > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Commit-Queue: Darius Mercadier <dmercadier@chromium.org> > Cr-Commit-Position: refs/heads/main@{#79528} Bug: v8:12484 Change-Id: I457464d793e9c5af8448564aa3b46be863b96fbb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3540148 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Darius Mercadier <dmercadier@chromium.org> Cr-Commit-Position: refs/heads/main@{#79552}
-
- 18 Mar, 2022 1 commit
-
-
Darius M authored
This is a reland of 48b443f6. While fixing the initial CL, we stumbled upon a few bugs that we had to fix: - CommonOperatorReducer and SimplifiedOperatorReducer were applied before and after SimplifiedLowering, but always assumed that it was before SimplifiedLowering, and thus had the wrong semantics for branches in some cases. They now have an added parameter to know which semantics of branch they should use. - The lowering of StaticAssert was wrong and could leave kHeapConstant in the assert (instead of machine Booleans). Original change's description: > [compiler] Simplify "==0" branches in MachineOperatorReducer > > Bug: v8:12484 > Change-Id: I0667c7464c0dd71338bc199a24a69248a7a0a525 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497303 > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Owners-Override: Tobias Tebbi <tebbi@chromium.org> > Commit-Queue: Darius Mercadier <dmercadier@chromium.org> > Cr-Commit-Position: refs/heads/main@{#79379} Bug: v8:12484 Change-Id: Ibbf5df96fce5ccb04868dc517539479bf69f5703 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3516869Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Darius Mercadier <dmercadier@chromium.org> Cr-Commit-Position: refs/heads/main@{#79528}
-
- 10 Dec, 2021 1 commit
-
-
Leszek Swirski authored
Bug: chromium:1278387 Change-Id: If834ee2f9ba3663822a8066fbd1ece49c24023da Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3329790 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#78337}
-
- 25 Jun, 2021 1 commit
-
-
Santiago Aboy Solanes authored
We would be allowing or disallowing using the local heap rather than that scope. There's one case that remains in common-operator-reducer.cc. Bug: v8:7790 Change-Id: Ice0b407aa37b3aa349fc68f4a7c2644156097e3e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2983206Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#75379}
-
- 26 Apr, 2021 2 commits
-
-
Jakob Gruber authored
On a per-job basis, --turbo-direct-heap-access should be equal to whether concurrent inlining is enabled. We simplify involved logic by removing the flag, and replacing all access to - FLAG_turbo_direct_heap_access, and - FLAG_concurrent_inlining inside compiler/ with OptimizedCompilationInfo::is_concurrent_inlining() (or derived values). Bug: v8:7790 Change-Id: I64818e0e1004dded08c784ef1c4bdfd2af990a59 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2843345 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#74166}
-
Jakob Gruber authored
.. which used to be implemented by calling BooleanValue eagerly on all seen heap objects during serialization. 1) it's wasteful to call this on every object, 2) this was blocking conversion of HeapObjectRefs to not require main-thread serialization. This CL replaces the old pattern by a thread-safe TryGetBooleanValue method, which may fail in some cases (e.g. when trying to read into a HeapNumber). Bug: v8:7790 Change-Id: I9d4ab7725231adce0b488c4c08c1f4bac78ce3c5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2839557 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#74165}
-
- 03 Dec, 2020 1 commit
-
-
Leszek Swirski authored
TurboFan creates DisallowHeapAccess scopes, to prevent heap access in the concurrent parts of the compiler. Then, for parts of the compiler that do want to access the heap, it either creates Allow* scopes (which should be avoided since they "punch a hole" in the Disallow* scopes), or relies on a weakening of Handle::IsDereferenceAllowed which allows handles owned by a LocalHeap to be dereferenced even if there is a DisallowHeapDereference scope. This patch: a) Strengthens the implicit requirements around handle dereferencing to require a running heap on this thread (either main-thread heap or an un-parked, un-safepointed LocalHeap). b) Removes the overly strict Disallow scopes in TurboFan, relying instead on implicit requirements for allocation/handle dereferencing in off-thread code. c) Cleans up the "should_disallow_heap_access" predicate to be more explicit about what should be disallowed (e.g. property accesses can't be computed concurrently) Change-Id: Icb56b7764913ac17e2db197a70bb189af88a6978 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2554617 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#71600}
-
- 09 Nov, 2020 1 commit
-
-
Georg Neis authored
In a few places we incorrectly assumed to know the instance type of the heap object. In particular, in JSCallReducer::ReduceDataViewAccess, doing map inference on the receiver and determining that all maps are JSDataView maps does not guarantee that the receiver is a JSDataView constant because we might deopt before getting to the data view operation. Bug: chromium:1146652 Change-Id: I1611308c3ebe0d33fa6b0cf0938d777b4e6449ff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2524440 Auto-Submit: Georg Neis <neis@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#71034}
-
- 28 Oct, 2020 1 commit
-
-
Shu-yu Guo authored
Change-Id: I4ab54dac771bb551c2435a98f9e53194a6f27853 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2495494 Commit-Queue: Shu-yu Guo <syg@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#70851}
-
- 14 Oct, 2020 1 commit
-
-
Z Nguyen-Huu authored
It is related to Reduce consecutive overflow addition with constants. Turned out that we needs to consider also effect use before relaxing it. This fixed the issue that fuzzer found in e93a369f. Bug: chromium:1137586 Change-Id: I32fee5ecc7a6ce40d6f739f9c6e2440a647a2222 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2469597 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#70514}
-
- 22 Sep, 2020 1 commit
-
-
Z Nguyen-Huu authored
Using associative property of addition: (x + A) + B => x + (A + B). Note: A and B need to have the same sign and we need to check that (x + A) isn't used anywhere else. 20% perf improvement of the following function. function f(n) { var c = 0; for (var i = 0; i < n; i++) { c = c + 2 + 3; } return c; } for n = 10_000_000. Before: 7.31s. After: 6.05s. Bug: v8:10305 Change-Id: If45d1cad6128a9a25cb9f43a4828ae28d594a84b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2365221 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#70064}
-
- 11 Nov, 2019 1 commit
-
-
Santiago Aboy Solanes authored
Including but not limiting to removing: * BitcastCompressedXXX * CheckedCompressedXXX * ChangeXXXToCompressedYYY * ChangeCompressedXXX As a note, ChangeTaggedToCompressed can't be removed just yet as it is still in use. Bug: v8:7703 Change-Id: I98cf88a32adfa976d419e69702d1cac4d3e811a5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903435 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64880}
-
- 16 Oct, 2019 1 commit
-
-
Sathya Gunasekaran authored
Updates CSA::TryToIntptr to handle array indices that are less than INT_MAX which allows to handle string keys in the ICs. Updates ICs to go monomorphic for string keys that are array indices. Updates Turbofan to handle array indices when lowering element access. Change-Id: Ibdde20130e075d0d645ab4a8266a968335eaad84 Bug: v8:9449 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1813018Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#64320}
-
- 09 Oct, 2019 1 commit
-
-
Santiago Aboy Solanes authored
CheckedInt32ToTaggedSigned -> ChangeTaggedSignedToCompressedSigned was being simplified to CheckedInt32ToCompressedSigned. However, sometimes the effect chain is not propagated correctly. Since we have plans to remove the Compressed MachineRepresentation, we can remove this optimization now. Bug: v8:7703, chromium:1011980 Change-Id: I9198c73666848f89db96928259af68400d442229 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1847363Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#64178}
-
- 24 Aug, 2019 1 commit
-
-
Joey Gouly authored
ChangeTaggedSignedToInt32(ChangeCompressedSignedToTaggedSigned((x)) -> ChangeCompressedSignedToInt32(x) This pattern shows up in the Octane Richards benchmark (on arm64): sxtw x11, w10 asr w11, w11, #1 This patch will remove the sxtw. ChangeCompressedSignedToInt32(CheckedInt32ToCompressedSigned(x)) -> x This pattern shows up in the Octane Richards benchmark (on arm64): adds w10, w10, w10 b.vs #+0x1118 asr w11, w10, #1 stur w10, [x6, #19] cmp w11, #0x1a This patch will remove the asr, and produce: adds w11, w10, w10 b.vs #+0x1108 stur w11, [x6, #19] cmp w10, #0x1a Bug: v8:7703 Change-Id: I5843e0a4f723b202857ee86130f835cd048d7e31 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1763529Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Commit-Queue: Rodolph Perfetta <rodolph.perfetta@arm.com> Cr-Commit-Position: refs/heads/master@{#63389}
-
- 26 Jul, 2019 1 commit
-
-
Santiago Aboy Solanes authored
In some cases, we end up with a ChangeCompressedPointerToTaggedPointer next to a CheckedTaggedToTaggedPointer. In this case, the checked one is not needed since we are sure we are dealing with a pointer (and not a Smi). This doesn't get resolved in the simplfied lowering phase due to having a Phi[Tagged] in the middle of those two nodes. 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:7703 Change-Id: Ia4a44b36423c2242d5c663f9b93b09924190fe8e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1709426 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#62941}
-
- 25 Jul, 2019 1 commit
-
-
Santiago Aboy Solanes authored
Avoids unnecessary compression and decompression nodes since we are going to be able to check for smis without needing to decompress and re-compress. It was doing a CheckedInt32ToTaggedSigned -> ChangeTaggedSignedToCompressedSigned combo, where we could just do CheckedInt32ToCompressedSigned. 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:7703 Change-Id: I0bbbbb5bd4744c49840c84b2fcb775fe6b603de0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1714878 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#62917}
-
- 15 May, 2019 1 commit
-
-
Yang Guo authored
R=bmeurer@chromium.org, clemensh@chromium.org, jkummerow@chromium.org, sigurds@chromium.org, ulan@chromium.org, verwaest@chromium.org Bug: v8:9247 Change-Id: I153a6bbfc55989fe7a86c052f95c5cb8ee61e841 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613244 Commit-Queue: Yang Guo <yangguo@chromium.org> Auto-Submit: Yang Guo <yangguo@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#61557}
-
- 18 Oct, 2018 1 commit
-
-
Georg Neis authored
We forgot to eliminate the read accesses of these two cells. Bug: v8:7790, v8:8315 Change-Id: Id175e4d96461f88759b2d29ab1d407ba4c54e733 Reviewed-on: https://chromium-review.googlesource.com/c/1286680Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#56752}
-
- 15 Oct, 2018 1 commit
-
-
Georg Neis authored
There's no ambiguity and the shorter name makes things easier to read. Bug: v8:7790 Change-Id: Ibcf3fd7f38a91e26a83cd335fad0ec80a5fe9be1 Reviewed-on: https://chromium-review.googlesource.com/c/1278392 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#56623}
-
- 17 Sep, 2018 1 commit
-
-
Florian Sattler authored
Fixing clang-tidy warning. Bug: v8:8015 Change-Id: I7d885f0e2ba3cdf97de190166dc4cdd24dc0c11e Reviewed-on: https://chromium-review.googlesource.com/1224091 Commit-Queue: Florian Sattler <sattlerf@google.com> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#55956}
-
- 23 Jul, 2018 1 commit
-
-
Georg Neis authored
We'll soon start collecting data from the JS heap prior to the typed lowering pass, and then refrain from reading the heap in that pass. This CL prepares the broker machinery by introducing a hash table that maps an object (handle) to the corresponding cached data. For the time being, that cached data is essentially just the handle itself. Bug: v8:7790 Change-Id: I830e9c72faafb7ae1d10e8a111636b3a3762bbc6 Reviewed-on: https://chromium-review.googlesource.com/1143405 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#54618}
-
- 17 Jul, 2018 1 commit
-
-
Georg Neis authored
This makes it more convenient to work with brokerized data. Bug: v8:7790 Change-Id: I7ffb4054b809c10c67787b2fb89a05e8ce8f4575 Reviewed-on: https://chromium-review.googlesource.com/1138248 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#54480}
-
- 10 Jul, 2018 2 commits
-
-
Georg Neis authored
R=jarin@chromium.org Bug: v8:7790 Change-Id: I79c6904a9969afc6aac7530c5d876da15018b3bc Reviewed-on: https://chromium-review.googlesource.com/1129142 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#54344}
-
Georg Neis authored
R=jarin@chromium.org Bug: v8:7790 Change-Id: I4d9c561720005f7b667085c7dcf4e777e65d1e05 Reviewed-on: https://chromium-review.googlesource.com/1128891Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#54340}
-
- 25 May, 2018 1 commit
-
-
Dan Elphick authored
Removes use of HeapObject::GetIsolate() from Object::BooleanValue in preparation for removing the method. Requires adding Isolate parameter to CommonOperatorReducer constructor. Bug: v8:7786 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: If735e71df3288bf1eb11576605c2d95a19472181 Reviewed-on: https://chromium-review.googlesource.com/1071653Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#53361}
-
- 04 Jan, 2017 1 commit
-
-
bmeurer authored
BUG=v8:5267 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2612763002 Cr-Commit-Position: refs/heads/master@{#42060}
-
- 03 Nov, 2016 1 commit
-
-
bmeurer authored
For lowering CheckHeapObject, always report TaggedPointer representation and let the RepresentationChanger come up with a reasonable conversion from whatever input representation to TaggedPointer. This way we no longer insert the useless ChangeSomethingToTagged and then check the result for HeapObject, i.e. mostly reduces the amount of useless code being generated. Note there are now two operators ChangeFloat64ToTaggedPointer and the old ChangeFloat64ToTagged, because their semantics different wrt. the strength reduction in the SimplifiedOperatorReducer. Also set the output MachineRepresentation::kTaggedPointer properly in SimplifiedLowering whenever we know that we produce a HeapObject. R=jarin@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2476593002 Cr-Commit-Position: refs/heads/master@{#40725}
-
- 17 Oct, 2016 1 commit
-
-
bmeurer authored
Apply the same strength reduction to the ChangeTaggedSignedToInt32 operator that we already have for ChangeTaggedToInt32. R=epertoso@chromium.org Review-Url: https://codereview.chromium.org/2428493002 Cr-Commit-Position: refs/heads/master@{#40352}
-
- 07 Oct, 2016 1 commit
-
-
bmeurer authored
R=mvstanton@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2397253002 Cr-Commit-Position: refs/heads/master@{#40073}
-
- 29 Sep, 2016 1 commit
-
-
bmeurer authored
Add simplified operator reduction rule that reduces CheckedTaggedSignedToInt32(ConvertTaggedHoleToUndefined(x)) to CheckedTaggedSignedToInt32(x) which avoids the unnecessary hole to undefined conversion, as the check operation will fail equally on either hole or undefined. BUG=v8:5267 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2384453002 Cr-Commit-Position: refs/heads/master@{#39863}
-
- 23 Sep, 2016 1 commit
-
-
Benedikt Meurer authored
Rename the high-level operators CheckTaggedSigned to CheckSmi and CheckTaggedPointer to CheckHeapObject, to better match the naming convention (i.e. ObjectIsSmi and CheckSmi, ObjectIsString and CheckString, etc.). For lowering CheckSmi, always report TaggedSigned representation and let the RepresentationChanger come up with a reasonable conversion from whatever input representation to TaggedSigned. This way we no longer insert the useless ChangeSomethingToTagged and then Smi check the result sequences, i.e. mostly reduces the amount of useless code being generated. But we also observe a few performance improvements on some crypto benchmarks. This would enable us to avoid the Smi canonicalization when going from Float64 to Tagged completely and thus match the representation selection of Crankshaft in many areas (which might reduce the amount of polymorphism until we fix our object model). A follow-up CL will do the same for CheckHeapObject. BUG=v8:5267 R=jarin@chromium.org Review URL: https://codereview.chromium.org/2362173003 . Cr-Commit-Position: refs/heads/master@{#39654}
-
- 13 Sep, 2016 1 commit
-
-
bmeurer authored
Add strength reduction rules to optimize CheckTaggedSigned(CheckTaggedSigned(x)) -> CheckTaggedSigned(x) and CheckTaggedPointer(CheckTaggedPointer(x)) -> CheckTaggedPointer(x) where we do some cleanup optimizations after loop peeling and redundancy elimination, which can generate these constructs. BUG=v8:5267 Review-Url: https://codereview.chromium.org/2336093002 Cr-Commit-Position: refs/heads/master@{#39366}
-
- 29 Aug, 2016 1 commit
-
-
bmeurer authored
For asm.js we now have a dedicated AsmTyper, that uses it's own type system (which is tailored towards asm.js), and so we don't need the special asm.js types anymore in the TypeCache. This also moves the TypeCache into the src/compiler directory, because it doesn't make sense to use outside anyways. TBR=ahaas@chromium.org R=jarin@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2289573002 Cr-Commit-Position: refs/heads/master@{#38964}
-
- 11 Aug, 2016 1 commit
-
-
bmeurer authored
We can fold ConvertTaggedHoleToUndefined into CheckNumber and CheckTaggedSigned, as they deoptimize no matter if the input is undefined or hole. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2233393002 Cr-Commit-Position: refs/heads/master@{#38576}
-
- 30 Jun, 2016 1 commit
-
-
bmeurer authored
This adds a new CheckIf operator and changes all direct uses of DeoptimizeIf and DeoptimizeUnless on the JavaScript level to use CheckIf (or one of the more concrete check operators) instead. This way we do not depend on particular frame states, but the effect/control linearizer will assign an appropriate frame state instead. R=jarin@chromium.org BUG=v8:5141 Review-Url: https://codereview.chromium.org/2115513002 Cr-Commit-Position: refs/heads/master@{#37423}
-
- 29 Jun, 2016 2 commits
-
-
bmeurer authored
There are no useful typing rules for Change and Checked operators, so we better make sure we don't run them through the Typer at all. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2107783004 Cr-Commit-Position: refs/heads/master@{#37382}
-
bmeurer authored
The only real use case left for TypeGuard was the renaming inside the LoadElimination, but this case only occurs in dead code (guarded by a previous Check), so it's not relevant, and we can drop the TypeGuard operator completely. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2108793003 Cr-Commit-Position: refs/heads/master@{#37361}
-
- 28 Jun, 2016 1 commit
-
-
bmeurer authored
Add NumberAbs operator to implement an inline version of Math.abs, that can be optimized and eliminated. We don't use any speculation here, but for now stick to the information we can infer (this way we avoid the inherent deopt loops that Crankshaft has around Math.abs). CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel R=jarin@chromium.org BUG=v8:5086 Review-Url: https://codereview.chromium.org/2096403002 Cr-Commit-Position: refs/heads/master@{#37306}
-