cl::desc("Verify generated machine code"),
cl::init(false),
cl::ZeroOrMore);
-enum RunOutliner { AlwaysOutline, NeverOutline };
-// Enable or disable the MachineOutliner.
-static cl::opt<RunOutliner> EnableMachineOutliner(
- "enable-machine-outliner", cl::desc("Enable the machine outliner"),
- cl::Hidden, cl::ValueOptional, cl::init(NeverOutline),
- cl::values(clEnumValN(AlwaysOutline, "always",
- "Run on all functions guaranteed to be beneficial "
- "(pass -enable-linkonceodr-outlining for more)"),
- clEnumValN(NeverOutline, "never", "Disable all outlining"),
- // Sentinel value for unspecified option.
- clEnumValN(AlwaysOutline, "", "")));
+static cl::opt<bool> EnableMachineOutliner("enable-machine-outliner",
+ cl::Hidden,
+ cl::desc("Enable machine outliner"));
// Enable or disable FastISel. Both options are needed, because
// FastISel is enabled by default with -fast, and we wish to be
// able to enable or disable fast-isel independently from -O0.
addPass(&XRayInstrumentationID, false);
addPass(&PatchableFunctionID, false);
- if (EnableMachineOutliner == AlwaysOutline)
+ if (EnableMachineOutliner)
addPass(createMachineOutlinerPass());
// Add passes that directly emit MI after all other MI passes.
+++ /dev/null
-; RUN: llc %s -debug-pass=Structure -verify-machineinstrs \
-; RUN: -enable-machine-outliner=always -mtriple arm64---- -o /dev/null 2>&1 \
-; RUN: | FileCheck %s -check-prefix=ALWAYS
-
-; RUN: llc %s -debug-pass=Structure -verify-machineinstrs \
-; RUN: -enable-machine-outliner -mtriple arm64---- -o /dev/null 2>&1 \
-; RUN: | FileCheck %s -check-prefix=ENABLE
-
-; RUN: llc %s -debug-pass=Structure -verify-machineinstrs \
-; RUN: -enable-machine-outliner=never -mtriple arm64---- -o /dev/null 2>&1 \
-; RUN: | FileCheck %s -check-prefix=NEVER
-
-; RUN: llc %s -debug-pass=Structure -verify-machineinstrs \
-; RUN: -mtriple arm64---- -o /dev/null 2>&1 \
-; RUN: | FileCheck %s -check-prefix=NOT-ADDED
-
-; Make sure that the outliner flags all work properly. If we specify
-; -enable-machine-outliner with always or no argument, it should be added to the
-; pass pipeline. If we specify it with never, or don't pass the flag,
-; then we shouldn't add it.
-
-; ALWAYS: Machine Outliner
-; ENABLE: Machine Outliner
-; NEVER-NOT: Machine Outliner
-; NOT-ADDED-NOT: Machine Outliner
-
-define void @foo() {
- ret void;
-}
-