[PATCH] D65410: [PassManager] First Pass implementation at -O1 pass pipeline
Eric Christopher via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Jul 29 11:13:55 PDT 2019
echristo created this revision.
echristo added reviewers: chandlerc, hfinkel.
Herald added subscribers: cfe-commits, jfb, dexonsmith, steven_wu, hiraditya, javed.absar, mcrosier, mehdi_amini.
Herald added projects: clang, LLVM.
As a follow-up to my initial mail to llvm-dev here's a first pass at the O1 <https://reviews.llvm.org/owners/package/1/> described there.
Some rough internal testing using a bootstrap and test of clang has shown a combined build and test time for clang with nearly equivalent performance to O3 <https://reviews.llvm.org/owners/package/3/> and quite a speedup over O0 - it's currently a little slower than the existing O1 <https://reviews.llvm.org/owners/package/1/>, likely due to the clang+llvm testsuite use of the same binaries many times rather than a few for individual tests. Build time is a bit better. For a larger build and smaller test time (think a couple of unittests), this is a bit better than either O3 <https://reviews.llvm.org/owners/package/3/>, O0, or O1 <https://reviews.llvm.org/owners/package/1/>. Overall binary size drops significantly compared to O0.
This change doesn't include any change to move from selection dag to fast isel and that will come with other numbers that should help inform that decision. I also haven't done any real debuggability studies with this pipeline yet, I wanted to get the initial start done so that people could see it and we could start tweaking after.
Test updates: Outside of the newpm tests most of the updates are coming from either optimization passes not run anymore (and without a compelling argument at the moment) that were largely used for canonicalization in clang.
rG LLVM Github Monorepo
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 26217 bytes
Desc: not available
More information about the cfe-commits