Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/Transforms/Attributor/readattrs.ll
Show First 20 Lines • Show All 378 Lines • ▼ Show 20 Lines | ; | ||||
ret void | ret void | ||||
} | } | ||||
define void @testbyval(i8* %read_only) { | define void @testbyval(i8* %read_only) { | ||||
; IS__TUNIT____-LABEL: define {{[^@]+}}@testbyval | ; IS__TUNIT____-LABEL: define {{[^@]+}}@testbyval | ||||
; IS__TUNIT____-SAME: (i8* nocapture readonly [[READ_ONLY:%.*]]) { | ; IS__TUNIT____-SAME: (i8* nocapture readonly [[READ_ONLY:%.*]]) { | ||||
; IS__TUNIT____-NEXT: call void @byval_not_readonly_1(i8* nocapture readonly byval(i8) [[READ_ONLY]]) #[[ATTR2]] | ; IS__TUNIT____-NEXT: call void @byval_not_readonly_1(i8* nocapture readonly byval(i8) [[READ_ONLY]]) #[[ATTR2]] | ||||
; IS__TUNIT____-NEXT: call void @byval_not_readnone_1(i8* noalias nocapture readnone byval(i8) [[READ_ONLY]]) | ; IS__TUNIT____-NEXT: call void @byval_not_readnone_1(i8* noalias nocapture readnone byval(i8) [[READ_ONLY]]) | ||||
; IS__TUNIT____-NEXT: call void @byval_no_fnarg(i8* nocapture nofree readonly byval(i8) [[READ_ONLY]]) #[[ATTR13:[0-9]+]] | |||||
; IS__TUNIT____-NEXT: ret void | ; IS__TUNIT____-NEXT: ret void | ||||
; | ; | ||||
; IS__CGSCC____: Function Attrs: readonly | ; IS__CGSCC____: Function Attrs: readonly | ||||
; IS__CGSCC____-LABEL: define {{[^@]+}}@testbyval | ; IS__CGSCC____-LABEL: define {{[^@]+}}@testbyval | ||||
; IS__CGSCC____-SAME: (i8* nocapture noundef nonnull readonly dereferenceable(1) [[READ_ONLY:%.*]]) #[[ATTR2]] { | ; IS__CGSCC____-SAME: (i8* nocapture noundef nonnull readonly dereferenceable(1) [[READ_ONLY:%.*]]) #[[ATTR2]] { | ||||
; IS__CGSCC____-NEXT: call void @byval_not_readonly_1(i8* noalias nocapture noundef nonnull readonly byval(i8) dereferenceable(1) [[READ_ONLY]]) #[[ATTR2]] | ; IS__CGSCC____-NEXT: call void @byval_not_readonly_1(i8* noalias nocapture noundef nonnull readonly byval(i8) dereferenceable(1) [[READ_ONLY]]) #[[ATTR2]] | ||||
; IS__CGSCC____-NEXT: call void @byval_not_readnone_1(i8* noalias nocapture noundef nonnull readnone byval(i8) dereferenceable(1) [[READ_ONLY]]) | ; IS__CGSCC____-NEXT: call void @byval_not_readnone_1(i8* noalias nocapture noundef nonnull readnone byval(i8) dereferenceable(1) [[READ_ONLY]]) | ||||
; IS__CGSCC____-NEXT: ret void | ; IS__CGSCC____-NEXT: ret void | ||||
▲ Show 20 Lines • Show All 86 Lines • ▼ Show 20 Lines | |||||
; IS__TUNIT____: attributes #[[ATTR5]] = { argmemonly nounwind readonly } | ; IS__TUNIT____: attributes #[[ATTR5]] = { argmemonly nounwind readonly } | ||||
; IS__TUNIT____: attributes #[[ATTR6]] = { argmemonly nounwind } | ; IS__TUNIT____: attributes #[[ATTR6]] = { argmemonly nounwind } | ||||
; IS__TUNIT____: attributes #[[ATTR7]] = { argmemonly nofree nounwind willreturn } | ; IS__TUNIT____: attributes #[[ATTR7]] = { argmemonly nofree nounwind willreturn } | ||||
; IS__TUNIT____: attributes #[[ATTR8]] = { readnone } | ; IS__TUNIT____: attributes #[[ATTR8]] = { readnone } | ||||
; IS__TUNIT____: attributes #[[ATTR9]] = { nounwind readonly } | ; IS__TUNIT____: attributes #[[ATTR9]] = { nounwind readonly } | ||||
; IS__TUNIT____: attributes #[[ATTR10]] = { willreturn writeonly } | ; IS__TUNIT____: attributes #[[ATTR10]] = { willreturn writeonly } | ||||
; IS__TUNIT____: attributes #[[ATTR11]] = { readonly willreturn } | ; IS__TUNIT____: attributes #[[ATTR11]] = { readonly willreturn } | ||||
; IS__TUNIT____: attributes #[[ATTR12]] = { nounwind } | ; IS__TUNIT____: attributes #[[ATTR12]] = { nounwind } | ||||
; IS__TUNIT____: attributes #[[ATTR13]] = { nounwind writeonly } | |||||
;. | ;. | ||||
; IS__CGSCC____: attributes #[[ATTR0]] = { nofree norecurse nosync nounwind willreturn writeonly } | ; IS__CGSCC____: attributes #[[ATTR0]] = { nofree norecurse nosync nounwind willreturn writeonly } | ||||
; IS__CGSCC____: attributes #[[ATTR1]] = { nofree norecurse nosync nounwind readnone willreturn } | ; IS__CGSCC____: attributes #[[ATTR1]] = { nofree norecurse nosync nounwind readnone willreturn } | ||||
; IS__CGSCC____: attributes #[[ATTR2]] = { readonly } | ; IS__CGSCC____: attributes #[[ATTR2]] = { readonly } | ||||
; IS__CGSCC____: attributes #[[ATTR3]] = { argmemonly nofree norecurse nosync nounwind willreturn writeonly } | ; IS__CGSCC____: attributes #[[ATTR3]] = { argmemonly nofree norecurse nosync nounwind willreturn writeonly } | ||||
; IS__CGSCC____: attributes #[[ATTR4]] = { nofree nosync nounwind willreturn writeonly } | ; IS__CGSCC____: attributes #[[ATTR4]] = { nofree nosync nounwind willreturn writeonly } | ||||
; IS__CGSCC____: attributes #[[ATTR5]] = { nofree nosync nounwind readonly willreturn } | ; IS__CGSCC____: attributes #[[ATTR5]] = { nofree nosync nounwind readonly willreturn } | ||||
; IS__CGSCC____: attributes #[[ATTR6]] = { argmemonly nounwind readonly } | ; IS__CGSCC____: attributes #[[ATTR6]] = { argmemonly nounwind readonly } | ||||
; IS__CGSCC____: attributes #[[ATTR7]] = { argmemonly nounwind } | ; IS__CGSCC____: attributes #[[ATTR7]] = { argmemonly nounwind } | ||||
; IS__CGSCC____: attributes #[[ATTR8]] = { argmemonly nofree norecurse nounwind willreturn } | ; IS__CGSCC____: attributes #[[ATTR8]] = { argmemonly nofree norecurse nounwind willreturn } | ||||
; IS__CGSCC____: attributes #[[ATTR9]] = { readnone } | ; IS__CGSCC____: attributes #[[ATTR9]] = { readnone } | ||||
; IS__CGSCC____: attributes #[[ATTR10]] = { nounwind readonly } | ; IS__CGSCC____: attributes #[[ATTR10]] = { nounwind readonly } | ||||
; IS__CGSCC____: attributes #[[ATTR11]] = { willreturn writeonly } | ; IS__CGSCC____: attributes #[[ATTR11]] = { willreturn writeonly } | ||||
; IS__CGSCC____: attributes #[[ATTR12]] = { readonly willreturn } | ; IS__CGSCC____: attributes #[[ATTR12]] = { readonly willreturn } | ||||
; IS__CGSCC____: attributes #[[ATTR13]] = { nounwind } | ; IS__CGSCC____: attributes #[[ATTR13]] = { nounwind } | ||||
;. | ;. |