You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

33 lines
1.2 KiB

--- !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@poplatek.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@poplatek.fi>
- created
- ""