[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.

Original post:

http://lists.llvm.org/pipermail/llvm-dev/2019-April/131494.html


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D65410

Files:
  clang/test/CodeGen/2008-07-30-implicit-initialization.c
  clang/test/CodeGen/arm-fp16-arguments.c
  clang/test/CodeGen/arm-vfp16-arguments2.cpp
  clang/test/CodeGenCXX/auto-var-init.cpp
  clang/test/CodeGenCXX/stack-reuse.cpp
  llvm/include/llvm/Passes/PassBuilder.h
  llvm/lib/Passes/PassBuilder.cpp
  llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
  llvm/test/Feature/optnone-opt.ll
  llvm/test/Other/new-pm-defaults.ll
  llvm/test/Other/new-pm-thinlto-defaults.ll
  llvm/test/Transforms/MemCpyOpt/lifetime.ll
  llvm/test/Transforms/PhaseOrdering/simplifycfg-options.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D65410.211426.patch
Type: text/x-patch
Size: 26217 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190729/f8f07650/attachment-0001.bin>


More information about the cfe-commits mailing list