[PATCH] D86485: [test] Fix FullUnroll.ll

Arthur Eubanks via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 24 14:40:31 PDT 2020


aeubanks added a comment.

In D86485#2234668 <https://reviews.llvm.org/D86485#2234668>, @echristo wrote:

> The code has a pragma to turn on loop unrolling. I actually did want to check with optnone.

But the pragmas don't have an effect for -O0 in both the legacy and new PMs. And the legacy PM skipped loop unrolling on all optnone functions: https://github.com/llvm/llvm-project/blob/c1d25e9a82554aa580b3cc0b97fc5c7db8164042/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp#L1231. So the NPM pass probably also should.

  $ cat /tmp/a.c
  void b();
  
  void a() {
  #pragma clang loop unroll(full)
          for (int i = 0; i < 50; i++) {
                  b();
          }
  }
  $ ./build_debug/bin/clang -S -emit-llvm /tmp/a.c -O0 -o -
  ... not unrolled LLVM IR
  $ ./build_debug/bin/clang -S -emit-llvm /tmp/a.c -O0 -o - -fexperimental-new-pass-manager
  ... not unrolled LLVM IR
  $ ./build_debug/bin/clang -S -emit-llvm /tmp/a.c -O1 -o -
  ... unrolled LLVM IR
  $ ./build_debug/bin/clang -S -emit-llvm /tmp/a.c -O1 -o - -fexperimental-new-pass-manager
  ... unrolled LLVM IR


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D86485



More information about the llvm-commits mailing list