This makes the NPM skip not required passes on functions marked optnone.
If this causes a pass that should be required but has not been marked
required to be skipped, add
`static bool isRequired() { return true; }`
to the pass class. AlwaysInlinerPass is an example.
clang/test/CodeGen/O0-no-skipped-passes.c is useful for checking that
no passes are skipped under -O0.
The -enable-npm-optnone option will be removed once this has been stable
for long enough without issues.
Reviewed By: ychen, asbirlea
Differential Revision: https://reviews.llvm.org/D87869
// TODO: remove once all required passes are marked as such.
static cl::opt<bool>
- EnableOptnone("enable-npm-optnone", cl::init(false),
+ EnableOptnone("enable-npm-optnone", cl::init(true),
cl::desc("Enable skipping optional passes optnone functions "
"under new pass manager"));