diff options
| author | kadmin <julianknodt@gmail.com> | 2021-01-23 08:57:04 +0000 |
|---|---|---|
| committer | kadmin <julianknodt@gmail.com> | 2021-03-09 16:54:14 +0000 |
| commit | 217ff6b7ea5ca80b01ee1436914a061ed190d8a8 (patch) | |
| tree | 4cf4cc9a0bca8791b41ccaf47844ec2c85af5f9b /compiler/rustc_codegen_ssa/src | |
| parent | d4ae9ff82664a1d7473e32d59819c208efce48c7 (diff) | |
| download | rust-217ff6b7ea5ca80b01ee1436914a061ed190d8a8.tar.gz rust-217ff6b7ea5ca80b01ee1436914a061ed190d8a8.zip | |
Switch to changing cp_non_overlap in tform
It was suggested to lower this in MIR instead of ssa, so do that instead.
Diffstat (limited to 'compiler/rustc_codegen_ssa/src')
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/mir/block.rs | 20 | ||||
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/mir/intrinsic.rs | 6 |
2 files changed, 2 insertions, 24 deletions
diff --git a/compiler/rustc_codegen_ssa/src/mir/block.rs b/compiler/rustc_codegen_ssa/src/mir/block.rs index 1150d4d7348..e148ed7ad3b 100644 --- a/compiler/rustc_codegen_ssa/src/mir/block.rs +++ b/compiler/rustc_codegen_ssa/src/mir/block.rs @@ -643,23 +643,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { match intrinsic { None | Some(sym::drop_in_place) => {} - Some(sym::copy_nonoverlapping) => { - bx = self.codegen_statement( - bx, - &rustc_middle::mir::Statement { - source_info: rustc_middle::mir::SourceInfo::outermost(span), - kind: rustc_middle::mir::StatementKind::CopyNonOverlapping( - box rustc_middle::mir::CopyNonOverlapping { - src: args[0].clone(), - dst: args[1].clone(), - count: args[2].clone(), - }, - ), - }, - ); - helper.funclet_br(self, &mut bx, destination.unwrap().1); - return; - } + Some(sym::copy_nonoverlapping) => unreachable!(), Some(intrinsic) => { let dest = match ret_dest { _ if fn_abi.ret.is_indirect() => llargs[0], @@ -702,7 +686,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { }) .collect(); - self.codegen_intrinsic_call( + Self::codegen_intrinsic_call( &mut bx, *instance.as_ref().unwrap(), &fn_abi, diff --git a/compiler/rustc_codegen_ssa/src/mir/intrinsic.rs b/compiler/rustc_codegen_ssa/src/mir/intrinsic.rs index 00fc5b66061..8502309b90e 100644 --- a/compiler/rustc_codegen_ssa/src/mir/intrinsic.rs +++ b/compiler/rustc_codegen_ssa/src/mir/intrinsic.rs @@ -49,7 +49,6 @@ fn memset_intrinsic<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>>( impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { pub fn codegen_intrinsic_call( - &self, bx: &mut Bx, instance: ty::Instance<'tcx>, fn_abi: &FnAbi<'tcx, Ty<'tcx>>, @@ -126,11 +125,6 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { let offset = args[1].immediate(); bx.gep(ptr, &[offset]) } - - sym::copy_nonoverlapping => { - // handled explicitly in compiler/rustc_codegen_ssa/src/mir/block.rs - unreachable!(); - } sym::copy => { copy_intrinsic( bx, |
