There was a subtle problem with the interrupt check determining code.
The old code was lazy about searching the rgraph to determine if entry
points and exit points were leaf-like. It explored the whole tree
when when it found some entry RTL. This is a problem in the case of
expressions since expressions have no distinguished entry RTL. Thus
LAP was generated for some expression bblocks before the search took
place. This is a problem because the LAP instructions replace the RTL
instructions, and the RTL is needed to determine the interrupt checks.
The whole compiler staged only because type-checking is turned off by
default. The RINST-INSN field is a (vector-ref 0), which, when
unchecked, fortuitously happened to load the CDR of the LAP, which
then proceeded to gracefully fail the RTL predicates.
The solution is to introduce a PRE-LAPGEN-ANALYSIS procedure to to
machine dependent analysis immediately prior to LAP generation.
The analysis for the i386 back end does the original analysis.
The other back ends do nothing.