Add id descriptor feature to SPIR-V
authorAndrey Tuganov <andreyt@google.com>
Wed, 2 Aug 2017 20:47:25 +0000 (16:47 -0400)
committerDavid Neto <dneto@google.com>
Thu, 10 Aug 2017 22:44:52 +0000 (18:44 -0400)
commit78cf86150e5a716b149046dcbab555ff7684a0a4
tree23da135946c3df25d506f417c7c96deb900216b9
parentb0310a4156345aa84d758284b8e43e55f31d8bd2
Add id descriptor feature to SPIR-V

Id descriptors are computed as a recursive hash of all instructions used
to define an id. Descriptors are invarint of actual id values and
the similar code in different files would produce the same descriptors.

Multiple ids can have the same descriptor. For example
%1 = OpConstant %u32 1
%2 = OpConstant %u32 1
would produce two ids with the same descriptor. But
%3 = OpConstant %s32 1
%4 = OpConstant %u32 2
would have descriptors different from %1 and %2.

Descriptors will be used as handles of move-to-front sequences in SPIR-V
compression.
source/CMakeLists.txt
source/id_descriptor.cpp [new file with mode: 0644]
source/id_descriptor.h [new file with mode: 0644]
source/spirv_stats.cpp
source/spirv_stats.h
test/stats/stats_aggregate_test.cpp
tools/stats/stats.cpp
tools/stats/stats_analyzer.cpp
tools/stats/stats_analyzer.h