Expand description

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.

Modules

Abstract syntax tree (AST) created from parsed ISLE.

Generate Rust code from a series of Sequences.

Compilation process, from AST to Sema to Sequences of Insts.

Error types.

Lowered matching IR.

Lexer for the ISLE language.

Parser for ISLE language.

Semantic analysis.

Trie construction.

Macros

Log a compiler-internal message for debugging purposes.

Structs

A wrapper around a HashMap which prevents accidentally observing the non-deterministic iteration order.