Commit Graph

140582 Commits

Author SHA1 Message Date
Paolo Carlini
08f8b6653a re PR c++/67318 (Parsing error when using abbreviated integral type names in template parameter pack declaration)
/cp
2015-09-10  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67318
	* parser.c (cp_parser_parameter_declaration): Consume the ellipsis
	and set template_parameter_pack_p also when the type is null.

/testsuite
2015-09-10  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67318
	* g++.dg/cpp0x/variadic166.C: New.

From-SVN: r227650
2015-09-10 15:36:54 +00:00
Mark Wielaard
dbb68221b6 Warn when comparing nonnull arguments to NULL in a function.
If an argument is marked as nonnull then passing in a NULL argument
will produce bad results even if the code checks against NULL. GCC
might optimize such checks away so warn the user when the function
contains such comparisons.

nn.c: In function ‘foo’:
nn.c:6:27: warning: nonnull argument ‘bar’ compared to NULL [-Wnonnull]
 void foo(void *bar) { if (!bar) abort(); }
                           ^
gcc/ChangeLog

	* doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.

gcc/c/ChangeLog

       * c-typeck.c (build_binary_op): Check and warn when nonnull arg
       parm against NULL.

gcc/cp/ChangeLog

       * typeck.c (cp_build_binary_op): Check and warn when nonnull arg
       parm against NULL.

gcc/testsuite/ChangeLog

       * c-c++-common/nonnull-1.c: New test.

From-SVN: r227649
2015-09-10 15:29:44 +00:00
Paul Thomas
0815fd2503 re PR fortran/66993 (Spurious ambiguous symbol error with submodules)
2015-09-10  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/66993
	* module.c (read_module): If a symtree exists and the symbol has
	been associated in a submodule from a parent (sub)module, attach
	the symbol to a 'unique symtree' and the new symbol to the
	existing symtree.

2015-09-10  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/66993
	* gfortran.dg/submodule_11.f08: New test.

From-SVN: r227648
2015-09-10 15:22:20 +00:00
Oleg Endo
c661ca7956 re PR target/67506 ([SH]: error: unrecognizable insn when compiling texlive-binaries)
gcc/
	PR target/67506
	* config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
	missing simplify_gen_subreg.

gcc/testsuite/
	PR target/67506
	* gcc.c-torture/compile/pr67506.c: New test.

From-SVN: r227646
2015-09-10 14:53:48 +00:00
Andreas Krebbel
1ce8ee743f S/390: Don't use vgm for v1ti and v1tf.
gcc/ChangeLog:

2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
	the vector element is bigger than 64 bit.

	gcc/testsuite/ChangeLog:

2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gcc.target/s390/vector/vec-genbytemask-1.c: Add check for V1TI
	initialization with a byte mask.  No change expected here.
	* gcc.target/s390/vector/vec-genmask-1.c: Fix whitespace.
	* gcc.target/s390/vector/vec-genmask-2.c: Add check for V1TI
	initialization with contigious bitmask.  Literal pool is expectd
	to be used here.

From-SVN: r227637
2015-09-10 14:04:28 +00:00
Andreas Krebbel
47b653bd9f S/390: Fix mode iterators vmal, vmah, and vmalh.
gcc/ChangeLog:

