Add 2021-10-18 Cranelift meeting notes (#3458)

* Add 2021-10-18 Cranelift meeting notes

* Update cranelift-10-18.md
This commit is contained in:
Alex Crichton
2021-10-18 12:16:12 -05:00
committed by GitHub
parent 3ba9e5865a
commit a52bc0f9ed

View File

@@ -18,4 +18,90 @@
### Attendees ### Attendees
- cfallin
- fitzgen
- acrichto
- uweigand
- bjorn3
- sparker
- jlbirch
- bbouvier
### Notes ### Notes
#### ISLE
- fitzgen: first few rules working and integrated into Cranelift with tests
passing, (few == 3, iconst, bconst, and catch-all for add). Glue isn't too bad
and now plan to work on complicated lowerings next. If there are ideas of
things to prove out the DSL let me know. Next is add with sinking loads, add
with an immediate, popcnt lowering, compare-and-branch, etc. Hope to have
final yay/nay in 2 weeks. Personally have enjoyed ISLE so far and it was
super-easy to add case to 0-immediates are xor reg/reg. Didn't involve fitting
into match tree and was nice to write as a standalone rule.
- cfallin: gist?
- fitzgen: not PR ready but sure!
- cfallin: this is definitely something I would have wanted last year, but take
that with a grain of salt. Need to evaluate whether it's worth the complexity.
Any questions/comments?
- cfallin: no vote today at all, just a progress update, but after two weeks
hopefully will find consensus one way or another to move forward. Hope to make
a decision soon though so this doesn't continue indefinitely.
- fitzgen: plan to have enough by next mtg for sure, yeah.
- jlbirch: which aspect is this supplementing or replacing? [the files posted]
- fitzgen: the handwritten match statements in lowering code going from clif to
machinst.
- jlbirch: these looks like comments for types and not instructions?
- cfallin: oh there's inst.isle and lower.isle
...
discussion of
https://github.com/fitzgen/wasmtime/blob/isle/cranelift/codegen/src/isa/x64/lower.isle
...
...
discussion of
https://github.com/fitzgen/wasmtime/blob/isle/cranelift/codegen/src/isa/x64/inst.isle
...
- sparker: looks quite good for addressing modes on memory operations
- fitzgen: next goal for me!
- bjorn3: looks like a lot of new dependencies?
- fitzgen: uses miette - current branch unconditionally rebuilds isle crate,
but shouldn't have to rebuild any of this unless you're changing various data
types. Most don't touch this, so dependencies should only matter if you're
actively hacking on these areas.
- cfallin: eventually we may not have the meta step or might check in more of
the code. Would improve build times by a lot, but this is a separate
discussion with different pros/cons. If build time is a concern there are
avenues to take.
#### Status
- cfallin: not much, working on non-cranelift things. RA2 progressing a bit,
jseward planning on finishing review for regalloc.rs adapter. Should be able
to release to crates.io after that and license bits sorted.
- fitzgen: no other updates than from above.
- bbouvier: no update
- acrichto: no update
- jlbirch: starting to look at some fuzz bugs
- uweigand: working on atomics, everything is cas loops, tedious. Seems like
clif supports a lot of atomic ops which are easy on x86 as a single
instruction but not as easy on other platforms. Should we remove bits from
clif ir?
- cfallin: github issues to remove things and can discuss there?
- uweigand: building wasi binaries from Rust needs a linker which isn't
available on s390x.
- sparker: looking at flexible vectors, gonna try to put into cranelift somehow.
Hoping to use ISLE to convert between flexible vectors and neon.
- cfallin: new clif instructions?
- sparker: using existing instructions but getting size of vector into system
and have backends never see it later ideally.
- cfallin: feel free to post an issue and we can discuss there too
- jlbirch: based on flexible vector proposal?
- sparker: yes
- jlbirch: I would be interested! Would be great to have shared infrastructure.
- sparker: hoping to separate into 3 tiers, first being current simd. Want to
have shared infrastructure to map to existing targets first.
- bjorn3: cleaning up after old x86 backend removal
- cfallin: great to see so much deleted!