[PATCH] D106041: [WIP][SimpleLoopUnswitch] Re-fix introduction of UB when hoisted condition may be undef or poison

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 3 07:06:46 PDT 2021


lebedev.ri added a comment.

I'd need to see the test to guess where we need to add it.
Generally, simpleloopunswitch is only run once,
scheduled in `PassBuilder::buildFunctionSimplificationPipeline()` (line 761),

  LPM1.addPass(
      SimpleLoopUnswitchPass(/* NonTrivial */ Level == OptimizationLevel::O3 &&
                             EnableO3NonTrivialUnswitching));

While the very next simplifycfg (line 796) runs before the first instcombine run (line 797),
there's further simplifycfg run (line 858) that runs after instcombine.
So i'm not sure what's going on, and i won't be able to help without a test...


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D106041/new/

https://reviews.llvm.org/D106041



More information about the llvm-commits mailing list