llvm-project/llvm/lib
Diego Novillo 8027b80b41 Support using sample profiles with partial debug info.
Summary:
When using a profile, we used to require the use -gmlt so that we could
get access to the line locations. This is used to match line numbers in
the input profile to the line numbers in the function's IR.

But this is actually not necessary. The driver can provide source
location tracking without the emission of debug information. In these
cases, the annotation 'llvm.dbg.cu' is missing from the IR, but the
actual line location annotations are still present.

This patch adds a new way of looking for the start of the current
function. Instead of looking through the compile units in llvm.dbg.cu,
we can walk up the scope for the first instruction in the function with
a debug loc. If that describes the function, we use it. Otherwise, we
keep looking until we find one.

If no such instruction is found, we then give up and produce an error.

Reviewers: echristo, dblaikie

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D5887

llvm-svn: 220382
2014-10-22 12:59:00 +00:00
..
Analysis [InstSimplify] Support constant folding to vector of pointers 2014-10-22 12:18:48 +00:00
AsmParser Make CallingConv::ID an alias of "unsigned". 2014-09-10 18:00:17 +00:00
Bitcode IR: Reorder metadata bitcode serialization, NFC 2014-10-21 22:27:47 +00:00
CodeGen Fix typo 2014-10-22 00:28:59 +00:00
DebugInfo Constify input argument of RelocVisitor and DWARFContext constructors. NFC. 2014-10-20 20:28:51 +00:00
ExecutionEngine [MCJIT] Defer application of AArch64 MachO GOT relocations until resolve time. 2014-10-21 23:41:15 +00:00
IR Revert "Teach the load analysis to allow finding available values which require" (r220277) 2014-10-21 23:49:52 +00:00
IRReader Pass a && to getLazyBitcodeModule. 2014-09-03 17:31:46 +00:00
LTO LTO: Document the Boolean argument from r218784 2014-10-02 21:11:04 +00:00
LineEditor [CMake] Use LINK_LIBS instead of target_link_libraries(). 2014-02-26 06:41:29 +00:00
Linker Merge alignment of common GlobalValue. 2014-09-09 17:48:18 +00:00
MC Drop support for an old version of ld64 (from darwin 9). 2014-10-21 18:31:09 +00:00
Object [MCJIT] Temporarily revert r220245 - it broke several bots. 2014-10-21 00:24:02 +00:00
Option Add an overload of getLastArgNoClaim taking two OptSpecifiers. 2014-09-12 19:42:53 +00:00
ProfileData Reduce double set lookups. NFC. 2014-10-10 15:32:50 +00:00
Support PR21202: Memory leak in Windows RWMutexImpl when using SRWLOCK 2014-10-21 00:34:39 +00:00
TableGen Eliminate some deep std::vector copies. NFC. 2014-10-03 18:33:16 +00:00
Target [AArch64] Cleanup A57PBQPConstraints 2014-10-22 12:40:20 +00:00
Transforms Support using sample profiles with partial debug info. 2014-10-22 12:59:00 +00:00
CMakeLists.txt ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00
LLVMBuild.txt ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00
Makefile ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00