platform/upstream/linaro-gcc.git
8 years ago[PATCH] Fix declaration of pthread-structs in s-osinte-rtems.ads (ada/68169)
law [Wed, 2 Dec 2015 07:09:41 +0000 (07:09 +0000)]
[PATCH] Fix declaration of pthread-structs in s-osinte-rtems.ads (ada/68169)

PR ada/68169
* s-oscons-tmplt.c: Generate pthread constants for RTEMS
* s-osinte-rtems.ads: Declare pthread structs as opaque types in Ada

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231145 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR go/65717
ian [Wed, 2 Dec 2015 01:28:26 +0000 (01:28 +0000)]
PR go/65717
    compiler: Fix array reflection when len doesn't fit in unsigned long.

    This comes up when using a 32-bit host and a 64-bit target.

    Fixes https://gcc.gnu.org/PR65717.

    Reviewed-on: https://go-review.googlesource.com/17330

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231142 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Wed, 2 Dec 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231140 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * config/pa/fptr.c (__canonicalize_funcptr_for_compare): Initialize
danglin [Tue, 1 Dec 2015 23:59:20 +0000 (23:59 +0000)]
* config/pa/fptr.c (__canonicalize_funcptr_for_compare): Initialize
fixup values if saved GOT address doesn't match runtime address.
(fixup_branch_offset): Reorder list.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231135 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoPR68577: Handle narrowing for vector popcount, etc.
rsandifo [Tue, 1 Dec 2015 21:01:35 +0000 (21:01 +0000)]
PR68577: Handle narrowing for vector popcount, etc.

This patch adds support for simple cases where a vector
internal function returns wider results than the scalar
equivalent.  It punts on other cases.

Tested on powerpc64-linux-gnu and x86_64-linux-gnu.

gcc/
PR tree-optimization/68577
* tree-vect-stmts.c (simple_integer_narrowing): New function.
(vectorizable_call): Restrict internal function handling
to NONE and NARROW cases, using simple_integer_narrowing
to test for the latter.  Add cost of narrowing operation
and insert it where necessary.

gcc/testsuite/
PR tree-optimization/68577
* gcc.dg/vect/pr68577.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231131 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-12-01 Andreas Tobler <andreast@gcc.gnu.org>
andreast [Tue, 1 Dec 2015 20:17:37 +0000 (20:17 +0000)]
2015-12-01  Andreas Tobler  <andreast@gcc.gnu.org>

    * config/rs6000/freebsd64.h (ELFv2_ABI_CHECK): Add new macro.
    (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set
    rs6000_current_abi to ABI_AIX or ABI_ELFv2.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231129 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-12-01 Andreas Tobler <andreast@gcc.gnu.org>
andreast [Tue, 1 Dec 2015 20:15:35 +0000 (20:15 +0000)]
2015-12-01  Andreas Tobler  <andreast@gcc.gnu.org>

    PR libffi/65726
    * Makefile.def (lang_env_dependencies): Make libffi depend
    on cxx.
    * Makefile.in: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231128 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago gcc/
nathan [Tue, 1 Dec 2015 20:13:02 +0000 (20:13 +0000)]
gcc/
* config/nvptx/nvptx-protos.h (nvptx_output_aligned_decl): Declare.
* config/nvptx/nvptx.h (ASM_OUTPUT_ALIGNED_DECL_COMMON,
ASM_OUTPUT_ALIGNED_DECL_LOCAL): Forward to nvptx_output_aligned_decl.
* config/nvptx/nvptx.c (write_fn_marker, write_var_marker): New.
(write_fn_proto, write_fn_proto_from_insn): Call write_fn_marker.
(init_output_initializer): Call write_var_marker.
(nvptx_output_aligned_decl): New.
(nvptx_assemble_undefined_decl, nvptx_file_end): Call write_var_marker.

gcc/testsuite/
* gcc.target/nvptx/uninit-decl.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231127 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * gcc.c-torture/execute/alias-1.c: New testcase.
hubicka [Tue, 1 Dec 2015 19:14:44 +0000 (19:14 +0000)]
* gcc.c-torture/execute/alias-1.c: New testcase.
* c-common.c: Do not silently ignore -fstrict-aliasing changes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231125 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * lto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET.
hubicka [Tue, 1 Dec 2015 19:13:12 +0000 (19:13 +0000)]
* lto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET.
* tree-streamer-out.c (pack_ts_type_common_value_fields): Do not
stream TYPE_ALIAS_SET.
* tree-streamer-in.c (unpack_ts_type_common_value_fields): Do not
stream TYPE_ALIAS_SET.

* lto.c (compare_tree_sccs_1): Do not compare TYPE_ALIAS_SET.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231124 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * config/nvptx/nvptx.c (nvptx_function_arg_advance): Don't
nathan [Tue, 1 Dec 2015 16:58:08 +0000 (16:58 +0000)]
* config/nvptx/nvptx.c (nvptx_function_arg_advance): Don't
consider mode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231121 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR tree-optimization/64769
mpolacek [Tue, 1 Dec 2015 16:22:28 +0000 (16:22 +0000)]
PR tree-optimization/64769
* c-c++-common/gomp/pr64769.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231120 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[gcc]
wschmidt [Tue, 1 Dec 2015 16:10:45 +0000 (16:10 +0000)]
[gcc]

2015-12-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (const_load_sequence_p): Handle extra
indirection for large and small code models.
(adjust_vperm): Likewise.

[gcc/testsuite]

2015-12-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.target/powerpc/swaps-p8-22.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231119 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoOpenACC host_data support.
jules [Tue, 1 Dec 2015 15:52:23 +0000 (15:52 +0000)]
OpenACC host_data support.

gcc/
* gimple-pretty-print.c (dump_gimple_omp_target): Add host_data
support.
* gimple.h (gf_mask): Add GF_OMP_TARGET_KIND_OACC_HOST_DATA.
(is_gimple_omp_oacc): Add support for above.
* gimplify.c (omp_region_type): Add ORT_ACC_HOST_DATA.
(omp_notice_variable): Diagnose undefined implicit uses of
use_device variables in offloaded regions.
(gimplify_scan_omp_clauses): Add host_data, use_device
support. Diagnose undefined mapping of use_device variables in
OpenACC clauses.
(gimplify_omp_workshare): Add host_data support.
(gimplify_expr): Likewise.
* omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): New.
* omp-low.c (lookup_decl_in_outer_ctx)
(maybe_lookup_decl_in_outer_ctx): Add optional argument to skip
host_data regions.
(scan_sharing_clauses): Support use_device.
(check_omp_nesting_restrictions): Support host_data.
(expand_omp_target): Support host_data.
(lower_omp_target): Skip over outer host_data regions when looking
up decls. Support use_device.
(make_gimple_omp_edges): Support host_data.
* tree-nested.c (convert_nonlocal_omp_clauses): Add use_device
clause.

gcc/c/
* c-parser.c (c_parser_omp_clause_name): Add use_device support.
(c_parser_oacc_clause_use_device): New function.
(c_parser_oacc_all_clauses): Add use_device support.
(OACC_HOST_DATA_CLAUSE_MASK): New macro.
(c_parser_oacc_host_data): New function.
(c_parser_omp_construct): Add host_data support.
* c-tree.h (c_finish_oacc_host_data): Add prototype.
* c-typeck.c (c_finish_oacc_host_data): New function.
(c_finish_omp_clauses): Add use_device support.

gcc/cp/
* cp-tree.h (finish_oacc_host_data): Add prototype.
* parser.c (cp_parser_omp_clause_name): Add use_device support.
(cp_parser_oacc_all_clauses): Add use_device support.
(OACC_HOST_DATA_CLAUSE_MASK): New macro.
(cp_parser_oacc_host_data): New function.
(cp_parser_omp_construct): Add host_data support.
(cp_parser_pragma): Add host_data support.
* semantics.c (finish_omp_clauses): Add use_device support.
(finish_oacc_host_data): New function.

