| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 188834
|
|
|
|
|
|
|
|
|
| |
and definition
Based on code review feedback from Eric Christopher (on r188739) and
Adrian Prantl (r188642).
llvm-svn: 188829
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
classes in TUs that do not have the vtable for that class""""
This reverts commit r188687 (reverts r188642 (reverts 188600 (reverts
188576))).
With added test coverage & fix for -gline-tables-only.
Thanks Michael Gottesman for reverting this patch when it demonstrated
problems & providing a reproduction/details to help me track this down.
llvm-svn: 188739
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TUs that do not have the vtable for that class"""
This reverts commit r188642.
This change is causing LTO builds to cause our 16 GB machines to swap and OOM
all weekend. I am going to work with Dave Blaikie to resolve the issue.
Sorry Dave =(.
llvm-svn: 188687
|
|
|
|
|
|
| |
parameters of artificial functions
llvm-svn: 188651
|
|
|
|
|
|
|
|
|
|
|
|
| |
do not have the vtable for that class""
This reverts commit r188600.
r188640/r188639 fixed the root cause of the crash-on-valid that r188600
originally introduced. This now appears to bootstrap debug clang
successfully to the best of my testing.
llvm-svn: 188642
|
|
|
|
|
|
|
|
|
|
|
|
| |
creating their context
A partner to r188639, this is a somewhat heavy-handed fix to the general
issue, since even after that prior change the issue does still
unavoidably arise with template parameters (see test case).
There are other ways we could consider addressing this (see FIXME).
llvm-svn: 188640
|
|
|
|
|
|
|
|
|
| |
Possible minor reduction in debug info & avoid some cases where creating
a context chain could lead to the type the context chain is being
created for, being created. (this is still possible with template
parameters - tests/fixes/improvements to follow)
llvm-svn: 188639
|
|
|
|
|
|
|
|
|
|
| |
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
|