1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
Go to file
OCHyams eca70845a6 [DebugInfo] Teach LDV how to handle identical variable fragments
LiveDebugVariables uses interval maps to explicitly represent DBG_VALUE
intervals. DBG_VALUEs are filtered into an interval map based on their {
Variable, DIExpression }. The interval map will coalesce adjacent entries that
use the same { Location }.  Under this model, DBG_VALUEs which refer to the same
bits of the same variable will be filtered into different interval maps if they
have different DIExpressions which means the original intervals will not be
properly preserved.

This patch fixes the problem by using { Variable, Fragment } to filter the
DBG_VALUEs into maps, and coalesces adjacent entries iff they have the same
{ Location, DIExpression } pair.

The solution is not perfect because we see the similar issues appear when
partially overlapping fragments are encountered, but is far simpler than a
complete solution (i.e. D70121).

Fixes: pr41992, pr43957
Reviewed By: aprantl
Differential Revision: https://reviews.llvm.org/D74053
2020-02-11 10:20:24 +00:00
benchmarks
bindings Pass length of string in Go binding of CreateCompileUnit 2020-01-17 13:35:30 -08:00
cmake [CMake] Use LLVM tools external project build where possible 2020-02-07 13:43:30 -08:00
docs [CodingStandards] Clarify C++ Standard Library usage 2020-02-10 20:30:00 -06:00
examples [CMake] Add missing component dependencies, to fix building for mingw with BUILD_SHARED_LIBS 2020-02-05 13:10:27 +02:00
include [NFC] Fix typo. 2020-02-11 13:58:35 +08:00
lib [DebugInfo] Teach LDV how to handle identical variable fragments 2020-02-11 10:20:24 +00:00
projects Add few docs and implementation of strcpy and strcat. 2019-10-04 17:30:54 +00:00
resources
runtimes Revert "[CMake] Filter libc++abi and libunwind from runtimes build in MSVC" 2020-02-07 11:28:21 -08:00
test [DebugInfo] Teach LDV how to handle identical variable fragments 2020-02-11 10:20:24 +00:00
tools [NFC] Refactor the tuple of symbol information with structure for llvm-objdump 2020-02-10 19:23:01 -05:00
unittests [CallPromotionUtils] Add tryPromoteCall. 2020-02-10 13:43:16 -08:00
utils [gn build] Port bb383ae6120 2020-02-10 21:43:41 +00:00
.arcconfig
.clang-format
.clang-tidy - Update .clang-tidy to ignore parameters of main like functions for naming violations in clang and llvm directory 2020-01-31 16:49:45 +00:00
.gitattributes Fix the "git modified" issue on the preserve-comments-crlf.s. 2019-09-10 12:17:49 +00:00
.gitignore Continue removing llgo. 2020-02-10 10:33:58 -08:00
CMakeLists.txt Continue removing llgo. 2020-02-10 10:33:58 -08:00
CODE_OWNERS.TXT Continue removing llgo. 2020-02-10 10:33:58 -08:00
configure
CREDITS.TXT Update email address. 2019-07-17 07:02:02 +00:00
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
README.txt Test commit. 2019-10-03 14:57:49 +00:00
RELEASE_TESTERS.TXT

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.