diff --git a/compiler/rustc_codegen_gcc/src/builder.rs b/compiler/rustc_codegen_gcc/src/builder.rs index c12fa1a58ff..f5cda81f6ab 100644 --- a/compiler/rustc_codegen_gcc/src/builder.rs +++ b/compiler/rustc_codegen_gcc/src/builder.rs @@ -1,7 +1,6 @@ use std::borrow::Cow; use std::cell::Cell; use std::convert::TryFrom; -use std::fmt::Display; use std::ops::Deref; use gccjit::{ @@ -527,14 +526,14 @@ fn llbb(&self) -> Block<'gcc> { self.block } - fn append_block(cx: &'a CodegenCx<'gcc, 'tcx>, func: RValue<'gcc>, name: impl Display) -> Block<'gcc> { + fn append_block(cx: &'a CodegenCx<'gcc, 'tcx>, func: RValue<'gcc>, name: &str) -> Block<'gcc> { let func = cx.rvalue_as_function(func); - func.new_block(name.to_string()) + func.new_block(name) } - fn append_sibling_block(&mut self, name: impl Display) -> Block<'gcc> { + fn append_sibling_block(&mut self, name: &str) -> Block<'gcc> { let func = self.current_func(); - func.new_block(name.to_string()) + func.new_block(name) } fn switch_to_block(&mut self, block: Self::BasicBlock) { diff --git a/compiler/rustc_codegen_llvm/src/builder.rs b/compiler/rustc_codegen_llvm/src/builder.rs index b244ed959f9..63e59ea13fc 100644 --- a/compiler/rustc_codegen_llvm/src/builder.rs +++ b/compiler/rustc_codegen_llvm/src/builder.rs @@ -26,7 +26,6 @@ use rustc_target::spec::{HasTargetSpec, SanitizerSet, Target}; use smallvec::SmallVec; use std::borrow::Cow; -use std::fmt::Display; use std::iter; use std::ops::Deref; use std::ptr; @@ -154,24 +153,14 @@ fn llbb(&self) -> &'ll BasicBlock { fn set_span(&mut self, _span: Span) {} - fn append_block( - cx: &'a CodegenCx<'ll, 'tcx>, - llfn: &'ll Value, - name: impl Display, - ) -> &'ll BasicBlock { + fn append_block(cx: &'a CodegenCx<'ll, 'tcx>, llfn: &'ll Value, name: &str) -> &'ll BasicBlock { unsafe { - let c_str_name; - let name_ptr = if cx.tcx.sess.fewer_names() { - const { c"".as_ptr().cast() } - } else { - c_str_name = SmallCStr::new(&name.to_string()); - c_str_name.as_ptr() - }; - llvm::LLVMAppendBasicBlockInContext(cx.llcx, llfn, name_ptr) + let name = SmallCStr::new(name); + llvm::LLVMAppendBasicBlockInContext(cx.llcx, llfn, name.as_ptr()) } } - fn append_sibling_block(&mut self, name: impl Display) -> &'ll BasicBlock { + fn append_sibling_block(&mut self, name: &str) -> &'ll BasicBlock { Self::append_block(self.cx, self.llfn(), name) } diff --git a/compiler/rustc_codegen_llvm/src/lib.rs b/compiler/rustc_codegen_llvm/src/lib.rs index 72e5e2b042e..c84461e53eb 100644 --- a/compiler/rustc_codegen_llvm/src/lib.rs +++ b/compiler/rustc_codegen_llvm/src/lib.rs @@ -11,7 +11,6 @@ #![feature(exact_size_is_empty)] #![feature(extern_types)] #![feature(hash_raw_entry)] -#![feature(inline_const)] #![feature(iter_intersperse)] #![feature(let_chains)] #![feature(impl_trait_in_assoc_type)] diff --git a/compiler/rustc_codegen_ssa/src/mir/block.rs b/compiler/rustc_codegen_ssa/src/mir/block.rs index 3db6bc5b426..02e7bb05b77 100644 --- a/compiler/rustc_codegen_ssa/src/mir/block.rs +++ b/compiler/rustc_codegen_ssa/src/mir/block.rs @@ -83,11 +83,8 @@ fn llbb_with_cleanup>( // Cross-funclet jump - need a trampoline debug_assert!(base::wants_new_eh_instructions(fx.cx.tcx().sess)); debug!("llbb_with_cleanup: creating cleanup trampoline for {:?}", target); - let trampoline_llbb = Bx::append_block( - fx.cx, - fx.llfn, - format_args!("{:?}_cleanup_trampoline_{:?}", self.bb, target), - ); + let name = &format!("{:?}_cleanup_trampoline_{:?}", self.bb, target); + let trampoline_llbb = Bx::append_block(fx.cx, fx.llfn, name); let mut trampoline_bx = Bx::build(fx.cx, trampoline_llbb); trampoline_bx.cleanup_ret(self.funclet(fx).unwrap(), Some(lltarget)); trampoline_llbb @@ -1568,7 +1565,7 @@ fn landing_pad_for(&mut self, bb: mir::BasicBlock) -> Bx::BasicBlock { fn landing_pad_for_uncached(&mut self, bb: mir::BasicBlock) -> Bx::BasicBlock { let llbb = self.llbb(bb); if base::wants_new_eh_instructions(self.cx.sess()) { - let cleanup_bb = Bx::append_block(self.cx, self.llfn, format_args!("funclet_{bb:?}")); + let cleanup_bb = Bx::append_block(self.cx, self.llfn, &format!("funclet_{bb:?}")); let mut cleanup_bx = Bx::build(self.cx, cleanup_bb); let funclet = cleanup_bx.cleanup_pad(None, &[]); cleanup_bx.br(llbb); @@ -1691,7 +1688,7 @@ pub fn llbb(&mut self, bb: mir::BasicBlock) -> Bx::BasicBlock { pub fn try_llbb(&mut self, bb: mir::BasicBlock) -> Option { match self.cached_llbbs[bb] { CachedLlbb::None => { - let llbb = Bx::append_block(self.cx, self.llfn, format_args!("{bb:?}")); + let llbb = Bx::append_block(self.cx, self.llfn, &format!("{bb:?}")); self.cached_llbbs[bb] = CachedLlbb::Some(llbb); Some(llbb) } diff --git a/compiler/rustc_codegen_ssa/src/traits/builder.rs b/compiler/rustc_codegen_ssa/src/traits/builder.rs index 49c3101bc5e..36f37e3791b 100644 --- a/compiler/rustc_codegen_ssa/src/traits/builder.rs +++ b/compiler/rustc_codegen_ssa/src/traits/builder.rs @@ -22,8 +22,6 @@ use rustc_target::abi::{Abi, Align, Scalar, Size, WrappingRange}; use rustc_target::spec::HasTargetSpec; -use std::fmt::Display; - #[derive(Copy, Clone)] pub enum OverflowOp { Add, @@ -51,13 +49,9 @@ pub trait BuilderMethods<'a, 'tcx>: fn set_span(&mut self, span: Span); // FIXME(eddyb) replace uses of this with `append_sibling_block`. - fn append_block( - cx: &'a Self::CodegenCx, - llfn: Self::Function, - name: impl Display, - ) -> Self::BasicBlock; + fn append_block(cx: &'a Self::CodegenCx, llfn: Self::Function, name: &str) -> Self::BasicBlock; - fn append_sibling_block(&mut self, name: impl Display) -> Self::BasicBlock; + fn append_sibling_block(&mut self, name: &str) -> Self::BasicBlock; fn switch_to_block(&mut self, llbb: Self::BasicBlock);