Skip to content

Commit bace45b

Browse files
committed
Remove extra geps for dyn data
1 parent b454716 commit bace45b

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

compiler/rustc_codegen_llvm/src/builder/gpu_offload.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -699,13 +699,14 @@ pub(crate) fn gen_call_handling<'ll, 'tcx>(
699699
a1: &'ll Value,
700700
a2: &'ll Value,
701701
a4: &'ll Value,
702+
is_dynamic: bool,
702703
) -> [&'ll Value; 3] {
703704
let cx = builder.cx;
704705
let i32_0 = cx.get_const_i32(0);
705706

706707
let gep1 = builder.inbounds_gep(ty, a1, &[i32_0, i32_0]);
707708
let gep2 = builder.inbounds_gep(ty, a2, &[i32_0, i32_0]);
708-
let gep3 = builder.inbounds_gep(ty2, a4, &[i32_0, i32_0]);
709+
let gep3 = if is_dynamic { builder.inbounds_gep(ty2, a4, &[i32_0, i32_0]) } else { a4 };
709710
[gep1, gep2, gep3]
710711
}
711712

@@ -729,7 +730,7 @@ pub(crate) fn gen_call_handling<'ll, 'tcx>(
729730

730731
// Step 2)
731732
let s_ident_t = offload_globals.ident_t_global;
732-
let geps = get_geps(builder, ty, ty2, a1, a2, a4);
733+
let geps = get_geps(builder, ty, ty2, a1, a2, a4, has_dynamic);
733734
generate_mapper_call(
734735
builder,
735736
geps,
@@ -762,7 +763,7 @@ pub(crate) fn gen_call_handling<'ll, 'tcx>(
762763
// %41 = call i32 @__tgt_target_kernel(ptr @1, i64 -1, i32 2097152, i32 256, ptr @.kernel_1.region_id, ptr %kernel_args)
763764

764765
// Step 4)
765-
let geps = get_geps(builder, ty, ty2, a1, a2, a4);
766+
let geps = get_geps(builder, ty, ty2, a1, a2, a4, has_dynamic);
766767
generate_mapper_call(
767768
builder,
768769
geps,

0 commit comments

Comments
 (0)