llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang-codegen Author: Matt Arsenault (arsenm) <details> <summary>Changes</summary> Do not assume it's the alloca address space, we have an explicit address space to use for the argument already. Also use the original value's type instead of assuming DefaultAS. --- Full diff: https://github.com/llvm/llvm-project/pull/138865.diff 1 Files Affected: - (modified) clang/lib/CodeGen/CGCall.cpp (+4-4) ``````````diff diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp index 1404bdfd69647..db8820a8c517e 100644 --- a/clang/lib/CodeGen/CGCall.cpp +++ b/clang/lib/CodeGen/CGCall.cpp @@ -5384,16 +5384,16 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo &CallInfo, if (!NeedCopy) { // Skip the extra memcpy call. llvm::Value *V = getAsNaturalPointerTo(Addr, I->Ty); - auto *T = llvm::PointerType::get( - CGM.getLLVMContext(), CGM.getDataLayout().getAllocaAddrSpace()); + auto *T = llvm::PointerType::get(CGM.getLLVMContext(), + ArgInfo.getIndirectAddrSpace()); // FIXME: This should not depend on the language address spaces, and // only the contextual values. If the address space mismatches, see if // we can look through a cast to a compatible address space value, // otherwise emit a copy. llvm::Value *Val = getTargetHooks().performAddrSpaceCast( - *this, V, LangAS::Default, CGM.getASTAllocaAddressSpace(), T, - true); + *this, V, I->Ty.getAddressSpace(), CGM.getASTAllocaAddressSpace(), + T, true); if (ArgHasMaybeUndefAttr) Val = Builder.CreateFreeze(Val); IRCallArgs[FirstIRArg] = Val; `````````` </details> https://github.com/llvm/llvm-project/pull/138865 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits