@@ -641,7 +641,7 @@ static AttributeList get_attrs_box_float(LLVMContext &C, unsigned nbytes)
641
641
auto FnAttrs = AttrBuilder (C);
642
642
FnAttrs.addAttribute (Attribute::WillReturn);
643
643
FnAttrs.addAttribute (Attribute::NoUnwind);
644
- FnAttrs.addMemoryAttr (MemoryEffects::inaccessibleMemOnly ());
644
+ FnAttrs.addMemoryAttr (MemoryEffects::inaccessibleMemOnly () | MemoryEffects::readOnly () );
645
645
auto RetAttrs = AttrBuilder (C);
646
646
RetAttrs.addAttribute (Attribute::NonNull);
647
647
RetAttrs.addDereferenceableAttr (nbytes);
@@ -657,7 +657,7 @@ static AttributeList get_attrs_box_sext(LLVMContext &C, unsigned nbytes)
657
657
auto FnAttrs = AttrBuilder (C);
658
658
FnAttrs.addAttribute (Attribute::WillReturn);
659
659
FnAttrs.addAttribute (Attribute::NoUnwind);
660
- FnAttrs.addMemoryAttr (MemoryEffects::inaccessibleMemOnly ());
660
+ FnAttrs.addMemoryAttr (MemoryEffects::inaccessibleMemOnly () | MemoryEffects::readOnly () );
661
661
auto RetAttrs = AttrBuilder (C);
662
662
RetAttrs.addAttribute (Attribute::NonNull);
663
663
RetAttrs.addAttribute (Attribute::getWithDereferenceableBytes (C, nbytes));
@@ -674,7 +674,7 @@ static AttributeList get_attrs_box_zext(LLVMContext &C, unsigned nbytes)
674
674
auto FnAttrs = AttrBuilder (C);
675
675
FnAttrs.addAttribute (Attribute::WillReturn);
676
676
FnAttrs.addAttribute (Attribute::NoUnwind);
677
- FnAttrs.addMemoryAttr (MemoryEffects::inaccessibleMemOnly ());
677
+ FnAttrs.addMemoryAttr (MemoryEffects::inaccessibleMemOnly () | MemoryEffects::readOnly () );
678
678
auto RetAttrs = AttrBuilder (C);
679
679
RetAttrs.addAttribute (Attribute::NonNull);
680
680
RetAttrs.addDereferenceableAttr (nbytes);
@@ -1125,7 +1125,7 @@ static const auto jl_alloc_obj_func = new JuliaFunction<TypeFnContextAndSizeT>{
1125
1125
auto FnAttrs = AttrBuilder (C);
1126
1126
FnAttrs.addAllocSizeAttr (1 , None); // returns %1 bytes
1127
1127
FnAttrs.addAllocKindAttr (AllocFnKind::Alloc);
1128
- FnAttrs.addMemoryAttr (MemoryEffects::argMemOnly (ModRefInfo::Ref) | MemoryEffects::inaccessibleMemOnly (ModRefInfo::ModRef ));
1128
+ FnAttrs.addMemoryAttr (MemoryEffects::argMemOnly (ModRefInfo::Ref) | MemoryEffects::inaccessibleMemOnly ());
1129
1129
FnAttrs.addAttribute (Attribute::WillReturn);
1130
1130
FnAttrs.addAttribute (Attribute::NoUnwind);
1131
1131
auto RetAttrs = AttrBuilder (C);
@@ -1149,7 +1149,7 @@ static const auto jl_alloc_genericmemory_unchecked_func = new JuliaFunction<Type
1149
1149
[](LLVMContext &C) {
1150
1150
auto FnAttrs = AttrBuilder (C);
1151
1151
FnAttrs.addAllocKindAttr (AllocFnKind::Alloc);
1152
- FnAttrs.addMemoryAttr (MemoryEffects::argMemOnly (ModRefInfo::Ref) | MemoryEffects::inaccessibleMemOnly (ModRefInfo::ModRef ));
1152
+ FnAttrs.addMemoryAttr (MemoryEffects::argMemOnly (ModRefInfo::Ref) | MemoryEffects::inaccessibleMemOnly ());
1153
1153
FnAttrs.addAttribute (Attribute::WillReturn);
1154
1154
FnAttrs.addAttribute (Attribute::NoUnwind);
1155
1155
auto RetAttrs = AttrBuilder (C);
@@ -1394,7 +1394,7 @@ static const auto jl_allocgenericmemory = new JuliaFunction<TypeFnContextAndSize
1394
1394
[](LLVMContext &C) {
1395
1395
AttrBuilder FnAttrs (C);
1396
1396
AttrBuilder RetAttrs (C);
1397
- FnAttrs.addMemoryAttr (MemoryEffects::inaccessibleMemOnly (ModRefInfo::ModRef ) | MemoryEffects::argMemOnly (ModRefInfo::Ref ));
1397
+ FnAttrs.addMemoryAttr (MemoryEffects::inaccessibleMemOnly () | MemoryEffects::readOnly ( ));
1398
1398
FnAttrs.addAttribute (Attribute::WillReturn);
1399
1399
RetAttrs.addAlignmentAttr (Align (16 ));
1400
1400
RetAttrs.addAttribute (Attribute::NonNull);
@@ -1438,7 +1438,7 @@ static const auto jldnd_func = new JuliaFunction<>{
1438
1438
},
1439
1439
[](LLVMContext &C) {
1440
1440
AttrBuilder FnAttrs (C);
1441
- FnAttrs.addMemoryAttr (MemoryEffects::inaccessibleMemOnly ());
1441
+ FnAttrs.addMemoryAttr (MemoryEffects::inaccessibleMemOnly () | MemoryEffects::readOnly () );
1442
1442
FnAttrs.addAttribute (Attribute::WillReturn);
1443
1443
FnAttrs.addAttribute (Attribute::NoUnwind);
1444
1444
return AttributeList::get (C,
0 commit comments