gcc/c-family/
* c-pragma.c (oacc_pragmas): Add PRAGMA_OACC_HOST_DATA.
* c-pragma.h (pragma_kind): Add PRAGMA_OACC_HOST_DATA.
(pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_USE_DEVICE.

libgomp/
* oacc-parallel.c (GOACC_host_data): New function.
* libgomp.map (GOACC_host_data): Add to GOACC_2.0.1.
* testsuite/libgomp.oacc-c-c++-common/host_data-1.c: New test.
* testsuite/libgomp.oacc-c-c++-common/host_data-2.c: New test.
* testsuite/libgomp.oacc-c-c++-common/host_data-3.c: New test.
* testsuite/libgomp.oacc-c-c++-common/host_data-4.c: New test.
* testsuite/libgomp.oacc-c-c++-common/host_data-5.c: New test.
* testsuite/libgomp.oacc-c-c++-common/host_data-6.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231118 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR tree-optimization/67916
mpolacek [Tue, 1 Dec 2015 15:47:34 +0000 (15:47 +0000)]
PR tree-optimization/67916
* gcc.dg/torture/pr67916.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231117 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR middle-end/68582
mpolacek [Tue, 1 Dec 2015 15:44:08 +0000 (15:44 +0000)]
PR middle-end/68582
* cgraphunit.c (check_global_declaration): Only depend on TREE_THIS_VOLATILE
for VAR_DECLs.

* c-c++-common/pr68582.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231116 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoPR68474: Fix tree-call-cdce.c:use_internal_fn
rsandifo [Tue, 1 Dec 2015 14:53:53 +0000 (14:53 +0000)]
PR68474: Fix tree-call-cdce.c:use_internal_fn

We'd call gen_shrink_wrap_conditions for functions that it can't handle
but edom_only_function can.

Tested on x86_64-linux-gnu.

gcc/
PR tree-optimization/68474
* tree-call-cdce.c (use_internal_fn): Protect call to
gen_shrink_wrap_conditions.

gcc/testsuite/
PR tree-optimization/68474
* gcc.dg/pr68474.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231115 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-12-01 Christian Bruel <christian.bruel@st.com>
chrbr [Tue, 1 Dec 2015 14:50:57 +0000 (14:50 +0000)]
2015-12-01  Christian Bruel  <christian.bruel@st.com>

        PR target/68617
        * config/arm/arm.opt (unaligned_access): Save.
        * config/arm/arm-c.c (__ARM_FEATURE_UNALIGNED): Conditionally define.
        * config/arm/arm.c (arm_option_override): Move unaligned_access setting
        (arm_option_override_internal): ... here.
        * config/arm/arm.h (TARGET_32BIT_P): New macro.

// testsuite
        PR target/68617
        * gcc.target/arm/attr-unaligned-load-ice.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231114 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoMove pr46032*.c tests
vries [Tue, 1 Dec 2015 14:44:00 +0000 (14:44 +0000)]
Move pr46032*.c tests

2015-12-01  Tom de Vries  <tom@codesourcery.com>

* gcc.dg/pr46032.c: Move to ...
* gcc.dg/vect/pr46032.c: here.  Add dg-require-effective-target
vect_int.
* gcc.dg/pr46032-2.c: Move to ...
* gcc.dg/gomp/pr46032-2.c: ... here.  Drop dg-require-effective-target fopenmp.
* gcc.dg/pr46032-3.c: Move to ...
* gcc.dg/gomp/pr46032-3.c: ... here.  Drop dg-require-effective-target fopenmp.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231113 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago gcc/fortran/
cesar [Tue, 1 Dec 2015 14:27:11 +0000 (14:27 +0000)]
gcc/fortran/
* dump-parse-tree.c (show_omp_clauses): Handle optional num and static
arguments for the gang clause.
* gfortran.h (gfc_omp_clauses): Rename gang_expr as gang_num_expr.
Add gang_static_expr.
* openmp.c (gfc_free_omp_clauses): Update to free gang_num_expr and
gang_static_expr.
(match_oacc_clause_gang): Update to support both num and static in
the same clause.
(resolve_omp_clauses): Formatting.  Also handle gang_num_expr and
gang_static_expr.
(resolve_oacc_params_in_parallel): New const char arg argument.
Use it to report more accurate gang, worker and vector clause errors.
(resolve_oacc_loop_blocks): Update calls to
resolve_oacc_params_in_parallel.
* trans-openmp.c (gfc_trans_omp_clauses): Update the gimplification of
the gang clause.
(gfc_trans_oacc_combined_directive): Make use of gang_num_expr and
gang_static_expr.  Remove OMP_LIST_REDUCTION from construct_clauses.

gcc/testsuite/
* gfortran.dg/goacc/gang-static.f95: Add tests for gang num arguments.
* gfortran.dg/goacc/loop-2.f95: Update expected diagnostics.
* gfortran.dg/goacc/loop-6.f95: Likewise.
* gfortran.dg/goacc/loop-7.f95: New test.
* gfortran.dg/goacc/reduction-2.f95: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231112 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-12-01 Richard Biener <rguenther@suse.de>
rguenth [Tue, 1 Dec 2015 14:24:54 +0000 (14:24 +0000)]
2015-12-01  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68379
* tree-vect-stmts.c (vectorizable_load): For BB vectorization
always base loads on the first used DR of a group.
* tree-vect-data-refs.c (vect_slp_analyze_and_verify_node_alignment):
Compute alignment of the first scalar element unconditionally.

* gcc.dg/torture/pr68379.c: New testcase.
* gfortran.dg/pr68379-1.f90: Likewise.
* gfortran.dg/pr68379-2.f: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231111 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-12-01 Richard Biener <rguenther@suse.de>
rguenth [Tue, 1 Dec 2015 14:22:40 +0000 (14:22 +0000)]
2015-12-01  Richard Biener  <rguenther@suse.de>

PR middle-end/68590
* genmatch.c (struct capture_info): Add match_use_count.
(capture_info::walk_match): Increment match_use_count.
(dt_simplify::gen_1): For GENERIC, only wrap multi-use
replacements in a save_expr if they occur more often than
in the original expression.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231110 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[testsuite] Fix pr46032* testcases.
clyon [Tue, 1 Dec 2015 12:20:51 +0000 (12:20 +0000)]
[testsuite] Fix pr46032* testcases.

2015-12-01  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.dg/pr46032.c: Add dg-require-effective-target fopenmp.
* gcc.dg/pr46032-2.c: Likewise.
* gcc.dg/pr46032-3.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231109 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-12-01 Richard Biener <rguenther@suse.de>
rguenth [Tue, 1 Dec 2015 11:35:21 +0000 (11:35 +0000)]
2015-12-01  Richard Biener  <rguenther@suse.de>

PR ipa/68470
* ipa-split.c (split_function): Handle main part not returning.

* g++.dg/torture/pr68470.C: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231108 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDefine path::_Cmpt after specializing path::__is_encoded_char
redi [Tue, 1 Dec 2015 11:33:17 +0000 (11:33 +0000)]
Define path::_Cmpt after specializing path::__is_encoded_char

* include/experimental/bits/fs_path.h (path::_Cmpt): Move definition
after path::__is_encoded_char explicit specializations.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231107 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agogcc/
ienkovich [Tue, 1 Dec 2015 11:04:06 +0000 (11:04 +0000)]
gcc/

PR middle-end/68595
* tree-vect-stmts.c (vect_init_vector): Cast boolean
scalars to a proper value before building a vector.

gcc/testsuite/

PR middle-end/68595
* gcc.dg/pr68595.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231106 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix armv6+thumb1 unaligned tests
chrbr [Tue, 1 Dec 2015 10:07:20 +0000 (10:07 +0000)]
Fix armv6+thumb1 unaligned tests

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231105 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * gcc-interface/Makefile.in (ADA_EXCLUDE_SRCS): Reorder.
ebotcazou [Tue, 1 Dec 2015 09:38:37 +0000 (09:38 +0000)]
* gcc-interface/Makefile.in (ADA_EXCLUDE_SRCS): Reorder.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231104 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoImprove error reporting from genattrtab.c
rsandifo [Tue, 1 Dec 2015 09:31:02 +0000 (09:31 +0000)]
Improve error reporting from genattrtab.c

The errors reported by check_attr_value weren't very helpful because
they always used the location of the define(_enum)_attr, even if the
error was in a define_insn.  Also, the errors reported by
check_attr_test didn't say which attribute was faulty.

Although not technically a bug fix, it was really useful in writing
the patch for PR68432.

Tested on a variety of targets.

gcc/
* genattrtab.c (check_attr_test): Take an attr_desc instead of
an is_const flag.  Put the file_location argument first.
Update recursive calls.  Improve error messages.
(check_attr_value): Take a file location and use it instead
of attr->loc.  Improve error messages.  Update calls to
check_attr_test.
(check_defs): Update call to check_attr_value.
(make_canonical): Likewise.
(gen_attr): Likewise.
(main): Likewise.
(gen_insn_reserv): Update call to check_attr_test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231103 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix typo in aarch64.c
ramana [Tue, 1 Dec 2015 08:54:52 +0000 (08:54 +0000)]
Fix typo in aarch64.c

2015-12-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

* config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Fix typo.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231101 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-12-01 Richard Biener <rguenther@suse.de>
rguenth [Tue, 1 Dec 2015 08:52:58 +0000 (08:52 +0000)]
2015-12-01  Richard Biener  <rguenther@suse.de>

PR middle-end/68590
* match.pd: Merge (eq @0 @0) and (ge/le @0 @0) patterns.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231100 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * ipa-devirt.c (type_with_linkage_p, type_in_anonymous_namespace_p,
hubicka [Tue, 1 Dec 2015 06:36:02 +0000 (06:36 +0000)]
* ipa-devirt.c (type_with_linkage_p, type_in_anonymous_namespace_p,
odr_type_p): Move to ...
* ipa-utils.h (type_with_linkage_p, type_in_anonymous_namespace_p,
odr_type_p): here; miscro-optimize.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231098 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR tree-optimization/68529
amker [Tue, 1 Dec 2015 05:22:16 +0000 (05:22 +0000)]
PR tree-optimization/68529
* tree-ssa-loop-niter.c (number_of_iterations_ne): Add new param.
Compute no-overflow information for control iv.
(number_of_iterations_lt, number_of_iterations_le): Add new param.
(number_of_iterations_cond): Pass new argument to above functions.

PR tree-optimization/68529
* gcc.dg/tree-ssa/pr68529-1.c: New test.
* gcc.dg/tree-ssa/pr68529-2.c: New test.
* gcc.dg/tree-ssa/pr68529-3.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231097 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR go/68477
ian [Tue, 1 Dec 2015 04:45:53 +0000 (04:45 +0000)]
PR go/68477
* go-gcc.cc (Gcc_backend::string_constant_expression): Don't set
TYPE_STRING_FLAG on a variant type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231096 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when
hubicka [Tue, 1 Dec 2015 04:19:50 +0000 (04:19 +0000)]
* ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when
inlining -fno-strict-aliasing into -fstrict-aliasing body.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231095 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when
hubicka [Tue, 1 Dec 2015 04:13:26 +0000 (04:13 +0000)]
* ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when
inlining -fno-strict-aliasing into -fstrict-aliasing body.
* gcc.dg/lto/alias-1_0.c: New testcase.
* gcc.dg/lto/alias-1_1.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231094 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Tue, 1 Dec 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231093 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agocheck for ISL generated code that leads to division by zero
spop [Mon, 30 Nov 2015 20:39:16 +0000 (20:39 +0000)]
check for ISL generated code that leads to division by zero

we used to generate modulo and division by zero because ISL uses big numbers
which translate to zero in modulo arithmetic.  The patch also improves error handling
and bails out early in case of wrong code gen.

PR tree-optimization/68565
* graphite-isl-ast-to-gimple.c (binary_op_to_tree): Early return on
codegen_error.  Fail when rhs of division operations is integer_zerop.
(ternary_op_to_tree): Early return on codegen_error.
(unary_op_to_tree): Same.
(nary_op_to_tree): Same.
(gcc_expression_from_isl_expr_op): Same.
(gcc_expression_from_isl_expression): Same.
(graphite_create_new_loop): On codegen_error continue generating
wrong code.
(graphite_create_new_loop_guard): Same.
(build_iv_mapping): Same.
(graphite_create_new_guard): Same.

* gfortran.dg/graphite/pr68565.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231086 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoalways print parameter names as P_{SSA_NAME_VERSION}
spop [Mon, 30 Nov 2015 20:29:15 +0000 (20:29 +0000)]
always print parameter names as P_{SSA_NAME_VERSION}

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231085 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago gcc/
cesar [Mon, 30 Nov 2015 19:09:33 +0000 (19:09 +0000)]
gcc/
* tree-nested.c (convert_nonlocal_omp_clauses): Add support for
OMP_CLAUSE_{NUM_GANGS,NUM_VECTORS,VECTOR_LENGTH,SEQ}.
(convert_local_omp_clauses): Likewise.

gcc/fortran/
* f95-lang.c (gfc_attribute_table): Add an "oacc function"
attribute.
* gfortran.h (symbol_attribute): Add an oacc_function bit-field.
(gfc_oacc_routine_name): New struct;
(gfc_get_oacc_routine_name): New macro.
(gfc_namespace): Add oacc_routine_clauses, oacc_routine_names and
oacc_routine fields.
(gfc_exec_op): Add EXEC_OACC_ROUTINE.
* openmp.c (OACC_ROUTINE_CLAUSES): New mask.
(gfc_oacc_routine_dims): New function.
(gfc_match_oacc_routine): Add support for named routines and the
gang, worker vector and seq clauses.
* parse.c (is_oacc): Add EXEC_OACC_ROUTINE.
* resolve.c (gfc_resolve_blocks): Likewise.
* st.c (gfc_free_statement): Likewise.
* trans-decl.c (add_attributes_to_decl): Attach an 'oacc function'
attribute and shape geometry for acc routine.

gcc/testsuite/
* gfortran.dg/goacc/routine-3.f90: New test.
* gfortran.dg/goacc/routine-4.f90: New test.
* gfortran.dg/goacc/routine-5.f90: New test.
* gfortran.dg/goacc/routine-6.f90: New test.
* gfortran.dg/goacc/subroutines: New test.

libgomp/
* libgomp.oacc-fortran/routine-5.f90: New test.
* libgomp.oacc-fortran/routine-7.f90: New test.
* libgomp.oacc-fortran/routine-9.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231081 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoAdd gcc.dg/pr46032-{2,3}.c test-cases
vries [Mon, 30 Nov 2015 17:48:41 +0000 (17:48 +0000)]
Add gcc.dg/pr46032-{2,3}.c test-cases

2015-11-30  Tom de Vries  <tom@codesourcery.com>

* gcc.dg/pr46032-2.c: New test.
* gcc.dg/pr46032-3.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231079 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agogcc/testsuite/ChangeLog:
cbaylis [Mon, 30 Nov 2015 17:11:16 +0000 (17:11 +0000)]
gcc/testsuite/ChangeLog:

2015-11-30  Charles Baylis  <charles.baylis@linaro.org>

PR target/63870
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f16_indices_1.c (f_vld2_lane_f16): Remove xfails for arm targets.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f32_indices_1.c (f_vld2_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f64_indices_1.c (f_vld2_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_p8_indices_1.c (f_vld2_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_s16_indices_1.c (f_vld2_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_s32_indices_1.c (f_vld2_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_s64_indices_1.c (f_vld2_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_s8_indices_1.c (f_vld2_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_u16_indices_1.c (f_vld2_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_u32_indices_1.c (f_vld2_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_u64_indices_1.c (f_vld2_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_u8_indices_1.c (f_vld2_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_f16_indices_1.c (f_vld2q_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_f32_indices_1.c (f_vld2q_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_f64_indices_1.c (f_vld2q_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_p8_indices_1.c (f_vld2q_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_s16_indices_1.c (f_vld2q_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_s32_indices_1.c (f_vld2q_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_s64_indices_1.c (f_vld2q_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_s8_indices_1.c (f_vld2q_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_u16_indices_1.c (f_vld2q_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_u32_indices_1.c (f_vld2q_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_u64_indices_1.c (f_vld2q_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_u8_indices_1.c (f_vld2q_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_f16_indices_1.c (f_vld3_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_f32_indices_1.c (f_vld3_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_f64_indices_1.c (f_vld3_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_p8_indices_1.c (f_vld3_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_s16_indices_1.c (f_vld3_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_s32_indices_1.c (f_vld3_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_s64_indices_1.c (f_vld3_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_s8_indices_1.c (f_vld3_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_u16_indices_1.c (f_vld3_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_u32_indices_1.c (f_vld3_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_u64_indices_1.c (f_vld3_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_u8_indices_1.c (f_vld3_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_f16_indices_1.c (f_vld3q_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_f32_indices_1.c (f_vld3q_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_f64_indices_1.c (f_vld3q_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_p8_indices_1.c (f_vld3q_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_s16_indices_1.c (f_vld3q_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_s32_indices_1.c (f_vld3q_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_s64_indices_1.c (f_vld3q_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_s8_indices_1.c (f_vld3q_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_u16_indices_1.c (f_vld3q_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_u32_indices_1.c (f_vld3q_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_u64_indices_1.c (f_vld3q_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_u8_indices_1.c (f_vld3q_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_f16_indices_1.c (f_vld4_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_f32_indices_1.c (f_vld4_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_f64_indices_1.c (f_vld4_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_p8_indices_1.c (f_vld4_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_s16_indices_1.c (f_vld4_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_s32_indices_1.c (f_vld4_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_s64_indices_1.c (f_vld4_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_s8_indices_1.c (f_vld4_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_u16_indices_1.c (f_vld4_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_u32_indices_1.c (f_vld4_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_u64_indices_1.c (f_vld4_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_u8_indices_1.c (f_vld4_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_f16_indices_1.c (f_vld4q_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_f32_indices_1.c (f_vld4q_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_f64_indices_1.c (f_vld4q_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_p8_indices_1.c (f_vld4q_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_s16_indices_1.c (f_vld4q_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_s32_indices_1.c (f_vld4q_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_s64_indices_1.c (f_vld4q_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_s8_indices_1.c (f_vld4q_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u16_indices_1.c (f_vld4q_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u32_indices_1.c (f_vld4q_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u64_indices_1.c (f_vld4q_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u8_indices_1.c (f_vld4q_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f16_indices_1.c (f_vst2_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f32_indices_1.c (f_vst2_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f64_indices_1.c (f_vst2_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_p8_indices_1.c (f_vst2_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_s16_indices_1.c (f_vst2_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_s32_indices_1.c (f_vst2_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_s64_indices_1.c (f_vst2_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_s8_indices_1.c (f_vst2_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_u16_indices_1.c (f_vst2_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_u32_indices_1.c (f_vst2_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_u64_indices_1.c (f_vst2_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_u8_indices_1.c (f_vst2_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_f16_indices_1.c (f_vst2q_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_f32_indices_1.c (f_vst2q_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_f64_indices_1.c (f_vst2q_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_p8_indices_1.c (f_vst2q_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_s16_indices_1.c (f_vst2q_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_s32_indices_1.c (f_vst2q_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_s64_indices_1.c (f_vst2q_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_s8_indices_1.c (f_vst2q_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_u16_indices_1.c (f_vst2q_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_u32_indices_1.c (f_vst2q_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_u64_indices_1.c (f_vst2q_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_u8_indices_1.c (f_vst2q_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_f16_indices_1.c (f_vst3_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_f32_indices_1.c (f_vst3_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_f64_indices_1.c (f_vst3_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_p8_indices_1.c (f_vst3_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_s16_indices_1.c (f_vst3_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_s32_indices_1.c (f_vst3_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_s64_indices_1.c (f_vst3_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_s8_indices_1.c (f_vst3_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_u16_indices_1.c (f_vst3_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_u32_indices_1.c (f_vst3_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_u64_indices_1.c (f_vst3_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_u8_indices_1.c (f_vst3_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_f16_indices_1.c (f_vst3q_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_f32_indices_1.c (f_vst3q_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_f64_indices_1.c (f_vst3q_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_p8_indices_1.c (f_vst3q_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_s16_indices_1.c (f_vst3q_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_s32_indices_1.c (f_vst3q_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_s64_indices_1.c (f_vst3q_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_s8_indices_1.c (f_vst3q_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_u16_indices_1.c (f_vst3q_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_u32_indices_1.c (f_vst3q_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_u64_indices_1.c (f_vst3q_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_u8_indices_1.c (f_vst3q_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_f16_indices_1.c (f_vst4_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_f32_indices_1.c (f_vst4_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_f64_indices_1.c (f_vst4_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_p8_indices_1.c (f_vst4_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_s16_indices_1.c (f_vst4_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_s32_indices_1.c (f_vst4_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_s64_indices_1.c (f_vst4_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_s8_indices_1.c (f_vst4_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_u16_indices_1.c (f_vst4_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_u32_indices_1.c (f_vst4_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_u64_indices_1.c (f_vst4_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_u8_indices_1.c (f_vst4_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_f16_indices_1.c (f_vst4q_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_f32_indices_1.c (f_vst4q_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_f64_indices_1.c (f_vst4q_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_p8_indices_1.c (f_vst4q_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_s16_indices_1.c (f_vst4q_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_s32_indices_1.c (f_vst4q_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_s64_indices_1.c (f_vst4q_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_s8_indices_1.c (f_vst4q_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u16_indices_1.c (f_vst4q_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u32_indices_1.c (f_vst4q_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u64_indices_1.c (f_vst4q_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u8_indices_1.c (f_vst4q_lane_u8): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231077 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoHandle BUILT_IN_GOMP_PARALLEL in ipa-pta
vries [Mon, 30 Nov 2015 16:34:26 +0000 (16:34 +0000)]
Handle BUILT_IN_GOMP_PARALLEL in ipa-pta

2015-11-30  Tom de Vries  <tom@codesourcery.com>

PR tree-optimization/46032
* tree-ssa-structalias.c (find_func_aliases_for_call_arg): New function,
factored out of ...
(find_func_aliases_for_call): ... here.
(find_func_aliases_for_builtin_call, find_func_clobbers): Handle
BUILT_IN_GOMP_PARALLEL.
(ipa_pta_execute): Same.  Handle node->parallelized_function as a local
function.

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

* testsuite/libgomp.c/pr46032.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231076 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR tree-optimization/68501
jakub [Mon, 30 Nov 2015 14:56:08 +0000 (14:56 +0000)]
PR tree-optimization/68501
* target.def (builtin_reciprocal): Replace the 3 arguments with
a gcall * one, adjust description.
* targhooks.h (default_builtin_reciprocal): Replace the 3 arguments
with a gcall * one.
* targhooks.c (default_builtin_reciprocal): Likewise.
* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Use
targetm.builtin_reciprocal even on internal functions, adjust
the arguments and allow replacing an internal function with normal
built-in.
* config/i386/i386.c (ix86_builtin_reciprocal): Replace the 3 arguments
with a gcall * one.  Handle internal fns too.
* config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Likewise.
* config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
* doc/tm.texi (builtin_reciprocal): Document.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231075 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-11-30 Richard Biener <rguenther@suse.de>
rguenth [Mon, 30 Nov 2015 14:50:48 +0000 (14:50 +0000)]
2015-11-30  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68592
* tree-vect-loop.c (vect_analyze_loop_2): Reset SLP type also
on the pattern def sequence.

* gfortran.dg/pr68592.f: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231074 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * config/nvptx/nvptx.c (nvptx_name_replacement): Move earlier.
nathan [Mon, 30 Nov 2015 14:44:48 +0000 (14:44 +0000)]
* config/nvptx/nvptx.c (nvptx_name_replacement): Move earlier.
(write_one_arg): Reorder parms, add 'sep' param.
(nvptx_write_function_decl): Rename to ...
(write_fn_proto): ... here.  Do name replacement. Emit linaer
comment marker. Deal with both decls and defns. Simplify argument
formatting.
(write_function_decl_and_comment): Delete.
(write_func_decl_from_insn): Rename to ...
(write_fn_proto_from_insn): ... here.  Don't do name replacement.
(nvptx_record_fndecl): Call write_fn_proto.
(nvptx_record_libfunc): Call write_fn_proto_from_insn.
(nvptx_declare_function_name): Adjust for write_fn_proto changes.
(nvotx_output_call_insn): Call write_fn_prot_from_insn.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231073 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-11-30 Paul Thomas <pault@gcc.gnu.org>
pault [Mon, 30 Nov 2015 13:33:27 +0000 (13:33 +0000)]
2015-11-30  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/68534
* decl.c (gfc_match_formal_arglist): Cope with zero formal args
either in interface declaration or in procedure declaration in
submodule.

2015-11-30  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/68534
* gfortran.dg/submodule_13.f08: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231072 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoS/390: Testsuite: Add asm scan patterns for -m31.
krebbel [Mon, 30 Nov 2015 13:24:51 +0000 (13:24 +0000)]
S/390: Testsuite: Add asm scan patterns for -m31.

gcc/testsuite/ChangeLog:

2015-11-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/load-relative-check.c: Add scan patterns for
-m31.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231071 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoS/390: Testsuite: Add -mzarch to load-relative-check.c.
krebbel [Mon, 30 Nov 2015 12:31:02 +0000 (12:31 +0000)]
S/390: Testsuite: Add -mzarch to load-relative-check.c.

2015-11-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/load-relative-check.c: Add -mzarch.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231070 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * c-ada-spec.c (print_ada_macros): Remove redundant blank line.
ebotcazou [Mon, 30 Nov 2015 12:20:06 +0000 (12:20 +0000)]
* c-ada-spec.c (print_ada_macros): Remove redundant blank line.
(decl_sloc_common): Delete and move bulk of processing to...
(decl_sloc): ...here.
(pp_ada_tree_identifier): Remove reference to QUAL_UNION_TYPE.
(dump_ada_double_name): Remove S parameter and compute the suffix.
(dump_ada_array_type): Add PARENT parameter.  Simplify computation of
element type and deal with an anonymous one.
(dump_ada_template): Use RECORD_OR_UNION_TYPE_P macro.
(dump_generic_ada_node): Tweak.  Adjust call to dump_ada_array_type
and remove reference to QUAL_UNION_TYPE.
(dump_nested_types): Make 2 passes on the fields and move bulk to...
(dump_nested_type): ...here.  New function extracted from above.
Generate a full declaration for anonymous element type of arrays.
(print_ada_declaration): Really skip anonymous declarations.  Remove
references to QUAL_UNION_TYPE.  Adjust call to dump_ada_array_type.
Clean up processing of declarations of array types and objects.
(print_ada_struct_decl): Remove reference to QUAL_UNION_TYPE.
Remove obsolete code and tidy up.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231069 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * gcc-interface/trans.c (gigi): Fix initialization order.
ebotcazou [Mon, 30 Nov 2015 12:06:30 +0000 (12:06 +0000)]
* gcc-interface/trans.c (gigi): Fix initialization order.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231068 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * osint.adb: Add use type clause for CRTL.size_t.
ebotcazou [Mon, 30 Nov 2015 11:59:09 +0000 (11:59 +0000)]
* osint.adb: Add use type clause for CRTL.size_t.
(C_String_Length): Return CRTL.size_t instead of Integer.
(To_Path_String_Access): Take CRTL.size_t instead of Integer.
(Get_Libraries_From_Registry): Use CRTL throughout.
(To_Canonical_Dir_Spec): Use CRTL.size_t instead of Integer.
(To_Canonical_File_List): Likewise.
(To_Canonical_File_Spec): Likewise.
(To_Canonical_Path_Spec): Likewise.
(To_Host_Dir_Spec): Likewise.
(To_Host_File_Spec): Likewise.
(Update_Path): Use CRTL throughout.
* s-shasto.adb: Add with clause for System.CRTL.
(Initialize): Rename CRTL.strncpy instead of importing it manually.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231066 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * gcc-interface/gigi.h (create_var_decl): Adjust prototype.
ebotcazou [Mon, 30 Nov 2015 11:50:53 +0000 (11:50 +0000)]
* gcc-interface/gigi.h (create_var_decl): Adjust prototype.
(create_subprog_decl): Likewise.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Rename
static_p into static_flag and add volatile_flag local variable.
Do not locally change the type of a volatile object, except for the
pointed-to type if the object is handled by reference.  Adjust calls
to create_var_decl.
<E_Subprogram_Type>: Likewise for const and noreturn subprograms.
(get_minimal_subprog_decl): Adjust call to create_subprog_decl.
(elaborate_expression_1): Adjust call to create_var_decl.
(gnat_to_gnu_field): Minor tweak.
* gcc-interface/trans.c (gigi): Adjust calls to create_var_decl and
create_subprog_decl.
(build_raise_check): Likewise.
(Subprogram_Body_to_gnu): Likewise.
(create_temporary): Likewise.
(Handled_Sequence_Of_Statements_to_gnu): Likewise.
(Exception_Handler_to_gnu_gcc): Likewise.
(Compilation_Unit_to_gnu): Likewise.
(gnat_to_gnu): Likewise.
* gcc-interface/utils.c (maybe_pad_type): Likewise.
(create_var_decl): Add VOLATILE_FLAG parameter and handle it.
(create_subprog_decl): Add CONST_FLAG and VOLATILE_FLAG parameters and
handle them.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231065 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * gcc-interface/gigi.h (is_simple_additive_expression): Declare.
ebotcazou [Mon, 30 Nov 2015 11:46:32 +0000 (11:46 +0000)]
* gcc-interface/gigi.h (is_simple_additive_expression): Declare.
* gcc-interface/trans.c (struct range_check_info_d): Add DISP and
NEG_P fields.
(find_loop_for): Add DISP and NEG_P parameters with default value.
Call is_simple_additive_expression to handle additive expressions.
(Loop_Statement_to_gnu): Deal with displacement in range checks.
(Raise_Error_to_gnu): Likewise.
(gnat_to_gnu): Add call to find_loop_for.
(is_simple_additive_expression): New function extracted from...
(gnat_invariant_expr): ...here.  Call it on the expression.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231064 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * gcc-interface/utils2.c (gnat_invariant_expr): Add type conversions.
ebotcazou [Mon, 30 Nov 2015 11:34:31 +0000 (11:34 +0000)]
* gcc-interface/utils2.c (gnat_invariant_expr): Add type conversions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231063 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * gcc-interface/ada-tree.h (TYPE_MAX_ALIGN): New macro.
ebotcazou [Mon, 30 Nov 2015 11:25:24 +0000 (11:25 +0000)]
* gcc-interface/ada-tree.h (TYPE_MAX_ALIGN): New macro.
* gcc-interface/decl.c (gnat_to_gnu_entity): Do not set PACKED to -2.
Remove obsolete code setting the alignment on some atomic types.
When the type has no alignment but needs strict alignment and has a
size clause, compute a maximum alignment and set it on the type.
(adjust_packed): Remove handling of -2 argument.  Deal with TYPE_ALIGN
and TYPE_MAX_ALIGN directly.
(gnat_to_gnu_field): Do not document -2 as argument.
(components_to_record): Likewise.
* gcc-interface/utils.c (finish_record_type): Do not bump alignment of
the record type beyond TYPE_MAX_ALIGN.  Reset the latter on exit.

* gcc-interface/Makefile.in (PICFLAG_FOR_TARGET): Move around.
(GNATLIBCFLAGS_FOR_C): Reformat.
(GCC_CFLAGS): Delete.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231062 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[AVX-512] Enable QI-mode mask logic patterns on non-AVX-512DQ targets.
kyukhin [Mon, 30 Nov 2015 10:50:56 +0000 (10:50 +0000)]
[AVX-512] Enable QI-mode mask logic patterns on non-AVX-512DQ targets.

gcc/
* config/i386/i386.md (define_mode_iterator SWI1248_AVX512BW): New.
(define_insn "*k<logic><mode>"): Use new iterator.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231061 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR target/28115
ebotcazou [Mon, 30 Nov 2015 09:43:55 +0000 (09:43 +0000)]
PR target/28115
* config/sparc/sparc.c (supersparc_adjust_cost): Fix thinko.
(sparc_adjust_cost): Add missing space.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231059 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-11-30 Richard Biener <rguenther@suse.de>
rguenth [Mon, 30 Nov 2015 08:24:06 +0000 (08:24 +0000)]
2015-11-30  Richard Biener  <rguenther@suse.de>

PR c/68162
* dwarf2out.c (gen_type_die_with_usage): Keep variant types
of arrays.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231058 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-11-30 Venkataramanan Kumar <Venkataramanan.Kumar@amd.com>
vekumar [Mon, 30 Nov 2015 07:59:54 +0000 (07:59 +0000)]
2015-11-30  Venkataramanan Kumar  <Venkataramanan.Kumar@amd.com>

* tree-if-conv.c (struct ifc_dr): Add new tree
base_predicate field.
(hash_memrefs_baserefs_and_store_DRs_read_written_info): Hash
base ref, DR pairs and store base_predicate for write type DRs.
(ifcvt_memrefs_wont_trap): Guard checks with
-ftree-loop-if-convert-stores flag.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231057 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Mon, 30 Nov 2015 00:16:14 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231056 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-11-29 Matthias Klose <doko@ubuntu.com>
doko [Sun, 29 Nov 2015 22:41:00 +0000 (22:41 +0000)]
2015-11-29  Matthias Klose  <doko@ubuntu.com>

        PR ada/68564
        * gcc-interface/Makefile.in: Fix powerpc/powerpc64* and
        mipsel/mips64el bitness detection.
        Merge the mipsel/mips64el definitions into one.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231051 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * cgraph.c (cgraph_node::make_local): No name is unique during
hubicka [Sun, 29 Nov 2015 22:33:23 +0000 (22:33 +0000)]
* cgraph.c (cgraph_node::make_local): No name is unique during
incremental linking.
* cgraph.h (can_be_discarded_p): Update comment; also common and
WEAK in named sections can be discarded; when doing incremental
link do not rely on resolution being the final one.
* varasm.c (default_binds_local_p_3, decl_binds_to_current_def_p):
When symbol can be discarded, do not rely on resolution info.
* symtab.c (symtab_node::nonzero_address): Take into account that
symbol can be discarded.
* ipa-visibility.c (update_visibility_by_resolution_info): Handle
definition correctly.
(function_and_variable_visibility): Do not set unique_name when
incrementally linking.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231050 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR c/67106
hubicka [Sun, 29 Nov 2015 19:50:04 +0000 (19:50 +0000)]
PR c/67106
* gcc.c-torture/compile/pr67106.c: New testcase.
* c-decl.c: Set TYPE_PACKED in variants.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231049 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR c/67581
hubicka [Sun, 29 Nov 2015 19:48:45 +0000 (19:48 +0000)]
PR c/67581
* g++.dg/torture/pr67581.C: New testcase.
* c-family/c-common.c (handle_transparent_union_attribute): Update
also type variants.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231048 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * config/nvptx/nvptx.md (const_0_operand, global_mem_operand,
nathan [Sun, 29 Nov 2015 18:54:41 +0000 (18:54 +0000)]
* config/nvptx/nvptx.md (const_0_operand, global_mem_operand,
const_mem_operand, param_mem_operand, shared_mem_operand): Delete.
(ctrap<mode>): Use const0_operand.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231047 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * ipa-devirt.c (add_type_duplicate): Remove redundant ODR violation
hubicka [Sun, 29 Nov 2015 18:51:28 +0000 (18:51 +0000)]
* ipa-devirt.c (add_type_duplicate): Remove redundant ODR violation
dump

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231046 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoPR target/28115
dje [Sun, 29 Nov 2015 18:11:54 +0000 (18:11 +0000)]
PR target/28115
* config/rs6000/rs6000.c (rs6000_adjust_cost): Correct
recog_memoized test for insn and check recog_memoized for dep_insn.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231045 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Sun, 29 Nov 2015 00:16:15 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231042 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoAdd to correct changelog
nathan [Sat, 28 Nov 2015 23:25:48 +0000 (23:25 +0000)]
Add to correct changelog

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231039 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * config/nvptx/nvptx.h (FIRST_PARM_OFFSET): Add void cast.
nathan [Sat, 28 Nov 2015 23:24:20 +0000 (23:24 +0000)]
* config/nvptx/nvptx.h (FIRST_PARM_OFFSET): Add void cast.
(FRAME_POINTER_CFA_OFFSET): Define.
(struct nvptx_args): Use 'tree' type.
(INIT_CUMULATIVE_ARGS): Remove unnecessary do...while.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231038 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoHandle flinker-output in lto-wrapper
vries [Sat, 28 Nov 2015 16:26:01 +0000 (16:26 +0000)]
Handle flinker-output in lto-wrapper

2015-11-28  Tom de Vries  <tom@codesourcery.com>

* lto-wrapper.c (run_gcc): Handle -flinker-output argument.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231033 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-11-28 Matthias Klose <doko@ubuntu.com>
doko [Sat, 28 Nov 2015 02:39:20 +0000 (02:39 +0000)]
2015-11-28  Matthias Klose  <doko@ubuntu.com>

        PR ada/68564
        * gcc-interface/Makefile.in: Fix sparc/sparc64 bitness detection.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231028 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Sat, 28 Nov 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231027 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR libgomp/68579
jakub [Fri, 27 Nov 2015 19:33:33 +0000 (19:33 +0000)]
PR libgomp/68579
* task.c (gomp_task_run_post_handle_depend_hash): New forward decl.
(gomp_create_target_task): Call it before freeing
GOMP_TARGET_TASK_DATA tasks.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231023 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoCopy-edit the Option Summary in invoke.texi
redi [Fri, 27 Nov 2015 18:38:48 +0000 (18:38 +0000)]
Copy-edit the Option Summary in invoke.texi

* doc/invoke.texi (Option Summary): Use negative form of
-Waggressive-loop-optimizations, remove redundant -Wpedantic-ms-format,
sort alphabetically and re-justify.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231022 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-11-27 Vladimir Makarov <vmakarov@redhat.com>
vmakarov [Fri, 27 Nov 2015 18:26:12 +0000 (18:26 +0000)]
2015-11-27  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/68536
* lra.c (lra_emit_add): Add code for null base.
* lra-constraints.c (curr_insn_transform): Skip operators for
subreg reloads.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231021 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoPR other/61321 - demangler crash on casts in template parameters
trippels [Fri, 27 Nov 2015 14:48:21 +0000 (14:48 +0000)]
PR other/61321 - demangler crash on casts in template parameters

The fix for bug 59195:

 [C++ demangler handles conversion operator incorrectly]
 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59195

unfortunately makes the demangler crash due to infinite recursion, in
case of casts in template parameters.

For example, with:

 template<int> struct A {};
 template <typename Y> void function_temp(A<sizeof ((Y)(999))>) {}
 template void function_temp<int>(A<sizeof (int)>);

The 'function_temp<int>' instantiation above mangles to:

  _Z13function_tempIiEv1AIXszcvT_Li999EEE

The demangler parses this as:

typed name
  template
    name 'function_temp'
    template argument list
      builtin type int
  function type
    builtin type void
    argument list
      template                          (*)
        name 'A'
        template argument list
          unary operator
            operator sizeof
            unary operator
              cast
                template parameter 0    (**)
              literal
                builtin type int
                name '999'

And after the fix for 59195, due to:

 static void
 d_print_cast (struct d_print_info *dpi, int options,
       const struct demangle_component *dc)
 {
 ...
   /* For a cast operator, we need the template parameters from
      the enclosing template in scope for processing the type.  */
   if (dpi->current_template != NULL)
     {
       dpt.next = dpi->templates;
       dpi->templates = &dpt;
       dpt.template_decl = dpi->current_template;
     }

when printing the template argument list of A (what should be "<sizeof
(int)>"), the template parameter 0 (that is, "T_", the '**' above) now
refers to the first parameter of the the template argument list of the
'A' template (the '*' above), exactly what we were already trying to
print.  This leads to infinite recursion, and stack exaustion.  The
template parameter 0 should actually refer to the first parameter of
the 'function_temp' template.

Where it reads "for the cast operator" in the comment in d_print_cast
(above), it's really talking about a conversion operator, like:

  struct A { template <typename U> explicit operator U(); };

We don't want to inject the template parameters from the enclosing
template in scope when processing a cast _expression_, only when
handling a conversion operator.

The problem is that DEMANGLE_COMPONENT_CAST is currently ambiguous,
and means _both_ 'conversion operator' and 'cast expression'.

Fix this by adding a new DEMANGLE_COMPONENT_CONVERSION component type,
which does what DEMANGLE_COMPONENT_CAST does today, and making
DEMANGLE_COMPONENT_CAST just simply print its component subtree.

I think we could instead reuse DEMANGLE_COMPONENT_CAST and in
d_print_comp_inner still do:

 @@ -5001,9 +5013,9 @@ d_print_comp_inner (struct d_print_info *dpi, int options,
        d_print_comp (dpi, options, dc->u.s_extended_operator.name);
        return;

     case DEMANGLE_COMPONENT_CAST:
       d_append_string (dpi, "operator ");
 -     d_print_cast (dpi, options, dc);
 +     d_print_conversion (dpi, options, dc);
       return;

leaving the unary cast case below calling d_print_cast, but seems to
me that spliting the component types makes it easier to reason about
the code.

g++'s testsuite actually generates three symbols that crash the
demangler in the same way.  I've added those as tests in the demangler
testsuite as well.

And then this fixes PR other/61233 too, which happens to be a
demangler crash originally reported to GDB, at:
https://sourceware.org/bugzilla/show_bug.cgi?id=16957

Bootstrapped and regtested on x86_64 Fedora 20.

Also ran this through GDB's testsuite.  GDB will require a small
update to use DEMANGLE_COMPONENT_CONVERSION in one place it's using
DEMANGLE_COMPONENT_CAST in its sources.

libiberty/
2015-11-27  Pedro Alves  <palves@redhat.com>

        PR other/61321
        PR other/61233
        * demangle.h (enum demangle_component_type)
        <DEMANGLE_COMPONENT_CONVERSION>: New value.
        * cp-demangle.c (d_demangle_callback, d_make_comp): Handle
        DEMANGLE_COMPONENT_CONVERSION.
        (is_ctor_dtor_or_conversion): Handle DEMANGLE_COMPONENT_CONVERSION
        instead of DEMANGLE_COMPONENT_CAST.
        (d_operator_name): Return a DEMANGLE_COMPONENT_CONVERSION
        component if handling a conversion.
        (d_count_templates_scopes, d_print_comp_inner): Handle
        DEMANGLE_COMPONENT_CONVERSION.
        (d_print_comp_inner): Handle DEMANGLE_COMPONENT_CONVERSION instead
        of DEMANGLE_COMPONENT_CAST.
        (d_print_cast): Rename as ...
        (d_print_conversion): ... this.  Adjust comments.
        (d_print_cast): Rewrite - simply print the left subcomponent.
        * cp-demint.c (cplus_demangle_fill_component): Handle
        DEMANGLE_COMPONENT_CONVERSION.

        * testsuite/demangle-expected: Add tests.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231020 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix FAIL: gcc.c-torture/execute/20050124-1.c -O2 (internal compiler error)
ktkachov [Fri, 27 Nov 2015 14:39:34 +0000 (14:39 +0000)]
Fix FAIL: gcc.c-torture/execute/20050124-1.c   -O2  (internal compiler error)

Revert
2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

* ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
multiple_sets.
(noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
are not modified by the final modified insns in the basic blocks.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231019 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * config/nvptx/nvptx-protos.h (nvptx_addr_space_from_address):
nathan [Fri, 27 Nov 2015 14:22:26 +0000 (14:22 +0000)]
* config/nvptx/nvptx-protos.h (nvptx_addr_space_from_address):
Don't declare.
* config/nvptx/nvptx.c (nvptx_addr_space_from_sym): New.
(nvptx_maybe_convert_symbolic_operand): Simplify.
(nvptx_addr_space_from_address): Delete.
(nvptx_print_operand): Adjust 'A' case.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231016 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-11-27 Richard Biener <rguenther@suse.de>
rguenth [Fri, 27 Nov 2015 14:17:28 +0000 (14:17 +0000)]
2015-11-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68559
* tree-vect-data-refs.c (vect_analyze_group_access_1): Move
peeling for gap checks ...
* tree-vect-stmts.c (vectorizable_load): ... here and relax
for SLP.
* tree-vect-loop.c (vect_analyze_loop_2): Re-set
LOOP_VINFO_PEELING_FOR_GAPS before re-trying without SLP.

* gcc.dg/vect/slp-perm-4.c: Adjust again.
* gcc.dg/vect/pr45752.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231015 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * config/nvptx/nvptx-protos.h (nvptx_record_needed_decl): Don't
nathan [Fri, 27 Nov 2015 13:57:09 +0000 (13:57 +0000)]
* config/nvptx/nvptx-protos.h (nvptx_record_needed_decl): Don't
declaree.
* config/nvptx/nvptx.c (write_func_decl_from_insn): Move earlier.
(nvptx_record_fndecl): Don't return value, remove force
argyment. Require fndecl.
(nvptx_record_libfunc): New.
(nvptx_record_needed_decl): Deteermine how to record decl here.
(nvptx_maybe_record_fnsym): New.
(nvptx_expand_call): Don't record libfuncs here,
(nvptx_maybe_convert_symbolic_operand): Use
nvptx_maye_record_fnsym.
(nvptx_assemble_integer): Reimplement with single switch.
(nvptx_output_call_insn): Register libfuncs here.
(nvptx_file_end): Adjust  nvptx_record_fndecl call.
* config/nvptx/nvptx.md (expand_movdi): Don't call
nvptx_record_needed_decl.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231013 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR rtl-optimization/68250
jakub [Fri, 27 Nov 2015 12:12:35 +0000 (12:12 +0000)]
PR rtl-optimization/68250
* gcc.c-torture/execute/pr68250.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231009 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * gcc.dg/pr63568.c: Convert to GIMPLE.
mpolacek [Fri, 27 Nov 2015 11:38:46 +0000 (11:38 +0000)]
* gcc.dg/pr63568.c: Convert to GIMPLE.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231007 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-11-27 Richard Biener <rguenther@suse.de>
rguenth [Fri, 27 Nov 2015 11:17:51 +0000 (11:17 +0000)]
2015-11-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68553
* tree-vect-slp.c (vect_create_mask_and_perm): Skip VEC_PERM_EXPR
generation for 1:1 permutations.
(vect_transform_slp_perm_load): Detect 1:1 permutations.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231006 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoBe more careful about barriers when speculating conditional stores.
bernds [Fri, 27 Nov 2015 10:05:36 +0000 (10:05 +0000)]
Be more careful about barriers when speculating conditional stores.

* gimple.h (nonbarrier_call_p): Declare.
* gimple.c (nonbarrier_call_p): New function.
* tree-ssa-phiopt.c (nontrapping_dom_walker::before_dom_children):
Also increment call phase for ASMs with vdef and potential barrier
calls.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231005 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[RTL-ifcvt] Reject insns that are multiple_sets
ktkachov [Fri, 27 Nov 2015 09:52:09 +0000 (09:52 +0000)]
[RTL-ifcvt] Reject insns that are multiple_sets

* ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
multiple_sets.
(noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
are not modified by the final modified insns in the basic blocks.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231004 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[RTL-ifcvt] PR rtl-optimization/68506: Fix emitting order of insns in IF-THEN-JOIN...
ktkachov [Fri, 27 Nov 2015 09:49:38 +0000 (09:49 +0000)]
[RTL-ifcvt] PR rtl-optimization/68506: Fix emitting order of insns in IF-THEN-JOIN case

PR rtl-optimization/68506
* ifcvt.c (noce_try_cmove_arith): Try emitting the else basic block
first if emit_a exists or then_bb modifies 'b'.  Reindent if-else
blocks.

* gcc.c-torture/execute/pr68506.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231003 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix memory leak in cilk
marxin [Fri, 27 Nov 2015 09:36:20 +0000 (09:36 +0000)]
Fix memory leak in cilk

PR c++/68312
* c-array-notation.c (fix_builtin_array_notation_fn):
Use release_vec_vec instead of vec::release.
(build_array_notation_expr): Likewise.
(fix_conditional_array_notations_1): Likewise.
(fix_array_notation_expr): Likewise.
(fix_array_notation_call_expr): Likewise.
PR c++/68312
* cp-array-notation.c (expand_sec_reduce_builtin):
Likewise.
(create_array_refs): Replace argument with const reference.
(expand_an_in_modify_expr): Likewise.
(cp_expand_cond_array_notations): Likewise.
(expand_unary_array_notation_exprs): Likewise.
PR c++/68312
* array-notation-common.c (cilkplus_extract_an_triplets):
Release vector of vectors.
* cilk.c (gimplify_cilk_spawn): Free allocated memory.
PR c++/68312
* vec.h (release_vec_vec): New function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231001 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR tree-optimization/68552
jakub [Fri, 27 Nov 2015 09:01:20 +0000 (09:01 +0000)]
PR tree-optimization/68552
* optabs.c (expand_vec_perm_1): Move vec_shr handling from here...
(expand_vec_perm): ... here.  Do it regardless of vec_perm_const_optab
or whether v0 == v1.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231000 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR c/63326
jakub [Fri, 27 Nov 2015 08:59:55 +0000 (08:59 +0000)]
PR c/63326
* c-parser.c (c_parser_compound_statement_nostart): If
last_label is true, use pragma_stmt instead of pragma_compound
as second c_parser_pragma argument.
(c_parser_omp_ordered, c_parser_omp_target_update,
c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Pass
false as second argument to c_parser_skip_to_pragma_eol after
diagnosing standalone directives used in pragma_stmt context.

* parser.c (cp_parser_statement): Clear in_compound after labels.

* gcc.dg/gomp/barrier-2.c (f2): Expect another error after label.
* c-c++-common/gomp/pr63326.c: New test.

* testsuite/libgomp.c/cancel-parallel-2.c (foo): Add semicolon
in between case label and OpenMP standalone directives.
* testsuite/libgomp.c++/cancel-parallel-2.C (foo): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230999 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoReplace spaces with tabs and remove trailing whitespaces
marxin [Fri, 27 Nov 2015 08:43:56 +0000 (08:43 +0000)]
Replace spaces with tabs and remove trailing whitespaces

* tree-ssa-uninit.c: Fix whitespaces in the source file.
The change is just automatical.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230998 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix memory leak in tree-chkp.c
marxin [Fri, 27 Nov 2015 08:39:00 +0000 (08:39 +0000)]
Fix memory leak in tree-chkp.c

* tree-chkp.c (chkp_make_static_bounds): Release buffer
used for string.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230997 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix parser memory leak in cilk_simd_fn_info
marxin [Fri, 27 Nov 2015 08:37:44 +0000 (08:37 +0000)]
Fix parser memory leak in cilk_simd_fn_info

* parser.c (cp_parser_late_parsing_cilk_simd_fn_info):
Release tokens.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230996 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix memory leak in loop_vec_info
marxin [Fri, 27 Nov 2015 08:37:23 +0000 (08:37 +0000)]
Fix memory leak in loop_vec_info

* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
Do not release memory for comp_alias_ddrs.
* tree-vect-loop.c (destroy_loop_vec_info): Release
the memory for all loop_vec_info.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230995 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix memory leaks in IPA devirt
marxin [Fri, 27 Nov 2015 08:36:52 +0000 (08:36 +0000)]
Fix memory leaks in IPA devirt

* ipa-devirt.c (ipa_devirt): Use auto_vec instead
of a local-scope vec.
(struct final_warning_record): Use auto_vec instead
of vec.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230994 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-11-27 Richard Biener <rguenther@suse.de>
rguenth [Fri, 27 Nov 2015 08:31:44 +0000 (08:31 +0000)]
2015-11-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68553
* tree-vect-slp.c (vect_get_mask_element): Remove.
(vect_transform_slp_perm_load): Implement in a simpler way.

* gcc.dg/vect/pr45752.c: Adjust.
* gcc.dg/vect/slp-perm-4.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230993 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Fri, 27 Nov 2015 00:16:15 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230990 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoCorrectly handle ARM targets.
msebor [Thu, 26 Nov 2015 23:31:32 +0000 (23:31 +0000)]
Correctly handle ARM targets.
* g++.dg/init/new45.C (cookie_size): New constant set to a value
appropriate for the target.
(operator new[]): Use it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230987 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[PR67753] adjust for padding when bypassing memory in assign_parm_setup_block
aoliva [Thu, 26 Nov 2015 21:57:40 +0000 (21:57 +0000)]
[PR67753] adjust for padding when bypassing memory in assign_parm_setup_block

Storing a register in memory as a full word and then accessing the
same memory address under a smaller-than-word mode amounts to
right-shifting of the register word on big endian machines.  So, if
BLOCK_REG_PADDING chooses upward padding for BYTES_BIG_ENDIAN, and
we're copying from the entry_parm REG directly to a pseudo, bypassing
any stack slot, perform the shifting explicitly.

This fixes the miscompile of function_return_val_10 in
gcc.target/aarch64/aapcs64/func-ret-4.c for target aarch64_be-elf
introduced in the first patch for 67753.

for  gcc/ChangeLog

PR rtl-optimization/67753
PR rtl-optimization/64164
* function.c (assign_parm_setup_block): Right-shift
upward-padded big-endian args when bypassing the stack slot.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230985 138bc75d-0d04-0410-961f-82ee72b054a4