History log of /llvm-project/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp (Results 326 – 350 of 409)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# e1e7372e 06-Jul-2016 David Majnemer <david.majnemer@gmail.com>

[CodeView] Unions are always sealed

It is impossible to inherit from a union. We are missing a way to
represent this in IR for classes/structs...

llvm-svn: 274675


# 820ca540 06-Jul-2016 Adrian McCarthy <amccarth@google.com>

Retry: "Emit CodeView type records for nested classes."

Now with a corrected test to account for a recently supported properties bit in the debug info of a struct.

Original review: http://reviews.l

Retry: "Emit CodeView type records for nested classes."

Now with a corrected test to account for a recently supported properties bit in the debug info of a struct.

Original review: http://reviews.llvm.org/D21939

This reverts commit 970c3fd497a28d25dd69526eb52594a696c37968.

llvm-svn: 274661

show more ...


# 7649d838 06-Jul-2016 Adrian McCarthy <amccarth@google.com>

Revert "Emit CodeView type records for nested classes."

This reverts commit 256b29322c827a2d94da56468c936596f5509032.

llvm-svn: 274632


# 024a7b63 06-Jul-2016 Adrian McCarthy <amccarth@google.com>

Emit CodeView type records for nested classes.

Differential Revision: http://reviews.llvm.org/D21939

llvm-svn: 274629


# e092dad7 02-Jul-2016 Reid Kleckner <rnk@google.com>

[codeview] Set the Nested and Scoped ClassOptions based on the scope chain

These are set on both the declaration record and the definition record.

llvm-svn: 274410


# 08bd744c 01-Jul-2016 David Majnemer <david.majnemer@gmail.com>

[CodeView] Include the offset of nested members

Given something like:
struct S {
int a;
struct { int b; };
};

We would fail to give 'b' offset 4. Instead, we would give it the
offset i

[CodeView] Include the offset of nested members

Given something like:
struct S {
int a;
struct { int b; };
};

We would fail to give 'b' offset 4. Instead, we would give it the
offset it has inside of it's struct.

llvm-svn: 274400

show more ...


# 6bdc24e7 01-Jul-2016 David Majnemer <david.majnemer@gmail.com>

[CodeView] Pretty print anonymous scopes

A namespace without a name should be written out as `anonymous
namespace' while a tag type without a name should be written out as
<unnamed-tag>.

llvm-svn:

[CodeView] Pretty print anonymous scopes

A namespace without a name should be written out as `anonymous
namespace' while a tag type without a name should be written out as
<unnamed-tag>.

llvm-svn: 274399

show more ...


# ad56ea31 01-Jul-2016 Reid Kleckner <rnk@google.com>

[codeview] Don't record UDTs for anonymous structs

MSVC makes up names for these anonymous structs, but we don't (yet).
Eventually Clang should use getTypedefNameForAnonDecl() to put some name
in th

[codeview] Don't record UDTs for anonymous structs

MSVC makes up names for these anonymous structs, but we don't (yet).
Eventually Clang should use getTypedefNameForAnonDecl() to put some name
in the debug info, and we can update the test case when that happens.

llvm-svn: 274391

show more ...


# c92e9469 01-Jul-2016 Reid Kleckner <rnk@google.com>

[codeview] Assert that our CV type records are valid

We were asserting that our type records were valid when emitting
assembly, but not when emitting an object file.

I've been seeing lots of LNK128

[codeview] Assert that our CV type records are valid

We were asserting that our type records were valid when emitting
assembly, but not when emitting an object file.

I've been seeing lots of LNK1285 errors (corrupt PDB) during incremental
debug self-host builds with the MSVC linker, and hopefully this will
catch some of them earlier.

llvm-svn: 274373

show more ...


# b5af11df 01-Jul-2016 Reid Kleckner <rnk@google.com>

[codeview] Add DISubprogram::ThisAdjustment

