llvm-project/llvm/lib
Alexey Bataev f3a9150324 [DEBUG_INFO][NVPTX] Generate DW_AT_address_class to get the values in debugger.
Summary:
According to
https://docs.nvidia.com/cuda/archive/10.0/ptx-writers-guide-to-interoperability/index.html#cuda-specific-dwarf,
the compiler should emit the DW_AT_address_class attribute for all
variable and parameter. It means, that DW_AT_address_class attribute
should be used in the non-standard way to support compatibility with the
cuda-gdb debugger.
Clang is able to generate the information about the variable address
class. This information is emitted as the expression sequence
`DW_OP_constu <DWARF Address Space> DW_OP_swap DW_OP_xderef`. The patch
tries to find all such expressions and transform them into
`DW_AT_address_class <DWARF Address Space>` if target is NVPTX and the debugger is gdb.
If the expression is not found, then default values are used. For the
local variables <DWARF Address Space> is set to ADDR_local_space(6), for
the globals <DWARF Address Space> is set to ADDR_global_space(5). The
values are taken from the table in the same section 5.2. CUDA-Specific
DWARF Definitions.

Reviewers: echristo, probinson

Subscribers: jholewinski, aprantl, llvm-commits

Differential Revision: https://reviews.llvm.org/D57157

llvm-svn: 353203
2019-02-05 19:33:47 +00:00
..
Analysis [NFC] fix trivial typos in comments 2019-02-05 08:30:48 +00:00
AsmParser Revert "[Sanitizers] UBSan unreachable incompatible with ASan in the presence of `noreturn` calls" 2019-01-24 18:04:21 +00:00
BinaryFormat [WebAssembly] clang-tidy (NFC) 2019-02-04 19:13:39 +00:00
Bitcode [opaque pointer types] Pass value type to GetElementPtr creation. 2019-02-01 20:44:47 +00:00
CodeGen [DEBUG_INFO][NVPTX] Generate DW_AT_address_class to get the values in debugger. 2019-02-05 19:33:47 +00:00
DebugInfo [DebugInfo] Don't use realpath when looking up debug binary locations. 2019-02-01 21:04:16 +00:00
Demangle Add missing include (cstdlib) to Demangle.h 2019-01-22 19:18:18 +00:00
ExecutionEngine [opaque pointer types] Pass value type to LoadInst creation. 2019-02-01 20:44:24 +00:00
FuzzMutate [opaque pointer types] Pass value type to LoadInst creation. 2019-02-01 20:44:24 +00:00
Fuzzer
IR [DEBUG_INFO][NVPTX] Generate DW_AT_address_class to get the values in debugger. 2019-02-05 19:33:47 +00:00
IRReader Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
LTO Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
LineEditor Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Linker Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MC [WebAssembly] clang-tidy (NFC) 2019-02-04 19:13:39 +00:00
MCA [MCA] Moved the logic that updates register dependencies from DispatchStage to RegisterFile. NFC 2019-02-05 14:11:41 +00:00
Object [WebAssembly] Object: Remove redundant method. NFC. 2019-02-05 16:30:21 +00:00
ObjectYAML [COFF] Add new relocation types. 2019-01-27 19:53:36 +00:00
OptRemarks Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
Option Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Passes [SamplePGO] More pipeline changes when flattened profile used in ThinLTO postlink 2019-02-05 04:09:19 +00:00
ProfileData Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Support Recommit: Add support for prefix-only CLI options 2019-02-05 14:17:16 +00:00
TableGen [TblGen] Extend !if semantics through new feature !cond 2019-01-25 10:25:25 +00:00
Target AMDGPU: Fix assert on trunc from bitcast of build_vector 2019-02-05 19:23:57 +00:00
Testing Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
TextAPI Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ToolDrivers Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Transforms [DebugInfo][NFCI] Split salvageDebugInfo into helper functions 2019-02-05 11:11:28 +00:00
WindowsManifest Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
XRay Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CMakeLists.txt [llvm-mca] Move llvm-mca library to llvm/lib/MCA. 2018-12-17 08:08:31 +00:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00