It seems our `compile` fuzz target for ISLE has not been regularly tested, as it was never updated for the `isle` -> `cranelift_isle` crate renaming. This PR fixes it to compile again. This also includes a simple fix in the typechecking: when verifying that a term decl is valid, we might insert a term ID into the name->ID map before fully checking that all of the types exist, and then skipping (for error recovery purposes) the actual push onto the term-signature vector if one of the types does have an error. This phantom TID can later cause a panic. The fix is to avoid adding to the map until we have fully verified the term decl.
ISLE: Instruction Selection / Lowering Expressions
ISLE is a domain specific language (DSL) for instruction selection and lowering
clif instructions to vcode's MachInsts in Cranelift.
ISLE is a statically-typed term-rewriting language. You define rewriting rules
that map input terms (clif instructions) into output terms (MachInsts). These
rules get compiled down into Rust source test that uses a tree of match
expressions that is as good or better than what you would have written by hand.