From 2bd0853710d6bda898e11f38dc704107e0c2823d Mon Sep 17 00:00:00 2001 From: vmakarov Date: Mon, 15 Dec 2014 19:51:31 +0000 Subject: 2014-12-15 Vladimir Makarov * ira-int.h (ira_prohibited_class_mode_regs): Remove. (struct target_ira_int): Move x_ira_prohibited_class_mode_regs to ... * ira.h (struct target_ira_int): ... here. (ira_prohibited_class_mode_regs): Define. * lra-constraints.c (process_alt_operands): Add one more condition to refuse alternative when reload pseudo of given class can not hold value of given mode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218760 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ira.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gcc/ira.h') diff --git a/gcc/ira.h b/gcc/ira.h index d62656cc0bd..2fa8d6db902 100644 --- a/gcc/ira.h +++ b/gcc/ira.h @@ -110,6 +110,11 @@ struct target_ira /* Function specific hard registers can not be used for the register allocation. */ HARD_REG_SET x_ira_no_alloc_regs; + + /* Array whose values are hard regset of hard registers available for + the allocation of given register class whose HARD_REGNO_MODE_OK + values for given mode are zero. */ + HARD_REG_SET x_ira_prohibited_class_mode_regs[N_REG_CLASSES][NUM_MACHINE_MODES]; }; extern struct target_ira default_target_ira; @@ -155,6 +160,8 @@ extern struct target_ira *this_target_ira; (this_target_ira->x_ira_class_singleton) #define ira_no_alloc_regs \ (this_target_ira->x_ira_no_alloc_regs) +#define ira_prohibited_class_mode_regs \ + (this_target_ira->x_ira_prohibited_class_mode_regs) /* Major structure describing equivalence info for a pseudo. */ struct ira_reg_equiv_s -- cgit v1.2.1