Docs.rs
  • cranelift-isle-0.104.2
    • cranelift-isle 0.104.2
    • Docs.rs crate page
    • Apache-2.0 WITH LLVM-exception
    • Links
    • Repository
    • crates.io
    • Source
    • Owners
    • wasmtime-publish
    • Dependencies
      • codespan-reporting ^0.11.1 normal optional
      • log ^0.4.8 normal optional
      • tempfile ^3 dev
    • Versions
    • 100% of the crate is documented
  • Go to latest version
  • Platform
    • i686-pc-windows-msvc
    • i686-unknown-linux-gnu
    • x86_64-apple-darwin
    • x86_64-pc-windows-msvc
    • x86_64-unknown-linux-gnu
  • Feature flags
  • docs.rs
    • About docs.rs
    • Privacy policy
  • Rust
    • Rust website
    • The Book
    • Standard Library API Reference
    • Rust by Example
    • The Cargo Guide
    • Clippy Documentation

Crate cranelift_isle

cranelift_isle0.104.2

  • All Items
  • Modules
  • Macros
  • Structs

Crates

  • cranelift_isle
?
Change settings

Crate cranelift_isle

source ·
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§

  • ast
    Abstract syntax tree (AST) created from parsed ISLE.
  • codegen
    Generate Rust code from a series of Sequences.
  • compile
    Compilation process, from AST to Sema to Sequences of Insts.
  • error
    Error types.
  • lexer
    Lexer for the ISLE language.
  • overlap
    Overlap detection for rules in ISLE.
  • parser
    Parser for ISLE language.
  • sema
    Semantic analysis.
  • serialize
    Put “sea of nodes” representation of a RuleSet into a sequential order.
  • trie_again
    A strongly-normalizing intermediate representation for ISLE rules. This representation is chosen to closely reflect the operations we can implement in Rust, to make code generation easy.

Macros§

  • log
    Log a compiler-internal message for debugging purposes.

Structs§

  • DisjointSets
    Stores disjoint sets and provides efficient operations to merge two sets, and to find a representative member of a set given any member of that set. In this implementation, sets always have at least two members, and can only be formed by the merge operation.
  • StableMap
    A wrapper around a HashMap which prevents accidentally observing the non-deterministic iteration order.
  • StableSet
    A wrapper around a HashSet which prevents accidentally observing the non-deterministic iteration order.

Results

trait
cranelift_isle::sema::PatternVisitor
Visitor interface for Patterns. Visitors can assign an …
assoc type
cranelift_isle::sema::RuleVisitor::PatternVisitor
The type of pattern visitors constructed by …
trait method
cranelift_isle::sema::PatternVisitor::add_match_equal
Match if a and b have equal values.
method
cranelift_isle::sema::Pattern::visit
Recursively visit every sub-pattern.
trait method
cranelift_isle::sema::PatternVisitor::add_match_int
Match if input is the given integer constant.
trait method
cranelift_isle::sema::PatternVisitor::add_match_prim
Match if input is the given primitive constant.
trait method
cranelift_isle::sema::RuleVisitor::expr_as_pattern
Given an expression from RuleVisitor::add_expr, return an …
trait method
cranelift_isle::sema::RuleVisitor::pattern_as_expr
Given an identifier from the pattern visitor, return an …
trait method
cranelift_isle::sema::PatternVisitor::add_extract
Match if the given external extractor succeeds on input. …
trait method
cranelift_isle::sema::PatternVisitor::add_match_variant
Match if input is the given enum variant. Returns an …
trait method
cranelift_isle::sema::RuleVisitor::add_arg
Visit one of the arguments to the top-level pattern.
trait method
cranelift_isle::sema::RuleVisitor::add_pattern
Visit a pattern, used once for the rule’s left-hand side …
trait method
cranelift_isle::sema::RuleVisitor::add_expr
Visit an expression, used once for each if-let and once …
No results :(
Try on DuckDuckGo?

Or try looking in one of these:
  • The Rust Reference for technical details about the language.
  • Rust By Example for expository code examples.
  • The Rust Book for introductions to language features and the language itself.
  • Docs.rs for documentation of crates released on crates.io.