llvm-project/clang/lib/Sema
Nick Lewycky d78f92fbb2 Rewrite NRVO determination. Track NRVO candidates on the parser Scope and 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
2014-05-03 00:41:18 +00:00
..
AnalysisBasedWarnings.cpp Fix a bad interaction between -Wtautological-overlap-compare and delayed 2014-04-15 00:57:50 +00:00
AttributeList.cpp Remove uses of SmallString::equals in favor of SmallVectorImpl<char>'s operator== 2014-03-09 05:18:27 +00:00
CMakeLists.txt [CMake] Use LINK_LIBS instead of target_link_libraries(). 2014-02-26 06:41:29 +00:00
CodeCompleteConsumer.cpp Allow the computation of the base priority for a declaration code completion result to consider the completion context 2013-01-31 04:52:16 +00:00
DeclSpec.cpp Sema: Implement DR477 2014-04-30 18:24:01 +00:00
DelayedDiagnostic.cpp Squelch leak found by LSan by handling missing switch case. 2014-04-24 17:27:18 +00:00
IdentifierResolver.cpp [C++11] Replacing iterators redecls_begin() and redecls_end() with iterator_range redecls(). Updating all of the usages of the iterators with range-based for loops, which allows the begin/end forms to be removed entirely. 2014-03-06 23:45:36 +00:00
JumpDiagnostics.cpp [C++11] Replacing BlockDecl iterators capture_begin() and capture_end() with iterator_range captures(). Updating all of the usages of the iterators with range-based for loops. 2014-03-14 18:34:04 +00:00
Makefile
MultiplexExternalSemaSource.cpp Add hooks to ExternalSemaSource for after-the-fact diagnosis of 2013-08-12 22:11:14 +00:00
Scope.cpp Rewrite NRVO determination. Track NRVO candidates on the parser Scope and 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. 2014-05-03 00:41:18 +00:00
ScopeInfo.cpp [REFACTOR] Refactored some of the generic-lambda capturing code. 2013-12-07 20:22:44 +00:00
Sema.cpp [Sema] Adjust Sema::getCurBlock()/getCurLambda() to take into account that we may have 2014-04-26 18:29:13 +00:00
SemaAccess.cpp [C++11] Replacing CXXRecordDecl iterators friend_begin() and friend_end() with iterator_range friends(). Updating all of the usages of the iterators with range-based for loops. 2014-03-13 17:00:06 +00:00
SemaAttr.cpp [MS-ABI] Add support for #pragma section and related pragmas 2014-04-08 22:30:47 +00:00
SemaCXXScopeSpec.cpp Initial implementation of -modules-earch-all option, for searching for symbols in non-imported modules. 2014-04-23 12:57:01 +00:00
SemaCast.cpp AST: Mangle reference temporaries reliably 2014-05-01 17:50:17 +00:00
SemaChecking.cpp Updated the attribute tablegen emitter for variadic arguments to emit a range accessor in addition to the iterators. Updated code using iterators to use range-based for loops. 2014-05-02 13:35:42 +00:00
SemaCodeComplete.cpp Implement [over.match.oper]p3 properly, by filtering the non-candidates out 2014-04-17 01:52:14 +00:00
SemaConsumer.cpp
SemaDecl.cpp Rewrite NRVO determination. Track NRVO candidates on the parser Scope and 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. 2014-05-03 00:41:18 +00:00
SemaDeclAttr.cpp Add support for __declspec(thread) under -fms-extensions 2014-05-01 03:16:47 +00:00
SemaDeclCXX.cpp Rewrite NRVO determination. Track NRVO candidates on the parser Scope and 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. 2014-05-03 00:41:18 +00:00
SemaDeclObjC.cpp Initial implementation of -modules-earch-all option, for searching for symbols in non-imported modules. 2014-04-23 12:57:01 +00:00
SemaExceptionSpec.cpp When the exception specification for a function in an imported PCH or module is 2014-03-20 21:47:22 +00:00
SemaExpr.cpp AST: Mangle reference temporaries reliably 2014-05-01 17:50:17 +00:00
SemaExprCXX.cpp MSVCCompat: Don't produce an invalid AST when accepting void pseudo-dtors 2014-05-01 16:50:23 +00:00
SemaExprMember.cpp Initial implementation of -modules-earch-all option, for searching for symbols in non-imported modules. 2014-04-23 12:57:01 +00:00
SemaExprObjC.cpp Objective-C. Improve diagnosis of bridging types. 2014-04-29 16:12:56 +00:00
SemaFixItUtils.cpp PR17290: Use 'false' macro in fix-it hint for initializing a variable of type 2013-09-20 00:27:40 +00:00
SemaInit.cpp AST: Mangle reference temporaries reliably 2014-05-01 17:50:17 +00:00
SemaLambda.cpp [Sema] Adjust Sema::getCurBlock()/getCurLambda() to take into account that we may have 2014-04-26 18:29:13 +00:00
SemaLookup.cpp Quick fix for layering that broke shared library build. 2014-04-23 19:04:32 +00:00
SemaObjCProperty.cpp [MS-ABI] Add support for #pragma section and related pragmas 2014-04-08 22:30:47 +00:00
SemaOpenMP.cpp Initial implementation of -modules-earch-all option, for searching for symbols in non-imported modules. 2014-04-23 12:57:01 +00:00
SemaOverload.cpp Use std::abs(int) portably. 2014-05-01 23:01:41 +00:00
SemaPseudoObject.cpp Objective-C. Patch to allow use of dot syntax on class 2014-04-21 20:22:17 +00:00
SemaStmt.cpp Rewrite NRVO determination. Track NRVO candidates on the parser Scope and 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. 2014-05-03 00:41:18 +00:00
SemaStmtAsm.cpp [ms-inline asm] Don't diagnose an empty lookup for inline assmebly. This happen 2013-05-24 18:32:55 +00:00
SemaStmtAttr.cpp Distinguish between attributes explicitly written at the request of the user, and attributes implicitly generated to assist in bookkeeping by the compiler. This is done so by table generating a CreateImplicit method for each attribute. 2014-01-16 13:03:14 +00:00
SemaTemplate.cpp If we see an explicit instantiation declaration or definition of a function 2014-04-24 22:45:46 +00:00
SemaTemplateDeduction.cpp [C++11] Replacing CXXRecordDecl iterators bases_begin() and bases_end() with iterator_range bases(). Updating all of the usages of the iterators with range-based for loops. 2014-03-13 15:41:46 +00:00
SemaTemplateInstantiate.cpp If we see an explicit instantiation declaration or definition of a function 2014-04-24 22:45:46 +00:00
SemaTemplateInstantiateDecl.cpp Rewrite NRVO determination. Track NRVO candidates on the parser Scope and 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. 2014-05-03 00:41:18 +00:00
SemaTemplateVariadic.cpp Initial implementation of -modules-earch-all option, for searching for symbols in non-imported modules. 2014-04-23 12:57:01 +00:00
SemaType.cpp [ARM64] Add arm64_be where it was accidentally missed from a bunch of if-conditions. 2014-04-30 10:11:40 +00:00
TreeTransform.h Rewrite NRVO determination. Track NRVO candidates on the parser Scope and 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. 2014-05-03 00:41:18 +00:00
TypeLocBuilder.cpp Add missing file from r183563 (the recommit of 183466). 2013-06-07 20:33:10 +00:00
TypeLocBuilder.h Re-commit r183466 with a fix to make the TypeLoc casting machinery work 2013-06-07 20:31:48 +00:00