summaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2003-02-28 10:11:47 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2003-02-28 10:11:47 +0000
commitc3988e3beb5f2c60564c959918af009f2338d308 (patch)
tree90126b3c24f149851de417e946284822a2bf0b58 /gcc/flow.c
parent02cddcf4e59ff3710039490299eabb2c81a5a2b9 (diff)
downloadgcc-c3988e3beb5f2c60564c959918af009f2338d308.tar.gz
* combine.c (gen_lowpart_for_combine): Update handling of
subregs_of_mode * flow.c (life_analysis, mark_used_regs): Likewise. * regclass.c (subregs_of_mode): Turn into single bitmap. (cannot_change-mode_set_regs, invalid_mode_change_p): Update dealing with subregs_of_mode * regs.h (subregs_of_mode): Update prototype. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@63552 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/flow.c')
-rw-r--r--gcc/flow.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index 24f869153c0..fb60610a7a8 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -436,11 +436,7 @@ life_analysis (f, file, flags)
#ifdef CANNOT_CHANGE_MODE_CLASS
if (flags & PROP_REG_INFO)
- {
- int j;
- for (j=0; j < NUM_MACHINE_MODES; ++j)
- INIT_REG_SET (&subregs_of_mode[j]);
- }
+ bitmap_initialize (&subregs_of_mode, 1);
#endif
if (! optimize)
@@ -3845,8 +3841,9 @@ mark_used_regs (pbi, x, cond, insn)
#ifdef CANNOT_CHANGE_MODE_CLASS
if (GET_CODE (SUBREG_REG (x)) == REG
&& REGNO (SUBREG_REG (x)) >= FIRST_PSEUDO_REGISTER)
- SET_REGNO_REG_SET (&subregs_of_mode[GET_MODE (x)],
- REGNO (SUBREG_REG (x)));
+ bitmap_set_bit (&subregs_of_mode, REGNO (SUBREG_REG (x))
+ * MAX_MACHINE_MODE
+ + GET_MODE (x));
#endif
/* While we're here, optimize this case. */
@@ -3894,8 +3891,9 @@ mark_used_regs (pbi, x, cond, insn)
if (GET_CODE (testreg) == SUBREG
&& GET_CODE (SUBREG_REG (testreg)) == REG
&& REGNO (SUBREG_REG (testreg)) >= FIRST_PSEUDO_REGISTER)
- SET_REGNO_REG_SET (&subregs_of_mode[GET_MODE (testreg)],
- REGNO (SUBREG_REG (testreg)));
+ bitmap_set_bit (&subregs_of_mode, REGNO (SUBREG_REG (testreg))
+ * MAX_MACHINE_MODE
+ + GET_MODE (testreg));
#endif
/* Modifying a single register in an alternate mode