Prefixed type methods & removed trait impl for write::CodegenContext
This commit is contained in:
parent
6d42574b7a
commit
e224f063e8
20 changed files with 263 additions and 270 deletions
|
@ -234,13 +234,13 @@ pub fn unsize_thin_ptr(
|
|||
(&ty::RawPtr(ty::TypeAndMut { ty: a, .. }),
|
||||
&ty::RawPtr(ty::TypeAndMut { ty: b, .. })) => {
|
||||
assert!(bx.cx().type_is_sized(a));
|
||||
let ptr_ty = bx.cx().ptr_to(bx.cx().layout_of(b).llvm_type(bx.cx()));
|
||||
let ptr_ty = bx.cx().type_ptr_to(bx.cx().layout_of(b).llvm_type(bx.cx()));
|
||||
(bx.pointercast(src, ptr_ty), unsized_info(bx.cx(), a, b, None))
|
||||
}
|
||||
(&ty::Adt(def_a, _), &ty::Adt(def_b, _)) if def_a.is_box() && def_b.is_box() => {
|
||||
let (a, b) = (src_ty.boxed_ty(), dst_ty.boxed_ty());
|
||||
assert!(bx.cx().type_is_sized(a));
|
||||
let ptr_ty = bx.cx().ptr_to(bx.cx().layout_of(b).llvm_type(bx.cx()));
|
||||
let ptr_ty = bx.cx().type_ptr_to(bx.cx().layout_of(b).llvm_type(bx.cx()));
|
||||
(bx.pointercast(src, ptr_ty), unsized_info(bx.cx(), a, b, None))
|
||||
}
|
||||
(&ty::Adt(def_a, _), &ty::Adt(def_b, _)) => {
|
||||
|
@ -353,10 +353,10 @@ fn cast_shift_rhs<'ll, F, G>(bx: &Builder<'_, 'll, '_>,
|
|||
if op.is_shift() {
|
||||
let mut rhs_llty = bx.cx().val_ty(rhs);
|
||||
let mut lhs_llty = bx.cx().val_ty(lhs);
|
||||
if bx.cx().kind(rhs_llty) == TypeKind::Vector {
|
||||
if bx.cx().type_kind(rhs_llty) == TypeKind::Vector {
|
||||
rhs_llty = bx.cx().element_type(rhs_llty)
|
||||
}
|
||||
if bx.cx().kind(lhs_llty) == TypeKind::Vector {
|
||||
if bx.cx().type_kind(lhs_llty) == TypeKind::Vector {
|
||||
lhs_llty = bx.cx().element_type(lhs_llty)
|
||||
}
|
||||
let rhs_sz = bx.cx().int_width(rhs_llty);
|
||||
|
@ -393,8 +393,8 @@ pub fn from_immediate<'a, 'll: 'a, 'tcx: 'll>(
|
|||
bx: &Builder<'_ ,'ll, '_, &'ll Value>,
|
||||
val: &'ll Value
|
||||
) -> &'ll Value {
|
||||
if bx.cx().val_ty(val) == bx.cx().i1() {
|
||||
bx.zext(val, bx.cx().i8())
|
||||
if bx.cx().val_ty(val) == bx.cx().type_i1() {
|
||||
bx.zext(val, bx.cx().type_i8())
|
||||
} else {
|
||||
val
|
||||
}
|
||||
|
@ -417,7 +417,7 @@ pub fn to_immediate_scalar(
|
|||
scalar: &layout::Scalar,
|
||||
) -> &'ll Value {
|
||||
if scalar.is_bool() {
|
||||
return bx.trunc(val, bx.cx().i1());
|
||||
return bx.trunc(val, bx.cx().type_i1());
|
||||
}
|
||||
val
|
||||
}
|
||||
|
@ -434,13 +434,13 @@ pub fn call_memcpy<'a, 'll: 'a, 'tcx: 'll>(
|
|||
if flags.contains(MemFlags::NONTEMPORAL) {
|
||||
// HACK(nox): This is inefficient but there is no nontemporal memcpy.
|
||||
let val = bx.load(src, src_align);
|
||||
let ptr = bx.pointercast(dst, bx.cx().ptr_to(bx.cx().val_ty(val)));
|
||||
let ptr = bx.pointercast(dst, bx.cx().type_ptr_to(bx.cx().val_ty(val)));
|
||||
bx.store_with_flags(val, ptr, dst_align, flags);
|
||||
return;
|
||||
}
|
||||
let cx = bx.cx();
|
||||
let src_ptr = bx.pointercast(src, cx.i8p());
|
||||
let dst_ptr = bx.pointercast(dst, cx.i8p());
|
||||
let src_ptr = bx.pointercast(src, cx.type_i8p());
|
||||
let dst_ptr = bx.pointercast(dst, cx.type_i8p());
|
||||
let size = bx.intcast(n_bytes, cx.isize_ty, false);
|
||||
let volatile = flags.contains(MemFlags::VOLATILE);
|
||||
bx.memcpy(dst_ptr, dst_align.abi(), src_ptr, src_align.abi(), size, volatile);
|
||||
|
@ -551,7 +551,7 @@ fn maybe_create_entry_wrapper(cx: &CodegenCx) {
|
|||
use_start_lang_item: bool,
|
||||
) {
|
||||
let llfty =
|
||||
cx.func(&[cx.t_int(), cx.ptr_to(cx.i8p())], cx.t_int());
|
||||
cx.type_func(&[cx.type_int(), cx.type_ptr_to(cx.type_i8p())], cx.type_int());
|
||||
|
||||
let main_ret_ty = cx.tcx.fn_sig(rust_main_def_id).output();
|
||||
// Given that `main()` has no arguments,
|
||||
|
@ -594,7 +594,7 @@ fn maybe_create_entry_wrapper(cx: &CodegenCx) {
|
|||
start_def_id,
|
||||
cx.tcx.intern_substs(&[main_ret_ty.into()]),
|
||||
);
|
||||
(start_fn, vec![bx.pointercast(rust_main, cx.ptr_to(cx.i8p())),
|
||||
(start_fn, vec![bx.pointercast(rust_main, cx.type_ptr_to(cx.type_i8p())),
|
||||
arg_argc, arg_argv])
|
||||
} else {
|
||||
debug!("using user-defined start fn");
|
||||
|
@ -602,7 +602,7 @@ fn maybe_create_entry_wrapper(cx: &CodegenCx) {
|
|||
};
|
||||
|
||||
let result = bx.call(start_fn, &args, None);
|
||||
bx.ret(bx.intcast(result, cx.t_int(), true));
|
||||
bx.ret(bx.intcast(result, cx.type_int(), true));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1151,7 +1151,10 @@ fn compile_codegen_unit<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
|
|||
if !cx.used_statics.borrow().is_empty() {
|
||||
let name = const_cstr!("llvm.used");
|
||||
let section = const_cstr!("llvm.metadata");
|
||||
let array = cx.const_array(&cx.ptr_to(cx.i8()), &*cx.used_statics.borrow());
|
||||
let array = cx.const_array(
|
||||
&cx.type_ptr_to(cx.type_i8()),
|
||||
&*cx.used_statics.borrow()
|
||||
);
|
||||
|
||||
unsafe {
|
||||
let g = llvm::LLVMAddGlobal(cx.llmod,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue