mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
Mirror of https://github.com/RPCS3/llvm-mirror
0b8acbe1f0
This patch implements DBG_VALUE_LIST handling to the LiveDebugValues pass. This is a substantial change, and makes a few fundamental changes to the existing logic. We still use the basic model of a VarLocMap that is indexed by a LocIndex, with a VarLocSet (a CoalescingBitVector underneath) giving us efficient lookups of existing variable locations for a given location type. The main change is that the VarLocMap may contain a given VarLoc multiple times (once for each unique location operand), so that a VarLoc can be looked up from any of the registers that it uses. This means that each VarLoc has multiple corresponding LocIndexes; to allow us to iterate through the set of VarLocs (previously we would iterate through the VarLocSet), we now also maintain a single entry in the VarLocMap that contains every VarLoc exactly once. The VarLoc class itself is also changed; this change is much simpler, refactoring out location-specific members into a MachineLocation class and adding a vector of these locations. Differential Revision: https://reviews.llvm.org/D83890 |
||
---|---|---|
benchmarks | ||
bindings | ||
cmake | ||
docs | ||
examples | ||
include | ||
lib | ||
projects | ||
resources | ||
runtimes | ||
test | ||
tools | ||
unittests | ||
utils | ||
.clang-format | ||
.clang-tidy | ||
.gitattributes | ||
.gitignore | ||
CMakeLists.txt | ||
CODE_OWNERS.TXT | ||
configure | ||
CREDITS.TXT | ||
LICENSE.TXT | ||
llvm.spec.in | ||
README.txt | ||
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.