llvm-project/llvm
Jeremy Morse 8ebffb4b82 [DebugInfo][DAG] Avoid re-ordering of DBG_VALUEs
This patch improves the placement of DBG_VALUEs when by SelectionDAG, which
as documented in PR40427 can go very wrong. At the core of this is
ProcessSourceNode, which assumes the last instruction in a BB is the start
of the last processed IR instruction, which isn't always true.

Instead, use a helper function to call InstrEmitter::EmitNode, that records
before-and-after iterators and determines the first of any new instruction
created during emission. This is passed to ProcessSourceNode, which can
then make more elightened decisions about ordering for DBG_VALUE placement.

Differential revision: https://reviews.llvm.org/D57163

llvm-svn: 352350
2019-01-28 12:08:31 +00:00
..
benchmarks
bindings Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
cmake Fix llvm::is_trivially_copyable portability issues 2019-01-22 13:48:55 +00:00
docs [TblGen][NFC] Fix documentation formatting 2019-01-25 16:17:57 +00:00
examples Fix some warnings on MSVC 2019-01-27 18:41:40 +00:00
include [X86] Add new variadic avx512 compress/expand intrinsics that use vXi1 types for the mask argument. 2019-01-28 07:03:03 +00:00
lib [DebugInfo][DAG] Avoid re-ordering of DBG_VALUEs 2019-01-28 12:08:31 +00:00
projects Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
resources
runtimes [CMake] Use __libc_start_main rather than fopen when checking for C library 2019-01-28 04:12:54 +00:00
test [DebugInfo][DAG] Avoid re-ordering of DBG_VALUEs 2019-01-28 12:08:31 +00:00
tools [llvm-objdump] - Fix comment. NFC. 2019-01-28 10:48:54 +00:00
unittests Fix some warnings on MSVC 2019-01-27 18:41:40 +00:00
utils Revert "Detect incorrect FileCheck variable CLI definition" 2019-01-27 09:02:19 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore gitignore: ignore clangd index files. 2019-01-25 14:05:18 +00:00
CMakeLists.txt Build LLVM-C.dll by default on windows and enable in release package 2019-01-25 22:45:17 +00:00
CODE_OWNERS.TXT [llvm-mca] Move llvm-mca library to llvm/lib/MCA. 2018-12-17 08:08:31 +00:00
CREDITS.TXT Remove a period from CREDITS.TXT (testing email change). NFC 2019-01-19 09:07:38 +00:00
LICENSE.TXT Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +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
README.txt
RELEASE_TESTERS.TXT Update the list of platforms & archs 2018-12-16 14:47:16 +00:00
configure
llvm.spec.in Update structured references to the license to the new license. 2019-01-19 11:30:51 +00:00

README.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.