Go to file
Taiju Tsuiki b000a8860e Update NRVO logic to support early return (Attempt 2)
Summary:
This is the second attempt of r333500 (Update NRVO logic to support early return).
The previous one was reverted for a miscompilation for an incorrect NRVO set up on templates such as:
```
struct Foo {};

template <typename T>
T bar() {
  T t;
  if (false)
    return T();
  return t;
}
```

Where, `t` is marked as non-NRVO variable before its instantiation. However, while its instantiation, it's left an NRVO candidate, turned into an NRVO variable later.

Reviewers: rsmith

Reviewed By: rsmith

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D47586

llvm-svn: 335019
2018-06-19 04:39:07 +00:00
clang Update NRVO logic to support early return (Attempt 2) 2018-06-19 04:39:07 +00:00
clang-tools-extra Fix clangd test to pass when delayed template parsing is on by default 2018-06-18 18:55:10 +00:00
compiler-rt Fix bots after r334981 2018-06-19 02:56:24 +00:00
debuginfo-tests [debuginfo-tests] Always use the system python to invoke llgdb.py. 2018-06-10 19:38:26 +00:00
libclc Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
libcxx Fix libcxx tests after clang r334677. 2018-06-17 19:58:45 +00:00
libcxxabi Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
libunwind Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
lld [ELF] Uniquify --wrap list. 2018-06-18 22:32:15 +00:00
lldb Fix up Info.plist when building LLDB.framework with CMake 2018-06-19 02:59:30 +00:00
llgo Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
llvm [X86] Add the ability to force an EVEX2VEX mapping table entry from the .td files. Remove remaining manual table entries from the tablegen emitter. 2018-06-19 04:24:44 +00:00
openmp [OpenMP] Fix formatting issues in kmp_stats.h 2018-06-08 22:27:53 +00:00
parallel-libs Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
polly Adjust for clang-format changes 2018-06-18 13:01:52 +00:00
README.md

README.md

Low Level Virtual Machine (LLVM)

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.