History log of /llvm-project/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp (Results 376 – 400 of 409)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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 ...


1...<<11121314151617