summaryrefslogtreecommitdiff
path: root/clang/test/CodeGen/nrvo-tracking.cpp
AgeCommit message (Collapse)Author
2022-04-11[test] Remove references to -fexperimental-new-pass-manager in testsArthur Eubanks
This has been the default for a while and we're in the process of removing the legacy PM optimization pipeline.
2022-01-16[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and ↵hyeongyu kim
turn it off by default Turning on `enable_noundef_analysis` flag allows better codegen by removing freeze instructions. I modified clang by renaming `enable_noundef_analysis` flag to `disable-noundef-analysis` and turning it off by default. Test updates are made as a separate patch: D108453 Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D105169
2021-11-09Revert "[Clang/Test]: Rename enable_noundef_analysis to ↵hyeongyu kim
disable-noundef-analysis and turn it off by default" This reverts commit aacfbb953eb705af2ecfeb95a6262818fa85dd92. Revert "Fix lit test failures in CodeGenCoroutines" This reverts commit 63fff0f5bffe20fa2c84a45a41161afa0043cb34.
2021-11-06[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and ↵hyeongyukim
turn it off by default Turning on `enable_noundef_analysis` flag allows better codegen by removing freeze instructions. I modified clang by renaming `enable_noundef_analysis` flag to `disable-noundef-analysis` and turning it off by default. Test updates are made as a separate patch: D108453 Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D105169 [Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default (2) This patch updates test files after D105169. Autogenerated test codes are changed by `utils/update_cc_test_checks.py,` and non-autogenerated test codes are changed as follows: (1) I wrote a python script that (partially) updates the tests using regex: {F18594904} The script is not perfect, but I believe it gives hints about which patterns are updated to have `noundef` attached. (2) The remaining tests are updated manually. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D108453 Resolve lit failures in clang after 8ca4b3e's land Fix lit test failures in clang-ppc* and clang-x64-windows-msvc Fix missing failures in clang-ppc64be* and retry fixing clang-x64-windows-msvc Fix internal_clone(aarch64) inline assembly
2021-11-06Revert "[Clang/Test]: Rename enable_noundef_analysis to ↵Juneyoung Lee
disable-noundef-analysis and turn it off by default" This reverts commit 7584ef766a7219b6ee5a400637206d26e0fa98ac.
2021-11-06[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and ↵Juneyoung Lee
turn it off by default Turning on `enable_noundef_analysis` flag allows better codegen by removing freeze instructions. I modified clang by renaming `enable_noundef_analysis` flag to `disable-noundef-analysis` and turning it off by default. Test updates are made as a separate patch: D108453 Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D105169
2021-10-18Revert D105169 due to the two-stage failure in ASANJuneyoung Lee
This reverts the following commits: 37ca7a795b277c20c02a218bf44052278c03344b 9aa6c72b92b6c89cc6d23b693257df9af7de2d15 705387c5074bcca36d626882462ebbc2bcc3bed4 8ca4b3ef19fe82d7ad6a6e1515317dcc01b41515 80dba72a669b5416e97a42fd2c2a7bc5a6d3f44a
2021-10-16[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and ↵Juneyoung Lee
turn it off by default (2) This patch updates test files after D105169. Autogenerated test codes are changed by `utils/update_cc_test_checks.py,` and non-autogenerated test codes are changed as follows: (1) I wrote a python script that (partially) updates the tests using regex: {F18594904} The script is not perfect, but I believe it gives hints about which patterns are updated to have `noundef` attached. (2) The remaining tests are updated manually. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D108453
2021-09-21[clang] don't mark as Elidable CXXConstruct expressions used in NRVOMatheus Izvekov
See PR51862. The consumers of the Elidable flag in CXXConstructExpr assume that an elidable construction just goes through a single copy/move construction, so that the source object is immediately passed as an argument and is the same type as the parameter itself. With the implementation of P2266 and after some adjustments to the implementation of P1825, we started (correctly, as per standard) allowing more cases where the copy initialization goes through user defined conversions. With this patch we stop using this flag in NRVO contexts, to preserve code that relies on that assumption. This causes no known functional changes, we just stop firing some asserts in a cople of included test cases. Reviewed By: rsmith Differential Revision: https://reviews.llvm.org/D109800
2021-07-07[clang] fixes named return of variables with dependent alignmentMatheus Izvekov
Named return of a variable with aligned attribute would trip an assert in case alignment was dependent. Signed-off-by: Matheus Izvekov <mizvekov@gmail.com> Reviewed By: rsmith Differential Revision: https://reviews.llvm.org/D105380
2021-07-06Revert "[clang] fixes named return of variables with dependent alignment"Adrian Kuegel
This reverts commit 21106388eb96c87b3f580c42a322c76a61605261. It causes a segfault in certain cases.
2021-07-06[clang] fixes named return of variables with dependent alignmentMatheus Izvekov
Named return of a variable with aligned attribute would trip an assert in case alignment was dependent. Signed-off-by: Matheus Izvekov <mizvekov@gmail.com> Reviewed By: rsmith Differential Revision: https://reviews.llvm.org/D105380
2021-06-17[clang] NRVO: Improvements and handling of more cases.Matheus Izvekov
This expands NRVO propagation for more cases: Parse analysis improvement: * Lambdas and Blocks with dependent return type can have their variables marked as NRVO Candidates. Variable instantiation improvements: * Fixes crash when instantiating NRVO variables in Blocks. * Functions, Lambdas, and Blocks which have auto return type have their variables' NRVO status propagated. For Blocks with non-auto return type, as a limitation, this propagation does not consider the actual return type. This also implements exclusion of VarDecls which are references to dependent types. Signed-off-by: Matheus Izvekov <mizvekov@gmail.com> Reviewed By: Quuxplusone Differential Revision: https://reviews.llvm.org/D99696
2021-06-14Revert "[clang] NRVO: Improvements and handling of more cases."Hans Wennborg
This change caused build errors related to move-only __block variables, see discussion on https://reviews.llvm.org/D99696 > This expands NRVO propagation for more cases: > > Parse analysis improvement: > * Lambdas and Blocks with dependent return type can have their variables > marked as NRVO Candidates. > > Variable instantiation improvements: > * Fixes crash when instantiating NRVO variables in Blocks. > * Functions, Lambdas, and Blocks which have auto return type have their > variables' NRVO status propagated. For Blocks with non-auto return type, > as a limitation, this propagation does not consider the actual return > type. > > This also implements exclusion of VarDecls which are references to > dependent types. > > Signed-off-by: Matheus Izvekov <mizvekov@gmail.com> > > Reviewed By: Quuxplusone > > Differential Revision: https://reviews.llvm.org/D99696 This also reverts the follow-on change which was hard to tease apart form the one above: > "[clang] Implement P2266 Simpler implicit move" > > This Implements [[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2266r1.html|P2266 Simpler implicit move]]. > > Signed-off-by: Matheus Izvekov <mizvekov@gmail.com> > > Reviewed By: Quuxplusone > > Differential Revision: https://reviews.llvm.org/D99005 This reverts commits 1e50c3d785f4563873ab1ce86559f2a1285b5678 and bf20631782183cd19e0bb7219e908c2bbb01a75f.
2021-06-12[clang] NRVO: Improvements and handling of more cases.Matheus Izvekov
This expands NRVO propagation for more cases: Parse analysis improvement: * Lambdas and Blocks with dependent return type can have their variables marked as NRVO Candidates. Variable instantiation improvements: * Fixes crash when instantiating NRVO variables in Blocks. * Functions, Lambdas, and Blocks which have auto return type have their variables' NRVO status propagated. For Blocks with non-auto return type, as a limitation, this propagation does not consider the actual return type. This also implements exclusion of VarDecls which are references to dependent types. Signed-off-by: Matheus Izvekov <mizvekov@gmail.com> Reviewed By: Quuxplusone Differential Revision: https://reviews.llvm.org/D99696
2021-06-10Revert "[clang] NRVO: Improvements and handling of more cases."Arthur Eubanks
This reverts commit 667fbcdd0b2ee5e78f5ce9789b862e3bbca94644. Causes crashes on a stage 2 build on Windows.
2021-06-10[clang] NRVO: Improvements and handling of more cases.Matheus Izvekov
This expands NRVO propagation for more cases: Parse analysis improvement: * Lambdas and Blocks with dependent return type can have their variables marked as NRVO Candidates. Variable instantiation improvements: * Fixes crash when instantiating NRVO variables in Blocks. * Functions, Lambdas, and Blocks which have auto return type have their variables' NRVO status propagated. For Blocks with non-auto return type, as a limitation, this propagation does not consider the actual return type. This also implements exclusion of VarDecls which are references to dependent types. Signed-off-by: Matheus Izvekov <mizvekov@gmail.com> Reviewed By: Quuxplusone Differential Revision: https://reviews.llvm.org/D99696
2021-04-09[clang] tests: cleanup, update and add some new onesMatheus Izvekov
This reworks a small set of tests, as preparatory work for implementing P2266. * Run for more standard versions, including c++2b. * Normalize file names and run commands. * Adds some extra tests. New Coroutine tests taken from Aaron Puchert's D68845. Signed-off-by: Matheus Izvekov <mizvekov@gmail.com> Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D99225