Fuzz introspector
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

Fuzzer details

Fuzzer: spvtools_binary_parser_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 44 9.07%
gold [1:9] 43 8.86%
yellow [10:29] 53 10.9%
greenyellow [30:49] 8 1.64%
lawngreen 50+ 337 69.4%
All colors 485 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
2 12 4 :

['spvtools::DiagnosticStream::operator spv_result_t()', '(anonymous namespace)::Parser::diagnostic(spv_result_t)', 'spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< (char const (&) [40])', 'spvtools::DiagnosticStream::~DiagnosticStream()']

2 12 (anonymousnamespace)::Parser::parseOperand(unsignedlong,spv_parsed_instruction_t*,spv_operand_type_t,std::__1::vector >*,std::__1::vector >*,std::__1::vector >*) call site: 00000 /src/spirv-tools/source/binary.cpp:528
2 2 1 :

['spvtools::utils::Span ::Span()']

2 2 spvtools::utils::Span ::subspan(unsignedlong)const call site: 00000 /src/spirv-tools/source/util/span.h:58
0 0 None 0 664 (anonymousnamespace)::Parser::parseModule() call site: 00000 /src/spirv-tools/source/binary.cpp:276
0 0 None 0 0 spvBinaryHeaderGet(spv_const_binary_t*,spv_endianness_t,spv_header_t*) call site: 00000 /src/spirv-tools/source/binary.cpp:43
0 0 None 0 0 (anonymousnamespace)::Parser::parseInstruction() call site: 00000 /src/spirv-tools/source/binary.cpp:409
0 0 3 :

['_ZNSt3__16vectorIjNS_9allocatorIjEEE6insertIPKjTnNS_9enable_ifIXaasr31__has_forward_iterator_categoryIT_EE5valuesr16is_constructibleIjNS_15iterator_traitsIS8_E9referenceEEE5valueEiE4typeELi0EEENS_11__wrap_iterIPjEENSE_IS6_EES8_S8_', 'std::__1::vector >::end[abi:nn180100]()', '_ZNSt3__111__wrap_iterIPKjEC2B8nn180100IPjTnNS_9enable_ifIXsr14is_convertibleIT_S2_EE5valueEiE4typeELi0EEERKNS0_IS7_EE']

0 0 (anonymousnamespace)::Parser::parseOperand(unsignedlong,spv_parsed_instruction_t*,spv_operand_type_t,std::__1::vector >*,std::__1::vector >*,std::__1::vector >*) call site: 00000 /src/spirv-tools/source/binary.cpp:802
0 0 None 0 0 (anonymousnamespace)::Parser::recordNumberType(unsignedlong,spv_parsed_instruction_tconst*) call site: 00000 /src/spirv-tools/source/binary.cpp:859
0 0 None 0 0 spvtools::DiagnosticStream::~DiagnosticStream() call site: 00000 /src/spirv-tools/source/diagnostic.cpp:88
0 0 None 0 0 spvtools::LookupOperand(spv_operand_type_t,unsignedint,spvtools::OperandDescconst**) call site: 00000 /src/spirv-tools/source/table2.cpp:238

Runtime coverage analysis

Covered functions
136
Functions that are reachable but not covered
27
Reachable functions
282
Percentage of reachable functions covered
90.43%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/spirv-tools/test/fuzzers/spvtools_binary_parser_fuzzer.cpp 1
/src/spirv-tools/test/fuzzers/random_generator.cpp 8
/src/spirv-tools/test/fuzzers/random_generator.h 1
/src/spirv-tools/source/spirv_target_env.cpp 1
/src/spirv-tools/source/table.cpp 3
/src/spirv-tools/source/binary.cpp 19
/src/spirv-tools/source/table.h 2
/src/spirv-tools/source/diagnostic.cpp 2
/src/spirv-tools/source/assembly_grammar.h 1
/src/spirv-tools/source/diagnostic.h 45
/src/spirv-tools/source/spirv_endian.cpp 3
/src/spirv-tools/source/opcode.cpp 5
/src/spirv-tools/source/table2.cpp 8
/src/spirv-tools/source/table2.h 3
/src/spirv-tools/source/util/index_range.h 8
/src/spirv-tools/source/util/span.h 16
/src/spirv-tools/source/operand.cpp 10
/src/spirv-tools/build/core_tables_body.inc 2
/src/spirv-tools/source/ext_inst.cpp 2
/src/spirv-tools/source/assembly_grammar.cpp 1
/src/spirv-tools/source/util/string_utils.h 2

Fuzzer: spvtools_as_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 165 13.4%
gold [1:9] 88 7.16%
yellow [10:29] 121 9.84%
greenyellow [30:49] 34 2.76%
lawngreen 50+ 821 66.8%
All colors 1229 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
2 2 1 :

['spvtools::utils::HexFloat , spvtools::utils::HexFloatTraits > >::incrementSignificand(unsigned int, unsigned int, bool*)']

2 4 spvtools::utils::HexFloat ,spvtools::utils::HexFloatTraits >>::uint_typespvtools::utils::HexFloat ,spvtools::utils::HexFloatTraits >>::getRoundedNormalizedSignificand ,spvtools::utils::HexFloatTraits >>>(spvtools::utils::round_direction,bool*) call site: 00000 /src/spirv-tools/source/util/hex_float.h:755
2 2 1 :

['spvtools::utils::HexFloat , spvtools::utils::HexFloatTraits > >::incrementSignificand(unsigned int, unsigned int, bool*)']

2 4 spvtools::utils::HexFloat ,spvtools::utils::HexFloatTraits >>::uint_typespvtools::utils::HexFloat ,spvtools::utils::HexFloatTraits >>::getRoundedNormalizedSignificand ,spvtools::utils::HexFloatTraits >>>(spvtools::utils::round_direction,bool*) call site: 00000 /src/spirv-tools/source/util/hex_float.h:755
2 2 1 :

['spvtools::utils::HexFloat , spvtools::utils::HexFloatTraits > >::incrementSignificand(unsigned int, unsigned int, bool*)']

2 4 spvtools::utils::HexFloat ,spvtools::utils::HexFloatTraits >>::uint_typespvtools::utils::HexFloat ,spvtools::utils::HexFloatTraits >>::getRoundedNormalizedSignificand ,spvtools::utils::HexFloatTraits >>>(spvtools::utils::round_direction,bool*) call site: 00000 /src/spirv-tools/source/util/hex_float.h:755
2 2 1 :

['spvtools::utils::Span ::Span()']

2 2 spvtools::utils::Span ::subspan(unsignedlong)const call site: 00000 /src/spirv-tools/source/util/span.h:58
0 139 7 :

['spvtools::AssemblyContext::diagnostic()', 'spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< (char const (&) [3])', 'spvtools::DiagnosticStream::operator spv_result_t()', 'spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< (char const* const&)', 'spvOperandTypeStr(spv_operand_type_t)', 'spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< (char const (&) [9])', 'spvtools::DiagnosticStream::~DiagnosticStream()']

0 139 spvTextEncodeOperand(spvtools::AssemblyGrammarconst&,spvtools::AssemblyContext*,spv_operand_type_t,charconst*,spv_instruction_t*,std::__1::vector >*) call site: 00000 /src/spirv-tools/source/text.cpp:468
0 12 4 :

['spvtools::DiagnosticStream::operator spv_result_t()', 'spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< (char const (&) [40])', 'spvtools::AssemblyContext::diagnostic(spv_result_t)', 'spvtools::DiagnosticStream::~DiagnosticStream()']

0 12 spvTextEncodeOperand(spvtools::AssemblyGrammarconst&,spvtools::AssemblyContext*,spv_operand_type_t,charconst*,spv_instruction_t*,std::__1::vector >*) call site: 00000 /src/spirv-tools/source/text.cpp:289
0 12 3 :

['spvtools::utils::(anonymous namespace)::ErrorMsgStream::ErrorMsgStream(std::__1::basic_string , std::__1::allocator >*)', 'spvtools::utils::(anonymous namespace)::ErrorMsgStream& spvtools::utils::(anonymous namespace)::ErrorMsgStream::operator<< (char const*)', 'spvtools::utils::(anonymous namespace)::ErrorMsgStream::~ErrorMsgStream()']

0 12 spvtools::utils::ParseAndEncodeNumber(charconst*,spvtools::utils::NumberTypeconst&,std::__1::function ,std::__1::basic_string ,std::__1::allocator >*) call site: 00000 /src/spirv-tools/source/util/parse_number.cpp:241
0 0 None 6 44 std::__1::basic_istream >&spvtools::utils::operator>> ,spvtools::utils::HexFloatTraits >>(std::__1::basic_istream >&,spvtools::utils::HexFloat ,spvtools::utils::HexFloatTraits >>&) call site: 00000 /src/spirv-tools/source/util/hex_float.h:1261
0 0 None 6 44 std::__1::basic_istream >&spvtools::utils::operator>> ,spvtools::utils::HexFloatTraits >>(std::__1::basic_istream >&,spvtools::utils::HexFloat ,spvtools::utils::HexFloatTraits >>&) call site: 00000 /src/spirv-tools/source/util/hex_float.h:1261
0 0 None 4 25 std::__1::basic_istream >&spvtools::utils::operator>> ,spvtools::utils::HexFloatTraits >>(std::__1::basic_istream >&,spvtools::utils::HexFloat ,spvtools::utils::HexFloatTraits >>&) call site: 00000 /src/spirv-tools/source/util/hex_float.h:1296
0 0 None 4 25 std::__1::basic_istream >&spvtools::utils::operator>> ,spvtools::utils::HexFloatTraits >>(std::__1::basic_istream >&,spvtools::utils::HexFloat ,spvtools::utils::HexFloatTraits >>&) call site: 00000 /src/spirv-tools/source/util/hex_float.h:1296
0 0 None 2 2 spvDiagnosticCreate call site: 00000 /src/spirv-tools/source/diagnostic.cpp:33

Runtime coverage analysis

Covered functions
367
Functions that are reachable but not covered
42
Reachable functions
751
Percentage of reachable functions covered
94.41%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/spirv-tools/test/fuzzers/spvtools_as_fuzzer.cpp 1
/src/spirv-tools/test/fuzzers/random_generator.cpp 8
/src/spirv-tools/test/fuzzers/random_generator.h 1
/src/spirv-tools/source/spirv_target_env.cpp 2
/src/spirv-tools/source/table.cpp 3
/src/spirv-tools/source/text.cpp 12
/src/spirv-tools/source/table.h 2
/src/spirv-tools/source/diagnostic.cpp 4
/src/spirv-tools/source/assembly_grammar.h 2
/src/spirv-tools/source/text_handler.h 9
/src/spirv-tools/source/diagnostic.h 49
/src/spirv-tools/source/text_handler.cpp 23
/src/spirv-tools/source/instruction.h 3
/src/spirv-tools/source/util/parse_number.h 25
/src/spirv-tools/source/operand.cpp 8
/src/spirv-tools/source/opcode.cpp 3
/src/spirv-tools/source/table2.cpp 15
/src/spirv-tools/build/core_tables_body.inc 3
/src/spirv-tools/source/util/index_range.h 9
/src/spirv-tools/source/util/span.h 16
/src/spirv-tools/source/ext_inst.cpp 2
/src/spirv-tools/source/text.h 2
/src/spirv-tools/source/assembly_grammar.cpp 4
/src/spirv-tools/source/table2.h 2
/src/spirv-tools/source/util/parse_number.cpp 12
/src/spirv-tools/source/util/make_unique.h 1
/src/spirv-tools/source/util/hex_float.h 143
/src/spirv-tools/source/util/bitutils.h 6
/src/spirv-tools/source/util/string_utils.h 1
/src/spirv-tools/source/binary.cpp 1

Fuzzer: spvtools_dis_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 101 12.8%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 686 87.1%
All colors 787 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
479 479 7 :

['spvtools::(anonymous namespace)::Disassembler::EmitCFG()', 'spvtools::(anonymous namespace)::SingleBlock::~SingleBlock()', 'std::__1::vector >::back[abi:nn180100]()', 'spvtools::(anonymous namespace)::ParsedInstruction& std::__1::vector >::emplace_back (spv_parsed_instruction_t const*&&)', 'std::__1::vector >::push_back[abi:nn180100](spvtools::(anonymous namespace)::SingleBlock&&)', 'spvtools::(anonymous namespace)::SingleBlock::SingleBlock()', 'std::__1::vector >::empty[abi:nn180100]() const']

479 917 spvtools::(anonymousnamespace)::Disassembler::HandleInstruction(spv_parsed_instruction_tconst&) call site: 00000 /src/spirv-tools/source/disassemble.cpp:195
394 394 1 :

['spvtools::disassemble::InstructionDisassembler::GenerateCommentForDecoratedId(spv_parsed_instruction_t const&)']

394 410 spvtools::disassemble::InstructionDisassembler::EmitInstructionImpl(spv_parsed_instruction_tconst&,unsignedlong,unsignedint,bool) call site: 00000 /src/spirv-tools/source/disassemble.cpp:731
2 12 4 :

['spvtools::DiagnosticStream::operator spv_result_t()', '(anonymous namespace)::Parser::diagnostic(spv_result_t)', 'spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< (char const (&) [40])', 'spvtools::DiagnosticStream::~DiagnosticStream()']

2 12 (anonymousnamespace)::Parser::parseOperand(unsignedlong,spv_parsed_instruction_t*,spv_operand_type_t,std::__1::vector >*,std::__1::vector >*,std::__1::vector >*) call site: 00000 /src/spirv-tools/source/binary.cpp:528
2 2 1 :

['spvtools::utils::Span ::Span()']

2 2 spvtools::utils::Span ::subspan(unsignedlong)const call site: 00000 /src/spirv-tools/source/util/span.h:58
0 6 3 :

['spvtools::to_string(unsigned int)', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:nn180100] , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&&, std::__1::basic_string , std::__1::allocator >&&)']

0 6 spvtools::FriendlyNameMapper::NameForEnumOperand(spv_operand_type_t,unsignedint) call site: 00000 /src/spirv-tools/source/name_mapper.cpp:340
0 0 1 :

['std::__1::basic_ostream >::operator<<[abi:nn180100](std::__1::basic_ostream >& (*)(std::__1::basic_ostream >&))']

394 841 spvtools::disassemble::InstructionDisassembler::EmitInstructionImpl(spv_parsed_instruction_tconst&,unsignedlong,unsignedint,bool) call site: 00000 /src/spirv-tools/source/disassemble.cpp:691
0 0 None 394 827 spvtools::disassemble::InstructionDisassembler::EmitInstructionImpl(spv_parsed_instruction_tconst&,unsignedlong,unsignedint,bool) call site: 00000 /src/spirv-tools/source/disassemble.cpp:708
0 0 None 2 2 spvDiagnosticCreate call site: 00000 /src/spirv-tools/source/diagnostic.cpp:33
0 0 1 :

['std::__1::function , std::__1::allocator > (unsigned int)>::operator()(unsigned int) const']

0 64 spvtools::disassemble::InstructionDisassembler::EmitSectionComment(spv_parsed_instruction_tconst&,bool&,bool&,bool&) call site: 00000 /src/spirv-tools/source/disassemble.cpp:820
0 0 None 0 52 spvtools::disassemble::InstructionDisassembler::EmitSectionComment(spv_parsed_instruction_tconst&,bool&,bool&,bool&) call site: 00000 /src/spirv-tools/source/disassemble.cpp:830
0 0 None 0 39 spvtools::disassemble::InstructionDisassembler::EmitSectionComment(spv_parsed_instruction_tconst&,bool&,bool&,bool&) call site: 00000 /src/spirv-tools/source/disassemble.cpp:836
0 0 1 :

['std::__1::basic_ostream >::operator<<(unsigned int)']

0 6 spvtools::disassemble::InstructionDisassembler::EmitInstructionImpl(spv_parsed_instruction_tconst&,unsignedlong,unsignedint,bool) call site: 00000 /src/spirv-tools/source/disassemble.cpp:750

Runtime coverage analysis

Covered functions
235
Functions that are reachable but not covered
62
Reachable functions
502
Percentage of reachable functions covered
87.65%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/spirv-tools/test/fuzzers/spvtools_dis_fuzzer.cpp 1
/src/spirv-tools/test/fuzzers/random_generator.cpp 8
/src/spirv-tools/test/fuzzers/random_generator.h 1
/src/spirv-tools/source/spirv_target_env.cpp 1
/src/spirv-tools/source/table.cpp 3
/src/spirv-tools/source/disassemble.cpp 44
/src/spirv-tools/source/table.h 2
/src/spirv-tools/source/diagnostic.cpp 3
/src/spirv-tools/source/name_mapper.cpp 8
/src/spirv-tools/source/util/make_unique.h 1
/src/spirv-tools/source/assembly_grammar.h 1
/src/spirv-tools/source/binary.cpp 20
/src/spirv-tools/source/diagnostic.h 45
/src/spirv-tools/source/spirv_endian.cpp 3
/src/spirv-tools/source/opcode.cpp 8
/src/spirv-tools/source/table2.cpp 10
/src/spirv-tools/source/table2.h 3
/src/spirv-tools/source/util/index_range.h 8
/src/spirv-tools/source/util/span.h 16
/src/spirv-tools/source/operand.cpp 10
/src/spirv-tools/build/core_tables_body.inc 2
/src/spirv-tools/source/ext_inst.cpp 2
/src/spirv-tools/source/assembly_grammar.cpp 1
/src/spirv-tools/source/util/string_utils.h 2
/src/spirv-tools/source/name_mapper.h 2
/src/spirv-tools/source/to_string.cpp 1
/src/spirv-tools/source/parsed_operand.cpp 1
/src/spirv-tools/source/util/hex_float.h 34
/src/spirv-tools/source/util/bitutils.h 2
/src/spirv-tools/source/print.h 3
/src/spirv-tools/source/print.cpp 6
/src/spirv-tools/source/disassemble.h 1
/src/spirv-tools/source/text.cpp 1

Fuzzer: spvtools_val_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 10539 58.4%
gold [1:9] 2864 15.8%
yellow [10:29] 786 4.35%
greenyellow [30:49] 250 1.38%
lawngreen 50+ 3592 19.9%
All colors 18031 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
2388 2388 1 :

['spvtools::val::(anonymous namespace)::BuiltInsValidator::ValidateSingleBuiltInAtDefinitionVulkan(spvtools::val::Decoration const&, spvtools::val::Instruction const&, spv::BuiltIn)']

2388 2388 spvtools::val::(anonymousnamespace)::BuiltInsValidator::ValidateSingleBuiltInAtDefinition(spvtools::val::Decorationconst&,spvtools::val::Instructionconst&) call site: 00000 /src/spirv-tools/source/val/validate_builtins.cpp:4529
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 9557 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:558
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 4167 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:170
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 4167 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:212
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 4159 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:255
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 2798 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:56
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 2798 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:93
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 2798 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:132
1376 1376 3 :

['std::__1::function , std::__1::allocator > const&)>::function (spvtools::val::(anonymous namespace)::BuiltInsValidator::ValidateWorkgroupSizeAtDefinition(spvtools::val::Decoration const&, spvtools::val::Instruction const&)::$_0)', 'std::__1::function , std::__1::allocator > const&)>::~function()', 'spvtools::val::(anonymous namespace)::BuiltInsValidator::ValidateI32Vec(spvtools::val::Decoration const&, spvtools::val::Instruction const&, unsigned int, std::__1::function , std::__1::allocator > const&)> const&)']

1376 5501 spvtools::val::(anonymousnamespace)::BuiltInsValidator::ValidateWorkgroupSizeAtDefinition(spvtools::val::Decorationconst&,spvtools::val::Instructionconst&) call site: 00000 /src/spirv-tools/source/val/validate_builtins.cpp:3308
479 479 7 :

['spvtools::(anonymous namespace)::Disassembler::EmitCFG()', 'spvtools::(anonymous namespace)::SingleBlock::~SingleBlock()', 'std::__1::vector >::back[abi:nn180100]()', 'spvtools::(anonymous namespace)::ParsedInstruction& std::__1::vector >::emplace_back (spv_parsed_instruction_t const*&&)', 'std::__1::vector >::push_back[abi:nn180100](spvtools::(anonymous namespace)::SingleBlock&&)', 'spvtools::(anonymous namespace)::SingleBlock::SingleBlock()', 'std::__1::vector >::empty[abi:nn180100]() const']

479 917 spvtools::(anonymousnamespace)::Disassembler::HandleInstruction(spv_parsed_instruction_tconst&) call site: 00000 /src/spirv-tools/source/disassemble.cpp:195
394 394 1 :

['spvtools::disassemble::InstructionDisassembler::GenerateCommentForDecoratedId(spv_parsed_instruction_t const&)']

394 410 spvtools::disassemble::InstructionDisassembler::EmitInstructionImpl(spv_parsed_instruction_tconst&,unsignedlong,unsignedint,bool) call site: 00000 /src/spirv-tools/source/disassemble.cpp:731
202 1657 21 :

['spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< , std::__1::allocator > >(std::__1::basic_string , std::__1::allocator > const&)', 'spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< (char const* const&)', 'std::__1::__tree_const_iterator *, long>::operator*[abi:nn180100]() const', 'std::__1::__tree_const_iterator *, long>::operator++[abi:nn180100]()', 'spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< (char const (&) [61])', 'spvtools::DiagnosticStream::~DiagnosticStream()', 'spvtools::val::(anonymous namespace)::BuiltInsValidator::GetReferenceDesc(spvtools::val::Decoration const&, spvtools::val::Instruction const&, spvtools::val::Instruction const&, spvtools::val::Instruction const&, spv::ExecutionModel) const', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'spvtools::AssemblyGrammar::lookupOperandName(spv_operand_type_t, unsigned int) const', 'spvLogStringForEnv(spv_target_env)', 'spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< (char const (&) [22])', 'std::__1::set , std::__1::allocator >::end[abi:nn180100]()', 'spvtools::val::Decoration::builtin() const', 'spvtools::val::ValidationState_t::grammar() const', 'spvtools::DiagnosticStream::operator spv_result_t()', 'std::__1::operator!=[abi:nn180100](std::__1::__tree_const_iterator *, long> const&, std::__1::__tree_const_iterator *, long> const&)', 'spvtools::val::ValidationState_t::context() const', 'spvtools::val::ValidationState_t::diag(spv_result_t, spvtools::val::Instruction const*)', 'spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< (char const (&) [26])', 'spvtools::val::ValidationState_t::VkErrorID(unsigned int, char const*) const', 'std::__1::set , std::__1::allocator >::begin[abi:nn180100]()']

202 1659 spvtools::val::(anonymousnamespace)::BuiltInsValidator::ValidateWorkgroupSizeAtReference(spvtools::val::Decorationconst&,spvtools::val::Instructionconst&,spvtools::val::Instructionconst&,spvtools::val::Instructionconst&) call site: 00000 /src/spirv-tools/source/val/validate_builtins.cpp:3359

Runtime coverage analysis

Covered functions
1019
Functions that are reachable but not covered
663
Reachable functions
2706
Percentage of reachable functions covered
75.5%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/spirv-tools/test/fuzzers/spvtools_val_fuzzer.cpp 1
/src/spirv-tools/test/fuzzers/random_generator.cpp 8
/src/spirv-tools/test/fuzzers/random_generator.h 1
/src/spirv-tools/source/spirv_target_env.cpp 7
/src/spirv-tools/source/libspirv.cpp 6
/src/spirv-tools/source/table.cpp 3
/src/spirv-tools/source/val/validate.cpp 7
/src/spirv-tools/source/table.h 2
/src/spirv-tools/source/diagnostic.cpp 4
/src/spirv-tools/source/spirv_validator_options.cpp 2
/src/spirv-tools/source/spirv_validator_options.h 2
/src/spirv-tools/source/val/validation_state.cpp 127
/src/spirv-tools/source/enum_set.h 48
/src/spirv-tools/source/assembly_grammar.h 2
/src/spirv-tools/source/val/validation_state.h 66
/src/spirv-tools/source/binary.cpp 20
/src/spirv-tools/source/diagnostic.h 162
/src/spirv-tools/source/spirv_endian.cpp 3
/src/spirv-tools/source/opcode.cpp 25
/src/spirv-tools/source/table2.cpp 19
/src/spirv-tools/source/table2.h 3
/src/spirv-tools/source/util/index_range.h 11
/src/spirv-tools/source/util/span.h 27
/src/spirv-tools/source/operand.cpp 12
/src/spirv-tools/build/core_tables_body.inc 3
/src/spirv-tools/source/ext_inst.cpp 3
/src/spirv-tools/source/assembly_grammar.cpp 3
/src/spirv-tools/source/util/string_utils.h 5
/src/spirv-tools/source/name_mapper.cpp 8
/src/spirv-tools/source/util/make_unique.h 2
/src/spirv-tools/source/name_mapper.h 2
/src/spirv-tools/source/to_string.cpp 1
/src/spirv-tools/source/parsed_operand.cpp 1
/src/spirv-tools/source/util/hex_float.h 34
/src/spirv-tools/source/util/bitutils.h 3
/src/spirv-tools/source/extensions.cpp 2
/src/spirv-tools/source/val/instruction.h 37
/src/spirv-tools/source/val/instruction.cpp 2
/src/spirv-tools/source/disassemble.cpp 48
/src/spirv-tools/source/print.h 3
/src/spirv-tools/source/print.cpp 6
/src/spirv-tools/source/text.cpp 1
/src/spirv-tools/source/disassemble.h 1
/src/spirv-tools/source/val/function.h 9
/src/spirv-tools/source/val/function.cpp 32
/src/spirv-tools/source/val/basic_block.h 19
/src/spirv-tools/source/val/validate_id.cpp 3
/src/spirv-tools/source/val/validate_capability.cpp 19
/src/spirv-tools/source/val/validate_layout.cpp 3
/src/spirv-tools/source/cfa.h 7
/src/spirv-tools/source/val/validate_cfg.cpp 22
/src/spirv-tools/source/val/basic_block.cpp 19
/src/spirv-tools/source/val/construct.cpp 13
/src/spirv-tools/source/val/construct.h 3
/src/spirv-tools/source/val/validate_instruction.cpp 13
/src/spirv-tools/source/util/string_utils.cpp 1
/src/spirv-tools/source/val/validate_misc.cpp 5
/src/spirv-tools/source/val/validate_scopes.cpp 9
/src/spirv-tools/source/val/validate_debug.cpp 3
/src/spirv-tools/source/val/validate_annotation.cpp 13
/src/spirv-tools/external/spirv-headers/include/spirv/unified1/spirv.hpp11 7
/src/spirv-tools/source/val/decoration.h 9
/src/spirv-tools/source/val/validate_extensions.cpp 44
/src/spirv-tools/source/val/validate_mode_setting.cpp 9
/src/spirv-tools/source/val/validate_type.cpp 19
/src/spirv-tools/source/val/validate_constants.cpp 9
/src/spirv-tools/source/val/validate_memory.cpp 38
/src/spirv-tools/source/val/validate_function.cpp 6
/src/spirv-tools/source/val/validate_image.cpp 42
/src/spirv-tools/source/val/validate_conversion.cpp 1
/src/spirv-tools/source/val/validate_composites.cpp 11
/src/spirv-tools/source/val/validate_arithmetics.cpp 3
/src/spirv-tools/source/val/validate_bitwise.cpp 2
/src/spirv-tools/source/val/validate_logicals.cpp 2
/src/spirv-tools/source/val/validate_derivatives.cpp 1
/src/spirv-tools/source/val/validate_atomics.cpp 7
/src/spirv-tools/source/val/validate_memory_semantics.cpp 1
/src/spirv-tools/source/val/validate_primitives.cpp 1
/src/spirv-tools/source/val/validate_barriers.cpp 1
/src/spirv-tools/source/val/validate_non_uniform.cpp 14
/src/spirv-tools/source/val/validate_literals.cpp 3
/src/spirv-tools/source/val/validate_ray_query.cpp 4
/src/spirv-tools/source/val/validate_ray_tracing.cpp 1
/src/spirv-tools/source/val/validate_ray_tracing_reorder.cpp 9
/src/spirv-tools/source/val/validate_mesh_shading.cpp 2
/src/spirv-tools/source/val/validate_tensor_layout.cpp 6
/src/spirv-tools/source/val/validate_tensor.cpp 7
/src/spirv-tools/source/val/validate_invalid_type.cpp 1
/src/spirv-tools/source/val/validate_adjacency.cpp 1
/src/spirv-tools/source/val/validate_decorations.cpp 43
/src/spirv-tools/source/val/validate_interfaces.cpp 9
/src/spirv-tools/source/val/validate_builtins.cpp 115
/src/spirv-tools/source/val/validate_execution_limitations.cpp 1
/src/spirv-tools/source/val/validate_small_type_uses.cpp 1

Fuzzer: spvtools_opt_performance_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 13854 73.6%
gold [1:9] 1301 6.91%
yellow [10:29] 172 0.91%
greenyellow [30:49] 84 0.44%
lawngreen 50+ 3391 18.0%
All colors 18802 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
2388 2388 1 :

['spvtools::val::(anonymous namespace)::BuiltInsValidator::ValidateSingleBuiltInAtDefinitionVulkan(spvtools::val::Decoration const&, spvtools::val::Instruction const&, spv::BuiltIn)']

2388 2388 spvtools::val::(anonymousnamespace)::BuiltInsValidator::ValidateSingleBuiltInAtDefinition(spvtools::val::Decorationconst&,spvtools::val::Instructionconst&) call site: 00000 /src/spirv-tools/source/val/validate_builtins.cpp:4529
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1394 9557 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:558
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1390 2798 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:56
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1390 2798 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:93
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1390 2798 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:132
1339 1343 9 :

['spvtools::opt::Instruction::PrettyPrint(unsigned int) const', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:nn180100] , std::__1::allocator >(char const*, std::__1::basic_string , std::__1::allocator >&&)', 'spvtools::opt::Function::DefInst()', 'std::__1::unordered_map , std::__1::equal_to , std::__1::allocator > >::operator[](unsigned int const&)', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::basic_string , std::__1::allocator >::c_str[abi:nn180100]() const', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:nn180100] , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&&, char const*)', 'std::__1::function ::operator()(spv_message_level_t, char const*, spv_position_t const&, char const*) const', 'spvtools::opt::Pass::consumer() const']

1339 1343 spvtools::opt::InlinePass::IsInlinableFunctionCall(spvtools::opt::Instructionconst*) call site: 00000 /src/spirv-tools/source/opt/inline_pass.cpp:724
1319 1800 3 :

['spvtools::opt::Pass::context() const', 'spvtools::opt::analysis::DebugInfoManager::GetDebugInfoNone()', 'spvtools::opt::IRContext::get_debug_info_mgr()']

1319 2253 spvtools::opt::AggressiveDCEPass::InitializeModuleScopeLiveInstructions() call site: 00000 /src/spirv-tools/source/opt/aggressive_dead_code_elim_pass.cpp:669
1165 2471 12 :

['std::__1::vector >::cend[abi:nn180100]() const', 'spvtools::opt::CopyPropagateArrays::MemoryObject::BuildConstants()', 'std::__1::vector >::size[abi:nn180100]() const', 'spvtools::opt::Instruction::result_id() const', 'spvtools::opt::CopyPropagateArrays::MemoryObject::AccessChain() const', 'std::__1::vector >::~vector[abi:nn180100]()', 'std::__1::vector >::begin[abi:nn180100]()', 'std::__1::vector >::vector(unsigned long)', 'spvtools::opt::InstructionBuilder::AddAccessChain(unsigned int, unsigned int, std::__1::vector > const&)', 'std::__1::__wrap_iter std::__1::transform[abi:nn180100] , std::__1::__wrap_iter , spvtools::opt::CopyPropagateArrays::BuildNewAccessChain(spvtools::opt::Instruction*, spvtools::opt::CopyPropagateArrays::MemoryObject*) const::$_0>(std::__1::__wrap_iter , std::__1::__wrap_iter , std::__1::__wrap_iter , spvtools::opt::CopyPropagateArrays::BuildNewAccessChain(spvtools::opt::Instruction*, spvtools::opt::CopyPropagateArrays::MemoryObject*) const::$_0)', 'spvtools::opt::CopyPropagateArrays::MemoryObject::GetPointerTypeId(spvtools::opt::CopyPropagateArrays const*) const', 'std::__1::vector >::cbegin[abi:nn180100]() const']

1165 2473 spvtools::opt::CopyPropagateArrays::BuildNewAccessChain(spvtools::opt::Instruction*,spvtools::opt::CopyPropagateArrays::MemoryObject*)const call site: 00000 /src/spirv-tools/source/opt/copy_prop_arrays.cpp:191
1060 1060 1 :

['spvtools::opt::Instruction::UpdateLexicalScope(unsigned int)']

1060 2120 spvtools::opt::analysis::DebugInfoManager::ReplaceAllUsesInDebugScopeWithPredicate(unsignedint,unsignedint,std::__1::function const&) call site: 00000 /src/spirv-tools/source/opt/debug_info_manager.cpp:676
728 1183 10 :

['spvtools::opt::IRContext::get_type_mgr()', 'std::__1::vector >::empty[abi:nn180100]() const', 'std::__1::vector >::push_back[abi:nn180100](unsigned int&&)', 'spvtools::opt::analysis::TypeManager::GetVoidTypeId()', 'spvtools::opt::Instruction::WhileEachInOperand(std::__1::function const&) const', 'spvtools::opt::Instruction::dbg_line_insts() const', 'spvtools::opt::FeatureManager::GetExtInstImportId_Shader100DebugInfo() const', 'std::__1::vector >::push_back[abi:nn180100](unsigned int const&)', 'std::__1::function ::function >*, bool) const::$_0::operator()(spvtools::opt::Instruction const*) const::{lambda(unsigned int const*)#1}, void>(spvtools::opt::Module::ToBinary(std::__1::vector >*, bool) const::$_0::operator()(spvtools::opt::Instruction const*) const::{lambda(unsigned int const*)#1})', 'std::__1::function ::~function()']

728 3642 spvtools::opt::Module::ToBinary(std::__1::vector >*,bool)const::$_0::operator()(spvtools::opt::Instructionconst*)const call site: 00000 /src/spirv-tools/source/opt/module.cpp:162
479 479 7 :

['spvtools::(anonymous namespace)::Disassembler::EmitCFG()', 'spvtools::(anonymous namespace)::SingleBlock::~SingleBlock()', 'std::__1::vector >::back[abi:nn180100]()', 'spvtools::(anonymous namespace)::ParsedInstruction& std::__1::vector >::emplace_back (spv_parsed_instruction_t const*&&)', 'std::__1::vector >::push_back[abi:nn180100](spvtools::(anonymous namespace)::SingleBlock&&)', 'spvtools::(anonymous namespace)::SingleBlock::SingleBlock()', 'std::__1::vector >::empty[abi:nn180100]() const']

479 917 spvtools::(anonymousnamespace)::Disassembler::HandleInstruction(spv_parsed_instruction_tconst&) call site: 00000 /src/spirv-tools/source/disassemble.cpp:195
394 394 1 :

['spvtools::disassemble::InstructionDisassembler::GenerateCommentForDecoratedId(spv_parsed_instruction_t const&)']

394 410 spvtools::disassemble::InstructionDisassembler::EmitInstructionImpl(spv_parsed_instruction_tconst&,unsignedlong,unsignedint,bool) call site: 00000 /src/spirv-tools/source/disassemble.cpp:731

Runtime coverage analysis

Covered functions
2907
Functions that are reachable but not covered
876
Reachable functions
3294
Percentage of reachable functions covered
73.41%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/spirv-tools/test/fuzzers/spvtools_opt_performance_fuzzer.cpp 1
/src/spirv-tools/test/fuzzers/spvtools_opt_fuzzer_common.cpp 1
/src/spirv-tools/test/fuzzers/random_generator.cpp 8
/src/spirv-tools/test/fuzzers/random_generator.h 1
/src/spirv-tools/source/spirv_target_env.cpp 7
/src/spirv-tools/source/opt/optimizer.cpp 6
/src/spirv-tools/source/opt/pass_manager.h 7
/src/spirv-tools/source/opt/log.h 4
/src/spirv-tools/source/opt/pass.h 1
/src/spirv-tools/source/opt/build_module.cpp 4
/src/spirv-tools/source/table.cpp 3
/src/spirv-tools/source/util/make_unique.h 10
/src/spirv-tools/source/opt/ir_context.h 20
/src/spirv-tools/source/assembly_grammar.h 2
/src/spirv-tools/source/opt/module.h 29
/src/spirv-tools/source/opt/instruction_list.h 13
/src/spirv-tools/source/util/ilist.h 23
/src/spirv-tools/source/opt/instruction.h 24
/src/spirv-tools/source/util/ilist_node.h 8
/src/spirv-tools/source/opt/ir_loader.cpp 4
/src/spirv-tools/source/opt/ir_loader.h 4
/src/spirv-tools/source/binary.cpp 20
/src/spirv-tools/source/table.h 2
/src/spirv-tools/source/diagnostic.cpp 4
/src/spirv-tools/source/diagnostic.h 162
/src/spirv-tools/source/spirv_endian.cpp 3
/src/spirv-tools/source/opcode.cpp 25
/src/spirv-tools/source/table2.cpp 19
/src/spirv-tools/source/table2.h 3
/src/spirv-tools/source/util/index_range.h 11
/src/spirv-tools/source/util/span.h 27
/src/spirv-tools/source/operand.cpp 13
/src/spirv-tools/build/core_tables_body.inc 3
/src/spirv-tools/source/ext_inst.cpp 3
/src/spirv-tools/source/assembly_grammar.cpp 3
/src/spirv-tools/source/util/string_utils.h 6
/src/spirv-tools/source/opt/reflect.h 7
/src/spirv-tools/source/opt/instruction.cpp 10
/src/spirv-tools/source/opt/feature_manager.h 4
/src/spirv-tools/source/enum_set.h 52
/src/spirv-tools/source/opt/feature_manager.cpp 7
/src/spirv-tools/source/opt/iterator.h 17
/src/spirv-tools/source/util/small_vector.h 12
/src/spirv-tools/source/opt/module.cpp 6
/src/spirv-tools/source/opt/function.h 10
/src/spirv-tools/source/opt/basic_block.h 9
/src/spirv-tools/include/spirv-tools/libspirv.hpp 9
/src/spirv-tools/source/spirv_validator_options.cpp 3
/src/spirv-tools/source/spirv_validator_options.h 2
/src/spirv-tools/source/spirv_optimizer_options.cpp 4
/src/spirv-tools/source/spirv_optimizer_options.h 1
/src/spirv-tools/source/libspirv.cpp 7
/src/spirv-tools/source/val/validate.cpp 7
/src/spirv-tools/source/val/validation_state.cpp 127
/src/spirv-tools/source/val/validation_state.h 66
/src/spirv-tools/source/name_mapper.cpp 8
/src/spirv-tools/source/name_mapper.h 2
/src/spirv-tools/source/to_string.cpp 1
/src/spirv-tools/source/parsed_operand.cpp 1
/src/spirv-tools/source/util/hex_float.h 34
/src/spirv-tools/source/util/bitutils.h 3
/src/spirv-tools/source/extensions.cpp 2
/src/spirv-tools/source/val/instruction.h 37
/src/spirv-tools/source/val/instruction.cpp 2
/src/spirv-tools/source/disassemble.cpp 51
/src/spirv-tools/source/print.h 3
/src/spirv-tools/source/print.cpp 6
/src/spirv-tools/source/text.cpp 1
/src/spirv-tools/source/disassemble.h 1
/src/spirv-tools/source/val/function.h 9
/src/spirv-tools/source/val/function.cpp 32
/src/spirv-tools/source/val/basic_block.h 19
/src/spirv-tools/source/val/validate_id.cpp 3
/src/spirv-tools/source/val/validate_capability.cpp 19
/src/spirv-tools/source/val/validate_layout.cpp 3
/src/spirv-tools/source/cfa.h 7
/src/spirv-tools/source/val/validate_cfg.cpp 22
/src/spirv-tools/source/val/basic_block.cpp 19
/src/spirv-tools/source/val/construct.cpp 13
/src/spirv-tools/source/val/construct.h 3
/src/spirv-tools/source/val/validate_instruction.cpp 13
/src/spirv-tools/source/util/string_utils.cpp 1
/src/spirv-tools/source/val/validate_misc.cpp 5
/src/spirv-tools/source/val/validate_scopes.cpp 9
/src/spirv-tools/source/val/validate_debug.cpp 3
/src/spirv-tools/source/val/validate_annotation.cpp 13
/src/spirv-tools/external/spirv-headers/include/spirv/unified1/spirv.hpp11 7
/src/spirv-tools/source/val/decoration.h 9
/src/spirv-tools/source/val/validate_extensions.cpp 44
/src/spirv-tools/source/val/validate_mode_setting.cpp 9
/src/spirv-tools/source/val/validate_type.cpp 19
/src/spirv-tools/source/val/validate_constants.cpp 9
/src/spirv-tools/source/val/validate_memory.cpp 38
/src/spirv-tools/source/val/validate_function.cpp 6
/src/spirv-tools/source/val/validate_image.cpp 42
/src/spirv-tools/source/val/validate_conversion.cpp 1
/src/spirv-tools/source/val/validate_composites.cpp 11
/src/spirv-tools/source/val/validate_arithmetics.cpp 3
/src/spirv-tools/source/val/validate_bitwise.cpp 2
/src/spirv-tools/source/val/validate_logicals.cpp 2
/src/spirv-tools/source/val/validate_derivatives.cpp 1
/src/spirv-tools/source/val/validate_atomics.cpp 7
/src/spirv-tools/source/val/validate_memory_semantics.cpp 1
/src/spirv-tools/source/val/validate_primitives.cpp 1
/src/spirv-tools/source/val/validate_barriers.cpp 1
/src/spirv-tools/source/val/validate_non_uniform.cpp 14
/src/spirv-tools/source/val/validate_literals.cpp 3
/src/spirv-tools/source/val/validate_ray_query.cpp 4
/src/spirv-tools/source/val/validate_ray_tracing.cpp 1
/src/spirv-tools/source/val/validate_ray_tracing_reorder.cpp 9
/src/spirv-tools/source/val/validate_mesh_shading.cpp 2
/src/spirv-tools/source/val/validate_tensor_layout.cpp 6
/src/spirv-tools/source/val/validate_tensor.cpp 7
/src/spirv-tools/source/val/validate_invalid_type.cpp 1
/src/spirv-tools/source/val/validate_adjacency.cpp 1
/src/spirv-tools/source/val/validate_decorations.cpp 43
/src/spirv-tools/source/val/validate_interfaces.cpp 9
/src/spirv-tools/source/val/validate_builtins.cpp 115
/src/spirv-tools/source/val/validate_execution_limitations.cpp 1
/src/spirv-tools/source/val/validate_small_type_uses.cpp 1
/src/spirv-tools/source/opt/pass_manager.cpp 2
/src/spirv-tools/source/util/timer.cpp 2
/src/spirv-tools/source/opt/function.cpp 4
/src/spirv-tools/source/util/timer.h 3
/src/spirv-tools/source/opt/pass.cpp 1
/src/spirv-tools/source/opt/ir_context.cpp 4
/src/spirv-tools/source/opt/def_use_manager.h 2
/src/spirv-tools/source/opt/def_use_manager.cpp 2
/src/spirv-tools/source/opt/basic_block.cpp 3
/src/spirv-tools/source/opt/cfg.cpp 2
/src/spirv-tools/source/opt/cfg.h 2
/src/spirv-tools/source/opt/decoration_manager.h 3
/src/spirv-tools/source/opt/decoration_manager.cpp 3

Fuzzer: spvtools_opt_size_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 11006 58.5%
gold [1:9] 3181 16.9%
yellow [10:29] 545 2.89%
greenyellow [30:49] 189 1.00%
lawngreen 50+ 3881 20.6%
All colors 18802 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
2388 2388 1 :

['spvtools::val::(anonymous namespace)::BuiltInsValidator::ValidateSingleBuiltInAtDefinitionVulkan(spvtools::val::Decoration const&, spvtools::val::Instruction const&, spv::BuiltIn)']

2388 2388 spvtools::val::(anonymousnamespace)::BuiltInsValidator::ValidateSingleBuiltInAtDefinition(spvtools::val::Decorationconst&,spvtools::val::Instructionconst&) call site: 00000 /src/spirv-tools/source/val/validate_builtins.cpp:4529
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 9557 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:558
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 4167 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:170
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 4167 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:212
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 4159 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:255
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 2798 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:56
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 2798 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:93
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 2798 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:132
1376 1376 3 :

['std::__1::function , std::__1::allocator > const&)>::function (spvtools::val::(anonymous namespace)::BuiltInsValidator::ValidateWorkgroupSizeAtDefinition(spvtools::val::Decoration const&, spvtools::val::Instruction const&)::$_0)', 'std::__1::function , std::__1::allocator > const&)>::~function()', 'spvtools::val::(anonymous namespace)::BuiltInsValidator::ValidateI32Vec(spvtools::val::Decoration const&, spvtools::val::Instruction const&, unsigned int, std::__1::function , std::__1::allocator > const&)> const&)']

1376 5501 spvtools::val::(anonymousnamespace)::BuiltInsValidator::ValidateWorkgroupSizeAtDefinition(spvtools::val::Decorationconst&,spvtools::val::Instructionconst&) call site: 00000 /src/spirv-tools/source/val/validate_builtins.cpp:3308
1339 1343 9 :

['spvtools::opt::Instruction::PrettyPrint(unsigned int) const', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:nn180100] , std::__1::allocator >(char const*, std::__1::basic_string , std::__1::allocator >&&)', 'spvtools::opt::Function::DefInst()', 'std::__1::unordered_map , std::__1::equal_to , std::__1::allocator > >::operator[](unsigned int const&)', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::basic_string , std::__1::allocator >::c_str[abi:nn180100]() const', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:nn180100] , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&&, char const*)', 'std::__1::function ::operator()(spv_message_level_t, char const*, spv_position_t const&, char const*) const', 'spvtools::opt::Pass::consumer() const']

1339 1343 spvtools::opt::InlinePass::IsInlinableFunctionCall(spvtools::opt::Instructionconst*) call site: 00000 /src/spirv-tools/source/opt/inline_pass.cpp:724
1319 1800 3 :

['spvtools::opt::Pass::context() const', 'spvtools::opt::analysis::DebugInfoManager::GetDebugInfoNone()', 'spvtools::opt::IRContext::get_debug_info_mgr()']

1319 2253 spvtools::opt::AggressiveDCEPass::InitializeModuleScopeLiveInstructions() call site: 00000 /src/spirv-tools/source/opt/aggressive_dead_code_elim_pass.cpp:669
1060 1060 1 :

['spvtools::opt::Instruction::UpdateLexicalScope(unsigned int)']

1060 2120 spvtools::opt::analysis::DebugInfoManager::ReplaceAllUsesInDebugScopeWithPredicate(unsignedint,unsignedint,std::__1::function const&) call site: 00000 /src/spirv-tools/source/opt/debug_info_manager.cpp:676

Runtime coverage analysis

Covered functions
3109
Functions that are reachable but not covered
697
Reachable functions
3294
Percentage of reachable functions covered
78.84%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/spirv-tools/test/fuzzers/spvtools_opt_size_fuzzer.cpp 1
/src/spirv-tools/test/fuzzers/spvtools_opt_fuzzer_common.cpp 1
/src/spirv-tools/test/fuzzers/random_generator.cpp 8
/src/spirv-tools/test/fuzzers/random_generator.h 1
/src/spirv-tools/source/spirv_target_env.cpp 7
/src/spirv-tools/source/opt/optimizer.cpp 6
/src/spirv-tools/source/opt/pass_manager.h 7
/src/spirv-tools/source/opt/log.h 4
/src/spirv-tools/source/opt/pass.h 1
/src/spirv-tools/source/opt/build_module.cpp 4
/src/spirv-tools/source/table.cpp 3
/src/spirv-tools/source/util/make_unique.h 10
/src/spirv-tools/source/opt/ir_context.h 20
/src/spirv-tools/source/assembly_grammar.h 2
/src/spirv-tools/source/opt/module.h 29
/src/spirv-tools/source/opt/instruction_list.h 13
/src/spirv-tools/source/util/ilist.h 23
/src/spirv-tools/source/opt/instruction.h 24
/src/spirv-tools/source/util/ilist_node.h 8
/src/spirv-tools/source/opt/ir_loader.cpp 4
/src/spirv-tools/source/opt/ir_loader.h 4
/src/spirv-tools/source/binary.cpp 20
/src/spirv-tools/source/table.h 2
/src/spirv-tools/source/diagnostic.cpp 4
/src/spirv-tools/source/diagnostic.h 162
/src/spirv-tools/source/spirv_endian.cpp 3
/src/spirv-tools/source/opcode.cpp 25
/src/spirv-tools/source/table2.cpp 19
/src/spirv-tools/source/table2.h 3
/src/spirv-tools/source/util/index_range.h 11
/src/spirv-tools/source/util/span.h 27
/src/spirv-tools/source/operand.cpp 13
/src/spirv-tools/build/core_tables_body.inc 3
/src/spirv-tools/source/ext_inst.cpp 3
/src/spirv-tools/source/assembly_grammar.cpp 3
/src/spirv-tools/source/util/string_utils.h 6
/src/spirv-tools/source/opt/reflect.h 7
/src/spirv-tools/source/opt/instruction.cpp 10
/src/spirv-tools/source/opt/feature_manager.h 4
/src/spirv-tools/source/enum_set.h 52
/src/spirv-tools/source/opt/feature_manager.cpp 7
/src/spirv-tools/source/opt/iterator.h 17
/src/spirv-tools/source/util/small_vector.h 12
/src/spirv-tools/source/opt/module.cpp 6
/src/spirv-tools/source/opt/function.h 10
/src/spirv-tools/source/opt/basic_block.h 9
/src/spirv-tools/include/spirv-tools/libspirv.hpp 9
/src/spirv-tools/source/spirv_validator_options.cpp 3
/src/spirv-tools/source/spirv_validator_options.h 2
/src/spirv-tools/source/spirv_optimizer_options.cpp 4
/src/spirv-tools/source/spirv_optimizer_options.h 1
/src/spirv-tools/source/libspirv.cpp 7
/src/spirv-tools/source/val/validate.cpp 7
/src/spirv-tools/source/val/validation_state.cpp 127
/src/spirv-tools/source/val/validation_state.h 66
/src/spirv-tools/source/name_mapper.cpp 8
/src/spirv-tools/source/name_mapper.h 2
/src/spirv-tools/source/to_string.cpp 1
/src/spirv-tools/source/parsed_operand.cpp 1
/src/spirv-tools/source/util/hex_float.h 34
/src/spirv-tools/source/util/bitutils.h 3
/src/spirv-tools/source/extensions.cpp 2
/src/spirv-tools/source/val/instruction.h 37
/src/spirv-tools/source/val/instruction.cpp 2
/src/spirv-tools/source/disassemble.cpp 51
/src/spirv-tools/source/print.h 3
/src/spirv-tools/source/print.cpp 6
/src/spirv-tools/source/text.cpp 1
/src/spirv-tools/source/disassemble.h 1
/src/spirv-tools/source/val/function.h 9
/src/spirv-tools/source/val/function.cpp 32
/src/spirv-tools/source/val/basic_block.h 19
/src/spirv-tools/source/val/validate_id.cpp 3
/src/spirv-tools/source/val/validate_capability.cpp 19
/src/spirv-tools/source/val/validate_layout.cpp 3
/src/spirv-tools/source/cfa.h 7
/src/spirv-tools/source/val/validate_cfg.cpp 22
/src/spirv-tools/source/val/basic_block.cpp 19
/src/spirv-tools/source/val/construct.cpp 13
/src/spirv-tools/source/val/construct.h 3
/src/spirv-tools/source/val/validate_instruction.cpp 13
/src/spirv-tools/source/util/string_utils.cpp 1
/src/spirv-tools/source/val/validate_misc.cpp 5
/src/spirv-tools/source/val/validate_scopes.cpp 9
/src/spirv-tools/source/val/validate_debug.cpp 3
/src/spirv-tools/source/val/validate_annotation.cpp 13
/src/spirv-tools/external/spirv-headers/include/spirv/unified1/spirv.hpp11 7
/src/spirv-tools/source/val/decoration.h 9
/src/spirv-tools/source/val/validate_extensions.cpp 44
/src/spirv-tools/source/val/validate_mode_setting.cpp 9
/src/spirv-tools/source/val/validate_type.cpp 19
/src/spirv-tools/source/val/validate_constants.cpp 9
/src/spirv-tools/source/val/validate_memory.cpp 38
/src/spirv-tools/source/val/validate_function.cpp 6
/src/spirv-tools/source/val/validate_image.cpp 42
/src/spirv-tools/source/val/validate_conversion.cpp 1
/src/spirv-tools/source/val/validate_composites.cpp 11
/src/spirv-tools/source/val/validate_arithmetics.cpp 3
/src/spirv-tools/source/val/validate_bitwise.cpp 2
/src/spirv-tools/source/val/validate_logicals.cpp 2
/src/spirv-tools/source/val/validate_derivatives.cpp 1
/src/spirv-tools/source/val/validate_atomics.cpp 7
/src/spirv-tools/source/val/validate_memory_semantics.cpp 1
/src/spirv-tools/source/val/validate_primitives.cpp 1
/src/spirv-tools/source/val/validate_barriers.cpp 1
/src/spirv-tools/source/val/validate_non_uniform.cpp 14
/src/spirv-tools/source/val/validate_literals.cpp 3
/src/spirv-tools/source/val/validate_ray_query.cpp 4
/src/spirv-tools/source/val/validate_ray_tracing.cpp 1
/src/spirv-tools/source/val/validate_ray_tracing_reorder.cpp 9
/src/spirv-tools/source/val/validate_mesh_shading.cpp 2
/src/spirv-tools/source/val/validate_tensor_layout.cpp 6
/src/spirv-tools/source/val/validate_tensor.cpp 7
/src/spirv-tools/source/val/validate_invalid_type.cpp 1
/src/spirv-tools/source/val/validate_adjacency.cpp 1
/src/spirv-tools/source/val/validate_decorations.cpp 43
/src/spirv-tools/source/val/validate_interfaces.cpp 9
/src/spirv-tools/source/val/validate_builtins.cpp 115
/src/spirv-tools/source/val/validate_execution_limitations.cpp 1
/src/spirv-tools/source/val/validate_small_type_uses.cpp 1
/src/spirv-tools/source/opt/pass_manager.cpp 2
/src/spirv-tools/source/util/timer.cpp 2
/src/spirv-tools/source/opt/function.cpp 4
/src/spirv-tools/source/util/timer.h 3
/src/spirv-tools/source/opt/pass.cpp 1
/src/spirv-tools/source/opt/ir_context.cpp 4
/src/spirv-tools/source/opt/def_use_manager.h 2
/src/spirv-tools/source/opt/def_use_manager.cpp 2
/src/spirv-tools/source/opt/basic_block.cpp 3
/src/spirv-tools/source/opt/cfg.cpp 2
/src/spirv-tools/source/opt/cfg.h 2
/src/spirv-tools/source/opt/decoration_manager.h 3
/src/spirv-tools/source/opt/decoration_manager.cpp 3

Fuzzer: spvtools_opt_legalization_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 10833 57.6%
gold [1:9] 3191 16.9%
yellow [10:29] 633 3.36%
greenyellow [30:49] 190 1.01%
lawngreen 50+ 3955 21.0%
All colors 18802 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
2388 2388 1 :

['spvtools::val::(anonymous namespace)::BuiltInsValidator::ValidateSingleBuiltInAtDefinitionVulkan(spvtools::val::Decoration const&, spvtools::val::Instruction const&, spv::BuiltIn)']

2388 2388 spvtools::val::(anonymousnamespace)::BuiltInsValidator::ValidateSingleBuiltInAtDefinition(spvtools::val::Decorationconst&,spvtools::val::Instructionconst&) call site: 00000 /src/spirv-tools/source/val/validate_builtins.cpp:4529
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 9557 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:558
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 4167 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:170
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 4167 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:212
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 4159 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:255
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 2798 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:56
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 2798 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:93
1388 1388 1 :

['spvtools::val::ValidationState_t::CooperativeMatrixShapesMatch(spvtools::val::Instruction const*, unsigned int, unsigned int, bool, bool)']

1388 2798 spvtools::val::ConversionPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) call site: 00000 /src/spirv-tools/source/val/validate_conversion.cpp:132
1376 1376 3 :

['std::__1::function , std::__1::allocator > const&)>::function (spvtools::val::(anonymous namespace)::BuiltInsValidator::ValidateWorkgroupSizeAtDefinition(spvtools::val::Decoration const&, spvtools::val::Instruction const&)::$_0)', 'std::__1::function , std::__1::allocator > const&)>::~function()', 'spvtools::val::(anonymous namespace)::BuiltInsValidator::ValidateI32Vec(spvtools::val::Decoration const&, spvtools::val::Instruction const&, unsigned int, std::__1::function , std::__1::allocator > const&)> const&)']

1376 5501 spvtools::val::(anonymousnamespace)::BuiltInsValidator::ValidateWorkgroupSizeAtDefinition(spvtools::val::Decorationconst&,spvtools::val::Instructionconst&) call site: 00000 /src/spirv-tools/source/val/validate_builtins.cpp:3308
1339 1343 9 :

['spvtools::opt::Instruction::PrettyPrint(unsigned int) const', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:nn180100] , std::__1::allocator >(char const*, std::__1::basic_string , std::__1::allocator >&&)', 'spvtools::opt::Function::DefInst()', 'std::__1::unordered_map , std::__1::equal_to , std::__1::allocator > >::operator[](unsigned int const&)', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::basic_string , std::__1::allocator >::c_str[abi:nn180100]() const', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:nn180100] , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&&, char const*)', 'std::__1::function ::operator()(spv_message_level_t, char const*, spv_position_t const&, char const*) const', 'spvtools::opt::Pass::consumer() const']

1339 1343 spvtools::opt::InlinePass::IsInlinableFunctionCall(spvtools::opt::Instructionconst*) call site: 00000 /src/spirv-tools/source/opt/inline_pass.cpp:724
1319 1800 3 :

['spvtools::opt::Pass::context() const', 'spvtools::opt::analysis::DebugInfoManager::GetDebugInfoNone()', 'spvtools::opt::IRContext::get_debug_info_mgr()']

1319 2253 spvtools::opt::AggressiveDCEPass::InitializeModuleScopeLiveInstructions() call site: 00000 /src/spirv-tools/source/opt/aggressive_dead_code_elim_pass.cpp:669
1091 1091 1 :

['spvtools::opt::IRContext::BuildValueNumberTable()']

1099 3230 spvtools::opt::IRContext::BuildInvalidAnalyses(spvtools::opt::IRContext::Analysis) call site: 00000 /src/spirv-tools/source/opt/ir_context.cpp:75

Runtime coverage analysis

Covered functions
2975
Functions that are reachable but not covered
697
Reachable functions
3294
Percentage of reachable functions covered
78.84%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/spirv-tools/test/fuzzers/spvtools_opt_legalization_fuzzer.cpp 1
/src/spirv-tools/test/fuzzers/spvtools_opt_fuzzer_common.cpp 1
/src/spirv-tools/test/fuzzers/random_generator.cpp 8
/src/spirv-tools/test/fuzzers/random_generator.h 1
/src/spirv-tools/source/spirv_target_env.cpp 7
/src/spirv-tools/source/opt/optimizer.cpp 6
/src/spirv-tools/source/opt/pass_manager.h 7
/src/spirv-tools/source/opt/log.h 4
/src/spirv-tools/source/opt/pass.h 1
/src/spirv-tools/source/opt/build_module.cpp 4
/src/spirv-tools/source/table.cpp 3
/src/spirv-tools/source/util/make_unique.h 10
/src/spirv-tools/source/opt/ir_context.h 20
/src/spirv-tools/source/assembly_grammar.h 2
/src/spirv-tools/source/opt/module.h 29
/src/spirv-tools/source/opt/instruction_list.h 13
/src/spirv-tools/source/util/ilist.h 23
/src/spirv-tools/source/opt/instruction.h 24
/src/spirv-tools/source/util/ilist_node.h 8
/src/spirv-tools/source/opt/ir_loader.cpp 4
/src/spirv-tools/source/opt/ir_loader.h 4
/src/spirv-tools/source/binary.cpp 20
/src/spirv-tools/source/table.h 2
/src/spirv-tools/source/diagnostic.cpp 4
/src/spirv-tools/source/diagnostic.h 162
/src/spirv-tools/source/spirv_endian.cpp 3
/src/spirv-tools/source/opcode.cpp 25
/src/spirv-tools/source/table2.cpp 19
/src/spirv-tools/source/table2.h 3
/src/spirv-tools/source/util/index_range.h 11
/src/spirv-tools/source/util/span.h 27
/src/spirv-tools/source/operand.cpp 13
/src/spirv-tools/build/core_tables_body.inc 3
/src/spirv-tools/source/ext_inst.cpp 3
/src/spirv-tools/source/assembly_grammar.cpp 3
/src/spirv-tools/source/util/string_utils.h 6
/src/spirv-tools/source/opt/reflect.h 7
/src/spirv-tools/source/opt/instruction.cpp 10
/src/spirv-tools/source/opt/feature_manager.h 4
/src/spirv-tools/source/enum_set.h 52
/src/spirv-tools/source/opt/feature_manager.cpp 7
/src/spirv-tools/source/opt/iterator.h 17
/src/spirv-tools/source/util/small_vector.h 12
/src/spirv-tools/source/opt/module.cpp 6
/src/spirv-tools/source/opt/function.h 10
/src/spirv-tools/source/opt/basic_block.h 9
/src/spirv-tools/include/spirv-tools/libspirv.hpp 9
/src/spirv-tools/source/spirv_validator_options.cpp 3
/src/spirv-tools/source/spirv_validator_options.h 2
/src/spirv-tools/source/spirv_optimizer_options.cpp 4
/src/spirv-tools/source/spirv_optimizer_options.h 1
/src/spirv-tools/source/libspirv.cpp 7
/src/spirv-tools/source/val/validate.cpp 7
/src/spirv-tools/source/val/validation_state.cpp 127
/src/spirv-tools/source/val/validation_state.h 66
/src/spirv-tools/source/name_mapper.cpp 8
/src/spirv-tools/source/name_mapper.h 2
/src/spirv-tools/source/to_string.cpp 1
/src/spirv-tools/source/parsed_operand.cpp 1
/src/spirv-tools/source/util/hex_float.h 34
/src/spirv-tools/source/util/bitutils.h 3
/src/spirv-tools/source/extensions.cpp 2
/src/spirv-tools/source/val/instruction.h 37
/src/spirv-tools/source/val/instruction.cpp 2
/src/spirv-tools/source/disassemble.cpp 51
/src/spirv-tools/source/print.h 3
/src/spirv-tools/source/print.cpp 6
/src/spirv-tools/source/text.cpp 1
/src/spirv-tools/source/disassemble.h 1
/src/spirv-tools/source/val/function.h 9
/src/spirv-tools/source/val/function.cpp 32
/src/spirv-tools/source/val/basic_block.h 19
/src/spirv-tools/source/val/validate_id.cpp 3
/src/spirv-tools/source/val/validate_capability.cpp 19
/src/spirv-tools/source/val/validate_layout.cpp 3
/src/spirv-tools/source/cfa.h 7
/src/spirv-tools/source/val/validate_cfg.cpp 22
/src/spirv-tools/source/val/basic_block.cpp 19
/src/spirv-tools/source/val/construct.cpp 13
/src/spirv-tools/source/val/construct.h 3
/src/spirv-tools/source/val/validate_instruction.cpp 13
/src/spirv-tools/source/util/string_utils.cpp 1
/src/spirv-tools/source/val/validate_misc.cpp 5
/src/spirv-tools/source/val/validate_scopes.cpp 9
/src/spirv-tools/source/val/validate_debug.cpp 3
/src/spirv-tools/source/val/validate_annotation.cpp 13
/src/spirv-tools/external/spirv-headers/include/spirv/unified1/spirv.hpp11 7
/src/spirv-tools/source/val/decoration.h 9
/src/spirv-tools/source/val/validate_extensions.cpp 44
/src/spirv-tools/source/val/validate_mode_setting.cpp 9
/src/spirv-tools/source/val/validate_type.cpp 19
/src/spirv-tools/source/val/validate_constants.cpp 9
/src/spirv-tools/source/val/validate_memory.cpp 38
/src/spirv-tools/source/val/validate_function.cpp 6
/src/spirv-tools/source/val/validate_image.cpp 42
/src/spirv-tools/source/val/validate_conversion.cpp 1
/src/spirv-tools/source/val/validate_composites.cpp 11
/src/spirv-tools/source/val/validate_arithmetics.cpp 3
/src/spirv-tools/source/val/validate_bitwise.cpp 2
/src/spirv-tools/source/val/validate_logicals.cpp 2
/src/spirv-tools/source/val/validate_derivatives.cpp 1
/src/spirv-tools/source/val/validate_atomics.cpp 7
/src/spirv-tools/source/val/validate_memory_semantics.cpp 1
/src/spirv-tools/source/val/validate_primitives.cpp 1
/src/spirv-tools/source/val/validate_barriers.cpp 1
/src/spirv-tools/source/val/validate_non_uniform.cpp 14
/src/spirv-tools/source/val/validate_literals.cpp 3
/src/spirv-tools/source/val/validate_ray_query.cpp 4
/src/spirv-tools/source/val/validate_ray_tracing.cpp 1
/src/spirv-tools/source/val/validate_ray_tracing_reorder.cpp 9
/src/spirv-tools/source/val/validate_mesh_shading.cpp 2
/src/spirv-tools/source/val/validate_tensor_layout.cpp 6
/src/spirv-tools/source/val/validate_tensor.cpp 7
/src/spirv-tools/source/val/validate_invalid_type.cpp 1
/src/spirv-tools/source/val/validate_adjacency.cpp 1
/src/spirv-tools/source/val/validate_decorations.cpp 43
/src/spirv-tools/source/val/validate_interfaces.cpp 9
/src/spirv-tools/source/val/validate_builtins.cpp 115
/src/spirv-tools/source/val/validate_execution_limitations.cpp 1
/src/spirv-tools/source/val/validate_small_type_uses.cpp 1
/src/spirv-tools/source/opt/pass_manager.cpp 2
/src/spirv-tools/source/util/timer.cpp 2
/src/spirv-tools/source/opt/function.cpp 4
/src/spirv-tools/source/util/timer.h 3
/src/spirv-tools/source/opt/pass.cpp 1
/src/spirv-tools/source/opt/ir_context.cpp 4
/src/spirv-tools/source/opt/def_use_manager.h 2
/src/spirv-tools/source/opt/def_use_manager.cpp 2
/src/spirv-tools/source/opt/basic_block.cpp 3
/src/spirv-tools/source/opt/cfg.cpp 2
/src/spirv-tools/source/opt/cfg.h 2
/src/spirv-tools/source/opt/decoration_manager.h 3
/src/spirv-tools/source/opt/decoration_manager.cpp 3

