@@ -929,23 +929,38 @@ AMDGPULibFuncBase::Param AMDGPULibFuncBase::Param::getFromTy(Type *Ty,
929
929
return P;
930
930
}
931
931
932
- static Type* getIntrinsicParamType (
933
- LLVMContext& C,
934
- const AMDGPULibFunc::Param& P,
935
- bool useAddrSpace) {
936
- Type* T = nullptr ;
932
+ static Type *getIntrinsicParamType (LLVMContext &C,
933
+ const AMDGPULibFunc::Param &P,
934
+ bool UseAddrSpace) {
935
+ Type *T = nullptr ;
937
936
switch (P.ArgType ) {
937
+ default :
938
+ return nullptr ;
938
939
case AMDGPULibFunc::U8:
939
- case AMDGPULibFunc::I8: T = Type::getInt8Ty (C); break ;
940
+ case AMDGPULibFunc::I8:
941
+ T = Type::getInt8Ty (C);
942
+ break ;
940
943
case AMDGPULibFunc::U16:
941
- case AMDGPULibFunc::I16: T = Type::getInt16Ty (C); break ;
944
+ case AMDGPULibFunc::I16:
945
+ T = Type::getInt16Ty (C);
946
+ break ;
942
947
case AMDGPULibFunc::U32:
943
- case AMDGPULibFunc::I32: T = Type::getInt32Ty (C); break ;
948
+ case AMDGPULibFunc::I32:
949
+ T = Type::getInt32Ty (C);
950
+ break ;
944
951
case AMDGPULibFunc::U64:
945
- case AMDGPULibFunc::I64: T = Type::getInt64Ty (C); break ;
946
- case AMDGPULibFunc::F16: T = Type::getHalfTy (C); break ;
947
- case AMDGPULibFunc::F32: T = Type::getFloatTy (C); break ;
948
- case AMDGPULibFunc::F64: T = Type::getDoubleTy (C); break ;
952
+ case AMDGPULibFunc::I64:
953
+ T = Type::getInt64Ty (C);
954
+ break ;
955
+ case AMDGPULibFunc::F16:
956
+ T = Type::getHalfTy (C);
957
+ break ;
958
+ case AMDGPULibFunc::F32:
959
+ T = Type::getFloatTy (C);
960
+ break ;
961
+ case AMDGPULibFunc::F64:
962
+ T = Type::getDoubleTy (C);
963
+ break ;
949
964
950
965
case AMDGPULibFunc::IMG1DA:
951
966
case AMDGPULibFunc::IMG1DB:
@@ -972,7 +987,7 @@ static Type* getIntrinsicParamType(
972
987
T = FixedVectorType::get (T, P.VectorSize );
973
988
if (P.PtrKind != AMDGPULibFunc::BYVALUE)
974
989
T = PointerType::get (
975
- C, useAddrSpace ? ((P.PtrKind & AMDGPULibFunc::ADDR_SPACE) - 1 ) : 0 );
990
+ C, UseAddrSpace ? ((P.PtrKind & AMDGPULibFunc::ADDR_SPACE) - 1 ) : 0 );
976
991
return T;
977
992
}
978
993
@@ -989,9 +1004,11 @@ FunctionType *AMDGPUMangledLibFunc::getFunctionType(const Module &M) const {
989
1004
Args.push_back (ParamTy);
990
1005
}
991
1006
992
- return FunctionType::get (
993
- getIntrinsicParamType (C, getRetType (FuncId, Leads), true ),
994
- Args, false );
1007
+ Type *RetTy = getIntrinsicParamType (C, getRetType (FuncId, Leads), true );
1008
+ if (!RetTy)
1009
+ return nullptr ;
1010
+
1011
+ return FunctionType::get (RetTy, Args, false );
995
1012
}
996
1013
997
1014
unsigned AMDGPUMangledLibFunc::getNumArgs () const {
@@ -1080,6 +1097,7 @@ FunctionCallee AMDGPULibFunc::getOrInsertFunction(Module *M,
1080
1097
}
1081
1098
1082
1099
FunctionType *FuncTy = fInfo .getFunctionType (*M);
1100
+ assert (FuncTy);
1083
1101
1084
1102
bool hasPtr = false ;
1085
1103
for (FunctionType::param_iterator
0 commit comments