From f80041efb991e4326971dea550157192f912d9a4 Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Tue, 3 May 2016 09:35:42 +0000 Subject: 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 --- gcc/reginfo.c | 1 + 1 file changed, 1 insertion(+) (limited to 'gcc/reginfo.c') diff --git a/gcc/reginfo.c b/gcc/reginfo.c index ccf53bf..f4dac08 100644 --- a/gcc/reginfo.c +++ b/gcc/reginfo.c @@ -449,6 +449,7 @@ init_reg_sets_1 (void) } COPY_HARD_REG_SET (call_fixed_reg_set, fixed_reg_set); + COPY_HARD_REG_SET (fixed_nonglobal_reg_set, fixed_reg_set); /* Preserve global registers if called more than once. */ for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) -- cgit v1.1