MCPcopy Create free account
hub / github.com/KhronosGroup/glslang / Parameterize

Function Parameterize

SPIRV/doc.cpp:1821–4153  ·  view source on GitHub ↗

Set up all the parameterizing descriptions of the opcodes, operands, etc.

Source from the content-addressed store, hash-verified

1819
1820// Set up all the parameterizing descriptions of the opcodes, operands, etc.
1821void Parameterize()
1822{
1823 // only do this once.
1824 static std::once_flag initialized;
1825 std::call_once(initialized, [](){
1826
1827 // Exceptions to having a result <id> and a resulting type <id>.
1828 // (Everything is initialized to have both).
1829
1830 InstructionDesc[enumCast(Op::OpNop)].setResultAndType(false, false);
1831 InstructionDesc[enumCast(Op::OpSource)].setResultAndType(false, false);
1832 InstructionDesc[enumCast(Op::OpSourceContinued)].setResultAndType(false, false);
1833 InstructionDesc[enumCast(Op::OpSourceExtension)].setResultAndType(false, false);
1834 InstructionDesc[enumCast(Op::OpExtension)].setResultAndType(false, false);
1835 InstructionDesc[enumCast(Op::OpExtInstImport)].setResultAndType(true, false);
1836 InstructionDesc[enumCast(Op::OpCapability)].setResultAndType(false, false);
1837 InstructionDesc[enumCast(Op::OpMemoryModel)].setResultAndType(false, false);
1838 InstructionDesc[enumCast(Op::OpEntryPoint)].setResultAndType(false, false);
1839 InstructionDesc[enumCast(Op::OpExecutionMode)].setResultAndType(false, false);
1840 InstructionDesc[enumCast(Op::OpExecutionModeId)].setResultAndType(false, false);
1841 InstructionDesc[enumCast(Op::OpTypeVoid)].setResultAndType(true, false);
1842 InstructionDesc[enumCast(Op::OpTypeBool)].setResultAndType(true, false);
1843 InstructionDesc[enumCast(Op::OpTypeInt)].setResultAndType(true, false);
1844 InstructionDesc[enumCast(Op::OpTypeFloat)].setResultAndType(true, false);
1845 InstructionDesc[enumCast(Op::OpTypeVector)].setResultAndType(true, false);
1846 InstructionDesc[enumCast(Op::OpTypeMatrix)].setResultAndType(true, false);
1847 InstructionDesc[enumCast(Op::OpTypeImage)].setResultAndType(true, false);
1848 InstructionDesc[enumCast(Op::OpTypeSampler)].setResultAndType(true, false);
1849 InstructionDesc[enumCast(Op::OpTypeSampledImage)].setResultAndType(true, false);
1850 InstructionDesc[enumCast(Op::OpTypeArray)].setResultAndType(true, false);
1851 InstructionDesc[enumCast(Op::OpTypeRuntimeArray)].setResultAndType(true, false);
1852 InstructionDesc[enumCast(Op::OpTypeStruct)].setResultAndType(true, false);
1853 InstructionDesc[enumCast(Op::OpTypeOpaque)].setResultAndType(true, false);
1854 InstructionDesc[enumCast(Op::OpTypePointer)].setResultAndType(true, false);
1855 InstructionDesc[enumCast(Op::OpTypeUntypedPointerKHR)].setResultAndType(true, false);
1856 InstructionDesc[enumCast(Op::OpTypeForwardPointer)].setResultAndType(false, false);
1857 InstructionDesc[enumCast(Op::OpTypeFunction)].setResultAndType(true, false);
1858 InstructionDesc[enumCast(Op::OpTypeEvent)].setResultAndType(true, false);
1859 InstructionDesc[enumCast(Op::OpTypeDeviceEvent)].setResultAndType(true, false);
1860 InstructionDesc[enumCast(Op::OpTypeReserveId)].setResultAndType(true, false);
1861 InstructionDesc[enumCast(Op::OpTypeQueue)].setResultAndType(true, false);
1862 InstructionDesc[enumCast(Op::OpTypePipe)].setResultAndType(true, false);
1863 InstructionDesc[enumCast(Op::OpFunctionEnd)].setResultAndType(false, false);
1864 InstructionDesc[enumCast(Op::OpStore)].setResultAndType(false, false);
1865 InstructionDesc[enumCast(Op::OpImageWrite)].setResultAndType(false, false);
1866 InstructionDesc[enumCast(Op::OpDecorationGroup)].setResultAndType(true, false);
1867 InstructionDesc[enumCast(Op::OpDecorate)].setResultAndType(false, false);
1868 InstructionDesc[enumCast(Op::OpDecorateId)].setResultAndType(false, false);
1869 InstructionDesc[enumCast(Op::OpDecorateStringGOOGLE)].setResultAndType(false, false);
1870 InstructionDesc[enumCast(Op::OpMemberDecorate)].setResultAndType(false, false);
1871 InstructionDesc[enumCast(Op::OpMemberDecorateStringGOOGLE)].setResultAndType(false, false);
1872 InstructionDesc[enumCast(Op::OpGroupDecorate)].setResultAndType(false, false);
1873 InstructionDesc[enumCast(Op::OpGroupMemberDecorate)].setResultAndType(false, false);
1874 InstructionDesc[enumCast(Op::OpName)].setResultAndType(false, false);
1875 InstructionDesc[enumCast(Op::OpMemberName)].setResultAndType(false, false);
1876 InstructionDesc[enumCast(Op::OpString)].setResultAndType(true, false);
1877 InstructionDesc[enumCast(Op::OpLine)].setResultAndType(false, false);
1878 InstructionDesc[enumCast(Op::OpNoLine)].setResultAndType(false, false);

Callers 1

DisassembleFunction · 0.85

Calls 5

enumCastFunction · 0.85
setResultAndTypeMethod · 0.80
setOperandsMethod · 0.80
pushMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected