mirror of
https://github.com/KhronosGroup/SPIRV-Tools
synced 2024-11-24 04:20:13 +00:00
df4198e50e
For some cases, we have DebugDecl invisible to a value assignment, but the value assignment information is important i.e., debugger cannot inspect the variable without the information. For example, a parameter of an inlined function must have its value assignment i.e., argument passing out of its function scope. If we simply remove DebugDecl because it is invisible to the argument passing, we cannot inspec the variable. This PR - Adds DebugValue for DebugDecl invisible to a value assignment. We use the value of the variable in the basic block that contains DebugDecl, which is found by ssa-rewrite. If the value instruction does not dominate DebugDecl, we use the value of the variable in the immediate dominator of the basic block. - Checks the visibility of DebugDecl for Phi value assignment based on the all value operands of the Phi. Since Phi just references multiple values from multiple basic blocks, scopes of value operands must be regarded as the scope of the Phi. |
||
---|---|---|
.. | ||
fuzz | ||
link | ||
opt | ||
reduce | ||
util | ||
val | ||
assembly_grammar.cpp | ||
assembly_grammar.h | ||
binary.cpp | ||
binary.h | ||
cfa.h | ||
CMakeLists.txt | ||
diagnostic.cpp | ||
diagnostic.h | ||
disassemble.cpp | ||
disassemble.h | ||
enum_set.h | ||
enum_string_mapping.cpp | ||
enum_string_mapping.h | ||
ext_inst.cpp | ||
ext_inst.h | ||
extensions.cpp | ||
extensions.h | ||
instruction.h | ||
latest_version_glsl_std_450_header.h | ||
latest_version_opencl_std_header.h | ||
latest_version_spirv_header.h | ||
libspirv.cpp | ||
macro.h | ||
name_mapper.cpp | ||
name_mapper.h | ||
opcode.cpp | ||
opcode.h | ||
operand.cpp | ||
operand.h | ||
parsed_operand.cpp | ||
parsed_operand.h | ||
pch_source.cpp | ||
pch_source.h | ||
print.cpp | ||
print.h | ||
software_version.cpp | ||
spirv_constant.h | ||
spirv_definition.h | ||
spirv_endian.cpp | ||
spirv_endian.h | ||
spirv_fuzzer_options.cpp | ||
spirv_fuzzer_options.h | ||
spirv_optimizer_options.cpp | ||
spirv_optimizer_options.h | ||
spirv_reducer_options.cpp | ||
spirv_reducer_options.h | ||
spirv_target_env.cpp | ||
spirv_target_env.h | ||
spirv_validator_options.cpp | ||
spirv_validator_options.h | ||
table.cpp | ||
table.h | ||
text_handler.cpp | ||
text_handler.h | ||
text.cpp | ||
text.h |