This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Commit 2497606
[vm/compiler] Avoid redundant spilling of SIMD values.
There was a code in the register allocator that recognized whether
destination is a spill slot or not by checking if it is one of
different location types. By accident QuadSpillSlot was missing
from that list - and as a result we were emitting redundant moves
when connecting split siblings after register allocation.
Change the code to just ask parent live which spill slot it was assigned
and use that to drive decisions.
dart-lang/sdk#41805
Change-Id: I73e208acd0bf86dceeaad970b8e5cbcb9c3f8eaa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/147550
Reviewed-by: Daco Harkes <[email protected]>
Reviewed-by: Martin Kustermann <[email protected]>
Commit-Queue: Vyacheslav Egorov <[email protected]>1 parent 2018436 commit 2497606
1 file changed
+2
-11
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2722 | 2722 | | |
2723 | 2723 | | |
2724 | 2724 | | |
2725 | | - | |
2726 | | - | |
2727 | | - | |
2728 | | - | |
2729 | | - | |
2730 | | - | |
| 2725 | + | |
2731 | 2726 | | |
2732 | 2727 | | |
2733 | 2728 | | |
| |||
2843 | 2838 | | |
2844 | 2839 | | |
2845 | 2840 | | |
2846 | | - | |
2847 | | - | |
2848 | | - | |
2849 | | - | |
2850 | | - | |
| 2841 | + | |
2851 | 2842 | | |
2852 | 2843 | | |
2853 | 2844 | | |
| |||
0 commit comments