Closed Bug 577764 Opened 14 years ago Closed 14 years ago

TM: avoid a dead guard at the end of loop fragments

Categories

(Core :: JavaScript Engine, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: n.nethercote, Assigned: n.nethercote)

References

Details

(Whiteboard: fixed-in-tracemonkey)

Attachments

(1 file)

Attached patch patchSplinter 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)
It'll also make things a tiny bit easier for LICM (bug 545406).
Attachment #456628 - Flags: review?(dvander) → review+
http://hg.mozilla.org/tracemonkey/rev/cf557e3fc53d
Whiteboard: fixed-in-tracemonkey
http://hg.mozilla.org/mozilla-central/rev/cf557e3fc53d
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Depends on: 582766
This looks like it caused bug 582766.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: