[PATCH] D46775: [LICM] Preserve DT and LoopInfo specifically
Jun Bum Lim via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed May 23 07:43:48 PDT 2018
junbuml added a comment.
================
Comment at: test/Transforms/LICM/pr37323.ll:1-2
+;RUN: opt -loop-simplify -postdomtree -licm -adce -S -o - %s | FileCheck %s
+;RUN: opt -passes='loop-simplify,require<postdomtree>,require<opt-remark-emit>,loop(licm),function(adce)' -S -o - %s | FileCheck %s
+
----------------
junbuml wrote:
> mzolotukhin wrote:
> > junbuml wrote:
> > > mzolotukhin wrote:
> > > > By the way, do we have something like `-verify-dom-tree` for PostDT? It would be cleaner to explicitly verify postdom tree here than calling ADCE and hoping it crashes.
> > > The same tag (-verify-dom-info) seem to cover PostDT's verifyAnalysis as well. Using -verify-dom-info, I confirmed that this test crash in PostDT's verifyAnalysis without this change.
> > Thanks for checking! Also, speaking of reducing the test case further- can we get rid of `-loop-simplify` (i.e. replace the test with the output of `loop-simplify`) and `-adce`?
> Without this patch, I tried to reproduce the crash in this test case without -loop-simplify and -adce. However, we need both to reproduce the crash. If we remove -loop-simplify and put passes just like "-postdomtree -licm -adce", then the PDT executed before LICM will be invalidated (not preserved) after "Canonicalize natural loops". Therefore, we cannot reproduce the crash because the postdom will be re-executed before ADCE. Please see the pass order for "-postdomtree -licm -adce" :
>
> Post-Dominator Tree Construction <-- execute postdom
> Dominator Tree Construction
> Natural Loop Information
> Canonicalize natural loops <-- postdom is invalidated and not preserved
> LCSSA Verifier
> Loop-Closed SSA Form Pass
> Basic Alias Analysis (stateless AA impl)
> Function Alias Analysis Results
> Scalar Evolution Analysis
> Loop Pass Manager
> Loop Invariant Code Motion
> Post-Dominator Tree Construction <--- re-execute postdom
> Aggressive Dead Code Elimination <--- cannot reproduce the crash
>
> We should make the postdom executed after "Canonicalize natural loops".
>
> Even with -verify-loop-info, after licm, we still need a pass which requires postdom (e.g., adce) to verify postdom. Otherwise, PostDT's verifyAnalysis wont be invoked.
>
Hi Michael,
Can you please let me know if this test is okay with loop-simplify and adce ?
Thanks,
Jun
https://reviews.llvm.org/D46775
More information about the llvm-commits
mailing list