Commit e26d1bb2 by David Malcolm Committed by David Malcolm

gcse.c's modify_mem_list is a list of insns

gcc/ChangeLog:
2014-09-08  David Malcolm  <dmalcolm@redhat.com>

	* gcse.c (modify_mem_list): Strengthen this variable from
	vec<rtx> * to vec<rtx_insn *> *.
	(vec_rtx_heap): Strengthen this typedef from vec<rtx> to
	vec<rtx_insn *>.
	(load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
	vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
	(record_last_mem_set_info): Strengthen param "insn" from rtx to
	rtx_insn *.
	(record_last_set_info): Likewise for local "last_set_insn".

From-SVN: r215027
parent 19b472cc
2014-09-08 David Malcolm <dmalcolm@redhat.com>
* gcse.c (modify_mem_list): Strengthen this variable from
vec<rtx> * to vec<rtx_insn *> *.
(vec_rtx_heap): Strengthen this typedef from vec<rtx> to
vec<rtx_insn *>.
(load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
(record_last_mem_set_info): Strengthen param "insn" from rtx to
rtx_insn *.
(record_last_set_info): Likewise for local "last_set_insn".
2014-09-08 DJ Delorie <dj@redhat.com> 2014-09-08 DJ Delorie <dj@redhat.com>
* doc/invoke.texi (MSP430 Options): Add -minrt. * doc/invoke.texi (MSP430 Options): Add -minrt.
...@@ -395,7 +395,7 @@ static regset reg_set_bitmap; ...@@ -395,7 +395,7 @@ static regset reg_set_bitmap;
/* Array, indexed by basic block number for a list of insns which modify /* Array, indexed by basic block number for a list of insns which modify
memory within that block. */ memory within that block. */
static vec<rtx> *modify_mem_list; static vec<rtx_insn *> *modify_mem_list;
static bitmap modify_mem_list_set; static bitmap modify_mem_list_set;
typedef struct modify_pair_s typedef struct modify_pair_s
...@@ -474,7 +474,7 @@ static void insert_expr_in_table (rtx, enum machine_mode, rtx_insn *, int, int, ...@@ -474,7 +474,7 @@ static void insert_expr_in_table (rtx, enum machine_mode, rtx_insn *, int, int,
int, struct hash_table_d *); int, struct hash_table_d *);
static unsigned int hash_expr (const_rtx, enum machine_mode, int *, int); static unsigned int hash_expr (const_rtx, enum machine_mode, int *, int);
static void record_last_reg_set_info (rtx, int); static void record_last_reg_set_info (rtx, int);
static void record_last_mem_set_info (rtx); static void record_last_mem_set_info (rtx_insn *);
static void record_last_set_info (rtx, const_rtx, void *); static void record_last_set_info (rtx, const_rtx, void *);
static void compute_hash_table (struct hash_table_d *); static void compute_hash_table (struct hash_table_d *);
static void alloc_hash_table (struct hash_table_d *); static void alloc_hash_table (struct hash_table_d *);
...@@ -631,7 +631,7 @@ alloc_gcse_mem (void) ...@@ -631,7 +631,7 @@ alloc_gcse_mem (void)
/* Allocate array to keep a list of insns which modify memory in each /* Allocate array to keep a list of insns which modify memory in each
basic block. The two typedefs are needed to work around the basic block. The two typedefs are needed to work around the
pre-processor limitation with template types in macro arguments. */ pre-processor limitation with template types in macro arguments. */
typedef vec<rtx> vec_rtx_heap; typedef vec<rtx_insn *> vec_rtx_heap;
typedef vec<modify_pair> vec_modify_pair_heap; typedef vec<modify_pair> vec_modify_pair_heap;
modify_mem_list = GCNEWVEC (vec_rtx_heap, last_basic_block_for_fn (cfun)); modify_mem_list = GCNEWVEC (vec_rtx_heap, last_basic_block_for_fn (cfun));
canon_modify_mem_list = GCNEWVEC (vec_modify_pair_heap, canon_modify_mem_list = GCNEWVEC (vec_modify_pair_heap,
...@@ -1031,8 +1031,8 @@ static int ...@@ -1031,8 +1031,8 @@ static int
load_killed_in_block_p (const_basic_block bb, int uid_limit, const_rtx x, load_killed_in_block_p (const_basic_block bb, int uid_limit, const_rtx x,
int avail_p) int avail_p)
{ {
vec<rtx> list = modify_mem_list[bb->index]; vec<rtx_insn *> list = modify_mem_list[bb->index];
rtx setter; rtx_insn *setter;
unsigned ix; unsigned ix;
/* If this is a readonly then we aren't going to be changing it. */ /* If this is a readonly then we aren't going to be changing it. */
...@@ -1502,7 +1502,7 @@ canon_list_insert (rtx dest ATTRIBUTE_UNUSED, const_rtx x ATTRIBUTE_UNUSED, ...@@ -1502,7 +1502,7 @@ canon_list_insert (rtx dest ATTRIBUTE_UNUSED, const_rtx x ATTRIBUTE_UNUSED,
a CALL_INSN). We merely need to record which insns modify memory. */ a CALL_INSN). We merely need to record which insns modify memory. */
static void static void
record_last_mem_set_info (rtx insn) record_last_mem_set_info (rtx_insn *insn)
{ {
int bb; int bb;
...@@ -1528,7 +1528,7 @@ record_last_mem_set_info (rtx insn) ...@@ -1528,7 +1528,7 @@ record_last_mem_set_info (rtx insn)
static void static void
record_last_set_info (rtx dest, const_rtx setter ATTRIBUTE_UNUSED, void *data) record_last_set_info (rtx dest, const_rtx setter ATTRIBUTE_UNUSED, void *data)
{ {
rtx last_set_insn = (rtx) data; rtx_insn *last_set_insn = (rtx_insn *) data;
if (GET_CODE (dest) == SUBREG) if (GET_CODE (dest) == SUBREG)
dest = SUBREG_REG (dest); dest = SUBREG_REG (dest);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment