[all-commits] [llvm/llvm-project] 72badb: [NPM] Move more O0 pass building into PassBuilder

aeubanks via All-commits all-commits at lists.llvm.org
Thu Nov 19 11:22:51 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 72badbcdccd11c12555147d48dee4a776f5da87d
      https://github.com/llvm/llvm-project/commit/72badbcdccd11c12555147d48dee4a776f5da87d
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2020-11-19 (Thu, 19 Nov 2020)

  Changed paths:
    M clang/lib/CodeGen/BackendUtil.cpp
    M llvm/include/llvm/Passes/PassBuilder.h
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/test/Other/new-pass-manager.ll
    A llvm/test/Other/new-pm-O0-defaults.ll
    M llvm/test/Other/new-pm-defaults.ll
    M llvm/test/Other/new-pm-pgo-O0.ll
    M llvm/test/Other/new-pm-thinlto-defaults.ll
    M llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
    M llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
    M llvm/test/Transforms/CanonicalizeAliases/canonicalize.ll
    M llvm/test/Transforms/NameAnonGlobals/rename.ll

  Log Message:
  -----------
  [NPM] Move more O0 pass building into PassBuilder

This moves handling of alwaysinline, coroutines, matrix lowering, PGO,
and LTO-required passes into PassBuilder. Much of this is replicated
between Clang and opt. Other out-of-tree users also replicate some of
this, such as Rust [1] replicating the alwaysinline, LTO, and PGO
passes.

The LTO passes are also now run in
build(Thin)LTOPreLinkDefaultPipeline() since they are semantically
required for (Thin)LTO.

[1]: https://github.com/rust-lang/rust/blob/f5230fbf76bafd86ee4376a0e26e551df8d17fec/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp#L896

Reviewed By: tejohnson

Differential Revision: https://reviews.llvm.org/D91585




More information about the All-commits mailing list