Closed
Bug 577764
Opened 15 years ago
Closed 15 years ago
TM: avoid a dead guard at the end of loop fragments
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: n.nethercote, Assigned: n.nethercote)
References
Details
(Whiteboard: fixed-in-tracemonkey)
Attachments
(1 file)
|
1.43 KB,
patch
|
dvander
:
review+
|
Details | Diff | Splinter Review |
Loop fragments always look something like this:
ebx = parami 0 ebx
esi = parami 1 esi
edi = parami 2 edi
state = parami 0 ecx
label1:
...
lti1 = lti addxovi1, immi1/*......*/
xf1: xf lti1 -> pc=...... imacpc=0x0 sp+16 rp+0 (GuardID=003)
j -> label1
livei state
x1: x -> pc=...... imacpc=0x0 sp+0 rp+0 (GuardID=004)
That guard at the end is dead. This patch removes it. This doesn't save much perf-wise -- just the processing and storing of a single guard at compile-time. But it saves me the mental effort of having to ignore it :)
Attachment #456628 -
Flags: review?(dvander)
| Assignee | ||
Comment 1•15 years ago
|
||
It'll also make things a tiny bit easier for LICM (bug 545406).
Updated•15 years ago
|
Attachment #456628 -
Flags: review?(dvander) → review+
| Assignee | ||
Comment 2•15 years ago
|
||
Whiteboard: fixed-in-tracemonkey
Comment 3•15 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Comment 4•15 years ago
|
||
This looks like it caused bug 582766.
You need to log in
before you can comment on or make changes to this bug.
Description
•