Lines Matching +full:prop +full:-
1 //===- DXILOpBuilder.cpp - Helper class for build DIXLOp functions --------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
10 //===----------------------------------------------------------------------===//
70 Type::TypeID T = Ty->getTypeID(); in getOverloadKind()
82 unsigned Bits = ITy->getBitWidth(); in getOverloadKind()
114 return ST->getStructName().str(); in getTypeName()
117 return ST->getStructName().str(); in getTypeName()
121 Ty->print(OS); in getTypeName()
149 const OpCodeProperty &Prop) { in constructOverloadName() argument
151 return (Twine(DXILOpNamePrefix) + getOpCodeClassName(Prop)).str(); in constructOverloadName()
153 return (Twine(DXILOpNamePrefix) + getOpCodeClassName(Prop) + "." + in constructOverloadName()
191 auto &Ctx = OverloadTy->getContext(); in getTypeFromParameterKind()
226 /// OverloadType dx.op.<opclass>.<return-type>(int opcode, <param types>)
227 /// <param-types> are constructed from types in Prop.
228 /// \param Prop Structure containing DXIL Operation properties based on
231 static FunctionType *getDXILOpFunctionType(const OpCodeProperty *Prop, in getDXILOpFunctionType() argument
235 auto ParamKinds = getOpCodeParameterKind(*Prop); in getDXILOpFunctionType()
241 ArgTys.emplace_back(Type::getInt32Ty(OverloadTy->getContext())); in getDXILOpFunctionType()
244 for (unsigned I = 0; I < Prop->NumOfParameters; ++I) { in getDXILOpFunctionType()
249 ArgTys[0], ArrayRef<Type *>(&ArgTys[1], ArgTys.size() - 1), false); in getDXILOpFunctionType()
258 const OpCodeProperty *Prop = getOpCodeProperty(OpCode); in createDXILOpCall() local
261 if ((Prop->OverloadTys & (uint16_t)Kind) == 0) { in createDXILOpCall()
265 std::string DXILFnName = constructOverloadName(Kind, OverloadTy, *Prop); in createDXILOpCall()
272 FunctionType *DXILOpFT = getDXILOpFunctionType(Prop, ReturnTy, OverloadTy); in createDXILOpCall()
281 const OpCodeProperty *Prop = getOpCodeProperty(OpCode); in getOverloadTy() local
284 if (Prop->OverloadParamIndex < 0) { in getOverloadTy()
285 auto &Ctx = FT->getContext(); in getOverloadTy()
286 switch (Prop->OverloadTys) { in getOverloadTy()
311 // Prop->OverloadParamIndex is 0, overload type is FT->getReturnType(). in getOverloadTy()
312 Type *OverloadType = FT->getReturnType(); in getOverloadTy()
313 if (Prop->OverloadParamIndex != 0) { in getOverloadTy()
315 OverloadType = FT->getParamType(Prop->OverloadParamIndex - 1); in getOverloadTy()
318 auto ParamKinds = getOpCodeParameterKind(*Prop); in getOverloadTy()
319 auto Kind = ParamKinds[Prop->OverloadParamIndex]; in getOverloadTy()
324 OverloadType = ST->getElementType(0); in getOverloadTy()