diff options
author | Paulo Matos <paulo@matos-sorge.com> | 2014-03-08 11:54:05 +0100 |
---|---|---|
committer | Paulo Matos <pmatos@gcc.gnu.org> | 2014-03-08 11:54:05 +0100 |
commit | f42c637eb7775b2f2a564526f314143fdc156df1 (patch) | |
tree | 95ca8c693768f8d7457772293f48f82ccedfaea6 /gcc | |
parent | 1c74dc2ad6a8cba31b324b7d14a633522d937af3 (diff) | |
download | gcc-f42c637eb7775b2f2a564526f314143fdc156df1.zip gcc-f42c637eb7775b2f2a564526f314143fdc156df1.tar.gz gcc-f42c637eb7775b2f2a564526f314143fdc156df1.tar.bz2 |
lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used consistently accross all TUs.
2014-03-08 Paulo Matos <paulo@matos-sorge.com>
Richard Biener <rguenther@suse.de>
* lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
consistently accross all TUs.
(run_gcc): Enable -fshort-double automatically at link at link-time
and disallow override.
2014-03-08 Paulo Matos <paulo@matos-sorge.com>
* c.opt: Enable LTO FE for fshort-double.
2014-03-08 Paulo Matos <paulo@matos-sorge.com>
* gcc.dg/lto/pr55113_0.c: New testcase.
2014-03-08 Paulo Matos <paulo@matos-sorge.com>
* lto-lang.c (lto_init): Pass flag_short_double to
build_common_tree_nodes.
Co-Authored-By: Richard Biener <rguenther@suse.de>
From-SVN: r208428
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/c-family/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/c-family/c.opt | 2 | ||||
-rw-r--r-- | gcc/lto-wrapper.c | 3 | ||||
-rw-r--r-- | gcc/lto/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/lto/lto-lang.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/lto/pr55113_0.c | 13 |
8 files changed, 39 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5611246..8988006 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2014-03-08 Paulo Matos <paulo@matos-sorge.com> + Richard Biener <rguenther@suse.de> + + * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used + consistently accross all TUs. + (run_gcc): Enable -fshort-double automatically at link at link-time + and disallow override. + 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com> PR target/58271 diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 6830fd5..7d49933 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,7 @@ +2014-03-08 Paulo Matos <paulo@matos-sorge.com> + + * c.opt: Enable LTO FE for fshort-double. + 2014-03-07 Jason Merrill <jason@redhat.com> * c.opt: Add -std=c++14. diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt index 93fb7c2..625c3ba 100644 --- a/gcc/c-family/c.opt +++ b/gcc/c-family/c.opt @@ -1141,7 +1141,7 @@ C++ ObjC++ Optimization Var(flag_rtti) Init(1) Generate run time type descriptor information fshort-double -C ObjC C++ ObjC++ Optimization Var(flag_short_double) +C ObjC C++ ObjC++ LTO Optimization Var(flag_short_double) Use the same size for double as for float fshort-enums diff --git a/gcc/lto-wrapper.c b/gcc/lto-wrapper.c index cf587cb..eb5611b 100644 --- a/gcc/lto-wrapper.c +++ b/gcc/lto-wrapper.c @@ -452,6 +452,7 @@ 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; @@ -677,6 +678,7 @@ run_gcc (unsigned argc, char *argv[]) case OPT_fgnu_tm: case OPT_freg_struct_return: case OPT_fpcc_struct_return: + case OPT_fshort_double: case OPT_ffp_contract_: case OPT_fwrapv: case OPT_ftrapv: @@ -748,6 +750,7 @@ run_gcc (unsigned argc, char *argv[]) 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; diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 815d0c1..7a2940e 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,8 @@ +2014-03-08 Paulo Matos <paulo@matos-sorge.com> + + * lto-lang.c (lto_init): Pass flag_short_double to + build_common_tree_nodes. + 2014-02-14 Jan Hubicka <hubicka@ucw.cz> PR lto/60295 diff --git a/gcc/lto/lto-lang.c b/gcc/lto/lto-lang.c index 28eac6f..f92e884 100644 --- a/gcc/lto/lto-lang.c +++ b/gcc/lto/lto-lang.c @@ -1158,7 +1158,7 @@ lto_init (void) flag_generate_lto = (flag_wpa != NULL); /* Create the basic integer types. */ - build_common_tree_nodes (flag_signed_char, /*short_double=*/false); + build_common_tree_nodes (flag_signed_char, flag_short_double); /* The global tree for the main identifier is filled in by language-specific front-end initialization that is not run in the diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f29b5a4..318f519 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2014-03-08 Paulo Matos <paulo@matos-sorge.com> + + * gcc.dg/lto/pr55113_0.c: New testcase. + 2014-03-08 Adam Butcher <adam@jessamine.co.uk> PR c++/60033 diff --git a/gcc/testsuite/gcc.dg/lto/pr55113_0.c b/gcc/testsuite/gcc.dg/lto/pr55113_0.c new file mode 100644 index 0000000..8ef11dc --- /dev/null +++ b/gcc/testsuite/gcc.dg/lto/pr55113_0.c @@ -0,0 +1,13 @@ +/* PR 55113 */ +/* { dg-lto-do link } */ +/* { dg-lto-options { { -flto -fshort-double -O0 } } }*/ +/* { dg-skip-if "PR60410" { { x86_64-*-* i?86-*-* } && lp64 } } */ + +int +main(void) +{ + float a = 1.0; + float b = 2.0; + double f = a + b * 1e-12; + return (int)f - 1; +} |