llvm-project/llvm/lib
Paul Robinson 8bd9d6ad83 Fix out-of-order stepping behavior in programs with sunk instructions.
MachineSink attempts to place instructions near the basic blocks where
they are needed.  Once an instruction has been sunk, its location
relative to other instructions no longer is consistent with the
original source code. In order to ensure correct stepping in the
debugger, the debug location for sunk instructions is either merged
with the insertion point or erased if the target successor block is
empty.

Originally submitted as r318679, revised to fix sanitizer failure and
improve testing.

Patch by Matthew Voss!

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

llvm-svn: 320216
2017-12-09 00:17:01 +00:00
..
Analysis Revert r320104: infinite loop profiling bug fix 2017-12-08 19:38:07 +00:00
AsmParser [IR] redefine 'UnsafeAlgebra' / 'reassoc' fast-math-flags and add 'trans' fast-math-flag 2017-11-06 16:27:15 +00:00
BinaryFormat Simplify. 2017-10-19 01:32:18 +00:00
Bitcode [WebAssembly] Explicily disable comdat support for wasm output 2017-11-14 00:49:16 +00:00
CodeGen Fix out-of-order stepping behavior in programs with sunk instructions. 2017-12-09 00:17:01 +00:00
DebugInfo dwarfdump: Add support for the --diff option. 2017-12-08 23:32:47 +00:00
Demangle [ItaniumDemangle] Fix a exponential string copying bug 2017-05-28 23:24:52 +00:00
ExecutionEngine Fix 'not all control paths return a value' warning on MSVC builds 2017-11-09 14:56:17 +00:00
FuzzMutate [FuzzMutate] Correctly insert sinks and sources around invoke instructions 2017-12-08 08:53:16 +00:00
Fuzzer [libFuzzer] Delete llvm/lib/Fuzzer 2017-10-16 20:48:19 +00:00
IR Generalize llvm::replaceDbgDeclare and actually support the use-case that 2017-12-08 21:58:18 +00:00
IRReader Move the stripping of invalid debug info from the Verifier to AutoUpgrade. 2017-10-02 18:31:29 +00:00
LTO Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
LineEditor
Linker Linker: Create a function declaration when moving a non-prevailing alias of function type. 2017-08-10 01:07:44 +00:00
MC [AVR] Override ParseDirective 2017-12-07 06:56:09 +00:00
Object Reverting r320166 to fix test failures. 2017-12-08 19:09:26 +00:00
ObjectYAML Update obj2yaml and yaml2obj for .debug$H section. 2017-12-06 18:58:48 +00:00
Option Reverting r315590; it did not include changes for llvm-tblgen, which is causing link errors for several people. 2017-10-15 14:32:27 +00:00
Passes Add a new pass to speculate around PHI nodes with constant (integer) operands when profitable. 2017-11-28 11:32:31 +00:00
ProfileData [Coverage] Scan ahead for the most-recent completed count (PR35495) 2017-12-07 00:01:15 +00:00
Support [AArch64] Add Exynos to host detection 2017-12-08 21:09:59 +00:00
TableGen [TableGen] Give the option of tolerating duplicate register names 2017-12-07 09:51:55 +00:00
Target [X86][Mips] Remove unused method declaration from the X86 and Mips AsmPrinters. 2017-12-08 23:30:03 +00:00
Testing Force #define GTEST_LANG_CXX11. 2017-10-27 21:12:28 +00:00
ToolDrivers [COFF] Improve the check for functions that should get an extra underscore 2017-10-23 09:08:13 +00:00
Transforms Generalize llvm::replaceDbgDeclare and actually support the use-case that 2017-12-08 21:58:18 +00:00
WindowsManifest Fix bug 34608 by moving private header out of public header. 2017-09-14 23:01:13 +00:00
XRay [XRay] Use optimistic logging model for FDR mode 2017-11-21 07:16:57 +00:00
CMakeLists.txt Moving libFuzzer from LLVM to compiler-rt. 2017-08-21 23:25:12 +00:00
LLVMBuild.txt Re-apply "Introduce FuzzMutate library" 2017-08-21 22:57:06 +00:00