Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cranelift: Doesn't compile anymore on latest Windows Nightly #8919

Closed
CryZe opened this issue Jul 8, 2024 · 19 comments
Closed

Cranelift: Doesn't compile anymore on latest Windows Nightly #8919

CryZe opened this issue Jul 8, 2024 · 19 comments
Labels
bug Incorrect behavior in the current implementation that needs fixing cranelift Issues related to the Cranelift code generator

Comments

@CryZe
Copy link
Contributor

CryZe commented Jul 8, 2024

error: failed to run custom build command for `cranelift-codegen v0.109.0`

Caused by:
  process didn't exit successfully: `D:\a\livesplit-core\livesplit-core\target\debug\build\cranelift-codegen-16ee0d76fd74ed56\build-script-build` (exit code: 0xc00000fd, STATUS_STACK_OVERFLOW)
  --- stdout
  cargo:rustc-cfg=feature="x86"
  cargo:rerun-if-changed=build.rs
  cargo:rerun-if-changed=src\prelude.isle
  cargo:rerun-if-changed=src\prelude_opt.isle
  cargo:rerun-if-changed=src\opts\arithmetic.isle
  cargo:rerun-if-changed=src\opts\bitops.isle
  cargo:rerun-if-changed=src\opts\cprop.isle
  cargo:rerun-if-changed=src\opts\extends.isle
  cargo:rerun-if-changed=src\opts\icmp.isle
  cargo:rerun-if-changed=src\opts\remat.isle
  cargo:rerun-if-changed=src\opts\selects.isle
  cargo:rerun-if-changed=src\opts\shifts.isle
  cargo:rerun-if-changed=src\opts\spaceship.isle
  cargo:rerun-if-changed=src\opts\spectre.isle
  cargo:rerun-if-changed=src\opts\vector.isle

  --- stderr
  Writing generated file: D:\a\livesplit-core\livesplit-core\target\x86_64-pc-windows-msvc\debug\build\cranelift-codegen-e0c1105143d63b20\out\settings.rs
  Writing generated file: D:\a\livesplit-core\livesplit-core\target\x86_64-pc-windows-msvc\debug\build\cranelift-codegen-e0c1105143d63b20\out\types.rs
  Writing generated file: D:\a\livesplit-core\livesplit-core\target\x86_64-pc-windows-msvc\debug\build\cranelift-codegen-e0c1105143d63b20\out\opcodes.rs
  Writing generated file: D:\a\livesplit-core\livesplit-core\target\x86_64-pc-windows-msvc\debug\build\cranelift-codegen-e0c1105143d63b20\out\inst_builder.rs
  Writing generated file: D:\a\livesplit-core\livesplit-core\target\x86_64-pc-windows-msvc\debug\build\cranelift-codegen-e0c1105143d63b20\out\settings-x86.rs
  Writing generated file: D:\a\livesplit-core\livesplit-core\target\x86_64-pc-windows-msvc\debug\build\cranelift-codegen-e0c1105143d63b20\out\clif_opt.isle
  Writing generated file: D:\a\livesplit-core\livesplit-core\target\x86_64-pc-windows-msvc\debug\build\cranelift-codegen-e0c1105143d63b20\out\clif_lower.isle
  Rebuilding D:\a\livesplit-core\livesplit-core\target\x86_64-pc-windows-msvc\debug\build\cranelift-codegen-e0c1105143d63b20\out\isle_opt.rs

  thread 'main' has overflowed its stack

Versions and Environment

Cranelift version or commit: cranelift-codegen v0.104.3 as well as cranelift-codegen v0.109.0

Operating system: Windows

Architecture: x86_64

Rust: x86_64-pc-windows-msvc
latest update on 2024-07-08, rust version 1.81.0-nightly (20ae37c18 2024-07-07)

Actually seems to have been happening since at least:
latest update on 2024-06-30, rust version 1.81.0-nightly (ba1d7f4a0 2024-06-29)
Last time I saw it working was:
latest update on 2024-06-24, rust version 1.81.0-nightly (bcf94dec5 2024-06-23)

Extra Info

@CryZe CryZe added bug Incorrect behavior in the current implementation that needs fixing cranelift Issues related to the Cranelift code generator labels Jul 8, 2024
@CryZe
Copy link
Contributor Author

CryZe commented Jul 8, 2024

This might just be a temporary / general issue with the latest Windows nightly compiler. This does not reproduce on any other target, not even the GNU variant.

@alexcrichton
Copy link
Member

Would you be able to run a bisection to determine what caused this? The cargo bisect-rustc subcommand I believe is the go-to tool for this.

@CryZe
Copy link
Contributor Author

CryZe commented Jul 8, 2024

It's pretty late here, I'll look into it tomorrow.

@CryZe
Copy link
Contributor Author

CryZe commented Jul 9, 2024

