SPIRV-Tools/source
Alan Baker a771713e42 Adding an unique id to Instruction generated by IRContext
Each instruction is given an unique id that can be used for ordering
purposes. The ids are generated via the IRContext.

Major changes:
* Instructions now contain a uint32_t for unique id and a cached context
pointer
 * Most constructors have been modified to take a context as input
 * unfortunately I cannot remove the default and copy constructors, but
 developers should avoid these
* Added accessors to parents of basic block and function
* Removed the copy constructors for BasicBlock and Function and replaced
them with Clone functions
* Reworked BuildModule to return an IRContext owning the built module
 * Since all instructions require a context, the context now becomes the
basic unit for IR
* Added a constructor to context to create an owned module internally
* Replaced uses of Instruction's copy constructor with Clone whereever I
found them
* Reworked the linker functionality to perform clones into a different
context instead of moves
* Updated many tests to be consistent with the above changes
 * Still need to add new tests to cover added functionality
* Added comparison operators to Instruction
* Added an internal option to LinkerOptions to verify merged ids are
unique
* Added a test for the linker to verify merged ids are unique

* Updated MergeReturnPass to supply a context
* Updated DecorationManager to supply a context for cloned decorations

* Reworked several portions of the def use tests in anticipation of next
set of changes
2017-11-20 17:49:10 -05:00
..
comp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
link Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
opt Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
util Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
val Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
assembly_grammar.cpp Convert pattern stack from deque to vector, and share it 2017-07-04 12:02:26 -04:00
assembly_grammar.h Convert pattern stack from deque to vector, and share it 2017-07-04 12:02:26 -04:00
binary.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
binary.h Support building under CYGWIN 2016-12-21 10:34:23 -05:00
cfa.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
CMakeLists.txt Add validation pass for conversion instructions 2017-10-20 13:51:24 -04:00
diagnostic.cpp DiagnosticStream move ctor moves output duties to new object 2017-10-03 11:23:54 -04:00
diagnostic.h DiagnosticStream move ctor moves output duties to new object 2017-10-03 11:23:54 -04:00
disassemble.cpp Extract EmitNumericLiteral from disassembler 2016-11-15 14:05:03 -05:00
enum_set.h Turn all function static non-POD variables into global POD variables 2017-10-25 15:44:19 -04:00
enum_string_mapping.cpp Autogenererating enum-string mappings from grammar 2017-03-16 15:29:17 -04:00
enum_string_mapping.h Turn all function static non-POD variables into global POD variables 2017-10-25 15:44:19 -04:00
ext_inst.cpp Turn all function static non-POD variables into global POD variables 2017-10-25 15:44:19 -04:00
ext_inst.h Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
extensions.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
extensions.h Turn all function static non-POD variables into global POD variables 2017-10-25 15:44:19 -04:00
extinst.spv-amd-gcn-shader.grammar.json Fix spelling in SPV_AMD_gcn_shader support 2017-04-03 14:59:18 -04:00
extinst.spv-amd-shader-ballot.grammar.json Add support for SPV AMD extensions 2017-06-21 15:08:07 -04:00
extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json Add support for SPV AMD extensions 2017-06-21 15:08:07 -04:00
extinst.spv-amd-shader-trinary-minmax.grammar.json Add support for SPV AMD extensions 2017-06-21 15:08:07 -04:00
id_descriptor.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
id_descriptor.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
instruction.h Add SPIR-V 1.2 support, for OpenCL 2.2 2017-05-15 17:10:07 -04:00
libspirv.cpp Added option --preserve-numeric-ids to tools/spirv-as 2017-04-13 14:13:33 -04:00
macro.h Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
message.cpp spirv-val prints warnings 2017-03-17 12:48:51 -04:00
message.h Clean up header dependency. 2016-09-22 18:15:23 -04:00
name_mapper.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
name_mapper.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
opcode.cpp Add the decoration manager to the IRContext. 2017-11-15 12:48:03 -05:00
opcode.h Add the decoration manager to the IRContext. 2017-11-15 12:48:03 -05:00
operand.cpp Turn all function static non-POD variables into global POD variables 2017-10-25 15:44:19 -04:00
operand.h Update MARK-V to version 1.01 2017-09-06 16:03:16 -04:00
parsed_operand.cpp Extract EmitNumericLiteral from disassembler 2016-11-15 14:05:03 -05:00
parsed_operand.h Extract EmitNumericLiteral from disassembler 2016-11-15 14:05:03 -05:00
print.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
print.h Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
software_version.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
spirv_constant.h Add SPIR-V 1.2 support, for OpenCL 2.2 2017-05-15 17:10:07 -04:00
spirv_definition.h Add SPIR-V 1.2 support, for OpenCL 2.2 2017-05-15 17:10:07 -04:00
spirv_endian.cpp Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
spirv_endian.h Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
spirv_stats.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
spirv_stats.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
spirv_target_env.cpp Add SPIR-V 1.2 support, for OpenCL 2.2 2017-05-15 17:10:07 -04:00
spirv_target_env.h Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
spirv_validator_options.cpp Add option to relax validation of store types. 2017-10-28 18:48:21 -04:00
spirv_validator_options.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
table.cpp Add SPIR-V 1.2 support, for OpenCL 2.2 2017-05-15 17:10:07 -04:00
table.h Turn all function static non-POD variables into global POD variables 2017-10-25 15:44:19 -04:00
text_handler.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
text_handler.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
text.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
text.h Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
validate_arithmetics.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
validate_bitwise.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
validate_capability.cpp Turn all function static non-POD variables into global POD variables 2017-10-25 15:44:19 -04:00
validate_cfg.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
validate_conversion.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
validate_datarules.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
validate_decorations.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
validate_id.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
validate_instruction.cpp Turn all function static non-POD variables into global POD variables 2017-10-25 15:44:19 -04:00
validate_layout.cpp validator: OpModuleProcessed allowed in layout section 7c 2017-09-07 17:45:51 -04:00
validate_logicals.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
validate_type_unique.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
validate.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
validate.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00