Summary:
This represents the adjustment applied to the implicit 'this' parameter
in the prologue of a virtual method in the MS C++ ABI. The adjustment is

[codeview] Add DISubprogram::ThisAdjustment

Summary:
This represents the adjustment applied to the implicit 'this' parameter
in the prologue of a virtual method in the MS C++ ABI. The adjustment is
always zero unless multiple inheritance is involved.

This increases the size of DISubprogram by 8 bytes, unfortunately. The
adjustment really is a signed 32-bit integer. If this size increase is
too much, we could probably win it back by splitting out a subclass with
info specific to virtual methods (virtuality, vindex, thisadjustment,
containingType).

Reviewers: aprantl, dexonsmith

Subscribers: aaboud, amccarth, llvm-commits

Differential Revision: http://reviews.llvm.org/D21614

llvm-svn: 274325

show more ...


# 9319cbc0 30-Jun-2016 David Majnemer <david.majnemer@gmail.com>

[CodeView] Implement support for bitfields in LLVM

CodeView need to know the offset of the storage allocation for a
bitfield. Encode this via the "extraData" field in DIDerivedType and
introduced a

[CodeView] Implement support for bitfields in LLVM

CodeView need to know the offset of the storage allocation for a
bitfield. Encode this via the "extraData" field in DIDerivedType and
introduced a new flag, DIFlagBitField, to indicate whether or not a
member is a bitfield.

This fixes PR28162.

Differential Revision: http://reviews.llvm.org/D21782

llvm-svn: 274200

show more ...


# d8db1e17 26-Jun-2016 Nico Weber <nicolasweber@gmx.de>

Revert r273807 (and r273809, r273810), it caused PR28311

llvm-svn: 273815


# 9fc3d0df 26-Jun-2016 Amjad Aboud <amjad.aboud@intel.com>

Fixed build failure (due to unused variable error) in r273807.

llvm-svn: 273810


# ac97be64 26-Jun-2016 Amjad Aboud <amjad.aboud@intel.com>

Fixed build failure (due to unused variable error) in r273807.

llvm-svn: 273809


# ff976c99 26-Jun-2016 Amjad Aboud <amjad.aboud@intel.com>

[codeview] Improved array type support.

Added support for:
1. Multi dimension array.
2. Array of structure type, which previously was declared incompletely.
3. Dynamic size array.

Differential Revi

[codeview] Improved array type support.

Added support for:
1. Multi dimension array.
2. Array of structure type, which previously was declared incompletely.
3. Dynamic size array.

Differential Revision: http://reviews.llvm.org/D21526

llvm-svn: 273807

show more ...


# 10dd55c5 24-Jun-2016 Reid Kleckner <rnk@google.com>

[codeview] Emit parameter variables in the right order

Clang emits them in reverse order to conform to the ABI, which requires
left-to-right destruction. As a result, the order doesn't fall out
natu

[codeview] Emit parameter variables in the right order

Clang emits them in reverse order to conform to the ABI, which requires
left-to-right destruction. As a result, the order doesn't fall out
naturally, and we have to sort things out in the backend.

Fixes PR28213

llvm-svn: 273696

show more ...


# 9f7f3e1e 24-Jun-2016 Reid Kleckner <rnk@google.com>

[codeview] Emit base class information from DW_TAG_inheritance nodes

There are two remaining issues here:
1. No vbptr information
2. Need to mention indirect virtual bases

Getting indirect virtual

[codeview] Emit base class information from DW_TAG_inheritance nodes

There are two remaining issues here:
1. No vbptr information
2. Need to mention indirect virtual bases

Getting indirect virtual bases is just a matter of adding an "indirect"
flag, emitting them in the frontend, and ignoring them when appropriate
for DWARF.

All virtual bases use the same artificial vbptr field, so I think the
vbptr offset will be best represented by an implicit __vbptr$ClassName
member similar to our existing __vptr$ member.

llvm-svn: 273688

show more ...


# 4b63a98d 23-Jun-2016 Hans Wennborg <hans@hanshq.net>