I was not able to reproduce it outside of the Github Actions, so I'll bisect it there manually now.

@CryZe
Copy link
Contributor Author

CryZe commented Jul 9, 2024

The regression happened between nightly-2024-06-28 (working) and nightly-2024-06-29 (broken), which puts the regression in the following range:
rust-lang/rust@9c3bc80...e9e6e2e

@CryZe
Copy link
Contributor Author

CryZe commented Jul 9, 2024

The only thing that stands out to me is some changes to LLD and the patchable function entries.

@CryZe
Copy link
Contributor Author

CryZe commented Jul 9, 2024

I was able to reproduce it locally and run cargo bisect-rustc on it. The regression is in rust-lang/rust@99f77a2 which is rust-lang/rust#127076

@alexcrichton
Copy link
Member

Thanks for investigating! Nothing obvious there and my hunch would be rust-lang/rust#126970 but even then it's probably a case where we had a really deep stack before and just happened to overflow now.

Since you're able to reproduce locally are you able to capture a backtrace to see where the stack overflow is coming from?

@CryZe
Copy link
Contributor Author

CryZe commented Jul 9, 2024

This is how you can reproduce it (with a sufficiently up to date Windows MSVC nightly toolchain):

cargo +nightly build -p cranelift-codegen --target x86_64-pc-windows-msvc

what's interesting is that this does NOT reproduce it (which is slightly different for cargo in how it's able to reuse dependencies of the host vs. the target):

cargo +nightly build -p cranelift-codegen

@CryZe
Copy link
Contributor Author

CryZe commented Jul 9, 2024

RtlTryEnterCriticalSection (Unbekannte Quelle:0)
RtlAllocateHeap (Unbekannte Quelle:0)
RtlAllocateHeap (Unbekannte Quelle:0)
RtlRegisterSecureMemoryCacheCallback (Unbekannte Quelle:0)
EtwLogTraceEvent (Unbekannte Quelle:0)
RtlAllocateHeap (Unbekannte Quelle:0)
void alloc::fmt::format::format_inner() (Unbekannte Quelle:0)
struct alloc::string::String alloc::fmt::format::closure$0(struct alloc::fmt::format::closure_env$0) (Unbekannte Quelle:0)
struct alloc::string::String enum2$<core::option::Option<ref$<str$> > >::map_or_else<ref$<str$>,alloc::string::String,alloc::fmt::format::closure_env$0,alloc::string::String (*)(ref$<str$>)>(union enum2$<core::option::Option<ref$<str$> > >, struct alloc::fmt::format::closure_env$0,  *) (Unbekannte Quelle:0)
struct alloc::string::String alloc::fmt::format(struct core::fmt::Arguments) (Unbekannte Quelle:0)
union enum2$<core::option::Option<cranelift_isle::sema::ExternalSig> > cranelift_isle::sema::Term::extractor_sig(struct cranelift_isle::sema::TypeEnv *) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\sema.rs:419)
static union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::impl$1::emit_expr::closure$0<alloc::string::String>(struct cranelift_isle::codegen::impl$1::emit_expr::closure_env$0<alloc::string::String> *, struct cranelift_isle::sema::TermId, struct ref$<slice2$<cranelift_isle::trie_again::BindingId> >,  *) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:679)
static union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_expr<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::trie_again::BindingId) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:712)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:545)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:601)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:601)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:601)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:601)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:601)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:601)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:601)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:585)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:585)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:570)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:585)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:585)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:585)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:585)
union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::emit_block<alloc::string::String>(struct cranelift_isle::codegen::BodyContext<alloc::string::String> *, struct cranelift_isle::serialize::Block *, cranelift_isle::sema::ReturnKind) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:629)
static union enum2$<core::result::Result<tuple$<>,core::fmt::Error> > cranelift_isle::codegen::Codegen::generate_internal_term_constructors(struct alloc::string::String *) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:439)
static struct alloc::string::String cranelift_isle::codegen::Codegen::generate_rust(struct cranelift_isle::codegen::CodegenOptions *) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:102)
struct alloc::string::String cranelift_isle::codegen::codegen(struct cranelift_isle::sema::TypeEnv *, struct cranelift_isle::sema::TermEnv *, struct ref$<slice2$<tuple$<cranelift_isle::sema::TermId,cranelift_isle::trie_again::RuleSet> > >, struct cranelift_isle::codegen::CodegenOptions *) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\codegen.rs:24)
union enum2$<core::result::Result<alloc::string::String,cranelift_isle::error::Errors> > cranelift_isle::compile::compile(struct cranelift_isle::ast::Defs *, struct cranelift_isle::codegen::CodegenOptions *) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\compile.rs:13)
union enum2$<core::result::Result<alloc::string::String,cranelift_isle::error::Errors> > cranelift_isle::compile::from_files<ref$<std::path::PathBuf>,core::iter::adapters::chain::Chain<core::slice::iter::Iter<std::path::PathBuf>,core::slice::iter::Iter<std::path::PathBuf> > >(struct core::iter::adapters::chain::Chain<core::slice::iter::Iter<std::path::PathBuf>,core::slice::iter::Iter<std::path::PathBuf> >, struct cranelift_isle::codegen::CodegenOptions *) (p:\pull-requests\wasmtime\cranelift\isle\isle\src\compile.rs:23)
static union enum2$<core::result::Result<tuple$<>,cranelift_isle::error::Errors> > build_script_build::run_compilation(struct cranelift_codegen_meta::isle::IsleCompilation *) (p:\pull-requests\wasmtime\cranelift\codegen\build.rs:220)
static union enum2$<core::result::Result<tuple$<>,alloc::boxed::Box<dyn$<core::error::Error>,alloc::alloc::Global> > > build_script_build::build_isle(struct ref$<std::path::Path>, struct ref$<std::path::Path>) (p:\pull-requests\wasmtime\cranelift\codegen\build.rs:174)
static void build_script_build::main() (p:\pull-requests\wasmtime\cranelift\codegen\build.rs:90)
void core::ops::function::FnOnce::call_once<void (*)(),tuple$<> >( *) (Unbekannte Quelle:0)
void std::sys::backtrace::__rust_begin_short_backtrace<void (*)(),tuple$<> >( *) (Unbekannte Quelle:0)
int std::rt::lang_start::closure$0<tuple$<> >(struct std::rt::lang_start::closure_env$0<tuple$<> > *) (Unbekannte Quelle:0)
void std::rt::lang_start_internal() (Unbekannte Quelle:0)
__int64 std::rt::lang_start<tuple$<> >( *, __int64, unsigned char * *, unsigned char) (Unbekannte Quelle:0)
main (Unbekannte Quelle:0)
static int __scrt_common_main_seh() (Unbekannte Quelle:0)
BaseThreadInitThunk (Unbekannte Quelle:0)
RtlUserThreadStart (Unbekannte Quelle:0)

