From 431801707fa661a70660787ee499530d093d513b Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Fri, 26 Feb 2021 13:47:33 -0700 Subject: [PATCH] Revert "stage1: upgrade to new LLVM sret attribute requirement" This reverts commit 685b5c26b703d54381a74b71361816ad85ec8584. @LemonBoy has a better patch, so reverting this to merge that one. --- src/stage1/codegen.cpp | 2 +- src/zig_llvm.cpp | 10 ---------- src/zig_llvm.h | 1 - 3 files changed, 1 insertion(+), 12 deletions(-) diff --git a/src/stage1/codegen.cpp b/src/stage1/codegen.cpp index 3e9fbe20dd..fcb3282d06 100644 --- a/src/stage1/codegen.cpp +++ b/src/stage1/codegen.cpp @@ -549,7 +549,7 @@ static LLVMValueRef make_fn_llvm_value(CodeGen *g, ZigFn *fn) { } else if (want_first_arg_sret(g, &fn_type->data.fn.fn_type_id)) { // Sret pointers must not be address 0 addLLVMArgAttr(llvm_fn, 0, "nonnull"); - ZigLLVMAddSRetAttr(llvm_fn, get_llvm_type(g, fn_type->data.fn.fn_type_id.return_type)); + addLLVMArgAttr(llvm_fn, 0, "sret"); if (cc_want_sret_attr(cc)) { addLLVMArgAttr(llvm_fn, 0, "noalias"); } diff --git a/src/zig_llvm.cpp b/src/zig_llvm.cpp index 9b10f25d47..b4bdf7c033 100644 --- a/src/zig_llvm.cpp +++ b/src/zig_llvm.cpp @@ -802,16 +802,6 @@ void ZigLLVMAddByValAttr(LLVMValueRef fn_ref, unsigned ArgNo, LLVMTypeRef type_v func->setAttributes(new_attr_set); } -void ZigLLVMAddSRetAttr(LLVMValueRef fn_ref, LLVMTypeRef type_val) { - Function *func = unwrap(fn_ref); - const AttributeList attr_set = func->getAttributes(); - AttrBuilder attr_builder; - Type *llvm_type = unwrap(type_val); - attr_builder.addStructRetAttr(llvm_type); - const AttributeList new_attr_set = attr_set.addAttributes(func->getContext(), 1, attr_builder); - func->setAttributes(new_attr_set); -} - void ZigLLVMAddFunctionAttr(LLVMValueRef fn_ref, const char *attr_name, const char *attr_value) { Function *func = unwrap(fn_ref); const AttributeList attr_set = func->getAttributes(); diff --git a/src/zig_llvm.h b/src/zig_llvm.h index 78909ad019..fc9f39d9e9 100644 --- a/src/zig_llvm.h +++ b/src/zig_llvm.h @@ -269,7 +269,6 @@ ZIG_EXTERN_C void ZigLLVMFunctionSetCallingConv(LLVMValueRef function, enum ZigL ZIG_EXTERN_C void ZigLLVMAddFunctionAttr(LLVMValueRef fn, const char *attr_name, const char *attr_value); ZIG_EXTERN_C void ZigLLVMAddByValAttr(LLVMValueRef fn_ref, unsigned ArgNo, LLVMTypeRef type_val); -ZIG_EXTERN_C void ZigLLVMAddSRetAttr(LLVMValueRef fn_ref, LLVMTypeRef type_val); ZIG_EXTERN_C void ZigLLVMAddFunctionAttrCold(LLVMValueRef fn); ZIG_EXTERN_C void ZigLLVMParseCommandLineOptions(size_t argc, const char *const *argv);