mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-02-17 17:19:35 +08:00
Make -Ox the default
Make -Ox the default; it's the optimization level expected by most users, and it is clearly still causing confusion that it has to be specified manually. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
parent
a537d4964e
commit
31387b2d04
@ -50,6 +50,9 @@ since 2007.
|
||||
|
||||
\b Tighten EA checks. We warn a user if there overflow in EA addressing.
|
||||
|
||||
\b Make \c{-Ox} the default optimization level. For the legacy
|
||||
behavior, specify \c{-O0} explicitly. See \k{opt-O}.
|
||||
|
||||
|
||||
\S{cl-2.08} Version 2.08
|
||||
|
||||
|
@ -866,7 +866,8 @@ levels of optimization. The syntax is:
|
||||
releases, the letter \c{x} may also be any number greater than
|
||||
one. This number has no effect on the actual number of passes.
|
||||
|
||||
The \c{-Ox} mode is recommended for most uses.
|
||||
The \c{-Ox} mode is recommended for most uses, and is the default
|
||||
since NASM 2.09.
|
||||
|
||||
Note that this is a capital \c{O}, and is different from a small \c{o}, which
|
||||
is used to specify the output file name. See \k{opt-o}.
|
||||
|
19
nasm.c
19
nasm.c
@ -1,6 +1,6 @@
|
||||
/* ----------------------------------------------------------------------- *
|
||||
*
|
||||
* Copyright 1996-2009 The NASM Authors - All Rights Reserved
|
||||
* Copyright 1996-2010 The NASM Authors - All Rights Reserved
|
||||
* See the file AUTHORS included with the NASM distribution for
|
||||
* the specific copyright holders.
|
||||
*
|
||||
@ -61,6 +61,13 @@
|
||||
#include "output/outform.h"
|
||||
#include "listing.h"
|
||||
|
||||
/*
|
||||
* This is the maximum number of optimization passes to do. If we ever
|
||||
* find a case where the optimizer doesn't naturally converge, we might
|
||||
* have to drop this value so the assembler doesn't appear to just hang.
|
||||
*/
|
||||
#define MAX_OPTIMIZE (INT_MAX >> 1)
|
||||
|
||||
struct forwrefinfo { /* info held on forward refs. */
|
||||
int lineno;
|
||||
int operand;
|
||||
@ -96,8 +103,8 @@ const struct dfmt *dfmt;
|
||||
static FILE *error_file; /* Where to write error messages */
|
||||
|
||||
FILE *ofile = NULL;
|
||||
int optimizing = -1; /* number of optimization passes to take */
|
||||
static int sb, cmd_sb = 16; /* by default */
|
||||
int optimizing = MAX_OPTIMIZE; /* number of optimization passes to take */
|
||||
static int sb, cmd_sb = 16; /* by default */
|
||||
static uint32_t cmd_cpu = IF_PLEVEL; /* highest level by default */
|
||||
static uint32_t cpu = IF_PLEVEL; /* passed to insn_size & assemble.c */
|
||||
int64_t global_offset_changed; /* referenced in labels.c */
|
||||
@ -659,7 +666,7 @@ static bool process_arg(char *p, char *q)
|
||||
|
||||
if (!*param) {
|
||||
/* Naked -O == -Ox */
|
||||
optimizing = INT_MAX >> 1; /* Almost unlimited */
|
||||
optimizing = MAX_OPTIMIZE;
|
||||
} else {
|
||||
while (*param) {
|
||||
switch (*param) {
|
||||
@ -683,7 +690,7 @@ static bool process_arg(char *p, char *q)
|
||||
|
||||
case 'x':
|
||||
param++;
|
||||
optimizing = INT_MAX >> 1; /* Almost unlimited */
|
||||
optimizing = MAX_OPTIMIZE;
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -693,6 +700,8 @@ static bool process_arg(char *p, char *q)
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (optimizing > MAX_OPTIMIZE)
|
||||
optimizing = MAX_OPTIMIZE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user