]> gcc.gnu.org Git - gcc.git/log
gcc.git
8 years agoDocumentation tweaks for internal-fn-related optabs
Richard Sandiford [Thu, 3 Dec 2015 14:36:19 +0000 (14:36 +0000)]
Documentation tweaks for internal-fn-related optabs

As Bernd requested, this patch adds "This pattern cannot FAIL" to the
documentation of optabs that came to be mapped to interal functions.
For consistency I did the same for optabs that were already being
used for internal functions.

Many of the optabs weren't documented in the first place, so I added
entries for the missing ones.  Also, there were some inaccuracies in
the documentation of the rounding optabs.  The bitcount optabs said
that operand 0 has mode @var{m} and that operand 1 is under target
control, whereas it should be the other way around.

Tested on x86_64-linux-gnu.

gcc/
* doc/md.texi (vec_load_lanes@var{m}@var{n}): Document that
the pattern cannot FAIL.
(vec_store_lanes@var{m}@var{n}): Likewise.
(maskload@var{m}@var{n}): Likewise.
(maskstore@var{m}@var{n}): Likewise.  Fix a cut-&-paste error
in the name of the pattern.
(rsqrt@var{m}2): Document that mode m must be a scalar or vector
floating-point mode and that all operands have that mode.
(fmin@var{m}3, fmax@var{m}3): Likewise.  Document that the
pattern cannot FAIL.
(sqrt@var{m}2): Document that mode m must be a scalar or vector
floating-point mode, that all operands have that mode, and that
the patterns cannot FAIL.  Remove previous documentation referring
to @code{double} and @code{float}.
(fmod@var{m}3, remainder@var{m}3, cos@var{m}2, sin@var{m}2)
(sincos@var{m}3, log@var{m}2, pow@var{m}3, atan2@var{m}3)
(copysign@var{m}3): Likewise.
(exp@var{m}2): Likewise.  Explicitly state the base.
(floor@var{m}2): As for sqrt@var{m}2, but also specify the operands.
(btrunc@var{m}2, rint@var{m}2): Likewise.
(round@var{m}2): Likewise.  Fix incorrect description of rounding
effect.
(ceil@var{m}2): As for round@var{m}2.
(nearbyint@var{m}2): As for floor@var{m}2, but also mention that
the instruction must not raise an inexact condition.
(scalb@var{m}3): Document previously-undocumented pattern
(ldexp@var{m}3, tan@var{m}2, asin@var{m}2, acos@var{m}2)
(atan@var{m}2, expm1@var{m}2, exp10@var{m}2, exp2@var{m}2)
(log1p@var{m}2, log10@var{m}2, log2@var{m}2, logb@var{m}2)
(significand@var{m}2): Likewise.
(ffs@var{m}2): Fix the description of the modes, so that operand 1 has
mode m and operand 0 is defined more freely.  Document that @var{m}
can be a scalar or vector integer mode and that the pattern is not
allowed to FAIL.
(clz@var{m}2, ctz@var{m}2, popcount@var{m}2, parity@var{m}2): Likewise.
(clrsb@var{m}2): Likewise, except that the description of the
mode was missing in this case.

From-SVN: r231230

8 years agoAdd an rsqrt_optab and IFN_RSQRT internal function
Richard Sandiford [Thu, 3 Dec 2015 14:31:55 +0000 (14:31 +0000)]
Add an rsqrt_optab and IFN_RSQRT internal function

All current uses of builtin_reciprocal convert 1.0/sqrt into rsqrt.
This patch adds an rsqrt optab and associated internal function for
that instead.  We can then pick up the vector forms of rsqrt automatically,
fixing an AArch64 regression from my internal_fn patches.

With that change, builtin_reciprocal only needs to handle target-specific
built-in functions.  I've restricted the hook to those since, if we need
a reciprocal of another standard function later, I think there should be
a strong preference for adding a new optab and internal function for it,
rather than hiding the code in a backend.

Three targets implement builtin_reciprocal: aarch64, i386 and rs6000.
i386 and rs6000 already used the obvious rsqrt<mode>2 pattern names
for the instructions, so they pick up the new code automatically.
aarch64 needs a slight rename.

mn10300 is unusual in that its native operation is rsqrt, and
sqrt is approximated as 1.0/rsqrt.  The port also uses rsqrt<mode>2
for the rsqrt pattern, so after the patch we now pick it up as a native
operation.

Two other ports define rsqrt patterns: sh and v850.  AFAICT these
patterns aren't currently used, but I think the patch does what the
authors of the patterns would have expected.  There's obviously some
risk of fallout though.

Tested on x86_64-linux-gnu, aarch64-linux-gnu, arm-linux-gnueabihf
(as a target without the hooks) and powerpc64-linux-gnu.

gcc/
* internal-fn.def (RSQRT): New function.
* optabs.def (rsqrt_optab): New optab.
* doc/md.texi (rsqrtM2): Document.
* target.def (builtin_reciprocal): Replace gcall argument with
a function decl.  Restrict hook to machine functions.
* doc/tm.texi: Regenerate.
* targhooks.h (default_builtin_reciprocal): Update prototype.
* targhooks.c (default_builtin_reciprocal): Likewise.
* tree-ssa-math-opts.c: Include internal-fn.h.
(internal_fn_reciprocal): New function.
(pass_cse_reciprocals::execute): Call it, and build a call to an
internal function on success.  Only call targetm.builtin_reciprocal
for machine functions.
* config/aarch64/aarch64-protos.h (aarch64_builtin_rsqrt): Remove
second argument.
* config/aarch64/aarch64-builtins.c (aarch64_expand_builtin_rsqrt):
Rename aarch64_rsqrt_<mode>2 to rsqrt<mode>2.
(aarch64_builtin_rsqrt): Remove md_fn argument and only handle
machine functions.
* config/aarch64/aarch64.c (use_rsqrt_p): New function.
(aarch64_builtin_reciprocal): Replace gcall argument with a
function decl.  Use use_rsqrt_p.  Remove optimize_size check.
Only handle machine functions.  Update call to aarch64_builtin_rsqrt.
(aarch64_optab_supported_p): New function.
(TARGET_OPTAB_SUPPORTED_P): Define.
* config/aarch64/aarch64-simd.md (aarch64_rsqrt_<mode>2): Rename to...
(rsqrt<mode>2): ...this.
* config/i386/i386.c (use_rsqrt_p): New function.
(ix86_builtin_reciprocal): Replace gcall argument with a
function decl.  Use use_rsqrt_p.  Remove optimize_insn_for_size_p
check.  Only handle machine functions.
(ix86_optab_supported_p): Handle rsqrt_optab.
* config/rs6000/rs6000.c (TARGET_OPTAB_SUPPORTED_P): Define.
(rs6000_builtin_reciprocal): Replace gcall argument with a
function decl.  Remove optimize_insn_for_size_p check.
Only handle machine functions.
(rs6000_optab_supported_p): New function.

From-SVN: r231229

8 years agoFix some issues with the ROP patch (PR 68471, 68472)
Bernd Schmidt [Thu, 3 Dec 2015 14:17:35 +0000 (14:17 +0000)]
Fix some issues with the ROP patch (PR 68471, 68472)

PR target/68471
PR target/68472
* config/i386/i386.c (ix86_mitigate_rop): Don't call
compute_bb_for_insn again.  Call df_insn_rescan_all.
* config/i386/i386.md (set_got_rex64): Override modrm_class.

* regrename.c (build_def_use): Ignore stack regs if regstack_completed.

testsuite/
* gcc.target/i386/rop1.c: New test.

From-SVN: r231228

8 years agonvptx-protos.h (npvptx_section_from_addr_space): Delete.
Nathan Sidwell [Thu, 3 Dec 2015 13:59:20 +0000 (13:59 +0000)]
nvptx-protos.h (npvptx_section_from_addr_space): Delete.