Analyses and suggestions

Optimal target analysis

Remaining optimal interesting functions

The following table shows a list of functions that are optimal targets. Optimal targets are identified by finding the functions that in combination, yield a high code coverage.

Func name Functions filename Arg count Args Function depth hitcount instr count bb count cyclomatic complexity Reachable functions Incoming references total cyclomatic complexity Unreached complexity
spvtools::opt::LoopFissionPass::Process() /src/spirv-tools/source/opt/loop_fission.cpp 1 ['N/A'] 38 0 251 43 11 2153 0 3890 3052
spvOptimizerRegisterPassesFromFlagsWhilePreservingTheInterface /src/spirv-tools/source/opt/optimizer.cpp 3 ['N/A', 'N/A', 'size_t'] 10 0 28 3 2 670 0 858 802
spvtools::opt::MergeReturnPass::Process()::$_0::operator()(spvtools::opt::Function*)const /src/spirv-tools/source/opt/merge_return_pass.cpp 2 ['N/A', 'N/A'] 30 0 134 23 9 1737 0 2898 585

Implementing fuzzers that target the above functions will improve reachability such that it becomes:

Functions statically reachable by fuzzers
48.0%
3178 / 6667
Cyclomatic complexity statically reachable by fuzzers
56.0%
17215 / 30664

All functions overview

If you implement fuzzers for these functions, the status of all functions in the project will be:

Func name Functions filename Args Function call depth Reached by Fuzzers Fuzzers runtime hit Func lines hit % I Count BB Count Cyclomatic complexity Functions reached Reached by functions Accumulated cyclomatic complexity Undiscovered complexity

Fuzz engine guidance

This sections provides heuristics that can be used as input to a fuzz engine when running a given fuzz target. The current focus is on providing input that is usable by libFuzzer.

/src/spirv-tools/test/fuzzers/spvtools_binary_parser_fuzzer.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['spvtools::(anonymous namespace)::OperandByValueRangeForKind(spv_operand_type_t)', 'spvtools::(anonymous namespace)::OperandByValueRangeForKind(spv_operand_type_t)', 'spvtools::(anonymous namespace)::OperandByValueRangeForKind(spv_operand_type_t)', '(anonymous namespace)::Parser::parseOperand(unsigned long, spv_parsed_instruction_t*, spv_operand_type_t, std::__1::vector >*, std::__1::vector >*, std::__1::vector >*)', 'spvBinaryParse', 'spvtools::(anonymous namespace)::OperandByValueRangeForKind(spv_operand_type_t)', 'spvtools::(anonymous namespace)::OperandByValueRangeForKind(spv_operand_type_t)', 'spvtools::(anonymous namespace)::OperandByValueRangeForKind(spv_operand_type_t)', '(anonymous namespace)::Parser::Parser(spv_context_t const*, void*, spv_result_t (*)(void*, spv_endianness_t, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int), spv_result_t (*)(void*, spv_parsed_instruction_t const*))', 'spvOpcodeString']

/src/spirv-tools/test/fuzzers/spvtools_as_fuzzer.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['spvtools::(anonymous namespace)::OperandByValueRangeForKind(spv_operand_type_t)', 'spvtools::(anonymous namespace)::OperandByValueRangeForKind(spv_operand_type_t)', 'spvtools::(anonymous namespace)::OperandNameRangeForKind(spv_operand_type_t)', 'spvtools::(anonymous namespace)::OperandByValueRangeForKind(spv_operand_type_t)', 'spvTextEncodeOperand(spvtools::AssemblyGrammar const&, spvtools::AssemblyContext*, spv_operand_type_t, char const*, spv_instruction_t*, std::__1::vector >*)', 'spvtools::(anonymous namespace)::OperandNameRangeForKind(spv_operand_type_t)', 'spvtools::LookupOperand(spv_operand_type_t, unsigned int, spvtools::OperandDesc const**)', 'spvtools::(anonymous namespace)::OperandByValueRangeForKind(spv_operand_type_t)', 'spvtools::(anonymous namespace)::OperandByValueRangeForKind(spv_operand_type_t)', '(anonymous namespace)::encodeInstructionStartingWithImmediate(spvtools::AssemblyGrammar const&, spvtools::AssemblyContext*, spv_instruction_t*)']

/src/spirv-tools/test/fuzzers/spvtools_dis_fuzzer.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['spvtools::disassemble::InstructionDisassembler::EmitSectionComment(spv_parsed_instruction_t const&, bool&, bool&, bool&)', 'spvtools::(anonymous namespace)::OperandByValueRangeForKind(spv_operand_type_t)', 'spvtools::(anonymous namespace)::OperandByValueRangeForKind(spv_operand_type_t)', '(anonymous namespace)::Parser::parseOperand(unsigned long, spv_parsed_instruction_t*, spv_operand_type_t, std::__1::vector >*, std::__1::vector >*, std::__1::vector >*)', 'spvtools::(anonymous namespace)::OperandByValueRangeForKind(spv_operand_type_t)', 'spvtools::disassemble::InstructionDisassembler::EmitOperand(std::__1::basic_ostream >&, spv_parsed_instruction_t const&, unsigned short) const', 'spvtools::(anonymous namespace)::ExtInstByValueRangeForKind(spv_ext_inst_type_t)', 'spvtools::(anonymous namespace)::OperandByValueRangeForKind(spv_operand_type_t)', 'spvtools::(anonymous namespace)::OperandByValueRangeForKind(spv_operand_type_t)', 'spvtools::FriendlyNameMapper::ParseInstruction(spv_parsed_instruction_t const&)']

/src/spirv-tools/test/fuzzers/spvtools_val_fuzzer.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['spvtools::val::(anonymous namespace)::BuiltInsValidator::ValidateSingleBuiltInAtDefinition(spvtools::val::Decoration const&, spvtools::val::Instruction const&)', 'spvtools::val::ValidateExtInst(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*)', 'spvtools::val::ValidationState_t::EvalConstantValUint64(unsigned int, unsigned long*) const', 'spvtools::val::(anonymous namespace)::ValidateArrayLength(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*)', 'spvtools::val::ValidationState_t::IsFP8ScalarType(unsigned int) const', 'spvtools::val::ValidateHitObjectPointer(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*, unsigned int)', 'spvtools::val::(anonymous namespace)::ValidateClspvReflectionArgumentWorkgroup(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*)', 'spvtools::val::ArithmeticsPass(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*)', 'spvtools::val::(anonymous namespace)::CheckDecorationsOfBuffers(spvtools::val::ValidationState_t&)', 'spvtools::val::(anonymous namespace)::ValidateGroupNonUniformElect(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*)']

/src/spirv-tools/test/fuzzers/spvtools_opt_performance_fuzzer.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['spvtools::val::(anonymous namespace)::BuiltInsValidator::ValidateSingleBuiltInAtDefinition(spvtools::val::Decoration const&, spvtools::val::Instruction const&)', 'spvtools::val::ValidateExtInst(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*)', 'spvtools::val::MemoryPass(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*)', 'spvtools::val::ValidationState_t::EvalConstantValUint64(unsigned int, unsigned long*) const', 'spvtools::val::(anonymous namespace)::ValidateImageWrite(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*)', 'spvtools::val::ValidationState_t::IsFP8ScalarType(unsigned int) const', 'spvtools::val::ValidateHitObjectPointer(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*, unsigned int)', 'spvtools::val::(anonymous namespace)::ValidateClspvReflectionArgumentWorkgroup(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*)', 'spvtools::val::ArithmeticsPass(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*)', 'spvtools::val::(anonymous namespace)::ValidateImageOperands(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*, spvtools::val::(anonymous namespace)::ImageTypeInfo const&, unsigned int)']

/src/spirv-tools/test/fuzzers/spvtools_opt_size_fuzzer.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['spvtools::val::(anonymous namespace)::BuiltInsValidator::ValidateSingleBuiltInAtDefinition(spvtools::val::Decoration const&, spvtools::val::Instruction const&)', 'spvtools::val::ValidateExtInst(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*)', 'spvtools::val::(anonymous namespace)::ValidateArrayLength(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*)', 'spvtools::val::ValidationState_t::EvalConstantValUint64(unsigned int, unsigned long*) const', 'spvtools::val::ValidationState_t::IsFP8ScalarType(unsigned int) const', 'spvtools::val::ValidateHitObjectPointer(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*, unsigned int)', 'spvtools::val::(anonymous namespace)::ValidateClspvReflectionArgumentWorkgroup(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*)', 'spvtools::val::ArithmeticsPass(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*)', 'spvtools::val::(anonymous namespace)::CheckDecorationsOfBuffers(spvtools::val::ValidationState_t&)', 'spvtools::val::(anonymous namespace)::ValidateGroupNonUniformElect(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*)']

/src/spirv-tools/test/fuzzers/spvtools_opt_legalization_fuzzer.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['spvtools::val::(anonymous namespace)::BuiltInsValidator::ValidateSingleBuiltInAtDefinition(spvtools::val::Decoration const&, spvtools::val::Instruction const&)', 'spvtools::val::ValidateExtInst(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*)', 'spvtools::val::(anonymous namespace)::ValidateArrayLength(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*)', 'spvtools::val::ValidationState_t::EvalConstantValUint64(unsigned int, unsigned long*) const', 'spvtools::val::ValidationState_t::IsFP8ScalarType(unsigned int) const', 'spvtools::val::ValidateHitObjectPointer(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*, unsigned int)', 'spvtools::val::(anonymous namespace)::ValidateClspvReflectionArgumentWorkgroup(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*)', 'spvtools::val::ArithmeticsPass(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*)', 'spvtools::val::(anonymous namespace)::CheckDecorationsOfBuffers(spvtools::val::ValidationState_t&)', 'spvtools::val::(anonymous namespace)::ValidateGroupNonUniformElect(spvtools::val::ValidationState_t&, spvtools::val::Instruction const*)']

Runtime coverage analysis

This section shows analysis of runtime coverage data.

For futher technical details on how this section is generated, please see the Glossary .

Complex functions with low coverage

