Closed Bug 412088 Opened 17 years ago Closed 17 years ago

TT: rewrite Array.dense_setAt in forth

Categories

(Tamarin Graveyard :: Virtual Machine, defect)

x86
Windows XP
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: edwsmith, Assigned: stejohns)

References

Details

Attachments

(1 file)

callnative_x_glue has undue overhead, so even if the forth code uses a native helper, this is a win.  the signature requires that we pass the value as a reference as arg 2 however, so must do 411661 first if we want to avoid rotating the args just to fit IINVOKEXII's signature.
Assignee: nobody → stejohns
Actually, we don't have the dependency; we can make w_dense_setAt a superword, and the rotation will be "free" in interp mode.
True, although makes TT slightly more fragile, if certian words are required to be superwords.  I'm still yearning for the day when the choice of superwords is 100% machine driven.

i'm not that concerned either way, its not bad to use superwords, and 411661 is not a difficult change.  
Attached patch PatchSplinter Review
redo Array.dense_setAt in Forth (in the manner of dense_getAt) to avoid the overhead of callnative_x_glue. also remove unnecessary ibox from OP_getlocal and OP_setlocal.
Attachment #297080 - Flags: review?(edwsmith)
Comment on attachment 297080 [details] [diff] [review]
Patch

Any preliminary results pro/con this change?
Attachment #297080 - Flags: review?(edwsmith) → review+
Unfortunately, I think the slowdown caused by early-binding and/or MAXTRACE are drowning out potential gains. 
pushed as changeset:   280:3af949d3cc11
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Closing out all TT: transfer bugs that are resolved fixed.
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: