This is a cleanup to help prepare for #5464. Most of the diff is inlining the closure for `mark_all_uses_as_multiple` which was only called once. That avoids some borrow-checker challenges. The key change is that the former `push_args_on_stack` closure no longer actually pushes the iterator on the stack, but just returns it. That way this closure doesn't need the name of the stack's type. It also allows it to be reused in the debug_assert.
This crate contains the core Cranelift code generator. It translates code from an intermediate representation into executable machine code.