souper-harvest: Do not generate assignments of constants

It turns out that Souper does not allow a constant to be assigned to a variable,
they may only be used as operands. The 2.0.0 version of the `souper-ir` crate
correctly reflects this. In the `cranelift_codegen::souper_harvest` module, we
need to modify our Souper IR harvester so that it delays converting `iconst` and
`bconst` into Souper IR until their values are used as operands. Finally, some
unit tests in the `peepmatic-souper` crate need some small updates as well.
This commit is contained in:
Nick Fitzgerald
2020-10-15 17:00:02 -07:00
parent 09662fa716
commit f7cf771ee6
5 changed files with 60 additions and 35 deletions

4
Cargo.lock generated
View File

@@ -1989,9 +1989,9 @@ checksum = "fbee7696b84bbf3d89a1c2eccff0850e3047ed46bfcd2e92c29a2d074d57e252"
[[package]]
name = "souper-ir"
version = "1.0.0"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "163cc2bdd8a66cbaccdf06a6b476689a97e928883e09bffbe06fd5945842a83f"
checksum = "1c7eaed476845a4755001a900e0412dabd356d312ddc35dd32ff91de266b1558"
dependencies = [
"id-arena",
]