Skip to content

Commit a914f90

Browse files
committed
Remove const_bitcast from ConstMethods
1 parent d2f4a4d commit a914f90

File tree

3 files changed

+13
-18
lines changed

3 files changed

+13
-18
lines changed

compiler/rustc_codegen_gcc/src/common.rs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,19 @@ impl<'gcc, 'tcx> CodegenCx<'gcc, 'tcx> {
2828
global
2929
// TODO(antoyo): set linkage.
3030
}
31+
32+
pub fn const_bitcast(&self, value: RValue<'gcc>, typ: Type<'gcc>) -> RValue<'gcc> {
33+
if value.get_type() == self.bool_type.make_pointer() {
34+
if let Some(pointee) = typ.get_pointee() {
35+
if pointee.dyncast_vector().is_some() {
36+
panic!()
37+
}
38+
}
39+
}
40+
// NOTE: since bitcast makes a value non-constant, don't bitcast if not necessary as some
41+
// SIMD builtins require a constant value.
42+
self.bitcast_if_needed(value, typ)
43+
}
3144
}
3245

3346
pub fn bytes_in_context<'gcc, 'tcx>(cx: &CodegenCx<'gcc, 'tcx>, bytes: &[u8]) -> RValue<'gcc> {
@@ -235,19 +248,6 @@ impl<'gcc, 'tcx> ConstMethods<'tcx> for CodegenCx<'gcc, 'tcx> {
235248
const_alloc_to_gcc(self, alloc)
236249
}
237250

238-
fn const_bitcast(&self, value: RValue<'gcc>, typ: Type<'gcc>) -> RValue<'gcc> {
239-
if value.get_type() == self.bool_type.make_pointer() {
240-
if let Some(pointee) = typ.get_pointee() {
241-
if pointee.dyncast_vector().is_some() {
242-
panic!()
243-
}
244-
}
245-
}
246-
// NOTE: since bitcast makes a value non-constant, don't bitcast if not necessary as some
247-
// SIMD builtins require a constant value.
248-
self.bitcast_if_needed(value, typ)
249-
}
250-
251251
fn const_ptr_byte_offset(&self, base_addr: Self::Value, offset: abi::Size) -> Self::Value {
252252
self.context
253253
.new_array_access(None, base_addr, self.const_usize(offset.bytes()))

compiler/rustc_codegen_llvm/src/common.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -307,10 +307,6 @@ impl<'ll, 'tcx> ConstMethods<'tcx> for CodegenCx<'ll, 'tcx> {
307307
const_alloc_to_llvm(self, alloc)
308308
}
309309

310-
fn const_bitcast(&self, val: &'ll Value, ty: &'ll Type) -> &'ll Value {
311-
self.const_bitcast(val, ty)
312-
}
313-
314310
fn const_ptr_byte_offset(&self, base_addr: Self::Value, offset: abi::Size) -> Self::Value {
315311
unsafe {
316312
llvm::LLVMConstInBoundsGEP2(

compiler/rustc_codegen_ssa/src/traits/consts.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,5 @@ pub trait ConstMethods<'tcx>: BackendTypes {
3636

3737
fn scalar_to_backend(&self, cv: Scalar, layout: abi::Scalar, llty: Self::Type) -> Self::Value;
3838

39-
fn const_bitcast(&self, val: Self::Value, ty: Self::Type) -> Self::Value;
4039
fn const_ptr_byte_offset(&self, val: Self::Value, offset: abi::Size) -> Self::Value;
4140
}

0 commit comments

Comments
 (0)