Remove -fshort-double
PR target/60410 * tree.c (build_common_tree_nodes): Remove short_double argument. All callers changed. * tree.h (build_common_tree_nodes): Adjust declaration. * doc/invoke.texi (-fshort-double): Remove documentation. * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): Remove -fshort-double variant. * lto-wrapper.c (merge_and_complain, append_compiler_options, append_linker_options): Don't handle OPT_fshort_double. c-family/ PR target/60410 * c.opt (fshort-double): Remove. testsuite/ PR target/60410 * gcc.dg/lto/pr55113_0.c: Remove test. From-SVN: r233218
This commit is contained in:
parent
c0328be344
commit
a011cd929d
16 changed files with 34 additions and 54 deletions
|
@ -11,6 +11,16 @@
|
|||
|
||||
2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
|
||||
|
||||
PR target/60410
|
||||
* tree.c (build_common_tree_nodes): Remove short_double argument.
|
||||
All callers changed.
|
||||
* tree.h (build_common_tree_nodes): Adjust declaration.
|
||||
* doc/invoke.texi (-fshort-double): Remove documentation.
|
||||
* config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
|
||||
MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
|
||||
* lto-wrapper.c (merge_and_complain, append_compiler_options)
|
||||
(append_linker_options): Don't handle OPT_fshort_double.
|
||||
|
||||
PR rtl-optimization/68730
|
||||
* lra-remat.c (insn_to_cand_activation): New static variable.
|
||||
(lra_remat): Allocate and free it.
|
||||
|
|
|
@ -355,7 +355,7 @@ gnat_init (void)
|
|||
{
|
||||
/* Do little here, most of the standard declarations are set up after the
|
||||
front-end has been run. Use the same `char' as C for Interfaces.C. */
|
||||
build_common_tree_nodes (flag_signed_char, false);
|
||||
build_common_tree_nodes (flag_signed_char);
|
||||
|
||||
/* In Ada, we use an unsigned 8-bit type for the default boolean type. */
|
||||
boolean_type_node = make_unsigned_type (8);
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
|
||||
|
||||
PR target/60410
|
||||
* c.opt (fshort-double): Remove.
|
||||
|
||||
2016-02-05 Martin Sebor <msebor@redhat.com>
|
||||
|
||||
PR c++/69662
|
||||
|
|
|
@ -5237,7 +5237,7 @@ c_common_nodes_and_builtins (void)
|
|||
tree va_list_arg_type_node;
|
||||
int i;
|
||||
|
||||
build_common_tree_nodes (flag_signed_char, flag_short_double);
|
||||
build_common_tree_nodes (flag_signed_char);
|
||||
|
||||
/* Define `int' and `char' first so that dbx will output them first. */
|
||||
record_builtin_type (RID_INT, NULL, integer_type_node);
|
||||
|
|
|
@ -1439,10 +1439,6 @@ frtti
|
|||
C++ ObjC++ Optimization Var(flag_rtti) Init(1)
|
||||
Generate run time type descriptor information.
|
||||
|
||||
fshort-double
|
||||
C ObjC C++ ObjC++ LTO Optimization Var(flag_short_double)
|
||||
Use the same size for double as for float.
|
||||
|
||||
fshort-enums
|
||||
C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
|
||||
Use the narrowest integer type possible for enumeration types.
|
||||
|
|
|
@ -20,19 +20,14 @@
|
|||
# A multilib for mips32r6+LE
|
||||
# A multilib for mips64r6
|
||||
# A multilib for mips64r6+LE
|
||||
# A multilib for mips32r6+LE+singlefloat+shortdouble
|
||||
|
||||
MULTILIB_OPTIONS = mips64r6 mabi=64 EL msoft-float/msingle-float fshort-double
|
||||
MULTILIB_DIRNAMES = mips64r6 64 el sof sgl short
|
||||
MULTILIB_OPTIONS = mips64r6 mabi=64 EL msoft-float/msingle-float
|
||||
MULTILIB_DIRNAMES = mips64r6 64 el sof sgl
|
||||
MULTILIB_MATCHES = EL=mel EB=meb
|
||||
|
||||
# Don't build 64r6 with single-float
|
||||
MULTILIB_EXCEPTIONS += mips64r6/*msingle-float*
|
||||
MULTILIB_EXCEPTIONS += mips64r6/*fshort-double*
|
||||
|
||||
MULTILIB_EXCEPTIONS += mabi=64*
|
||||
MULTILIB_EXCEPTIONS += msingle-float*
|
||||
MULTILIB_EXCEPTIONS += *msingle-float
|
||||
MULTILIB_EXCEPTIONS += fshort-double
|
||||
MULTILIB_EXCEPTIONS += EL/fshort-double
|
||||
MULTILIB_EXCEPTIONS += *msoft-float/fshort-double
|
||||
|
|
|
@ -489,8 +489,7 @@ Objective-C and Objective-C++ Dialects}.
|
|||
-fpcc-struct-return -fpic -fPIC -fpie -fPIE -fno-plt @gol
|
||||
-fno-jump-tables @gol
|
||||
-frecord-gcc-switches @gol
|
||||
-freg-struct-return -fshort-enums @gol
|
||||
-fshort-double -fshort-wchar @gol
|
||||
-freg-struct-return -fshort-enums -fshort-wchar @gol
|
||||
-fverbose-asm -fpack-struct[=@var{n}] @gol
|
||||
-fleading-underscore -ftls-model=@var{model} @gol
|
||||
-fstack-reuse=@var{reuse_level} @gol
|
||||
|
@ -11109,14 +11108,6 @@ is equivalent to the smallest integer type that has enough room.
|
|||
code that is not binary compatible with code generated without that switch.
|
||||
Use it to conform to a non-default application binary interface.
|
||||
|
||||
@item -fshort-double
|
||||
@opindex fshort-double
|
||||
Use the same size for @code{double} as for @code{float}.
|
||||
|
||||
@strong{Warning:} the @option{-fshort-double} switch causes GCC to generate
|
||||
code that is not binary compatible with code generated without that switch.
|
||||
Use it to conform to a non-default application binary interface.
|
||||
|
||||
@item -fshort-wchar
|
||||
@opindex fshort-wchar
|
||||
Override the underlying type for @code{wchar_t} to be @code{short
|
||||
|
|
|
@ -491,9 +491,8 @@ gfc_init_decl_processing (void)
|
|||
global_binding_level = current_binding_level;
|
||||
|
||||
/* Build common tree nodes. char_type_node is unsigned because we
|
||||
only use it for actual characters, not for INTEGER(1). Also, we
|
||||
want double_type_node to actually have double precision. */
|
||||
build_common_tree_nodes (false, false);
|
||||
only use it for actual characters, not for INTEGER(1). */
|
||||
build_common_tree_nodes (false);
|
||||
|
||||
void_list_node = build_tree_list (NULL_TREE, void_type_node);
|
||||
|
||||
|
|
|
@ -89,7 +89,7 @@ static const char *go_relative_import_path = NULL;
|
|||
static bool
|
||||
go_langhook_init (void)
|
||||
{
|
||||
build_common_tree_nodes (false, false);
|
||||
build_common_tree_nodes (false);
|
||||
|
||||
/* I don't know why this has to be done explicitly. */
|
||||
void_list_node = build_tree_list (NULL_TREE, void_type_node);
|
||||
|
|
|
@ -565,7 +565,7 @@ java_init_decl_processing (void)
|
|||
global_binding_level = current_binding_level;
|
||||
|
||||
/* Build common tree nodes, Java has an unsigned char. */
|
||||
build_common_tree_nodes (false, false);
|
||||
build_common_tree_nodes (false);
|
||||
|
||||
/* ??? Now we continue and override some of the built types again
|
||||
with Java specific types. As the above generated types are
|
||||
|
|
|
@ -308,7 +308,6 @@ merge_and_complain (struct cl_decoded_option **decoded_options,
|
|||
|
||||
case OPT_freg_struct_return:
|
||||
case OPT_fpcc_struct_return:
|
||||
case OPT_fshort_double:
|
||||
for (j = 0; j < *decoded_options_count; ++j)
|
||||
if ((*decoded_options)[j].opt_index == foption->opt_index)
|
||||
break;
|
||||
|
@ -511,7 +510,6 @@ append_compiler_options (obstack *argv_obstack, struct cl_decoded_option *opts,
|
|||
case OPT_fgnu_tm:
|
||||
case OPT_freg_struct_return:
|
||||
case OPT_fpcc_struct_return:
|
||||
case OPT_fshort_double:
|
||||
case OPT_ffp_contract_:
|
||||
case OPT_fmath_errno:
|
||||
case OPT_fsigned_zeros:
|
||||
|
@ -569,7 +567,6 @@ append_linker_options (obstack *argv_obstack, struct cl_decoded_option *opts,
|
|||
|
||||
case OPT_freg_struct_return:
|
||||
case OPT_fpcc_struct_return:
|
||||
case OPT_fshort_double:
|
||||
/* Ignore these, they are determined by the input files.
|
||||
??? We fail to diagnose a possible mismatch here. */
|
||||
continue;
|
||||
|
|
|
@ -1246,7 +1246,7 @@ lto_init (void)
|
|||
flag_generate_lto = (flag_wpa != NULL);
|
||||
|
||||
/* Create the basic integer types. */
|
||||
build_common_tree_nodes (flag_signed_char, flag_short_double);
|
||||
build_common_tree_nodes (flag_signed_char);
|
||||
|
||||
/* The global tree for the main identifier is filled in by
|
||||
language-specific front-end initialization that is not run in the
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
|
||||
|
||||
PR target/60410
|
||||
* gcc.dg/lto/pr55113_0.c: Remove test.
|
||||
|
||||
2016-02-08 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/69719
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
/* PR 55113 */
|
||||
/* { dg-lto-do link } */
|
||||
/* { dg-lto-options { { -flto -fshort-double -O0 } } }*/
|
||||
/* { dg-skip-if "PR60410" { i?86-*-* x86_64-*-* } } */
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
float a = 1.0;
|
||||
float b = 2.0;
|
||||
double f = a + b * 1e-12;
|
||||
return (int)f - 1;
|
||||
}
|
11
gcc/tree.c
11
gcc/tree.c
|
@ -10036,12 +10036,10 @@ build_atomic_base (tree type, unsigned int align)
|
|||
}
|
||||
|
||||
/* Create nodes for all integer types (and error_mark_node) using the sizes
|
||||
of C datatypes. SIGNED_CHAR specifies whether char is signed,
|
||||
SHORT_DOUBLE specifies whether double should be of the same precision
|
||||
as float. */
|
||||
of C datatypes. SIGNED_CHAR specifies whether char is signed. */
|
||||
|
||||
void
|
||||
build_common_tree_nodes (bool signed_char, bool short_double)
|
||||
build_common_tree_nodes (bool signed_char)
|
||||
{
|
||||
int i;
|
||||
|
||||
|
@ -10202,10 +10200,7 @@ build_common_tree_nodes (bool signed_char, bool short_double)
|
|||
layout_type (float_type_node);
|
||||
|
||||
double_type_node = make_node (REAL_TYPE);
|
||||
if (short_double)
|
||||
TYPE_PRECISION (double_type_node) = FLOAT_TYPE_SIZE;
|
||||
else
|
||||
TYPE_PRECISION (double_type_node) = DOUBLE_TYPE_SIZE;
|
||||
TYPE_PRECISION (double_type_node) = DOUBLE_TYPE_SIZE;
|
||||
layout_type (double_type_node);
|
||||
|
||||
long_double_type_node = make_node (REAL_TYPE);
|
||||
|
|
|
@ -4763,7 +4763,7 @@ extern tree reconstruct_complex_type (tree, tree);
|
|||
extern int real_onep (const_tree);
|
||||
extern int real_minus_onep (const_tree);
|
||||
extern void init_ttree (void);
|
||||
extern void build_common_tree_nodes (bool, bool);
|
||||
extern void build_common_tree_nodes (bool);
|
||||
extern void build_common_builtin_nodes (void);
|
||||
extern tree build_nonstandard_integer_type (unsigned HOST_WIDE_INT, int);
|
||||
extern tree build_nonstandard_boolean_type (unsigned HOST_WIDE_INT);
|
||||
|
|
Loading…
Add table
Reference in a new issue