Commit Graph

140590 Commits

Author SHA1 Message Date
Bill Schmidt
9a21c05d8d rs6000.c (swap_web_entry): Update preceding commentary to simplify permute mask adjustment equation.
[gcc]

2015-09-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (swap_web_entry): Update preceding
	commentary to simplify permute mask adjustment equation.
	(special_handling_values): Add SH_VPERM.
	(const_load_sequence_p): New function.
	(insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
	the mask loaded from the constant pool.
	(adjust_vperm): New function.
	(handle_special_swappables): Call adjust_vperm.
	(dump_swap_insn_table): Handle SH_VPERM.

[gcc/testsuite]

2015-09-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/swaps-p8-20.c: New test.
	* gcc.target/powerpc/swaps-p8-21.c: New test.

From-SVN: r227664
2015-09-10 20:22:37 +00:00
Jonathan Wakely
a789097385 * testsuite/util/testsuite_allocator.h (PointerBase::operator[]): Add.
From-SVN: r227661
2015-09-10 20:33:09 +01:00
Jonathan Wakely
94eb2ddbf0 1.cc: Verify the string contents.
* testsuite/21_strings/basic_string/operators/char/1.cc: Verify the
	string contents.

From-SVN: r227660
2015-09-10 20:33:04 +01:00
H.J. Lu
2eba0ed5f6 Put back requires_stack_frame_p used by i386.c
* shrink-wrap.c (requires_stack_frame_p): Remove static.
	* shrink-wrap.h (requires_stack_frame_p): Put back.

From-SVN: r227659
2015-09-10 12:19:27 -07:00
Richard Sandiford
4711983f43 Stop reload1.c warning from breaking bootstrap
Some host-target combinations get bogus warnings about orig_dup
being used uninitialized.  I tried to coerce the current uninit
pass to handle this case, but the patch I ended up with only worked
by accident because of the strange way in which the pass handles
limit cases.  (If we have more than MAX_NUM_CHAINS chains, it silently
drops the excess chains and continues regardless, so it's quite easy
to come up with cases where the predicates for either the definition
or the use consider an arbitrary subset of the actual conditions.)

For now this patch turns -Wmaybe-uninitialized into a warning for
the affacted function.  It will be a warning even if someone turns
off warnings on the command line, but I don't think that's important.

Bootstrapped and regression-tested on x86_64-linux-gnu.  Also tested
with a cross-compiler to sparc-linux-gnu (which also triggered the
warning for me).

gcc/
	* reload1.c (elimination_costs_in_insn): Locally turn
	-Wmaybe-uninitialized into a warning.

From-SVN: r227658
2015-09-10 19:17:24 +00:00
Chris Manghane
ec23e5b395 compiler: Report errors from very large types.
The gcc backend throws an internal error when trying to get the size
    of a type which is larger than the amount of address space on the
    machine.  This patch catches this error and reports it in a user
    friendly way.
    
    Fixes golang/go#11554.
    
    Reviewed-on: https://go-review.googlesource.com/13684

	* go-gcc.cc (Gcc_backend::type_size): Return -1 for
	unrepresentable size.

From-SVN: r227656
2015-09-10 18:24:28 +00:00
Segher Boessenkool
8b66114510 shrink-wrap: Header hygiene
2015-09-10  Segher Boessenkool  <segher@kernel.crashing.org>

	* shrink-wrap.c (requires_stack_frame_p): Make static.
	(prepare_shrink_wrap): Likewise.
	(dup_block_and_redirect): Likewise.
	* shrink-wrap.h: Remove declarations of those functions.

From-SVN: r227652
2015-09-10 19:25:35 +02:00
Steven G. Kargl
3108836938 re PR fortran/67526 (ICE on missing end parenthesis in substring construct)
2015-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/67526
	* gfortran.dg/pr67526.f90: New test.

2015-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/67526
	* expr.c (gfc_check_init_expr): Do not dereference a NULL pointer.

From-SVN: r227651
2015-09-10 17:13:11 +00:00
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