[codeview] Add classes and unions to the Local/Global UDTs lists

Differential Revision: http://reviews.llvm.org/D21655

llvm-svn: 273626


# b510b458 23-Jun-2016 Hans Wennborg <hans@hanshq.net>

[codeview] Emit retained types

Differential Revision: http://reviews.llvm.org/D21630

llvm-svn: 273579


# 9a519a09 22-Jun-2016 Hans Wennborg <hans@hanshq.net>

[codeview] Write LF_UDT_SRC_LINE records (PR28251)

Differential Revision: http://reviews.llvm.org/D21621

llvm-svn: 273495


# 156a7239 22-Jun-2016 Reid Kleckner <rnk@google.com>

[codeview] Add IntroducingVirtual debug info flag

CodeView needs to know if a virtual method was introduced in the current
class, and base classes may not have complete type information, so we
need

[codeview] Add IntroducingVirtual debug info flag

CodeView needs to know if a virtual method was introduced in the current
class, and base classes may not have complete type information, so we
need to thread this bit through from the frontend.

llvm-svn: 273453

show more ...


# 643dd836 22-Jun-2016 Reid Kleckner <rnk@google.com>

[codeview] Defer emission of all referenced complete records

This is the motivating example:
struct B { int b; };
struct A { B *b; };
int f(A *p) { return p->b->b; }

Clang emits complete type

[codeview] Defer emission of all referenced complete records

This is the motivating example:
struct B { int b; };
struct A { B *b; };
int f(A *p) { return p->b->b; }

Clang emits complete types for both A and B because they are required to
be complete, but our CodeView emission would only emit forward
declarations of A and B. This was a consequence of the fact that the A*
type must reference the forward declaration of A, which doesn't
reference B at all.

We can't eagerly emit complete definitions of A and B when we request
the forward declaration's type index because of recursive types like
linked lists. If we did that, our stack usage could get out of hand, and
it would be possible to lower a type while attempting to lower a type,
and we would need to double check if our type is already present in the
TypeIndexMap after all recursive getTypeIndex calls.

Instead, defer complete type emission until after all type lowering has
completed. This ensures that all referenced complete types are emitted,
and that type lowering is not re-entrant.

llvm-svn: 273443

show more ...


# 1ab7eac8 22-Jun-2016 Reid Kleckner <rnk@google.com>

[codeview] Remove ClassInfoMap

From a design perspective, complete record type emission should not
depend on information from other complete record types.

Currently this map is unused, and needless

[codeview] Remove ClassInfoMap

From a design perspective, complete record type emission should not
depend on information from other complete record types.

Currently this map is unused, and needlessly accumulates data throughout
compilation.

llvm-svn: 273431

show more ...


# 0c5d874b 22-Jun-2016 Reid Kleckner <rnk@google.com>

[codeview] Improve names of types in scopes and member function ids

We now include namespace scope info in LF_FUNC_ID records and we emit
LF_MFUNC_ID records for member functions as we should.

Clas

[codeview] Improve names of types in scopes and member function ids

We now include namespace scope info in LF_FUNC_ID records and we emit
LF_MFUNC_ID records for member functions as we should.

Class names are now fully qualified, which is what MSVC does.

Add a little bit of scaffolding to handle ThisAdjustment when it arrives
in DISubprogram.

llvm-svn: 273358

show more ...


# 9ff936cf 21-Jun-2016 Reid Kleckner <rnk@google.com>

[codeview] Fix DenseMap pointer invalidation bug

When you have a map holding a unique_ptr, hold a reference to the raw
pointer instead of the unique pointer. The unique_ptr will be moved on
rehash.

[codeview] Fix DenseMap pointer invalidation bug

When you have a map holding a unique_ptr, hold a reference to the raw
pointer instead of the unique pointer. The unique_ptr will be moved on
rehash.

llvm-svn: 273268

show more ...


1...<<11121314151617