@@ -688,7 +688,7 @@ define void @func_call_asm() #3 {
688
688
;
689
689
; ATTRIBUTOR_HSA-LABEL: define {{[^@]+}}@func_call_asm
690
690
; ATTRIBUTOR_HSA-SAME: () #[[ATTR16]] {
691
- ; ATTRIBUTOR_HSA-NEXT: call void asm sideeffect "", ""() #[[ATTR17 :[0-9]+]]
691
+ ; ATTRIBUTOR_HSA-NEXT: call void asm sideeffect "", ""() #[[ATTR20 :[0-9]+]]
692
692
; ATTRIBUTOR_HSA-NEXT: ret void
693
693
;
694
694
call void asm sideeffect "" , "" () #3
@@ -837,17 +837,104 @@ define float @func_other_intrinsic_call(float %arg) #3 {
837
837
ret float %fadd
838
838
}
839
839
840
+ ; Implicit arguments need to be enabled for sanitizers
841
+ define amdgpu_kernel void @kern_sanitize_address () #4 {
842
+ ; AKF_HSA-LABEL: define {{[^@]+}}@kern_sanitize_address
843
+ ; AKF_HSA-SAME: () #[[ATTR5:[0-9]+]] {
844
+ ; AKF_HSA-NEXT: store volatile i32 0, i32 addrspace(1)* null, align 4
845
+ ; AKF_HSA-NEXT: ret void
846
+ ;
847
+ ; ATTRIBUTOR_HSA-LABEL: define {{[^@]+}}@kern_sanitize_address
848
+ ; ATTRIBUTOR_HSA-SAME: () #[[ATTR17:[0-9]+]] {
849
+ ; ATTRIBUTOR_HSA-NEXT: store volatile i32 0, i32 addrspace(1)* null, align 4
850
+ ; ATTRIBUTOR_HSA-NEXT: ret void
851
+ ;
852
+ store volatile i32 0 , i32 addrspace (1 )* null
853
+ ret void
854
+ }
855
+
856
+ ; Implicit arguments need to be enabled for sanitizers
857
+ define void @func_sanitize_address () #4 {
858
+ ; AKF_HSA-LABEL: define {{[^@]+}}@func_sanitize_address
859
+ ; AKF_HSA-SAME: () #[[ATTR5]] {
860
+ ; AKF_HSA-NEXT: store volatile i32 0, i32 addrspace(1)* null, align 4
861
+ ; AKF_HSA-NEXT: ret void
862
+ ;
863
+ ; ATTRIBUTOR_HSA-LABEL: define {{[^@]+}}@func_sanitize_address
864
+ ; ATTRIBUTOR_HSA-SAME: () #[[ATTR17]] {
865
+ ; ATTRIBUTOR_HSA-NEXT: store volatile i32 0, i32 addrspace(1)* null, align 4
866
+ ; ATTRIBUTOR_HSA-NEXT: ret void
867
+ ;
868
+ store volatile i32 0 , i32 addrspace (1 )* null
869
+ ret void
870
+ }
871
+
872
+ ; Implicit arguments need to be enabled for sanitizers
873
+ define void @func_indirect_sanitize_address () #3 {
874
+ ; AKF_HSA-LABEL: define {{[^@]+}}@func_indirect_sanitize_address
875
+ ; AKF_HSA-SAME: () #[[ATTR3]] {
876
+ ; AKF_HSA-NEXT: call void @func_sanitize_address()
877
+ ; AKF_HSA-NEXT: ret void
878
+ ;
879
+ ; ATTRIBUTOR_HSA-LABEL: define {{[^@]+}}@func_indirect_sanitize_address
880
+ ; ATTRIBUTOR_HSA-SAME: () #[[ATTR18:[0-9]+]] {
881
+ ; ATTRIBUTOR_HSA-NEXT: call void @func_sanitize_address()
882
+ ; ATTRIBUTOR_HSA-NEXT: ret void
883
+ ;
884
+ call void @func_sanitize_address ()
885
+ ret void
886
+ }
887
+
888
+ ; Implicit arguments need to be enabled for sanitizers
889
+ define amdgpu_kernel void @kern_indirect_sanitize_address () #3 {
890
+ ; AKF_HSA-LABEL: define {{[^@]+}}@kern_indirect_sanitize_address
891
+ ; AKF_HSA-SAME: () #[[ATTR4]] {
892
+ ; AKF_HSA-NEXT: call void @func_sanitize_address()
893
+ ; AKF_HSA-NEXT: ret void
894
+ ;
895
+ ; ATTRIBUTOR_HSA-LABEL: define {{[^@]+}}@kern_indirect_sanitize_address
896
+ ; ATTRIBUTOR_HSA-SAME: () #[[ATTR18]] {
897
+ ; ATTRIBUTOR_HSA-NEXT: call void @func_sanitize_address()
898
+ ; ATTRIBUTOR_HSA-NEXT: ret void
899
+ ;
900
+ call void @func_sanitize_address ()
901
+ ret void
902
+ }
903
+
904
+ ; Marked with amdgpu-no-implicitarg-ptr, and
905
+ ; sanitize_address. sanitize_address wins and requires the pointer.
906
+ declare void @extern_func_sanitize_address () #5
907
+
908
+ define amdgpu_kernel void @kern_decl_sanitize_address () #3 {
909
+ ; AKF_HSA-LABEL: define {{[^@]+}}@kern_decl_sanitize_address
910
+ ; AKF_HSA-SAME: () #[[ATTR4]] {
911
+ ; AKF_HSA-NEXT: call void @extern_func_sanitize_address()
912
+ ; AKF_HSA-NEXT: ret void
913
+ ;
914
+ ; ATTRIBUTOR_HSA-LABEL: define {{[^@]+}}@kern_decl_sanitize_address
915
+ ; ATTRIBUTOR_HSA-SAME: () #[[ATTR15]] {
916
+ ; ATTRIBUTOR_HSA-NEXT: call void @extern_func_sanitize_address()
917
+ ; ATTRIBUTOR_HSA-NEXT: ret void
918
+ ;
919
+ call void @extern_func_sanitize_address ()
920
+ ret void
921
+ }
922
+
840
923
attributes #0 = { nounwind readnone speculatable }
841
924
attributes #1 = { nounwind "target-cpu" ="fiji" }
842
925
attributes #2 = { nounwind "target-cpu" ="gfx900" }
843
926
attributes #3 = { nounwind }
927
+ attributes #4 = { nounwind sanitize_address }
928
+ attributes #5 = { nounwind sanitize_address "amdgpu-no-implicitarg-ptr" }
844
929
845
930
;.
846
931
; AKF_HSA: attributes #[[ATTR0:[0-9]+]] = { nounwind readnone speculatable willreturn }
847
932
; AKF_HSA: attributes #[[ATTR1]] = { nounwind "target-cpu"="fiji" }
848
933
; AKF_HSA: attributes #[[ATTR2]] = { nounwind "target-cpu"="gfx900" }
849
934
; AKF_HSA: attributes #[[ATTR3]] = { nounwind }
850
935
; AKF_HSA: attributes #[[ATTR4]] = { nounwind "amdgpu-calls" }
936
+ ; AKF_HSA: attributes #[[ATTR5]] = { nounwind sanitize_address }
937
+ ; AKF_HSA: attributes #[[ATTR6:[0-9]+]] = { nounwind sanitize_address "amdgpu-no-implicitarg-ptr" }
851
938
;.
852
939
; ATTRIBUTOR_HSA: attributes #[[ATTR0:[0-9]+]] = { nounwind readnone speculatable willreturn }
853
940
; ATTRIBUTOR_HSA: attributes #[[ATTR1]] = { nounwind "amdgpu-no-dispatch-id" "amdgpu-no-dispatch-ptr" "amdgpu-no-implicitarg-ptr" "amdgpu-no-queue-ptr" "amdgpu-no-workgroup-id-x" "amdgpu-no-workgroup-id-y" "amdgpu-no-workgroup-id-z" "amdgpu-no-workitem-id-y" "amdgpu-no-workitem-id-z" "target-cpu"="fiji" "uniform-work-group-size"="false" }
@@ -866,5 +953,8 @@ attributes #3 = { nounwind }
866
953
; ATTRIBUTOR_HSA: attributes #[[ATTR14]] = { nounwind "amdgpu-no-dispatch-id" "amdgpu-no-dispatch-ptr" "amdgpu-no-queue-ptr" "amdgpu-no-workgroup-id-x" "amdgpu-no-workgroup-id-y" "amdgpu-no-workgroup-id-z" "amdgpu-no-workitem-id-x" "amdgpu-no-workitem-id-y" "amdgpu-no-workitem-id-z" "target-cpu"="fiji" "uniform-work-group-size"="false" }
867
954
; ATTRIBUTOR_HSA: attributes #[[ATTR15]] = { nounwind "uniform-work-group-size"="false" }
868
955
; ATTRIBUTOR_HSA: attributes #[[ATTR16]] = { nounwind "amdgpu-no-dispatch-id" "amdgpu-no-dispatch-ptr" "amdgpu-no-implicitarg-ptr" "amdgpu-no-queue-ptr" "amdgpu-no-workgroup-id-x" "amdgpu-no-workgroup-id-y" "amdgpu-no-workgroup-id-z" "amdgpu-no-workitem-id-x" "amdgpu-no-workitem-id-y" "amdgpu-no-workitem-id-z" "uniform-work-group-size"="false" }
869
- ; ATTRIBUTOR_HSA: attributes #[[ATTR17]] = { nounwind }
956
+ ; ATTRIBUTOR_HSA: attributes #[[ATTR17]] = { nounwind sanitize_address "amdgpu-no-dispatch-id" "amdgpu-no-dispatch-ptr" "amdgpu-no-queue-ptr" "amdgpu-no-workgroup-id-x" "amdgpu-no-workgroup-id-y" "amdgpu-no-workgroup-id-z" "amdgpu-no-workitem-id-x" "amdgpu-no-workitem-id-y" "amdgpu-no-workitem-id-z" "uniform-work-group-size"="false" }
957
+ ; ATTRIBUTOR_HSA: attributes #[[ATTR18]] = { nounwind "amdgpu-no-dispatch-id" "amdgpu-no-dispatch-ptr" "amdgpu-no-queue-ptr" "amdgpu-no-workgroup-id-x" "amdgpu-no-workgroup-id-y" "amdgpu-no-workgroup-id-z" "amdgpu-no-workitem-id-x" "amdgpu-no-workitem-id-y" "amdgpu-no-workitem-id-z" "uniform-work-group-size"="false" }
958
+ ; ATTRIBUTOR_HSA: attributes #[[ATTR19:[0-9]+]] = { nounwind sanitize_address "amdgpu-no-implicitarg-ptr" "uniform-work-group-size"="false" }
959
+ ; ATTRIBUTOR_HSA: attributes #[[ATTR20]] = { nounwind }
870
960
;.
0 commit comments