Add a new optimization option -Og

Summary:
Just like gcc, we should have the -Og option as more and more software are using it:
https://llvm.org/bugs/show_bug.cgi?id=20765

Reviewers: echristo, dberlin, dblaikie, keith.walker.arm, rengolin

Subscribers: aprantl, friss, mehdi_amini, RKSimon, probinson, majnemer, cfe-commits

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

llvm-svn: 286602
This commit is contained in:
Sylvestre Ledru 2016-11-11 17:29:56 +00:00
parent 31ee813068
commit d340ccc88a
3 changed files with 13 additions and 1 deletions

View File

@ -226,7 +226,7 @@ number of cross compilers, or may only support a native target.
Code Generation Options
~~~~~~~~~~~~~~~~~~~~~~~
.. option:: -O0, -O1, -O2, -O3, -Ofast, -Os, -Oz, -O, -O4
.. option:: -O0, -O1, -O2, -O3, -Ofast, -Os, -Oz, -Og, -O, -O4
Specify which optimization level to use:
@ -252,6 +252,9 @@ Code Generation Options
:option:`-Oz` Like :option:`-Os` (and thus :option:`-O2`), but reduces code
size further.
:option:`-Og` Like :option:`-O1`. In future versions, this option might
disable different optimizations in order to improve debuggability.
:option:`-O` Equivalent to :option:`-O2`.
:option:`-O4` and higher

View File

@ -98,6 +98,9 @@ static unsigned getOptimizationLevel(ArgList &Args, InputKind IK,
if (S == "s" || S == "z" || S.empty())
return 2;
if (S == "g")
return 1;
return getLastArgIntValue(Args, OPT_O, DefaultOpt, Diags);
}

View File

@ -205,6 +205,12 @@
// O1:#define __OPTIMIZE__ 1
//
//
// RUN: %clang_cc1 -Og -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix Og %s
//
// Og-NOT:#define __OPTIMIZE_SIZE__
// Og :#define __OPTIMIZE__ 1
//
//
// RUN: %clang_cc1 -Os -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix Os %s
//
// Os:#define __OPTIMIZE_SIZE__ 1