[llvm] r370957 - [MemorySSA] Re-enable MemorySSA use.

Alina Sbirlea via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 6 15:14:11 PDT 2019


Hi Mikael,

Thank you for the test!

The issue with both the previous failure and this one, is that, in the
absence of basicaa (-disable-basicaa), debug.value calls are treated as
Defs in MemorySSA, and they're non-memory touching instructions otherwise.
So there are a lot of places where we don't update MemorySSA when
debug.value calls are added or removed, because this wasn't necessary in
the regular scenarios.

For the crash.ll above, I sent out a patch that will solve it (D67296
<https://reviews.llvm.org/D67296>), but this is an issue that needs
addressing further.
e.g. insertDebugValuesForPHIs can add debug.value calls and does not
currently update MSSA.
If we use -disable-basicaa, you're bound to hit an assertion at some point,
because we don't update MSSA in there to add a new Def.
Conversely, if you use  -basicaa and try to create a new access for the
cloned debug.value calls, you'll hit an assertion because that's a
non-memory touching instruction.

An option to mitigate the two, is to special case debug info calls when
creating accesses in MSSA, and, regardless of AA's answer, do not consider
debug calls as memory touching. Similarly, when verifying MSSA, to bypass
these intrinsics.

+CC some folks who have more background and may have more to add on the
subject.

Alina

On Fri, Sep 6, 2019 at 1:49 AM Mikael Holmén <mikael.holmen at ericsson.com>
wrote:

> Hi again,
>
> Unfortunately, after some more testing I've stumbled upon this
> assertion instead:
>
> opt: ../lib/Analysis/MemorySSAUpdater.cpp:1078: void
> llvm::MemorySSAUpdater::applyInsertUpdates(ArrayRef<llvm::CFGUpdate>,
> llvm::DominatorTree &, const GraphDiff<llvm::BasicBlock *> *):
> Assertion `IDom && "Block must have a valid IDom."' failed.
>
> when I run:
>
>  opt -S -o - crash.ll -disable-basicaa -loop-rotate
>
> /Mikael
>
> On Fri, 2019-09-06 at 09:41 +0200, Mikael Holmén wrote:
> > Hi,
> >
> >
> > On Thu, 2019-09-05 at 09:25 -0700, Alina Sbirlea wrote:
> > > Hi Mikael,
> > >
> > > Thank you for reporting this issue.
> > > The issue appears to be that two calls to @llvm.dbg.value are
> > > merged
> > > into one when merging two blocks and MSSA is not "told" that an
> > > access is removed.
> > > Checked in the fix in r371084.
> > >
> >
> > Great! The crashes seems to be gone with the fix.
> >
> > Thank you,
> > Mikael
> >
> > > Thanks,
> > > Alina
> > >
> > >
> > > On Thu, Sep 5, 2019 at 3:00 AM Mikael Holmén <
> > > mikael.holmen at ericsson.com> wrote:
> > > > Hi Alina,
> > > >
> > > > We're seeing this failed assertion with this patch:
> > > >
> > > > opt: ../lib/Analysis/MemorySSA.cpp:1983: void
> > > > llvm::MemorySSA::verifyOrdering(llvm::Function &) const:
> > > > Assertion
> > > > `AL-
> > > > > size() == ActualAccesses.size() && "We don't have the same
> > > > > number
> > > >
> > > > of
> > > > accesses in the block as on the " "access list"' failed.
> > > >
> > > > when we do
> > > >
> > > > opt -S -o - mem.ll -disable-basicaa -loop-rotate
> > > >
> > > > Just looking quickly in the debugger I see
> > > >
> > > > (gdb) p AL->size()
> > > > $1 = 4
> > > > (gdb) p ActualAccesses.size()
> > > > $2 = 3
> > > >
> > > > I originally found this running fuzz tests with random comiler
> > > > flags
> > > > for my out-of-tree target, then I've bugpoint reduced the input
> > > > and
> > > > tried to reproduce it on trunk as well, so the input might be
> > > > weird,
> > > > but hopefully it's possible to make something out of it anyway.
> > > >
> > > > /Mikael
> > > >
> > > >
> > > > On Wed, 2019-09-04 at 19:16 +0000, Alina Sbirlea via llvm-commits
> > > > wrote:
> > > > > Author: asbirlea
> > > > > Date: Wed Sep  4 12:16:04 2019
> > > > > New Revision: 370957
> > > > >
> > > > > URL:
> > > > >
> > > >
> > > >
>
> https://protect2.fireeye.com/url?k=118d60b4-4d07aa6a-118d202f-86823e270a62-c84f23bab7bb3f2b&q=1&u=http%3A%2F%2Fllvm.org%2Fviewvc%2Fllvm-project%3Frev%3D370957%26view%3Drev
> > > > > Log:
> > > > > [MemorySSA] Re-enable MemorySSA use.
> > > > >
> > > > > Differential Revision:
> > > > >
> > > >
> > > >
>
> https://protect2.fireeye.com/url?k=61626bbe-3de8a160-61622b25-86823e270a62-8eda56b83091d815&q=1&u=https%3A%2F%2Freviews.llvm.org%2FD58311
> > > > >
> > > > > Modified:
> > > > >     llvm/trunk/lib/Analysis/MemorySSA.cpp
> > > > >     llvm/trunk/lib/Transforms/Utils/LoopUtils.cpp
> > > > >     llvm/trunk/test/CodeGen/PowerPC/sms-grp-order.ll
> > > > >     llvm/trunk/test/Other/opt-O2-pipeline.ll
> > > > >     llvm/trunk/test/Other/opt-O3-pipeline.ll
> > > > >     llvm/trunk/test/Other/opt-Os-pipeline.ll
> > > > >
> > > > > Modified: llvm/trunk/lib/Analysis/MemorySSA.cpp
> > > > > URL:
> > > > >
> > > >
> > > >
>
> https://protect2.fireeye.com/url?k=4d59b454-11d37e8a-4d59f4cf-86823e270a62-7a9a9b9527ff7f99&q=1&u=http%3A%2F%2Fllvm.org%2Fviewvc%2Fllvm-project%2Fllvm%2Ftrunk%2Flib%2FAnalysis%2FMemorySSA.cpp%3Frev%3D370957%26r1%3D370956%26r2%3D370957%26view%3Ddiff
> > > > >
> > > >
> > > > =================================================================
> > > > ==
> > > > ==
> > > > > =========
> > > > > --- llvm/trunk/lib/Analysis/MemorySSA.cpp (original)
> > > > > +++ llvm/trunk/lib/Analysis/MemorySSA.cpp Wed Sep  4 12:16:04
> > > >
> > > > 2019
> > > > > @@ -84,7 +84,7 @@ bool llvm::VerifyMemorySSA = false;
> > > > >  #endif
> > > > >  /// Enables memory ssa as a dependency for loop passes in
> > > > > legacy
> > > > > pass manager.
> > > > >  cl::opt<bool> llvm::EnableMSSALoopDependency(
> > > > > -    "enable-mssa-loop-dependency", cl::Hidden,
> > > > > cl::init(false),
> > > > > +    "enable-mssa-loop-dependency", cl::Hidden, cl::init(true),
> > > > >      cl::desc("Enable MemorySSA dependency for loop pass
> > > >
> > > > manager"));
> > > > >
> > > > >  static cl::opt<bool, true>
> > > > >
> > > > > Modified: llvm/trunk/lib/Transforms/Utils/LoopUtils.cpp
> > > > > URL:
> > > > >
> > > >
> > > >
>
> https://protect2.fireeye.com/url?k=82f40532-de7ecfec-82f445a9-86823e270a62-31d7364f85f60f93&q=1&u=http%3A%2F%2Fllvm.org%2Fviewvc%2Fllvm-project%2Fllvm%2Ftrunk%2Flib%2FTransforms%2FUtils%2FLoopUtils.cpp%3Frev%3D370957%26r1%3D370956%26r2%3D370957%26view%3Ddiff
> > > > >
> > > >
> > > > =================================================================
> > > > ==
> > > > ==
> > > > > =========
> > > > > --- llvm/trunk/lib/Transforms/Utils/LoopUtils.cpp (original)
> > > > > +++ llvm/trunk/lib/Transforms/Utils/LoopUtils.cpp Wed Sep  4
> > > >
> > > > 12:16:04
> > > > > 2019
> > > > > @@ -19,6 +19,7 @@
> > > > >  #include "llvm/Analysis/InstructionSimplify.h"
> > > > >  #include "llvm/Analysis/LoopInfo.h"
> > > > >  #include "llvm/Analysis/LoopPass.h"
> > > > > +#include "llvm/Analysis/MemorySSA.h"
> > > > >  #include "llvm/Analysis/MemorySSAUpdater.h"
> > > > >  #include "llvm/Analysis/MustExecute.h"
> > > > >  #include "llvm/Analysis/ScalarEvolution.h"
> > > > > @@ -170,6 +171,8 @@ void llvm::getLoopAnalysisUsage(Analysis
> > > > >    AU.addPreserved<SCEVAAWrapperPass>();
> > > > >    AU.addRequired<ScalarEvolutionWrapperPass>();
> > > > >    AU.addPreserved<ScalarEvolutionWrapperPass>();
> > > > > +  // FIXME: When all loop passes preserve MemorySSA, it can be
> > > > > required and
> > > > > +  // preserved here instead of the individual handling in each
> > > >
> > > > pass.
> > > > >  }
> > > > >
> > > > >  /// Manually defined generic "LoopPass" dependency
> > > >
> > > > initialization.
> > > > > This is used
> > > > > @@ -190,6 +193,7 @@ void llvm::initializeLoopPassPass(PassRe
> > > > >    INITIALIZE_PASS_DEPENDENCY(GlobalsAAWrapperPass)
> > > > >    INITIALIZE_PASS_DEPENDENCY(SCEVAAWrapperPass)
> > > > >    INITIALIZE_PASS_DEPENDENCY(ScalarEvolutionWrapperPass)
> > > > > +  INITIALIZE_PASS_DEPENDENCY(MemorySSAWrapperPass)
> > > > >  }
> > > > >
> > > > >  /// Create MDNode for input string.
> > > > >
> > > > > Modified: llvm/trunk/test/CodeGen/PowerPC/sms-grp-order.ll
> > > > > URL:
> > > > >
> > > >
> > > >
>
> https://protect2.fireeye.com/url?k=0057ee6d-5cdd24b3-0057aef6-86823e270a62-8405017b45a891b5&q=1&u=http%3A%2F%2Fllvm.org%2Fviewvc%2Fllvm-project%2Fllvm%2Ftrunk%2Ftest%2FCodeGen%2FPowerPC%2Fsms-grp-order.ll%3Frev%3D370957%26r1%3D370956%26r2%3D370957%26view%3Ddiff
> > > > >
> > > >
> > > > =================================================================
> > > > ==
> > > > ==
> > > > > =========
> > > > > --- llvm/trunk/test/CodeGen/PowerPC/sms-grp-order.ll (original)
> > > > > +++ llvm/trunk/test/CodeGen/PowerPC/sms-grp-order.ll Wed Sep  4
> > > > > 12:16:04 2019
> > > > > @@ -4,25 +4,24 @@
> > > > >
> > > > >  define void @lame_encode_buffer_interleaved()
> > > > > local_unnamed_addr
> > > >
> > > > {
> > > > >  ; CHECK-LABEL: lame_encode_buffer_interleaved:
> > > > > -; CHECK:       # %bb.0:
> > > > > -; CHECK-NEXT:    lhz 3, 0(0)
> > > > > -; CHECK-NEXT:    li 5, 1
> > > > > -; CHECK-NEXT:    sldi 5, 5, 62
> > > > > -; CHECK-NEXT:    lhz 4, 0(3)
> > > > > -; CHECK-NEXT:    mtctr 5
> > > > > -; CHECK-NEXT:    .p2align 5
> > > > > -; CHECK-NEXT:  .LBB0_1: #
> > > > > -; CHECK-NEXT:    extsh 3, 3
> > > > > -; CHECK-NEXT:    extsh 4, 4
> > > > > -; CHECK-NEXT:    srawi 3, 3, 1
> > > > > -; CHECK-NEXT:    addze 3, 3
> > > > > -; CHECK-NEXT:    srawi 4, 4, 1
> > > > > -; CHECK-NEXT:    addze 4, 4
> > > > > -; CHECK-NEXT:    bdnz .LBB0_1
> > > > > -; CHECK-NEXT:  # %bb.2:
> > > > > -; CHECK-NEXT:    sth 3, 0(0)
> > > > > -; CHECK-NEXT:    sth 4, 0(3)
> > > > > -; CHECK-NEXT:    blr
> > > > > +; CHECK:      # %bb.0:
> > > > > +; CHECK-NEXT:   lha 3, 0(3)
> > > > > +; CHECK-NEXT:   li 5, 1
> > > > > +; CHECK-NEXT:   sldi 5, 5, 62
> > > > > +; CHECK-NEXT:   lhz 4, 0(0)
> > > > > +; CHECK-NEXT:   mtctr 5
> > > > > +; CHECK-NEXT:   srawi 3, 3, 1
> > > > > +; CHECK-NEXT:   addze 3, 3
> > > > > +; CHECK-NEXT:   .p2align 4
> > > > > +; CHECK-NEXT: .LBB0_1:
> > > > > +; CHECK-NEXT:   extsh 4, 4
> > > > > +; CHECK-NEXT:   srawi 4, 4, 1
> > > > > +; CHECK-NEXT:   addze 4, 4
> > > > > +; CHECK-NEXT:   bdnz .LBB0_1
> > > > > +; CHECK-NEXT: # %bb.2:
> > > > > +; CHECK-NEXT:   sth 4, 0(0)
> > > > > +; CHECK-NEXT:   sth 3, 0(3)
> > > > > +; CHECK-NEXT:   blr
> > > > >    br label %1
> > > > >
> > > > >  1:                                                ; preds =
> > > > > %1,
> > > >
> > > > %0
> > > > >
> > > > > Modified: llvm/trunk/test/Other/opt-O2-pipeline.ll
> > > > > URL:
> > > > >
> > > >
> > > >
>
> https://protect2.fireeye.com/url?k=9b0187ad-c78b4d73-9b01c736-86823e270a62-3cdb18bf2d8c50f7&q=1&u=http%3A%2F%2Fllvm.org%2Fviewvc%2Fllvm-project%2Fllvm%2Ftrunk%2Ftest%2FOther%2Fopt-O2-pipeline.ll%3Frev%3D370957%26r1%3D370956%26r2%3D370957%26view%3Ddiff
> > > > >
> > > >
> > > > =================================================================
> > > > ==
> > > > ==
> > > > > =========
> > > > > --- llvm/trunk/test/Other/opt-O2-pipeline.ll (original)
> > > > > +++ llvm/trunk/test/Other/opt-O2-pipeline.ll Wed Sep  4
> > > > > 12:16:04
> > > >
> > > > 2019
> > > > > @@ -93,12 +93,13 @@
> > > > >  ; CHECK-NEXT:         Simplify the CFG
> > > > >  ; CHECK-NEXT:         Reassociate expressions
> > > > >  ; CHECK-NEXT:         Dominator Tree Construction
> > > > > +; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
> > > > > +; CHECK-NEXT:         Function Alias Analysis Results
> > > > > +; CHECK-NEXT:         Memory SSA
> > > > >  ; CHECK-NEXT:         Natural Loop Information
> > > > >  ; CHECK-NEXT:         Canonicalize natural loops
> > > > >  ; CHECK-NEXT:         LCSSA Verifier
> > > > >  ; CHECK-NEXT:         Loop-Closed SSA Form Pass
> > > > > -; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
> > > > > -; CHECK-NEXT:         Function Alias Analysis Results
> > > > >  ; CHECK-NEXT:         Scalar Evolution Analysis
> > > > >  ; CHECK-NEXT:         Loop Pass Manager
> > > > >  ; CHECK-NEXT:           Rotate Loops
> > > > > @@ -153,12 +154,13 @@
> > > > >  ; CHECK-NEXT:         Phi Values Analysis
> > > > >  ; CHECK-NEXT:         Memory Dependence Analysis
> > > > >  ; CHECK-NEXT:         Dead Store Elimination
> > > > > +; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
> > > > > +; CHECK-NEXT:         Function Alias Analysis Results
> > > > > +; CHECK-NEXT:         Memory SSA
> > > > >  ; CHECK-NEXT:         Natural Loop Information
> > > > >  ; CHECK-NEXT:         Canonicalize natural loops
> > > > >  ; CHECK-NEXT:         LCSSA Verifier
> > > > >  ; CHECK-NEXT:         Loop-Closed SSA Form Pass
> > > > > -; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
> > > > > -; CHECK-NEXT:         Function Alias Analysis Results
> > > > >  ; CHECK-NEXT:         Scalar Evolution Analysis
> > > > >  ; CHECK-NEXT:         Loop Pass Manager
> > > > >  ; CHECK-NEXT:           Loop Invariant Code Motion
> > > > > @@ -185,12 +187,13 @@
> > > > >  ; CHECK-NEXT:     FunctionPass Manager
> > > > >  ; CHECK-NEXT:       Float to int
> > > > >  ; CHECK-NEXT:       Dominator Tree Construction
> > > > > +; CHECK-NEXT:       Basic Alias Analysis (stateless AA impl)
> > > > > +; CHECK-NEXT:       Function Alias Analysis Results
> > > > > +; CHECK-NEXT:       Memory SSA
> > > > >  ; CHECK-NEXT:       Natural Loop Information
> > > > >  ; CHECK-NEXT:       Canonicalize natural loops
> > > > >  ; CHECK-NEXT:       LCSSA Verifier
> > > > >  ; CHECK-NEXT:       Loop-Closed SSA Form Pass
> > > > > -; CHECK-NEXT:       Basic Alias Analysis (stateless AA impl)
> > > > > -; CHECK-NEXT:       Function Alias Analysis Results
> > > > >  ; CHECK-NEXT:       Scalar Evolution Analysis
> > > > >  ; CHECK-NEXT:       Loop Pass Manager
> > > > >  ; CHECK-NEXT:         Rotate Loops
> > > > > @@ -246,6 +249,7 @@
> > > > >  ; CHECK-NEXT:       Lazy Block Frequency Analysis
> > > > >  ; CHECK-NEXT:       Optimization Remark Emitter
> > > > >  ; CHECK-NEXT:       Combine redundant instructions
> > > > > +; CHECK-NEXT:       Memory SSA
> > > > >  ; CHECK-NEXT:       Canonicalize natural loops
> > > > >  ; CHECK-NEXT:       LCSSA Verifier
> > > > >  ; CHECK-NEXT:       Loop-Closed SSA Form Pass
> > > > >
> > > > > Modified: llvm/trunk/test/Other/opt-O3-pipeline.ll
> > > > > URL:
> > > > >
> > > >
> > > >
>
> https://protect2.fireeye.com/url?k=394f545b-65c59e85-394f14c0-86823e270a62-0bf04c74db73c9df&q=1&u=http%3A%2F%2Fllvm.org%2Fviewvc%2Fllvm-project%2Fllvm%2Ftrunk%2Ftest%2FOther%2Fopt-O3-pipeline.ll%3Frev%3D370957%26r1%3D370956%26r2%3D370957%26view%3Ddiff
> > > > >
> > > >
> > > > =================================================================
> > > > ==
> > > > ==
> > > > > =========
> > > > > --- llvm/trunk/test/Other/opt-O3-pipeline.ll (original)
> > > > > +++ llvm/trunk/test/Other/opt-O3-pipeline.ll Wed Sep  4
> > > > > 12:16:04
> > > >
> > > > 2019
> > > > > @@ -98,12 +98,13 @@
> > > > >  ; CHECK-NEXT:         Simplify the CFG
> > > > >  ; CHECK-NEXT:         Reassociate expressions
> > > > >  ; CHECK-NEXT:         Dominator Tree Construction
> > > > > +; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
> > > > > +; CHECK-NEXT:         Function Alias Analysis Results
> > > > > +; CHECK-NEXT:         Memory SSA
> > > > >  ; CHECK-NEXT:         Natural Loop Information
> > > > >  ; CHECK-NEXT:         Canonicalize natural loops
> > > > >  ; CHECK-NEXT:         LCSSA Verifier
> > > > >  ; CHECK-NEXT:         Loop-Closed SSA Form Pass
> > > > > -; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
> > > > > -; CHECK-NEXT:         Function Alias Analysis Results
> > > > >  ; CHECK-NEXT:         Scalar Evolution Analysis
> > > > >  ; CHECK-NEXT:         Loop Pass Manager
> > > > >  ; CHECK-NEXT:           Rotate Loops
> > > > > @@ -158,12 +159,13 @@
> > > > >  ; CHECK-NEXT:         Phi Values Analysis
> > > > >  ; CHECK-NEXT:         Memory Dependence Analysis
> > > > >  ; CHECK-NEXT:         Dead Store Elimination
> > > > > +; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
> > > > > +; CHECK-NEXT:         Function Alias Analysis Results
> > > > > +; CHECK-NEXT:         Memory SSA
> > > > >  ; CHECK-NEXT:         Natural Loop Information
> > > > >  ; CHECK-NEXT:         Canonicalize natural loops
> > > > >  ; CHECK-NEXT:         LCSSA Verifier
> > > > >  ; CHECK-NEXT:         Loop-Closed SSA Form Pass
> > > > > -; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
> > > > > -; CHECK-NEXT:         Function Alias Analysis Results
> > > > >  ; CHECK-NEXT:         Scalar Evolution Analysis
> > > > >  ; CHECK-NEXT:         Loop Pass Manager
> > > > >  ; CHECK-NEXT:           Loop Invariant Code Motion
> > > > > @@ -190,12 +192,13 @@
> > > > >  ; CHECK-NEXT:     FunctionPass Manager
> > > > >  ; CHECK-NEXT:       Float to int
> > > > >  ; CHECK-NEXT:       Dominator Tree Construction
> > > > > +; CHECK-NEXT:       Basic Alias Analysis (stateless AA impl)
> > > > > +; CHECK-NEXT:       Function Alias Analysis Results
> > > > > +; CHECK-NEXT:       Memory SSA
> > > > >  ; CHECK-NEXT:       Natural Loop Information
> > > > >  ; CHECK-NEXT:       Canonicalize natural loops
> > > > >  ; CHECK-NEXT:       LCSSA Verifier
> > > > >  ; CHECK-NEXT:       Loop-Closed SSA Form Pass
> > > > > -; CHECK-NEXT:       Basic Alias Analysis (stateless AA impl)
> > > > > -; CHECK-NEXT:       Function Alias Analysis Results
> > > > >  ; CHECK-NEXT:       Scalar Evolution Analysis
> > > > >  ; CHECK-NEXT:       Loop Pass Manager
> > > > >  ; CHECK-NEXT:         Rotate Loops
> > > > > @@ -251,6 +254,7 @@
> > > > >  ; CHECK-NEXT:       Lazy Block Frequency Analysis
> > > > >  ; CHECK-NEXT:       Optimization Remark Emitter
> > > > >  ; CHECK-NEXT:       Combine redundant instructions
> > > > > +; CHECK-NEXT:       Memory SSA
> > > > >  ; CHECK-NEXT:       Canonicalize natural loops
> > > > >  ; CHECK-NEXT:       LCSSA Verifier
> > > > >  ; CHECK-NEXT:       Loop-Closed SSA Form Pass
> > > > >
> > > > > Modified: llvm/trunk/test/Other/opt-Os-pipeline.ll
> > > > > URL:
> > > > >
> > > >
> > > >
>
> https://protect2.fireeye.com/url?k=01c3e0a1-5d492a7f-01c3a03a-86823e270a62-da433cbe7321f7ab&q=1&u=http%3A%2F%2Fllvm.org%2Fviewvc%2Fllvm-project%2Fllvm%2Ftrunk%2Ftest%2FOther%2Fopt-Os-pipeline.ll%3Frev%3D370957%26r1%3D370956%26r2%3D370957%26view%3Ddiff
> > > > >
> > > >
> > > > =================================================================
> > > > ==
> > > > ==
> > > > > =========
> > > > > --- llvm/trunk/test/Other/opt-Os-pipeline.ll (original)
> > > > > +++ llvm/trunk/test/Other/opt-Os-pipeline.ll Wed Sep  4
> > > > > 12:16:04
> > > >
> > > > 2019
> > > > > @@ -80,12 +80,13 @@
> > > > >  ; CHECK-NEXT:         Simplify the CFG
> > > > >  ; CHECK-NEXT:         Reassociate expressions
> > > > >  ; CHECK-NEXT:         Dominator Tree Construction
> > > > > +; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
> > > > > +; CHECK-NEXT:         Function Alias Analysis Results
> > > > > +; CHECK-NEXT:         Memory SSA
> > > > >  ; CHECK-NEXT:         Natural Loop Information
> > > > >  ; CHECK-NEXT:         Canonicalize natural loops
> > > > >  ; CHECK-NEXT:         LCSSA Verifier
> > > > >  ; CHECK-NEXT:         Loop-Closed SSA Form Pass
> > > > > -; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
> > > > > -; CHECK-NEXT:         Function Alias Analysis Results
> > > > >  ; CHECK-NEXT:         Scalar Evolution Analysis
> > > > >  ; CHECK-NEXT:         Loop Pass Manager
> > > > >  ; CHECK-NEXT:           Rotate Loops
> > > > > @@ -140,12 +141,13 @@
> > > > >  ; CHECK-NEXT:         Phi Values Analysis
> > > > >  ; CHECK-NEXT:         Memory Dependence Analysis
> > > > >  ; CHECK-NEXT:         Dead Store Elimination
> > > > > +; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
> > > > > +; CHECK-NEXT:         Function Alias Analysis Results
> > > > > +; CHECK-NEXT:         Memory SSA
> > > > >  ; CHECK-NEXT:         Natural Loop Information
> > > > >  ; CHECK-NEXT:         Canonicalize natural loops
> > > > >  ; CHECK-NEXT:         LCSSA Verifier
> > > > >  ; CHECK-NEXT:         Loop-Closed SSA Form Pass
> > > > > -; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)
> > > > > -; CHECK-NEXT:         Function Alias Analysis Results
> > > > >  ; CHECK-NEXT:         Scalar Evolution Analysis
> > > > >  ; CHECK-NEXT:         Loop Pass Manager
> > > > >  ; CHECK-NEXT:           Loop Invariant Code Motion
> > > > > @@ -172,12 +174,13 @@
> > > > >  ; CHECK-NEXT:     FunctionPass Manager
> > > > >  ; CHECK-NEXT:       Float to int
> > > > >  ; CHECK-NEXT:       Dominator Tree Construction
> > > > > +; CHECK-NEXT:       Basic Alias Analysis (stateless AA impl)
> > > > > +; CHECK-NEXT:       Function Alias Analysis Results
> > > > > +; CHECK-NEXT:       Memory SSA
> > > > >  ; CHECK-NEXT:       Natural Loop Information
> > > > >  ; CHECK-NEXT:       Canonicalize natural loops
> > > > >  ; CHECK-NEXT:       LCSSA Verifier
> > > > >  ; CHECK-NEXT:       Loop-Closed SSA Form Pass
> > > > > -; CHECK-NEXT:       Basic Alias Analysis (stateless AA impl)
> > > > > -; CHECK-NEXT:       Function Alias Analysis Results
> > > > >  ; CHECK-NEXT:       Scalar Evolution Analysis
> > > > >  ; CHECK-NEXT:       Loop Pass Manager
> > > > >  ; CHECK-NEXT:         Rotate Loops
> > > > > @@ -233,6 +236,7 @@
> > > > >  ; CHECK-NEXT:       Lazy Block Frequency Analysis
> > > > >  ; CHECK-NEXT:       Optimization Remark Emitter
> > > > >  ; CHECK-NEXT:       Combine redundant instructions
> > > > > +; CHECK-NEXT:       Memory SSA
> > > > >  ; CHECK-NEXT:       Canonicalize natural loops
> > > > >  ; CHECK-NEXT:       LCSSA Verifier
> > > > >  ; CHECK-NEXT:       Loop-Closed SSA Form Pass
> > > > >
> > > > >
> > > > > _______________________________________________
> > > > > llvm-commits mailing list
> > > > > llvm-commits at lists.llvm.org
> > > > >
> >
> >
>
> https://protect2.fireeye.com/url?k=613081b5-3dba4b6b-6130c12e-86823e270a62-3b9ac07604e9c962&q=1&u=https%3A%2F%2Flists.llvm.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fllvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190906/15b3ee3a/attachment.html>


More information about the llvm-commits mailing list