| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
simple.
llvm-svn: 187745
|
|
|
|
|
|
| |
greatly on many comments in the code.
llvm-svn: 187742
|
|
|
|
|
|
|
|
| |
update testcase to make sure we generate debug info for walrus
by adding a non-trivial constructor and verify that we don't
emit an ODR signature for the type.
llvm-svn: 187393
|
|
|
|
|
|
| |
sure the comments for each testcase are a bit easier to distinguish.
llvm-svn: 187392
|
|
|
|
| |
llvm-svn: 187385
|
|
|
|
|
|
| |
This makes LLVM emit the same signature regardless of host and target endianess.
llvm-svn: 187304
|
|
|
|
|
|
|
|
| |
There doesn't appear to be any reason to put this variable on the heap.
I'm suspicious of the LexicalScope above that we stuff in a map and then
delete afterward, but I'm just trying to get the valgrind bot clean.
llvm-svn: 187301
|
|
|
|
| |
llvm-svn: 187245
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
type units.
Initially this support is used in the computation of an ODR checker
for C++. For now we're attaching it to the DIE, but in the future
it will be attached to the type unit.
This also starts breaking out types into the separation for type
units, but without actually splitting the DIEs.
In preparation for hashing the DIEs this adds a DIEString type
that contains a StringRef with the string contained at the label.
llvm-svn: 187213
|
|
|
|
| |
llvm-svn: 186994
|
|
|
|
|
|
| |
No functionality change.
llvm-svn: 186470
|
|
|
|
| |
llvm-svn: 186371
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change the informal convention of DBG_VALUE machine instructions so that
we can express a register-indirect address with an offset of 0.
The old convention was that a DBG_VALUE is a register-indirect value if
the offset (operand 1) is nonzero. The new convention is that a DBG_VALUE
is register-indirect if the first operand is a register and the second
operand is an immediate. For plain register values the combination reg,
reg is used. MachineInstrBuilder::BuildMI knows how to build the new
DBG_VALUES.
rdar://problem/13658587
llvm-svn: 185966
|
|
|
|
|
|
|
| |
No functionality change. It should suffice to check the type of a debug info
metadata, instead of calling Verify.
llvm-svn: 185847
|
|
|
|
| |
llvm-svn: 185844
|
|
|
|
|
|
|
|
|
|
| |
Since the pool indexes are necessarily sequential and contiguous, just
insert things in the right place rather than having to sort the sequence
after the fact.
No functionality change.
llvm-svn: 185842
|
|
|
|
| |
llvm-svn: 185589
|
|
|
|
|
|
| |
for them and update all uses.
llvm-svn: 185588
|
|
|
|
| |
llvm-svn: 185586
|
|
|
|
|
|
| |
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: 185492
|
|
|
|
|
|
|
|
| |
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 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
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
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: 182903
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
from a different CU.
We used to print out an error message and fail to generate inlined_subroutine.
If we use ref_addr in the generated DWARF, the DWARF version should be 3 or
above.
rdar://13926659
llvm-svn: 182791
|
|
|
|
|
|
|
|
|
| |
This is to fix PR15408 where an undefined symbol Lline_table_start1 is used.
Since we do not generate the debug_line section when .loc is used,
Lline_table_start1 is not emitted and we can't refer to it when calculating
at_stmt_list for a compile unit.
llvm-svn: 182344
|
|
|
|
|
|
|
|
|
| |
This resolves the last of the PR14606 failures in the GDB 7.5 test
suite by implementing an optional name field for
DW_TAG_imported_modules/DIImportedEntities and using that to implement
C++ namespace aliases (eg: "namespace X = Y;").
llvm-svn: 182328
|
|
|
|
| |
llvm-svn: 181663
|