[PATCH] D94448: [NewPM] Run non-trivial loop unswitching under -O2/3/s/z

Arthur Eubanks via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 12 14:49:19 PST 2021


aeubanks added a comment.

In D94448#2494328 <https://reviews.llvm.org/D94448#2494328>, @nikic wrote:

> FYI this change had some pretty significant impact on compile-time (https://llvm-compile-time-tracker.com/compare.php?from=4718ec01669b01373180f4cd1256c6e2dd6f3999&to=f748e92295515ea7b39cd687a718915b559de6ec&stat=instructions) and code size (https://llvm-compile-time-tracker.com/compare.php?from=4718ec01669b01373180f4cd1256c6e2dd6f3999&to=f748e92295515ea7b39cd687a718915b559de6ec&stat=size-text). Is that expected?

I took a closer look at what the legacy unswitch pass does in regards to -O2/3/s/z, and it skips non-trivial unswitching for anything other than -O3. So in the -O3 case I think the increased compile time and code size is expected. But the other cases should be fixed, I'll do that.
(weird that sqlite3 is an outlier and compiles 11% faster with this change though)

(also it would be nice to have -O1/2/s/z runs on llvm-compile-time-tracker, but of course you can only test so many configurations)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D94448



More information about the llvm-commits mailing list