Closed Bug 516348 Opened 10 years ago Closed 10 years ago

nanojit: add findSpecificRegForUnallocated()

Categories

(Core :: JavaScript Engine, defect)

x86
macOS
defect
Not set

Tracking

()

RESOLVED FIXED

People

(Reporter: njn, Assigned: njn)

References

Details

(Whiteboard: fixed-in-nanojit, fixed-in-tracemonkey)

Attachments

(1 file)

Attached patch patchSplinter Review
This patch:
- Adds findSpecificRegForUnallocated(), which is like findSpecificRegFor() but
  requires that the instruction under consideration not have a register
  allocated to it, a case which occurs surprisingly often.
- Applies it throughout the i386 back-end.  
- Adds RegAlloc::removeFree().

I originally did this change just for comprehensibility's sake -- ie.
findSpecificRegForUnallocated() is *much* simpler than findSpecificRegFor()
-- but it also looks like it improves SunSpider times by about 2ms.  I'm not
sure I trust that, but it's certainly fewer instructions executed so can't
hurt.
Attachment #400450 - Flags: review?(edwsmith)
Blocks: 513616
Attachment #400450 - Flags: review?(edwsmith) → review+
Blocks: 515313
http://hg.mozilla.org/tracemonkey/rev/6b96e43a6dd3
Whiteboard: fixed-in-nanojit → fixed-in-nanojit, fixed-in-tracemonkey
http://hg.mozilla.org/tracemonkey/rev/6b96e43a6dd3
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Depends on: 528305
Hi guys.  My x86 machine is consistently hitting this added nanoassert:
NanoAssert(ins->isUnusedOrHasUnknownReg());  (Assembler.cpp:432)

OTOH, my amd64 machine works normally.  I'm wondering if this could be a compiler bug, because I'm seeing this problem in my own builds (gcc-4.3.4) but not in the nightlies from mozilla.org (gcc-4.1.1, I believe).

Any thoughts?  I can post the backtrace if it would be useful.

Thanks.
Walter, 34692:515d7e584de6 is a follow-up changeset that fixes the assertion problem.
Thanks for the quick reply.  I just pulled again from mozilla-central and I don't see that commit anywhere.  (I searched 'hg log' for 515d7 and got nada, and
"tip" is now at 34912:168606de059d)

Am I looking in the wrong branch of the hg repository?  Or the wrong repository?

Thanks.
It's in the tracemonkey repo, it hasn't made it to the mozilla-central repo yet.  The relevant bug is bug 527874.
You need to log in before you can comment on or make changes to this bug.