|
|
|
--- !ditz.rubyforge.org,2008-03-06/issue
|
|
|
|
title: improve compiler temp reg allocation
|
|
|
|
desc: |-
|
|
|
|
The current temporary register handling is quite primitive.
|
|
|
|
|
|
|
|
In current code, ALLOCTEMP(), ALLOCTEMPS(), SETTEMP() macros are used to
|
|
|
|
manipulate temporary register allocation. ALLOCTEMP() and ALLOCTEMPS()
|
|
|
|
update "temp_max" but SETTEMP() does not; using SETTEMP() is only valid
|
|
|
|
if it is guaranteed to not go above "temp_max". SETTEMP_CHECKMAX() is
|
|
|
|
used in at least one place to update the "temp_next" value and also check
|
|
|
|
whether "temp_max" needs to be updated.
|
|
|
|
|
|
|
|
Some code working with temps is now quite unoptimal, e.g. using an
|
|
|
|
ALLOCTEMP() and then doing a SETTEMP() immediately to essentially bump
|
|
|
|
"temp_max" upwards. A separate primitive should be used for this.
|
|
|
|
|
|
|
|
Temporary registers ("temp_next") is reset occasionally in code, but even
|
|
|
|
so some code sequences generate unoptimal temp reg allocations now.
|
|
|
|
type: :task
|
|
|
|
component: duk
|
|
|
|
release:
|
|
|
|
reporter: sva <sami.vaarala@iki.fi>
|
|
|
|
status: :unstarted
|
|
|
|
disposition:
|
|
|
|
creation_time: 2013-02-26 11:44:54.737998 Z
|
|
|
|
references: []
|
|
|
|
|
|
|
|
id: d379657cceb221059242afde051f498ba1bf39f0
|
|
|
|
log_events:
|
|
|
|
- - 2013-02-26 11:44:55.138246 Z
|
|
|
|
- sva <sami.vaarala@iki.fi>
|
|
|
|
- created
|
|
|
|
- ""
|