Alexa VanHattum
Alexa VanHattum
Thanks for the feedback, @cfallin! I agree that adding this as an explicit construct at the `sema` level would be nicer. I'll take a stab at that refactor and circle...
@jameysharp I'm still using this code on our fork, but I'll close this PR for now until we are actually at the point of merging back. Thanks!
Also used in a Rust UI test: src/test/ui/functions-closures/closure_to_fn_coercion-expected-types.rs ```rust // run-pass #![allow(unused_variables)] // Ensure that we deduce expected argument types when a `fn()` type is expected (#41755) fn foo(f: fn(Vec)...
FWIW, egg's ["explanation"](https://egraphs-good.github.io/egg/egg/tutorials/_03_explanations/index.html) construct (and [the paper they reference](https://www.cs.upc.edu/~roberto/papers/rta05.pdf)) might be a useful place to look for inspiration.
We also have code to name ISLE rules in the Crocus codebase, I can try to split that off as a separate PR soon.
This would be good to do for human-readability of the kernels Vincent is generating (mostly in removing the statically specified shuffle arrays that are rendered dead).
There are a few different places in the code this could slot in: Currently, `shuffle-truncation-pass.rkt` is where these shuffle indices are created, so we could handle deduplication there. Alternatively, we...
One path forward: starting in `shuffle-truncation-pass.rkt`, build a map of final are already seen, and reference an existing shuffle instead of building a new duplicate one where possible. Then have...
We currently fail on this kernel because the _output_ is a scalar, so a workaround is to have the output be a 1-element array. I can implement scalar outputs, but...
Diospyros essentially inlines everything into the outermost function of what is passed in. So yes, if the calling context is a loop here, it would be more useful to pass...