Closed
Bug 462522
Opened 16 years ago
Closed 16 years ago
Excessive register shuffling after call sites
Categories
(Tamarin Graveyard :: Baseline JIT (CodegenLIR), defect)
Tracking
(Not tracked)
VERIFIED
FIXED
People
(Reporter: edwsmith, Unassigned)
Details
Attachments
(1 file)
874 bytes,
patch
|
rreitmai
:
review+
|
Details | Diff | Splinter Review |
number2 = fcall number ( #core doubleToAtom_sse2_3 ) push eax eax(doubleToAtom_sse2_3) edi(ldc1) mov ecx,14000168 edi(ldc1) call number edi(ldc1) mov esi,edi edi(ldc1) -> mov edi,-12(ebp) -> mov ebx,esi esi(ldc1) edi(param1) -> mov esi,-8(ebp) edi(param1) -> mov ecx,ebx ebx(ldc1) esi(param2) edi(param1) -> mov ebx,-4(ebp) esi(param2) edi(param1) mov eax,4 ecx(ldc1) ebx(param3) esi(param2) edi(param1) in this case, ecx (ldc1) is the highest priority live var, so we want to spill one of ebx, esi, edi. We do that by spilling ebx, however this makes ebx now the highest priority register, which then spills to esi, etc. domino effect.
Reporter | ||
Comment 1•16 years ago
|
||
I'm seeing 1-3% speedup on macos10.5 (x86) from this fix. curious to see how TM fares.
Attachment #345766 -
Flags: review?(rreitmai)
Updated•16 years ago
|
Attachment #345766 -
Flags: review?(rreitmai) → review+
Reporter | ||
Comment 2•16 years ago
|
||
changeset: 1043:3e22c99054a9
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Comment 3•16 years ago
|
||
grayson, could you give this a try I am on the road
Comment 4•16 years ago
|
||
I did. No perceived difference on shell-level sunspider. You want me to check browser-level?
Comment 5•16 years ago
|
||
Nah I doubt it makes a difference there. But we should apply the patch anyway
Updated•15 years ago
|
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•