r328006 - [NVPTX] Make tensor load/store intrinsics overloaded.

Rafael Avila de Espindola via cfe-commits cfe-commits at lists.llvm.org
Tue Mar 20 13:33:28 PDT 2018


With this clang/test/CodeGen/builtins-nvptx-sm_70.cu is crashing:

lib/IR/Instructions.cpp:299: void
llvm::CallInst::init(llvm::FunctionType *, llvm::Value *,
ArrayRef<llvm::Value *>, ArrayRef<llvm::OperandBundleDef>, const
llvm::Twine &): Assertion `(i >= FTy->getNumParams()||
FTy->getParamType(i) == Args[i]->getType()) && "Calling a function with
a bad signature!"' failed.

Cheers,
Rafael


Artem Belevich via cfe-commits <cfe-commits at lists.llvm.org> writes:

> Author: tra
> Date: Tue Mar 20 10:18:59 2018
> New Revision: 328006
>
> URL: http://llvm.org/viewvc/llvm-project?rev=328006&view=rev
> Log:
> [NVPTX] Make tensor load/store intrinsics overloaded.
>
> This way we can support address-space specific variants without explicitly
> encoding the space in the name of the intrinsic. Less intrinsics to deal with ->
> less boilerplate.
>
> Added a bit of tablegen magic to match/replace an intrinsics with a pointer
> argument in particular address space with the space-specific instruction
> variant.
>
> Updated tests to use non-default address spaces.
>
> Differential Revision: https://reviews.llvm.org/D43268
>
> Modified:
>     cfe/trunk/lib/CodeGen/CGBuiltin.cpp
>
> Modified: cfe/trunk/lib/CodeGen/CGBuiltin.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBuiltin.cpp?rev=328006&r1=328005&r2=328006&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGBuiltin.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGBuiltin.cpp Tue Mar 20 10:18:59 2018
> @@ -10527,8 +10527,7 @@ Value *CodeGenFunction::EmitNVPTXBuiltin
>        llvm_unreachable("Unexpected builtin ID.");
>      }
>      Value *Result =
> -        Builder.CreateCall(CGM.getIntrinsic(IID),
> -                           {Builder.CreatePointerCast(Src, VoidPtrTy), Ldm});
> +        Builder.CreateCall(CGM.getIntrinsic(IID, Src->getType()), {Src, Ldm});
>  
>      // Save returned values.
>      for (unsigned i = 0; i < NumResults; ++i) {
> @@ -10567,10 +10566,9 @@ Value *CodeGenFunction::EmitNVPTXBuiltin
>      default:
>        llvm_unreachable("Unexpected builtin ID.");
>      }
> -    Function *Intrinsic = CGM.getIntrinsic(IID);
> +    Function *Intrinsic = CGM.getIntrinsic(IID, Dst->getType());
>      llvm::Type *ParamType = Intrinsic->getFunctionType()->getParamType(1);
> -    SmallVector<Value *, 10> Values;
> -    Values.push_back(Builder.CreatePointerCast(Dst, VoidPtrTy));
> +    SmallVector<Value *, 10> Values = {Dst};
>      for (unsigned i = 0; i < NumResults; ++i) {
>        Value *V = Builder.CreateAlignedLoad(
>            Builder.CreateGEP(Src.getPointer(), llvm::ConstantInt::get(IntTy, i)),
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


More information about the cfe-commits mailing list