llvm-project/clang/lib
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
..
ARCMigrate [objcmt] Revert r191796, it's not needed anymore. 2014-04-28 02:38:51 +00:00
AST Fix null pointer segfault when calling dump() on a DeclStmt containing a VarDecl. 2014-05-02 20:24:11 +00:00
ASTMatchers Add support for named values in the parser. 2014-04-14 13:51:21 +00:00
Analysis Remove unused typedef found by gcc's -Wunused-local-typedefs. 2014-05-02 21:22:21 +00:00
Basic Add support for -march=bdver4. 2014-05-02 15:47:51 +00:00
CodeGen MS ABI x64: Pass small objects with dtors but no copy ctors directly 2014-05-03 00:33:28 +00:00
Driver Fix clang-cl Driver leak 2014-05-02 22:55:30 +00:00
Edit [objcmt] Revert r191796, it's not needed anymore. 2014-04-28 02:38:51 +00:00
Format Fixes issue with Allman BreakBeforeBraces for Objective C @interface 2014-05-02 17:01:46 +00:00
Frontend Reformat code following Preprocessor constructor updates 2014-05-02 03:43:38 +00:00
FrontendTool Replace OwningPtr with std::unique_ptr. 2014-03-07 20:03:18 +00:00
Headers Let stddef.h respect __need_{wchar_t, size_t, NULL, ptrdiff_t, wint_t}. 2014-04-30 04:35:09 +00:00
Index Comment parsing: remove HTML attribute validation 2014-04-30 21:54:30 +00:00
Lex [leaks] Fix a leak recently introduced to the pragma handling. This 2014-05-02 21:44:48 +00:00
Parse 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
Rewrite write a line marker right before adding included file 2014-05-01 21:11:57 +00:00
Sema 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
Serialization AST: Mangle reference temporaries reliably 2014-05-01 17:50:17 +00:00
StaticAnalyzer 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
Tooling PR19601: std::remove_if does not really remove the elements. 2014-04-30 19:59:22 +00:00
CMakeLists.txt Fix dependencies now that the ARC migrator depends on the static analyzer. 2013-08-22 15:50:02 +00:00
Makefile Fix dependencies now that the ARC migrator depends on the static analyzer. 2013-08-22 15:50:02 +00:00