Opened 8 years ago

Last modified 2 months ago

#55 assigned enhancement

Clearing LispThread.currentThread()._values more efficiently

Reported by: ehuelsmann Owned by: ehuelsmann
Priority: blocker Milestone: 1.6.0
Component: compiler Version: 1.2.0-dev
Keywords: performance Cc:
Parent Tickets:

Description

We currently clear _values all over the place; we could be more efficient some times.

Subtickets (add)

Change History (15)

comment:1 Changed 8 years ago by ehuelsmann

  • Keywords performance added

comment:2 Changed 7 years ago by ehuelsmann

  • Milestone set to too-vague

comment:3 Changed 7 years ago by ehuelsmann

  • Milestone changed from too-vague to 1.0

Operations like these:

POP
GETSTATIC
PUTSTATIC
GETFIELD
PUTFIELD
xLOAD
xSTORE

(and possibly some others)

can be found enclosed in CLEAR-VALUES instructions, however, by nature, they can't be causing currentThread()._values to be set: only (lisp) function calls do that.

comment:4 Changed 7 years ago by ehuelsmann

Some work has been done in this department (on the unsafe-p-removal branch): specifically, all block types are now explicitly handled, while only TAGBODY was before - and incorrectly at that.

However, the main issue still stands.

comment:5 Changed 7 years ago by ehuelsmann

One of the factors determining single-valued-ness of self-compiled functions is the %SINGLE-VALUED-P field in the compiland structure.

This field gets set to T during pass1 whenever any function call within that function returns T for the call to SINGLE-VALUED-P (which itself is located in pass2???).

comment:6 Changed 7 years ago by ehuelsmann

The last comment has been addressed in r13147.

comment:7 Changed 6 years ago by mevenson

  • Milestone changed from 1.0 to 1.1.0

comment:8 Changed 5 years ago by ehuelsmann

  • Milestone changed from 1.1.0 to 1.2.0

comment:9 Changed 4 years ago by https://www.google.com/accounts/o8/id?id=AItOawkYnNNEAO_K40Gp0xROhyjOPgjvIskQ48M

  • Priority changed from major to blocker
  • Status changed from new to assigned
  • Version set to 1.2.0-dev

Verify that the minimum api exists. Document it.

comment:10 Changed 4 years ago by https://www.google.com/accounts/o8/id?id=AItOawkYnNNEAO_K40Gp0xROhyjOPgjvIskQ48M

  • Milestone changed from 1.2.0 to 1.3.0

comment:11 Changed 3 years ago by mevenson

  • Milestone changed from 1.3.0 to 2.0

Ticket retargeted after milestone closed

comment:12 Changed 3 years ago by mevenson

  • Milestone changed from 2.0 to 2.0.0

Milestone renamed

comment:13 Changed 3 years ago by mevenson

  • Milestone changed from 2.0.0 to 1.4.0

comment:14 Changed 11 months ago by mevenson

  • Milestone changed from 1.4.0 to 1.5.0

Ticket retargeted after milestone closed

comment:15 Changed 2 months ago by mevenson

  • Milestone changed from 1.5.0 to 1.6.0

Ticket retargeted after milestone closed

Note: See TracTickets for help on using tickets.