<?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 update-scev.ll</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>1db2551c - [NewPM] Rename &apos;unswitch&apos; to &apos;simple-loop-unswitch&apos; in PassRegistry</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/SimpleLoopUnswitch/update-scev.ll#1db2551c</link>
        <description>[NewPM] Rename &apos;unswitch&apos; to &apos;simple-loop-unswitch&apos; in PassRegistryIt is confusing to have two ways of specifying the same pass(&apos;simple-loop-unswitch&apos; and &apos;unswitch&apos;). This patch replaces&apos;unswitch&apos; by &apos;simple-loop-unswitch&apos; to get a unique identifier.Using &apos;simple-loop-unswitch&apos; instead of &apos;unswitch&apos; also has theadvantage of matching how the pass is named in DEBUG_TYPE etc. Sothis makes it a bit more consistent how we refer to the pass inoptions such as -passes, -print-after and -debug-only.Reviewed By: aeubanksDifferential Revision: https://reviews.llvm.org/D105628

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/SimpleLoopUnswitch/update-scev.ll</description>
        <pubDate>Thu, 08 Jul 2021 12:12:19 +0000</pubDate>
        <dc:creator>Bjorn Pettersson &lt;bjorn.a.pettersson@ericsson.com&gt;</dc:creator>
    </item>
<item>
        <title>7425179f - [LoopPassManager + MemorySSA] Only enable use of MemorySSA for LPMs known to preserve it.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/SimpleLoopUnswitch/update-scev.ll#7425179f</link>
        <description>[LoopPassManager + MemorySSA] Only enable use of MemorySSA for LPMs known to preserve it.Summary:Add a flag to the FunctionToLoopAdaptor that allows enabling MemorySSA only for the loop pass managers that are known to preserve it.If an LPM is known to have only loop transforms that *all* preserve MemorySSA, then use MemorySSA if `EnableMSSALoopDependency` is set.If an LPM has loop passes that do not preserve MemorySSA, then the flag passed is `false`, regardless of the value of `EnableMSSALoopDependency`.When using a custom loop pass pipeline via `passes=...`, use keyword `loop` vs `loop-mssa` to use MemorySSA in that LPM. If a loop that does not preserve MemorySSA is added while using the `loop-mssa` keyword, that&apos;s an error.Add the new `loop-mssa` keyword to a few tests where a difference occurs when enabling MemorySSA.Reviewers: chandlercSubscribers: mehdi_amini, Prazek, george.burgess.iv, sanjoy.google, llvm-commitsTags: #llvmDifferential Revision: https://reviews.llvm.org/D66376llvm-svn: 369548

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/SimpleLoopUnswitch/update-scev.ll</description>
        <pubDate>Wed, 21 Aug 2019 17:00:57 +0000</pubDate>
        <dc:creator>Alina Sbirlea &lt;asbirlea@google.com&gt;</dc:creator>
    </item>
<item>
        <title>40a3b961 - [NewPM] Add Option handling for SimpleLoopUnswitch</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/SimpleLoopUnswitch/update-scev.ll#40a3b961</link>
        <description>[NewPM] Add Option handling for SimpleLoopUnswitchThis patch enables passing options to SimpleLoopUnswitch via the passes pipeline.Reviewers: chandlerc, fedor.sergeev, leonardchan, philip.pfaffeReviewed By: fedor.sergeevSubscribers: llvm-commitsDifferential Revision: https://reviews.llvm.org/D60676llvm-svn: 358880

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/SimpleLoopUnswitch/update-scev.ll</description>
        <pubDate>Mon, 22 Apr 2019 10:35:07 +0000</pubDate>
        <dc:creator>Serguei Katkov &lt;serguei.katkov@azul.com&gt;</dc:creator>
    </item>
<item>
        <title>cee313d2 - Revert &quot;Temporarily Revert &quot;Add basic loop fusion pass.&quot;&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/SimpleLoopUnswitch/update-scev.ll#cee313d2</link>
        <description>Revert &quot;Temporarily Revert &quot;Add basic loop fusion pass.&quot;&quot;The reversion apparently deleted the test/Transforms directory.Will be re-reverting again.llvm-svn: 358552

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/SimpleLoopUnswitch/update-scev.ll</description>
        <pubDate>Wed, 17 Apr 2019 04:52:47 +0000</pubDate>
        <dc:creator>Eric Christopher &lt;echristo@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>a2eebb82 - Update MemorySSA in SimpleLoopUnswitch.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/SimpleLoopUnswitch/update-scev.ll#a2eebb82</link>
        <description>Update MemorySSA in SimpleLoopUnswitch.Summary:Teach SimpleLoopUnswitch to preserve MemorySSA.Subscribers: sanjoy, jlebar, Prazek, george.burgess.iv, llvm-commitsDifferential Revision: https://reviews.llvm.org/D47022llvm-svn: 348263

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/SimpleLoopUnswitch/update-scev.ll</description>
        <pubDate>Tue, 04 Dec 2018 14:23:37 +0000</pubDate>
        <dc:creator>Alina Sbirlea &lt;asbirlea@google.com&gt;</dc:creator>
    </item>
<item>
        <title>47dc3a34 - [PM/Unswitch] Fix a collection of closely related issues with trivial</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/SimpleLoopUnswitch/update-scev.ll#47dc3a34</link>
        <description>[PM/Unswitch] Fix a collection of closely related issues with trivialswitch unswitching.The core problem was that the way we handled unswitching trivial exitedges through the default successor of a switch. For some reasonI thought the right way to do this was to add a block containingunreachable and point the default successor at this block. Inretrospect, this has an amazing number of problems.The first issue is the one that this pass has always worked around -- wehave to *detect* such edges and avoid unswitching them again. Thisseemed pretty easy really. You juts look for an edge to a blockcontaining unreachable. However, this pattern is woefully unsound. Somany things can break it. The amazing thing is that I found a test casewhere *simple-loop-unswitch itself* breaks this! When we doa *non-trivial* unswitch of a switch we will end up splitting this exitedge. The result will be a default successor that is an exit andterminates in ... a perfectly normal branch. So the first test case thatI started trying to fix is added to the nontrivial test cases. This isa ridiculous example that did just amazing things previously. With justunswitch, it would create 10+ copies of this stuff stamped out. But ifyou combine it *just right* with a bunch of other passes (likesimplify-cfg, loop rotate, and some LICM) you can get it to do thisinfinitely. Or at least, I never got it to finish. =[This, in turn, uncovered another related issue. When we are manipulatingthese switches after doing a trivial unswitch we never correctly updatedPHI nodes to reflect our edits. As soon as I started changing how theseedges were managed, it became obvious there were more issues thatI couldn&apos;t realistically leave unaddressed, so I wrote more test casesaround PHI updates here and ensured all of that works now.And this, in turn, required some adjustment to how we collect and managethe exit successor when it is the default successor. That showed a clearbug where we failed to include it in our search for the outer-most loopreached by an unswitched exit edge. This was actually already tested andthe test case didn&apos;t work. I (wrongly) thought that was due to SCEVfailing to analyze the switch. In fact, it was just a simple bug in thecode that skipped the default successor. While changing this, I handledit correctly and have updated the test to reflect that we now getprecise SCEV analysis of trip counts for the outer loop in one of thesecases.llvm-svn: 336646

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/SimpleLoopUnswitch/update-scev.ll</description>
        <pubDate>Tue, 10 Jul 2018 08:36:05 +0000</pubDate>
        <dc:creator>Chandler Carruth &lt;chandlerc@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>3897ded6 - [PM/LoopUnswitch] Fix PR37651 by correctly invalidating SCEV when</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/SimpleLoopUnswitch/update-scev.ll#3897ded6</link>
        <description>[PM/LoopUnswitch] Fix PR37651 by correctly invalidating SCEV whenunswitching loops.Original patch trying to address this was sent in D47624, but thatdidn&apos;t quite handle things correctly. There are two key principles usedto select whether and how to invalidate SCEV-cached information aboutloops:1) We must invalidate any info SCEV has cached before unswitching as we   may change (or destroy) the loop structure by the act of unswitching,   and make it hard to recover everything we want to invalidate within   SCEV.2) We need to invalidate all of the loops whose CFGs are mutated by the   unswitching. Notably, this isn&apos;t the *entire* loop nest, this is   every loop contained by the outermost loop reached by an exit block   relevant to the unswitch.And we need to do this even when doing trivial unswitching.I&apos;ve added more focused tests that directly check that SCEV starts offwith imprecise information and after unswitching (and simplifyinginstructions) re-querying SCEV will produce precise information. Thesetests also specifically work to check that an *outer* loop&apos;s informationbecomes precise.However, the testing here is still a bit imperfect. Crafting test casesthat reliably fail to be analyzed by SCEV before unswitching and succeedafterward proved ... very, very hard. It took me several hours andcareful work to build these, and I&apos;m not optimistic about necessarilycoming up with more to cover more elaborate possibilities. Fortunately,the code pattern we are testing here in the pass is reallystraightforward and reliable.Thanks to Max Kazantsev for the initial work on this as well as thereview, and to Hal Finkel for helping me talk through approaches to testthis stuff even if it didn&apos;t come to much.Differential Revision: https://reviews.llvm.org/D47624llvm-svn: 336183

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/SimpleLoopUnswitch/update-scev.ll</description>
        <pubDate>Tue, 03 Jul 2018 09:13:27 +0000</pubDate>
        <dc:creator>Chandler Carruth &lt;chandlerc@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
