mirror of
https://github.com/intel/llvm.git
synced 2026-01-23 16:06:39 +08:00
RuntimeLibcalls: Add mustprogress to common function attributes (#167080)
This commit is contained in:
@@ -135,8 +135,8 @@ RuntimeLibcallsInfo::getFunctionTy(LLVMContext &Ctx, const Triple &TT,
|
||||
const DataLayout &DL,
|
||||
RTLIB::LibcallImpl LibcallImpl) const {
|
||||
static constexpr Attribute::AttrKind CommonFnAttrs[] = {
|
||||
Attribute::NoCallback, Attribute::NoFree, Attribute::NoSync,
|
||||
Attribute::NoUnwind, Attribute::WillReturn};
|
||||
Attribute::MustProgress, Attribute::NoCallback, Attribute::NoFree,
|
||||
Attribute::NoSync, Attribute::NoUnwind, Attribute::WillReturn};
|
||||
static constexpr Attribute::AttrKind CommonPtrArgAttrs[] = {
|
||||
Attribute::NoAlias, Attribute::WriteOnly, Attribute::NonNull};
|
||||
|
||||
|
||||
@@ -26,4 +26,4 @@
|
||||
; CHECK: declare aarch64_vector_pcs void @armpl_vsincosq_f64(<2 x double>, ptr noalias nonnull writeonly align 16, ptr noalias nonnull writeonly align 16) [[ATTRS]]
|
||||
|
||||
|
||||
; CHECK: attributes [[ATTRS]] = { nocallback nofree nosync nounwind willreturn memory(argmem: write) }
|
||||
; CHECK: attributes [[ATTRS]] = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: write) }
|
||||
|
||||
@@ -8,4 +8,4 @@ define noundef nofpclass(nan) float @sqrtf(float %x) "foo" {
|
||||
; FIXME: Individual fields of nofpclass not merged
|
||||
; CHECK: define noundef nofpclass(ninf nsub nnorm) float @sqrtf(float %x) [[SQRT_ATTR:#[0-9]+]] {
|
||||
|
||||
; CHECK: attributes [[SQRT_ATTR]] = { nocallback nofree nosync nounwind willreturn memory(errnomem: write) "foo" }
|
||||
; CHECK: attributes [[SQRT_ATTR]] = { mustprogress nocallback nofree nosync nounwind willreturn memory(errnomem: write) "foo" }
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
; SRET: declare void @__sincos_stret(ptr sret({ double, double }) align 4, double) [[SINCOS_ATTRS:#[0-9]+]]
|
||||
; SRET: declare void @__sincosf_stret(ptr sret({ float, float }) align 4, float) [[SINCOS_ATTRS:#[0-9]+]]
|
||||
|
||||
; CHECK: attributes [[SINCOS_ATTRS]] = { nocallback nofree nosync nounwind willreturn memory(errnomem: write) }
|
||||
; SRET: attributes [[SINCOS_ATTRS]] = { nocallback nofree nosync nounwind willreturn memory(argmem: write, errnomem: write) }
|
||||
; CHECK: attributes [[SINCOS_ATTRS]] = { mustprogress nocallback nofree nosync nounwind willreturn memory(errnomem: write) }
|
||||
; SRET: attributes [[SINCOS_ATTRS]] = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: write, errnomem: write) }
|
||||
|
||||
; NONE-NOT: __sincos_stret
|
||||
; NONE-NOT: __sincosf_stret
|
||||
|
||||
@@ -25,4 +25,4 @@
|
||||
|
||||
; CHECK: declare void @_ZGVsNxvl8l8_sincospi(<vscale x 2 x double>, ptr noalias nonnull writeonly align 16, ptr noalias nonnull writeonly align 16) [[ATTRS]]
|
||||
|
||||
; CHECK: attributes [[ATTRS]] = { nocallback nofree nosync nounwind willreturn memory(argmem: write) }
|
||||
; CHECK: attributes [[ATTRS]] = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: write) }
|
||||
|
||||
Reference in New Issue
Block a user