summaryrefslogtreecommitdiffstats
path: root/tests/009
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2023-08-04 06:59:02 -0700
committerKaz Kylheku <kaz@kylheku.com>2023-08-04 06:59:02 -0700
commitce4b9b23a2faf3a7fa5dff032b934b3ded7d39c7 (patch)
tree787a4288566f31427402a2204689a09e4b4b8b93 /tests/009
parent22ad3ca92d11b413d76c8cf7d64e3d7cca9b3c85 (diff)
downloadtxr-ce4b9b23a2faf3a7fa5dff032b934b3ded7d39c7.tar.gz
txr-ce4b9b23a2faf3a7fa5dff032b934b3ded7d39c7.tar.bz2
txr-ce4b9b23a2faf3a7fa5dff032b934b3ded7d39c7.zip
compiler: bug: constant folding load-time dregs.
The optimizer eliminates calls to pure library functions when all their arguments are D-registers. The call is made at compiled time and its value is inserted into the program as a constant (in a newly allocated D register). The bug is that we can't do this for a D register that is linked to a load-time value, because we don't know its value until run-time. * stdlib/optimize.tl (basic-blocks do-peephole-block): Add a constraint that none of the D registers can be a member of bb.lt-dregs, which holds the list of D registers that are used for load-time values.
Diffstat (limited to 'tests/009')
0 files changed, 0 insertions, 0 deletions