aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorChandrakala Chavva <cchavva@redhat.com>2000-07-10 16:10:15 -0400
committerChandra Chavva <cchavva@gcc.gnu.org>2000-07-10 16:10:15 -0400
commit46d3a87396f1e5be05d7ef5709cdb0cc968b10cf (patch)
treea1b03704b1ab4a43af71f698bb714888ddcdaad6 /gcc
parent92c26242fab0e2558697221a2597101821b17346 (diff)
downloadgcc-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/ChangeLog9
-rw-r--r--gcc/c-lex.c2
-rw-r--r--gcc/flags.h5
-rw-r--r--gcc/invoke.texi8
-rw-r--r--gcc/toplev.c6
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]))