Lines Matching defs:OpCode

148   dxil::OpCode OpCode;
334 static FunctionType *getDXILOpFunctionType(dxil::OpCode OpCode,
338 switch (OpCode) {
339 #define DXIL_OP_FUNCTION_TYPE(OpCode, RetType, ...) \
340 case OpCode: \
347 llvm_unreachable("Invalid OpCode?");
368 // Helper function to pack an OpCode and VersionTuple into a uint64_t for use
370 constexpr static uint64_t computeSwitchEnum(dxil::OpCode OpCode,
373 uint64_t OpCodePack = (uint64_t)OpCode;
377 // Retreive all the set attributes for a DXIL OpCode given the targeted
379 static dxil::Attributes getDXILAttributes(dxil::OpCode OpCode,
392 // Switch through and match an OpCode with the specific version and set the
394 switch (computeSwitchEnum(OpCode, Version.Major, Version.Minor)) {
395 #define DXIL_OP_ATTRIBUTES(OpCode, VersionMajor, VersionMinor, ...) \
396 case computeSwitchEnum(OpCode, VersionMajor, VersionMinor): { \
409 static void setDXILAttributes(CallInst *CI, dxil::OpCode OpCode,
411 dxil::Attributes Attributes = getDXILAttributes(OpCode, DXILVersion);
443 static Error makeOpError(dxil::OpCode OpCode, Twine Msg) {
445 Twine("Cannot create ") + getOpCodeName(OpCode) + " operation: " + Msg,
449 Expected<CallInst *> DXILOpBuilder::tryCreateOp(dxil::OpCode OpCode,
453 const OpCodeProperty *Prop = getOpCodeProperty(OpCode);
458 return makeOpError(OpCode, "Op overloaded on unknown return type");
464 return makeOpError(OpCode, "Wrong number of arguments");
469 getDXILOpFunctionType(OpCode, M.getContext(), OverloadTy);
474 return makeOpError(OpCode, Twine("No valid overloads for DXIL version ") +
485 return makeOpError(OpCode, "Invalid overload type");
492 return makeOpError(OpCode, Twine("No valid stage for DXIL version ") +
499 return makeOpError(OpCode, "Operation has been removed");
507 return makeOpError(OpCode, "Invalid stage");
514 OpArgs.push_back(IRB.getInt32(llvm::to_underlying(OpCode)));
521 setDXILAttributes(CI, OpCode, DXILVersion);
526 CallInst *DXILOpBuilder::createOp(dxil::OpCode OpCode, ArrayRef<Value *> Args,
528 Expected<CallInst *> Result = tryCreateOp(OpCode, Args, Name, RetTy);
565 const char *DXILOpBuilder::getOpCodeName(dxil::OpCode DXILOp) {