diff options
author | Chandrakala Chavva <cchavva@redhat.com> | 2000-07-10 16:10:15 -0400 |
---|---|---|
committer | Chandra Chavva <cchavva@gcc.gnu.org> | 2000-07-10 16:10:15 -0400 |
commit | 46d3a87396f1e5be05d7ef5709cdb0cc968b10cf (patch) | |
tree | a1b03704b1ab4a43af71f698bb714888ddcdaad6 /gcc | |
parent | 92c26242fab0e2558697221a2597101821b17346 (diff) | |
download | gcc-46d3a87396f1e5be05d7ef5709cdb0cc968b10cf.zip gcc-46d3a87396f1e5be05d7ef5709cdb0cc968b10cf.tar.gz gcc-46d3a87396f1e5be05d7ef5709cdb0cc968b10cf.tar.bz2 |
flags.h: Add new variable flag_single_precision_constant.
* flags.h : Add new variable flag_single_precision_constant.
* toplev.c (display_help) : Add -fsingle-precision-constant option.
(flag_single_precision_constant): New.
* c-lex.c (yylex): Convert floating point constant to single
precision constant.
* invoke.texi : Add documentation for this new option.
From-SVN: r34946
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/c-lex.c | 2 | ||||
-rw-r--r-- | gcc/flags.h | 5 | ||||
-rw-r--r-- | gcc/invoke.texi | 8 | ||||
-rw-r--r-- | gcc/toplev.c | 6 |
5 files changed, 27 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d6e7dff..074b8da 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2000-07-10 Chandrakala Chavva <cchavva@redhat.com> + + * flags.h : Add new variable flag_single_precision_constant. + * toplev.c (display_help) : Add -fsingle-precision-constant option. + (flag_single_precision_constant): New. + * c-lex.c (yylex): Convert floating point constant to single + precision constant. + * invoke.texi : Add documentation for this new option. + 2000-07-10 Gabriel Dos Reis <gdr@codesourcery.com> * diagnostic.c (output_octal): Second parameter is unsigned. diff --git a/gcc/c-lex.c b/gcc/c-lex.c index f720a3f..e38b807 100644 --- a/gcc/c-lex.c +++ b/gcc/c-lex.c @@ -1176,6 +1176,8 @@ parse_float (data) else { errno = 0; + if (flag_single_precision_constant) + args->type = float_type_node; if (args->base == 16) args->value = REAL_VALUE_HTOF (copy, TYPE_MODE (args->type)); else diff --git a/gcc/flags.h b/gcc/flags.h index 3c543bc..3dc5c7e 100644 --- a/gcc/flags.h +++ b/gcc/flags.h @@ -379,6 +379,11 @@ extern int flag_schedule_speculative_load_dangerous; by a cheaper branch, on a count register. */ extern int flag_branch_on_count_reg; +/* This option is set to 1 on -fsingle-precision-constant option which is + used to convert the floating point constants to single precision + constants. */ + +extern int flag_single_precision_constant; /* Nonzero means put things in delayed-branch slots if supported. */ diff --git a/gcc/invoke.texi b/gcc/invoke.texi index f7643ed..e1f2503 100644 --- a/gcc/invoke.texi +++ b/gcc/invoke.texi @@ -99,7 +99,7 @@ in the following sections. -ansi -fstd -fallow-single-precision -fcond-mismatch -fno-asm -fno-builtin -ffreestanding -fhosted -fsigned-bitfields -fsigned-char -funsigned-bitfields -funsigned-char -fwritable-strings --traditional -traditional-cpp -trigraphs +-traditional -traditional-cpp -trigraphs -fsingle-precision-constant @end smallexample @item C++ Language Options @@ -178,7 +178,7 @@ in the following sections. -fregmove -frerun-cse-after-loop -frerun-loop-opt -freduce-all-givs -fschedule-insns -fschedule-insns2 -fssa -fstrength-reduce -fstrict-aliasing -fthread-jumps -funroll-all-loops --funroll-loops +-funroll-loops -O -O0 -O1 -O2 -O3 -Os @end smallexample @@ -2897,6 +2897,10 @@ the flow graph is translated back from SSA form. (Currently, no SSA-based optimizations are implemented, but converting into and out of SSA form is not an invariant operation, and generated code may differ.) +@item -fsingle-precision-constant +Treat floating point constant as single precision constant instead of +implicitly converting it to double precision constant. + @end table @node Preprocessor Options diff --git a/gcc/toplev.c b/gcc/toplev.c index d02f840..098a2ec 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -744,6 +744,8 @@ int flag_schedule_speculative = 1; int flag_schedule_speculative_load = 0; int flag_schedule_speculative_load_dangerous = 0; +int flag_single_precision_constant; + /* flag_on_branch_count_reg means try to replace add-1,compare,branch tupple by a cheaper branch, on a count register. */ int flag_branch_on_count_reg; @@ -1103,7 +1105,9 @@ lang_independent_options f_options[] = {"bounded-pointers", &flag_bounded_pointers, 1, "Compile pointers as triples: value, base & end" }, {"bounds-check", &flag_bounds_check, 1, - "Generate code to check bounds before dereferencing pointers and arrays" } + "Generate code to check bounds before dereferencing pointers and arrays" }, + {"single-precision-constant", &flag_single_precision_constant, 1, + "Convert floating point constant to single precision constant"} }; #define NUM_ELEM(a) (sizeof (a) / sizeof ((a)[0])) |