mirror of
https://github.com/KhronosGroup/SPIRV-Tools
synced 2024-12-28 10:41:04 +00:00
063dbea0f1
Function static non-POD data causes problems with DLL lifetime. This pull request turns all static info tables into strict POD tables. Specifically, the capabilities/extensions field of opcode/operand/extended-instruction table are turned into two fields, one for the count and the other a pointer to an array of capabilities/extensions. CapabilitySet/EnumSet are not used in the static table anymore, but they are still used for checking inclusion by constructing on the fly, which should be cheap for the majority cases. Also moves all these tables into the global namespace to avoid C++11 function static thread-safe initialization overhead. |
||
---|---|---|
.. | ||
basic_block.cpp | ||
basic_block.h | ||
construct.cpp | ||
construct.h | ||
decoration.h | ||
function.cpp | ||
function.h | ||
instruction.cpp | ||
instruction.h | ||
validation_state.cpp | ||
validation_state.h |