| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
| |
Fixes a crash-on-valid introduced by r188486 (which should've occurred
earlier but for a blatant bug where calling createFwdDecl from the
requireCompleteType callback was useless under -flimit-debug-info and we
were just getting lucky with other later callbacks requiring the type
anyway).
llvm-svn: 188622
|
| |
|
|
|
|
| |
enumeration type
llvm-svn: 188612
|
| |
|
|
|
|
|
|
|
|
| |
have the vtable for that class"
This reverts commit r188576.
Reverting while I investigate a selfhosting buildbot failure on Darwin.
llvm-svn: 188600
|
| |
|
|
|
|
|
|
|
|
|
|
| |
with the same name but different lines
Updated test case to not rely on line numbers in more cases (it's hard
to use the @ check syntax for debug info test cases (due to the
interesting ordering of metadata) and this case in particular (given the
hash-line directive)) - left a few in there to cover the line number
information for these.
llvm-svn: 188585
|
| |
|
|
|
|
|
|
|
| |
vtable for that class
This reduces Clang's .dwo (fission debug info) size by 23% over
Clang+LLVM.
llvm-svn: 188576
|
| |
|
|
|
|
|
| |
This is the correct type (as is demonstrated by the fact that the caller
didn't need to change) & will be useful in a future patch.
llvm-svn: 188575
|
| |
|
|
|
|
| |
This change broke release+asserts build with compiler-rt.
llvm-svn: 188539
|
| |
|
|
|
|
| |
result.
llvm-svn: 188501
|
| |
|
|
| |
llvm-svn: 188500
|
| |
|
|
|
|
| |
for future use
llvm-svn: 188498
|
| |
|
|
| |
llvm-svn: 188496
|
| |
|
|
| |
llvm-svn: 188494
|
| |
|
|
|
|
|
|
|
| |
match the semantics
Rather than having a cast immediately inside the function, push that
type requirement out to the callers.
llvm-svn: 188492
|
| |
|
|
|
|
|
| |
(the removed FIXME no longer applies since we made this debug info
optimization not apply to C)
llvm-svn: 188491
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rather than going through the whole getOrCreateType machinery to
manifest a type, cut straight to the implementation because we know we
have to do work.
While the previous implementation was sufficient for the two cases
(completeness and required completeness) we have already (the general
machinery could inspect the type for those attributes & go down the full
definition path), a pending change (to emit info for types when we emit
their vtables) won't have that luxury & we'll need to force the creation
rather than relying on the general purpose routine.
llvm-svn: 188486
|
| |
|
|
|
|
|
| |
It still does only return DICompositeType, but I've no need to make that
change right now.
llvm-svn: 188482
|
| |
|
|
|
|
| |
This happens in the caller a few frames up anyway.
llvm-svn: 188475
|
| |
|
|
|
|
|
| |
No functionality change, at best a slight (questionable) optimization,
but necessary for correctness of future work.
llvm-svn: 188474
|
| |
|
|
| |
llvm-svn: 188251
|
| |
|
|
|
|
| |
info checking already in CreateType(RecordType)
llvm-svn: 188222
|
| |
|
|
| |
llvm-svn: 188214
|
| |
|
|
|
|
|
|
|
|
|
|
| |
just ODR use.
This includes special members (copy/default ctor, copy assign, default
ctor) and template specializations for member function templates.
Good for a 5% decrease (1.80 to 1.71 GB) in size on Clang+LLVM's .dwo
files (when using fission).
llvm-svn: 188085
|
| |
|
|
|
|
|
|
|
| |
Without an ODR, the -flimit-debug-info debug info size optimization of
emitting declarations for fully defined types when only a declaration is
needed by the TU, is incorrect. Emit the full definition whenever it's
available in non-C++.
llvm-svn: 187611
|
| |
|
|
|
|
|
|
| |
We emit definitions with no members when a nested type is
referenced/required (GCC does the same, to be fair) but failed to attach
the template arguments in such a case.
llvm-svn: 187608
|
| |
|
|
| |
llvm-svn: 187594
|
| |
|
|
|
|
| |
of an artificial function gets an artificial location as well.
llvm-svn: 187074
|
| |
|
|
|
|
|
|
| |
__byref_variable_layout.
rdar://problem/14386148
llvm-svn: 186898
|
| |
|
|
|
|
| |
Fixes rdar://problem/14386148
llvm-svn: 186894
|
| |
|
|
| |
llvm-svn: 186638
|
| |
|
|
| |
llvm-svn: 186557
|
| |
|
|
|
|
|
| |
use the conversion to bool to check if we've managed to get a type
that isn't default constructed - as we meant to in the first place.
llvm-svn: 186556
|
| |
|
|
| |
llvm-svn: 186555
|
| |
|
|
| |
llvm-svn: 186554
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
inspired by CodegenFunction::LexicalScope.
- NoLocation temporarily turns off debug locations altogether.
This is useful for emitting instructions that should be
counted towards the function prologue.
- BuiltinLocation temporarily switches to an artificial debug location
that has a valid scope, but no line information. This is useful when
emitting compiler-generated helper functions that have no source
location associated with them.
llvm-svn: 186552
|
| |
|
|
| |
llvm-svn: 186551
|
| |
|
|
| |
llvm-svn: 186550
|
| |
|
|
| |
llvm-svn: 186542
|
| |
|
|
|
|
|
| |
BlockLiteralGenericSet and replace with a call to isType() on the
BlockLiteralGeneric.
llvm-svn: 186293
|
| |
|
|
| |
llvm-svn: 186292
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
emit the full definition of a type in -flimit-debug-info
This simplifies the core benefit of -flimit-debug-info by taking a more
systematic approach to avoid emitting debug info definitions for types
that only require declarations. The previous ad-hoc approach (3 cases
removed in this patch) had many holes.
The general approach (adding a bit to TagDecl and callback through
ASTConsumer) has been discussed with Richard Smith - though always open
to revision.
llvm-svn: 186262
|
| |
|
|
|
|
|
|
|
|
|
| |
Test coverage for non-dependent pack expansions doesn't demonstrate a
failure prior to this patch (a follow-up commit improving debug info
will cover this commit specifically) but covers a related hole in our
test coverage.
Reviewed by Richard Smith & Eli Friedman.
llvm-svn: 186261
|
| |
|
|
|
|
|
|
|
|
|
| |
Do not generate VLAs as complex variables any more, as they are now
correctly represented as breg+0 locations in the backend.
(Paired commit with LLVM: r185966)
rdar://problem/13658587
llvm-svn: 185967
|
| |
|
|
|
|
|
| |
No functionality change. It should suffice to check the type of a debug info
metadata, instead of calling Verify.
llvm-svn: 185463
|
| |
|
|
|
|
| |
Differential Revision: http://llvm-reviews.chandlerc.com/D1051
llvm-svn: 185115
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The old implementation of ms_struct in RecordLayoutBuilder was a
complete mess: it depended on complicated conditionals which didn't
really reflect the underlying logic, and placed a burden on users of
the resulting RecordLayout. This commit rips out almost all of the
old code, and replaces it with simple checks in
RecordLayoutBuilder::LayoutBitField.
This commit also fixes <rdar://problem/14252115>, a bug where class
inheritance would cause us to lay out bitfields incorrectly.
llvm-svn: 185018
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The goal of this sugar node is to be able to look at an arbitrary
FunctionType and tell if any of the parameters were decayed from an
array or function type. Ultimately this is necessary to implement
Microsoft's C++ name mangling scheme, which mangles decayed arrays
differently from normal pointers.
Reviewers: rsmith
Differential Revision: http://llvm-reviews.chandlerc.com/D1014
llvm-svn: 184763
|
| |
|
|
|
|
|
|
|
|
| |
There's still a problem here - since we're not appropriately using the
signedness/range of the enum to chooset the encoding and emission of
enumerators, but GCC has some bugs around this too so I assume that's
not /such/ a high priority though I may get to it soon out of
completeness.
llvm-svn: 184695
|
| |
|
|
|
|
| |
and parameter packs
llvm-svn: 184644
|
| |
|
|
|
|
| |
No functionality change intended.
llvm-svn: 184614
|
| |
|
|
|
|
| |
later require definitions
llvm-svn: 184594
|