#cranelift #rules #expression #wasi #wasmtime #jit #aot #portable #standalone #isle

build cranelift-isle

ISLE: Instruction Selection and Lowering Expressions. A domain-specific language for instruction selection in Cranelift.

108 releases (41 breaking)

new 0.120.0 May 20, 2025
0.118.0 Mar 20, 2025
0.115.0 Dec 20, 2024
0.114.0 Nov 20, 2024
0.79.0 Dec 13, 2021

#22 in Programming languages

Download history 163011/week @ 2025-02-01 152530/week @ 2025-02-08 158943/week @ 2025-02-15 156433/week @ 2025-02-22 169904/week @ 2025-03-01 159605/week @ 2025-03-08 193597/week @ 2025-03-15 164660/week @ 2025-03-22 153042/week @ 2025-03-29 176525/week @ 2025-04-05 123954/week @ 2025-04-12 145962/week @ 2025-04-19 133152/week @ 2025-04-26 134208/week @ 2025-05-03 133971/week @ 2025-05-10 131929/week @ 2025-05-17

558,299 downloads per month
Used in 515 crates (via cranelift-codegen)

Apache-2.0 WITH LLVM-exception

310KB
6.5K SLoC

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 as good as or better than what you would have written by hand.

Dependencies

~0–7MB
~35K SLoC