aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-streamer-in.c
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@codesourcery.com>2015-02-21 00:06:53 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2015-02-21 00:06:53 +0000
commit6d2b71997e784ec8fc63de0844c52a113c1482b7 (patch)
treec6a8b3a34b2171dafac01246049225405321ae9b /gcc/tree-streamer-in.c
parentb56ac9d5f41fc799b25397d2236e76c47893e128 (diff)
downloadgcc-6d2b71997e784ec8fc63de0844c52a113c1482b7.zip
gcc-6d2b71997e784ec8fc63de0844c52a113c1482b7.tar.gz
gcc-6d2b71997e784ec8fc63de0844c52a113c1482b7.tar.bz2
tree-streamer-in.c (unpack_ts_decl_common_value_fields, [...]): If ACCEL_COMPILER, restrict alignments to absolute_biggest_alignment.
* tree-streamer-in.c (unpack_ts_decl_common_value_fields, unpack_ts_type_common_value_fields): If ACCEL_COMPILER, restrict alignments to absolute_biggest_alignment. * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Define. * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add. * doc/tm.texi: Regenerate. * target.def (absolute_biggest_alignment): New DEFHOOKPOD. From-SVN: r220882
Diffstat (limited to 'gcc/tree-streamer-in.c')
-rw-r--r--gcc/tree-streamer-in.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/tree-streamer-in.c b/gcc/tree-streamer-in.c
index 506e676..b4b6482 100644
--- a/gcc/tree-streamer-in.c
+++ b/gcc/tree-streamer-in.c
@@ -247,7 +247,10 @@ unpack_ts_decl_common_value_fields (struct bitpack_d *bp, tree expr)
DECL_EXTERNAL (expr) = (unsigned) bp_unpack_value (bp, 1);
DECL_GIMPLE_REG_P (expr) = (unsigned) bp_unpack_value (bp, 1);
DECL_ALIGN (expr) = (unsigned) bp_unpack_var_len_unsigned (bp);
-
+#ifdef ACCEL_COMPILER
+ if (DECL_ALIGN (expr) > targetm.absolute_biggest_alignment)
+ DECL_ALIGN (expr) = targetm.absolute_biggest_alignment;
+#endif
if (TREE_CODE (expr) == LABEL_DECL)
{
EH_LANDING_PAD_NR (expr) = (int) bp_unpack_var_len_unsigned (bp);
@@ -391,6 +394,10 @@ unpack_ts_type_common_value_fields (struct bitpack_d *bp, tree expr)
TYPE_READONLY (expr) = (unsigned) bp_unpack_value (bp, 1);
TYPE_PRECISION (expr) = bp_unpack_var_len_unsigned (bp);
TYPE_ALIGN (expr) = bp_unpack_var_len_unsigned (bp);
+#ifdef ACCEL_COMPILER
+ if (TYPE_ALIGN (expr) > targetm.absolute_biggest_alignment)
+ TYPE_ALIGN (expr) = targetm.absolute_biggest_alignment;
+#endif
TYPE_ALIAS_SET (expr) = bp_unpack_var_len_int (bp);
}