summaryrefslogtreecommitdiff
path: root/gcc/hard-reg-set.h
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2012-01-17 17:21:49 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2012-01-17 17:21:49 +0100
commitee3d2ecdc509868214e682f4192cf7047d57a78d (patch)
tree063806ffabfecffdb1aa308a9a26013274f0668b /gcc/hard-reg-set.h
parent3b4f05ec1ee0a91c937f9c90df8addf6aec7ad5f (diff)
re PR target/51872 (Shrink-wrapping with -mminimal-toc causes bootstrap failure)
PR bootstrap/51872 * hard-reg-set.h (struct hard_reg_set_container): New type. * target.h (struct hard_reg_set_container): Forward declare. * target.def (set_up_by_prologue): New target hook. * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it. * doc/tm.texi: Regenerated. * function.c (thread_prologue_and_epilogue_insns): Change set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container. Call targetm.set_up_by_prologue on it. * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function. (TARGET_SET_UP_BY_PROLOGUE): Redefine to it. From-SVN: r183254
Diffstat (limited to 'gcc/hard-reg-set.h')
-rw-r--r--gcc/hard-reg-set.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/hard-reg-set.h b/gcc/hard-reg-set.h
index 9823a5b3441..ecdad174c13 100644
--- a/gcc/hard-reg-set.h
+++ b/gcc/hard-reg-set.h
@@ -1,6 +1,6 @@
/* Sets (bit vectors) of hard registers, and operations on them.
Copyright (C) 1987, 1992, 1994, 2000, 2003, 2004, 2005, 2007, 2008, 2009,
- 2010 Free Software Foundation, Inc.
+ 2010, 2012 Free Software Foundation, Inc.
This file is part of GCC
@@ -54,6 +54,14 @@ typedef HARD_REG_ELT_TYPE HARD_REG_SET[HARD_REG_SET_LONGS];
#endif
+/* HARD_REG_SET wrapped into a structure, to make it possible to
+ use HARD_REG_SET even in APIs that should not include
+ hard-reg-set.h. */
+struct hard_reg_set_container
+{
+ HARD_REG_SET set;
+};
+
/* HARD_CONST is used to cast a constant to the appropriate type
for use with a HARD_REG_SET. */