SPIRV-Tools/source
Steven Perron e4c7d8e748 Add strength reduction; for now replace multiply by power of 2
Create a new optimization pass, strength reduction, which will replace
integer multiplication by a constant power of 2 with an equivalent bit
shift.  More changes could be added later.

- Does not duplicate constants

- Adds vector |Concat| utility function to a common test header.
2017-09-18 17:01:36 -04:00
..
comp Add new checks to validate arithmetics pass 2017-09-08 11:08:41 -04:00
opt Add strength reduction; for now replace multiply by power of 2 2017-09-18 17:01:36 -04:00
util Update MARK-V to version 1.01 2017-09-06 16:03:16 -04:00
val Add new checks to validate arithmetics pass 2017-09-08 11:08:41 -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 Add validation pass for arithmetic operations 2017-09-05 12:21:53 -04:00
diagnostic.cpp spirv-val prints warnings 2017-03-17 12:48:51 -04:00
diagnostic.h Clean up header dependency. 2016-09-22 18:15:23 -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 Add support for SPV AMD extensions 2017-06-21 15:08:07 -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 Add SPIR-V 1.2 support, for OpenCL 2.2 2017-05-15 17:10:07 -04:00
opcode.h Add SPIR-V 1.2 support, for OpenCL 2.2 2017-05-15 17:10:07 -04:00
operand.cpp Update MARK-V to version 1.01 2017-09-06 16:03:16 -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 new checks to validate arithmetics pass 2017-09-08 11:08:41 -04: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_type_unique.cpp Extension allows multiple same OpTypePointer types 2017-09-01 10:14:15 -04:00
validate.cpp Add validation pass for arithmetic operations 2017-09-05 12:21:53 -04:00
validate.h Add validation pass for arithmetic operations 2017-09-05 12:21:53 -04:00