11.9 地址空间的推断
void mm_kernel(int *p, int n){
tile_static int tmp[30];
int id = get_global_id(0);
tmp[id] = 5566;
barrier(0);
p[id] = tmp[id];
}@mm_kernel.tmp = internal unnamed_addr global[30xi32] zeroinitializer, align 16, section "clamp_opencl_local"
define void @mm_kernel(i32 *nocapture %p, i32 %n){
%1 = tail call i32 bitcast (i32(...)* @get_global_id to i32 (i32)*)(i32 0)
%2 = sext i32 % to i64
%3 = getelementptr inbounds[30 x i32]* @mm_kernel.tmp, i64 0, i64 %2
%4 = tail call i32 bitcast (i32(...)* @barrier to i32(i32)*)(i32 0) #2
%5 = load i32 *%3, align 4, !tbaa!1
%6 = getelementptr inbounds i32* %p, i64 %2
store i32 %5, i32 * %6, align 4, !tbaa !1
ret void
}Last updated