+2015-12-17 Sebastian Pop <s.pop@samsung.com>
+
+ * Makefile.in: Replace ISL with isl.
+ * Makefile.tpl: Same.
+ * config/isl.m4: Same.
+ * configure.ac: Same.
+ * contrib/download_prerequisites: Same.
+ * configure: Regenerate.
+
2015-12-17 Andris Pavenis <andris.pavenis@iki.fi>
* MAINTAINERS (Write After Approval): Add Myself.
HOST_GMPLIBS = @gmplibs@
HOST_GMPINC = @gmpinc@
-# Where to find ISL
+# Where to find isl
HOST_ISLLIBS = @isllibs@
HOST_ISLINC = @islinc@
HOST_GMPLIBS = @gmplibs@
HOST_GMPINC = @gmpinc@
-# Where to find ISL
+# Where to find isl
HOST_ISLLIBS = @isllibs@
HOST_ISLINC = @islinc@
# ISL_CHECK_VERSION ISL_CHECK_VERSION ()
# ----------------------------------------------------------------
-# Test that ISL contains functionality added to the minimum expected version.
+# Test whether isl contains functionality added to the minimum expected version.
AC_DEFUN([ISL_CHECK_VERSION],
[
if test "${ENABLE_ISL_CHECK}" = yes ; then
--with-boot-libs=LIBS libraries for stage2 and later
--with-boot-ldflags=FLAGS
linker flags for stage2 and later
- --with-isl=PATH Specify prefix directory for the installed ISL
+ --with-isl=PATH Specify prefix directory for the installed isl
package. Equivalent to
--with-isl-include=PATH/include plus
--with-isl-lib=PATH/lib
-# GCC GRAPHITE dependency ISL.
+# GCC GRAPHITE dependency isl.
# Basic setup is inlined here, actual checks are in config/isl.m4
# Treat --without-isl as a request to disable
# GRAPHITE support and skip all following checks.
if test "x$with_isl" != "xno"; then
- # Check for ISL
+ # Check for isl
# Check whether --with-isl-include was given.
&& test "x${isllibs}" = x \
&& test "x${islinc}" = x ; then
- as_fn_error "Unable to find a usable ISL. See config.log for details." "$LINENO" 5
+ as_fn_error "Unable to find a usable isl. See config.log for details." "$LINENO" 5
fi
fi
-# If the ISL check failed, disable builds of in-tree variant of ISL
+# If the isl check failed, disable builds of in-tree variant of isl
if test "x$with_isl" = xno ||
test "x$gcc_cv_isl" = xno; then
noconfigdirs="$noconfigdirs isl"
fi])
AC_SUBST(poststage1_ldflags)
-# GCC GRAPHITE dependency ISL.
+# GCC GRAPHITE dependency isl.
# Basic setup is inlined here, actual checks are in config/isl.m4
AC_ARG_WITH(isl,
[AS_HELP_STRING(
[--with-isl=PATH],
- [Specify prefix directory for the installed ISL package.
+ [Specify prefix directory for the installed isl package.
Equivalent to --with-isl-include=PATH/include
plus --with-isl-lib=PATH/lib])])
# Treat --without-isl as a request to disable
# GRAPHITE support and skip all following checks.
if test "x$with_isl" != "xno"; then
- # Check for ISL
+ # Check for isl
dnl Provide configure switches and initialize islinc & isllibs
dnl with user input.
ISL_INIT_FLAGS
- dnl The versions of ISL that work for Graphite
+ dnl The versions of isl that work for Graphite
ISL_CHECK_VERSION()
- dnl Only execute fail-action, if ISL has been requested.
+ dnl Only execute fail-action, if isl has been requested.
ISL_IF_FAILED([
- AC_MSG_ERROR([Unable to find a usable ISL. See config.log for details.])])
+ AC_MSG_ERROR([Unable to find a usable isl. See config.log for details.])])
fi
-# If the ISL check failed, disable builds of in-tree variant of ISL
+# If the isl check failed, disable builds of in-tree variant of isl
if test "x$with_isl" = xno ||
test "x$gcc_cv_isl" = xno; then
noconfigdirs="$noconfigdirs isl"
# along with this program. If not, see http://www.gnu.org/licenses/.
# If you want to disable Graphite loop optimizations while building GCC,
-# DO NOT set GRAPHITE_LOOP_OPT as yes so that the ISL package will not
+# DO NOT set GRAPHITE_LOOP_OPT as yes so that the isl package will not
# be downloaded.
GRAPHITE_LOOP_OPT=yes
+2015-12-17 Sebastian Pop <s.pop@samsung.com>
+
+ * Makefile.in: Replace ISL with isl.
+ * common.opt: Same.
+ * configure: Regenerate.
+ * configure.ac: Same.
+ * doc/install.texi: Same.
+ * doc/invoke.texi: Same.
+ * graphite-isl-ast-to-gimple.c: Same.
+ * graphite-scop-detection.c: Same.
+ * graphite-sese-to-poly.c: Same.
+ * graphite.c: Same.
+ * graphite.h: Same.
+ * params.def: Same.
+ * testsuite/gcc.dg/graphite/fuse-1.c: Same.
+ * testsuite/gcc.dg/graphite/fuse-2.c: Same.
+ * testsuite/gcc.dg/graphite/interchange-1.c: Same.
+ * testsuite/gcc.dg/graphite/pr35356-1.c: Same.
+ * toplev.c: Same.
+
2015-12-17 Sebastian Pop <s.pop@samsung.com>
* graphite-dependences.c: Move all isl include files to...
GMPLIBS = @GMPLIBS@
GMPINC = @GMPINC@
-# How to find ISL
+# How to find isl.
ISLLIBS = @ISLLIBS@
ISLINC = @ISLINC@
floop-nest-optimize
Common Report Var(flag_loop_nest_optimize) Optimization
-Enable the ISL based loop nest optimizer.
+Enable the loop nest optimizer.
fstrict-volatile-bitfields
Common Report Var(flag_strict_volatile_bitfields) Init(-1) Optimization
CPP C preprocessor
GMPLIBS How to link GMP
GMPINC How to find GMP include files
- ISLLIBS How to link ISL
- ISLINC How to find ISL include files
+ ISLLIBS How to link isl
+ ISLINC How to find isl include files
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
fi
-# Check whether isl_schedule_constraints_compute_schedule is available;
-# it's new in ISL-0.13.
# Check whether isl_options_set_schedule_serialize_sccs is available;
-# it's new in ISL-0.15.
+# it's new in isl 0.15.
if test "x${ISLLIBS}" != "x" ; then
saved_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS $ISLINC"
AC_ARG_VAR(GMPLIBS,[How to link GMP])
AC_ARG_VAR(GMPINC,[How to find GMP include files])
-AC_ARG_VAR(ISLLIBS,[How to link ISL])
-AC_ARG_VAR(ISLINC,[How to find ISL include files])
+AC_ARG_VAR(ISLLIBS,[How to link isl])
+AC_ARG_VAR(ISLINC,[How to find isl include files])
if test "x${ISLLIBS}" != "x" ; then
AC_DEFINE(HAVE_isl, 1, [Define if isl is in use.])
fi
-# Check whether isl_schedule_constraints_compute_schedule is available;
-# it's new in ISL-0.13.
# Check whether isl_options_set_schedule_serialize_sccs is available;
-# it's new in ISL-0.15.
+# it's new in isl 0.15.
if test "x${ISLLIBS}" != "x" ; then
saved_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS $ISLINC"
@option{--with-mpc} configure option should be used. See also
@option{--with-mpc-lib} and @option{--with-mpc-include}.
-@item ISL Library version 0.15 or 0.14.
+@item isl Library version 0.15 or 0.14.
Necessary to build GCC with the Graphite loop optimizations.
It can be downloaded from @uref{ftp://gcc.gnu.org/pub/gcc/infrastructure/}.
-If an ISL source distribution is found
+If an isl source distribution is found
in a subdirectory of your GCC sources named @file{isl}, it will be
built together with GCC. Alternatively, the @option{--with-isl} configure
-option should be used if ISL is not installed in your default library
+option should be used if isl is not installed in your default library
search path.
@end table
@item --with-isl=@var{pathname}
@itemx --with-isl-include=@var{pathname}
@itemx --with-isl-lib=@var{pathname}
-If you do not have the ISL library installed in a standard location and you
+If you do not have the isl library installed in a standard location and you
want to build GCC, you can explicitly specify the directory where it is
installed (@samp{--with-isl=@/@var{islinstalldir}}). The
@option{--with-isl=@/@var{islinstalldir}} option is shorthand for
the polyhedral representation and transform it back to gimple. Using
@option{-fgraphite-identity} we can check the costs or benefits of the
GIMPLE -> GRAPHITE -> GIMPLE transformation. Some minimal optimizations
-are also performed by the code generator ISL, like index splitting and
+are also performed by the code generator isl, like index splitting and
dead code elimination in loops.
@item -floop-nest-optimize
@opindex floop-nest-optimize
-Enable the ISL based loop nest optimizer. This is a generic loop nest
+Enable the isl based loop nest optimizer. This is a generic loop nest
optimizer based on the Pluto optimization algorithms. It calculates a loop
structure optimized for data-locality and parallelism. This option
is experimental.
-/* Translation of ISL AST to Gimple.
+/* Translation of isl AST to Gimple.
Copyright (C) 2014-2015 Free Software Foundation, Inc.
Contributed by Roman Gareev <gareevroman@gmail.com>.
#include "cfganal.h"
#include "value-prof.h"
#include "graphite.h"
-
#include <map>
/* We always try to use signed 128 bit types, but fall back to smaller types
checking_verify_loop_closed_ssa (true);
}
-/* IVS_PARAMS maps ISL's scattering and parameter identifiers
+/* IVS_PARAMS maps isl's scattering and parameter identifiers
to corresponding trees. */
typedef std::map<isl_id *, tree> ivs_params;
-/* Free all memory allocated for ISL's identifiers. */
+/* Free all memory allocated for isl's identifiers. */
void ivs_params_clear (ivs_params &ip)
{
: region (r), codegen_error (false)
{ }
- /* Translates an ISL AST node NODE to GCC representation in the
+ /* Translates an isl AST node NODE to GCC representation in the
context of a SESE. */
edge translate_isl_ast (loop_p context_loop, __isl_keep isl_ast_node *node,
edge next_e, ivs_params &ip);
tree nary_op_to_tree (tree type, __isl_take isl_ast_expr *expr,
ivs_params &ip);
- /* Converts an ISL AST expression E back to a GCC expression tree of
+ /* Converts an isl AST expression E back to a GCC expression tree of
type TYPE. */
tree gcc_expression_from_isl_expression (tree type,
__isl_take isl_ast_expr *,
induction variable for the new LOOP. New LOOP is attached to CFG
starting at ENTRY_EDGE. LOOP is inserted into the loop tree and
becomes the child loop of the OUTER_LOOP. NEWIVS_INDEX binds
- ISL's scattering name to the induction variable created for the
+ isl's scattering name to the induction variable created for the
loop of STMT. The new induction variable is inserted in the NEWIVS
vector and is of type TYPE. */
struct loop *graphite_create_new_loop (edge entry_edge,
tree *type,
tree *lb, tree *ub, ivs_params &ip);
- /* Creates a new if region corresponding to ISL's cond. */
+ /* Creates a new if region corresponding to isl's cond. */
edge graphite_create_new_guard (edge entry_edge,
__isl_take isl_ast_expr *if_cond,
ivs_params &ip);
void translate_pending_phi_nodes (void);
- /* Add ISL's parameter identifiers and corresponding trees to ivs_params. */
+ /* Add isl's parameter identifiers and corresponding trees to ivs_params. */
void add_parameters_to_ivs_params (scop_p scop, ivs_params &ip);
/* The region to be translated. */
sese_info_p region;
- /* This flag is set when an error occurred during the translation of ISL AST
+ /* This flag is set when an error occurred during the translation of isl AST
to Gimple. */
bool codegen_error;
return fold_build2 (MULT_EXPR, type, tree_lhs_expr, tree_rhs_expr);
case isl_ast_op_div:
- /* As ISL operates on arbitrary precision numbers, we may end up with
+ /* As isl operates on arbitrary precision numbers, we may end up with
division by 2^64 that is folded to 0. */
if (integer_zerop (tree_rhs_expr))
{
return fold_build2 (EXACT_DIV_EXPR, type, tree_lhs_expr, tree_rhs_expr);
case isl_ast_op_pdiv_q:
- /* As ISL operates on arbitrary precision numbers, we may end up with
+ /* As isl operates on arbitrary precision numbers, we may end up with
division by 2^64 that is folded to 0. */
if (integer_zerop (tree_rhs_expr))
{
return fold_build2 (TRUNC_DIV_EXPR, type, tree_lhs_expr, tree_rhs_expr);
#if HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
- /* ISL-0.15 or later. */
+ /* isl 0.15 or later. */
case isl_ast_op_zdiv_r:
#endif
case isl_ast_op_pdiv_r:
- /* As ISL operates on arbitrary precision numbers, we may end up with
+ /* As isl operates on arbitrary precision numbers, we may end up with
division by 2^64 that is folded to 0. */
if (integer_zerop (tree_rhs_expr))
{
return fold_build2 (TRUNC_MOD_EXPR, type, tree_lhs_expr, tree_rhs_expr);
case isl_ast_op_fdiv_q:
- /* As ISL operates on arbitrary precision numbers, we may end up with
+ /* As isl operates on arbitrary precision numbers, we may end up with
division by 2^64 that is folded to 0. */
if (integer_zerop (tree_rhs_expr))
{
case isl_ast_op_pdiv_r:
case isl_ast_op_fdiv_q:
#if HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
- /* ISL-0.15 or later. */
+ /* isl 0.15 or later. */
case isl_ast_op_zdiv_r:
#endif
case isl_ast_op_and:
return NULL_TREE;
}
-/* Converts an ISL AST expression E back to a GCC expression tree of
+/* Converts an isl AST expression E back to a GCC expression tree of
type TYPE. */
tree
induction variable for the new LOOP. New LOOP is attached to CFG
starting at ENTRY_EDGE. LOOP is inserted into the loop tree and
becomes the child loop of the OUTER_LOOP. NEWIVS_INDEX binds
- ISL's scattering name to the induction variable created for the
+ isl's scattering name to the induction variable created for the
loop of STMT. The new induction variable is inserted in the NEWIVS
vector and is of type TYPE. */
return next_e;
}
-/* Creates a new if region corresponding to ISL's cond. */
+/* Creates a new if region corresponding to isl's cond. */
edge
translate_isl_ast_to_gimple::
return last_e;
}
-/* Translates an ISL AST node NODE to GCC representation in the
+/* Translates an isl AST node NODE to GCC representation in the
context of a SESE. */
edge
return NULL;
}
- /* In case ISL did some loop peeling, like this:
+ /* In case isl did some loop peeling, like this:
S_8(0);
for (int c1 = 1; c1 <= 5; c1 += 1) {
isl_printer_free (prn);
}
-/* Add ISL's parameter identifiers and corresponding trees to ivs_params. */
+/* Add isl's parameter identifiers and corresponding trees to ivs_params. */
void
translate_isl_ast_to_gimple::add_parameters_to_ivs_params (scop_p scop,
the given SCOP. Return true if code generation succeeded.
FIXME: This is not yet a full implementation of the code generator
- with ISL ASTs. Generation of GIMPLE code has to be completed. */
+ with isl ASTs. Generation of GIMPLE code has to be completed. */
bool
graphite_regenerate_ast_isl (scop_p scop)
if (dump_file && (dump_flags & TDF_DETAILS))
{
- fprintf (dump_file, "ISL AST generated by ISL: \n");
+ fprintf (dump_file, "AST generated by isl: \n");
t.print_isl_ast_node (dump_file, root_node, scop->isl_context);
}
}
/* Can all ivs be represented by a signed integer?
- As ISL might generate negative values in its expressions, signed loop ivs
+ As isl might generate negative values in its expressions, signed loop ivs
are required in the backend. */
static bool
return false;
/* We disable the handling of pointer types, because it’s currently not
- supported by Graphite with the ISL AST generator. SSA_NAME nodes are
+ supported by Graphite with the isl AST generator. SSA_NAME nodes are
the only nodes, which are disabled in case they are pointers to object
types, but this can be changed. */
wi::to_mpz (t, res, TYPE_SIGN (TREE_TYPE (t)));
}
-/* Return an ISL identifier for the polyhedral basic block PBB. */
+/* Return an isl identifier for the polyhedral basic block PBB. */
static isl_id *
isl_id_for_pbb (scop_p s, poly_bb_p pbb)
return isl_pw_aff_mul (lhs, rhs);
}
-/* Return an ISL identifier from the name of the ssa_name E. */
+/* Return an isl identifier from the name of the ssa_name E. */
static isl_id *
isl_id_for_ssa_name (scop_p s, tree e)
return isl_id_alloc (s->isl_context, name1, e);
}
-/* Return an ISL identifier for the data reference DR. Data references and
+/* Return an isl identifier for the data reference DR. Data references and
scalar references get the same isl_id. They need to be comparable and are
distinguished through the first dimension, which contains the alias set or
SSA_NAME_VERSION number. */
isl_ctx_free (ctx);
}
-#else /* If ISL is not available: #ifndef HAVE_isl. */
+#else /* If isl is not available: #ifndef HAVE_isl. */
static void
graphite_transform_loops (void)
{
- sorry ("Graphite loop optimizations cannot be used (ISL is not available).");
+ sorry ("Graphite loop optimizations cannot be used (isl is not available).");
}
#endif
c = 2a + b */
isl_set *param_context;
- /* The context used internally by ISL. */
+ /* The context used internally by isl. */
isl_ctx *isl_context;
/* SCoP final schedule. */
DEFPARAM (PARAM_MAX_ISL_OPERATIONS,
"max-isl-operations",
- "maximum number of ISL operations, 0 means unlimited",
+ "maximum number of isl operations, 0 means unlimited",
350000, 0, 0)
/* Avoid data dependence analysis on very large loops. */
/* { dg-options "-O2 -floop-nest-optimize -fdump-tree-forwprop-all -fdump-tree-graphite-all" } */
/* Make sure we fuse the loops like this:
-ISL AST generated by ISL:
+AST generated by isl:
for (int c0 = 0; c0 <= 99; c0 += 1) {
S_3(c0);
S_6(c0);
S_9(c0);
} */
-/* { dg-final { scan-tree-dump-times "ISL AST generated by ISL:.*for \\(int c0 = 0; c0 <= 99; c0 \\+= 1\\) \\{.*S_.*\\(c0\\);.*S_.*\\(c0\\);.*S_.*\\(c0\\);.*\\}" 1 "graphite" } } */
+/* { dg-final { scan-tree-dump-times "AST generated by isl:.*for \\(int c0 = 0; c0 <= 99; c0 \\+= 1\\) \\{.*S_.*\\(c0\\);.*S_.*\\(c0\\);.*S_.*\\(c0\\);.*\\}" 1 "graphite" } } */
/* Check that after fusing the loops, the scalar computation is also fused. */
/* { dg-final { scan-tree-dump-times "gimple_simplified to\[^\\n\]*\\^ 12" 1 "forwprop4" } } */
/* Check that the three loops are fused. */
/* Make sure we fuse the loops like this:
-ISL AST generated by ISL:
+AST generated by isl:
for (int c0 = 0; c0 <= 99; c0 += 1) {
S_3(c0);
S_6(c0);
}
*/
-/* { dg-final { scan-tree-dump-times "ISL AST generated by ISL:.*for \\(int c0 = 0; c0 <= 99; c0 \\+= 1\\) \\{.*S_.*\\(c0\\);.*S_.*\\(c0\\);.*S_.*\\(c0\\);.*\\}" 1 "graphite" } } */
+/* { dg-final { scan-tree-dump-times "AST generated by isl:.*for \\(int c0 = 0; c0 <= 99; c0 \\+= 1\\) \\{.*S_.*\\(c0\\);.*S_.*\\(c0\\);.*S_.*\\(c0\\);.*\\}" 1 "graphite" } } */
#define MAX 100
int A[MAX], B[MAX], C[MAX];
return 0;
}
-/*FIXME: Between ISL-0.12 and ISL-0.15 the schedule optimizer needs to print
+/*FIXME: Between isl 0.12 and isl 0.15 the schedule optimizer needs to print
something canonical so that it can be checked in the test. The final code
generated by both are same in this case but the messaged printed are
not consistent. */
Check that this text is produced:
-ISL AST generated by ISL:
+AST generated by isl:
if (n >= k + 1 && k >= 0) {
S_6(k);
S_11(k);
|| flag_loop_nest_optimize
|| flag_graphite_identity
|| flag_loop_parallelize_all)
- sorry ("Graphite loop optimizations cannot be used (ISL is not available)"
+ sorry ("Graphite loop optimizations cannot be used (isl is not available)"
"(-fgraphite, -fgraphite-identity, -floop-block, "
"-floop-interchange, -floop-strip-mine, -floop-parallelize-all, "
"-floop-unroll-and-jam, and -ftree-loop-linear)");