diff options
| author | Maybe Waffle <waffle.lapkin@gmail.com> | 2024-02-15 19:54:37 +0000 |
|---|---|---|
| committer | Maybe Lapkin <waffle.lapkin@gmail.com> | 2024-07-07 17:11:04 +0200 |
| commit | 484152d562f6babaacb3fae08cc5f70ee550e9ee (patch) | |
| tree | 300d1010e369b3960213e11a75713fa64e0a0525 /compiler/rustc_codegen_cranelift | |
| parent | e2cf31a6148725bde4ea48acf1e4fe72675257a2 (diff) | |
| download | rust-484152d562f6babaacb3fae08cc5f70ee550e9ee.tar.gz rust-484152d562f6babaacb3fae08cc5f70ee550e9ee.zip | |
Support tail calls in mir via `TerminatorKind::TailCall`
Diffstat (limited to 'compiler/rustc_codegen_cranelift')
| -rw-r--r-- | compiler/rustc_codegen_cranelift/src/base.rs | 5 | ||||
| -rw-r--r-- | compiler/rustc_codegen_cranelift/src/constant.rs | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/compiler/rustc_codegen_cranelift/src/base.rs b/compiler/rustc_codegen_cranelift/src/base.rs index c5b4277015a..5adbbb09ac8 100644 --- a/compiler/rustc_codegen_cranelift/src/base.rs +++ b/compiler/rustc_codegen_cranelift/src/base.rs @@ -491,6 +491,11 @@ fn codegen_fn_body(fx: &mut FunctionCx<'_, '_, '_>, start_block: Block) { ) }); } + // FIXME(explicit_tail_calls): add support for tail calls to the cranelift backend, once cranelift supports tail calls + TerminatorKind::TailCall { fn_span, .. } => span_bug!( + *fn_span, + "tail calls are not yet supported in `rustc_codegen_cranelift` backend" + ), TerminatorKind::InlineAsm { template, operands, diff --git a/compiler/rustc_codegen_cranelift/src/constant.rs b/compiler/rustc_codegen_cranelift/src/constant.rs index 87c5da3b7c3..fc12f0ff738 100644 --- a/compiler/rustc_codegen_cranelift/src/constant.rs +++ b/compiler/rustc_codegen_cranelift/src/constant.rs @@ -565,6 +565,7 @@ pub(crate) fn mir_operand_get_const_val<'tcx>( { return None; } + TerminatorKind::TailCall { .. } => return None, TerminatorKind::Call { .. } => {} } } |
