#
d065e23d |
| 02-Jun-2016 |
David Majnemer <david.majnemer@gmail.com> |
[codeview] Return type indices for typedefs
Use the type index of the underlying type unless we have a typedef from long to HRESULT; HRESULT typedefs are translated to T_HRESULT.
llvm-svn: 271494
|
#
846edb6f |
| 01-Jun-2016 |
Reid Kleckner <rnk@google.com> |
Fix the NDEBUG build
llvm-svn: 271411
|
#
5acacbb0 |
| 01-Jun-2016 |
Reid Kleckner <rnk@google.com> |
[codeview] Translate basic DITypes to CV type records
Summary: This is meant to be the tiniest step towards DIType to CV type index translation that I could come up with. Whenever translation fails,
[codeview] Translate basic DITypes to CV type records
Summary: This is meant to be the tiniest step towards DIType to CV type index translation that I could come up with. Whenever translation fails, we use type index zero, which is the unknown type.
Reviewers: aaboud, zturner
Subscribers: llvm-commits, amccarth
Differential Revision: http://reviews.llvm.org/D20840
llvm-svn: 271408
show more ...
|
#
fbdbe9e2 |
| 31-May-2016 |
Reid Kleckner <rnk@google.com> |
[codeview] Improve readability of type record assembly
Adds the method MCStreamer::EmitBinaryData, which is usually an alias for EmitBytes. In the MCAsmStreamer case, it is overridden to emit hex du
[codeview] Improve readability of type record assembly
Adds the method MCStreamer::EmitBinaryData, which is usually an alias for EmitBytes. In the MCAsmStreamer case, it is overridden to emit hex dump output like this: .byte 0x0e, 0x00, 0x08, 0x10 .byte 0x03, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00
Also, when verbose asm comments are enabled, this patch prints the dump output for each comment before its record, like this: # ArgList (0x1000) { # TypeLeafKind: LF_ARGLIST (0x1201) # NumArgs: 0 # Arguments [ # ] # } .byte 0x06, 0x00, 0x01, 0x12 .byte 0x00, 0x00, 0x00, 0x00
This should make debugging easier and testing more convenient.
Reviewers: aaboud
Subscribers: majnemer, zturner, amccarth, aaboud, llvm-commits
Differential Revision: http://reviews.llvm.org/D20711
llvm-svn: 271313
show more ...
|
#
5d122f87 |
| 25-May-2016 |
Reid Kleckner <rnk@google.com> |
[codeview] Use comdats for debug info describing comdat functions
Summary: This allows the linker to discard unused symbol information for comdat functions that were discarded during the link. Befor
[codeview] Use comdats for debug info describing comdat functions
Summary: This allows the linker to discard unused symbol information for comdat functions that were discarded during the link. Before this change, searching for the name of an inline function in the debugger would return multiple results, one per symbol subsection in the object file. After this change, there is only one result, the result for the function chosen by the linker.
Reviewers: zturner, majnemer
Subscribers: aaboud, amccarth, llvm-commits
Differential Revision: http://reviews.llvm.org/D20642
llvm-svn: 270792
show more ...
|
#
2280f932 |
| 23-May-2016 |
Reid Kleckner <rnk@google.com> |
Modify emitTypeInformation to use MemoryTypeTableBuilder, take 2
This effectively revers commit r270389 and re-lands r270106, but it's almost a rewrite.
The behavior change in r270106 was that we c
Modify emitTypeInformation to use MemoryTypeTableBuilder, take 2
This effectively revers commit r270389 and re-lands r270106, but it's almost a rewrite.
The behavior change in r270106 was that we could no longer assume that each LF_FUNC_ID record got its own type index. This patch adds a map from DINode* to TypeIndex, so we can stop making that assumption.
This change also emits padding bytes between type records similar to the way MSVC does. The size of the type record includes the padding bytes.
llvm-svn: 270485
show more ...
|
#
a78ecd1e |
| 23-May-2016 |
Zachary Turner <zturner@google.com> |
[codeview] Refactor symbol records to use same pattern as types.
This will pave the way to introduce a full fledged symbol visitor similar to how we have a type visitor, thus allowing the same dumpi
[codeview] Refactor symbol records to use same pattern as types.
This will pave the way to introduce a full fledged symbol visitor similar to how we have a type visitor, thus allowing the same dumping code to be used in llvm-readobj and llvm-pdbdump.
Differential Revision: http://reviews.llvm.org/D20384 Reviewed By: rnk
llvm-svn: 270475
show more ...
|
#
6cd7c918 |
| 23-May-2016 |
David Majnemer <david.majnemer@gmail.com> |
Revert "Modify emitTypeInformation to use MemoryTypeTableBuilder"
This reverts commit r270106. It results in certain function types omitted in the output.
llvm-svn: 270389
|
#
a972d612 |
| 19-May-2016 |
Adrian McCarthy <amccarth@google.com> |
Modify emitTypeInformation to use MemoryTypeTableBuilder
A baby step toward translating DIType records to CodeView.
This does not (yet) combine the record length with the record data. I'm going bac
Modify emitTypeInformation to use MemoryTypeTableBuilder
A baby step toward translating DIType records to CodeView.
This does not (yet) combine the record length with the record data. I'm going back and forth trying to determine if that's a good idea.
llvm-svn: 270106
show more ...
|
#
63a2846e |
| 17-May-2016 |
Zachary Turner <zturner@google.com> |
[codeview] Some cleanup of Symbol Records.
* Reworks the CVSymbolTypes.def to work similarly to TypeRecords.def. * Moves some enums from SymbolRecords.h to CodeView.h to maintain consistency with
[codeview] Some cleanup of Symbol Records.
* Reworks the CVSymbolTypes.def to work similarly to TypeRecords.def. * Moves some enums from SymbolRecords.h to CodeView.h to maintain consistency with how we do type records. * Generalize a few simple things like the record prefix * Define the leaf enum and the kind enum similar to how we do with tyep records.
Differential Revision: http://reviews.llvm.org/D20342 Reviewed By: amccarth, rnk
llvm-svn: 269867
show more ...
|
#
4525fbe2 |
| 13-May-2016 |
Reid Kleckner <rnk@google.com> |
[codeview] Align class and print names of types
Summary: This way we can get rid of one of the fields in the .def file.
Reviewers: llvm-commits
Subscribers: zturner
Differential Revision: http://
[codeview] Align class and print names of types
Summary: This way we can get rid of one of the fields in the .def file.
Reviewers: llvm-commits
Subscribers: zturner
Differential Revision: http://reviews.llvm.org/D20251
llvm-svn: 269461
show more ...
|
#
ae3882a1 |
| 11-May-2016 |
Zachary Turner <zturner@google.com> |
Refactor CodeView type records to use common code.
Differential Revision: http://reviews.llvm.org/D20138 Reviewed By: rnk
llvm-svn: 269216
|
#
ea87eae4 |
| 20-Mar-2016 |
Craig Topper <craig.topper@gmail.com> |
Suppress a -Wunused-variable warning in release builds.
llvm-svn: 263892
|
#
fbd7787d |
| 18-Mar-2016 |
Reid Kleckner <rnk@google.com> |
[codeview] Only emit function ids for inlined functions
We aren't referencing any other kind of function currently. Should save a bit on our debug info size.
llvm-svn: 263817
|
#
b9456a5e |
| 14-Mar-2016 |
David Majnemer <david.majnemer@gmail.com> |
[CodeView] Consistently handle overly large symbol names
Overly large symbol names weren't correctly handled for leaf function records.
llvm-svn: 263408
|
#
1256125f |
| 13-Mar-2016 |
David Majnemer <david.majnemer@gmail.com> |
[CodeView] Truncate display names
Fundamentally, the length of a variable or function name is bound by the maximum size of a record: 0xffff. However, the name doesn't live in a vacuum; other data i
[CodeView] Truncate display names
Fundamentally, the length of a variable or function name is bound by the maximum size of a record: 0xffff. However, the name doesn't live in a vacuum; other data is associated with the name, lowering the bound further.
We would naively attempt to emit the name, causing us to assert because the record would no-longer fit in 16-bits. Instead, truncate the name but preserve as much as we can.
While I have tested this locally, I've decided to not commit it due to the test's size.
N.B. While this behavior is undesirable, it is better than MSVC's behavior. They seem to truncate to ~4000 characters.
llvm-svn: 263378
show more ...
|
#
adebb937 |
| 11-Mar-2016 |
Pete Cooper <peter_cooper@apple.com> |
Remove llvm::getDISubprogram in favor of Function::getSubprogram
llvm::getDISubprogram walks the instructions in a function, looking for one in the scope of the current function, so that it can find
Remove llvm::getDISubprogram in favor of Function::getSubprogram
llvm::getDISubprogram walks the instructions in a function, looking for one in the scope of the current function, so that it can find the !dbg entry for the subprogram itself.
Now that !dbg is attached to functions, this should not be necessary. This patch changes all uses to just query the subprogram directly on the function.
Ideally this should be NFC, but in reality its possible that a function:
has no !dbg (in which case there's likely a bug somewhere in an opt pass), or that none of the instructions had a scope referencing the function, so we used to not find the !dbg on the function but now we will
Reviewed by Duncan Exon Smith.
Differential Revision: http://reviews.llvm.org/D18074
llvm-svn: 263184
show more ...
|
Revision tags: llvmorg-3.8.0, llvmorg-3.8.0-rc3 |
|
#
9a593ee7 |
| 16-Feb-2016 |
Reid Kleckner <rnk@google.com> |
[codeview] Bail on a DBG_VALUE register operand with no register
This apparently comes up when the register allocator decides that a variable will become undef along a certain path.
Also improve th
[codeview] Bail on a DBG_VALUE register operand with no register
This apparently comes up when the register allocator decides that a variable will become undef along a certain path.
Also improve the error message we emit when we can't map from LLVM register number to CV register number.
llvm-svn: 261016
show more ...
|
#
6e0d5f57 |
| 16-Feb-2016 |
Reid Kleckner <rnk@google.com> |
[codeview] Fix assertion on non-memory, non-register DBG_VALUE instructions
Eventually we should find a way to describe constant variables, but it is not obvious how to do this at the moment.
llvm-
[codeview] Fix assertion on non-memory, non-register DBG_VALUE instructions
Eventually we should find a way to describe constant variables, but it is not obvious how to do this at the moment.
llvm-svn: 261010
show more ...
|
#
c6a2f214 |
| 16-Feb-2016 |
Aaron Ballman <aaron@aaronballman.com> |
A signed bitfield's range is [-1,0], so assigning 1 is technically an overflow. However, the other bitfield requires a signed value (it supports negative offsets), so it is slightly better to retain
A signed bitfield's range is [-1,0], so assigning 1 is technically an overflow. However, the other bitfield requires a signed value (it supports negative offsets), so it is slightly better to retain a signed 1-bit bitfield and use -1 instead of 1. Silences an MSVC warning.
llvm-svn: 260973
show more ...
|
#
876330d5 |
| 12-Feb-2016 |
Reid Kleckner <rnk@google.com> |
[codeview] Describe local variables in registers
llvm-svn: 260746
|
#
829365ae |
| 11-Feb-2016 |
Reid Kleckner <rnk@google.com> |
[codeview] Fix bug around multi-level wrapper inlining
If there were wrapper functions with no instructions of their own in the inlining tree, we would fail to emit InlineSite records for them.
llv
[codeview] Fix bug around multi-level wrapper inlining
If there were wrapper functions with no instructions of their own in the inlining tree, we would fail to emit InlineSite records for them.
llvm-svn: 260571
show more ...
|
#
f9c275fe |
| 10-Feb-2016 |
Reid Kleckner <rnk@google.com> |
[codeview] Describe int local variables using .cv_def_range
Summary: Refactor common value, scope, and label tracking logic out of DwarfDebug into a common base class called DebugHandlerBase.
Updat
[codeview] Describe int local variables using .cv_def_range
Summary: Refactor common value, scope, and label tracking logic out of DwarfDebug into a common base class called DebugHandlerBase.
Update an old LLVM IR test case to avoid an assertion in LexicalScopes.
Reviewers: dblaikie, majnemer
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D16931
llvm-svn: 260432
show more ...
|
#
eb3bcdd2 |
| 03-Feb-2016 |
Reid Kleckner <rnk@google.com> |
[codeview] Remove EmitLabelDiff in favor emitAbsoluteSymbolDiff
llvm-svn: 259700
|
#
dac21b43 |
| 03-Feb-2016 |
Reid Kleckner <rnk@google.com> |
[codeview] Use the MCStreamer interface directly instead of AsmPrinter
This is mostly about having shorter lines and standardizing on one interface, but it also avoids some needless indirection.
No
[codeview] Use the MCStreamer interface directly instead of AsmPrinter
This is mostly about having shorter lines and standardizing on one interface, but it also avoids some needless indirection.
No functional change.
llvm-svn: 259697
show more ...
|