Mmmh, that does not look super healthy regardless of whether it's a slight regression.

But I believe you are right. The PR you linked does inline the clone_into function, which possibly got inlined into any of these functions on the stack here, increasing the stack usage a little, which was just enough to push it over the edge.

@alexcrichton
Copy link
Member

For ISLE-related folks, does anyone know if this is a bug to have this much recursion between here and here? If so is it possible to somewhat easily make this a loop rather than recursive? If not is there a way to reduce the size of functions to avoid having such a large stack frame?

@fitzgen
Copy link
Member

fitzgen commented Jul 9, 2024

cc @jameysharp

@jameysharp
Copy link
Contributor

This recursion certainly could be rewritten to use an explicit stack. Its depth is proportional to the number of constraints in the left-hand side of a rule, so I didn't expect it to be a problem.

It would be nice to figure out which rule it was generating code for at the time. (It must be a mid-end optimization rule if Loop is involved.) But I suppose we don't really need to know; presumably we consider all the rules to be of reasonable size so we need ISLE to just handle them.

It's also worth noting that since build scripts are compiled in debug mode, rustc is building this without optimization.

jameysharp added a commit to jameysharp/wasmtime that referenced this issue Jul 10, 2024
In bytecodealliance#8919 we learned that `Codegen::emit_block` can overrun the stack
when generating Rust source for deeply-nested blocks. Stack usage can be
worse than one might expect because ISLE is called from a build script,
and those are always built in debug mode.

This commit avoids the problem by using an explicit heap-allocated stack
instead of recursion.

I recommend turning on the "ignore whitespace" option in your diff tool
of choice when reviewing this commit.

The amount of stack space that this recursive function uses is affected
by the version of rustc used to compile it, and the amount of stack
space available depends on the host platform. As a result, this was only
observed on Windows with a recent nightly version of rustc, but it could
eventually affect other platforms or compiler versions, especially as
ISLE rules grow in complexity.

Note that there are several other places in ISLE which recurse over the
user-provided rules. This commit does not change those, but they could
also become a problem in the future.
@jameysharp
Copy link
Contributor

@CryZe, could you test whether #8935 fixes this issue for you?

There are several other parts of ISLE which also recurse over the structure of a user-provided rule, so I'm concerned that we may have this problem again in the future. But emit_block is one of the last things to run so I believe all the other recursive functions are currently succeeding. As a result I don't want to change them right now.

@CryZe
Copy link
Contributor Author

CryZe commented Jul 10, 2024

The PR does indeed seem to fix the issue. Thanks for working on it :)

github-merge-queue bot pushed a commit that referenced this issue Jul 11, 2024
* ISLE: Make block codegen non-recursive

