| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
| |
alongside DIEBlock and replace uses accordingly. Use DW_FORM_exprloc
in DWARF4 and later code. Update testcases.
Adding a DIELoc instead of using extra forms inside DIEBlock so
that we can keep location expressions separate from other uses. No
direct use at the moment, however, it's not a lot of code and
using a separately named class keeps it somewhat more obvious
what's going on in various locations.
llvm-svn: 201481
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This broke in r185459 while TLS support was being generalized to handle
non-symbol TLS representations.
I thought about/tried having an enum rather than a bool to track the
TLS-ness of the address table entry, but namespaces and naming seemed
more hassle than it was worth for only one caller that needed to specify
this.
llvm-svn: 201469
|
| |
|
|
| |
llvm-svn: 201467
|
| |
|
|
|
|
|
|
|
| |
Type units will share the statement list of their defining compile unit.
This is a tradeoff that reduces .o debug info size at the cost of some
linked debug info size (since the contents of those string tables won't
be deduplicated along with the type unit) which seems right for now.
llvm-svn: 201445
|
| |
|
|
|
|
|
| |
These types have an out of line virtual function each (emitHeader at
least) so they won't have weak vtables - no need for more than that.
llvm-svn: 201444
|
| |
|
|
|
|
| |
-Wunused-member-variable
llvm-svn: 201442
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fission and non-fission cases
This probably also addresses the FIXME in the fission case regarding
multiple compile units, though I haven't tested that.
This code still confuses me (the literal zero offset makes little sense,
the limitations surrounding asm output I'm not sure about either - but
perhaps we should just always emit one line table? Or should we not rely
on .loc/.file even in assembly so we can produce the same output between
asm and object output?) but this maintains the existing functionality.
llvm-svn: 201441
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when it's unneeded
Recommitting r201380 (reverted in r201389)
Recommitting r201351 and r201355 (reverted in r201351 and r201355)
We weren't emitting the an empty (header only) line table when the line
table was empty - this made the DWARF invalid (the compile unit would
point to the zero-size debug_lines section where there should've been an
empty line table but there was nothing at all). Fix that, and as a
consequence this works around/addresses PR18809.
Also, we emit a non-empty line table to workaround a darwin linker bug,
so XFAILing on darwin too.
Also, mark the test as 'REQUIRES: object-emission' because it does.
llvm-svn: 201429
|
| |
|
|
|
|
|
|
| |
for ARM/Thumb functions.
Patch by Keith Walker!
llvm-svn: 201423
|
| |
|
|
|
|
|
|
| |
file list when it's unneeded"
This reverts commit r201380 for now while we investigate.
llvm-svn: 201389
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
when it's unneeded
Recommitting r201351 and r201355 (reverted in r201351 and r201355)
We weren't emitting the an empty (header only) line table when the line
table was empty - this made the DWARF invalid (the compile unit would
point to the zero-size debug_lines section where there should've been an
empty line table but there was nothing at all). Fix that, and as a
consequence this works around/addresses PR18809.
llvm-svn: 201380
|
| |
|
|
|
|
|
| |
option to enable again that will be matched with a commit to enable
in clang.
llvm-svn: 201378
|
| |
|
|
|
|
|
|
| |
in the line table file list when it's unneeded"
It really crashes cygwin's stage2 configure with "clang -g".
llvm-svn: 201351
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
hasRawTextSupport() call
Summary:
AsmPrinter::EmitInlineAsm() will no longer use the EmitRawText() call for
targets with mature MC support. Such targets will always parse the inline
assembly (even when emitting assembly). Targets without mature MC support
continue to use EmitRawText() for assembly output.
The hasRawTextSupport() check in AsmPrinter::EmitInlineAsm() has been replaced
with MCAsmInfo::UseIntegratedAs which when true, causes the integrated assembler
to parse inline assembly (even when emitting assembly output). UseIntegratedAs
is set to true for targets that consider any failure to parse valid assembly
to be a bug. Target specific subclasses generally enable the integrated
assembler in their constructor. The default value can be overridden with
-no-integrated-as.
All tests that rely on inline assembly supporting invalid assembly (for example,
those that use mnemonics such as 'foo' or 'hello world') have been updated to
disable the integrated assembler.
Changes since review (and last commit attempt):
- Fixed test failures that were missed due to configuration of local build.
(fixes crash.ll and a couple others).
- Fixed tests that happened to pass because the local build was on X86
(should fix 2007-12-17-InvokeAsm.ll)
- mature-mc-support.ll's should no longer require all targets to be compiled.
(should fix ARM and PPC buildbots)
- Object output (-filetype=obj and similar) now forces the integrated assembler
to be enabled regardless of default setting or -no-integrated-as.
(should fix SystemZ buildbots)
Reviewers: rafael
Reviewed By: rafael
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2686
llvm-svn: 201333
|
| |
|
|
| |
llvm-svn: 201265
|
| |
|
|
| |
llvm-svn: 201264
|
| |
|
|
|
|
| |
rdar://problem/16015314
llvm-svn: 201253
|
| |
|
|
|
|
|
|
| |
AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call
It introduced multiple test failures in the buildbots.
llvm-svn: 201241
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
hasRawTextSupport() call
Summary:
AsmPrinter::EmitInlineAsm() will no longer use the EmitRawText() call for targets with mature MC support. Such targets will always parse the inline assembly (even when emitting assembly). Targets without mature MC support continue to use EmitRawText() for assembly output.
The hasRawTextSupport() check in AsmPrinter::EmitInlineAsm() has been replaced with MCAsmInfo::UseIntegratedAs which when true, causes the integrated assembler to parse inline assembly (even when emitting assembly output). UseIntegratedAs is set to true for targets that consider any failure to parse valid assembly to be a bug. Target specific subclasses generally enable the integrated assembler in their constructor. The default value can be overridden with -no-integrated-as.
All tests that rely on inline assembly supporting invalid assembly (for example, those that use mnemonics such as 'foo' or 'hello world') have been updated to disable the integrated assembler.
Reviewers: rafael
Reviewed By: rafael
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2686
llvm-svn: 201237
|
| |
|
|
|
|
|
|
|
|
| |
file_names table
There's still one piece missing here, which is adding the
DW_AT_stmt_list to the type unit that refer's to the compile unit's line
table. Working on that.
llvm-svn: 201198
|
| |
|
|
| |
llvm-svn: 201197
|
| |
|
|
|
|
|
|
|
| |
DwarfTypeUnit.
Type units need to insert their file strings into the compile unit's
line/file table. This is preliminary work to that end.
llvm-svn: 201196
|
| |
|
|
|
|
|
|
| |
This is preliminary work to fix type unit file strings so they appear in
their originating CU's line table - but it's also just good/simple
cleanup, so I'm committing it ahead of time.
llvm-svn: 201195
|
| |
|
|
|
|
|
|
| |
We used to be pretty vague about what debug entities were what, with
many conditionals to silently drop/skip/accept things. These don't seem
to be relevant anymore.
llvm-svn: 201194
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Debug info: Emit values in subregisters that do not have a separate
DWARF register number by emitting a super-register + DW_OP_bit_piece.
This is necessary because on x86_64, there are no DWARF register numbers
for i386-style subregisters.
Fixes a bunch of FIXMEs.
rdar://problem/16015314
llvm-svn: 201190
|
| |
|
|
|
|
| |
This reverts commit r201179 for buildbot breakage.
llvm-svn: 201188
|
| |
|
|
|
|
|
|
|
|
| |
when it's unneeded
This comes up in empty files or files containing #file directives that
never reference the actual source file name. Came up in a small test of
line tables I was playing with.
llvm-svn: 201187
|
| |
|
|
| |
llvm-svn: 201181
|
| |
|
|
|
|
|
|
|
|
|
| |
DWARF register number by emitting a super-register + DW_OP_bit_piece.
This is necessary because on x86_64, there are no DWARF register numbers
for i386-style subregisters.
Fixes a bunch of FIXMEs.
rdar://problem/16015314
llvm-svn: 201180
|
| |
|
|
| |
llvm-svn: 201119
|
| |
|
|
|
|
| |
Thanks to Chandler for the catch.
llvm-svn: 201095
|
| |
|
|
|
|
|
|
|
| |
These methods normally call each other and it is really annoying if the
arguments are in different order. The more common rule was that the arguments
specific to call are first (GV, Encoding, Suffix) and the auxiliary objects
(Mang, TM) come after. This patch changes the exceptions.
llvm-svn: 201044
|
| |
|
|
| |
llvm-svn: 201043
|
| |
|
|
|
|
|
| |
It is never null and it is not used in casts, so there is no reason to use a
pointer. This matches how we pass TM.
llvm-svn: 201025
|
| |
|
|
|
|
| |
Thanks to John McCall for noticing it.
llvm-svn: 200977
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 200976
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In a previous commit (r199818) we added a const_cast to an existing
subtarget info instead of creating a new one so that we could reuse
it when creating the TargetAsmParser for parsing inline assembly.
This cast was necessary because we needed to reuse the existing STI
to avoid generating incorrect code when the inline asm contained
mode-switching directives (e.g. .code 16).
The root cause of the failure was that there was an implicit sharing
of the STI between the parser and the MCCodeEmitter. To fix a
different but related issue, we now explicitly pass the STI to the
MCCodeEmitter (see commits r200345-r200351).
The const_cast is no longer necessary and we can now create a fresh
STI for the inline asm parser to use.
Differential Revision: http://llvm-reviews.chandlerc.com/D2709
llvm-svn: 200929
|
| |
|
|
|
|
| |
Clang itself was not using this. The only way to access it was via llc.
llvm-svn: 200862
|
| |
|
|
| |
llvm-svn: 200781
|
| |
|
|
|
|
|
|
|
|
|
| |
emits zero-length arrays as {i32 0}
A bunch of test cases needed to be cleaned up for this, many my fault -
when implementid imported modules I updated test cases by simply
duplicating the prior metadata field - which wasn't always the empty
metadata entry.
llvm-svn: 200731
|
| |
|
|
| |
llvm-svn: 200611
|
| |
|
|
|
|
| |
The code path it was guarding was already using emitRawComment.
llvm-svn: 200591
|
| |
|
|
|
|
| |
keeping track of those entries.
llvm-svn: 200572
|
| |
|
|
|
|
|
|
| |
algorithm. Sink the 'A' + Attribute hash into each form so we don't
have to check valid forms before deciding whether or not we're going
to hash which will let the default be to return without doing anything.
llvm-svn: 200571
|
| |
|
|
|
|
|
|
|
| |
This ensures DWARF consumers don't confuse these references for
definitions. I'd argue it might be nice to improve debuggers so we don't
need this, but it's just one field in an abbreviation anyway - so it
doesn't seem worth the fight.
llvm-svn: 200569
|
| |
|
|
|
|
|
|
| |
triple'
This incorporates a couple of fixes reviewed at http://llvm-reviews.chandlerc.com/D2651
llvm-svn: 200440
|
| |
|
|
|
|
| |
when we create the subprogram DIE.
llvm-svn: 200426
|
| |
|
|
|
|
|
|
| |
are relative to in the compile unit. Currently let's just use 0...
Thanks to Greg Clayton for the catch!
llvm-svn: 200425
|
| |
|
|
|
|
|
|
| |
module since there's no range guarantee that we could make given
output order. This also fixes up the testcases that have multiple
CUs to have the correct range offset.
llvm-svn: 200422
|
| |
|
|
|
|
| |
output ordering.
llvm-svn: 200421
|