fn find_rust_call_tuples<'tcx>(
tcx: TyCtxt<'tcx>,
body: &Body<'tcx>,
) -> DenseBitSet<Local>Expand description
Search for tuple locals passed to calls using the “rust-call” ABI.
For rust-call ABI calls, caller-side MIR passes the logical arguments as a tuple operand. We want to avoid remapping other locals into fields of that tuple, especially if one of those locals is borrowed.
Since the tuple itself is never borrowed, it is trivial for LLVM alias analysis to see that accesses to one argument do not affect the others, but merging the arguments into tuple fields from the start can hide that independence.