Go to file
David Blaikie bf22a4eaee DebugInfo: Generalize debug info location handling
This is a more scalable (fixed in mostly one place, rather than many
places that will need constant improvement/maintenance) solution to
several commits I've made recently to increase source fidelity for
subexpressions.

This resetting had to be done at the DebugLoc level (not the
SourceLocation level) to preserve scoping information (if the resetting
was done with CGDebugInfo::EmitLocation, it would've caused the tail end
of an expression's codegen to end up in a potentially different scope
than the start, even though it was at the same source location). The
drawback to this is that it might leave CGDebugInfo out of sync. Ideally
CGDebugInfo shouldn't have a duplicate sense of the current
SourceLocation, but for now it seems it does... - I don't think I'm
going to tackle removing that just now.

I expect this'll probably cause some more buildbot fallout & I'll
investigate that as it comes up.

Also these sort of improvements might be starting to show a weakness/bug
in LLVM's line table handling: we don't correctly emit is_stmt for
statements, we just put it on every line table entry. This means one
statement split over multiple lines appears as multiple 'statements' and
two statements on one line (without column info) are treated as one
statement.

I don't think we have any IR representation of statements that would
help us distinguish these cases and identify the beginning of each
statement - so that might be something we need to add (possibly to the
lexical scope chain - a scope for each statement). This does cause some
problems for GDB and possibly other DWARF consumers.

llvm-svn: 224385
2014-12-16 22:49:17 +00:00
clang DebugInfo: Generalize debug info location handling 2014-12-16 22:49:17 +00:00
clang-tools-extra Update to match clang r223913. 2014-12-10 03:10:06 +00:00
compiler-rt [asan] trying to fix Mac build 2014-12-16 21:06:07 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc Don't include <stddef.h> 2014-11-18 14:19:27 +00:00
libcxx Re-commit the test for regex that I busted last night - now passes under ASAN 2014-12-16 16:22:43 +00:00
libcxxabi Use the newer python syntax for exceptions 2014-12-13 02:49:27 +00:00
lld Replace ReaderError with DynamicError. 2014-12-15 12:20:13 +00:00
lldb Improve the performance of the libc++ std::map formatter. This is not the full solution to the slowness of this formatter, but it's a 5% improvement in our testcase performance, which I am not going to complain too hard about. 2014-12-16 21:28:16 +00:00
llgo Use the object's package to mangle method names, rather than the receiver's package 2014-12-16 20:04:55 +00:00
llvm fix typo, add spaces; NFC 2014-12-16 22:48:42 +00:00
openmp I apologise in advance for the size of this check-in. At Intel we do 2014-10-07 16:25:50 +00:00
polly Hand-modify a testcase (still PR21532) 2014-12-15 21:43:20 +00:00