Set up all the parameterizing descriptions of the opcodes, operands, etc.
| 1819 | |
| 1820 | // Set up all the parameterizing descriptions of the opcodes, operands, etc. |
| 1821 | void 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); |
no test coverage detected