Home
last modified time | relevance | path

Searched refs:SPIRV (Results 1 – 25 of 61) sorted by relevance

123

/freebsd/contrib/llvm-project/llvm/lib/Target/SPIRV/
H A DSPIRVModuleAnalysis.cpp38 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 DSPIRVInstrInfo.cpp30 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 DSPIRVBuiltins.cpp27 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 DSPIRVCommandLine.cpp23 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 DSPIRVISelLowering.cpp94 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 DSPIRVUtils.cpp88 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 DSPIRVInstructionSelector.cpp60 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 DSPIRVCallLowering.cpp51 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 DSPIRVAsmPrinter.cpp64 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 DSPIRVGlobalRegistry.cpp62 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 DSPIRVPostLegalizer.cpp57 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 DSPIRVRegisterInfo.td13 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 DSPIRVGlobalRegistry.h61 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 DSPIRVPreLegalizer.cpp95 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 DSPIRVSubtarget.cpp36 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 DSPIRVDuplicatesTracker.h28 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 DSPIRVDuplicatesTracker.cpp34 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 DSPIRVSubtarget.h44 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 DSPIRVRegisterBankInfo.cpp30 if (RC.getID() == SPIRV::TYPERegClassID) in getRegBankFromRegClass()
31 return SPIRV::TYPERegBank; in getRegBankFromRegClass()
32 return SPIRV::IDRegBank; in getRegBankFromRegClass()
H A DSPIRVUtils.h54 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 DSPIRVBaseInfo.cpp20 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 DSPIRVInstPrinter.cpp29 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 DSPIRVBaseInfo.h24 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 DSPIRVConvergenceRegionAnalysis.h32 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 DSPIRV.cpp21 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()

123