From 4d045406d1ee4c011e476fbeae81976c8012e886 Mon Sep 17 00:00:00 2001 From: Augie Fackler Date: Wed, 8 Sep 2021 10:47:41 -0400 Subject: RustWrapper: remove some uses of AttrBuilder Turns out we can also use Attribute::get*() methods here, and avoid the AttrBuilder and an extra helper method here. --- compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp | 25 ++++++------------------ 1 file changed, 6 insertions(+), 19 deletions(-) (limited to 'compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp') diff --git a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp index 3a7af73c87d..9850f395a0f 100644 --- a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp +++ b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp @@ -225,41 +225,28 @@ extern "C" void LLVMRustAddCallSiteAttrString(LLVMValueRef Instr, unsigned Index AddAttribute(Call, Index, Attr); } -static inline void AddCallAttributes(CallBase *Call, unsigned Index, const AttrBuilder& B) { - AttributeList Attrs = Call->getAttributes(); -#if LLVM_VERSION_LT(14, 0) - Attrs = Attrs.addAttributes(Call->getContext(), Index, B); -#else - Attrs = Attrs.addAttributesAtIndex(Call->getContext(), Index, B); -#endif - Call->setAttributes(Attrs); -} - extern "C" void LLVMRustAddAlignmentCallSiteAttr(LLVMValueRef Instr, unsigned Index, uint32_t Bytes) { CallBase *Call = unwrap(Instr); - AttrBuilder B; - B.addAlignmentAttr(Bytes); - AddCallAttributes(Call, Index, B); + Attribute Attr = Attribute::getWithAlignment(Call->getContext(), Align(Bytes)); + AddAttribute(Call, Index, Attr); } extern "C" void LLVMRustAddDereferenceableCallSiteAttr(LLVMValueRef Instr, unsigned Index, uint64_t Bytes) { CallBase *Call = unwrap(Instr); - AttrBuilder B; - B.addDereferenceableAttr(Bytes); - AddCallAttributes(Call, Index, B); + Attribute Attr = Attribute::getWithDereferenceableBytes(Call->getContext(), Bytes); + AddAttribute(Call, Index, Attr); } extern "C" void LLVMRustAddDereferenceableOrNullCallSiteAttr(LLVMValueRef Instr, unsigned Index, uint64_t Bytes) { CallBase *Call = unwrap(Instr); - AttrBuilder B; - B.addDereferenceableOrNullAttr(Bytes); - AddCallAttributes(Call, Index, B); + Attribute Attr = Attribute::getWithDereferenceableOrNullBytes(Call->getContext(), Bytes); + AddAttribute(Call, Index, Attr); } extern "C" void LLVMRustAddByValCallSiteAttr(LLVMValueRef Instr, unsigned Index, -- cgit 1.4.1-3-g733a5