Closed Bug 519831 Opened 16 years ago Closed 16 years ago

VMPI_lock functions should be inlined

Categories

(Tamarin Graveyard :: Garbage Collection (mmGC), defect)

All
macOS
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED
flash10.1

People

(Reporter: stejohns, Assigned: stejohns)

Details

Attachments

(2 files)

In older versions of Tamarin, the spinlocks for MMGC were effectively inlined. When VMPI was introduced, the locks became out-of-line. For a few benchmarks that make super-heavy use of mmfx allocation (e.g., RegExp torture tests), the extra cost of the out-of-line function calls becomes significant relative to the cost of the lock itself.
Attached patch PatchSplinter Review
Move the VMPI_lockXXX() functions into the appropriate header files and force inlining. Nuke the SpinLockXXX.cpp files. Note 1: Mac implementations now use the documented OSSpinLock calls rather than the apparently-undocumented-but-happen-to-work _spin_lock calls. Note 2: Removed the ifdef DEBUG owner stuff for simplicity of implementation (mainly because VMPI doesn't have access to an assert macro at that point of inclusion).
Attachment #403902 - Flags: review?(lhansen)
Attached patch Patch #2Splinter Review
Additive: also force GCSpinLock to inline.
Attachment #403917 - Flags: review?(lhansen)
Attachment #403902 - Flags: review?(lhansen) → review+
Assignee: nobody → stejohns
Status: NEW → ASSIGNED
Target Milestone: --- → flash10.1
Attachment #403917 - Flags: review?(lhansen) → review+
pushed both as changeset: 2657:22355a34aba3
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Resolved fixed engineering / work item that has been pushed. Setting status to verified.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: