<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in nrvo.cpp</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>fec5ff2a - [Clang] [P2025] Analyze only potential scopes for NRVO</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp#fec5ff2a</link>
        <description>[Clang] [P2025] Analyze only potential scopes for NRVOBefore the patch we calculated the NRVO candidate looking at thevariable&apos;s whole enclosing scope. The research in [P2025] shows thatlooking at the variable&apos;s potential scope is better and covers morecases where NRVO would be safe and desirable.Many thanks to @Izaron for the original implementation.Reviewed By: ChuanqiXuDifferential Revision: https://reviews.llvm.org/D119792

            List of files:
            /llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp</description>
        <pubDate>Tue, 26 Jul 2022 10:56:04 +0000</pubDate>
        <dc:creator>Roman Rusyaev &lt;rusyaev.rm@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>532dc62b - [OpaquePtrs][Clang] Add -no-opaque-pointers to tests (NFC)</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp#532dc62b</link>
        <description>[OpaquePtrs][Clang] Add -no-opaque-pointers to tests (NFC)This adds -no-opaque-pointers to clang tests whose output willchange when opaque pointers are enabled by default. This isintended to be part of the migration approach described inhttps://discourse.llvm.org/t/enabling-opaque-pointers-by-default/61322/9.The patch has been produced by replacing %clang_cc1 with%clang_cc1 -no-opaque-pointers for tests that fail with opaquepointers enabled. Worth noting that this doesn&apos;t cover all tests,there&apos;s a remaining ~40 tests not using %clang_cc1 that will needa followup change.Differential Revision: https://reviews.llvm.org/D123115

            List of files:
            /llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp</description>
        <pubDate>Thu, 07 Apr 2022 10:03:55 +0000</pubDate>
        <dc:creator>Nikita Popov &lt;npopov@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>6ec79a15 - Remove -O1 from command line of nrvo.cpp</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp#6ec79a15</link>
        <description>Remove -O1 from command line of nrvo.cppAlso, check that NRVO currently isn&apos;t performed in test25. The checkswere accidentally removed when https://reviews.llvm.org/D122425 disabledinlining.

            List of files:
            /llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp</description>
        <pubDate>Tue, 29 Mar 2022 22:53:35 +0000</pubDate>
        <dc:creator>Akira Hatanaka &lt;ahatanaka@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>b6dab4eb - Pass -disable-llvm-passes to avoid running llvm passes</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp#b6dab4eb</link>
        <description>Pass -disable-llvm-passes to avoid running llvm passesDifferential Revision: https://reviews.llvm.org/D122425

            List of files:
            /llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp</description>
        <pubDate>Mon, 28 Mar 2022 18:14:44 +0000</pubDate>
        <dc:creator>Akira Hatanaka &lt;ahatanaka@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>3587b15a - [Clang] [P2025] More exhaustive tests for NRVO</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp#3587b15a</link>
        <description>[Clang] [P2025] More exhaustive tests for NRVOThis is a preliminary patch ahead of D119792 (I&apos;ll rebase that one on top of this).This shows what Clang&apos;s _current_ behaviour is for calculating NRVO in variouscommon cases. Then, in D119792 (and future patches), I&apos;ll be able to demostrateexactly how LLVM IR for each of these cases changes.Reviewed By: QuuxplusoneDifferential Revision: https://reviews.llvm.org/D119927

            List of files:
            /llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp</description>
        <pubDate>Wed, 16 Feb 2022 10:40:05 +0000</pubDate>
        <dc:creator>Evgeny Shulgin &lt;izaronplatz@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>eaac0e87 - [NFC][clang] Autogenerate checklines in CodeGenCXX/nrvo.cpp</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp#eaac0e87</link>
        <description>[NFC][clang] Autogenerate checklines in CodeGenCXX/nrvo.cppIt checks IR after optimizations, which is inherently fragile,and the results are now different after the recent patch.

            List of files:
            /llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp</description>
        <pubDate>Tue, 08 Feb 2022 15:27:29 +0000</pubDate>
        <dc:creator>Roman Lebedev &lt;lebedev.ri@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>1b1c8d83 - [Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp#1b1c8d83</link>
        <description>[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by defaultTurning 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: D108453Reviewed By: eugenisDifferential Revision: https://reviews.llvm.org/D105169

            List of files:
            /llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp</description>
        <pubDate>Sun, 16 Jan 2022 09:53:11 +0000</pubDate>
        <dc:creator>hyeongyu kim &lt;gusrb406@snu.ac.kr&gt;</dc:creator>
    </item>
<item>
        <title>fd9b0999 - Revert &quot;[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp#fd9b0999</link>
        <description>Revert &quot;[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default&quot;This reverts commit aacfbb953eb705af2ecfeb95a6262818fa85dd92.Revert &quot;Fix lit test failures in CodeGenCoroutines&quot;This reverts commit 63fff0f5bffe20fa2c84a45a41161afa0043cb34.

            List of files:
            /llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp</description>
        <pubDate>Mon, 08 Nov 2021 17:09:49 +0000</pubDate>
        <dc:creator>hyeongyu kim &lt;gusrb406@snu.ac.kr&gt;</dc:creator>
    </item>
<item>
        <title>aacfbb95 - [Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp#aacfbb95</link>
        <description>[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by defaultTurning 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: D108453Reviewed By: eugenisDifferential 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: eugenisDifferential Revision: https://reviews.llvm.org/D108453Resolve lit failures in clang after 8ca4b3e&apos;s landFix lit test failures in clang-ppc* and clang-x64-windows-msvcFix missing failures in clang-ppc64be* and retry fixing clang-x64-windows-msvcFix internal_clone(aarch64) inline assembly

            List of files:
            /llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp</description>
        <pubDate>Fri, 15 Oct 2021 10:26:07 +0000</pubDate>
        <dc:creator>hyeongyukim &lt;gusrb406@snu.ac.kr&gt;</dc:creator>
    </item>
<item>
        <title>89ad2822 - Revert &quot;[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp#89ad2822</link>
        <description>Revert &quot;[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default&quot;This reverts commit 7584ef766a7219b6ee5a400637206d26e0fa98ac.

            List of files:
            /llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp</description>
        <pubDate>Sat, 06 Nov 2021 06:39:19 +0000</pubDate>
        <dc:creator>Juneyoung Lee &lt;aqjune@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>7584ef76 - [Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp#7584ef76</link>
        <description>[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by defaultTurning 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: D108453Reviewed By: eugenisDifferential Revision: https://reviews.llvm.org/D105169

            List of files:
            /llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp</description>
        <pubDate>Sat, 06 Nov 2021 06:34:49 +0000</pubDate>
        <dc:creator>Juneyoung Lee &lt;aqjune@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>cb5a1019 - [test] Remove tests pinned to the legacy PM</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp#cb5a1019</link>
        <description>[test] Remove tests pinned to the legacy PMNow that the legacy PM is deprecated for the optimization pipeline, wecan start deleting legacy PM tests.For tests that test both PMs, merge the RUN lines.Delete tests specific to the legacy PM.

            List of files:
            /llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp</description>
        <pubDate>Mon, 18 Oct 2021 23:35:20 +0000</pubDate>
        <dc:creator>Arthur Eubanks &lt;aeubanks@google.com&gt;</dc:creator>
    </item>
<item>
        <title>f193bcc7 - Revert D105169 due to the two-stage failure in ASAN</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp#f193bcc7</link>
        <description>Revert D105169 due to the two-stage failure in ASANThis reverts the following commits:37ca7a795b277c20c02a218bf44052278c03344b9aa6c72b92b6c89cc6d23b693257df9af7de2d15705387c5074bcca36d626882462ebbc2bcc3bed48ca4b3ef19fe82d7ad6a6e1515317dcc01b4151580dba72a669b5416e97a42fd2c2a7bc5a6d3f44a

            List of files:
            /llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp</description>
        <pubDate>Mon, 18 Oct 2021 14:03:47 +0000</pubDate>
        <dc:creator>Juneyoung Lee &lt;aqjune@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>8ca4b3ef - [Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default (2)</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp#8ca4b3ef</link>
        <description>[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: eugenisDifferential Revision: https://reviews.llvm.org/D108453

            List of files:
            /llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp</description>
        <pubDate>Fri, 15 Oct 2021 10:45:30 +0000</pubDate>
        <dc:creator>Juneyoung Lee &lt;aqjune@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>fd739804 - [test] Add {{.*}} to make ELF tests immune to dso_local/dso_preemptable/(none) differences</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp#fd739804</link>
        <description>[test] Add {{.*}} to make ELF tests immune to dso_local/dso_preemptable/(none) differencesFor a default visibility external linkage definition, dso_local is set for ELF-fno-pic/-fpie and COFF and Mach-O. Since default clang -cc1 for ELF is similarto -fpic (&quot;PIC Level&quot; is not set), this nuance causes unneeded binary format differences.To make emitted IR similar, ELF -cc1 -fpic will default to -fno-semantic-interposition,which sets dso_local for default visibility external linkage definitions.To make this flip smooth and enable future (dso_local as definition default),this patch replaces (function) `define ` with `define{{.*}} `,(variable/constant/alias) `= ` with `={{.*}} `, or inserts appropriate `{{.*}} `.

            List of files:
            /llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp</description>
        <pubDate>Thu, 31 Dec 2020 08:27:11 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>69cd776e - [CodeGen] Apply &apos;nonnull&apos; and &apos;dereferenceable(N)&apos; to &apos;this&apos; pointer</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp#69cd776e</link>
        <description>[CodeGen] Apply &apos;nonnull&apos; and &apos;dereferenceable(N)&apos; to &apos;this&apos; pointerarguments.* Adds &apos;nonnull&apos; and &apos;dereferenceable(N)&apos; to &apos;this&apos; pointer arguments* Gates &apos;nonnull&apos; on -f(no-)delete-null-pointer-checks* Introduces this-nonnull.cpp and microsoft-abi-this-nullable.cpp tests to  explicitly test the behavior of this change* Refactors hundreds of over-constrained clang tests to permit these  attributes, where needed* Updates Clang12 patch notes mentioning this changeReviewed-by: rsmith, jdoerfertDifferential Revision: https://reviews.llvm.org/D17993

            List of files:
            /llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp</description>
        <pubDate>Mon, 16 Nov 2020 23:04:55 +0000</pubDate>
        <dc:creator>CJ Johnson &lt;johnsoncj@google.com&gt;</dc:creator>
    </item>
<item>
        <title>790878f2 - [NFC][clang] Adjust test/CodeGenCXX/nrvo.cpp after 03127f795b8244c1039c18d4391374707a3dc75e</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp#790878f2</link>
        <description>[NFC][clang] Adjust test/CodeGenCXX/nrvo.cpp after 03127f795b8244c1039c18d4391374707a3dc75e

            List of files:
            /llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp</description>
        <pubDate>Mon, 17 Aug 2020 21:57:35 +0000</pubDate>
        <dc:creator>Roman Lebedev &lt;lebedev.ri@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>ae7f0881 - [InstCombine] Aggregate reconstruction simplification (PR47060)</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp#ae7f0881</link>
        <description>[InstCombine] Aggregate reconstruction simplification (PR47060)This pattern happens in clang C++ exception lowering code, on unwind branch.We end up having a `landingpad` block after each `invoke`, where RAIIcleanup is performed, and the elements of an aggregate `{i8*, i32}`holding exception info are `extractvalue`&apos;d, and we then branch to common blockthat takes extracted `i8*` and `i32` elements (via `phi` nodes),form a new aggregate, and finally `resume`&apos;s the exception.The problem is that, if the cleanup block is effectively empty,it shouldn&apos;t be there, there shouldn&apos;t be that `landingpad` and `resume`,said `invoke` should be a  `call`.Indeed, we do that simplification in e.g. SimplifyCFG `SimplifyCFGOpt::simplifyResume()`.But the thing is, all this extra `extractvalue` + `phi` + `insertvalue` cruft,while it is pointless, does not look like &quot;empty cleanup block&quot;.So the `SimplifyCFGOpt::simplifyResume()` fails, and the exception is hashigher cost than it could have on unwind branch :SThis doesn&apos;t happen *that* often, but it will basically happen once per C++function with complex CFG that called more than one other functionthat isn&apos;t known to be `nounwind`.I think, this is a missing fold in InstCombine, so i&apos;ve implemented it.I think, the algorithm/implementation is rather self-explanatory:1. Find a chain of `insertvalue`&apos;s that fully tell us the initializer of the aggregate.2. For each element, try to find from which aggregate it was extracted.   If it was extracted from the aggregate with identical type,   from identical element index, great.3. If all elements were found to have been extracted from the same aggregate,   then we can just use said original source aggregate directly,   instead of re-creating it.4. If we fail to find said aggregate when looking only in the current block,   we need be PHI-aware - we might have different source aggregate when coming   from each predecessor.I&apos;m not sure if this already handles everything, and there are some FIXME&apos;s,i&apos;ll deal with all that later in followups.I&apos;d be fine with going with post-commit review here code-wise,but just in case there are thoughts, i&apos;m posting this.On RawSpeed, for example, this has the following effect:```| statistic name                                    | baseline | proposed |     &#916; |       % | abs(%) ||---------------------------------------------------|---------:|---------:|------:|--------:|-------:|| instcombine.NumAggregateReconstructionsSimplified |        0 |     1253 |  1253 |   0.00% |  0.00% || simplifycfg.NumInvokes                            |      948 |     1355 |   407 |  42.93% | 42.93% || instcount.NumInsertValueInst                      |     4382 |     3210 | -1172 | -26.75% | 26.75% || simplifycfg.NumSinkCommonCode                     |      574 |      458 |  -116 | -20.21% | 20.21% || simplifycfg.NumSinkCommonInstrs                   |     1154 |      921 |  -233 | -20.19% | 20.19% || instcount.NumExtractValueInst                     |    29017 |    26397 | -2620 |  -9.03% |  9.03% || instcombine.NumDeadInst                           |   166618 |   174705 |  8087 |   4.85% |  4.85% || instcount.NumPHIInst                              |    51526 |    50678 |  -848 |  -1.65% |  1.65% || instcount.NumLandingPadInst                       |    20865 |    20609 |  -256 |  -1.23% |  1.23% || instcount.NumInvokeInst                           |    34023 |    33675 |  -348 |  -1.02% |  1.02% || simplifycfg.NumSimpl                              |   113634 |   114708 |  1074 |   0.95% |  0.95% || instcombine.NumSunkInst                           |    15030 |    14930 |  -100 |  -0.67% |  0.67% || instcount.TotalBlocks                             |   219544 |   219024 |  -520 |  -0.24% |  0.24% || instcombine.NumCombined                           |   644562 |   645805 |  1243 |   0.19% |  0.19% || instcount.TotalInsts                              |  2139506 |  2135377 | -4129 |  -0.19% |  0.19% || instcount.NumBrInst                               |   156988 |   156821 |  -167 |  -0.11% |  0.11% || instcount.NumCallInst                             |  1206144 |  1207076 |   932 |   0.08% |  0.08% || instcount.NumResumeInst                           |     5193 |     5190 |    -3 |  -0.06% |  0.06% || asm-printer.EmittedInsts                          |   948580 |   948299 |  -281 |  -0.03% |  0.03% || instcount.TotalFuncs                              |    11509 |    11507 |    -2 |  -0.02% |  0.02% || inline.NumDeleted                                 |    97595 |    97597 |     2 |   0.00% |  0.00% || inline.NumInlined                                 |   210514 |   210522 |     8 |   0.00% |  0.00% |```So we manage to increase the amount of `invoke` -&gt; `call` conversions in SimplifyCFG by almost a half,and there is a very apparent decrease in instruction and basic block count.On vanilla llvm-test-suite:```| statistic name                                    | baseline | proposed |     &#916; |       % | abs(%) ||---------------------------------------------------|---------:|---------:|------:|--------:|-------:|| instcombine.NumAggregateReconstructionsSimplified |        0 |      744 |   744 |   0.00% |  0.00% || instcount.NumInsertValueInst                      |     2705 |     2053 |  -652 | -24.10% | 24.10% || simplifycfg.NumInvokes                            |     1212 |     1424 |   212 |  17.49% | 17.49% || instcount.NumExtractValueInst                     |    21681 |    20139 | -1542 |  -7.11% |  7.11% || simplifycfg.NumSinkCommonInstrs                   |    14575 |    14361 |  -214 |  -1.47% |  1.47% || simplifycfg.NumSinkCommonCode                     |     6815 |     6743 |   -72 |  -1.06% |  1.06% || instcount.NumLandingPadInst                       |    14851 |    14712 |  -139 |  -0.94% |  0.94% || instcount.NumInvokeInst                           |    27510 |    27332 |  -178 |  -0.65% |  0.65% || instcombine.NumDeadInst                           |  1438173 |  1443371 |  5198 |   0.36% |  0.36% || instcount.NumResumeInst                           |     2880 |     2872 |    -8 |  -0.28% |  0.28% || instcombine.NumSunkInst                           |    55187 |    55076 |  -111 |  -0.20% |  0.20% || instcount.NumPHIInst                              |   321366 |   320916 |  -450 |  -0.14% |  0.14% || instcount.TotalBlocks                             |   886816 |   886493 |  -323 |  -0.04% |  0.04% || instcount.TotalInsts                              |  7663845 |  7661108 | -2737 |  -0.04% |  0.04% || simplifycfg.NumSimpl                              |   886791 |   887171 |   380 |   0.04% |  0.04% || instcount.NumCallInst                             |   553552 |   553733 |   181 |   0.03% |  0.03% || instcombine.NumCombined                           |  3200512 |  3201202 |   690 |   0.02% |  0.02% || instcount.NumBrInst                               |   741794 |   741656 |  -138 |  -0.02% |  0.02% || simplifycfg.NumHoistCommonInstrs                  |    14443 |    14445 |     2 |   0.01% |  0.01% || asm-printer.EmittedInsts                          |  7978085 |  7977916 |  -169 |   0.00% |  0.00% || inline.NumDeleted                                 |    73188 |    73189 |     1 |   0.00% |  0.00% || inline.NumInlined                                 |   291959 |   291968 |     9 |   0.00% |  0.00% |```Roughly similar effect, less instructions and blocks total.See also: rGe492f0e03b01a5e4ec4b6333abb02d303c3e479e.Compile-time wise, this appears to be roughly geomean-neutral:http://llvm-compile-time-tracker.com/compare.php?from=39617aaed95ac00957979bc1525598c1be80e85e&amp;to=b59866cf30420da8f8e3ca239ed3bec577b23387&amp;stat=instructionsAnd this is a win size-wize in general:http://llvm-compile-time-tracker.com/compare.php?from=39617aaed95ac00957979bc1525598c1be80e85e&amp;to=b59866cf30420da8f8e3ca239ed3bec577b23387&amp;stat=size-textSee https://bugs.llvm.org/show_bug.cgi?id=47060Reviewed By: spatelDifferential Revision: https://reviews.llvm.org/D85787

            List of files:
            /llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp</description>
        <pubDate>Sun, 16 Aug 2020 20:27:56 +0000</pubDate>
        <dc:creator>Roman Lebedev &lt;lebedev.ri@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>62f3ef2b - [CGCall] Annotate references with &quot;align&quot; attribute.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp#62f3ef2b</link>
        <description>[CGCall] Annotate references with &quot;align&quot; attribute.If we&apos;re going to assume references are dereferenceable, we should alsoassume they&apos;re aligned: otherwise, we can&apos;t actually dereference them.See also D80072.Differential Revision: https://reviews.llvm.org/D80166

            List of files:
            /llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp</description>
        <pubDate>Mon, 18 May 2020 18:29:11 +0000</pubDate>
        <dc:creator>Eli Friedman &lt;efriedma@quicinc.com&gt;</dc:creator>
    </item>
<item>
        <title>dbc96b51 - Revert &quot;[CodeGenModule] Assume dso_local for -fpic -fno-semantic-interposition&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp#dbc96b51</link>
        <description>Revert &quot;[CodeGenModule] Assume dso_local for -fpic -fno-semantic-interposition&quot;This reverts commit 789a46f2d742e11edaade28cb59a0f4d2a1d770e.Accidentally committed.

            List of files:
            /llvm-project-15.0.7/clang/test/CodeGenCXX/nrvo.cpp</description>
        <pubDate>Mon, 03 Feb 2020 18:09:39 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;maskray@google.com&gt;</dc:creator>
    </item>
</channel>
</rss>
