[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