| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
That's exactly what TinyPtrVector was designed for. No functionality change.
llvm-svn: 207919
|
| |
|
|
|
|
|
|
| |
a std::vector that allocates on the heap. As a consequence, we have to
run all of their destructors when tearing down the set, not just
deallocate the memory blobs.
llvm-svn: 207902
|
| |
|
|
|
|
|
|
|
|
| |
initializing an array unless we need it. Specifically, position the
creation of a new basic block after we've checked all of the cases that
bypass the need for it.
Fixes another leak in test/CodeGen* found by LSan.
llvm-svn: 207900
|
| |
|
|
|
|
| |
parsing.
llvm-svn: 207899
|
| |
|
|
|
|
|
|
|
| |
Having various possible states of initialization following construction doesn't
add value here.
Also remove the unused size_reserve parameter.
llvm-svn: 207897
|
| |
|
|
| |
llvm-svn: 207896
|
| |
|
|
|
|
|
|
| |
This was accidentally committed.
This reverts commit r207892.
llvm-svn: 207893
|
| |
|
|
|
|
|
|
|
| |
Naming the destructor using a typedef-name for the class-name is
well-formed.
This fixes PR19620.
llvm-svn: 207892
|
| |
|
|
|
|
|
|
| |
apply the NRVO candidate flag to all possible NRVO candidates here, and remove the flags in computeNRVO or upon template instantiation. A variable now has NRVO applied if and only if every return statement in that scope returns that variable. This is nearly optimal.
Performs NRVO roughly 7% more often in a bootstrap build of clang. Patch co-authored by Richard Smith.
llvm-svn: 207890
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Passing objects directly (in registers or memory) creates a second copy
of the object in the callee. The callee always destroys its copy, but
we also have to destroy any temporary created in the caller. In other
words, copy elision of these kinds of objects is impossible.
Objects larger than 8 bytes with non-trivial dtors and trivial copy
ctors are still passed indirectly, and we can still elide copies of
them.
Fixes PR19640.
llvm-svn: 207889
|
| |
|
|
|
|
|
|
|
|
|
| |
condition to a constant and emit only the relevant statement. In that
case, we were previously creating the epilog jump destination, a cleanup
scope, and emitting any condition variable into it. Instead, we can emit
the condition variable (if we have one) into the cleanup scope used for
the entire folded case sequence. We avoid creating a jump dest, a basic
block, and an extra cleanup scope. Win!
llvm-svn: 207888
|
| |
|
|
| |
llvm-svn: 207883
|
| |
|
|
|
|
|
| |
We were synthesizing new arguments from e.g. '/Tcfile.c' arguments,
but didn't handle ownership correctly.
llvm-svn: 207880
|
| |
|
|
|
|
|
|
|
| |
whole code would be better with std::unique_ptr managing the lifetimes
of the handlers, but I wanted to make a targeted fix to the leaks first.
With this change, all of the Clang preprocessor tests are leak free with
LSan.
llvm-svn: 207872
|
| |
|
|
| |
llvm-svn: 207870
|
| |
|
|
|
|
| |
VarDecl.
llvm-svn: 207867
|
| |
|
|
|
|
| |
PR19568
llvm-svn: 207858
|
| |
|
|
| |
llvm-svn: 207854
|
| |
|
|
| |
llvm-svn: 207852
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
@interface BSApplicationController () {
@private
id _extraIvar;
}
@end
After:
@interface BSApplicationController ()
{
@private
id _extraIvar;
}
@end
llvm-svn: 207849
|
| |
|
|
| |
llvm-svn: 207848
|
| |
|
|
| |
llvm-svn: 207842
|
| |
|
|
| |
llvm-svn: 207841
|
| |
|
|
|
|
| |
range accessor in addition to the iterators. Updated code using iterators to use range-based for loops.
llvm-svn: 207837
|
| |
|
|
|
|
| |
No functional changes intended.
llvm-svn: 207836
|
| |
|
|
|
|
| |
Also add basic cpp ABI tests where they differ from C ABI output.
llvm-svn: 207834
|
| |
|
|
| |
llvm-svn: 207833
|
| |
|
|
|
|
|
| |
This includes the addition of the virtual function:
TargetCodeGenInfo::EmitTargetMD()
llvm-svn: 207832
|
| |
|
|
|
|
|
| |
ACLE adds the __sevl() extension. Rename the hint from a custom name to the
ACLE specified name.
llvm-svn: 207829
|
| |
|
|
|
|
| |
Landing this separately to make the previous commits easy to follow at home.
llvm-svn: 207826
|
| |
|
|
|
|
|
|
| |
The Preprocessor::Initialize() function already offers a clear interface to
achieve this, further reducing the confusing number of states a newly
constructed preprocessor can have.
llvm-svn: 207825
|
| |
|
|
|
|
|
| |
Preprocessor::enableIncrementalProcessing() provides a consistent interface to
enable the feature.
llvm-svn: 207824
|
| |
|
|
|
|
|
|
|
| |
These calls to ConsumeCodeCompletionToken() caused parsing to continue
needlessly when an immediate cutOffParsing() would do.
Document the function to clarify its correct usage.
llvm-svn: 207823
|
| |
|
|
|
|
|
|
|
|
|
| |
class template member classes (PR19613)
Also improve this code in general by implementing suggestions
from Richard.
Differential Revision: http://reviews.llvm.org/D3555?id=9020
llvm-svn: 207822
|
| |
|
|
| |
llvm-svn: 207820
|
| |
|
|
|
|
|
|
| |
dependent-type-member-pointer.cpp is failing on a win64 bot because
-fms-extensions is not enabled. Use ConvertType rather than relying on
the inheritance attributes. It's less code, but probably slower.
llvm-svn: 207819
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The Win64 ABI docs on MSDN say that arguments bigger than 8 bytes are
passed by reference. Prior to this change, we were only applying this
logic to RecordType arguments. This affects both the Itanium and
Microsoft C++ ABIs.
Reviewers: majnemer
Differential Revision: http://reviews.llvm.org/D3587
llvm-svn: 207817
|
| |
|
|
|
|
|
|
|
| |
This code is trying to test if the pointer is *not* null. Therefore we
should use 'or' instead of 'and' to combine the results of 'icmp ne'.
This logic is consistent with the general member pointer comparison code
in EmitMemberPointerComparison.
llvm-svn: 207815
|
| |
|
|
|
|
|
| |
Also, it uses libc++abi and needs pthread. While there, fix the libc++
include path. Patch by Patrick Wildt!
llvm-svn: 207813
|
| |
|
|
|
|
| |
Patrick Wildt!
llvm-svn: 207812
|
| |
|
|
|
|
| |
Code review feedback from Reid Kleckner on r207806.
llvm-svn: 207811
|
| |
|
|
| |
llvm-svn: 207806
|
| |
|
|
|
|
|
|
| |
order by the number of missing or extra parameters. This is useful if
there are more than a few overload candidates with arity mismatches,
particularly in the presence of -fshow-overloads=best.
llvm-svn: 207796
|
| |
|
|
|
|
|
|
| |
Enclosing the original #include directive inside #if 0 adds lines,
so warning/errors messages would have the line number off in
"In file included from <file>:<line>:", so add line marker to fix this.
llvm-svn: 207795
|
| |
|
|
|
|
| |
Similar to r207764.
llvm-svn: 207794
|
| |
|
|
| |
llvm-svn: 207781
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Previously, we would generate a single name for all reference
temporaries and allow LLVM to rename them for us. Instead, number the
reference temporaries as we build them in Sema.
Reviewers: rsmith
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D3554
llvm-svn: 207776
|
| |
|
|
| |
llvm-svn: 207775
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We accept 'void *p; p->~void();' for MSVC compatibility since r148682.
However, we were returning ExprError, rather than producing an AST,
despite only diagnosing it with a warning. CodeGen noticed that the
template function specialization had an invalid AST, and therefore
didn't generate code for it. This change makes us produce an AST with a
void pseudo-dtor call.
Part of PR18256.
llvm-svn: 207771
|
| |
|
|
|
|
|
| |
After Diego added support for -Rpass=inliner we have now in-tree remarks which
we can use to properly test this feature.
llvm-svn: 207765
|