| /wasmtime-44.0.1/cranelift/isle/isle/src/ |
| H A D | serialize.rs | 48 let mut order = Vec::from_iter(0..rules.rules.len()); in serialize() 164 partition_in_place(selected, |&idx| rules.rules[idx].prio >= max_deferred_prio) in respect_priority() 218 let rule = &rules.rules[idx]; in partition() 379 rules: &'a RuleSet, field 395 rules, in new() 407 rules: self.rules, in new_block() 479 order.sort_unstable_by_key(|&idx| (Reverse(self.rules.rules[idx].prio), idx)); in sort() 486 } = &self.rules.rules[idx]; in sort() 545 |idx: usize| self.rules.rules[idx].get_constraint(source).unwrap(); in make_control_flow() 625 .rules in make_control_flow() [all …]
|
| H A D | overlap.rs | 58 let mut rules = vec![Span::new_single(pos)]; in report() localVariable 60 rules.extend(node.into_iter().map(Span::new_single)); in report() 64 rules, in report() 79 Error::OverlapError { rules, .. } => rules[0].from, in report() 122 let mut cursor = ruleset.rules.iter(); in check_overlaps()
|
| H A D | trie_again.rs | 224 pub rules: Vec<Rule>, field 235 for rule in termenv.rules.iter() { in build() 246 .map(|(term, builder)| (term, builder.rules)) in build() 401 rules: RuleSet, field 419 self.rules.rules.push(rule); in add_rule() 513 if let Some(binding) = self.rules.binding_map.get(&binding) { in dedup_binding() 516 let id = BindingId(self.rules.bindings.len().try_into().unwrap()); in dedup_binding() 517 self.rules.bindings.push(binding.clone()); in dedup_binding() 518 self.rules.binding_map.insert(binding, id); in dedup_binding() 711 let expr = &self.rules.bindings[expr.index()]; in expr_as_pattern()
|
| H A D | error.rs | 42 Error::OverlapError { rules, .. } => { in fmt() 43 let mut labels = vec![Label::primary(rules[0].from.file, &rules[0])]; in fmt() 45 rules[1..] in fmt() 129 rules: Vec<Span>,
|
| /wasmtime-44.0.1/crates/wit-bindgen/src/ |
| H A D | config.rs | 20 rules: Vec<FunctionRule>, field 50 self.rules.push(FunctionRule { in push() 117 for rule in self.rules.iter_mut() { in add_function_flags() 153 for rule in self.rules.iter().filter(|r| !r.used) { in assert_all_rules_used()
|
| /wasmtime-44.0.1/cranelift/isle/isle/ |
| H A D | README.md | 6 ISLE is a statically-typed term-rewriting language. You define rewriting rules 8 rules get compiled down into Rust source test that uses a tree of `match`
|
| /wasmtime-44.0.1/cranelift/isle/docs/ |
| H A D | language-reference.md | 74 terms) and how rules are written. 82 insight into how an unordered collection of rewrite rules are 152 lowering rules, considering each in isolation. 234 rules until some criteria are met. 287 pattern might match on the input. For example, the two rules: 318 under a set of rewrite rules, from which a heuristic 353 For a simple example, consider the following rules: 362 to `(E 42)` (via the first and second rules respectively). 366 rules allows us to *factor* a "program" of term-rewriting rules in the 669 The typing rules for patterns in ISLE are: [all …]
|
| /wasmtime-44.0.1/cranelift/isle/ |
| H A D | README.md | 14 ISLE is a DSL that allows one to write instruction-lowering rules for a 17 set of rewrite rules that turn this into another tree of terms. 19 This repository contains a prototype meta-compiler that compiles ISLE rules 22 all rules into a decision tree, sharing work where possible, while respecting 25 The ISLE language is designed so that the rules can both be compiled into an 29 level, the rules can be seen as simple equivalences between values in two 69 The ISLE language is based around rules for translating a term (i.e. expression) 70 into another term. Terms are typed, so before we can write rules for translating 110 Now we can start writing some basic lowering rules! We declare the top-level 117 ;; Declare our top-level lowering function. We will attach rules to this [all …]
|
| /wasmtime-44.0.1/cranelift/docs/ |
| H A D | isle-integration.md | 9 rewrite rules. ISLE source text is [compiled down into Rust 70 non-SSA ISA and the pure, SSA view that the lowering rules have. 73 rules for an ISA. These should be pure, SSA rewrite rules, that lend 93 ## Lowering rules are always pure, use SSA 95 The lowering rules themselves, defined in 99 Examples of things that the lowering rules themselves shouldn't deal with or 143 lowering rules use a pure paradigm that ignores these constraints and has 148 ## When are lowering rules allowed to have side effects? 154 rules we never fully match pull the rug out from under our feet. 244 where possible to simplify the lowering rules. For example, we have [all …]
|
| /wasmtime-44.0.1/cranelift/codegen/src/opts/ |
| H A D | README.md | 3 For both correctness and compile speed, we must be careful with our rules. A lot 4 of it boils down to the fact that, unlike traditional e-graphs, our rules are 17 Any kind of canonicalizing rule that intends to help subsequent rules match 19 for our constant-propagation rules to match) must produce canonicalized 79 storage in the dataflow graph. Therefore, additional rules are cheaper than 116 This resulted in a real bug in #7999. The best guidance is to keep rules
|
| H A D | spectre.isle | 1 ;; Rewrites for `select_spectre_guard` -- check these rules carefully!
|
| H A D | skeleton.isle | 3 ;; These are rules for the `simplify_skeleton` term, rather than `simplify`, and
|
| H A D | shifts.isle | 231 ;; Try to group constants together so that other cprop rules can optimize them. 249 ;; Similarly to the rules above, if y and z have the same type, we should emit 291 ;; Normalize the shift amount. Some rules can't fire unless the shift amount
|
| /wasmtime-44.0.1/crates/explorer/ |
| H A D | eslint.config.js | 11 rules: {
|
| /wasmtime-44.0.1/cranelift/isle/veri/veri_ir/ |
| H A D | README.md | 3 This crate defines two intermediate representations for verifying ISLE rules.
|
| /wasmtime-44.0.1/cranelift/filetests/filetests/egraph/ |
| H A D | reassociate-constants-in-shifts.clif | 5 ;; Test egraph rewrite rules that reassociate constants out of nested shifts.
|
| /wasmtime-44.0.1/cranelift/isle/veri/veri_engine/src/ |
| H A D | verify.rs | 92 for rule in &termenv.rules { in verify_rules_for_term()
|
| /wasmtime-44.0.1/cranelift/filetests/filetests/isa/riscv64/ |
| H A D | extend-zbb.clif | 6 ;;;; Uextend rules
|
| H A D | zicond.clif | 164 ;; This can trigger a stack overflow with if the rules don't prevent
|
| H A D | extend.clif | 6 ;;;; Uextend rules
|
| /wasmtime-44.0.1/cranelift/isle/isle/isle_examples/pass/ |
| H A D | tutorial.isle | 37 ;; Declare our top-level lowering function. We will attach rules to this
|
| H A D | prio_trie_bug.isle | 92 ;; (immediate in register). Two rules, for imm+reg and
|
| /wasmtime-44.0.1/cranelift/isle/veri/ |
| H A D | README.md | 3 …ion lowering and transformation rules written in ISLE. Crocus uses an underlying SMT solver to mod… 272 To run a specific test, you can provide the test name (most rules are tested in `cranelift/isle/ver…
|
| /wasmtime-44.0.1/ |
| H A D | ORG_CODE_OF_CONDUCT.md | 16 The code of conduct described below is not a set of rigid rules, and 21 consensus, and interpret these rules with an intent that is generous
|
| /wasmtime-44.0.1/cranelift/codegen/ |
| H A D | Cargo.toml | 85 # significantly inefficient for large terms (e.g. `simplify` with hundreds of rules).
|