freenode/#clasp - IRC Chatlog
Search
3:21:03
beach
It is entirely possible that doing type inference might create the opportunity for path replication.
3:22:25
beach
We would have to prove termination if path replication is used on a test that is not dominated by a similar one.
3:23:33
beach
But, yes, I can very well see how path replication creates a better situation for type inference and vice versa.
3:24:11
beach
I think that several optimization steps are like that, i.e., running one might create more to work with for a different one.
3:27:54
Bike
For an example, I was thinking of sequence functions in an implementation with extended sequences. So they all do basically (etypecase sequence (list ...) (vector ...) (extended-sequence ...))
3:28:29
Bike
if you have two such calls in sequence, you can replicate the listp check, but not vectorp.
3:30:06
beach
Establishing an order between optimization passes is very hard. Maybe it is possible to find one that will work most of the time, but for high values of SPEED, it is worth repeating passes.
3:33:29
beach
Just like replicating with respect to CONSP makes it possible to then replicate with respect to NULL?
3:34:13
Bike
but without doing that the later vectorp can come from the first vectorp or from the listp branch
3:35:13
Bike
the other option i thought of was having typeq extended into a typeqcase with multiple successors, kinda complicated
3:36:07
beach
Seriously, I think that in the case where we want the best performance, there is no alternative but running different optimization passes several times.
3:40:46
Bike
not that i haven't thought at least a little about how to do hir transforms while preserving most optimization info
3:42:50
beach
I suggest we wait with such optimizations of compiler execution time until we have the optimization passes working. Introducing such optimizations of compiler execution time will complicate the compiler and make it harder to maintain.
3:46:15
beach
The book by Muchnick has a discussion about the order of optimization passes. Might be worth looking at.
3:54:48
Bike
i just googled and someone mentioned "150 A4 pages of errata" which is pretty impressive (not really related)
4:01:29
beach
I typically read a particular chapter or section on some technique, and then go to the papers referred to by that chapter or section.