In #8919 we learned that `Codegen::emit_block` can overrun the stack
when generating Rust source for deeply-nested blocks. Stack usage can be
worse than one might expect because ISLE is called from a build script,
and those are always built in debug mode.

This commit avoids the problem by using an explicit heap-allocated stack
instead of recursion.

I recommend turning on the "ignore whitespace" option in your diff tool
of choice when reviewing this commit.

The amount of stack space that this recursive function uses is affected
by the version of rustc used to compile it, and the amount of stack
space available depends on the host platform. As a result, this was only
observed on Windows with a recent nightly version of rustc, but it could
eventually affect other platforms or compiler versions, especially as
ISLE rules grow in complexity.

Note that there are several other places in ISLE which recurse over the
user-provided rules. This commit does not change those, but they could
also become a problem in the future.

* Review comments: make stack manipulation local to emit_block
@jameysharp
Copy link
Contributor

I forgot to mark that PR as fixing this, so now that it's merged I'll close this issue.

alexcrichton pushed a commit to alexcrichton/wasmtime that referenced this issue Jul 12, 2024
* ISLE: Make block codegen non-recursive

In bytecodealliance#8919 we learned that `Codegen::emit_block` can overrun the stack
when generating Rust source for deeply-nested blocks. Stack usage can be
worse than one might expect because ISLE is called from a build script,
and those are always built in debug mode.

This commit avoids the problem by using an explicit heap-allocated stack
instead of recursion.

I recommend turning on the "ignore whitespace" option in your diff tool
of choice when reviewing this commit.

The amount of stack space that this recursive function uses is affected
by the version of rustc used to compile it, and the amount of stack
space available depends on the host platform. As a result, this was only
observed on Windows with a recent nightly version of rustc, but it could
eventually affect other platforms or compiler versions, especially as
ISLE rules grow in complexity.

Note that there are several other places in ISLE which recurse over the
user-provided rules. This commit does not change those, but they could
also become a problem in the future.

* Review comments: make stack manipulation local to emit_block
alexcrichton pushed a commit to alexcrichton/wasmtime that referenced this issue Jul 12, 2024
* ISLE: Make block codegen non-recursive

In bytecodealliance#8919 we learned that `Codegen::emit_block` can overrun the stack
when generating Rust source for deeply-nested blocks. Stack usage can be
worse than one might expect because ISLE is called from a build script,
and those are always built in debug mode.

This commit avoids the problem by using an explicit heap-allocated stack
instead of recursion.

I recommend turning on the "ignore whitespace" option in your diff tool
of choice when reviewing this commit.

The amount of stack space that this recursive function uses is affected
by the version of rustc used to compile it, and the amount of stack
space available depends on the host platform. As a result, this was only
observed on Windows with a recent nightly version of rustc, but it could
eventually affect other platforms or compiler versions, especially as
ISLE rules grow in complexity.

Note that there are several other places in ISLE which recurse over the
user-provided rules. This commit does not change those, but they could
also become a problem in the future.

* Review comments: make stack manipulation local to emit_block
fitzgen pushed a commit that referenced this issue Jul 12, 2024
* ISLE: Make block codegen non-recursive

In #8919 we learned that `Codegen::emit_block` can overrun the stack
when generating Rust source for deeply-nested blocks. Stack usage can be
worse than one might expect because ISLE is called from a build script,
and those are always built in debug mode.

This commit avoids the problem by using an explicit heap-allocated stack
instead of recursion.

I recommend turning on the "ignore whitespace" option in your diff tool
of choice when reviewing this commit.

The amount of stack space that this recursive function uses is affected
by the version of rustc used to compile it, and the amount of stack
space available depends on the host platform. As a result, this was only
observed on Windows with a recent nightly version of rustc, but it could
eventually affect other platforms or compiler versions, especially as
ISLE rules grow in complexity.

Note that there are several other places in ISLE which recurse over the
user-provided rules. This commit does not change those, but they could
also become a problem in the future.

* Review comments: make stack manipulation local to emit_block

Co-authored-by: Jamey Sharp <[email protected]>
@sunshowers
Copy link

Quite likely related: rust-lang/rust#128422

That's fundamentally a rustc issue, but would this fix work around that?

@cfallin
Copy link
Member

cfallin commented Aug 5, 2024

@sunshowers I don't think the fix above would address that issue unfortunately -- Jamey's change removes recursion (in favor of iteration with an explicit stack) in the ISLE DSL-to-Rust compiler, but the generated Rust code that causes rust-lang/rust#128422 will be exactly the same. (They're certainly related in the sense that the matcher decision tree gets quite deep!)

@sunshowers
Copy link

That makes sense! Thanks @cfallin.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Incorrect behavior in the current implementation that needs fixing cranelift Issues related to the Cranelift code generator
Projects
None yet
Development

No branches or pull requests

6 participants