summaryrefslogtreecommitdiff
path: root/src/tools/optimization-options.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/optimization-options.h')
-rw-r--r--src/tools/optimization-options.h29
1 files changed, 18 insertions, 11 deletions
diff --git a/src/tools/optimization-options.h b/src/tools/optimization-options.h
index ca555d5e9..8bca7639f 100644
--- a/src/tools/optimization-options.h
+++ b/src/tools/optimization-options.h
@@ -27,6 +27,8 @@ namespace wasm {
struct OptimizationOptions : public ToolOptions {
static constexpr const char* DEFAULT_OPT_PASSES = "O";
+ static constexpr const int OS_OPTIMIZE_LEVEL = 2;
+ static constexpr const int OS_SHRINK_LEVEL = 1;
std::vector<std::string> passes;
@@ -37,15 +39,20 @@ struct OptimizationOptions : public ToolOptions {
const std::string& description)
: ToolOptions(command, description) {
(*this)
- .add("",
- "-O",
- "execute default optimization passes",
- OptimizationOptionsCategory,
- Options::Arguments::Zero,
- [this](Options*, const std::string&) {
- passOptions.setDefaultOptimizationOptions();
- passes.push_back(DEFAULT_OPT_PASSES);
- })
+ .add(
+ "",
+ "-O",
+ "execute default optimization passes (equivalent to -Os)",
+ OptimizationOptionsCategory,
+ Options::Arguments::Zero,
+ [this](Options*, const std::string&) {
+ passOptions.setDefaultOptimizationOptions();
+ static_assert(
+ PassOptions::DEFAULT_OPTIMIZE_LEVEL == OS_OPTIMIZE_LEVEL &&
+ PassOptions::DEFAULT_SHRINK_LEVEL == OS_SHRINK_LEVEL,
+ "Help text states that -O is equivalent to -Os but now it isn't.");
+ passes.push_back(DEFAULT_OPT_PASSES);
+ })
.add("",
"-O0",
"execute no optimization passes",
@@ -106,8 +113,8 @@ struct OptimizationOptions : public ToolOptions {
OptimizationOptionsCategory,
Options::Arguments::Zero,
[this](Options*, const std::string&) {
- passOptions.optimizeLevel = 2;
- passOptions.shrinkLevel = 1;
+ passOptions.optimizeLevel = OS_OPTIMIZE_LEVEL;
+ passOptions.shrinkLevel = OS_SHRINK_LEVEL;
passes.push_back(DEFAULT_OPT_PASSES);
})
.add("",