| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 185520
|
| |
|
|
|
|
| |
size doesn't have to repeated when creating iterators for the DenseMap.
llvm-svn: 185508
|
| |
|
|
|
|
| |
respecifying the small vector size.
llvm-svn: 185505
|
| |
|
|
|
|
| |
specifying the vector size.
llvm-svn: 185504
|
| |
|
|
|
|
|
| |
avoid adding information for the debug_inlined section when it isn't
going to be emitted anyhow.
llvm-svn: 185500
|
| |
|
|
| |
llvm-svn: 185498
|
| |
|
|
| |
llvm-svn: 185497
|
| |
|
|
|
|
| |
grep.
llvm-svn: 185496
|
| |
|
|
| |
llvm-svn: 185495
|
| |
|
|
| |
llvm-svn: 185492
|
| |
|
|
|
|
| |
true, so remove the return value and propagate accordingly.
llvm-svn: 185490
|
| |
|
|
|
|
|
|
| |
Correctly handles ref_addr depending on the Dwarf version. Emit Dwarf with
version from module flag.
TODO: turn on/off features depending on the Dwarf version.
llvm-svn: 185484
|
| |
|
|
| |
llvm-svn: 185480
|
| |
|
|
|
|
|
|
|
|
|
| |
This allows getDebugThreadLocalSymbol to return a generic MCExpr
instead of just a MCSymbolRefExpr.
This is in preparation for supporting debug info for TLS variables
on PowerPC, where we need to describe the variable location using
a more complex expression than just MCSymbolRefExpr.
llvm-svn: 185460
|
| |
|
|
|
|
|
|
|
|
|
| |
This changes the AddrPool infrastructure to enable it to hold
generic MCExpr expressions, not just MCSymbolRefExpr.
This is in preparation for supporting debug info for TLS variables
on PowerPC, where we need to describe the variable location using
a more complex expression than just MCSymbolRefExpr.
llvm-svn: 185459
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This partially reverts r185202 and restores DIELabel to hold plain
MCSymbol references. Instead, we add a new subclass DIEExpr of
DIEValue that can hold generic MCExpr references.
This is in preparation for supporting debug info for TLS variables
on PowerPC, where we need to describe the variable location using
a more complex expression than just MCSymbolRefExpr.
llvm-svn: 185458
|
| |
|
|
|
|
|
|
| |
This is dead code since PIC16 was removed in 2010. The result was an odd mix,
where some parts would carefully pass it along and others would assert it was
zero (most of the object streamer for example).
llvm-svn: 185436
|
| |
|
|
| |
llvm-svn: 185398
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Based on GCC's output for TLS variables (OP_constNu, x@dtpoff,
OP_lo_user), this implements debug info support for TLS in ELF. Verified
that this output is correct/sufficient on Linux (using gold - if you're
using binutils-ld, you'll need something with the fix for
http://sourceware.org/bugzilla/show_bug.cgi?id=15685 in it).
Support on non-ELF is sort of "arbitrary" at the moment - if Apple folks
want to discuss (or just go ahead & implement) how this should work in
MachO, etc, I'm open.
llvm-svn: 185203
|
| |
|
|
|
|
|
| |
This is a precursor to adding debug info support for TLS which requires
non-default relocations applied to TLS symbols.
llvm-svn: 185202
|
| |
|
|
| |
llvm-svn: 185190
|
| |
|
|
| |
llvm-svn: 185189
|
| |
|
|
| |
llvm-svn: 185188
|
| |
|
|
| |
llvm-svn: 184866
|
| |
|
|
| |
llvm-svn: 184792
|
| |
|
|
| |
llvm-svn: 184788
|
| |
|
|
|
|
| |
never modified. No functional change.
llvm-svn: 184781
|
| |
|
|
|
|
| |
ULEB128/SLEB128 generation
llvm-svn: 184669
|
| |
|
|
|
|
| |
and parameter packs
llvm-svn: 184643
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
function anyway
Fix up three tests - one that was relying on abbreviation number,
another relying on a location list in this case (& testing raw asm,
changed that to use dwarfdump on the debug_info now that that's where
the location is), and another which was added in r184368 - exposing a
bug in that fix that is exposed when we emit the location inline rather
than through a location list. Fix that bug while I'm here.
llvm-svn: 184387
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We had been papering over a problem with location info for non-trivial
types passed by value by emitting their type as references (this caused
the debugger to interpret the location information correctly, but broke
the type of the function). r183329 corrected the type information but
lead to the debugger interpreting the pointer parameter as the value -
the debug info describing the location needed an extra dereference.
Use a new flag in DIVariable to add the extra indirection (either by
promoting an existing DW_OP_reg (parameter passed in a register) to
DW_OP_breg + 0 or by adding DW_OP_deref to an existing DW_OP_breg + n
(parameter passed on the stack).
llvm-svn: 184368
|
| |
|
|
|
|
|
|
|
|
| |
MachineInstrs
Frame index handling is now target-agnostic, so delete the target hooks
for creation & asm printing of target-specific addressing in DBG_VALUEs
and any related functions.
llvm-svn: 184067
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rather than using the full power of target-specific addressing modes in
DBG_VALUEs with Frame Indicies, simply use Frame Index + Offset. This
reduces the complexity of debug info handling down to two
representations of values (reg+offset and frame index+offset) rather
than three or four.
Ideally we could ensure that frame indicies had been eliminated by the
time we reached an assembly or dwarf generation, but I haven't spent the
time to figure out where the FIs are leaking through into that & whether
there's a good place to convert them. Some FI+offset=>reg+offset
conversion is done (see PrologEpilogInserter, for example) which is
necessary for some SelectionDAG assumptions about registers, I believe,
but it might be possible to make this a more thorough conversion &
ensure there are no remaining FIs no matter how instruction selection
is performed.
llvm-svn: 184066
|
| |
|
|
|
|
| |
offset when it's zero
llvm-svn: 184045
|
| |
|
|
|
|
| |
comments if the display name is empty
llvm-svn: 184026
|
| |
|
|
| |
llvm-svn: 183807
|
| |
|
|
|
|
| |
to return and this is done all over.
llvm-svn: 183704
|
| |
|
|
| |
llvm-svn: 183703
|
| |
|
|
| |
llvm-svn: 183698
|
| |
|
|
| |
llvm-svn: 183695
|
| |
|
|
|
|
|
|
|
|
|
| |
Fix an assertion when the compiler encounters big constants whose bit width is
not a multiple of 64-bits.
Although clang would never generate something like this, the backend should be
able to handle any legal IR.
<rdar://problem/13363576>
llvm-svn: 183544
|
| |
|
|
| |
llvm-svn: 183454
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Seems we emit the parameter ordering number (spuriously named 'arg
number') in the debug info, so there's no need to search through the
variable list to figure out the parameter ordering. This implementation
does 'always' do the work, even in non-optimized debug info (the
previous implementation checked the existence of the 'variables' list on
the subprogram which is only present in optimized builds).
No intended functionality change.
llvm-svn: 183446
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a function is inlined we lazily construct the variables
representing the function's parameters. After that, we add any remaining
unused parameters.
If the function doesn't use all the parameters, or uses them out of
order, then the DWARF would produce them in that order, producing a
parameter order that doesn't match the source.
This fix causes us to always keep the arg variables at the start of the
variable list & in the original order from the source.
llvm-svn: 183297
|
| |
|
|
|
|
| |
Also simplify code a bit while there. No functionality change.
llvm-svn: 183076
|
| |
|
|
| |
llvm-svn: 183057
|
| |
|
|
| |
llvm-svn: 182903
|
| |
|
|
| |
llvm-svn: 182902
|
| |
|
|
|
|
| |
Not only does this break encapsulation, it's gross.
llvm-svn: 182876
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Since the testing case uses ref_addr, which requires version 3+ to work,
we will solve the dwarf version issue first.
This patch also causes failures in one of the bots. I will update the patch
accordingly in my next attempt.
rdar://13926659
llvm-svn: 182867
|