diff options
author | H. Peter Anvin <hpa@zytor.com> | 2010-07-15 18:28:52 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2010-07-15 18:30:18 -0700 |
commit | 31387b2d04e2421a884adac449c192bd97abaa0f (patch) | |
tree | a58fced5312c40539c9b1ec1c9bfec90c16448a9 /nasm.c | |
parent | a537d4964ecb3a96840cd6734647e144df41e603 (diff) | |
download | nasm-31387b2d04e2421a884adac449c192bd97abaa0f.tar.gz nasm-31387b2d04e2421a884adac449c192bd97abaa0f.tar.bz2 nasm-31387b2d04e2421a884adac449c192bd97abaa0f.zip |
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>
Diffstat (limited to 'nasm.c')
-rw-r--r-- | nasm.c | 19 |
1 files changed, 14 insertions, 5 deletions
@@ -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; } |