aboutsummaryrefslogtreecommitdiff
path: root/gcc/ra-conflict.c
diff options
context:
space:
mode:
authorKenneth Zadeck <zadeck@gcc.gnu.org>2008-03-06 00:21:34 +0000
committerKenneth Zadeck <zadeck@gcc.gnu.org>2008-03-06 00:21:34 +0000
commitca9052ce17c72129b59e1e17d790a3e08737f82e (patch)
tree81a4fa5e0fbdeae7d436872de34208dd812b0bd9 /gcc/ra-conflict.c
parent256fe3d795af429bc68d6f9d94c6c3e871a69736 (diff)
downloadgcc-ca9052ce17c72129b59e1e17d790a3e08737f82e.zip
gcc-ca9052ce17c72129b59e1e17d790a3e08737f82e.tar.gz
gcc-ca9052ce17c72129b59e1e17d790a3e08737f82e.tar.bz2
fwprop.c (update_df): Support width and offset parameters of df_ref_create.
2008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com> * fwprop.c (update_df): Support width and offset parameters of df_ref_create. * ra-conflict.c (mark_reg_store, clear_reg_in_live, global_conflicts): Change DF_REF_EXTRACT to either DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART. * df-scan.c (df_ref_record, df_defs_record, df_ref_create_structure, df_def_record_1, df_uses_record, df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, df_entry_block_defs_collect, df_exit_block_uses_collect): Support new width and offset fields. (ref_extract_pool): New storage pool. (df_free_ref): New function. (df_reg_chain_unlink, df_free_collection_rec, df_sort_and_compress_refs): Call df_free_ref. (df_ref_equal_p, df_ref_compare): Compare offset and width fields of df_ref_extract. (df_ref_create_structure): Allocate df_ref_extract if offset and width fields are used. (df_def_record_1): Get offset and width from ZERO_EXTRACT. (df_uses_record): Get offset and width from ZERO_EXTRACT and SIGN_EXTRACT. * global.c (build_insn_chain): Change DF_REF_EXTRACT to either DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART. * df.h (df_ref_flags): Change DF_REF_EXTRACT to either DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART. (df_ref_extract): New structure. (DF_REF_WIDTH, DF_REF_OFFSET): New macros. (df_ref_create): Add width and offset parameters. From-SVN: r132962
Diffstat (limited to 'gcc/ra-conflict.c')
-rw-r--r--gcc/ra-conflict.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/gcc/ra-conflict.c b/gcc/ra-conflict.c
index 78d4f92..a4f9e5f 100644
--- a/gcc/ra-conflict.c
+++ b/gcc/ra-conflict.c
@@ -297,7 +297,7 @@ mark_reg_store (sparseset allocnos_live,
{
unsigned int start = regno;
unsigned int last = end_hard_regno (mode, regno);
- if ((GET_CODE (reg) == SUBREG) && !DF_REF_FLAGS_IS_SET (ref, DF_REF_EXTRACT))
+ if ((GET_CODE (reg) == SUBREG) && !DF_REF_FLAGS_IS_SET (ref, DF_REF_ZERO_EXTRACT))
{
start += subreg_regno_offset (regno, GET_MODE (SUBREG_REG (reg)),
SUBREG_BYTE (reg), GET_MODE (reg));
@@ -457,7 +457,7 @@ clear_reg_in_live (sparseset allocnos_live,
if (allocnum >= 0)
{
if (GET_CODE (reg) == SUBREG
- && !DF_REF_FLAGS_IS_SET (def, DF_REF_EXTRACT))
+ && !DF_REF_FLAGS_IS_SET (def, DF_REF_ZERO_EXTRACT))
{
unsigned int start = SUBREG_BYTE (reg);
unsigned int last = start + GET_MODE_SIZE (GET_MODE (reg));
@@ -465,7 +465,7 @@ clear_reg_in_live (sparseset allocnos_live,
ra_init_live_subregs (sparseset_bit_p (allocnos_live, allocnum),
live_subregs, live_subregs_used, allocnum, reg);
- if (!DF_REF_FLAGS_IS_SET (def, DF_REF_STRICT_LOWER_PART))
+ if (!DF_REF_FLAGS_IS_SET (def, DF_REF_STRICT_LOW_PART))
{
/* Expand the range to cover entire words.
Bytes added here are "don't care". */
@@ -511,7 +511,7 @@ clear_reg_in_live (sparseset allocnos_live,
{
unsigned int start = regno;
if (GET_CODE (reg) == SUBREG
- && !DF_REF_FLAGS_IS_SET (def, DF_REF_EXTRACT))
+ && !DF_REF_FLAGS_IS_SET (def, DF_REF_ZERO_EXTRACT))
{
unsigned int last;
start += SUBREG_BYTE (reg);
@@ -864,7 +864,7 @@ global_conflicts (void)
rtx reg = DF_REF_REG (def);
set_reg_in_live (allocnos_live, live_subregs, live_subregs_used,
&hard_regs_live, reg,
- DF_REF_FLAGS_IS_SET (def, DF_REF_EXTRACT));
+ DF_REF_FLAGS_IS_SET (def, DF_REF_ZERO_EXTRACT));
if (dump_file)
dump_ref (dump_file, " adding def", "\n",
reg, DF_REF_REGNO (def), live_subregs, live_subregs_used);
@@ -946,7 +946,7 @@ global_conflicts (void)
use unless that set also happens to wrapped in a
ZERO_EXTRACT. */
if (DF_REF_FLAGS_IS_SET (use, DF_REF_READ_WRITE)
- && (!DF_REF_FLAGS_IS_SET (use, DF_REF_EXTRACT))
+ && (!DF_REF_FLAGS_IS_SET (use, DF_REF_ZERO_EXTRACT))
&& DF_REF_FLAGS_IS_SET (use, DF_REF_SUBREG))
continue;
@@ -957,7 +957,7 @@ global_conflicts (void)
if (allocnum >= 0)
{
if (GET_CODE (reg) == SUBREG
- && !DF_REF_FLAGS_IS_SET (use, DF_REF_EXTRACT))
+ && !DF_REF_FLAGS_IS_SET (use, DF_REF_ZERO_EXTRACT))
{
unsigned int start = SUBREG_BYTE (reg);
unsigned int last = start + GET_MODE_SIZE (GET_MODE (reg));