]> granicus.if.org Git - clang/commit
Implement a simple form of the C++ named return value optimization for
authorDouglas Gregor <dgregor@apple.com>
Sat, 15 May 2010 06:46:45 +0000 (06:46 +0000)
committerDouglas Gregor <dgregor@apple.com>
Sat, 15 May 2010 06:46:45 +0000 (06:46 +0000)
commitd86c477fb5d3fc34864afecbbb5443da9355e8fb
tree43c06bb0a10f4cce71fbd57c3b2d8d97e7acae20
parent5077c3876beeaed32280af88244e8050078619a8
Implement a simple form of the C++ named return value optimization for
return statements. We perform NRVO only when all of the return
statements in the function return the same variable. Fixes some link
failures in Boost.Interprocess (which is relying on NRVO), and
probably improves performance for some C++ applications.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103867 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CGDecl.cpp
lib/CodeGen/CGStmt.cpp
lib/Sema/SemaStmt.cpp
test/CodeGenCXX/nrvo.cpp [new file with mode: 0644]