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
This commit is contained in:
Chandrakala Chavva 2000-07-10 16:10:15 -04:00 committed by Chandra Chavva
parent 92c26242fa
commit 46d3a87396
5 changed files with 27 additions and 3 deletions

View File

@ -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.

View File

@ -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

View File

@ -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. */

View File

@ -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

View File

@ -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]))