Arthur Eubanks via llvm-dev
2020-Nov-09 18:54 UTC
[llvm-dev] LSR tests failing under new pass manager due to not being in LCSSA form
In an effort to turn on the new pass manager by default, I've been trying to make all lit tests pass when opt uses the new pass manager. (Change the default value of -enable-new-pm in opt.cpp to true to repro) A good chunk of the remaining failures are some loop pass tests, mostly LSR, that are failing. The legacy PM does not by default run LCSSA before running loop passes, but the new PM does that. These tests are failing because the original test file is not in LCSSA form, so running LCSSA before something like -loop-reduce changes the input to LSR. This can be repro'd under the legacy PM by changing the test to also run `-lcssa`. One example is llvm/test/Transforms/LoopStrengthReduce/uglygep.ll (RUN: opt < %s -lcssa -loop-reduce -S | FileCheck %s). Any thoughts on how to fix these 30-35 tests? Manually convert them to LCSSA form and update the CHECK lines? Seems tricky, especially for somebody without much experience with these passes. Some of these do use update_test_checks, but some do not. Another option is to add an option to disable running LCSSA, but that doesn't seem right. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20201109/15d54ad6/attachment.html>
Reid Kleckner via llvm-dev
2020-Nov-18 00:19 UTC
[llvm-dev] LSR tests failing under new pass manager due to not being in LCSSA form
Maybe you've already found a solution or gone ahead with the test updates, but I think it's OK to force some of the tests to run under the old PM if they are difficult to update. On Mon, Nov 9, 2020 at 10:54 AM Arthur Eubanks via llvm-dev < llvm-dev at lists.llvm.org> wrote:> In an effort to turn on the new pass manager by default, I've been trying > to make all lit tests pass when opt uses the new pass manager. (Change the > default value of -enable-new-pm in opt.cpp to true to repro) > > A good chunk of the remaining failures are some loop pass tests, mostly > LSR, that are failing. The legacy PM does not by default run LCSSA before > running loop passes, but the new PM does that. These tests are failing > because the original test file is not in LCSSA form, so running LCSSA > before something like -loop-reduce changes the input to LSR. This can be > repro'd under the legacy PM by changing the test to also run `-lcssa`. One > example is llvm/test/Transforms/LoopStrengthReduce/uglygep.ll (RUN: opt < > %s -lcssa -loop-reduce -S | FileCheck %s). > > Any thoughts on how to fix these 30-35 tests? Manually convert them to > LCSSA form and update the CHECK lines? Seems tricky, especially for > somebody without much experience with these passes. Some of these do use > update_test_checks, but some do not. > Another option is to add an option to disable running LCSSA, but that > doesn't seem right. > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20201117/2e124fdf/attachment.html>
Maybe Matching Threads
- [LLVMdev] [RFC] LCSSA vs. SSAUpdater ... FIGHT!
- [LLVMdev] Why should we have the LoopPass and LoopPassManager? Can we get rid of this complexity?
- LCSSA verification for the top-level loops
- LCSSA verification for the top-level loops
- LCSSA verification for the top-level loops