SPIRV-Tools/source
Pierre Moreau 86627f7b3f Implement Linker (module combiner)
Add extra iterators for ir::Module's sections
Add extra getters to ir::Function
Add a const version of BasicBlock::GetLabelInst()

Use the max of all inputs' version as version

Split debug in debug1 and debug2
- Debug1 instructions have to be placed before debug2 instructions.

Error out if different addressing or memory models are found

Exit early if no binaries were given

Error out if entry points are redeclared

Implement copy ctors for Function and BasicBlock
- Visual Studio ends up generating copy constructors that call deleted
  functions while compiling the linker code, while GCC and clang do not.
  So explicitly write those functions to avoid Visual Studio messing up.

Move removing duplicate capabilities to its own pass

Add functions running on all IDs present in an instruction

Remove duplicate SpvOpExtInstImport

Give default options value for link functions

Remove linkage capability if not making a library

Check types before allowing to link

Detect if two types/variables/functions have different decorations

Remove decorations of imported variables/functions and their types

Add a DecorationManager

Add a method for removing all decorations of id

Add methods for removing operands from instructions

Error out if one of the modules has a non-zero schema

Update README.md to talk about the linker

Do not freak out if an imported built-in variable has no export
2017-10-06 18:33:53 -04:00
..
comp Detach MARK-V from the validator 2017-09-26 11:10:23 -04:00
link Implement Linker (module combiner) 2017-10-06 18:33:53 -04:00
opt Implement Linker (module combiner) 2017-10-06 18:33:53 -04:00
util Hack around bug in gcc-4.8.1 templates. 2017-10-06 10:26:17 -04:00
val Add remaining opcodes to arithmetics validation 2017-09-26 11:47:34 -04: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 Convert pattern stack from deque to vector, and share it 2017-07-04 12:02:26 -04:00
binary.h Support building under CYGWIN 2016-12-21 10:34:23 -05:00
cfa.h CFA: Move TraversalRoots and ComputeAugmentedCFG into CFA 2017-05-25 11:43:24 -06:00
CMakeLists.txt Implement Linker (module combiner) 2017-10-06 18:33:53 -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 Add SPIR-V 1.2 support, for OpenCL 2.2 2017-05-15 17:10:07 -04:00
enum_string_mapping.cpp Autogenererating enum-string mappings from grammar 2017-03-16 15:29:17 -04:00
enum_string_mapping.h Autogenererating enum-string mappings from grammar 2017-03-16 15:29:17 -04:00
ext_inst.cpp Avoid using global static variables 2017-09-26 10:59:15 -04:00
ext_inst.h Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
extensions.cpp Autogenererating enum-string mappings from grammar 2017-03-16 15:29:17 -04:00
extensions.h Autogenererating enum-string mappings from grammar 2017-03-16 15:29:17 -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 Add id descriptor feature to SPIR-V 2017-08-10 18:44:52 -04:00
id_descriptor.h Add id descriptor feature to SPIR-V 2017-08-10 18:44:52 -04: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 Add SPIR-V 1.2 support, for OpenCL 2.2 2017-05-15 17:10:07 -04:00
name_mapper.h Make friendly number-based names for OpConstant 2016-11-15 14:05:03 -05:00
opcode.cpp Avoid using global static variables 2017-09-26 10:59:15 -04:00
opcode.h Add SPIR-V 1.2 support, for OpenCL 2.2 2017-05-15 17:10:07 -04:00
operand.cpp Avoid using global static variables 2017-09-26 10:59:15 -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 Fix mingw build (source/print.cpp) 2017-09-01 16:07:18 -04:00
print.h Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
software_version.cpp Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04: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 Add id descriptor feature to SPIR-V 2017-08-10 18:44:52 -04:00
spirv_stats.h Add id descriptor feature to SPIR-V 2017-08-10 18:44:52 -04: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 command line options struct for the validator 2017-02-28 12:00:06 -05:00
spirv_validator_options.h Add command line options struct for the validator 2017-02-28 12:00:06 -05:00
table.cpp Add SPIR-V 1.2 support, for OpenCL 2.2 2017-05-15 17:10:07 -04:00
table.h Add SPIR-V 1.2 support, for OpenCL 2.2 2017-05-15 17:10:07 -04:00
text_handler.cpp Added option --preserve-numeric-ids to tools/spirv-as 2017-04-13 14:13:33 -04:00
text_handler.h Added option --preserve-numeric-ids to tools/spirv-as 2017-04-13 14:13:33 -04:00
text.cpp Convert pattern stack from deque to vector, and share it 2017-07-04 12:02:26 -04:00
text.h Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
validate_arithmetics.cpp Add remaining opcodes to arithmetics validation 2017-09-26 11:47:34 -04:00
validate_bitwise.cpp No use to check OpBitCount result width 2017-09-29 09:14:02 +03:00
validate_capability.cpp Validator dissallows unsupported Vulkan capability 2017-03-17 10:28:35 -04:00
validate_cfg.cpp CFA: Pull in CalculateDominators 2017-05-25 12:31:38 -04:00
validate_datarules.cpp Validation of type decls for SPV_KHR_16bit_storage 2017-02-27 13:12:59 -05:00
validate_decorations.cpp Fixes issue #489. 2017-03-02 10:06:29 -05:00
validate_id.cpp Update MARK-V to version 1.01 2017-09-06 16:03:16 -04:00
validate_instruction.cpp Validator support for Variable Pointer extension. 2017-04-07 09:49:48 -04:00
validate_layout.cpp validator: OpModuleProcessed allowed in layout section 7c 2017-09-07 17:45:51 -04:00
validate_logicals.cpp Validator: fix logicals pass for OpSelect pointers 2017-09-21 16:12:14 -04:00
validate_type_unique.cpp Extension allows multiple same OpTypePointer types 2017-09-01 10:14:15 -04:00
validate.cpp Add bitwise operations validator pass 2017-09-26 14:22:37 -04:00
validate.h Add bitwise operations validator pass 2017-09-26 14:22:37 -04:00