about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm/src/llvm_util.rs
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2024-08-07 00:34:13 +0200
committerGitHub <noreply@github.com>2024-08-07 00:34:13 +0200
commit52c365b73155b2e0fb47557bce610d78d8eff303 (patch)
treeaedc8e5691f4978dc8c6071858ee439e7e9d63df /compiler/rustc_codegen_llvm/src/llvm_util.rs
parentf00a55188fa72694b52229c0ba3025e72f9bc24a (diff)
parent1c2705c6229c16d68c8769e570b5500a123aebfb (diff)
downloadrust-52c365b73155b2e0fb47557bce610d78d8eff303.tar.gz
rust-52c365b73155b2e0fb47557bce610d78d8eff303.zip
Rollup merge of #128687 - RalfJung:interpret-call-refactor, r=WaffleLapkin
interpret: refactor function call handling to be better-abstracted

Add a new function `init_stack_frame` that pushes a stack frame and passes the arguments, and use that basically everywhere that the raw underlying `push_stack_frame` used to be called. This splits the previous monster function `eval_fn_call` into two parts: figuring out the MIR to call and the arguments to pass, and then actually setting up the stack frame.

Also re-organize the files a bit:
- The previous `terminator.rs` is split into a new `call.rs` with all the argument-passing logic, and the rest goes into `step.rs` where the other main dispatcher functions already live (in particular, `eval_statement`).
- All the stack frame handling from `eval_context.rs` is moved to a new `stack.rs`.
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/llvm_util.rs')
0 files changed, 0 insertions, 0 deletions