[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