Add param parloops-chunk-size

2015-09-03  Tom de Vries  <tom@codesourcery.com>

	* doc/invoke.texi (parloops-chunk-size): Add item.
	* params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
	* tree-parloops.c: Include params.h.
	(create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
	param parloops-chunk-size is used.

From-SVN: r227434
This commit is contained in:
Tom de Vries 2015-09-03 11:00:46 +00:00 committed by Tom de Vries
parent 2699123aab
commit f7f186847d
4 changed files with 22 additions and 0 deletions

View file

@ -1,3 +1,11 @@
2015-09-03 Tom de Vries <tom@codesourcery.com>
* doc/invoke.texi (parloops-chunk-size): Add item.
* params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
* tree-parloops.c: Include params.h.
(create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
param parloops-chunk-size is used.
2015-09-03 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
PR middle-end/67351

View file

@ -11001,6 +11001,10 @@ path. The default is 10.
Maximum number of new jump thread paths to create for a finite state
automaton. The default is 50.
@item parloops-chunk-size
Chunk size of omp schedule for loops parallelized by parloops. The default
is 0.
@end table
@end table

View file

@ -1135,6 +1135,11 @@ DEFPARAM (PARAM_MAX_FSM_THREAD_PATHS,
"max-fsm-thread-paths",
"Maximum number of new jump thread paths to create for a finite state automaton",
50, 1, 999999)
DEFPARAM (PARAM_PARLOOPS_CHUNK_SIZE,
"parloops-chunk-size",
"Chunk size of omp schedule for loops parallelized by parloops",
0, 0, 0)
/*
Local variables:

View file

@ -57,6 +57,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-nested.h"
#include "cgraph.h"
#include "tree-ssa.h"
#include "params.h"
/* This pass tries to distribute iterations of loops into several threads.
The implementation is straightforward -- for each loop we test whether its
@ -2092,6 +2093,10 @@ create_parallel_loop (struct loop *loop, tree loop_fn, tree data,
type = TREE_TYPE (cvar);
t = build_omp_clause (loc, OMP_CLAUSE_SCHEDULE);
OMP_CLAUSE_SCHEDULE_KIND (t) = OMP_CLAUSE_SCHEDULE_STATIC;
int chunk_size = PARAM_VALUE (PARAM_PARLOOPS_CHUNK_SIZE);
if (chunk_size != 0)
OMP_CLAUSE_SCHEDULE_CHUNK_EXPR (t)
= build_int_cst (integer_type_node, chunk_size);
for_stmt = gimple_build_omp_for (NULL, GF_OMP_FOR_KIND_FOR, t, 1, NULL);
gimple_set_location (for_stmt, loc);