aboutsummaryrefslogtreecommitdiff
path: root/gcc/ira.c
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@redhat.com>2016-05-03 09:35:42 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2016-05-03 09:35:42 +0000
commitf80041efb991e4326971dea550157192f912d9a4 (patch)
treedb4f856ef821d7dc564edeb431dc0da7bf076b30 /gcc/ira.c
parent1cfcd39eee915a7582adc113fa6e7faac8b943e4 (diff)
downloadgcc-f80041efb991e4326971dea550157192f912d9a4.zip
gcc-f80041efb991e4326971dea550157192f912d9a4.tar.gz
gcc-f80041efb991e4326971dea550157192f912d9a4.tar.bz2
Fix PR44281, bad RA with global regs.
PR rtl-optimization/44281 * hard-reg-set.h (struct target_hard_regs): New field x_fixed_nonglobal_reg_set. (fixed_nonglobal_reg_set): New macro. * reginfo.c (init_reg_sets_1): Initialize it. * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead of fixed_reg_set. * df-scan.c (df_insn_refs_collect): Asms may reference global regs. testsuite/ PR rtl-optimization/44281 * gcc.target/i386/pr44281.c: New test. From-SVN: r235809
Diffstat (limited to 'gcc/ira.c')
-rw-r--r--gcc/ira.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/ira.c b/gcc/ira.c
index a38e67e..d383a55 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -512,7 +512,7 @@ setup_alloc_regs (bool use_hard_frame_p)
#ifdef ADJUST_REG_ALLOC_ORDER
ADJUST_REG_ALLOC_ORDER;
#endif
- COPY_HARD_REG_SET (no_unit_alloc_regs, fixed_reg_set);
+ COPY_HARD_REG_SET (no_unit_alloc_regs, fixed_nonglobal_reg_set);
if (! use_hard_frame_p)
SET_HARD_REG_BIT (no_unit_alloc_regs, HARD_FRAME_POINTER_REGNUM);
setup_class_hard_regs ();