Func name Function total lines Lines covered at runtime percentage covered Reached by fuzzers
spvIsValidEnv(spv_target_env) 35 9 25.71% ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvVersionForTargetEnv(spv_target_env) 44 9 20.45% ['spvtools_as_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvTargetEnvDescription 63 6 9.523% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvIsVulkanEnv(spv_target_env) 39 17 43.58% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvIsOpenCLEnv(spv_target_env) 39 19 48.71% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvIsOpenGLEnv(spv_target_env) 39 9 23.07% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::(anonymousnamespace)::ValidateDecorate(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 58 29 50.0% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::ArithmeticsPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 722 357 49.44% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::AtomicsPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 302 129 42.71% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::(anonymousnamespace)::BuiltInsValidator::ValidateWorkgroupSizeAtDefinition(spvtools::val::Decorationconst&,spvtools::val::Instructionconst&) 42 23 54.76% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::CapabilityPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 104 33 31.73% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::MaximalReconvergenceChecks(spvtools::val::ValidationState_t&) 72 11 15.27% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::(anonymousnamespace)::ValidateConstantComposite(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 368 185 50.27% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::(anonymousnamespace)::CheckDecorationsOfEntryPoints(spvtools::val::ValidationState_t&) 255 100 39.21% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::(anonymousnamespace)::CheckDecorationsOfBuffers(spvtools::val::ValidationState_t&) 340 138 40.58% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::(anonymousnamespace)::CheckComponentDecoration(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst&,spvtools::val::Decorationconst&) 91 37 40.65% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::(anonymousnamespace)::CheckFPRoundingModeForShaders(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst&,spvtools::val::Decorationconst&) 59 7 11.86% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::(anonymousnamespace)::CheckInvalidVulkanExplicitLayout(spvtools::val::ValidationState_t&) 89 4 4.494% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::ValidateExtInst(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 2453 526 21.44% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::(anonymousnamespace)::ValidateTypeImage(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 138 58 42.02% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::(anonymousnamespace)::ValidateImageTexelPointer(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 126 38 30.15% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::(anonymousnamespace)::ValidateImageWrite(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 69 6 8.695% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::(anonymousnamespace)::ValidateImageQuerySizeLod(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 57 11 19.29% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::(anonymousnamespace)::ModuleScopedInstructions(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*,spv::Op) 96 39 40.62% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::MemoryPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 84 41 48.80% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::(anonymousnamespace)::ValidateVariable(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 546 214 39.19% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::(anonymousnamespace)::CheckMemoryAccess(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*,unsignedint) 94 27 28.72% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::(anonymousnamespace)::ValidateStore(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 145 74 51.03% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::(anonymousnamespace)::ValidateCopyMemory(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 222 68 30.63% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::(anonymousnamespace)::ValidatePtrComparison(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 73 14 19.17% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::ValidateMemorySemantics(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*,unsignedint,unsignedint) 205 81 39.51% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::MeshShadingPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 112 12 10.71% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::MiscPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 89 14 15.73% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::(anonymousnamespace)::ValidateExecutionMode(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 402 209 51.99% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::(anonymousnamespace)::ValidateMemoryModel(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 31 7 22.58% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::NonUniformPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 64 19 29.68% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::RayQueryPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 236 9 3.813% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::RayTracingPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 161 9 5.590% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::RayReorderNVPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 408 29 7.107% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::ValidateExecutionScope(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*,unsignedint) 92 23 25.0% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::ValidateMemoryScope(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*,unsignedint) 113 27 23.89% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::TensorLayoutPass(spvtools::val::ValidationState_t&,spvtools::val::Instructionconst*) 36 7 19.44% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::ValidationState_t::RegisterStorageClassConsumer(spv::StorageClass,spvtools::val::Instruction*) 197 11 5.583% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::ValidationState_t::IsValidStorageClass(spv::StorageClass)const 32 4 12.5% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::val::ValidationState_t::VkErrorID(unsignedint,charconst*)const 675 4 0.592% ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::opt::AggressiveDCEPass::InitializeModuleScopeLiveInstructions() 70 36 51.42% []
spvtools::opt::CombineAccessChains::CombineAccessChain(spvtools::opt::Instruction*) 31 14 45.16% []
spvtools::opt::(anonymousnamespace)::FoldOpDotWithConstants()::$_0::operator()(spvtools::opt::IRContext*,spvtools::opt::Instruction*,std::__1::vector >const&)const 58 18 31.03% []
spvtools::opt::(anonymousnamespace)::FoldFClampFeedingCompare(spv::Op)::$_0::operator()(spvtools::opt::IRContext*,spvtools::opt::Instruction*,std::__1::vector >const&)const 132 21 15.90% []
spvtools::opt::(anonymousnamespace)::FoldMatrixTimesVector()::$_0::operator()(spvtools::opt::IRContext*,spvtools::opt::Instruction*,std::__1::vector >const&)const 81 30 37.03% []
spvtools::opt::(anonymousnamespace)::FoldMax(spvtools::opt::analysis::Typeconst*,spvtools::opt::analysis::Constantconst*,spvtools::opt::analysis::Constantconst*,spvtools::opt::analysis::ConstantManager*) 36 17 47.22% []
spvtools::opt::analysis::ConstantManager::GetNullCompositeConstant(spvtools::opt::analysis::Typeconst*) 33 12 36.36% []
spvtools::opt::CopyPropagateArrays::BuildMemoryObjectFromInsert(spvtools::opt::Instruction*) 66 21 31.81% []
spvtools::opt::CopyPropagateArrays::UpdateUses(spvtools::opt::Instruction*,spvtools::opt::Instruction*) 160 70 43.75% []
spvtools::opt::analysis::DebugInfoManager::BuildDebugInlinedAtChain(unsignedint,spvtools::opt::analysis::DebugInlinedAtContext*) 37 4 10.81% []
spvtools::opt::analysis::DebugInfoManager::AnalyzeDebugInst(spvtools::opt::Instruction*) 46 4 8.695% []
spvtools::opt::analysis::DebugInfoManager::ClearDebugInfo(spvtools::opt::Instruction*) 83 10 12.04% []
spvtools::opt::analysis::DecorationManager::CloneDecorations(unsignedint,unsignedint) 41 15 36.58% []
spvtools::opt::analysis::CompareAndPrintDifferences(spvtools::opt::analysis::DefUseManagerconst&,spvtools::opt::analysis::DefUseManagerconst&) 43 7 16.27% ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
spvtools::opt::(anonymousnamespace)::BasicBlockSuccessorHelper ::CreateSuccessorMap(spvtools::opt::Function&,spvtools::opt::BasicBlockconst*) 34 18 52.94% []
spvtools::opt::IRContext::BuildInvalidAnalyses(spvtools::opt::IRContext::Analysis) 54 24 44.44% []
spvtools::opt::MergeReturnPass::CreatePhiNodesForInst(spvtools::opt::BasicBlock*,spvtools::opt::Instruction&) 90 29 32.22% []
spvtools::opt::ScalarReplacementPass::GetOrCreateInitialValue(spvtools::opt::Instruction*,unsignedint,spvtools::opt::Instruction*) 44 3 6.818% []
spvtools::opt::analysis::TypeManager::AnalyzeTypes(spvtools::opt::Moduleconst&) 80 10 12.5% []
spvtools::opt::analysis::TypeManager::GetTypeInstruction(spvtools::opt::analysis::Typeconst*) 292 53 18.15% []
spvtools::opt::analysis::TypeManager::RebuildType(unsignedint,spvtools::opt::analysis::Typeconst&) 180 29 16.11% []
spvtools::opt::analysis::Type::Clone()const 42 9 21.42% []
spvtools::opt::analysis::Type::operator==(spvtools::opt::analysis::Typeconst&)const 44 9 20.45% []
spvtools::utils::HexFloat ,spvtools::utils::HexFloatTraits >>::uint_typespvtools::utils::HexFloat ,spvtools::utils::HexFloatTraits >>::getRoundedNormalizedSignificand ,spvtools::utils::HexFloatTraits >>>(spvtools::utils::round_direction,bool*) 63 26 41.26% []
spvtools::opt::EliminateDeadMembersPass::UpdateOpGroupMemberDecorate(spvtools::opt::Instruction*) 33 9 27.27% []
spvtools::opt::FixStorageClass::PropagateStorageClass(spvtools::opt::Instruction*,spv::StorageClass,std::__1::set ,std::__1::allocator >*) 48 16 33.33% []
spvtools::opt::InvocationInterlockPlacementPass::Process() 33 5 15.15% []
spvtools::opt::OpExtInstWithForwardReferenceFixupPass::Process() 33 16 48.48% []

Files and Directories in report

This section shows which files and directories are considered in this report. The main reason for showing this is fuzz introspector may include more code in the reasoning than is desired. This section helps identify if too many files/directories are included, e.g. third party code, which may be irrelevant for the threat model. In the event too much is included, fuzz introspector supports a configuration file that can exclude data from the report. See the following link for more information on how to create a config file: link

Files in report

Source file Reached by Covered by
[] []
/src/spirv-tools/source/opt/simplification_pass.h [] []
/src/spirv-tools/source/opt/const_folding_rules.cpp [] []
/src/spirv-tools/source/opt/dominator_analysis.cpp [] []
/src/spirv-tools/source/opt/mem_pass.cpp [] []
/src/spirv-tools/source/text_handler.h ['spvtools_as_fuzzer'] ['spvtools_as_fuzzer']
/src/spirv-tools/source/opt/simplification_pass.cpp [] []
/src/spirv-tools/source/opt/scalar_analysis_nodes.h [] []
/src/spirv-tools/source/opt/inline_exhaustive_pass.cpp [] []
/src/spirv-tools/source/val/decoration.h ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/loop_unroller.cpp [] []
/src/spirv-tools/source/opt/ssa_rewrite_pass.h [] []
/src/spirv-tools/source/opt/fix_storage_class.cpp [] []
/src/spirv-tools/source/opt/loop_peeling.cpp [] []
/src/spirv-tools/source/opt/desc_sroa.h [] []
/src/spirv-tools/source/opt/strip_nonsemantic_info_pass.h [] []
/src/spirv-tools/source/opt/compact_ids_pass.cpp [] []
/src/spirv-tools/source/val/validate_memory_semantics.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/pass_manager.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/remove_duplicates_pass.cpp [] []
/src/spirv-tools/source/opt/combine_access_chains.cpp [] []
/src/spirv-tools/source/opt/copy_prop_arrays.h [] []
/src/spirv-tools/source/opt/desc_sroa.cpp [] []
/src/spirv-tools/source/val/validate_cfg.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/loop_unswitch_pass.cpp [] []
/src/spirv-tools/source/opt/remove_unused_interface_variables_pass.cpp [] []
/src/spirv-tools/source/opt/loop_fusion_pass.cpp [] []
/src/spirv-tools/source/table2.h ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/debug_info_manager.h [] []
/src/spirv-tools/test/fuzzers/spvtools_dis_fuzzer.cpp ['spvtools_dis_fuzzer'] ['spvtools_dis_fuzzer']
/src/spirv-tools/source/opt/loop_descriptor.h [] []
/src/spirv-tools/source/opt/value_number_table.cpp [] []
/src/spirv-tools/source/opt/licm_pass.h [] []
/src/spirv-tools/source/opt/copy_prop_arrays.cpp [] []
/src/spirv-tools/test/fuzzers/spvtools_as_fuzzer.cpp ['spvtools_as_fuzzer'] ['spvtools_as_fuzzer']
/src/spirv-tools/source/val/validate_non_uniform.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/aggressive_dead_code_elim_pass.cpp [] []
/src/spirv-tools/source/opt/strip_nonsemantic_info_pass.cpp [] []
/src/spirv-tools/source/opt/ir_context.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/val/validate_extensions.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/opextinst_forward_ref_fixup_pass.h [] []
/src/spirv-tools/source/opt/ccp_pass.h [] []
/src/spirv-tools/source/opt/block_merge_util.cpp [] []
/src/spirv-tools/source/opt/dominator_tree.cpp [] []
/src/spirv-tools/source/opt/eliminate_dead_functions_pass.cpp [] []
/src/spirv-tools/source/opt/fix_func_call_arguments.h [] []
/src/spirv-tools/source/instruction.h ['spvtools_as_fuzzer'] ['spvtools_as_fuzzer']
/src/spirv-tools/source/cfa.h ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/fold.h [] []
/src/spirv-tools/source/opt/cfg.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/parsed_operand.cpp ['spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/register_pressure.h [] []
/src/spirv-tools/source/opt/constants.h [] []
/src/spirv-tools/source/val/validate_logicals.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/val/function.h ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/freeze_spec_constant_value_pass.h [] []
/src/spirv-tools/source/opt/function.cpp ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/loop_fission.h [] []
/usr/local/bin/../include/c++/v1/initializer_list [] []
/src/spirv-tools/source/opt/loop_dependence.cpp [] []
/src/spirv-tools/source/val/validate_ray_tracing.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/ccp_pass.cpp [] []
/src/spirv-tools/source/opt/opextinst_forward_ref_fixup_pass.cpp [] []
/usr/local/bin/../include/c++/v1/string [] []
/src/spirv-tools/source/val/validate_literals.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/loop_utils.cpp [] []
/src/spirv-tools/source/opt/types.h [] []
/src/spirv-tools/source/opt/compact_ids_pass.h [] []
/src/spirv-tools/source/opt/aggressive_dead_code_elim_pass.h [] []
/src/spirv-tools/source/opt/switch_descriptorset_pass.cpp [] []
/src/spirv-tools/source/opt/dominator_analysis.h [] []
/src/spirv-tools/source/opt/inline_exhaustive_pass.h [] []
/src/spirv-tools/source/opt/graphics_robust_access_pass.h [] []
/src/spirv-tools/source/opt/private_to_local_pass.h [] []
/src/spirv-tools/source/opt/merge_return_pass.h [] []
/src/spirv-tools/source/val/validate_invalid_type.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/strength_reduction_pass.cpp [] []
/src/spirv-tools/source/opt/if_conversion.cpp [] []
/src/spirv-tools/source/opt/dead_variable_elimination.h [] []
/src/spirv-tools/source/opt/basic_block.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/util/hex_float.h ['spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/val/validate_composites.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/ssa_rewrite_pass.cpp [] []
/src/spirv-tools/source/opt/scalar_analysis.h [] []
/src/spirv-tools/source/opt/local_access_chain_convert_pass.h [] []
/usr/local/bin/../include/c++/v1/__charconv/from_chars_integral.h [] []
/src/spirv-tools/source/opt/redundancy_elimination.cpp [] []
/src/spirv-tools/source/opt/eliminate_dead_constant_pass.cpp [] []
/src/spirv-tools/source/opt/module.cpp ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/optimizer.cpp ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/debug_info_manager.cpp [] []
/src/spirv-tools/source/val/validate_conversion.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/scalar_replacement_pass.h [] []
/src/spirv-tools/source/opt/inline_pass.cpp [] []
/src/spirv-tools/source/opt/loop_utils.h [] []
/src/spirv-tools/source/opt/resolve_binding_conflicts_pass.h [] []
/src/spirv-tools/source/val/validate_id.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/val/validate_small_type_uses.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/diagnostic.h ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/set_spec_constant_default_value_pass.h [] []
/src/spirv-tools/source/opt/def_use_manager.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/val/validate_type.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/replace_invalid_opc.cpp [] []
/src/spirv-tools/source/opt/loop_dependence.h [] []
/src/spirv-tools/source/spirv_validator_options.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/convert_to_sampled_image_pass.h [] []
/src/spirv-tools/source/spirv_optimizer_options.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/mem_pass.h [] []
/src/spirv-tools/source/opt/value_number_table.h [] []
/src/spirv-tools/source/opt/convert_to_half_pass.h [] []
/src/spirv-tools/source/opt/local_redundancy_elimination.h [] []
/src/spirv-tools/source/opt/eliminate_dead_output_stores_pass.cpp [] []
/src/spirv-tools/source/spirv_target_env.cpp ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/liveness.cpp [] []
/src/spirv-tools/source/opt/pass.cpp ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/usr/local/bin/../include/c++/v1/stdlib.h [] []
/src/spirv-tools/source/util/timer.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/fix_storage_class.h [] []
/src/spirv-tools/source/opt/ir_builder.h [] []
/src/spirv-tools/source/opt/instruction.cpp ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/upgrade_memory_model.h [] []
/src/spirv-tools/source/opt/wrap_opkill.cpp [] []
/src/spirv-tools/source/opt/local_single_store_elim_pass.h [] []
/src/spirv-tools/source/opt/cfg.cpp ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/scalar_replacement_pass.cpp [] []
/src/spirv-tools/source/opt/amd_ext_to_khr.cpp [] []
/src/spirv-tools/source/opt/set_spec_constant_default_value_pass.cpp [] []
/src/spirv-tools/source/opt/vector_dce.cpp [] []
/src/spirv-tools/source/opt/liveness.h [] []
/src/spirv-tools/source/opt/dead_branch_elim_pass.cpp [] []
/src/spirv-tools/source/util/bit_vector.cpp [] []
/src/spirv-tools/source/util/string_utils.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/spirv_validator_options.h ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/libspirv.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/instruction.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/val/construct.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/spirv_endian.cpp ['spvtools_binary_parser_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_binary_parser_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/loop_unswitch_pass.h [] []
/src/spirv-tools/source/util/index_range.h ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/val/validate_adjacency.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/constants.cpp [] []
/src/spirv-tools/source/val/validate_debug.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/util/hash_combine.h [] []
/src/spirv-tools/source/val/validate_memory.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/trim_capabilities_pass.h [] []
/src/spirv-tools/source/opt/eliminate_dead_members_pass.cpp [] []
/src/spirv-tools/source/opt/pass.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/struct_cfg_analysis.cpp [] []
/src/spirv-tools/source/opt/replace_desc_array_access_using_var_index.h [] []
/src/spirv-tools/source/opt/convert_to_sampled_image_pass.cpp [] []
/src/spirv-tools/source/val/validate_builtins.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/eliminate_dead_constant_pass.h [] []
/src/spirv-tools/source/val/validation_state.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/interface_var_sroa.h [] []
/src/spirv-tools/source/util/timer.cpp ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/code_sink.h [] []
/src/spirv-tools/source/val/validate_bitwise.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/resolve_binding_conflicts_pass.cpp [] []
/src/spirv-tools/source/opt/decoration_manager.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/decoration_manager.cpp ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/type_manager.h [] []
/src/spirv-tools/source/opt/convert_to_half_pass.cpp [] []
/src/spirv-tools/source/opt/remove_duplicates_pass.h [] []
/src/spirv-tools/source/opt/module.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/merge_return_pass.cpp [] []
/src/spirv-tools/source/opt/local_single_block_elim_pass.cpp [] []
/src/spirv-tools/source/opt/unify_const_pass.h [] []
/src/spirv-tools/source/opt/private_to_local_pass.cpp [] []
/src/spirv-tools/source/opt/relax_float_ops_pass.cpp [] []
/src/spirv-tools/source/opt/remove_dontinline_pass.cpp [] []
/src/spirv-tools/source/opt/tree_iterator.h [] []
/src/spirv-tools/source/val/construct.h ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/disassemble.h ['spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] []
/src/spirv-tools/source/opt/code_sink.cpp [] []
/src/spirv-tools/source/opt/fix_func_call_arguments.cpp [] []
/src/spirv-tools/source/opt/spread_volatile_semantics.cpp [] []
/src/spirv-tools/source/opt/workaround1209.cpp [] []
/src/spirv-tools/source/opt/folding_rules.cpp [] []
/src/spirv-tools/source/binary.cpp ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/local_redundancy_elimination.cpp [] []
/src/spirv-tools/source/opt/remove_dontinline_pass.h [] []
/src/spirv-tools/source/opt/composite.cpp [] []
/src/spirv-tools/source/opt/local_access_chain_convert_pass.cpp [] []
/src/spirv-tools/source/ext_inst.cpp ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/name_mapper.cpp ['spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/dead_variable_elimination.cpp [] []
/src/spirv-tools/source/val/validate_instruction.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/interp_fixup_pass.h [] []
/src/spirv-tools/source/val/validate_function.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/flatten_decoration_pass.h [] []
/src/spirv-tools/external/spirv-headers/include/spirv/unified1/spirv.hpp11 ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/table2.cpp ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/table.cpp ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/val/basic_block.h ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/disassemble.cpp ['spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/graphics_robust_access_pass.cpp [] []
/src/spirv-tools/source/opt/split_combined_image_sampler_pass.cpp [] []
/src/spirv-tools/source/val/instruction.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/flatten_decoration_pass.cpp [] []
/src/spirv-tools/source/opt/eliminate_dead_io_components_pass.h [] []
/src/spirv-tools/source/opt/iterator.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/propagator.h [] []
/src/spirv-tools/source/print.cpp ['spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_dis_fuzzer']
/src/spirv-tools/build/core_tables_body.inc ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/eliminate_dead_functions_pass.h [] []
/src/spirv-tools/source/name_mapper.h ['spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/util/string_utils.h ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/amd_ext_to_khr.h [] []
/src/spirv-tools/source/operand.cpp ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/val/validate_mesh_shading.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/split_combined_image_sampler_pass.h [] []
/src/spirv-tools/source/enum_set.h ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/eliminate_dead_output_stores_pass.h [] []
/src/spirv-tools/source/val/validate_arithmetics.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/val/function.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/extensions.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/dead_insert_elim_pass.cpp [] []
/src/spirv-tools/source/opt/strength_reduction_pass.h [] []
/src/spirv-tools/source/val/validate_barriers.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/val/validate_ray_tracing_reorder.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/invocation_interlock_placement_pass.h [] []
/src/spirv-tools/test/fuzzers/spvtools_opt_legalization_fuzzer.cpp ['spvtools_opt_legalization_fuzzer'] ['spvtools_opt_legalization_fuzzer']
/usr/local/bin/../include/c++/v1/optional [] []
/src/spirv-tools/source/util/bit_vector.h [] []
/src/spirv-tools/source/val/validate_image.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/interface_var_sroa.cpp [] []
/src/spirv-tools/source/print.h ['spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/interp_fixup_pass.cpp [] []
/src/spirv-tools/source/opt/instruction_list.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/dead_branch_elim_pass.h [] []
/src/spirv-tools/source/val/validate_derivatives.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/relax_float_ops_pass.h [] []
/src/spirv-tools/source/opt/strip_debug_info_pass.cpp [] []
/src/spirv-tools/source/util/make_unique.h ['spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/strip_debug_info_pass.h [] []
/src/spirv-tools/test/fuzzers/spvtools_opt_size_fuzzer.cpp ['spvtools_opt_size_fuzzer'] ['spvtools_opt_size_fuzzer']
/src/spirv-tools/source/opt/reduce_load_size.h [] []
/src/spirv-tools/source/opt/remove_unused_interface_variables_pass.h [] []
/src/spirv-tools/source/opt/propagator.cpp [] []
/src/spirv-tools/source/opt/wrap_opkill.h [] []
/src/spirv-tools/source/opt/replace_desc_array_access_using_var_index.cpp [] []
/src/spirv-tools/source/opt/switch_descriptorset_pass.h [] []
/src/spirv-tools/source/opt/const_folding_rules.h [] []
/src/spirv-tools/source/val/validate_decorations.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/table.h ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] []
/src/spirv-tools/source/opt/pass_manager.cpp ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/test/fuzzers/spvtools_val_fuzzer.cpp ['spvtools_val_fuzzer'] ['spvtools_val_fuzzer']
/src/spirv-tools/source/opt/eliminate_dead_members_pass.h [] []
/src/spirv-tools/source/val/validate_ray_query.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/workaround1209.h [] []
/src/spirv-tools/source/opt/replace_invalid_opc.h [] []
/src/spirv-tools/source/util/ilist.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/assembly_grammar.cpp ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/fold_spec_constant_op_and_composite_pass.h [] []
/src/spirv-tools/source/opt/type_manager.cpp [] []
/src/spirv-tools/source/val/instruction.h ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/folding_rules.h [] []
/src/spirv-tools/source/opt/struct_packing_pass.h [] []
/src/spirv-tools/source/val/validate_capability.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/inline_opaque_pass.cpp [] []
/src/spirv-tools/source/val/validate_annotation.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opcode.cpp ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/invocation_interlock_placement_pass.cpp [] []
/src/spirv-tools/source/opt/local_single_store_elim_pass.cpp [] []
/usr/local/bin/../include/c++/v1/sstream [] []
/src/spirv-tools/source/opt/spread_volatile_semantics.h [] []
/src/spirv-tools/source/spirv_optimizer_options.cpp ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/val/validate_interfaces.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/modify_maximal_reconvergence.h [] []
/src/spirv-tools/source/opt/desc_sroa_util.cpp [] []
/src/spirv-tools/source/opt/empty_pass.h [] []
/src/spirv-tools/source/opt/scalar_analysis_simplification.cpp [] []
/src/spirv-tools/source/opt/fold.cpp [] []
/src/spirv-tools/source/opt/combine_access_chains.h [] []
/src/spirv-tools/source/val/validate_mode_setting.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/util/parse_number.cpp ['spvtools_as_fuzzer'] ['spvtools_as_fuzzer']
/src/spirv-tools/source/opt/log.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/val/validation_state.h ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/loop_peeling.h [] []
/src/spirv-tools/source/opt/loop_descriptor.cpp [] []
/src/spirv-tools/source/opt/loop_dependence_helpers.cpp [] []
/src/spirv-tools/source/val/validate_tensor.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/val/validate_constants.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/loop_fusion.cpp [] []
/src/spirv-tools/source/opt/vector_dce.h [] []
/src/spirv-tools/source/util/parse_number.h ['spvtools_as_fuzzer'] ['spvtools_as_fuzzer']
/src/spirv-tools/source/opt/ir_loader.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/struct_packing_pass.cpp [] []
/src/spirv-tools/source/opt/ir_loader.cpp ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/inline_opaque_pass.h [] []
/src/spirv-tools/source/opt/null_pass.h [] []
/src/spirv-tools/source/opt/local_single_block_elim_pass.h [] []
/src/spirv-tools/source/opt/function.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/build_module.cpp ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/freeze_spec_constant_value_pass.cpp [] []
/src/spirv-tools/source/opt/cfg_cleanup_pass.h [] []
/src/spirv-tools/source/text.cpp ['spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/val/validate_misc.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/def_use_manager.cpp ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/text.h ['spvtools_as_fuzzer'] []
/src/spirv-tools/source/util/ilist_node.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/redundancy_elimination.h [] []
/src/spirv-tools/source/opt/unify_const_pass.cpp [] []
/src/spirv-tools/source/val/validate_layout.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/register_pressure.cpp [] []
/src/spirv-tools/source/text_handler.cpp ['spvtools_as_fuzzer'] ['spvtools_as_fuzzer']
/src/spirv-tools/test/fuzzers/spvtools_opt_fuzzer_common.cpp ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/instruction_list.cpp [] []
/src/spirv-tools/source/util/bitutils.h ['spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/eliminate_dead_io_components_pass.cpp [] []
/src/spirv-tools/source/val/validate.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/val/basic_block.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/loop_unroller.h [] []
/src/spirv-tools/include/spirv-tools/libspirv.hpp ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/analyze_live_input_pass.cpp [] []
/src/spirv-tools/source/opt/licm_pass.cpp [] []
/src/spirv-tools/source/opt/upgrade_memory_model.cpp [] []
/src/spirv-tools/source/opt/ir_context.cpp ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/util/span.h ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/dead_insert_elim_pass.h [] []
/src/spirv-tools/source/to_string.cpp ['spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/feature_manager.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/loop_fusion_pass.h [] []
/src/spirv-tools/source/val/validate_tensor_layout.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/scalar_analysis.cpp [] []
/src/spirv-tools/source/val/validate_scopes.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/feature_manager.cpp ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/block_merge_pass.cpp [] []
/src/spirv-tools/source/opt/types.cpp [] []
/src/spirv-tools/test/fuzzers/random_generator.h ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/basic_block.cpp ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/loop_fission.cpp [] []
/src/spirv-tools/source/opt/inline_pass.h [] []
/src/spirv-tools/source/opt/reduce_load_size.cpp [] []
/src/spirv-tools/source/val/validate_primitives.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/fold_spec_constant_op_and_composite_pass.cpp [] []
/src/spirv-tools/source/opt/block_merge_pass.h [] []
/src/spirv-tools/source/opt/eliminate_dead_functions_util.cpp [] []
/src/spirv-tools/source/opt/reflect.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/test/fuzzers/spvtools_opt_performance_fuzzer.cpp ['spvtools_opt_performance_fuzzer'] ['spvtools_opt_performance_fuzzer']
/src/spirv-tools/test/fuzzers/random_generator.cpp ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/trim_capabilities_pass.cpp [] []
/src/spirv-tools/source/opt/modify_maximal_reconvergence.cpp [] []
/src/spirv-tools/source/opt/dominator_tree.h [] []
/src/spirv-tools/source/opt/cfg_cleanup_pass.cpp [] []
/src/spirv-tools/test/fuzzers/spvtools_binary_parser_fuzzer.cpp ['spvtools_binary_parser_fuzzer'] ['spvtools_binary_parser_fuzzer']
/src/spirv-tools/source/opt/loop_fusion.h [] []
/src/spirv-tools/source/diagnostic.cpp ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/util/small_vector.h ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/analyze_live_input_pass.h [] []
/src/spirv-tools/source/assembly_grammar.h ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_binary_parser_fuzzer', 'spvtools_as_fuzzer', 'spvtools_dis_fuzzer', 'spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/val/validate_execution_limitations.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/if_conversion.h [] []
/src/spirv-tools/source/val/validate_atomics.cpp ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer'] ['spvtools_val_fuzzer', 'spvtools_opt_performance_fuzzer', 'spvtools_opt_size_fuzzer', 'spvtools_opt_legalization_fuzzer']
/src/spirv-tools/source/opt/struct_cfg_analysis.h [] []

Directories in report

Directory
/src/spirv-tools/test/fuzzers/
/src/spirv-tools/source/util/
/src/spirv-tools/source/val/
/src/spirv-tools/external/spirv-headers/include/spirv/unified1/
/src/spirv-tools/build/
/src/spirv-tools/source/opt/
/src/spirv-tools/source/
/usr/local/bin/../include/c++/v1/
/usr/local/bin/../include/c++/v1/__charconv/
/src/spirv-tools/include/spirv-tools/