2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
	("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.

From-SVN: r227636
2015-09-10 14:02:34 +00:00
Andreas Krebbel
e0654cf2a9 S/390: Add V1TImode to constant pool modes.
gcc/ChangeLog:

2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c: Add V1TImode to constant pool modes.

From-SVN: r227635
2015-09-10 14:01:03 +00:00
Kyrylo Tkachov
9b9828886e [ARM] PR 67439: Allow matching of *arm32_movhf when -mrestrict-it is on
PR target/67439
	* config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
	predicate.  Set predicable_short_it attr to "no".

	* gcc.target/arm/pr67439_1.c: New test.

From-SVN: r227630
2015-09-10 10:43:43 +00:00
Jiong Wang
fc4d140a5c [Patch/expand] Cost instruction sequences when doing left wide shift
Patch background details:

    https://gcc.gnu.org/ml/gcc-patches/2015-08/msg01147.html

gcc/
  PR rtl-optimization/67421
  * expr.c (expand_expr_real_2): Cost instrcution sequences when doing left wide
  shift tranformation.

From-SVN: r227629
2015-09-10 10:37:17 +00:00
Claudiu Zissulescu
fb155425c4 arc-common.c: Remove references to A5.
2015-09-10  Claudiu Zissulescu  <claziss@synopsys.com>

        * common/config/arc/arc-common.c: Remove references to A5.
        * config/arc/arc-opts.h: Likewise.
        * config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
        * config/arc/arc.opt, config/arc/constraints.md: Likewise.
        * config/arc/t-arc-newlib: Likewise.

From-SVN: r227627
2015-09-10 10:46:03 +01:00
Claudiu Zissulescu
efdbb285f5 arc.md (length): Fix attribute length for conditional executed instructions with long immediate.
2015-09-10  Claudiu Zissulescu <claziss@synopsys.com>

        * config/arc/arc.md (length): Fix attribute length for conditional
        executed instructions with long immediate.

(posted as: https://gcc.gnu.org/ml/gcc/2015-03/msg00268.html)

From-SVN: r227626
2015-09-10 10:19:52 +01:00
Jiong Wang
3b698ceacf [AArch64] Skip tiny and large code model on gcc.target/aarch64/pic-small.c
gcc/testsuite/
  * gcc.target/aarch64/pic-small.c (dg-skip-if): Skip tiny and large code model.

From-SVN: r227624
2015-09-10 09:15:14 +00:00
Kyrylo Tkachov
1d70b92048 [AArch64] Use logics_imm type for 2nd alternative of *and<mode>3nr_compare0
* config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
	type for second alternative.

From-SVN: r227623
2015-09-10 09:10:06 +00:00
Markus Trippelsdorf
cce7bb9dd2 Fix typo in doc/install.texi
From-SVN: r227620
2015-09-10 07:57:13 +00:00
Markus Trippelsdorf
e3f68e2c1d doc/install.texi: Mention contrib/download_prerequisites
Mention ./contrib/download_prerequisites on the "Downloading GCC" page.

	* doc/invoke.texi (Downloading GCC): Mention
	contrib/download_prerequisites script.

From-SVN: r227619
2015-09-10 07:55:36 +00:00
Jakub Jelinek
9ce1688bb8 re PR c++/67523 (ICE with invalid combined simd inside of a template)
PR c++/67523
	* gimplify.c (gimplify_omp_for): If inner stmt is not found
	for combined loop, assert seen_error () and return GS_ERROR.

	* g++.dg/gomp/pr67523.C: New test.

From-SVN: r227611
2015-09-10 09:35:56 +02:00
Jakub Jelinek
7da8534d1e re PR c++/67522 (OpenMP ICE in type_dependent_expression_p)
PR c++/67522
	* semantics.c (handle_omp_array_sections_1): Only run
	type_dependent_expression_p on VAR_DECL/PARM_DECLs.
	(finish_omp_clauses) <case OMP_CLAUSE_LINEAR>: Likewise.
	Don't adjust OMP_CLAUSE_LINEAR_STEP if OMP_CLAUSE_DECL
	is not a VAR_DECL/PARM_DECL.

	* g++.dg/gomp/pr67522.C: New test.

From-SVN: r227610
2015-09-10 09:34:42 +02:00
Jakub Jelinek
cbdfbde871 re PR middle-end/67521 (ICE when OpenMP loop expressions mention the IV)
PR middle-end/67521
	* gimplify.c (gimplify_omp_for): Don't call omp_add_variable
	if decl is already in outer->variables.

	* c-c++-common/gomp/pr67521.c: New test.

From-SVN: r227609
2015-09-10 09:32:54 +02:00
Jakub Jelinek
2ee10f818d re PR middle-end/67517 (ICE in gimplify_scan_omp_clauses)
PR middle-end/67517
	* gimplify.c (gimplify_scan_omp_clauses): Instead of
	asserting that decl is not specified in octx->variables,
	break out of the loop if it is.

	* c-c++-common/gomp/pr67517.c: New test.

From-SVN: r227608
2015-09-10 09:32:13 +02:00
Jakub Jelinek
499c20bbe4 re PR c++/67514 (ICE in omp_add_variable)
PR c++/67514
	* gimplify.c (gimplify_omp_for): For loop SIMD construct, if
	iterator is not explicitly determined, but is defined inside
	of the combined workshare region, handle it like if it has
	DECL_EXPR in OMP_FOR_PRE_BODY.

	* g++.dg/gomp/pr67514.C: New test.

From-SVN: r227607
2015-09-10 09:31:14 +02:00
Jakub Jelinek
4e4d2c41b9 re PR c++/67511 (ICE with invalid OpenMP random access iterator)
PR c++/67511
	* semantics.c (handle_omp_for_class_iterator): Don't wrap
	error_mark_node into a NOP_EXPR to void_type_node.

	* g++.dg/gomp/pr67511.C: New test.

From-SVN: r227606
2015-09-10 09:30:29 +02:00
Jakub Jelinek
a8a098acfc re PR c/67502 (ICE with collapsed for simd loop inside of parallel)
PR c/67502
	* c-parser.c (c_parser_omp_for_loop): Emit DECL_EXPR stmts
	into OMP_FOR_PRE_BODY rather than before the loop.

	* c-c++-common/gomp/pr67502.c: New test.

From-SVN: r227605
2015-09-10 09:28:27 +02:00
Ian Lance Taylor
609df8a305 compiler: Don't allow shifts with non-integers.
Fixes golang/go#11616.
    
    Reviewed-on: https://go-review.googlesource.com/13688

From-SVN: r227604
2015-09-10 03:46:03 +00:00
GCC Administrator
c41963bbce Daily bump.
From-SVN: r227603
2015-09-10 00:16:11 +00:00
Nathan Sidwell
f324806d74 nvptx.md (call_operation): Move bound out of loop.
* config/nvptx/nvptx.md (call_operation): Move bound out of loop.
	(*cmp<mode>): Add assembler spacing.
	(setcc_int<mode>, set_cc_float<mode>): Likewise.
	* config/nvptx/nvptx.c (nvptx_option_override): Override debug
	level.
	(write_func_decl_from_insn): Refactor argument loops & comma emission.
	(nvptx_expand_call): Likewise.
	(nvptx_output_call_insn): Likewise.
	(nvptx_reorg_subreg): Add spacing.

From-SVN: r227597
2015-09-09 17:18:15 +00:00
Jonathan Wakely
2f1e8e7c47 Enable lightweight checks with _GLIBCXX_ASSERTIONS.
* doc/xml/manual/using.xml (_GLIBCXX_ASSERTIONS): Document.
	* doc/html/manual/using_macros.html: Regenerate.
	* include/bits/c++config: Define _GLIBCXX_ASSERTIONS when
	_GLIBCXX_DEBUG is defined. Disable std::string extern templates when
	(_GLIBCXX_EXTERN_TEMPLATE, __glibcxx_assert): Depend on
	_GLIBCXX_ASSERTIONS instead of _GLIBCXX_DEBUG.
	* include/debug/debug.h [!_GLIBCXX_DEBUG]: Define
	__glibcxx_requires_non_empty_range and __glibcxx_requires_nonempty.
	* include/backward/auto_ptr.h (auto_ptr::operator*,
	auto_ptr::operator->): Replace _GLIBCXX_DEBUG_ASSERT with
	__glibcxx_assert.
	* include/bits/basic_string.h (basic_string::operator[],
	basic_string::front, basic_string::back, basic_string::pop_back):
	Likewise.
	* include/bits/random.h
	(uniform_int_distribution::param_type::param_type,
	uniform_real_distribution::param_type::param_type,
	normal_distribution::param_type::param_type,
	gamma_distribution::param_type::param_type,
	bernoulli_distribution::param_type::param_type,
	binomial_distribution::param_type::param_type,
	geometric_distribution::param_type::param_type,
	negative_binomial_distribution::param_type::param_type,
	poisson_distribution::param_type::param_type,
	exponential_distribution::param_type::param_type): Likewise.
	* include/bits/regex.h (match_results::operator[],
	match_results::prefix, match_results::suffix): Likewise.
	* include/bits/regex.tcc (format, regex_iterator::operator++):
	Likewise.
	* include/bits/regex_automaton.tcc (_StateSeq::_M_clone): Likewise.
	* include/bits/regex_compiler.tcc (_Compiler::_Compiler,
	_Compiler::_M_insert_character_class_matcher): Likewise.
	* include/bits/regex_executor.tcc (_Executor::_M_dfs): Likewise.
	* include/bits/regex_scanner.tcc (_Scanner::_M_advance,
	_Scanner::_M_scan_normal): Likewise.
	* include/bits/shared_ptr_base.h (__shared_ptr::_M_reset,
	__shared_ptr::operator*): Likewise.
	* include/bits/stl_iterator_base_funcs.h (__advance): Likewise.
	* include/bits/unique_ptr.h (unique_ptr::operator*,
	unique_ptr::operator[]): Likewise.
	* include/experimental/fs_path.h (path::path(string_type, _Type),
	path::iterator::operator++, path::iterator::operator--,
	path::iterator::operator*): Likewise.
	* include/experimental/string_view (basic_string_view::operator[],
	basic_string_view::front, basic_string_view::back,
	basic_string_view::remove_prefix): Likewise.
	* include/ext/random (beta_distribution::param_type::param_type,
	normal_mv_distribution::param_type::param_type,
	rice_distribution::param_type::param_type,
	pareto_distribution::param_type::param_type,
	k_distribution::param_type::param_type,
	arcsine_distribution::param_type::param_type,
	hoyt_distribution::param_type::param_type,
	triangular_distribution::param_type::param_type,
	von_mises_distribution::param_type::param_type,
	hypergeometric_distribution::param_type::param_type,
	logistic_distribution::param_type::param_type): Likewise.
	* include/ext/vstring.h (__versa_string::operator[]): Likewise.
	* include/std/complex (polar): Likewise.
	* include/std/mutex [!_GTHREAD_USE_MUTEX_TIMEDLOCK]
	(timed_mutex::~timed_mutex, timed_mutex::unlock,
	(recursive_timed_mutex::~timed_mutex, recursive_timed_mutex::unlock):
	Likewise.
	* include/std/shared_mutex [!PTHREAD_RWLOCK_INITIALIZER]
	(__shared_mutex_pthread::__shared_mutex_pthread,
	__shared_mutex_pthread::~__shared_mutex_pthread): Likewise.
	(__shared_mutex_pthread::lock, __shared_mutex_pthread::try_lock,
	__shared_mutex_pthread::unlock, __shared_mutex_pthread::lock_shared,
	__shared_mutex_pthread::try_lock_shared): Likewise.
	(__shared_mutex_cv::~__shared_mutex_cv, __shared_mutex_cv::unlock,
	__shared_mutex_cv::unlock_shared): Likewise.
	(shared_timed_mutex::try_lock_until,
	shared_timed_mutex::try_lock_shared_until): Likewise.
	* include/std/valarray (valarray::valarray(const _Tp*, size_t),
	valarray::operator=, valarray::sum, valarray::min, valarray::max,
	_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT, _DEFINE_BINARY_OPERATOR):
	Likewise.

From-SVN: r227595
2015-09-09 18:12:47 +01:00
Marek Polacek
c27348aaa5 re PR middle-end/67512 (internal compiler error: in invert_tree_comparison, at fold-const.c:2456)
PR middle-end/67512
	* tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
	for comparisons.

	* gcc.dg/pr67512.c: New test.

From-SVN: r227594
2015-09-09 17:09:32 +00:00
Paolo Carlini
273aa49e2f re PR c++/53184 (Unnecessary anonymous namespace warnings)
2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53184
	* doc/invoke.texi ([Wsubobject-linkage]): Document.

/c-family
2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53184
	* c.opt ([Wsubobject-linkage]): Add.

/cp
2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53184
	* decl2.c (constrain_class_visibility): Use Wsubobject-linkage.

/testsuite
2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53184
	* g++.dg/warn/Wsubobject-linkage-1.C: New.
	* g++.dg/warn/Wsubobject-linkage-2.C: Likewise.
	* g++.dg/warn/Wsubobject-linkage-3.C: Likewise.
	* g++.dg/warn/Wsubobject-linkage-4.C: Likewise.

From-SVN: r227593
2015-09-09 16:48:13 +00:00
Markus Trippelsdorf
1842a04ce0 Fix sanitizer/67258 by cherry picking upstream patch
PR sanitizer/67258
	* ubsan/ubsan_type_hash.cc: Cherry pick upstream r244101.

Upstraem patch:
commit 1d2477faafda9ad2cc19927b3c31efd22747f013
Author: Alexey Samsonov <vonosmas@gmail.com>
Date:   Wed Aug 5 19:35:46 2015 +0000

    [UBSan] Fix UBSan-vptr false positive.

    Offset from vptr to the start of most-derived object can actually
    be positive in some virtual base class vtables.

    Patch by Stephan Bergmann!

    git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@244101 91177308-0d34-0410-b5e6-96231b3b80d8

From-SVN: r227591
2015-09-09 16:34:59 +00:00
Tom de Vries
34bc1d225c Add copyright in gcc/params-list.h
2015-09-09  Tom de Vries  <tom@codesourcery.com>

	* params-list.h: Add missing copyright notice.

From-SVN: r227590
2015-09-09 14:44:01 +00:00
Nathan Sidwell
41c3713a00 nvptx.md (atomic_compare_and_swap<mode>): Use sel_truesi, not andsi.
* config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
	sel_truesi, not andsi.

From-SVN: r227587
2015-09-09 14:07:01 +00:00
Kyrylo Tkachov
956db28eb5 [ARM][3/3] Expand mod by power of 2
* config/arm/arm.md (*subsi3_compare0): Rename to...
	(subsi3_compare0): ... This.
	(modsi3): New define_expand.
	* config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
	when operand is power of 2.

	* gcc.target/aarch64/mod_2.x: New file.
	* gcc.target/aarch64/mod_256.x: Likewise.
	* gcc.target/arm/mod_2.c: New test.
	* gcc.target/arm/mod_256.c: Likewise.
	* gcc.target/aarch64/mod_2.c: Likewise.
	* gcc.target/aarch64/mod_256.c: Likewise.

From-SVN: r227586
2015-09-09 08:41:41 +00:00
Kyrylo Tkachov
4f58fe36c1 [AArch64][1/3] Expand signed mod by power of 2 using CSNEG
* config/aarch64/aarch64.md (mod<mode>3): New define_expand.
	(*neg<mode>2_compare0): Rename to...
	(neg<mode>2_compare0): ... This.
	* config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
	Move check for speed inside the if-then-elses.  Reflect
	CSNEG sequence in MOD by power of 2 case.

From-SVN: r227585
2015-09-09 08:39:13 +00:00
Jakub Jelinek
6cbf37c3d5 re PR c++/67504 (ICE with type dependent collapse argument)
PR c++/67504
	* parser.c (cp_parser_omp_clause_collapse): Test tree_fits_shwi_p
	before INTEGRAL_TYPE_P test.

	* g++.dg/gomp/pr67504.C: New test.

From-SVN: r227579
2015-09-09 09:25:53 +02:00
Jakub Jelinek
0bb99c1162 re PR c/67501 (Bad error recovery for invalid OpenMP clauses in C FE)
PR c/67501
	* c-parser.c (c_parser_oacc_all_clauses,
	c_parser_omp_all_clauses): Remove invalid clause from
	list of clauses even if parser->error is set.

	* c-c++-common/gomp/pr67501.c: New test.

From-SVN: r227578
2015-09-09 09:24:48 +02:00
Jakub Jelinek
fce5e5e35f re PR c/67500 (OpenMP ICE with invalid safelen/simdlen/alignment expressions)
PR c/67500
	* c-parser.c (c_parser_omp_clause_aligned,
	c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen): Fix up
	test for errors.
	* c-decl.c (temp_pop_parm_decls): Allow b->decl equal to
	error_mark_node.

	* gcc.dg/gomp/pr67500.c: New test.

From-SVN: r227577
2015-09-09 09:24:03 +02:00
Jakub Jelinek
f4b189d53b re PR c/67495 (#pragma omp atomic ICEs)
PR c/67495
	* c-parser.c (c_parser_omp_atomic): Use c_parser_cast_expression
	instead of c_parser_unary_expression.  If the result is !lvalue_p,
	wrap the result of c_fully_fold into NON_LVALUE_EXPR.

	* gcc.dg/gomp/pr67495.c: New test.

From-SVN: r227576
2015-09-09 09:23:11 +02:00
Alan Modra
04e49571a0 Fix PowerPC ICE due to secondary_reload ignoring reload replacements
The reason for this PR is that insns emitted by secondary reload
patterns are being generated without taking into account other reloads
that may have occurred.  We run into this problem when an insn has a
pseudo that doesn't get a hard reg, and the pseudo is used in a way
that requires a secondary reload.  In this case the secondary reload
is needed due to gcc generating a 64-bit gpr load from memory insn
with an address offset not a multiple of 4.

	PR target/67378
	* config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
	reload replacement for PRE_MODIFY address reg.

From-SVN: r227573
2015-09-09 15:26:26 +09:30
Sebastian Pop
6b3ebcdda1 fix PR53852: stop ISL after a given number of operations
2015-09-02  Sebastian Pop  <s.pop@samsung.com>

            * config.in: Regenerate.
            * configure: Regenerate.
            * configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
            * graphite-optimize-isl.c (optimize_isl): Stop computation when
            PARAM_MAX_ISL_OPERATIONS is reached.
            * params.def (PARAM_MAX_ISL_OPERATIONS): Add.

            * graphite-dependences.c (extend_schedule): Remove gcc_asserts on
            result equal to isl_stat_ok as the status now can be isl_error_quota.
            (subtract_commutative_associative_deps): Same.
            (compute_deps): Same.

testsuite/
            * gcc.dg/graphite/uns-interchange-12.c: Adjust pattern to pass with
            both isl-0.12 and isl-0.15.
            * gcc.dg/graphite/uns-interchange-14.c: Same.
            * gcc.dg/graphite/uns-interchange-15.c: Same.
            * gcc.dg/graphite/uns-interchange-mvt.c: Same.

From-SVN: r227572
2015-09-09 04:20:47 +00:00
GCC Administrator
b81c315682 Daily bump.
From-SVN: r227571
2015-09-09 00:16:12 +00:00
Hans-Peter Nilsson
50809ff975 * backtrace.c: #include <sys/types.h>.
From-SVN: r227568
2015-09-08 23:58:09 +00:00
Aditya Kumar
74032f471d Remove limit_scops
This patch removes graphite-scop-detection.c:limit_scops function and fix
related issues arising because of that. The functionality limit_scop was added
as an intermediate step to discard the loops which graphite could not
handle. Removing limit_scop required handling of different cases of loops and
surrounding code.  The scop is now larger so most test cases required 'number of
scops detected' to be fixed. By increasing the size of scop we can now optimize
loops which are 'siblings' of each other. This could enable loop fusion on a
number of loops. Since in the graphite framework we mostly want to opimize
loop-nests/adjacent-loops, we now discard scops with less than 2 loops. We
also discard scops without any data references.

Essentially:
 - Remove limite_scops.
 - Only select scops when there are at least two loops (loop nest or, side by side).
 - Discard loops without data-refs.
 - Fix test cases.

Passes bootstrap and reg-test.

gcc/ChangeLog:

2015-09-02  Aditya Kumar  <hiraditya@msn.com>
            Sebastian Pop  <s.pop@samsung.com>

        * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
        Return the parameter if it was saved in corresponding
        parameter_rename_map of the region.
        (copy_def): Copy def from sese region to the newly created region.
        (copy_internal_parameters): Copy all the internal parameters defined
        within a region to the newly created region.
        (graphite_regenerate_ast_isl): Copy parameters to the new region before
        translating isl to gimple.
        * graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
          the loop-nest does not have any data-references.
        (build_graphite_scops): Create a scop only when there is at least one
        loop inside it.
        (contains_only_close_phi_nodes): Deleted.
        (print_graphite_scop_statistics): Deleted
        (print_graphite_statistics): Deleted
        (limit_scops): Deleted.
        (build_scops): Removed call to limit_scops.
        * sese.c (new_sese): Construct.
        (free_sese): Destruct.
        (sese_add_exit_phis_edge): update_stmt after exit phi edge has been
        added.
        (set_rename): Pass sese region so that parameters inside the region can
        be added to its parameter_rename_map.
        (rename_uses): Pass sese region.
        (graphite_copy_stmts_from_block): Do not copy parameters that have been
        generated in the header of the scop. For each SSA_NAME in the
        parameter_rename_map rename its usage.
        (invariant_in_sese_p_rec): Return false if tree t is defined outside
        sese region.
        (scalar_evolution_in_region): If the tree t is invariant just return t.
        * sese.h: Added a parameter renamne map (parameter_rename_map_t) to
          struct sese to keep track of all the parameters which need renaming.
        * tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
          any data-refs.
        * tree-data-ref.h: Declaration of loop_nest_has_data_refs.

gcc/testsuite/ChangeLog:

2015-09-02  Aditya Kumar  <hiraditya@msn.com>
            Sebastian Pop  <s.pop@samsung.com>

        * gcc.dg/graphite/block-0.c: Modifed test case to match current output.
        * gcc.dg/graphite/block-1.c: Same.
        * gcc.dg/graphite/block-5.c: Same.
        * gcc.dg/graphite/block-6.c: Same.
        * gcc.dg/graphite/interchange-1.c: Same.
        * gcc.dg/graphite/interchange-10.c: Same.
        * gcc.dg/graphite/interchange-11.c: Same.
        * gcc.dg/graphite/interchange-13.c: Same.
        * gcc.dg/graphite/interchange-14.c: Same.
        * gcc.dg/graphite/interchange-3.c: Same.
        * gcc.dg/graphite/interchange-4.c: Same.
        * gcc.dg/graphite/interchange-7.c: Same.
        * gcc.dg/graphite/interchange-8.c: Same.
        * gcc.dg/graphite/interchange-9.c: Same.
        * gcc.dg/graphite/isl-codegen-loop-dumping.c: Same.
        * gcc.dg/graphite/pr35356-1.c (foo): Same.
        * gcc.dg/graphite/pr37485.c: Same.
        * gcc.dg/graphite/scop-0.c (int toto): Same.
        * gcc.dg/graphite/scop-1.c: Same.
        * gcc.dg/graphite/scop-10.c: Same.
        * gcc.dg/graphite/scop-11.c: Same.
        * gcc.dg/graphite/scop-12.c: Same.
        * gcc.dg/graphite/scop-13.c: Same.
        * gcc.dg/graphite/scop-16.c: Same.
        * gcc.dg/graphite/scop-17.c: Same.
        * gcc.dg/graphite/scop-18.c: Same.
        * gcc.dg/graphite/scop-2.c: Same.
        * gcc.dg/graphite/scop-21.c (int test): Same.
        * gcc.dg/graphite/scop-22.c (void foo): Same.
        * gcc.dg/graphite/scop-4.c: Same.
        * gcc.dg/graphite/scop-5.c: Same.
        * gcc.dg/graphite/scop-6.c: Same.
        * gcc.dg/graphite/scop-7.c: Same.
        * gcc.dg/graphite/scop-8.c: Same.
        * gcc.dg/graphite/scop-9.c: Same.
        * gcc.dg/graphite/scop-mvt.c (void mvt): Introduced dependency so that
          data-refs remain inside the inner loop.
        * gcc.dg/graphite/uns-block-1.c: Modifed test case to match o/p.
        * gcc.dg/graphite/uns-interchange-14.c: Same.
        * gcc.dg/graphite/uns-interchange-9.c: Same.
        * gfortran.dg/graphite/interchange-3.f90

libgomp/ChangeLog:

2015-09-04  Aditya Kumar  <hiraditya@msn.com>
            Sebastian Pop  <s.pop@samsung.com>

        * testsuite/libgomp.graphite/bounds.c (int foo): Modifed test case to
          match o/p.
        * testsuite/libgomp.graphite/force-parallel-1.c (void parloop): Same.
        * testsuite/libgomp.graphite/force-parallel-4.c: Same.
        * testsuite/libgomp.graphite/force-parallel-5.c: Same.
        * testsuite/libgomp.graphite/force-parallel-7.c: Same.
        * testsuite/libgomp.graphite/force-parallel-8.c: Same.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r227567
2015-09-08 22:18:11 +00:00
Tom de Vries
b71a678232 Prevent unnecessary recompilation for trivial params.def changes
2015-09-08  Tom de Vries  <tom@codesourcery.com>

	* Makefile.in (generated_files): Add params.list.
	(params.list, s-params.list): Add rule.
	* params.h (enum compiler_param): Include params-list.h.  Move define
	DEFPARAM, include params.def and undef DEFPARAM ...
	* params-list.h: ... here.  New file.

From-SVN: r227566
2015-09-08 21:20:51 +00:00
David Malcolm
2e808a784d Trivial typo fix in pretty-print.h
gcc/ChangeLog:
	* pretty-print.h (printer_fn): Fix typo in comment.

From-SVN: r227562
2015-09-08 19:59:42 +00:00
Jeff Law
465eeda495 Re: [PATCH] Minor cleanup of const_and_copies stack
Re: [PATCH] Minor cleanup of const_and_copies stack
        * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.

From-SVN: r227559
2015-09-08 13:54:23 -06:00
Alan Lawrence
04da74f93a correct ChangeLog dates+address
From-SVN: r227558
2015-09-08 19:44:36 +00:00
Alan Lawrence
4cb4640c2c ARM/AArch64 Testsuite] Add float16 lane_f16_indices tests
PR target/63870
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f16_indices_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_f16_indices_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_f16_indices_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_f16_indices_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_f16_indices_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_f16_indices_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f16_indices_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_f16_indices_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_f16_indices_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_f16_indices_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_f16_indices_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_f16_indices_1.c: New.

From-SVN: r227557
2015-09-08 19:43:39 +00:00
Alan Lawrence
48c44783ac [ARM] Update sourcebuild.texi with testsuite/effective-target hooks
* doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
	(arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
	(arm_neon_fp16_hw): New.

From-SVN: r227556
2015-09-08 19:38:22 +00:00
Alan Lawrence
946e211e90 [ARM/AArch64 Testsuite]Add test of vcvt{,_high}_i{f32_f16,f16_f32}
* gcc.target/aarch64/advsimd-intrinsics/vcvt_f16.c: New.
	* lib/target-supports.exp
	(check_effective_target_arm_neon_fp16_hw): New.

From-SVN: r227555
2015-09-08 19:36:41 +00:00
Alan Lawrence
1fa754dc7b [ARM/AArch64 Testsuite] Add float16 tests to advsimd-intrinsics testsuite
* gcc.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp:
	Set additional_flags for neon-fp16 if supported, else fallback to neon.

	* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h
	(hfloat16_t): New.
	(result, expected, clean_results, DECL_VARIABLE_64BITS_VARIANTS,
	DECL_VARIABLE_128BITS_VARIANTS): Add float16x4_t and float16x8_t cases
	if supported.
	(CHECK_RESULTS): Redefine using CHECK_RESULTS_NAMED.
	(CHECK_RESULTS_NAMED): Move body to CHECK_RESULTS_NAMED_NO_FP16;
	redefine in terms of CHECK_RESULTS_NAMED_NO_FP16 with float16 variants
	when those are supported.
	(CHECK_RESULTS_NAMED_NO_FP16, CHECK_RESULTS_NO_FP16): New.
	(vdup_n_f16): New.

	* gcc.target/aarch64/advsimd-intrinsics/compute-ref-data.h (buffer,
	buffer_pad, buffer_dup, buffer_dup_pad): Add float16x4 and float16x8_t
	cases if supported.

	* gcc.target/aarch64/advsimd-intrinsics/vbsl.c (exec_vbsl):
	Use CHECK_RESULTS_NO_FP16 in place of CHECK_RESULTS.
	* gcc.target/aarch64/advsimd-intrinsics/vdup-vmov.c (exec_vdup_vmov):
	Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vdup_lane.c (exec_vdup_lane):
	Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vext.c (exec_vext): Likewise.

	* gcc.target/aarch64/advsimd-intrinsics/vcombine.c (expected):
	Add float16x8_t case.
	(main, exec_vcombine): test float16x4_t -> float16x8_t, if supported.
	* gcc.target/aarch64/advsimd-intrinsics/vcreate.c (expected,
	main, exec_vcreate): Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vget_high (expected,
	 exec_vget_high): Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vget_low.c (expected,
	exec_vget_low): Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vld1.c (expected, exec_vld1):
	Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vld1_dup.c (expected,
	exec_vld1_dup): Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vld1_lane.c (expected,
	exec_vld1_lane): Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vldX.c (expected, exec_vldX):
	Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vldX_dup.c (expected,
	exec_vldX_dup): Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vldX_lane.c (expected,
	exec_vldX_lane): Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vset_lane.c (expected,
	exec_vset_lane): Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vst1_lane.c (expected,
	 exec_vst1_lane): Likewise.

From-SVN: r227554
2015-09-08 19:34:21 +00:00