gcc/
* config/nvptx/nvptx-protos.h (npvptx_section_from_addr_space): Delete.
* config/nvptx/nvptx.c (enum nvptx_data_area): New.
(SYMBOL_DATA_AREA, SET_SYMBOL_DATA_AREA): New defines.
(nvptx_option_override): Set data ares for worker vars.
(nvptx_addr_space_from_sym): Delete.
(nvptx_encode_section_info): New.
(section_for_sym, section_for_decl): New.
(nvptx_maybe_convert_symbolic_operand): Get data area from symbol
flags,
(nvptx_section_from_addr_space): Delete.
(nvptx_section_for_decl): Delete.
(nvptx_output_aligned, nvptx_declare_object_name,
nvptx_assemble_undefined_decl): Use section_for_decl, remove
unnecessary checks.
(nvptx_print_operand): Add 'D', adjust 'A'.
(nvptx_expand_worker_addr): Adjust unspec generation.
(TARGET_ENCODE_SECTION_INFO): Override.
* config/nvptx/nvptx.h (ADDR_SPACE_GLOBAL, ADDR_SPACE_SHARED,
ADDR_SPACE_CONST, ADDR_SPACE_LOCAL, ADDR_SPACE_PARAM): Delete.
* config/nvptx/nvptx.md (UNSPEC_FROM_GLOBAL, UNSPEC_FROM_LOCAL,
UNSPEC_FROM_PARAM, UNSPEC_FROM_SHARED, UNSPEC_FROM_CONST,
UNSPEC_TO_GLOBAL, UNSPEC_TO_LOCAL, UNSPEC_TO_PARAM,
UNSPEC_TO_SHARED, UNSPEC_TO_CONST): Delete.
(UNSPEC_TO_GENERIC): New.
(nvptx_register_or_symbolic_operand): Delete.
(cvt_code, cvt_name, cvt_str): Delete.
(convaddr_<cvt_name><mode> [P]): Delete.
(convaddr_<mode> [P]): New.

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

From-SVN: r231227

8 years ago[RTL-ifcvt] PR rtl-optimization/68624: Clean up logic that checks for clobbering...
Kyrylo Tkachov [Thu, 3 Dec 2015 13:28:55 +0000 (13:28 +0000)]
[RTL-ifcvt] PR rtl-optimization/68624: Clean up logic that checks for clobbering conflicts across basic blocks

PR rtl-optimization/68624
* ifcvt.c (noce_try_cmove_arith): Check clobbers of temp regs in both
blocks if they exist and simplify the logic choosing the order to emit
them in.

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

From-SVN: r231226

