Opened 16 years ago
Last modified 18 months ago
#55 assigned enhancement
Clearing LispThread.currentThread()._values more efficiently
Reported by: | ehuelsmann | Owned by: | ehuelsmann |
---|---|---|---|
Priority: | blocker | Milestone: | 1.9.3 |
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.
Change History (26)
comment:1 Changed 15 years ago by
Keywords: | performance added |
---|
comment:2 Changed 15 years ago by
Milestone: | → too-vague |
---|
comment:3 Changed 15 years ago by
Milestone: | too-vague → 1.0 |
---|
comment:4 Changed 14 years ago by
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 14 years ago by
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:7 Changed 13 years ago by
Milestone: | 1.0 → 1.1.0 |
---|
comment:8 Changed 12 years ago by
Milestone: | 1.1.0 → 1.2.0 |
---|
comment:9 Changed 12 years ago by
Priority: | major → blocker |
---|---|
Status: | new → assigned |
Version: | → 1.2.0-dev |
Verify that the minimum api exists. Document it.
comment:10 Changed 11 years ago by
Milestone: | 1.2.0 → 1.3.0 |
---|
comment:13 Changed 11 years ago by
Milestone: | 2.0.0 → 1.4.0 |
---|
comment:18 Changed 5 years ago by
Milestone: | 1.6.2 → 1.7.0 |
---|
comment:23 Changed 3 years ago by
Milestone: | 1.8.1 → 1.9.0 |
---|
comment:24 Changed 23 months ago by
Milestone: | 1.9.0 → 1.9.1 |
---|
comment:25 Changed 22 months ago by
Milestone: | 1.9.1 → 1.9.2 |
---|
comment:26 Changed 18 months ago by
Milestone: | 1.9.2 → 1.9.3 |
---|
Operations like these:
(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.