[NewPM] Set -enable-npm-optnone to true by default
authorArthur Eubanks <aeubanks@google.com>
Thu, 17 Sep 2020 23:01:30 +0000 (16:01 -0700)
committerArthur Eubanks <aeubanks@google.com>
Tue, 6 Oct 2020 01:42:32 +0000 (18:42 -0700)
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

llvm/lib/Passes/StandardInstrumentations.cpp

index d2ef2cd..06aa386 100644 (file)
@@ -33,7 +33,7 @@ using namespace llvm;
 
 // 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"));