Skip to content

Commit

Permalink
An attempt to introduce opaque pointers to flang
Browse files Browse the repository at this point in the history
Signed-off-by: Paul Osmialowski <pawel.osmialowski@arm.com>
  • Loading branch information
pawosm-arm authored and xinliu-hnc committed Nov 17, 2022
1 parent b28249a commit 4eaaf77
Show file tree
Hide file tree
Showing 28 changed files with 147 additions and 188 deletions.
6 changes: 3 additions & 3 deletions test/debug_info/allocatable_arr_param.f90
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
!RUN: %flang -gdwarf-4 -S -emit-llvm %s -o - | FileCheck %s

!CHECK-LABEL: define void @callee_
!CHECK: call void @llvm.dbg.declare(metadata i64* %"array$p", metadata [[DLOC:![0-9]+]]
!CHECK-NEXT: call void @llvm.dbg.declare(metadata i64* %"array$p", metadata [[ALLOCATED:![0-9]+]]
!CHECK-NEXT: call void @llvm.dbg.declare(metadata i64* %"array$sd", metadata [[ARRAY:![0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.declare(metadata ptr %"array$p", metadata [[DLOC:![0-9]+]]
!CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr %"array$p", metadata [[ALLOCATED:![0-9]+]]
!CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr %"array$sd", metadata [[ARRAY:![0-9]+]], metadata !DIExpression())
!CHECK: [[ARRAY]] = !DILocalVariable(name: "array",
!CHECK-SAME: arg: 2,
!CHECK-SAME: type: [[TYPE:![0-9]+]]
Expand Down
4 changes: 2 additions & 2 deletions test/debug_info/assumed_rank.f90
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
!RUN: %flang -gdwarf-4 -S -emit-llvm %s -o - | FileCheck %s --check-prefix=DWARF4
!RUN: %flang -gdwarf-5 -S -emit-llvm %s -o - | FileCheck %s --check-prefix=DWARF5

!DWARF4: call void @llvm.dbg.value(metadata i64* %ararray, metadata [[DLOC:![0-9]+]], metadata !DIExpression())
!DWARF4: call void @llvm.dbg.value(metadata ptr %ararray, metadata [[DLOC:![0-9]+]], metadata !DIExpression())
!DWARF4: !DILocalVariable(name: "ararray"
!DWARF4-SAME: arg: 2
!DWARF4-SAME: type: [[ARTYPE:![0-9]+]])
Expand All @@ -18,7 +18,7 @@
!DWARF4: [[ELEM7]] = !DISubrange(lowerBound: !DIExpression(DW_OP_push_object_address, DW_OP_plus_uconst, 368, DW_OP_deref), upperBound: !DIExpression(DW_OP_push_object_address, DW_OP_plus_uconst, 408, DW_OP_deref), stride: !DIExpression(DW_OP_push_object_address, DW_OP_plus_uconst, 400, DW_OP_deref, DW_OP_push_object_address, DW_OP_plus_uconst, 24, DW_OP_deref, DW_OP_mul))


!DWARF5: call void @llvm.dbg.value(metadata i64* %ararray, metadata [[DLOC:![0-9]+]], metadata !DIExpression())
!DWARF5: call void @llvm.dbg.value(metadata ptr %ararray, metadata [[DLOC:![0-9]+]], metadata !DIExpression())
!DWARF5: !DILocalVariable(name: "ararray"
!DWARF5-SAME: arg: 2
!DWARF5-SAME: type: [[ARTYPE:![0-9]+]])
Expand Down
2 changes: 1 addition & 1 deletion test/debug_info/assumed_shape.f90
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
!RUN: %flang -g -S -emit-llvm %s -o - | FileCheck %s

!CHECK: call void @llvm.dbg.declare(metadata i64* %assume, metadata [[ASSUME:![0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.declare(metadata ptr %assume, metadata [[ASSUME:![0-9]+]], metadata !DIExpression())
!CHECK: [[TYPE:![0-9]+]] = !DICompositeType(tag: DW_TAG_array_type, baseType: {{![0-9]+}}, size: 32, align: 32, elements: [[ELEMS:![0-9]+]])
!CHECK: [[ELEMS]] = !{[[ELEM1:![0-9]+]], [[ELEM2:![0-9]+]], [[ELEM3:![0-9]+]], [[ELEM4:![0-9]+]]
!CHECK: [[ELEM1]] = !DISubrange(lowerBound: 1, upperBound: 5)
Expand Down
4 changes: 2 additions & 2 deletions test/debug_info/assumed_shape_non_contiguous.f90
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
!RUN: %flang -g -S -emit-llvm %s -o - | FileCheck %s

!CHECK: call void @llvm.dbg.value(metadata i64* %array, metadata [[ARRAYDL:![0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.declare(metadata i64* %"array$sd", metadata [[ARRAY:![0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.value(metadata ptr %array, metadata [[ARRAYDL:![0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.declare(metadata ptr %"array$sd", metadata [[ARRAY:![0-9]+]], metadata !DIExpression())
!CHECK-LABEL: distinct !DICompileUnit(language: DW_LANG_Fortran90,
!CHECK: [[ARRAY]] = !DILocalVariable(name: "array"
!CHECK-SAME: arg: 3
Expand Down
4 changes: 2 additions & 2 deletions test/debug_info/assumed_size_array.f90
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
!RUN: %flang -g -S -emit-llvm %s -o - | FileCheck %s

!CHECK: call void @llvm.dbg.declare(metadata i64* %array1, metadata [[ARRAY1:![0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.declare(metadata i64* %array2, metadata [[ARRAY2:![0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.declare(metadata ptr %array1, metadata [[ARRAY1:![0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.declare(metadata ptr %array2, metadata [[ARRAY2:![0-9]+]], metadata !DIExpression())
!CHECK: [[TYPE1:![0-9]+]] = !DICompositeType(tag: DW_TAG_array_type, baseType: {{![0-9]+}}, align: 32, elements: [[ELEMS1:![0-9]+]])
!CHECK: [[ELEMS1]] = !{[[ELEM11:![0-9]+]]}
!CHECK: [[ELEM11]] = !DISubrange(lowerBound: 1)
Expand Down
4 changes: 2 additions & 2 deletions test/debug_info/byval-name.f90
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
! operation using them are well formed.
!CHECK: sub_(i32 [[PREFIXED_ARG_NAME:%_V_arg_abc.arg]])
!CHECK: [[PREFIXED_LOCAL_NAME:%_V_arg_abc.addr]] = alloca i32, align 4
!CHECK: call void @llvm.dbg.declare(metadata i32* [[PREFIXED_LOCAL_NAME]]
!CHECK: store i32 [[PREFIXED_ARG_NAME]], i32* [[PREFIXED_LOCAL_NAME]], align 4
!CHECK: call void @llvm.dbg.declare(metadata ptr [[PREFIXED_LOCAL_NAME]]
!CHECK: store i32 [[PREFIXED_ARG_NAME]], ptr [[PREFIXED_LOCAL_NAME]], align 4

!Verify the DebugInfo metadata contains prefix _V_ truncated names.
!CHECK: DILocalVariable(name: "arg_abc"
Expand Down
2 changes: 1 addition & 1 deletion test/debug_info/cray_ptr_param.f90
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
!RUN: %flang -gdwarf-4 -S -emit-llvm %s -o - | FileCheck %s

!CHECK-LABEL: define internal void @main_callee
!CHECK: call void @llvm.dbg.declare(metadata i64* %callee_ptr, metadata [[CALLEE_PTR:![0-9]+]]
!CHECK: call void @llvm.dbg.declare(metadata ptr %callee_ptr, metadata [[CALLEE_PTR:![0-9]+]]
!CHECK: [[CALLEE_PTR]] = !DILocalVariable(name: "callee_ptr"
!CHECK-SAME: arg: 1

Expand Down
6 changes: 3 additions & 3 deletions test/debug_info/pointer_arr_param.f90
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
!RUN: %flang -gdwarf-4 -S -emit-llvm %s -o - | FileCheck %s

!CHECK-LABEL: define void @callee_
!CHECK: call void @llvm.dbg.declare(metadata i64* %"array$p", metadata [[DLOC:![0-9]+]]
!CHECK-NEXT: call void @llvm.dbg.declare(metadata i64* %"array$p", metadata [[ASSOCIATED:![0-9]+]]
!CHECK-NEXT: call void @llvm.dbg.declare(metadata i64* %"array$sd", metadata [[ARRAY:![0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.declare(metadata ptr %"array$p", metadata [[DLOC:![0-9]+]]
!CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr %"array$p", metadata [[ASSOCIATED:![0-9]+]]
!CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr %"array$sd", metadata [[ARRAY:![0-9]+]], metadata !DIExpression())
!CHECK: [[ARRAY]] = !DILocalVariable(name: "array"
!CHECK-SAME: arg: 2
!CHECK-SAME: type: [[TYPE:![0-9]+]]
Expand Down
6 changes: 3 additions & 3 deletions test/debug_info/pointer_array_openmp.f90
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

!CHECK: define internal void @main_sub
!CHECK: define internal void @__nv_main_sub_
!CHECK: call void @llvm.dbg.declare(metadata double** %"res$p
!CHECK-NEXT: call void @llvm.dbg.declare(metadata double** %"res$p
!CHECK-NEXT: call void @llvm.dbg.declare(metadata [16 x i64]* %"res$sd
!CHECK: call void @llvm.dbg.declare(metadata ptr %"res$p
!CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr %"res$p
!CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr %"res$sd

program main
type :: dtype
Expand Down
6 changes: 3 additions & 3 deletions test/debug_info/prolog.f90
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
!CHECK: define void @show_
!CHECK: call void @llvm.dbg.declare
!CHECK-SAME: , !dbg {{![0-9]+}}
!CHECK-NOT: bitcast i64* %"array$sd" to i8*, !dbg
!CHECK: store i64 {{%[0-9]+}}, i64* %z_b_3_{{[0-9]+}}, align 8
!CHECK-NOT: bitcast ptr %"array$sd" to ptr, !dbg
!CHECK: store i64 {{%[0-9]+}}, ptr %z_b_3_{{[0-9]+}}, align 8
!CHECK: br label
!CHECK: ret void, !dbg {{![0-9]+}}
subroutine show (message, array)
Expand All @@ -18,7 +18,7 @@ subroutine show (message, array)
end subroutine show

!CHECK: define void @MAIN_
!CHECK-NOT: bitcast void (...)* @fort_init to void (i8*, ...)*, !dbg {{![0-9]+}}
!CHECK-NOT: bitcast ptr @fort_init to ptr, !dbg {{![0-9]+}}
!CHECK: call void @llvm.dbg.declare
!CHECK-SAME: , !dbg {{![0-9]+}}
!CHECK: ret void, !dbg
Expand Down
6 changes: 3 additions & 3 deletions test/debug_info/redundant_inst.f90
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
!RUN: llvm-dwarfdump --debug-line %t | FileCheck %s --check-prefix=LINETABLE

!Check that `store` instruction is getting emitted for the second assignment.
!STORE: store i32 4, i32* %[[VAR_A:.*]], align 4
!STORE: %[[TEMP:.*]] = load i32, i32* %[[VAR_A]], align 4, !dbg ![[LOCATION:.*]]
!STORE: store i32 %[[TEMP]], i32* %[[VAR_A]], align 4, !dbg ![[LOCATION]]
!STORE: store i32 4, ptr %[[VAR_A:.*]], align 4
!STORE: %[[TEMP:.*]] = load i32, ptr %[[VAR_A]], align 4, !dbg ![[LOCATION:.*]]
!STORE: store i32 %[[TEMP]], ptr %[[VAR_A]], align 4, !dbg ![[LOCATION]]
!STORE: ![[LOCATION]] = !DILocation(line: 19, column: 1, scope: !{{.*}})

!Check the line table entry of the second assignment.
Expand Down
2 changes: 1 addition & 1 deletion test/debug_info/result_var.f90
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
!RUN: %flang -g -S -emit-llvm %s -o - | FileCheck %s

!CHECK: call void @llvm.dbg.declare(metadata i32* %rvar_{{[0-9]+}}, metadata [[RESULT:![0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.declare(metadata ptr %rvar_{{[0-9]+}}, metadata [[RESULT:![0-9]+]], metadata !DIExpression())
!CHECK: [[RESULT]] = !DILocalVariable(name: "rvar"

function func(arg) result(rvar)
Expand Down
18 changes: 9 additions & 9 deletions test/debug_info/retained-nodes.f90
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@

subroutine addf(a, b, c, d, e, f, g, h, i)
integer :: a, b, c, d, e, f, g, h, i
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata i64* %a, metadata [[A:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata i64* %b, metadata [[B:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata i64* %c, metadata [[C:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata i64* %d, metadata [[D:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata i64* %e, metadata [[E:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata i64* %f, metadata [[F:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata i64* %g, metadata [[G:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata i64* %h, metadata [[H:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata i64* %i, metadata [[I:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata ptr %a, metadata [[A:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata ptr %b, metadata [[B:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata ptr %c, metadata [[C:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata ptr %d, metadata [[D:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata ptr %e, metadata [[E:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata ptr %f, metadata [[F:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata ptr %g, metadata [[G:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata ptr %h, metadata [[H:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata ptr %i, metadata [[I:![0-9]+]]
end subroutine

! CHECK-DAG: [[NODES:![0-9]+]] = !{{{.*}}[[A]], [[B]], [[C]], [[D]], [[E]], [[F]], [[G]], [[H]], [[I]]{{.*}}}
Expand Down
2 changes: 1 addition & 1 deletion test/debug_info/scalar_allocatable.f90
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

!Ensure that for an allocatable variable, we're taking the type of
!allocatable variable as DW_TAG_pointer_type.
!CHECK: call void @llvm.dbg.declare(metadata double** %{{.*}}, metadata ![[DILocalVariable:[0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.declare(metadata ptr %{{.*}}, metadata ![[DILocalVariable:[0-9]+]], metadata !DIExpression())
!CHECK: ![[DILocalVariable]] = !DILocalVariable(name: "alcvar"
!CHECK-SAME: type: ![[PTRTYPE:[0-9]+]]
!CHECK: ![[PTRTYPE]] = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: ![[TYPE:[0-9]+]]
Expand Down
4 changes: 2 additions & 2 deletions test/directives/getarg.f90
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ subroutine test()

call getarg(pos, arg)
end subroutine
! CHECK: bitcast void ({{.*}})* @f90_getarga to void (i8*, i8*, i8*, i64{{.*}})*,
! CHECK-NOT: bitcast void ({{.*}})* @getarg_ to void (i8, i8, i64{{.*}})*,
! CHECK: bitcast ptr @f90_getarga to ptr,
! CHECK-NOT: bitcast ptr @getarg_ to ptr,
10 changes: 5 additions & 5 deletions test/directives/prefetch.f90
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ subroutine prefetch_dir(a1, a2)
end subroutine prefetch_dir

!! Ensure that the offset generated for the prefetch of a2(i + 256) is correct.
! CHECK-PREFETCH: [[a1:%[0-9]+]] = bitcast i64* %a1 to i8*
! CHECK-PREFETCH: [[a2:%[0-9]+]] = bitcast i64* %a2 to i8*
! CHECK-PREFETCH: [[a2base:%[0-9]+]] = getelementptr i8, i8* [[a2]], i64 1020
! CHECK-PREFETCH: [[a1:%[0-9]+]] = bitcast ptr %a1 to ptr
! CHECK-PREFETCH: [[a2:%[0-9]+]] = bitcast ptr %a2 to ptr
! CHECK-PREFETCH: [[a2base:%[0-9]+]] = getelementptr i8, ptr [[a2]], i64 1020
! CHECK-PREFETCH: [[i:%[0-9]+]] = load i32
! CHECK-PREFETCH: [[TMP1:%[0-9]+]] = sext i32 [[i]] to i64
! CHECK-PREFETCH: [[TMP2:%[0-9]+]] = mul nsw i64 [[TMP1]], 4
! CHECK-PREFETCH: [[a2elem:%[0-9]+]] = getelementptr i8, i8* [[a2base]], i64 [[TMP2]]
! CHECK-PREFETCH: call void @llvm.prefetch{{.*}}(i8* [[a2elem]], i32 0, i32 3, i32 1)
! CHECK-PREFETCH: [[a2elem:%[0-9]+]] = getelementptr i8, ptr [[a2base]], i64 [[TMP2]]
! CHECK-PREFETCH: call void @llvm.prefetch{{.*}}(ptr [[a2elem]], i32 0, i32 3, i32 1)
! CHECK-PREFETCH: declare void @llvm.prefetch{{.*}}
! CHECK-NOPREFETCH-NOT: @llvm.prefetch
4 changes: 2 additions & 2 deletions test/llvm_ir_correct/assign_cray_pointer_in_data.f
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ PROGRAM MINIMAL
IMPLICIT NONE
REAL OLD(1)
POINTER(IOLD, OLD)
! CHECK: %struct.STATICS1 = type <{ i8* }>
! CHECK: %struct.STATICS1 = type <{ ptr }>
DATA IOLD/-1/
! CHECK: @.STATICS1 = internal global %struct.STATICS1 <{ i8* inttoptr (i64 -1 to i8*) }>
! CHECK: @.STATICS1 = internal global %struct.STATICS1 <{ ptr inttoptr (i64 -1 to ptr) }>
END PROGRAM MINIMAL
2 changes: 1 addition & 1 deletion test/llvm_ir_correct/daz.f90
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

! RUN: %flang -target x86_64-unknown-unknown -Mdaz %s -S -emit-llvm -o - | FileCheck %s
! REQUIRES: x86_64-host
! CHECK: @llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @__daz, i8* null }]
! CHECK: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @__daz, ptr null }]

program daz
end program
Expand Down
16 changes: 8 additions & 8 deletions test/llvm_ir_correct/len_intrinsic.f90
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ subroutine s1(x)
print *, s1_test_len
end subroutine
! CONVERT: define void @s1_
! CONVERT: %[[LOAD_IGNORE:[0-9]+]] = load i64, i64* %"s1_str$len
! CONVERT: %[[LOAD:[0-9]+]] = load i64, i64* %"s1_str$len
! CONVERT: %[[LOAD_IGNORE:[0-9]+]] = load i64, ptr %"s1_str$len
! CONVERT: %[[LOAD:[0-9]+]] = load i64, ptr %"s1_str$len
! CONVERT: %[[TRUNC:[0-9]+]] = trunc i64 %[[LOAD]] to i32
! CONVERT: store i32 %[[TRUNC]], i32* %s1_test_len
! CONVERT: store i32 %[[TRUNC]], ptr %s1_test_len
! CONVERT_I8: define void @s1_
! CONVERT_I8: %[[LOAD_IGNORE:[0-9]+]] = load i64, i64* %"s1_str$len
! CONVERT_I8: %[[LOAD:[0-9]+]] = load i64, i64* %"s1_str$len
! CONVERT_I8: store i64 %[[LOAD]], i64* %s1_test_len
! CONVERT_I8: %[[LOAD_IGNORE:[0-9]+]] = load i64, ptr %"s1_str$len
! CONVERT_I8: %[[LOAD:[0-9]+]] = load i64, ptr %"s1_str$len
! CONVERT_I8: store i64 %[[LOAD]], ptr %s1_test_len

subroutine s2()
character(len=100) :: s2_str
Expand All @@ -33,6 +33,6 @@ subroutine s2()
print *, s2_test_len
end subroutine
! NO_CONVERT: define void @s2_
! NO_CONVERT: store i32 100, i32* %s2_test_len
! NO_CONVERT: store i32 100, ptr %s2_test_len
! NO_CONVERT_I8: define void @s2_
! NO_CONVERT_I8: store i64 100, i64* %s2_test_len
! NO_CONVERT_I8: store i64 100, ptr %s2_test_len
8 changes: 4 additions & 4 deletions test/llvm_ir_correct/omp_atomic_load_logical.f90
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ subroutine sub8
do
!$OMP ATOMIC READ
v = l8
! //CHECK: load atomic i8, i8*
! //CHECK: load atomic i8, ptr
if (v) exit
end do
end subroutine
Expand All @@ -37,7 +37,7 @@ subroutine sub16
do
!$OMP ATOMIC READ
v = l16
! //CHECK: load atomic i16, i16*
! //CHECK: load atomic i16, ptr
if (v) exit
end do
end subroutine
Expand All @@ -50,7 +50,7 @@ subroutine sub32
do
!$OMP ATOMIC READ
v = l32
! //CHECK: load atomic i32, i32*
! //CHECK: load atomic i32, ptr
if (v) exit
end do
end subroutine
Expand All @@ -63,7 +63,7 @@ subroutine sub64
do
!$OMP ATOMIC READ
v = l64
! //CHECK: load atomic i64, i64*
! //CHECK: load atomic i64, ptr
if (v) exit
end do
end subroutine
Expand Down
6 changes: 3 additions & 3 deletions test/llvm_ir_correct/save.f90
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ program msave
implicit none
! NOSAVE: alloca i32
integer :: x
! NOSAVE: store i32 5, i32* %x
! SAVE: bitcast %struct.BSS1* @.BSS1 to i32*
! SAVE: store i32 5, i32*
! NOSAVE: store i32 5, ptr %x
! SAVE: bitcast ptr @.BSS1 to ptr
! SAVE: store i32 5, ptr
x = 5
end program

Expand Down
Loading

0 comments on commit 4eaaf77

Please sign in to comment.