8 years agore PR tree-optimization/66051 (can't vectorize reductions inside an SLP group)
Richard Biener [Thu, 3 Dec 2015 11:26:56 +0000 (11:26 +0000)]
re PR tree-optimization/66051 (can't vectorize reductions inside an SLP group)

2015-12-03  Richard Biener  <rguenther@suse.de>

PR tree-optimization/66051
* tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
on load group size.  Do not pass in vectorization_factor.
(vect_transform_slp_perm_load): Do not require any permute support.
(vect_build_slp_tree): Do not pass in vectorization factor.
(vect_analyze_slp_instance): Do not compute vectorization
factor estimate.  Use vector size instead of vectorization factor
estimate to split store groups for BB vectorization.

* gcc.dg/vect/slp-42.c: New testcase.

From-SVN: r231225

8 years agocfgexpand.c (expand_gimple_stmt_1): Return statement with DECL as return value is...
Ilya Enkovich [Thu, 3 Dec 2015 10:35:41 +0000 (10:35 +0000)]
cfgexpand.c (expand_gimple_stmt_1): Return statement with DECL as return value is allowed to have NULL bounds.

gcc/

* cfgexpand.c (expand_gimple_stmt_1): Return statement with
DECL as return value is allowed to have NULL bounds.

From-SVN: r231224

8 years agoGuard isl_ast_op_zdiv_r usage with HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS
Tom de Vries [Thu, 3 Dec 2015 10:16:07 +0000 (10:16 +0000)]
Guard isl_ast_op_zdiv_r usage with HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS

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

* graphite-isl-ast-to-gimple.c (binary_op_to_tree)
(gcc_expression_from_isl_expr_op): Guard isl_ast_op_zdiv_r usage with
HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.

From-SVN: r231223

8 years agoAdded missing ChangeLogs. Fix scan pattern for gcc.target/i386/avx512vl-vextracti32x4...
Kirill Yukhin [Thu, 3 Dec 2015 10:00:57 +0000 (10:00 +0000)]
Added missing ChangeLogs. Fix scan pattern for gcc.target/i386/avx512vl-vextracti32x4-1.c.

From-SVN: r231222

8 years agore PR tree-optimization/67800 (Missed vectorization opportunity on x86 (DOT_PROD_EXPR...
Richard Biener [Thu, 3 Dec 2015 08:43:22 +0000 (08:43 +0000)]
re PR tree-optimization/67800 (Missed vectorization opportunity on x86 (DOT_PROD_EXPR in non-reduction))

2015-12-03  Richard Biener  <rguenther@suse.de>

PR tree-optimization/67800
PR tree-optimization/68333
* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Restore
restriction to reduction contexts but allow SLP reductions as well.
(vect_recog_sad_pattern): Likewise.
(vect_recog_widen_sum_pattern): Likewise.

* gcc.target/i386/vect-pr67800.c: New testcase.

From-SVN: r231221

8 years agore PR tree-optimization/68639 (ICE: Floating point exception)
Richard Biener [Thu, 3 Dec 2015 08:38:10 +0000 (08:38 +0000)]
re PR tree-optimization/68639 (ICE: Floating point exception)

2015-12-03  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68639
* tree-vect-data-refs.c (dr_group_sort_cmp): Split groups
belonging to different loops.
(vect_analyze_data_ref_accesses): Likewise.

* gfortran.fortran-torture/compile/pr68639.f90: New testcase.

From-SVN: r231220

8 years agoipa-pure-const.c (ignore_edge_for_pure_const): New function.
Jan Hubicka [Thu, 3 Dec 2015 04:21:50 +0000 (05:21 +0100)]
ipa-pure-const.c (ignore_edge_for_pure_const): New function.

* ipa-pure-const.c (ignore_edge_for_pure_const): New function.
(propagate_pure_const): Use it; fix comments and optimize loops.

From-SVN: r231219

8 years agoipa-pure-const.c (ignore_edge): Rename to ...
Jan Hubicka [Thu, 3 Dec 2015 04:19:44 +0000 (05:19 +0100)]
ipa-pure-const.c (ignore_edge): Rename to ...

* ipa-pure-const.c (ignore_edge): Rename to ...
(ignore_edge_for_nothrow) ... this one; also ignore eges to
interposable functions or ones that can not throw.
(propagate_nothrow): Fix handling of availability.

From-SVN: r231218

8 years agore PR c++/68184 (Exception from a virtual function does not get caught)
Jan Hubicka [Thu, 3 Dec 2015 04:13:33 +0000 (05:13 +0100)]
re PR c++/68184 (Exception from a virtual function does not get caught)

PR ipa/68184
* g++.dg/torture/pr68184.C: New testcase.
* cgraphunit.c (cgraph_node::analyze): Set can_throw_external.

From-SVN: r231217

8 years agoDaily bump.
GCC Administrator [Thu, 3 Dec 2015 00:16:13 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r231216

8 years agore PR preprocessor/57580 (Repeated _Pragma message directives in macro causes problems)
Jakub Jelinek [Wed, 2 Dec 2015 23:53:43 +0000 (00:53 +0100)]
re PR preprocessor/57580 (Repeated _Pragma message directives in macro causes problems)

PR preprocessor/57580
* c-ppoutput.c (print): Change printed field to bool.
Move src_file last for smaller padding.
(init_pp_output): Set print.printed to false instead of 0.
(scan_translation_unit): Fix up formatting.  Set print.printed
to true after printing something other than newline.
(scan_translation_unit_trad): Set print.printed to true instead of 1.
(maybe_print_line_1): Set print.printed to false instead of 0.
(print_line_1): Likewise.
(do_line_change): Set print.printed to true instead of 1.
(cb_define, dump_queued_macros, cb_include, cb_def_pragma,
dump_macro): Set print.printed to false after printing newline.

* c-c++-common/cpp/pr57580.c: New test.
* c-c++-common/gomp/pr57580.c: New test.

From-SVN: r231213

8 years agohandle missing isl_ast_expr
Aditya Kumar [Wed, 2 Dec 2015 23:06:29 +0000 (23:06 +0000)]
handle missing isl_ast_expr

From ISL's documentation, isl_ast_op_zdiv_r is equal to zero iff the remainder
on integer division is zero.  Code generate a modulo operation for that.

* graphite-isl-ast-to-gimple.c (binary_op_to_tree): Handle isl_ast_op_zdiv_r.
        (gcc_expression_from_isl_expr_op): Same.

* gcc.dg/graphite/id-28.c: New.

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

8 years agodo not insert code outside the generated region
Aditya Kumar [Wed, 2 Dec 2015 23:01:24 +0000 (23:01 +0000)]
do not insert code outside the generated region

on the testcase we used to generate code in the function entry bb_0,
and that choked the cfg verifier.

* graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Check
that insertion point is still in the region.

* gfortran.dg/graphite/id-26.f03: New.

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

8 years agoAllow running the testsuite in C++1z mode.
Jason Merrill [Wed, 2 Dec 2015 22:18:18 +0000 (17:18 -0500)]
Allow running the testsuite in C++1z mode.

gcc/cp/
* Make-lang.in (check-c++1z, check-c++-all): New.
gcc/testsuite/
* lib/g++.exp: Handle --stds= option.
* lib/g++-dg.exp (g++-dg-runtest): Use it.

From-SVN: r231209

8 years agocheck.c (gfc_check_event_query): New function.
Tobias Burnus [Wed, 2 Dec 2015 21:59:05 +0000 (22:59 +0100)]
check.c (gfc_check_event_query): New function.

2015-12-02  Tobias Burnus  <burnus@net-b.de>
    Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>

* check.c (gfc_check_event_query): New function.
* dump-parse-tree.c (show_code_node): Handle EXEC_EVENT_POST,
EXEC_EVENT_WAIT.
* expr.c (gfc_check_vardef_context): New check for event variables
definition.
* gfortran.h (gfc_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
(gfc_isym_id): GFC_ISYM_EVENT_QUERY.
(struct symbol_attribute): New field.
(gfc_exec_op): Add EXEC_EVENT_POST and EXEC_EVENT_WAIT.
* gfortran.texi: Document about new events functions and minor
changes.
* interface.c (compare_parameter): New check.
(gfc_procedure_use): New check for explicit procedure interface.
(add_subroutines): Add event_query.
* intrinsic.h (gfc_check_event_query,gfc_resolve_event_query):
New prototypes.
* iresolve.c (gfc_resolve_event_query): New function.
* iso-fortran-env.def (event_type): New type.
* match.c (event_statement,gfc_match_event_post,gfc_match_event_wait):
New functions.
(gfc_match_name): New event post and event wait.
* match.h (gfc_match_event_post,gfc_match_event_wait):
New prototypes.
* module.c (ab_attribute): Add AB_EVENT_COMP.
(attr_bits): Likewise.
(mio_symbol_attribute): Handle event_comp attribute.
* parse.c (decode_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
(next_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
(gfc_ascii_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
(parse_derived): Check for event_type components.
* resolve.c (resolve_allocate_expr): Check for event variable def.
(resolve_lock_unlock): Renamed to resolve_lock_unlock_event. It
includes logic for locks and events.
(gfc_resolve_code): Call it.
(gfc_resolve_symbol): New check for event variable to be a corray.
* st.c (gfc_free_statement): Handle new EXEC_EVENT_POST and
EXEC_EVENT_WAIT.
* trans-decl.c (gfor_fndecl_caf_event_post,gfor_fndecl_caf_event_wait,
gfor_fndecl_caf_event_query): New global variables.
(generate_coarray_sym_init): Checking for event_type.
(gfc_conv_procedure_call): Check for C bind attribute.
* trans-intrinsic.c (conv_intrinsic_event_query): New function.
(conv_intrinsic_move_alloc): Call it.
* trans-stmt.c (gfc_trans_lock_unlock): Passing address
of actual argument.
(gfc_trans_sync): Likewise.
(gfc_trans_event_post_wait): New function.
* trans-stmt.h (gfc_trans_event_post_wait): New prototype.
* trans-types.c (gfc_get_derived_type): Integer_kind as event_type.
* trans.c (gfc_allocate_using_lib): New argument and logic for events.
(gfc_allocate_allocatable): Passing new argument.
(trans_code): Handle EXEC_EVENT_POST, EXEC_EVENT_WAIT.
* trans.h (gfc_coarray_type): New elements.
(gfor_fndecl_caf_event_post,gfor_fndecl_caf_event_wait,
gfor_fndecl_caf_event_query): Declare them.

2015-12-02  Tobias Burnus  <burnus@net-b.de>
    Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>

* gfortran.dg/coarray/event_1.f90: New.
* gfortran.dg/coarray/event_2.f90: New.

Co-Authored-By: Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
From-SVN: r231208

8 years agofix PR68550: do not handle ISL loop peeled statements
Aditya Kumar [Wed, 2 Dec 2015 20:40:17 +0000 (20:40 +0000)]
fix PR68550: do not handle ISL loop peeled statements

In case ISL did some loop peeling, like this:

  S_8(0);
  for (int c1 = 1; c1 <= 5; c1 += 1) {
    S_8(c1);
  }
  S_8(6);

we should not copy loop-phi nodes in S_8(0) or in S_8(6).

PR tree-optimization/68550
* graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Add dump.
(copy_bb_and_scalar_dependences): Do not code generate loop peeled
statements.

* gfortran.dg/graphite/pr68550-1.f90: New.
* gfortran.dg/graphite/pr68550-2.f90: New.

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

8 years agore PR c/68513 (ICE in gimplify_expr, at gimplify.c:8832, c_maybe_const_expr in IL)
Marek Polacek [Wed, 2 Dec 2015 20:01:37 +0000 (20:01 +0000)]
re PR c/68513 (ICE in gimplify_expr, at gimplify.c:8832, c_maybe_const_expr in IL)

PR c/68513
* gcc.dg/pr68513.c: New test.

From-SVN: r231205

8 years agore PR fortran/63861 (OpenACC coarray ICE (also with OpenMP?))
Cesar Philippidis [Wed, 2 Dec 2015 19:59:27 +0000 (11:59 -0800)]
re PR fortran/63861 (OpenACC coarray ICE  (also with OpenMP?))

gcc/fortran/
PR fortran/63861
* openmp.c (gfc_match_omp_clauses): Allow subarrays for acc reductions.
(resolve_omp_clauses): Error on any acc reductions on arrays.

gcc/testsuite/
* gfortran.dg/goacc/array-reduction.f90: New test.
* gfortran.dg/goacc/assumed.f95: Update expected diagnostics.
* gfortran.dg/goacc/coarray.f95: Likewise.
* gfortran.dg/goacc/coarray_2.f90: Likewise.
* gfortran.dg/goacc/reduction-2.f95: Likewise.
* gfortran.dg/goacc/reduction.f95: Likewise.

From-SVN: r231204

8 years agoFix c++/67337 (segfault in mangle.c)
Markus Trippelsdorf [Wed, 2 Dec 2015 19:57:55 +0000 (19:57 +0000)]
Fix c++/67337 (segfault in mangle.c)

PR c++/67337
* mangle.c (write_template_prefix): Guard against context==NULL.

From-SVN: r231203

8 years agoconfigure.ac: Check assembler support for R_PPC64_ENTRY relocation.
Ulrich Weigand [Wed, 2 Dec 2015 19:52:53 +0000 (19:52 +0000)]
configure.ac: Check assembler support for R_PPC64_ENTRY relocation.

* configure.ac: Check assembler support for R_PPC64_ENTRY relocation.
* configure: Regenerate.
* config.in: Regenerate.
* config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p): New
function.
(rs6000_output_function_prologue): Use it instead of checking
cfun->machine->r2_setup_needed.  Use internal labels instead of
GNU as local label extension.  Handle ELFv2 large code model.
(rs6000_output_mi_thunk): Do not set cfun->machine->r2_setup_needed.
(rs6000_elf_declare_function_name): Handle ELFv2 large code model.

From-SVN: r231202

8 years agore PR target/68647 (__builtin_popcountll doesn't generate popcnt instructions when...
Jakub Jelinek [Wed, 2 Dec 2015 19:39:11 +0000 (20:39 +0100)]
re PR target/68647 (__builtin_popcountll doesn't generate popcnt instructions when targeting -mpopcnt on x86_32)

PR target/68647
* optabs.c (expand_doubleword_popcount, expand_doubleword_parity):
New functions.
(expand_unop): Use them.

* gcc.target/i386/pr68647.c: New test.

From-SVN: r231201

8 years agore PR c++/68653 (ICE: in nonnull_arg_p, at tree.c:13853)
Marek Polacek [Wed, 2 Dec 2015 19:29:17 +0000 (19:29 +0000)]
re PR c++/68653 (ICE: in nonnull_arg_p, at tree.c:13853)

PR c++/68653
* tree.c (nonnull_arg_p): Allow OFFSET_TYPE.

* g++.dg/warn/nonnull3.C: New test.

From-SVN: r231200

8 years agore PR go/66147 (go fails to cross build)
Ian Lance Taylor [Wed, 2 Dec 2015 19:27:58 +0000 (19:27 +0000)]
re PR go/66147 (go fails to cross build)

./: PR go/66147
* Makefile.tpl (HOST_EXPORTS): Add XGCC_FLAGS_FOR_TARGET.
* Makefile.in: Regenerate.
gotools/:
PR go/66147
* Makefile.am (GOCOMPILER): In NATIVE case, add
$(XGCC_FLAGS_FOR_TARGET).

From-SVN: r231199

8 years agoDo constant folding in warn_* functions.
Jason Merrill [Wed, 2 Dec 2015 19:04:48 +0000 (14:04 -0500)]
Do constant folding in warn_* functions.

gcc/c-family/
* c-common.c (fold_for_warn): New.
(warn_logical_operator, warn_tautological_cmp)
(check_function_arguments_recurse, maybe_warn_bool_compare): Use it.
gcc/cp/
* call.c (build_new_op_1): Don't fold arguments to
warn_logical_operator or maybe_warn_bool_compare.

From-SVN: r231198

8 years agoIntroduce cp_fold_rvalue.
Jason Merrill [Wed, 2 Dec 2015 19:04:43 +0000 (14:04 -0500)]
Introduce cp_fold_rvalue.

* cp-gimplify.c (cp_fold_maybe_rvalue, cp_fold_rvalue): New.
(c_fully_fold): Use cp_fold_rvalue.
(cp_fold): Use them for rvalue operands.

From-SVN: r231197

8 years agoDefine c_fully_fold separately for C and C++.
Jason Merrill [Wed, 2 Dec 2015 19:04:38 +0000 (14:04 -0500)]
Define c_fully_fold separately for C and C++.

gcc/c-family/
* c-common.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
(c_fully_fold_internal, decl_constant_value_for_optimization):
Move to c/c-fold.c.
* c-common.h: Don't declare decl_constant_value_for_optimization.
gcc/c/
* c-fold.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
(c_fully_fold_internal, decl_constant_value_for_optimization):
Move from c-common.c.
* c-tree.h: Declare decl_constant_value_for_optimization.
* Make-lang.in (C_AND_OBJC_OBJS): Add c-fold.o.
gcc/cp/
* cp-gimplify.c (c_fully_fold): Define.

From-SVN: r231196

8 years ago* cp-gimplify.c (cp_fold): Use fold_build*.
Jason Merrill [Wed, 2 Dec 2015 19:04:32 +0000 (14:04 -0500)]
* cp-gimplify.c (cp_fold): Use fold_build*.

From-SVN: r231195

8 years agoFix TYPE_MAIN_VARIANT construction for arrays of qualified typedefs (PR c/68162).
Joseph Myers [Wed, 2 Dec 2015 18:24:23 +0000 (18:24 +0000)]
Fix TYPE_MAIN_VARIANT construction for arrays of qualified typedefs (PR c/68162).

PR c/68162 reports a spurious warning about incompatible types
involving arrays of const double, constructed in one place using a
typedef for const double and in another place literally using const
double.

The problem is that the array of the typedef was incorrectly
constructed without a TYPE_MAIN_VARIANT being an array of unqualified
elements as it should be (though it seems some more recent change
resulted in this producing incorrect diagnostics, likely the support
for C++-style handling of arrays of qualified type).  This patch fixes
the logic in grokdeclarator to determine first_non_attr_kind, which is
used to determine whether it is necessary to use the TYPE_MAIN_VARIANT
of the type in the declaration specifiers.

However, fixing that logic introduces a failure of
gcc.dg/debug/dwarf2/pr47939-4.c, a test introduced along with
first_non_attr_kind.  Thus, it is necessary to track the original
qualified typedef when qualifying an array type, to use it rather than
a newly-constructed type, to avoid regressing regarding typedef names
in debug info.  This is done along lines I suggested in
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47939#c6>: track the
original type and the number of levels of array indirection at which
it appears, and, in possibly affected cases, pass extra arguments to
c_build_qualified_type (with default arguments to avoid needing to
pass those extra arguments explicitly everywhere).  Given Richard's
recent fix to dwarf2out.c, this allows the C bug to be fixed without
causing debug information regressions.

Bootstrapped with no regressions on x86_64-pc-linux-gnu.

gcc/c:
PR c/68162
* c-decl.c (grokdeclarator): Set first_non_attr_kind before
following link from declarator to next declarator.  Track original
qualified type and pass it to c_build_qualified_type.
* c-typeck.c (c_build_qualified_type): Add arguments
orig_qual_type and orig_qual_indirect.

gcc/c-family:
PR c/68162
* c-common.h (c_build_qualified_type): Add extra default
arguments.

gcc/cp:
PR c/68162
* tree.c (c_build_qualified_type): Add extra arguments.

gcc/testsuite:
PR c/68162
* gcc.dg/pr68162-1.c: New test.

From-SVN: r231194

8 years agoconfigure.ac: Move AM_ENABLE_MULTILIB before GCC_LIBSTDCXX_RAW_CXX_FLAGS.
Matthias Klose [Wed, 2 Dec 2015 18:18:51 +0000 (18:18 +0000)]
configure.ac: Move AM_ENABLE_MULTILIB before GCC_LIBSTDCXX_RAW_CXX_FLAGS.

2015-12-02  Matthias Klose  <doko@ubuntu.com>

        * configure.ac: Move AM_ENABLE_MULTILIB before
        GCC_LIBSTDCXX_RAW_CXX_FLAGS.
        * configure: Regenerate.

From-SVN: r231193

8 years agonvptx.c (enum nvptx_shuffle_kind): New.
Nathan Sidwell [Wed, 2 Dec 2015 17:28:32 +0000 (17:28 +0000)]
nvptx.c (enum nvptx_shuffle_kind): New.

* config/nvptx/nvptx.c (enum nvptx_shuffle_kind): New.  Absorb
SHUFFLE defines.
(nvptx_gen_shuffle, nvptx_print_operand, nvptx_expand_shuffle): Adjust.

From-SVN: r231192

8 years agofix invalid bounds on array refs
Aditya Kumar [Wed, 2 Dec 2015 17:11:52 +0000 (17:11 +0000)]
fix invalid bounds on array refs

While enabling graphite in -O3 we found a Fortran testcase that fails
because the max of the type domain is -1.  We used to add that as a constraint
to the elements accessed by the array, leading to a unfeasible constraint:
0 <= i <= -1.  Having that constraint, drops the data reference as that says
that there are no elements accessed in the array.

* graphite-dependences.c (scop_get_reads): Add extra dumps.
(scop_get_must_writes): Same.
(scop_get_may_writes): Same.
(compute_deps): Same.
* graphite-sese-to-poly.c (bounds_are_valid): New.
(pdr_add_data_dimensions): Call bounds_are_valid.

* gfortran.dg/graphite/run-id-3.f90: New.

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

8 years agorename flag_loop_optimize_isl to flag_loop_nest_optimize
Aditya Kumar [Wed, 2 Dec 2015 17:11:41 +0000 (17:11 +0000)]
rename flag_loop_optimize_isl to flag_loop_nest_optimize

* common.opt (flag_loop_optimize_isl): Renamed flag_loop_nest_optimize.
* graphite-poly.c (apply_poly_transforms): Same.
* graphite.c (gate_graphite_transforms): Same.
* toplev.c (process_options): Same.

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

8 years agore PR c++/68290 (g++.dg/concepts/auto1.C FAILs)
Eric Botcazou [Wed, 2 Dec 2015 16:41:02 +0000 (16:41 +0000)]
re PR c++/68290 (g++.dg/concepts/auto1.C FAILs)

PR c++/68290
* constraint.cc (make_constrained_auto): Move to...
* pt.c (make_auto_1): Add set_canonical parameter and set
TYPE_CANONICAL on the type only if it is true.
(make_decltype_auto): Adjust call to make_auto_1.
(make_auto): Likewise.
(splice_late_return_type): Likewise.
(make_constrained_auto): ...here.  Call make_auto_1 instead of
make_auto and pass false.  Set TYPE_CANONICAL directly.

From-SVN: r231189

8 years agomips.c (mips_emit_probe_stack_range): Adjust.
Eric Botcazou [Wed, 2 Dec 2015 16:34:58 +0000 (16:34 +0000)]
mips.c (mips_emit_probe_stack_range): Adjust.

* config/mips/mips.c (mips_emit_probe_stack_range): Adjust.
(mips_output_probe_stack_range): Rotate the loop and simplify.

From-SVN: r231188

8 years agoaarch64.md: New pattern.
David Sherwood [Wed, 2 Dec 2015 16:29:17 +0000 (16:29 +0000)]
aarch64.md: New pattern.

2015-12-02  David Sherwood  <david.sherwood@arm.com>

    gcc/
* config/aarch64/aarch64.md: New pattern.
* config/aarch64/aarch64-simd.md: Likewise.
* config/aarch64/iterators.md: New unspecs, iterators.
    gcc/testsuite
* gcc.target/aarch64/fmaxmin.c: New test.

From-SVN: r231187

8 years agoTrack indirect calls for call site information in debug info
Pierre-Marie de Rodat [Wed, 2 Dec 2015 15:57:34 +0000 (15:57 +0000)]
Track indirect calls for call site information in debug info

gcc/ChangeLog:

* dwarf2out.c (dwar2out_var_location): In addition to notes,
process indirect calls whose target is compile-time known.
Enhance pattern matching to get the SYMBOL_REF they embed.
(gen_subprogram_die): Handle such calls.
* final.c (final_scan_insn): For call instructions, invoke the
var_location debug hook only after the call has been emitted.

From-SVN: r231185

8 years agoSome OpenACC host_data cleanup
Thomas Schwinge [Wed, 2 Dec 2015 15:53:34 +0000 (16:53 +0100)]
Some OpenACC host_data cleanup

gcc/c/
* c-parser.c (c_parser_omp_clause_name)
(c_parser_oacc_all_clauses): Alphabetical sorting.
gcc/cp/
* parser.c (cp_parser_omp_clause_name)
(cp_parser_oacc_all_clauses): Alphabetical sorting.
* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_USE_DEVICE.
gcc/testsuite/
* c-c++-common/goacc/host_data-5.c: New file.
* c-c++-common/goacc/host_data-6.c: Likewise.
* gfortran.dg/goacc/coarray.f95: XFAIL.
* gfortran.dg/goacc/coarray_2.f90: Adjust dg-excess-errors
directive.
* gfortran.dg/goacc/host_data-tree.f95: Remove dg-prune-output
directive.
libgomp/
* testsuite/libgomp.oacc-c-c++-common/host_data-2.c: Restrict to
target openacc_nvidia_accel_selected.
* testsuite/libgomp.oacc-c-c++-common/host_data-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/host_data-5.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/host_data-3.c: Remove file.
* testsuite/libgomp.oacc-c-c++-common/host_data-6.c: Remove file.

Co-Authored-By: James Norris <James_Norris@mentor.com>
Co-Authored-By: Julian Brown <julian@codesourcery.com>
From-SVN: r231184

8 years agoFix oacc kernels default mapping for scalars
Tom de Vries [Wed, 2 Dec 2015 15:48:45 +0000 (15:48 +0000)]
Fix oacc kernels default mapping for scalars

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

* gimplify.c (enum gimplify_omp_var_data): Add enum value
GOVD_MAP_FORCE.
(oacc_default_clause): Fix default for scalars in oacc kernels.
(gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_FORCE.

* c-c++-common/goacc/kernels-default-2.c: New test.
* c-c++-common/goacc/kernels-default.c: New test.

From-SVN: r231183

8 years agoMark pointers to allocated target vars as restricted, if possible
Tom de Vries [Wed, 2 Dec 2015 15:48:35 +0000 (15:48 +0000)]
Mark pointers to allocated target vars as restricted, if possible

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

* omp-low.c (install_var_field, scan_sharing_clauses): Add and handle
parameter base_pointers_restrict.
(omp_target_base_pointers_restrict_p): New function.
(scan_omp_target): Call scan_sharing_clauses with base_pointers_restrict
arg.

* c-c++-common/goacc/kernels-alias-2.c: New test.
* c-c++-common/goacc/kernels-alias-3.c: New test.
* c-c++-common/goacc/kernels-alias-4.c: New test.
* c-c++-common/goacc/kernels-alias-5.c: New test.
* c-c++-common/goacc/kernels-alias-6.c: New test.
* c-c++-common/goacc/kernels-alias-7.c: New test.
* c-c++-common/goacc/kernels-alias-8.c: New test.
* c-c++-common/goacc/kernels-alias.c: New test.

From-SVN: r231182

8 years agoFix ambiguity with multiple enable_shared_from_this bases
Jonathan Wakely [Wed, 2 Dec 2015 15:08:18 +0000 (15:08 +0000)]
Fix ambiguity with multiple enable_shared_from_this bases

PR libstdc++/56383
* testsuite/20_util/enable_shared_from_this/56383.cc: New.
* include/bits/shared_ptr_base.h (__enable_shared_from_this): Make
friend declaration match previous declaration of
__enable_shared_from_this_helper.
* include/bits/shared_ptr.h (enable_shared_from_this): Likewise.

From-SVN: r231181

8 years agonvptx-protos.h (nvptx_output_mov_insn): Declare.
Nathan Sidwell [Wed, 2 Dec 2015 14:57:54 +0000 (14:57 +0000)]
nvptx-protos.h (nvptx_output_mov_insn): Declare.

* config/nvptx/nvptx-protos.h (nvptx_output_mov_insn): Declare.
(nvptx_underlying_object_mode): Delete.
* config/nvptx/nvptx.c (nvptx_underlying_object_mode): Delete.
(output_reg): New.
(nvptx_declare_function_name): Use output_reg.  Remove punning
buffer.
(nvptx_output_mov_insn): New.
(nvptx_print_operand): Separate SUBREG handling, remove 'f' case,
Use output_reg. Merge 't' and 'u' handling.
* config/nvptx/nvptx.h (NVPTX_PUNNING_BUFFER_REGNUM): Delete.
(struct machine_function): Remvoe punning_buffer_size.
(REGISTER_NAMES): Remove %punbuffer.
* config/nvptx/nvptx.md (UNSPEC_CPLX_LOWPART,
UNSPEC_CPLX_HIGHPART): Delete.
(*mov<mode>_insn [QHSDIM): Remove unnecessary constraints, use
nvptx_output_mov_insn.
(*mov<mode>_insn [SDFM): Reorder constraints to match integer
moc.  Use nvptx_output_mov_insn.
(highpartscsf2,  set_highpartscsf2, lowpartscsf2,
set_lowpartscsf2): Delete.
(mov<mode> [SDCM]): Delete.

From-SVN: r231180

8 years agotree.h (tree_invariant_p): Declare.
Richard Biener [Wed, 2 Dec 2015 14:50:32 +0000 (14:50 +0000)]
tree.h (tree_invariant_p): Declare.

2015-12-02  Richard Biener  <rguenther@suse.de>

* tree.h (tree_invariant_p): Declare.
* tree.c (tree_invariant_p): Export.
* genmatch.c (dt_simplify::gen_1): For GENERIC code-gen never
create SAVE_EXPRs but reject patterns if we would need to.

From-SVN: r231178

8 years agoHandle BUILT_IN_GOACC_PARALLEL in ipa-pta
Tom de Vries [Wed, 2 Dec 2015 13:32:51 +0000 (13:32 +0000)]
Handle BUILT_IN_GOACC_PARALLEL in ipa-pta

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

* tree-ssa-structalias.c (find_func_aliases_for_builtin_call)
(find_func_clobbers, ipa_pta_execute): Handle BUILT_IN_GOACC_PARALLEL.

* c-c++-common/goacc/kernels-alias-ipa-pta-2.c: New test.
* c-c++-common/goacc/kernels-alias-ipa-pta-3.c: New test.
* c-c++-common/goacc/kernels-alias-ipa-pta.c: New test.

From-SVN: r231169

8 years agovect-strided-a-u8-i8-gap7-big-array.c: Fix uninitialized y guarding a call to abort ().
Richard Biener [Wed, 2 Dec 2015 11:49:48 +0000 (11:49 +0000)]
vect-strided-a-u8-i8-gap7-big-array.c: Fix uninitialized y guarding a call to abort ().

2015-12-02  Richard Biener  <rguenther@suse.de>

* gcc.dg/vect/vect-strided-a-u8-i8-gap7-big-array.c: Fix uninitialized
y guarding a call to abort ().
* gcc.dg/vect/vect-strided-a-u8-i8-gap7.c: Likewise.
* gcc.dg/vect/vect-strided-u8-i8-gap7-big-array.c: Likewise.

From-SVN: r231168

8 years agoAVX-512. Split out mask version for vec_extract_hi_<mode>.
Kirill Yukhin [Wed, 2 Dec 2015 11:07:42 +0000 (11:07 +0000)]
AVX-512. Split out mask version for vec_extract_hi_<mode>.

gcc/
* config/i386/sse.md (define_insn "vec_extract_hi_<mode>_maskm"):
Remove "prefix_extra".
(define_insn "vec_extract_hi_<mode>_mask"): New.
(define_insn "vec_extract_hi_<mode>"): Remove masking.
gcc/testsuite/
* gcc.target/i386/avx512vl-vextractf32x4-1.c: Fix scan pattern.

From-SVN: r231167

8 years agors6000: Optimise SImode cstore on 64-bit
Segher Boessenkool [Wed, 2 Dec 2015 10:56:15 +0000 (11:56 +0100)]
rs6000: Optimise SImode cstore on 64-bit

On 64-bit we can do comparisons of 32-bit values by extending those
values to 64-bit, subtracting them, and then getting the high bit of
the result.  For registers this is always cheaper than using the carry
bit sequence; and if the comparison involves a constant, this is cheaper
than the sequence we previously generated in half of the cases (and the
same cost in the other cases).

After this, the only sequence left that is using the mfcr insn is the
one doing signed comparison of Pmode registers.

From-SVN: r231165

8 years agore PR middle-end/68570 (ICE on valid code at -O1, -O2 and -O3 on x86_64-linux-gnu)
Marek Polacek [Wed, 2 Dec 2015 10:22:23 +0000 (10:22 +0000)]
re PR middle-end/68570 (ICE on valid code at -O1, -O2 and -O3 on x86_64-linux-gnu)

PR middle-end/68570
* gcc.dg/torture/pr68570.c: New test.

From-SVN: r231163

8 years agore PR tree-optimization/68625 (Segmentation fault in useless_type_conversion_p)
Richard Biener [Wed, 2 Dec 2015 09:47:43 +0000 (09:47 +0000)]
re PR tree-optimization/68625 (Segmentation fault in useless_type_conversion_p)

2015-12-02  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68625
* tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not call
cleanup_control_flow_bb.
(cleanup_tree_cfg_1): First perform cleanup_control_flow_bb
on all BBs, then cleanup_tree_cfg_bb and finally iterate
over the worklist doing both.

* gcc.dg/torture/pr68625.c: New testcase.

From-SVN: r231162

8 years agoPR 68432: Add a target hook to control size/speed optab choices
Richard Sandiford [Wed, 2 Dec 2015 09:08:49 +0000 (09:08 +0000)]
PR 68432: Add a target hook to control size/speed optab choices

The problem in the PR is that some i386 optabs FAIL when
optimising for size rather than speed.  The gimple level generally
needs access to this information before calling the generator,
so this patch adds a new hook to say whether an optab should
be used when optimising for size or speed.  It also has a "both"
option for cases where we want code that is optimised for both
size and speed.

I've passed the optab to the target hook because I think in most
cases that's more useful than the instruction code.  We could pass
both if there's a use for it though.

At the moment the match-and-simplify code doesn't have direct access
to the target block, so for now I've used "both" there.

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

gcc/
PR tree-optimization/68432
* coretypes.h (optimization_type): New enum.
* doc/tm.texi.in (TARGET_OPTAB_SUPPORTED_P): New hook.
* doc/tm.texi: Regenerate.
* target.def (optab_supported_p): New hook.
* targhooks.h (default_optab_supported_p): Declare.
* targhooks.c (default_optab_supported_p): New function.
* predict.h (function_optimization_type): Declare.
(bb_optimization_type): Likewise.
* predict.c (function_optimization_type): New function.
(bb_optimization_type): Likewise.
* optabs-query.h (convert_optab_handler): Define an overload
that takes an optimization type.
(direct_optab_handler): Likewise.
* optabs-query.c (convert_optab_handler): Likewise.
(direct_optab_handler): Likewise.
* internal-fn.h (direct_internal_fn_supported_p): Take an
optimization_type argument.
* internal-fn.c (direct_optab_supported_p): Likewise.
(multi_vector_optab_supported_p): Likewise.
(direct_internal_fn_supported_p): Likewise.
* builtins.c (replacement_internal_fn): Update call to
direct_internal_fn_supported_p.
* gimple-match-head.c (build_call_internal): Likewise.
* tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
* tree-vect-stmts.c (vectorizable_internal_function): Likewise.
* tree.c (maybe_build_call_expr_loc): Likewise.
* config/i386/i386.c (ix86_optab_supported_p): New function.
(TARGET_OPTAB_SUPPORTED_P): Define.
* config/i386/i386.md (asinxf2): Remove optimize_insn_for_size_p check.
(asin<mode>2, acosxf2, acos<mode>2, log1pxf2, log1p<mode>2)
(expNcorexf3, expxf2, exp<mode>2, exp10xf2, exp10<mode>2, exp2xf2)
(exp2<mode>2, expm1xf2, expm1<mode>2, ldexpxf3, ldexp<mode>3)
(scalbxf3, scalb<mode>3, rint<mode>2, round<mode>2)
(<rounding_insn>xf2, <rounding_insn><mode>2): Likewise.

gcc/testsuite/
* gcc.target/i386/pr68432-1.c: New test.
* gcc.target/i386/pr68432-2.c: Likewise.
* gcc.target/i386/pr68432-3.c: Likewise.

From-SVN: r231161

8 years agoCheck for invalid FAILs
Richard Sandiford [Wed, 2 Dec 2015 09:06:28 +0000 (09:06 +0000)]
Check for invalid FAILs

This patch makes it a compile-time error for an internal-fn optab
to FAIL.  There are certainly other optabs and patterns besides these
that aren't allowed to fail, but this at least deals with the immediate
point of controversy.

Tested normally on x86_64-linux-gnu.  Also tested by building one
configuration per cpu directory.  arc-elf and pdp11 didn't build
for unrelated reasons, but I checked that insn-emit.o built for
both without error.

gcc/
* Makefile.in (GENSUPPORT_H): New macro.
(build/gensupport.o, build/read-rtl.o, build/genattr.o)
(build/genattr-common.o, build/genattrtab.o, build/genautomata.o)
(build/gencodes.o, build/genconditions.o, build/genconfig.o)
(build/genconstants.o, build/genextract.o, build/genflags.o)
(build/gentarget-def.o): Use it.
(build/genemit.o): Likewise.  Depend on internal-fn.def.
* genopinit.c: Move block comment to optabs.def.
(optab_tag, optab_def): Move to gensupport.h
(pattern): Likewise, renaming to optab_pattern.
(match_pattern): Move to gensupport.c
(gen_insn): Use find_optab.
(patterns, pattern_cmp): Replace pattern with optab_pattern.
(main): Likewise.  Use num_optabs.
* optabs.def: Add comment that was previously in genopinit.c.
* gensupport.h (optab_tag): Moved from genopinit.c
(optab_def): Likewise, expanding commentary.
(optab_pattern): Likewise, after renaming from pattern.
(optabs, num_optabs, find_optab): Declare.
* gensupport.c (optabs): Moved from genopinit.c.
(num_optabs): New variable.
(match_pattern): Moved from genopinit.c.
(find_optab): New function, extracted from genopinit.c:gen_insn.
* genemit.c (nofail_optabs): New variable.
(emit_c_code): New function.
(gen_expand): Check whether the instruction is an optab that isn't
allowed to fail.  Call emit_c_code.
(gen_split): Call emit_c_code here too.
(main): Initialize nofail_optabs.  Don't emit FAIL and DONE here.

From-SVN: r231160

8 years agoS/390: Make constant checking more strict
Andreas Krebbel [Wed, 2 Dec 2015 08:05:04 +0000 (08:05 +0000)]
S/390: Make constant checking more strict

gcc/ChangeLog:

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/predicates.md (const_mask_operand): New predicate.
* config/s390/s390-builtins.def: Set a smaller bitmask for a few builtins.
* config/s390/vector.md: Change predicate from immediate_operand
to either const_int_operand or const_mask_operand.  Add special
insn conditions on patterns which have to exclude certain values.
* config/s390/vx-builtins.md: Likewise.

From-SVN: r231159

8 years agoS/390: vec_set mode DI->SI for shift_count
Andreas Krebbel [Wed, 2 Dec 2015 08:03:35 +0000 (08:03 +0000)]
S/390: vec_set mode DI->SI for shift_count

gcc/ChangeLog:

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/vector.md ("*vec_set<mode>"): Change shift count
mode from DI to SI.

From-SVN: r231158

8 years agoS/390: Fix vec_splat_* builtins.
Andreas Krebbel [Wed, 2 Dec 2015 08:02:05 +0000 (08:02 +0000)]
S/390: Fix vec_splat_* builtins.

gcc/testsuite/ChangeLog:

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/zvector/vec-splat-2.c: New test.

gcc/ChangeLog:

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390-builtin-types.def: New builtin types added.
* config/s390/s390-builtins.def: Add s390_vec_splat_* definitions.
* config/s390/s390.c (s390_expand_builtin): Always truncate
constants to the mode in the pattern.
* config/s390/vecintrin.h: Let the vec_splat_* macros point to the
respective builtin __builtin_s390_vec_splat_*.

From-SVN: r231157

8 years agoS/390: Sort builtin types - cleanup only.
Andreas Krebbel [Wed, 2 Dec 2015 07:59:52 +0000 (07:59 +0000)]
S/390: Sort builtin types - cleanup only.

gcc/ChangeLog:

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390-builtin-types.def: Sort builtin types.

From-SVN: r231156

8 years agoS/390: Fix RT flag in vstrc instruction.
Andreas Krebbel [Wed, 2 Dec 2015 07:57:24 +0000 (07:57 +0000)]
S/390: Fix RT flag in vstrc instruction.

gcc/ChangeLog:

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390-c.c (s390_get_vstring_flags): Invert the
condition for the RT flag.

From-SVN: r231155

8 years agoS/390: Enable vrepi constants.
Andreas Krebbel [Wed, 2 Dec 2015 07:55:40 +0000 (07:55 +0000)]
S/390: Enable vrepi constants.

gcc/testsuite/ChangeLog:

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/vector/vec-vrepi-1.c: New test.

gcc/ChangeLog:

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/constraints.md ("jKK"): New constraint.
* config/s390/s390.c (tm-constrs.h): Include for
satisfies_constraint_*.
(s390_legitimate_constant_p): Allow jKK constants.  Use
satisfies_constraint_* also for the others.
(legitimate_reload_vector_constant_p): Likewise.
(print_operand): Allow h output modifier on vectors.
* config/s390/vector.md ("mov<mode>"): Add vrepi.

From-SVN: r231154

8 years agoS/390: Fix vrepi constraint letter.
Andreas Krebbel [Wed, 2 Dec 2015 07:53:03 +0000 (07:53 +0000)]
S/390: Fix vrepi constraint letter.

gcc/ChangeLog:

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/vector.md ("*vec_splats<mode>"): Fix constraint
latter I->K.

gcc/testsuite/ChangeLog:

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/zvector/vec-splat-1.c: New test.

From-SVN: r231153

8 years agoS/390: Further bswap enhancements.
Andreas Krebbel [Wed, 2 Dec 2015 07:49:47 +0000 (07:49 +0000)]
S/390: Further bswap enhancements.

gcc/ChangeLog:

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.md ("bswap<mode>2"): Add support for strv and
strvg.
("bswaphi2"): New pattern.
New splitter for HI reg-reg bswap.

gcc/testsuite/ChangeLog:

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/bswap-1.c (foo64c, foo32a, foo32c): New functions.
* gcc.target/s390/bswaphi-1.c: New test.

From-SVN: r231152

8 years agoS/390: Enable 64 bit atomic tests with -m31 -mzarch.
Andreas Krebbel [Wed, 2 Dec 2015 07:45:50 +0000 (07:45 +0000)]
S/390: Enable 64 bit atomic tests with -m31 -mzarch.

gcc/testsuite/ChangeLog:

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* lib/target-supports.exp: Add s390 and s390x to the list of long
long atomic targets.

From-SVN: r231151

8 years ago[PATCH] Fix PR68029
Jiri Engelthaler [Wed, 2 Dec 2015 07:42:58 +0000 (07:42 +0000)]
[PATCH] Fix PR68029

PR driver/68029
* opts-common.c (prune_options): Don't ignore -fdiagnostics-color
if it is the first parameter.

From-SVN: r231150

8 years agoS/390: bswap64 testcases require -mzarch.
Andreas Krebbel [Wed, 2 Dec 2015 07:41:53 +0000 (07:41 +0000)]
S/390: bswap64 testcases require -mzarch.

gcc/testsuite/ChangeLog:

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.dg/optimize-bswapdi-1.c: Force using -mzarch on s390 and
s390x to enable 64 bit bswap patterns.
* gcc.dg/optimize-bswapdi-2.c: Likewise.
* gcc.dg/optimize-bswapdi-3.c: Likewise.
* lib/target-supports.exp: Add a comment for s390.

From-SVN: r231149

8 years agoS/390: bswap testcases require -march=z900 to work with -m31.
Andreas Krebbel [Wed, 2 Dec 2015 07:37:23 +0000 (07:37 +0000)]
S/390: bswap testcases require -march=z900 to work with -m31.

gcc/testsuite/ChangeLog:

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.dg/builtin-bswap-6a.c: Add -march=z900 for s390 and s390x in
order to make -m31 work.
* gcc.dg/optimize-bswapsi-1.c: Likewise.
* gcc.dg/optimize-bswapsi-2.c: Likewise.

From-SVN: r231148

8 years agore PR c/68533 (bogus location for "warning: ‘struct s3’ declared inside parameter...
Jakub Jelinek [Wed, 2 Dec 2015 07:33:06 +0000 (08:33 +0100)]
re PR c/68533 (bogus location for "warning: ‘struct s3’ declared inside parameter list will not be visible outside of this definition or declaration")

PR c/68533
* c-decl.c (get_parm_info): Use b->locus instead of input_location
for diagnostics.

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

From-SVN: r231147

8 years ago[PR68603] Associate conditional C++ loop's back-jump with start, not body
Andreas Arnez [Wed, 2 Dec 2015 07:26:30 +0000 (07:26 +0000)]
[PR68603] Associate conditional C++ loop's back-jump with start, not body

SVN commit r230979 always associates a loop's back-jump with the start
of the loop body.  This caused a regression for gcov with conditional
loops, because then the loop body appears to be covered twice per
iteration.

2015-12-02  Andreas Arnez  <arnez@linux.vnet.ibm.com>

PR gcov-profile/68603
* cp-gimplify.c (genericize_cp_loop): For the back-jump's location
use the start of the loop body only if the loop is unconditional.

From-SVN: r231146

8 years ago[PATCH] Fix declaration of pthread-structs in s-osinte-rtems.ads (ada/68169)
Jan Sommer [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

From-SVN: r231145

8 years agore PR go/65717 (64-bit runtime FAILs with 32-bit compiler)
Ian Lance Taylor [Wed, 2 Dec 2015 01:28:26 +0000 (01:28 +0000)]
re PR go/65717 (64-bit runtime FAILs with 32-bit compiler)

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

From-SVN: r231142

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

From-SVN: r231140

8 years agofptr.c (__canonicalize_funcptr_for_compare): Initialize fixup values if saved GOT...
John David Anglin [Tue, 1 Dec 2015 23:59:20 +0000 (23:59 +0000)]
fptr.c (__canonicalize_funcptr_for_compare): Initialize fixup values if saved GOT address doesn't match runtime address.

* 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.

From-SVN: r231135

8 years agoPR68577: Handle narrowing for vector popcount, etc.
Richard Sandiford [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.

From-SVN: r231131

8 years agofreebsd64.h (ELFv2_ABI_CHECK): Add new macro.
Andreas Tobler [Tue, 1 Dec 2015 20:17:37 +0000 (21:17 +0100)]
freebsd64.h (ELFv2_ABI_CHECK): Add new macro.

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.

From-SVN: r231129

8 years agore PR libffi/65726 (libffi fails to build when not bootstrapping: configure: error...
Andreas Tobler [Tue, 1 Dec 2015 20:15:35 +0000 (21:15 +0100)]
re PR libffi/65726 (libffi fails to build when not bootstrapping: configure: error: C++ preprocessor "/lib/cpp" fails sanity check)

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.

From-SVN: r231128

8 years agonvptx-protos.h (nvptx_output_aligned_decl): Declare.
Nathan Sidwell [Tue, 1 Dec 2015 20:13:02 +0000 (20:13 +0000)]
nvptx-protos.h (nvptx_output_aligned_decl): Declare.

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.

From-SVN: r231127

8 years agoalias-1.c: New testcase.
Jan Hubicka [Tue, 1 Dec 2015 19:14:44 +0000 (20:14 +0100)]
alias-1.c: New testcase.

* gcc.c-torture/execute/alias-1.c: New testcase.
* c-common.c: Do not silently ignore -fstrict-aliasing changes.

From-SVN: r231125

8 years agolto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET.
Jan Hubicka [Tue, 1 Dec 2015 19:13:12 +0000 (20:13 +0100)]
lto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET.

* 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.

From-SVN: r231124

8 years agonvptx.c (nvptx_function_arg_advance): Don't consider mode.
Nathan Sidwell [Tue, 1 Dec 2015 16:58:08 +0000 (16:58 +0000)]
nvptx.c (nvptx_function_arg_advance): Don't consider mode.

* config/nvptx/nvptx.c (nvptx_function_arg_advance): Don't
consider mode.

From-SVN: r231121

8 years agore PR tree-optimization/64769 (ICE: tree check: expected integer_cst, have parm_decl...
Marek Polacek [Tue, 1 Dec 2015 16:22:28 +0000 (16:22 +0000)]
re PR tree-optimization/64769 (ICE: tree check: expected integer_cst, have parm_decl in simd_clone_clauses_extract, at omp-low.c:12503 with -fopenmp-simd)

PR tree-optimization/64769
* c-c++-common/gomp/pr64769.c: New test.

From-SVN: r231120

8 years agors6000.c (const_load_sequence_p): Handle extra indirection for large and small code...
Bill Schmidt [Tue, 1 Dec 2015 16:10:45 +0000 (16:10 +0000)]
rs6000.c (const_load_sequence_p): Handle extra indirection for large and small code models.

[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.

From-SVN: r231119

8 years agoOpenACC host_data support.
Julian Brown [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.

Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
Co-Authored-By: James Norris <James_Norris@mentor.com>
From-SVN: r231118

8 years agore PR tree-optimization/67916 (wrong code at -O3 on x86_64-linux-gnu)
Marek Polacek [Tue, 1 Dec 2015 15:47:34 +0000 (15:47 +0000)]
re PR tree-optimization/67916 (wrong code at -O3 on x86_64-linux-gnu)

PR tree-optimization/67916
* gcc.dg/torture/pr67916.c: New test.

From-SVN: r231117

8 years agore PR middle-end/68582 (-Wunused-function doesn't warn about unused static __attribut...
Marek Polacek [Tue, 1 Dec 2015 15:44:08 +0000 (15:44 +0000)]
re PR middle-end/68582 (-Wunused-function doesn't warn about unused static __attribute__((noreturn)) functions)

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.

From-SVN: r231116

8 years agoPR68474: Fix tree-call-cdce.c:use_internal_fn
Richard Sandiford [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.

From-SVN: r231115

8 years agore PR target/68617 (arm ice output_operand: invalid %-code for -march=armv6k + thumb)
Christian Bruel [Tue, 1 Dec 2015 14:50:57 +0000 (15:50 +0100)]
re PR target/68617 (arm ice output_operand: invalid %-code for  -march=armv6k + thumb)

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.

From-SVN: r231114

8 years agoMove pr46032*.c tests
Tom de 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.

From-SVN: r231113

8 years agodump-parse-tree.c (show_omp_clauses): Handle optional num and static arguments for...
Cesar Philippidis [Tue, 1 Dec 2015 14:27:11 +0000 (06:27 -0800)]
dump-parse-tree.c (show_omp_clauses): Handle optional num and static arguments for the gang clause.

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.

From-SVN: r231112

8 years agore PR tree-optimization/68379 (BB vectorization: definition in block 13 follows the...
Richard Biener [Tue, 1 Dec 2015 14:24:54 +0000 (14:24 +0000)]
re PR tree-optimization/68379 (BB vectorization: definition in block 13 follows the use for SSA_NAME)

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.

From-SVN: r231111

8 years agore PR ada/68590 (FAIL: gnat.dg/loop_optimization19.adb scan-tree-dump-not optimized...
Richard Biener [Tue, 1 Dec 2015 14:22:40 +0000 (14:22 +0000)]
re PR ada/68590 (FAIL: gnat.dg/loop_optimization19.adb scan-tree-dump-not optimized "Index_Check")

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.

From-SVN: r231110

8 years ago[testsuite] Fix pr46032* testcases.
Christophe Lyon [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.

From-SVN: r231109

8 years agore PR ipa/68470 (Internal Compiler Error observed by g++-4.9.2 and a few other versio...
Richard Biener [Tue, 1 Dec 2015 11:35:21 +0000 (11:35 +0000)]
re PR ipa/68470 (Internal Compiler Error observed by g++-4.9.2 and a few other versions (reported to Debian))

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.

From-SVN: r231108

8 years agoDefine path::_Cmpt after specializing path::__is_encoded_char
Jonathan Wakely [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.

From-SVN: r231107

8 years agore PR middle-end/68595 (ice in const_vector_mask_from_tree at expr.c:11455)
Ilya Enkovich [Tue, 1 Dec 2015 11:04:06 +0000 (11:04 +0000)]
re PR middle-end/68595 (ice in const_vector_mask_from_tree at expr.c:11455)

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.

From-SVN: r231106

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

From-SVN: r231105

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

From-SVN: r231104

8 years agoImprove error reporting from genattrtab.c
Richard Sandiford [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.

From-SVN: r231103

8 years agoFix typo in aarch64.c
Ramana Radhakrishnan [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.

From-SVN: r231101

8 years agore PR ada/68590 (FAIL: gnat.dg/loop_optimization19.adb scan-tree-dump-not optimized...
Richard Biener [Tue, 1 Dec 2015 08:52:58 +0000 (08:52 +0000)]
re PR ada/68590 (FAIL: gnat.dg/loop_optimization19.adb scan-tree-dump-not optimized "Index_Check")

2015-12-01  Richard Biener  <rguenther@suse.de>

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

From-SVN: r231100

This page took 0.106593 seconds and 5 git commands to generate.