<div dir="ltr">I don't think your statement matches what I was seeing. I may have constructed the testcase poorly, but there were differences being shown. Also keep in mind that your clang run is testing what I've already fixed. :)<div><br></div><div>Happy to work with you on a testcase here, but I don't have time this week.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Aug 24, 2020 at 5:40 PM Arthur Eubanks via Phabricator <<a href="mailto:reviews@reviews.llvm.org">reviews@reviews.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">aeubanks added a comment.<br>
<br>
In D86485#2234668 <<a href="https://reviews.llvm.org/D86485#2234668" rel="noreferrer" target="_blank">https://reviews.llvm.org/D86485#2234668</a>>, @echristo wrote:<br>
<br>
> The code has a pragma to turn on loop unrolling. I actually did want to check with optnone.<br>
<br>
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: <a href="https://github.com/llvm/llvm-project/blob/c1d25e9a82554aa580b3cc0b97fc5c7db8164042/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp#L1231" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/blob/c1d25e9a82554aa580b3cc0b97fc5c7db8164042/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp#L1231</a>. So the NPM pass probably also should.<br>
<br>
  $ cat /tmp/a.c<br>
  void b();<br>
<br>
  void a() {<br>
  #pragma clang loop unroll(full)<br>
          for (int i = 0; i < 50; i++) {<br>
                  b();<br>
          }<br>
  }<br>
  $ ./build_debug/bin/clang -S -emit-llvm /tmp/a.c -O0 -o -<br>
  ... not unrolled LLVM IR<br>
  $ ./build_debug/bin/clang -S -emit-llvm /tmp/a.c -O0 -o - -fexperimental-new-pass-manager<br>
  ... not unrolled LLVM IR<br>
  $ ./build_debug/bin/clang -S -emit-llvm /tmp/a.c -O1 -o -<br>
  ... unrolled LLVM IR<br>
  $ ./build_debug/bin/clang -S -emit-llvm /tmp/a.c -O1 -o - -fexperimental-new-pass-manager<br>
  ... unrolled LLVM IR<br>
<br>
<br>
Repository:<br>
  rG LLVM Github Monorepo<br>
<br>
CHANGES SINCE LAST ACTION<br>
  <a href="https://reviews.llvm.org/D86485/new/" rel="noreferrer" target="_blank">https://reviews.llvm.org/D86485/new/</a><br>
<br>
<a href="https://reviews.llvm.org/D86485" rel="noreferrer" target="_blank">https://reviews.llvm.org/D86485</a><br>
<br>
</blockquote></div>