22:44:57drmeisterI'm generalizing the exception handling code I wrote for bclasp so that I can use it for cclasp. That will make backtrace frames easier to install.
6:05:08beachWhat test do you use to determine whether to apply it?
6:06:59Bikewell, the problem i had with (if (if (primop:whatever ...) t nil) ...) was that recognizing constants is a little difficult. so i moved up to generally (if (if ...) ...). because of how ast-to-hir works, that results in a test where each branch ends in an output to a temporary, which is then used as an input to an eq test
6:07:32Bikeso, for each eq instruction it checks if either of its inputs are only defined twice, and that the two instructions defining that variable share a successor.
6:08:26beachSo you don't check the dominance relation?
6:09:30Bikeno. if the shared successor doesn't dominate the eq, it's possible to reach the eq while one of its inputs is undefined, so something went pretty wrong.