diff options
author | Bernd Schmidt <bernds@codesourcery.com> | 2015-02-20 10:01:17 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2015-02-20 11:01:17 +0100 |
commit | db3267c60664bcfa8d7b0683a5567b24432b5a48 (patch) | |
tree | 710955b79268344e8171ec3149def3129c01c4ef /gcc | |
parent | 6b66981a2f73615e0d3bb422a44b70a2ff38740d (diff) | |
download | gcc-db3267c60664bcfa8d7b0683a5567b24432b5a48.zip gcc-db3267c60664bcfa8d7b0683a5567b24432b5a48.tar.gz gcc-db3267c60664bcfa8d7b0683a5567b24432b5a48.tar.bz2 |
tree-streamer.c (preload_common_nodes): Don't preload TI_VA_LIST* for offloading.
* tree-streamer.c (preload_common_nodes): Don't preload
TI_VA_LIST* for offloading.
* tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
in_lto_p.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r220846
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/tree-stdarg.c | 7 | ||||
-rw-r--r-- | gcc/tree-streamer.c | 9 |
3 files changed, 23 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f36328e..ff6df3d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2015-02-20 Bernd Schmidt <bernds@codesourcery.com> + Jakub Jelinek <jakub@redhat.com> + + * tree-streamer.c (preload_common_nodes): Don't preload + TI_VA_LIST* for offloading. + * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER + in_lto_p. + 2015-02-19 John David Anglin <danlgin@gcc.gnu.org> * config/pa/pa.c (pa_emit_move_sequence): Always force diff --git a/gcc/tree-stdarg.c b/gcc/tree-stdarg.c index 17d51a2..0c70790 100644 --- a/gcc/tree-stdarg.c +++ b/gcc/tree-stdarg.c @@ -705,6 +705,13 @@ public: virtual bool gate (function *fun) { return (flag_stdarg_opt +#ifdef ACCEL_COMPILER + /* Disable for GCC5 in the offloading compilers, as + va_list and gpr/fpr counter fields are not merged. + In GCC6 when stdarg is lowered late this shouldn't be + an issue. */ + && !in_lto_p +#endif /* This optimization is only for stdarg functions. */ && fun->stdarg != 0); } diff --git a/gcc/tree-streamer.c b/gcc/tree-streamer.c index 8f597aa..7b35358 100644 --- a/gcc/tree-streamer.c +++ b/gcc/tree-streamer.c @@ -342,7 +342,14 @@ preload_common_nodes (struct streamer_tree_cache_d *cache) && i != TI_TARGET_OPTION_DEFAULT && i != TI_TARGET_OPTION_CURRENT && i != TI_CURRENT_TARGET_PRAGMA - && i != TI_CURRENT_OPTIMIZE_PRAGMA) + && i != TI_CURRENT_OPTIMIZE_PRAGMA + /* Skip va_list* related nodes if offloading. For native LTO + we want them to be merged for the stdarg pass, for offloading + they might not be identical between host and offloading target. */ + && (!lto_stream_offload_p + || (i != TI_VA_LIST_TYPE + && i != TI_VA_LIST_GPR_COUNTER_FIELD + && i != TI_VA_LIST_FPR_COUNTER_FIELD))) record_common_node (cache, global_trees[i]); } |