ir1opt: Better vestigial exit deletion logic... yet again
commitcf6d5251f8d899de40e752a04ea3fc1c3c30d162
authorAlastair Bridgewater <alastair.bridgewater@gmail.com>
Wed, 1 Feb 2017 01:35:09 +0000 (31 20:35 -0500)
committerAlastair Bridgewater <alastair.bridgewater@gmail.com>
Wed, 1 Feb 2017 01:44:00 +0000 (31 20:44 -0500)
treeb488fb5b1f291e023d5c07224579961abbdab358
parent8415628a4f7366465378be171bef2a087a5ecbbe
ir1opt: Better vestigial exit deletion logic... yet again

  * One new failure test case, (:EXIT-DELETION :2017-01-30
:EVEN-MORE-SUBTLE), which broke due to none of the predecessor
blocks of the vestigial exit cast having the appropriate set of
cleanups in force.

  * One new test case to cover the need for checking the TAGBODY
ENTRYs in vestigial exit deletion.  They don't tend to crash the
compiler when they go wrong, "merely" generate bogus code.  Which,
really, is worse: The compiler crash is hard to miss, the bogus
generated code a lot easier.

  * And a fix and simplification for MAY-DELETE-VESTIGIAL-EXIT.
"This time for sure!"
src/compiler/ir1opt.lisp
tests/compiler.pure.lisp