Page MenuHomePhabricator

[clang] WIP: Implement simpler alternative to two-phase lookup for NRVO
Needs ReviewPublic

Authored by mizvekov on Apr 6 2021, 5:27 PM.
This revision needs review, but there are no reviewers specified.

Details

Reviewers
None
Summary

WIP, not ready for review.

Signed-off-by: Matheus Izvekov <mizvekov@gmail.com>

Diff Detail

Unit TestsFailed

TimeTest
40 msx64 debian > Clang.CXX/class/class_compare/class_compare_default::p4.cpp
Script: -- : 'RUN: at line 1'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/clang -cc1 -internal-isystem /var/lib/buildkite-agent/builds/llvm-project/build/lib/clang/13.0.0/include -nostdsysteminc -std=c++2a -verify /var/lib/buildkite-agent/builds/llvm-project/clang/test/CXX/class/class.compare/class.compare.default/p4.cpp
140 msx64 debian > Clang.CXX/class/class_init/class_copy_elision::p3.cpp
Script: -- : 'RUN: at line 1'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/clang -cc1 -internal-isystem /var/lib/buildkite-agent/builds/llvm-project/build/lib/clang/13.0.0/include -nostdsysteminc -std=c++2b -fsyntax-only -fcxx-exceptions -verify=expected,cxx11_2b,cxx2b /var/lib/buildkite-agent/builds/llvm-project/clang/test/CXX/class/class.init/class.copy.elision/p3.cpp
60 msx64 windows > Clang.SemaCXX::overload-call.cpp
Script: -- : 'RUN: at line 1'; c:\ws\w5\llvm-project\premerge-checks\build\bin\clang.exe -cc1 -internal-isystem c:\ws\w5\llvm-project\premerge-checks\build\lib\clang\13.0.0\include -nostdsysteminc -triple x86_64-pc-windows-gnu -pedantic -verify C:\ws\w5\llvm-project\premerge-checks\clang\test\SemaCXX\overload-call.cpp

Event Timeline

mizvekov created this revision.Apr 6 2021, 5:27 PM
mizvekov requested review of this revision.Apr 6 2021, 5:27 PM
Herald added a project: Restricted Project. · View Herald TranscriptApr 6 2021, 5:27 PM
Herald added a subscriber: cfe-commits. · View Herald Transcript
mizvekov retitled this revision from [clang] WIP: Implement simpler alternative to two-phase lookup for NRVO WIP, not ready for review. to [clang] WIP: Implement simpler alternative to two-phase lookup for NRVO.
mizvekov edited the summary of this revision. (Show Details)
mizvekov updated this revision to Diff 339035.Apr 20 2021, 4:24 PM

Initial implementation, still WIP.

mizvekov updated this revision to Diff 355393.Jun 29 2021, 4:16 PM

Patch now in workable state. Is Missing a few cleanups in the implementation.

Updates coroutine implicit move tests, as now they can finally match C++20 behavior and don't need P2266 retroactively applied.

There are some test result changes.
These all match current GCC behaviour though: We are now broken in the same way as GCC is for these.
TBD what to do about these. The ambiguous overload resolution one might be easy to solve,
the other ones have to be studied more carefully.