* 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
+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.
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
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. */
-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
-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
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
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;
{"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]))