summaryrefslogtreecommitdiff
path: root/gcc/ira-int.h
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2014-09-30 08:04:32 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2014-09-30 08:04:32 +0000
commitd02274e660aa88a0f1750798c21e8df6125f31e6 (patch)
treef4c9f1d2c838c3e2c542cc98b20aed91a2457ea4 /gcc/ira-int.h
parentc76141f619ced6c2887182c80f0867471c5b8090 (diff)
downloadgcc-d02274e660aa88a0f1750798c21e8df6125f31e6.tar.gz
gcc/
2014-09-26 David Sherwood <david.sherwood@arm.com> * ira-int.h (ira_allocno): Add "wmode" field. * ira-build.c (create_insn_allocnos): Add new "parent" function parameter. * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers that cannot be accessed in wmode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215707 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ira-int.h')
-rw-r--r--gcc/ira-int.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ira-int.h b/gcc/ira-int.h
index e3db1c7630d..e282415f98c 100644
--- a/gcc/ira-int.h
+++ b/gcc/ira-int.h
@@ -283,6 +283,9 @@ struct ira_allocno
/* Mode of the allocno which is the mode of the corresponding
pseudo-register. */
ENUM_BITFIELD (machine_mode) mode : 8;
+ /* Widest mode of the allocno which in at least one case could be
+ for paradoxical subregs where wmode > mode. */
+ ENUM_BITFIELD (machine_mode) wmode : 8;
/* Register class which should be used for allocation for given
allocno. NO_REGS means that we should use memory. */
ENUM_BITFIELD (reg_class) aclass : 16;
@@ -315,7 +318,7 @@ struct ira_allocno
number (0, ...) - 2. Value -1 is used for allocnos spilled by the
reload (at this point pseudo-register has only one allocno) which
did not get stack slot yet. */
- short int hard_regno;
+ int hard_regno : 16;
/* Allocnos with the same regno are linked by the following member.
Allocnos corresponding to inner loops are first in the list (it
corresponds to depth-first traverse of the loops). */
@@ -436,6 +439,7 @@ struct ira_allocno
#define ALLOCNO_BAD_SPILL_P(A) ((A)->bad_spill_p)
#define ALLOCNO_ASSIGNED_P(A) ((A)->assigned_p)
#define ALLOCNO_MODE(A) ((A)->mode)
+#define ALLOCNO_WMODE(A) ((A)->wmode)
#define ALLOCNO_PREFS(A) ((A)->allocno_prefs)
#define ALLOCNO_COPIES(A) ((A)->allocno_copies)
#define ALLOCNO_HARD_REG_COSTS(A) ((A)->hard_reg_costs)