Commit 9dc7a9da by Richard Sandiford Committed by Richard Sandiford

s390.c: Include rtl-iter.h.

gcc/
	* config/s390/s390.c: Include rtl-iter.h.
	(check_dpu): Delete.
	(s390_loop_unroll_adjust): Only iterate over patterns.
	Use FOR_EACH_SUBRTX.

From-SVN: r216753
parent 3dfc96ea
2014-10-27 Richard Sandiford <richard.sandiford@arm.com> 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
* config/s390/s390.c: Include rtl-iter.h.
(check_dpu): Delete.
(s390_loop_unroll_adjust): Only iterate over patterns.
Use FOR_EACH_SUBRTX.
2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
* config/spu/spu.c: Include rtl-iter.h * config/spu/spu.c: Include rtl-iter.h
(ea_symbol_ref): Replace with... (ea_symbol_ref): Replace with...
(ea_symbol_ref_p): ...this new function. (ea_symbol_ref_p): ...this new function.
...@@ -81,6 +81,7 @@ along with GCC; see the file COPYING3. If not see ...@@ -81,6 +81,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-pass.h" #include "tree-pass.h"
#include "context.h" #include "context.h"
#include "builtins.h" #include "builtins.h"
#include "rtl-iter.h"
/* Define the specific costs for a given cpu. */ /* Define the specific costs for a given cpu. */
...@@ -11756,19 +11757,6 @@ s390_sched_init (FILE *file ATTRIBUTE_UNUSED, ...@@ -11756,19 +11757,6 @@ s390_sched_init (FILE *file ATTRIBUTE_UNUSED,
s390_sched_state = 0; s390_sched_state = 0;
} }
/* This function checks the whole of insn X for memory references. The
function always returns zero because the framework it is called
from would stop recursively analyzing the insn upon a return value
other than zero. The real result of this function is updating
counter variable MEM_COUNT. */
static int
check_dpu (rtx *x, unsigned *mem_count)
{
if (*x != NULL_RTX && MEM_P (*x))
(*mem_count)++;
return 0;
}
/* This target hook implementation for TARGET_LOOP_UNROLL_ADJUST calculates /* This target hook implementation for TARGET_LOOP_UNROLL_ADJUST calculates
a new number struct loop *loop should be unrolled if tuned for cpus with a new number struct loop *loop should be unrolled if tuned for cpus with
a built-in stride prefetcher. a built-in stride prefetcher.
...@@ -11791,12 +11779,13 @@ s390_loop_unroll_adjust (unsigned nunroll, struct loop *loop) ...@@ -11791,12 +11779,13 @@ s390_loop_unroll_adjust (unsigned nunroll, struct loop *loop)
/* Count the number of memory references within the loop body. */ /* Count the number of memory references within the loop body. */
bbs = get_loop_body (loop); bbs = get_loop_body (loop);
subrtx_iterator::array_type array;
for (i = 0; i < loop->num_nodes; i++) for (i = 0; i < loop->num_nodes; i++)
{ FOR_BB_INSNS (bbs[i], insn)
for (insn = BB_HEAD (bbs[i]); insn != BB_END (bbs[i]); insn = NEXT_INSN (insn)) if (INSN_P (insn) && INSN_CODE (insn) != -1)
if (INSN_P (insn) && INSN_CODE (insn) != -1) FOR_EACH_SUBRTX (iter, array, PATTERN (insn), NONCONST)
for_each_rtx_in_insn (&insn, (rtx_function) check_dpu, &mem_count); if (MEM_P (*iter))
} mem_count += 1;
free (bbs); free (bbs);
/* Prevent division by zero, and we do not need to adjust nunroll in this case. */ /* Prevent division by zero, and we do not need to adjust nunroll in this case. */
......
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