llvm/lib/IR
Diego Novillo f05b45fdb2 Pass to emit DWARF path discriminators.
DWARF discriminators are used to distinguish multiple control flow paths
on the same source location. When this happens, instructions across
basic block boundaries will share the same debug location.

This pass detects this situation and creates a new lexical scope to one
of the two instructions. This lexical scope is a child scope of the
original and contains a new discriminator value. This discriminator is
then picked up from MCObjectStreamer::EmitDwarfLocDirective to be
written on the object file.

This fixes http://llvm.org/bugs/show_bug.cgi?id=18270.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202752 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-03 20:06:11 +00:00
..
AsmWriter.cpp Store a DataLayout in Module. 2014-02-25 20:01:08 +00:00
AsmWriter.h Revert "Give internal classes hidden visibility." 2013-09-11 18:05:11 +00:00
AttributeImpl.h [weak vtables] Remove a bunch of weak vtables 2013-11-19 00:57:56 +00:00
Attributes.cpp Revert "[C++11] Replace LLVM atomics with std::atomic." 2014-03-03 18:02:34 +00:00
AutoUpgrade.cpp Report a warning when dropping outdated debug info metadata. 2014-01-16 01:51:12 +00:00
BasicBlock.cpp [C++11] Replace llvm::next and llvm::prior with std::next and std::prev. 2014-03-02 12:27:27 +00:00
CMakeLists.txt [PM] Rename this source file to something a bit more generic before 2014-01-09 02:39:45 +00:00
ConstantFold.cpp Fold vector selects with undef elements in the condition. Fixes PR18319. 2013-12-31 19:30:47 +00:00
ConstantFold.h
Constants.cpp [C++11] Replace llvm::next and llvm::prior with std::next and std::prev. 2014-03-02 12:27:27 +00:00
ConstantsContext.h [C++11] Use std::tie to simplify compare operators. 2014-03-03 19:58:30 +00:00
Core.cpp Store a DataLayout in Module. 2014-02-25 20:01:08 +00:00
DataLayout.cpp Fix typo. Thanks to Roman Divacky for noticing it. 2014-02-26 17:05:38 +00:00
DebugInfo.cpp Pass to emit DWARF path discriminators. 2014-03-03 20:06:11 +00:00
DebugLoc.cpp Test commit 2014-02-05 14:23:18 +00:00
DiagnosticInfo.cpp Revert "[C++11] Replace LLVM atomics with std::atomic." 2014-03-03 18:02:34 +00:00
DiagnosticPrinter.cpp Report a warning when dropping outdated debug info metadata. 2014-01-16 01:51:12 +00:00
DIBuilder.cpp Add DWARF discriminator support to DILexicalBlocks. 2014-03-03 18:53:17 +00:00
Dominators.cpp Remove unnecessary typename. 2014-02-16 14:12:35 +00:00
Function.cpp Add an inalloca flag to allocas 2014-01-17 23:58:17 +00:00
GCOV.cpp Replace the F_Binary flag with a F_Text one. 2014-02-24 18:20:12 +00:00
Globals.cpp Use DataLayout from the module when easily available. 2014-02-25 23:25:17 +00:00
GVMaterializer.cpp
InlineAsm.cpp Add static cast to unsigned char whenever a character classification function is called with a signed char argument, in order to avoid assertions in Windows Debug configuration. 2013-02-12 21:21:59 +00:00
Instruction.cpp Use DataLayout from the module when easily available. 2014-02-25 23:25:17 +00:00
Instructions.cpp Bug 18228 - Fix accepting bitcasts between vectors of pointers with a 2014-01-22 19:21:33 +00:00
IntrinsicInst.cpp Remove spurious emacs major mode marker, these should only go on .h files. 2014-02-26 03:10:45 +00:00
IRBuilder.cpp
IRPrintingPasses.cpp [PM] Add module and function printing passes for the new pass manager. 2014-01-12 12:15:39 +00:00
LeakDetector.cpp
LeaksContext.h Revert "Give internal classes hidden visibility." 2013-09-11 18:05:11 +00:00
LegacyPassManager.cpp Remove unnecessary llvm:: qualification. 2014-02-26 23:27:16 +00:00
LLVMBuild.txt
LLVMContext.cpp Add 'remark' diagnostic type in LLVM 2014-02-28 09:08:45 +00:00
LLVMContextImpl.cpp Add warning capabilities in LLVM. 2013-12-17 17:47:22 +00:00
LLVMContextImpl.h Pass to emit DWARF path discriminators. 2014-03-03 20:06:11 +00:00
Makefile Actually update the CMake and Makefile builds correctly, and update the 2013-01-02 12:09:16 +00:00
Mangler.cpp Add back r201608, r201622, r201624 and r201625 2014-02-19 17:23:20 +00:00
Metadata.cpp Fix pr14893. 2014-01-28 16:56:46 +00:00
Module.cpp Fix resetting the DataLayout in a Module. 2014-02-25 22:23:04 +00:00
Pass.cpp Constify the Optnone checks in IR passes. 2014-02-26 01:23:26 +00:00
PassManager.cpp [C++11] Replace llvm::tie with std::tie. 2014-03-02 13:30:33 +00:00
PassRegistry.cpp [opt][PassInfo] Allow opt to run passes that need target machine. 2014-01-16 21:44:34 +00:00
SymbolTableListTraitsImpl.h
Type.cpp Mark some Type and EVT methods as LLVM_READONLY. 2013-12-28 16:17:26 +00:00
TypeFinder.cpp TypeFinder: prefer iterative algorithm to keep stack usage low. 2013-10-16 04:10:06 +00:00
Use.cpp Fix Casting 2013-01-14 21:04:37 +00:00
User.cpp
Value.cpp Make it explicit that nulls are not allowed in names. 2013-11-19 21:12:39 +00:00
ValueSymbolTable.cpp
ValueTypes.cpp Add v4f16 to supported value types. 2013-10-03 03:29:21 +00:00
Verifier.cpp Check that GlobalAliases don't have section or alignment. 2014-02-13 18:26:41 +00:00