[all-commits] [llvm/llvm-project] c554c5: Fix full unrolling with new pass manager.

Eric Christopher via All-commits all-commits at lists.llvm.org
Fri May 29 20:16:14 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: c554c5e159aee43c5cd8236e077817e9f29dea78
      https://github.com/llvm/llvm-project/commit/c554c5e159aee43c5cd8236e077817e9f29dea78
  Author: Eric Christopher <echristo at gmail.com>
  Date:   2020-05-29 (Fri, 29 May 2020)

  Changed paths:
    M clang/test/Misc/loop-opt-setup.c
    M llvm/lib/Passes/PassBuilder.cpp
    A llvm/test/Transforms/LoopUnroll/FullUnroll.ll
    M llvm/tools/opt/NewPMDriver.cpp

  Log Message:
  -----------
  Fix full unrolling with new pass manager.

Last we looked at this and couldn't come up with a reason to change
it, but with a pragma for full loop unrolling we bypass every other
loop unroll and then fail to fully unroll a loop when the pragma is set.

Move the OnlyWhenForced out of the check and into the initialization
of the full unroll pass in the new pass manager. This doesn't show up
with the old pass manager.

Add a new option to opt so that we can turn off loop unrolling
manually since this is a difference between clang and opt.

Tested with check-clang and check-llvm.


  Commit: c2bb26d8613338b93a1aab54631d01e6a690bc29
      https://github.com/llvm/llvm-project/commit/c2bb26d8613338b93a1aab54631d01e6a690bc29
  Author: Eric Christopher <echristo at gmail.com>
  Date:   2020-05-29 (Fri, 29 May 2020)

  Changed paths:
    M llvm/include/llvm/Passes/PassBuilder.h
    M llvm/lib/Passes/PassBuilder.cpp

  Log Message:
  -----------
  NFC: Simplify O1 pass pipeline construction.

Pull O1 pass pipeline out into a separate function and simplify
buildFunctionSimplificationPipeline accordingly.


Compare: https://github.com/llvm/llvm-project/compare/034a7b660406...c2bb26d86133


More information about the All-commits mailing list