libera/#sicl - IRC Chatlog
Search
13:46:27
beach
I made progress on code generation today. It is mostly going as I predicted, which is 1. run the bootstrapping procedure until it fails because of a missing method. 2. Add the method. 3. Repeat. However, the first RETURN-VALUE-INSTRUCTION I run into does not have an immediate input, which makes me think that the unrolling of something like multiple-to-fixed is not working or is not being invoked.
13:48:26
beach
Also, I discovered that, as a result of instructions being deleted, there are EQ instructions with a single successor. There is an :AFTER method that replaces two identical successors of an instruction by a single successor.
13:48:29
beach
This method was designed for arithmetic instructions, but it is invoked also for these EQ instructions. However, instructions without an output and with two identical successors should probably be removed.
13:50:15
hayley
There is a TEST-MIXIN, though I can't remember if I introduced it, in order to cut down on the number of register allocation methods, or if it was there before.
13:54:34
hayley
The mixin could be used to determine whether an instruction should be removed or not. But, come to think of it, it might be better to check if any outputs of the instruction are used or not.
13:57:15
hayley
Yes, having no outputs would imply no outputs could be used. But checking usage would allow eliminating arithmetic instructions with unused outputs.
13:58:28
beach
I seem to remember a remove-useless-instructions that checks for side-effect-free-mixin
13:59:20
hayley
I recall it checked for side-effect-mixin, and it would remove instructions which didn't have side effects.