/freebsd/contrib/llvm-project/llvm/lib/Target/SPIRV/ |
H A D | SPIRVModuleAnalysis.cpp | 38 static cl::list<SPIRV::Capability::Capability> 43 cl::values(clEnumValN(SPIRV::Capability::Shader, "Shader", 47 SmallSet<SPIRV::Capability::Capability, 4> S; 73 static SPIRV::Requirements 74 getSymbolicOperandRequirements(SPIRV::OperandCategory::OperandCategory Category, in getSymbolicOperandRequirements() 76 SPIRV::RequirementHandler &Reqs) { in getSymbolicOperandRequirements() 120 if (llvm::all_of(ReqExts, [&ST](const SPIRV::Extension::Extension &Ext) { in getSymbolicOperandRequirements() 134 for (int i = 0; i < SPIRV::NUM_MODULE_SECTIONS; i++) in setBaseInfo() 147 MAI.Addr = static_cast<SPIRV::AddressingModel::AddressingModel>( in setBaseInfo() 150 static_cast<SPIRV::MemoryModel::MemoryModel>(getMetadataUInt(MemMD, 1)); in setBaseInfo() [all …]
|
H A D | SPIRVInstrInfo.cpp | 30 case SPIRV::OpConstantTrue: in isConstantInstr() 31 case SPIRV::OpConstantFalse: in isConstantInstr() 32 case SPIRV::OpConstantI: in isConstantInstr() 33 case SPIRV::OpConstantF: in isConstantInstr() 34 case SPIRV::OpConstantComposite: in isConstantInstr() 35 case SPIRV::OpConstantSampler: in isConstantInstr() 36 case SPIRV::OpConstantNull: in isConstantInstr() 37 case SPIRV::OpSpecConstantTrue: in isConstantInstr() 38 case SPIRV::OpSpecConstantFalse: in isConstantInstr() 39 case SPIRV::OpSpecConstant: in isConstantInstr() [all …]
|
H A D | SPIRVBuiltins.cpp | 27 namespace SPIRV { namespace 172 namespace SPIRV { namespace 220 static std::unique_ptr<const SPIRV::IncomingCall> 222 SPIRV::InstructionSet::InstructionSet Set, in lookupBuiltin() 225 std::string BuiltinName = SPIRV::lookupBuiltinNameHelper(DemangledCall); in lookupBuiltin() 234 const SPIRV::DemangledBuiltin *Builtin; in lookupBuiltin() 235 if ((Builtin = SPIRV::lookupBuiltin(BuiltinName, Set))) in lookupBuiltin() 236 return std::make_unique<SPIRV::IncomingCall>( in lookupBuiltin() 251 if (Set == SPIRV::InstructionSet::OpenCL_std) in lookupBuiltin() 253 else if (Set == SPIRV::InstructionSet::GLSL_std_450) in lookupBuiltin() [all …]
|
H A D | SPIRVCommandLine.cpp | 23 static const std::map<std::string, SPIRV::Extension::Extension> 26 SPIRV::Extension::Extension::SPV_EXT_shader_atomic_float_add}, 28 SPIRV::Extension::Extension::SPV_EXT_shader_atomic_float16_add}, 30 SPIRV::Extension::Extension::SPV_EXT_shader_atomic_float_min_max}, 32 SPIRV::Extension::Extension::SPV_INTEL_arbitrary_precision_integers}, 34 SPIRV::Extension::Extension::SPV_INTEL_cache_controls}, 36 SPIRV::Extension::Extension:: 39 SPIRV::Extension::Extension::SPV_INTEL_global_variable_host_access}, 40 {"SPV_INTEL_optnone", SPIRV::Extension::Extension::SPV_INTEL_optnone}, 42 SPIRV::Extension::Extension::SPV_INTEL_usm_storage_classes}, [all …]
|
H A D | SPIRVISelLowering.cpp | 94 RC = VT.isVector() ? &SPIRV::vfIDRegClass in getRegForInlineAsmConstraint() 95 : (VT.getScalarSizeInBits() > 32 ? &SPIRV::fID64RegClass in getRegForInlineAsmConstraint() 96 : &SPIRV::fIDRegClass); in getRegForInlineAsmConstraint() 98 RC = VT.isVector() ? &SPIRV::vIDRegClass in getRegForInlineAsmConstraint() 99 : (VT.getScalarSizeInBits() > 32 ? &SPIRV::ID64RegClass in getRegForInlineAsmConstraint() 100 : &SPIRV::IDRegClass); in getRegForInlineAsmConstraint() 102 RC = &SPIRV::IDRegClass; in getRegForInlineAsmConstraint() 109 return TypeInst && TypeInst->getOpcode() == SPIRV::OpFunctionParameter in getTypeReg() 120 bool Res = MIB.buildInstr(SPIRV::OpBitcast) in doInsertBitcast() 128 MRI->setRegClass(NewReg, &SPIRV::IDRegClass); in doInsertBitcast() [all …]
|
H A D | SPIRVUtils.cpp | 88 MIB.getInstr()->setAsmPrinterFlag(SPIRV::ASM_PRINTER_WIDTH16); in addNumImm() 103 auto MIB = MIRBuilder.buildInstr(SPIRV::OpName).addUse(Target); in buildOpName() 118 SPIRV::Decoration::Decoration Dec, in buildOpDecorate() 120 auto MIB = MIRBuilder.buildInstr(SPIRV::OpDecorate) in buildOpDecorate() 127 SPIRV::Decoration::Decoration Dec, in buildOpDecorate() 130 auto MIB = BuildMI(MBB, I, I.getDebugLoc(), TII.get(SPIRV::OpDecorate)) in buildOpDecorate() 149 auto MIB = MIRBuilder.buildInstr(SPIRV::OpDecorate) in buildOpSpirvDecorations() 166 unsigned storageClassToAddressSpace(SPIRV::StorageClass::StorageClass SC) { in storageClassToAddressSpace() 168 case SPIRV::StorageClass::Function: in storageClassToAddressSpace() 170 case SPIRV::StorageClass::CrossWorkgroup: in storageClassToAddressSpace() [all …]
|
H A D | SPIRVInstructionSelector.cpp | 60 namespace CL = SPIRV::OpenCLExtInst; 61 namespace GL = SPIRV::GLSLExtInst; 64 std::vector<std::pair<SPIRV::InstructionSet::InstructionSet, uint32_t>>; 298 if (Opcode == SPIRV::ASSIGN_TYPE) { // These pseudos aren't needed any more. in select() 372 auto MIB = BuildMI(BB, I, I.getDebugLoc(), TII.get(SPIRV::OpVectorShuffle)) in spvSelect() 408 return selectUnOp(ResVReg, ResType, I, SPIRV::OpConvertFToS); in spvSelect() 410 return selectUnOp(ResVReg, ResType, I, SPIRV::OpConvertFToU); in spvSelect() 413 return selectIToF(ResVReg, ResType, I, true, SPIRV::OpConvertSToF); in spvSelect() 415 return selectIToF(ResVReg, ResType, I, false, SPIRV::OpConvertUToF); in spvSelect() 418 return selectUnOp(ResVReg, ResType, I, SPIRV::OpBitCount); in spvSelect() [all …]
|
H A D | SPIRVCallLowering.cpp | 51 return MIRBuilder.buildInstr(SPIRV::OpReturnValue) in lowerReturn() 56 MIRBuilder.buildInstr(SPIRV::OpReturn); in lowerReturn() 64 uint32_t FuncControl = static_cast<uint32_t>(SPIRV::FunctionControl::None); in getFunctionControl() 67 FuncControl |= static_cast<uint32_t>(SPIRV::FunctionControl::DontInline); in getFunctionControl() 69 FuncControl |= static_cast<uint32_t>(SPIRV::FunctionControl::Inline); in getFunctionControl() 72 FuncControl |= static_cast<uint32_t>(SPIRV::FunctionControl::Pure); in getFunctionControl() 74 FuncControl |= static_cast<uint32_t>(SPIRV::FunctionControl::Const); in getFunctionControl() 165 static SPIRV::AccessQualifier::AccessQualifier 168 return SPIRV::AccessQualifier::ReadWrite; in getArgAccessQual() 172 return SPIRV::AccessQualifier::ReadWrite; in getArgAccessQual() [all …]
|
H A D | SPIRVAsmPrinter.cpp | 64 void outputModuleSection(SPIRV::ModuleSectionType MSType); 73 SPIRV::ExecutionMode::ExecutionMode EM, 77 SPIRV::ExecutionMode::ExecutionMode EM); 95 SPIRV::ModuleAnalysisInfo *MAI; 146 FunctionEndInst.setOpcode(SPIRV::OpFunctionEnd); in outputOpFunctionEnd() 158 LabelInst.setOpcode(SPIRV::OpLabel); in emitOpLabel() 171 if (MI.getOpcode() == SPIRV::OpFunction) in emitBasicBlockStart() 232 return TII->isHeaderInstr(*MI) || MI->getOpcode() == SPIRV::OpFunction || in isFuncOrHeaderInstr() 233 MI->getOpcode() == SPIRV::OpFunctionParameter; in isFuncOrHeaderInstr() 264 void SPIRVAsmPrinter::outputModuleSection(SPIRV::ModuleSectionType MSType) { in outputModuleSection() [all …]
|
H A D | SPIRVGlobalRegistry.cpp | 62 SPIRV::AccessQualifier::AccessQualifier AccessQual, bool EmitIR) { in assignTypeToVReg() 78 MRI.setRegClass(Res, &SPIRV::TYPERegClass); in createTypeVReg() 84 MRI.setRegClass(Res, &SPIRV::TYPERegClass); in createTypeVReg() 89 return MIRBuilder.buildInstr(SPIRV::OpTypeBool) in getOpTypeBool() 98 SPIRV::Extension::SPV_INTEL_arbitrary_precision_integers)) in adjustOpTypeIntWidth() 118 SPIRV::Extension::SPV_INTEL_arbitrary_precision_integers)) { in getOpTypeInt() 119 MIRBuilder.buildInstr(SPIRV::OpExtension) in getOpTypeInt() 120 .addImm(SPIRV::Extension::SPV_INTEL_arbitrary_precision_integers); in getOpTypeInt() 121 MIRBuilder.buildInstr(SPIRV::OpCapability) in getOpTypeInt() 122 .addImm(SPIRV::Capability::ArbitraryPrecisionIntegersINTEL); in getOpTypeInt() [all …]
|
H A D | SPIRVPostLegalizer.cpp | 57 return Opcode == SPIRV::GET_ID || Opcode == SPIRV::GET_ID64 || in isMetaInstrGET() 58 Opcode == SPIRV::GET_fID || Opcode == SPIRV::GET_fID64 || in isMetaInstrGET() 59 Opcode == SPIRV::GET_pID32 || Opcode == SPIRV::GET_pID64 || in isMetaInstrGET() 60 Opcode == SPIRV::GET_vID || Opcode == SPIRV::GET_vfID || in isMetaInstrGET() 61 Opcode == SPIRV::GET_vpID32 || Opcode == SPIRV::GET_vpID64; in isMetaInstrGET() 94 if (!DefType || DefType->getOpcode() != SPIRV::OpTypeVector) in processNewInstrs() 105 MRI.setRegClass(ResVReg, &SPIRV::IDRegClass); in processNewInstrs() 127 MRI.setRegClass(ResVReg, &SPIRV::IDRegClass); in processNewInstrs() 142 ? &SPIRV::IDRegClass in processNewInstrs() 143 : &SPIRV::ANYIDRegClass); in processNewInstrs()
|
H A D | SPIRVRegisterInfo.td | 13 let Namespace = "SPIRV" in { 28 def TYPE : RegisterClass<"SPIRV", [i32], 32, (add TYPE0)>; 42 def ID : RegisterClass<"SPIRV", [i32], 32, (add ID0)>; 43 def ID64 : RegisterClass<"SPIRV", [i64], 32, (add ID640)>; 44 def fID : RegisterClass<"SPIRV", [f32], 32, (add fID0)>; 45 def fID64 : RegisterClass<"SPIRV", [f64], 32, (add fID640)>; 46 def pID32 : RegisterClass<"SPIRV", [p32], 32, (add pID320)>; 47 def pID64 : RegisterClass<"SPIRV", [p64], 32, (add pID640)>; 48 def vID : RegisterClass<"SPIRV", [v2i32], 32, (add vID0)>; 49 def vfID : RegisterClass<"SPIRV", [v2f32], 32, (add vfID0)>; [all …]
|
H A D | SPIRVGlobalRegistry.h | 61 const MachineInstr *checkSpecialInstr(const SPIRV::SpecialTypeDescriptor &TD, 88 SPIRV::AccessQualifier::AccessQualifier AQ = 89 SPIRV::AccessQualifier::ReadWrite, 92 SPIRV::AccessQualifier::AccessQualifier accessQual = 93 SPIRV::AccessQualifier::ReadWrite, 97 SPIRV::AccessQualifier::AccessQualifier AccessQual, 141 void buildDepsGraph(std::vector<SPIRV::DTSortableEntry *> &Graph, 276 SPIRV::AccessQualifier::AccessQualifier AQ = 277 SPIRV::AccessQualifier::ReadWrite, 299 SPIRV::AccessQualifier::AccessQualifier AQ = [all …]
|
H A D | SPIRVPreLegalizer.cpp | 95 SrcMI->setDesc(STI.getInstrInfo()->get(SPIRV::OpConstantNull)); in addConstantsToTrack() 290 MRI.setRegClass(Reg, &SPIRV::IDRegClass); in propagateSPIRVType() 319 bool IsFloat = SpvType->getOpcode() == SPIRV::OpTypeFloat; in createNewIdReg() 321 SpvType->getOpcode() == SPIRV::OpTypeVector && in createNewIdReg() 323 SPIRV::OpTypeFloat; in createNewIdReg() 325 auto GetIdOp = IsFloat ? SPIRV::GET_fID : SPIRV::GET_ID; in createNewIdReg() 326 auto DstClass = IsFloat ? &SPIRV::fIDRegClass : &SPIRV::IDRegClass; in createNewIdReg() 335 GetIdOp = SPIRV::GET_vpID64; in createNewIdReg() 336 DstClass = &SPIRV::vpID64RegClass; in createNewIdReg() 338 GetIdOp = SPIRV::GET_pID64; in createNewIdReg() [all …]
|
H A D | SPIRVSubtarget.cpp | 36 static cl::opt<std::set<SPIRV::Extension::Extension>, false, 98 bool SPIRVSubtarget::canUseExtension(SPIRV::Extension::Extension E) const { in canUseExtension() 103 SPIRV::InstructionSet::InstructionSet E) const { in canUseExtInstSet() 136 AvailableExtInstSets.insert(SPIRV::InstructionSet::GLSL_std_450); in initAvailableExtInstSets() 138 AvailableExtInstSets.insert(SPIRV::InstructionSet::OpenCL_std); in initAvailableExtInstSets() 142 SPIRV::Extension::SPV_AMD_shader_trinary_minmax_extension)) { in initAvailableExtInstSets() 144 SPIRV::InstructionSet::SPV_AMD_shader_trinary_minmax); in initAvailableExtInstSets()
|
H A D | SPIRVDuplicatesTracker.h | 28 namespace SPIRV { 105 assert(ImageTy->getOpcode() == SPIRV::OpTypeImage); in make_descr_sampled_image() 141 using StorageTy = MapVector<KeyTy, SPIRV::DTSortableEntry>; 192 class SPIRVDuplicatesTracker<SPIRV::SpecialTypeDescriptor> 193 : public SPIRVDuplicatesTrackerBase<SPIRV::SpecialTypeDescriptor> {}; 202 SPIRVDuplicatesTracker<SPIRV::SpecialTypeDescriptor> ST; 210 MapVector<MachineOperand *, SPIRV::DTSortableEntry *>; 217 void buildDepsGraph(std::vector<SPIRV::DTSortableEntry *> &Graph, 226 ST.add(SPIRV::make_descr_pointee(unifyPtrType(PointeeTy), AddressSpace), MF, in add() 250 void add(const SPIRV::SpecialTypeDescriptor &TD, const MachineFunction *MF, in add() [all …]
|
H A D | SPIRVDuplicatesTracker.cpp | 34 std::vector<SPIRV::DTSortableEntry *> &Graph, in buildDepsGraph() 46 SPIRV::DTSortableEntry *E = Op2E.second; in buildDepsGraph() 63 if (MI->getOpcode() == SPIRV::OpConstantFunctionPointerINTEL && i == 2) in buildDepsGraph() 66 assert((MI->getOpcode() == SPIRV::OpVariable && i == 3) || in buildDepsGraph() 74 if (Next && (Next->getOpcode() == SPIRV::OpFunction || in buildDepsGraph() 75 Next->getOpcode() == SPIRV::OpFunctionParameter)) { in buildDepsGraph() 96 for (SPIRV::DTSortableEntry *D : in buildDepsGraph()
|
H A D | SPIRVSubtarget.h | 44 SmallSet<SPIRV::Extension::Extension, 4> AvailableExtensions; 45 SmallSet<SPIRV::InstructionSet::InstructionSet, 4> AvailableExtInstSets; 93 const SmallSet<SPIRV::Extension::Extension, 4> & 97 bool canUseExtension(SPIRV::Extension::Extension E) const; 98 bool canUseExtInstSet(SPIRV::InstructionSet::InstructionSet E) const;
|
H A D | SPIRVRegisterBankInfo.cpp | 30 if (RC.getID() == SPIRV::TYPERegClassID) in getRegBankFromRegClass() 31 return SPIRV::TYPERegBank; in getRegBankFromRegClass() 32 return SPIRV::IDRegBank; in getRegBankFromRegClass()
|
H A D | SPIRVUtils.h | 54 SPIRV::Decoration::Decoration Dec, 58 SPIRV::Decoration::Decoration Dec, 67 unsigned storageClassToAddressSpace(SPIRV::StorageClass::StorageClass SC); 70 SPIRV::StorageClass::StorageClass 73 SPIRV::MemorySemantics::MemorySemantics 74 getMemSemanticsForStorageClass(SPIRV::StorageClass::StorageClass SC); 76 SPIRV::MemorySemantics::MemorySemantics getMemSemantics(AtomicOrdering Ord);
|
/freebsd/contrib/llvm-project/llvm/lib/Target/SPIRV/MCTargetDesc/ |
H A D | SPIRVBaseInfo.cpp | 20 namespace SPIRV { namespace 57 getSymbolicOperandMnemonic(SPIRV::OperandCategory::OperandCategory Category, in getSymbolicOperandMnemonic() 59 const SPIRV::SymbolicOperand *Lookup = in getSymbolicOperandMnemonic() 60 SPIRV::lookupSymbolicOperandByCategoryAndValue(Category, Value); in getSymbolicOperandMnemonic() 64 if (Category != SPIRV::OperandCategory::ImageOperandOperand && in getSymbolicOperandMnemonic() 65 Category != SPIRV::OperandCategory::FPFastMathModeOperand && in getSymbolicOperandMnemonic() 66 Category != SPIRV::OperandCategory::SelectionControlOperand && in getSymbolicOperandMnemonic() 67 Category != SPIRV::OperandCategory::LoopControlOperand && in getSymbolicOperandMnemonic() 68 Category != SPIRV::OperandCategory::FunctionControlOperand && in getSymbolicOperandMnemonic() 69 Category != SPIRV::OperandCategory::MemorySemanticsOperand && in getSymbolicOperandMnemonic() [all …]
|
H A D | SPIRVInstPrinter.cpp | 29 using namespace llvm::SPIRV; 54 unsigned IsBitwidth16 = MI->getFlags() & SPIRV::ASM_PRINTER_WIDTH16; in printOpConstantVarOps() 70 if (MI->getOpcode() == SPIRV::OpConstantF && IsBitwidth16 == 0) { in printOpConstantVarOps() 113 if (OpCode == SPIRV::OpDecorate) { in printInst() 115 } else if (OpCode == SPIRV::OpExtInstImport) { in printInst() 117 } else if (OpCode == SPIRV::OpExtInst) { in printInst() 132 case SPIRV::OpTypeImage: in printInst() 137 case SPIRV::OpVariable: in printInst() 141 case SPIRV::OpEntryPoint: { in printInst() 147 case SPIRV::OpExecutionMode: in printInst() [all …]
|
H A D | SPIRVBaseInfo.h | 24 namespace SPIRV { 217 using CapabilityList = SmallVector<SPIRV::Capability::Capability, 8>; 218 using ExtensionList = SmallVector<SPIRV::Extension::Extension, 8>; 221 getSymbolicOperandMnemonic(SPIRV::OperandCategory::OperandCategory Category, 224 getSymbolicOperandMinVersion(SPIRV::OperandCategory::OperandCategory Category, 227 getSymbolicOperandMaxVersion(SPIRV::OperandCategory::OperandCategory Category, 230 getSymbolicOperandCapabilities(SPIRV::OperandCategory::OperandCategory Category, 233 getCapabilitiesEnabledByExtension(SPIRV::Extension::Extension Extension); 235 getSymbolicOperandExtensions(SPIRV::OperandCategory::OperandCategory Category, 237 std::string getLinkStringForBuiltIn(SPIRV::BuiltIn::BuiltIn BuiltInValue); [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/SPIRV/Analysis/ |
H A D | SPIRVConvergenceRegionAnalysis.h | 32 namespace SPIRV { 139 SPIRV::ConvergenceRegionInfo CRI; 154 SPIRV::ConvergenceRegionInfo &getRegionInfo() { return CRI; } in getRegionInfo() 155 const SPIRV::ConvergenceRegionInfo &getRegionInfo() const { return CRI; } in getRegionInfo() 165 using Result = SPIRV::ConvergenceRegionInfo; 170 namespace SPIRV {
|
/freebsd/contrib/llvm-project/clang/lib/Driver/ToolChains/ |
H A D | SPIRV.cpp | 21 void SPIRV::constructTranslateCommand(Compilation &C, const Tool &T, in constructTranslateCommand() 49 void SPIRV::Translator::ConstructJob(Compilation &C, const JobAction &JA, in ConstructJob() 62 Translator = std::make_unique<SPIRV::Translator>(*this); in getTranslator() 82 return new tools::SPIRV::Linker(*this); in buildLinker() 85 void SPIRV::Linker::ConstructJob(Compilation &C, const JobAction &JA, in ConstructJob()
|