platform/upstream/linaro-gcc.git
8 years agoReimplement diagnostic_show_locus, introducing rich_location classes
dmalcolm [Fri, 6 Nov 2015 19:50:50 +0000 (19:50 +0000)]
Reimplement diagnostic_show_locus, introducing rich_location classes

gcc/ChangeLog:
* diagnostic-color.c (color_dict): Eliminate "caret"; add "range1"
and "range2".
(parse_gcc_colors): Update comment to describe default GCC_COLORS.
* diagnostic-core.h (warning_at_rich_loc): New declaration.
(error_at_rich_loc): New declaration.
(permerror_at_rich_loc): New declaration.
(inform_at_rich_loc): New declaration.
* diagnostic-show-locus.c (adjust_line): Delete.
(struct point_state): New struct.
(class colorizer): New class.
(class layout_point): New class.
(class layout_range): New class.
(struct line_bounds): New.
(class layout): New class.
(colorizer::colorizer): New ctor.
(colorizer::~colorizer): New dtor.
(layout::layout): New ctor.
(layout::print_source_line): New method.
(layout::print_annotation_line): New method.
(layout::get_state_at_point): New method.
(layout::get_x_bound_for_row): New method.
(diagnostic_show_locus): Reimplement in terms of class layout.
(diagnostic_print_caret_line): Delete.
* diagnostic.c (diagnostic_initialize): Replace
MAX_LOCATIONS_PER_MESSAGE with rich_location::MAX_RANGES.
(diagnostic_set_info_translated): Convert param from location_t
to rich_location *.  Eliminate calls to set_location on the
message in favor of storing the rich_location ptr there.
(diagnostic_set_info): Convert param from location_t to
rich_location *.
(diagnostic_build_prefix): Break out array into...
(diagnostic_kind_color): New variable.
(diagnostic_get_color_for_kind): New function.
(diagnostic_report_diagnostic): Colorize the option_text
using the color for the severity.
(diagnostic_append_note): Update for change in signature of
diagnostic_set_info.
(diagnostic_append_note_at_rich_loc): New function.
(emit_diagnostic): Update for change in signature of
diagnostic_set_info.
(inform): Likewise.
(inform_at_rich_loc): New function.
(inform_n): Update for change in signature of diagnostic_set_info.
(warning): Likewise.
(warning_at): Likewise.
(warning_at_rich_loc): New function.
(warning_n): Update for change in signature of diagnostic_set_info.
(pedwarn): Likewise.
(permerror): Likewise.
(permerror_at_rich_loc): New function.
(error): Update for change in signature of diagnostic_set_info.
(error_n): Likewise.
(error_at): Likewise.
(error_at_rich_loc): New function.
(sorry): Update for change in signature of diagnostic_set_info.
(fatal_error): Likewise.
(internal_error): Likewise.
(internal_error_no_backtrace): Likewise.
(source_range::debug): New function.
* diagnostic.h (struct diagnostic_info): Eliminate field
"override_column".  Add field "richloc".
(struct diagnostic_context): Add field "colorize_source_p".
(diagnostic_override_column): Delete.
(diagnostic_set_info): Convert param from location_t to
rich_location *.
(diagnostic_set_info_translated): Likewise.
(diagnostic_append_note_at_rich_loc): New function.
(diagnostic_num_locations): New function.
(diagnostic_expand_location): Get the location from the
rich_location.
(diagnostic_print_caret_line): Delete.
(diagnostic_get_color_for_kind): New declaration.
* genmatch.c (linemap_client_expand_location_to_spelling_point): New.
(error_cb): Update for change in signature of "error" callback.
(fatal_at): Likewise.
(warning_at): Likewise.
* input.c (linemap_client_expand_location_to_spelling_point): New.
* pretty-print.c (text_info::set_range): New method.
(text_info::get_location): New method.
* pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): Eliminate this macro.
(struct text_info): Eliminate "locations" array in favor of
"m_richloc", a rich_location *.
(textinfo::set_location): Add a "caret_p" param, and reimplement
in terms of a call to set_range.
(textinfo::get_location): Eliminate inline implementation in favor of
an out-of-line reimplementation.
(textinfo::set_range): New method.
* rtl-error.c (diagnostic_for_asm): Update for change in signature
of diagnostic_set_info.
* tree-diagnostic.c (default_tree_printer): Update for new
"caret_p" param for textinfo::set_location.
* tree-pretty-print.c (percent_K_format): Likewise.

gcc/c-family/ChangeLog:
* c-common.c (c_cpp_error): Convert parameter from location_t to
rich_location *.  Eliminate the "column_override" parameter and
the call to diagnostic_override_column.
Update the "done_lexing" clause to set range 0
on the rich_location, rather than overwriting a location_t.
* c-common.h (c_cpp_error): Convert parameter from location_t to
rich_location *.  Eliminate the "column_override" parameter.

gcc/c/ChangeLog:
* c-decl.c (warn_defaults_to): Update for change in signature
of diagnostic_set_info.
* c-errors.c (pedwarn_c99): Likewise.
(pedwarn_c90): Likewise.
* c-objc-common.c (c_tree_printer): Update for new "caret_p" param
for textinfo::set_location.

gcc/cp/ChangeLog:
* error.c (cp_printer): Update for new "caret_p" param for
textinfo::set_location.
(pedwarn_cxx98): Update for change in signature of
diagnostic_set_info.

gcc/fortran/ChangeLog:
* cpp.c (cb_cpp_error): Convert parameter from location_t to
rich_location *.  Eliminate the "column_override" parameter.
* error.c (gfc_warning): Update for change in signature of
diagnostic_set_info.
(gfc_format_decoder): Update handling of %C/%L for changes
to struct text_info.
(gfc_diagnostic_starter): Use richloc when determining whether to
print one locus or two.  When handling a location that will
involve a call to diagnostic_show_locus, only attempt to print the
locus for the primary location, and don't call into
diagnostic_print_caret_line.
(gfc_warning_now_at): Update for change in signature of
diagnostic_set_info.
(gfc_warning_now): Likewise.
(gfc_error_now): Likewise.
(gfc_fatal_error): Likewise.
(gfc_error): Likewise.
(gfc_internal_error): Likewise.

gcc/testsuite/ChangeLog:
* gcc.dg/plugin/diagnostic-test-show-locus-bw.c: New file.
* gcc.dg/plugin/diagnostic-test-show-locus-color.c: New file.
* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c: New file.
* gcc.dg/plugin/plugin.exp (plugin_test_list): Add the above.
* lib/gcc-dg.exp: Load multiline.exp.

libcpp/ChangeLog:
* errors.c (cpp_diagnostic): Update for change in signature
of "error" callback.
(cpp_diagnostic_with_line): Likewise, calling override_column
on the rich_location.
* include/cpplib.h (struct cpp_callbacks): Within "error"
callback, convert param from source_location to rich_location *,
and drop column_override param.
* include/line-map.h (struct source_range): New struct.
(struct location_range): New struct.
(class rich_location): New class.
(linemap_client_expand_location_to_spelling_point): New declaration.
* line-map.c (rich_location::rich_location): New ctors.
(rich_location::lazily_expand_location): New method.
(rich_location::override_column): New method.
(rich_location::add_range): New methods.
(rich_location::set_range): New method.

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

8 years ago * testsuite/26_numerics/complex/requirements/constexpr.cc
jason [Fri, 6 Nov 2015 19:43:33 +0000 (19:43 +0000)]
* testsuite/26_numerics/complex/requirements/constexpr.cc
* testsuite/26_numerics/complex/requirements/constexpr_functions.cc:
Use constexpr where needed.

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

8 years ago libgo: Solaris portability fixes.
ian [Fri, 6 Nov 2015 19:15:45 +0000 (19:15 +0000)]
libgo: Solaris portability fixes.

    Only build net/hook_cloexec.go on GNU/Linux and FreeBSD, because those
    are the only systems with accept4.

    Add syscall/libcall_bsd.go to define sendfile for *BSD and Solaris.

    Revert tcpsockopt_solaris.go back to the earlier version, so that it
    works on Solaris 10.

    Always pass the address of a Pid_t value to TIOCGPGRP and TIOCSPGRP.

    Include <unistd.h> in runtime/go-varargs.c.

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

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

8 years ago[Patch AArch64] Switch constant pools to separate rodata sections.
ramana [Fri, 6 Nov 2015 19:00:59 +0000 (19:00 +0000)]
[Patch AArch64] Switch constant pools to separate rodata sections.

Properly apply ..

2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

Properly apply.
2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
        * config/aarch64/aarch64.c
        (aarch64_can_use_per_function_literal_pools_p): New.
        (aarch64_use_blocks_for_constant_p): Adjust declaration
        and use aarch64_can_use_function_literal_pools_p.
        (aarch64_select_rtx_section): Update.

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

8 years agolibstdc++v3: Explicitly disable carets and colorization within testsuite
dmalcolm [Fri, 6 Nov 2015 18:44:05 +0000 (18:44 +0000)]
libstdc++v3: Explicitly disable carets and colorization within testsuite

libstdc++-v3/ChangeLog:
* testsuite/lib/libstdc++.exp (v3_target_compile): Add
-fno-diagnostics-show-caret -fdiagnostics-color=never to
option's additional_flags.

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

8 years ago[Patch ARM] Unified assembler in ARM state.
ramana [Fri, 6 Nov 2015 18:43:15 +0000 (18:43 +0000)]
[Patch ARM] Unified assembler in ARM state.

gcc/ChangeLog:

2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

* config/arm/arm-ldmstm.ml: Rewrite to generate unified asm templates.
* config/arm/arm.c (arm_asm_trampoline_template): Make unified asm safe.
(arm_output_multireg_pop): Likewise.
(output_move_double):  Likewise.
(output_move_quad):  Likewise.
(output_return_instruction): Likewise.
(arm_print_operand): Remove support for %( and %. print modifiers.
(arm_output_shift): Make unified asm.
(arm_declare_function_name): Likewise.
* config/arm/arm.h (TARGET_UNIFIED_ASM): Delete.
         (ASM_APP_OFF): Adjust.
         (ASM_OUTPUT_REG_PUSH): Undo special casing for TARGET_ARM.
         (ASM_OUTPUT_REG_POP): Likewise.
* config/arm/arm.md: Adjust uses of %., %(, %)
* config/arm/sync.md: Likewise.
* config/arm/thumb2.md: Likewise.
* config/arm/ldmstm.md: Regenerate.
* config/arm/arm.opt (masm-unified-syntax): Do not special case Thumb.
* doc/invoke.texi (masm-unified-syntax): Update documentation.

gcc/testsuite/ChangeLog:

2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

* gcc.target/arm/combine-movs.c:
* gcc.target/arm/interrupt-1.c:
* gcc.target/arm/interrupt-2.c:
* gcc.target/arm/unaligned-memcpy-4.c:

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

8 years agoAdd stats on adhoc table to dump_line_table_statistics
dmalcolm [Fri, 6 Nov 2015 18:40:56 +0000 (18:40 +0000)]
Add stats on adhoc table to dump_line_table_statistics

gcc/ChangeLog:
* input.c (dump_line_table_statistics): Dump stats on adhoc table.

libcpp/ChangeLog:
* include/line-map.h (struct linemap_stats): Add fields
"adhoc_table_size" and "adhoc_table_entries_used".
* line-map.c (linemap_get_statistics): Populate above fields.

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

8 years ago * tree-core.h (size_type_kind): Remove OEP_CONSTANT_ADDRESS_OF and
hubicka [Fri, 6 Nov 2015 17:24:28 +0000 (17:24 +0000)]
* tree-core.h (size_type_kind): Remove OEP_CONSTANT_ADDRESS_OF and
add OEP_MATCH_SIDE_EFFECTS.
* fold-const.c (operand_equal_p): Update documentation; handle
OEP_MATCH_SIDE_EFFECTS.
* tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Use
OEP_MATCH_SIDE_EFFECTS.

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

8 years ago2015-11-06 Benedikt Huber <benedikt.huber@theobroma-systems.com>
ptomsich [Fri, 6 Nov 2015 17:10:17 +0000 (17:10 +0000)]
2015-11-06  Benedikt Huber  <benedikt.huber@theobroma-systems.com>
    Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

* config/aarch64/aarch64-builtins.c: Builtins for rsqrt and rsqrtf.
* config/aarch64/aarch64-protos.h: Declare.
* config/aarch64/aarch64-simd.md: Matching expressions for frsqrte and
frsqrts.
* config/aarch64/aarch64-tuning-flags.def: Added recip_sqrt.
* config/aarch64/aarch64.c: New functions. Emit rsqrt estimation code when
applicable.
* config/aarch64/aarch64.md: Added enum entries.
* config/aarch64/aarch64.opt: Added option -mlow-precision-recip-sqrt.
* testsuite/gcc.target/aarch64/rsqrt_asm_check_common.h: Common macros for
assembly checks.
* testsuite/gcc.target/aarch64/rsqrt_asm_check_negative_1.c: Make sure
frsqrts and frsqrte are not emitted.
* testsuite/gcc.target/aarch64/rsqrt_asm_check_1.c: Make sure frsqrts and
frsqrte are emitted.
* testsuite/gcc.target/aarch64/rsqrt_1.c: Functional tests for rsqrt.

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@229866 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoXFAIL testcases regressed after r229814, "Merge from gomp-4_5-branch to trunk"
tschwinge [Fri, 6 Nov 2015 16:44:35 +0000 (16:44 +0000)]
XFAIL testcases regressed after r229814, "Merge from gomp-4_5-branch to trunk"

gcc/testsuite/
* gfortran.dg/goacc/combined_loop.f90: XFAIL.

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

8 years ago Support non-type constrained-type-specifiers.
jason [Fri, 6 Nov 2015 16:21:29 +0000 (16:21 +0000)]
Support non-type constrained-type-specifiers.
* parser.c (check_type_concept): Remove.
(cp_parser_maybe_constrained_type_specifier): Don't call it.
(synthesize_implicit_template_parm): Handle non-type and template
template parameters.  Also compare extra args.  Return the decl.
(cp_parser_template_argument): Handle constrained-type-specifiers for
non-type template parameters.
(finish_constrained_template_template_parm): Split out from
cp_parser_constrained_template_template_parm.
(cp_parser_nonclass_name): Move some logic into
cp_parser_maybe_concept_name.
(cp_parser_init_declarator): Fix error recovery.
(get_concept_from_constraint): Remove.
(cp_parser_simple_type_specifier): Adjust for
synthesize_implicit_template_parm returning the decl.
* constraint.cc (placeholder_extract_concept_and_args)
(equivalent_placeholder_constraints): Also handle TYPE_DECL
constrained parms.

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

8 years ago PR ipa/68057
hubicka [Fri, 6 Nov 2015 16:04:38 +0000 (16:04 +0000)]
PR ipa/68057
PR ipa/68220
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
issue when offset is out of range.
(contains_type_p): Fix out of range check, clear dynamic flag.
* g++.dg/lto/pr68057_0.C: New testcase.
* g++.dg/lto/pr68057_1.C: New testcase.
* g++.dg/torture/pr68220.C: New testcase.

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

8 years ago2015-11-06 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 6 Nov 2015 15:56:48 +0000 (15:56 +0000)]
2015-11-06  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/testsuite/
* gcc.target/aarch64/advsimd-intrinsics/vtbX.c: Fix typos
in comment.

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

8 years agoCorrect entry for PR c++/67942.
msebor [Fri, 6 Nov 2015 15:42:41 +0000 (15:42 +0000)]
Correct entry for PR c++/67942.

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

8 years ago * pt.c (push_inline_template_parms_recursive): Don't recreate the
jason [Fri, 6 Nov 2015 15:33:24 +0000 (15:33 +0000)]
* pt.c (push_inline_template_parms_recursive): Don't recreate the
CONST_DECL.

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

8 years ago2015-11-06 Arnout Vandecappelle <arnout@mind.be>
dje [Fri, 6 Nov 2015 15:31:52 +0000 (15:31 +0000)]
2015-11-06  Arnout Vandecappelle  <arnout@mind.be>
        * config.gcc (e6500): Fix cpu_is_64bit typo.

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

8 years agotree-sra.c: Fix completely_scalarize for negative indices.
alalaw01 [Fri, 6 Nov 2015 13:48:32 +0000 (13:48 +0000)]
tree-sra.c: Fix completely_scalarize for negative indices.

* tree-sra.c (completely_scalarize): Properly handle negative array
indices using offset_int.

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

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

* alloc-pool.h (object_allocator::allocate): Default-initialize
object.

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

8 years ago2015-11-06 Richard Biener <rguenther@suse.de>
rguenth [Fri, 6 Nov 2015 13:45:54 +0000 (13:45 +0000)]
2015-11-06  Richard Biener  <rguenther@suse.de>

* tree-ssa-sccvn.c (class sccvn_dom_walker): Add destructor.
* lra.c (init_reg_info): Truncate copy_vec instead of
re-allocating a new one and leaking the old.
* ipa-inline-analysis.c (estimate_function_body_sizes): Free
bb_infos vec.
* sched-deps.c (sched_deps_finish): Free the dn/dl pools.
* postreload-gcse.c (free_mem): Free modify_mem_list and
canon_modify_mem_list.

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

8 years ago[cp][committed] Fix bootstrap on arm due to print format warning
ktkachov [Fri, 6 Nov 2015 13:36:17 +0000 (13:36 +0000)]
[cp][committed] Fix bootstrap on arm due to print format warning

* init.c (warn_placement_new_too_small): Use %wu format
rather than %lu when printing bytes_avail.

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

8 years agogcc/
ienkovich [Fri, 6 Nov 2015 13:31:51 +0000 (13:31 +0000)]
gcc/

PR tree-optimization/68145
* tree-vect-stmts.c (vectorizable_operation): Fix
determination for booleans.

gcc/testsuite/

PR tree-optimization/68145
* g++.dg/vect/pr68145.cc: New test.

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

8 years agoFix transform_to_exit_first_loop_alt with -g
vries [Fri, 6 Nov 2015 13:21:51 +0000 (13:21 +0000)]
Fix transform_to_exit_first_loop_alt with -g

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

* tree-cfg.c (gimple_split_block_before_cond_jump): Split before
cond_jump, instead of split after last nondebug insn before cond_jump.
* tree-parloops.c (transform_to_exit_first_loop_alt): Verify ssa before
returning.

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

8 years ago[ARM/AArch64] PR 68088: Fix RTL checking ICE due to subregs inside accumulator forwar...
ktkachov [Fri, 6 Nov 2015 12:04:15 +0000 (12:04 +0000)]
[ARM/AArch64] PR 68088: Fix RTL checking ICE due to subregs inside accumulator forwarding check

        PR target/68088
        * config/arm/aarch-common.c (aarch_accumulator_forwarding): Strip
        subregs from accumulator and make sure it's a register.

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

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

8 years agoUpdate loongson vector reductions.
dardiss [Fri, 6 Nov 2015 11:59:20 +0000 (11:59 +0000)]
Update loongson vector reductions.

2015-11-06  Simon Dardis  <simon.dardis@imgtec.com>

        * config/mips/loongson.md (vec_loongson_extract_lo_<mode>): New, extract
        low part to scalar.
        (reduc_uplus_<mode>): Remove.
        (reduc_plus_scal_<mode>): Rename from reduc_splus_<mode>, Use vec
        loongson_extract_lo_<mode>.
        (reduc_smax_scal_<mode>, reduc_smin_scal_<mode>): Rename from
        reduc_smax_<mode>, reduc_smax_<mode>, use vec
        loongson_extract_lo_<mode>.
        (reduc_umax_scal_<mode>, reduc_umin_scal_<mode>): Rename.

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

8 years ago2015-11-06 Richard Biener <rguenther@suse.de>
rguenth [Fri, 6 Nov 2015 11:15:40 +0000 (11:15 +0000)]
2015-11-06  Richard Biener  <rguenther@suse.de>

* tree-vectorizer.h (struct _bb_vec_info): Add region_begin/end
members.
(vect_stmt_in_region_p): Declare.
* tree-vect-slp.c (new_bb_vec_info): Work on a region.
(destroy_bb_vec_info): Likewise.
(vect_bb_slp_scalar_cost): Use vect_stmt_in_region_p.
(vect_get_and_check_slp_defs): Likewise.
(vect_slp_analyze_bb_1): Refactor to make it work on sub-BBs.
(vect_slp_bb): Likewise.
* tree-vect-patterns.c (vect_same_loop_or_bb_p): Implement
in terms of vect_stmt_in_region_p.
(vect_pattern_recog): Iterate over the BB region.
* tree-vect-stmts.c (vect_is_simple_use): Use vect_stmt_in_region_p.
* tree-vectorizer.c (vect_stmt_in_region_p): New function.
(pass_slp_vectorize::execute): Initialize all stmt UIDs to -1.

* config/i386/i386.c: Include gimple-iterator.h.
* config/aarch64/aarch64.c: Likewise.

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

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

8 years agoXFAIL testcases regressed after r229814, "Merge from gomp-4_5-branch to trunk"
tschwinge [Fri, 6 Nov 2015 11:11:34 +0000 (11:11 +0000)]
XFAIL testcases regressed after r229814, "Merge from gomp-4_5-branch to trunk"

gcc/testsuite/
* gfortran.dg/goacc/private-3.f95: XFAIL.
libgomp/
* testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: XFAIL.
* testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Likewise.

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

8 years ago[PR67753] fix copy of PARALLEL entry_parm to CONCAT target_reg
aoliva [Fri, 6 Nov 2015 10:34:13 +0000 (10:34 +0000)]
[PR67753] fix copy of PARALLEL entry_parm to CONCAT target_reg

In assign_parms_setup_block, the copy of args in PARALLELs from
entry_parm to stack_parm is deferred to the parm conversion insn seq,
but the copy from stack_parm to target_reg was inserted in the normal
copy seq, that is executed before the conversion insn seq.  Oops.

We could do away with the need for an actual stack_parm in general,
which would have avoided the need for emitting the copy to target_reg
in the conversion seq, but at least on pa, due to the need for stack
to copy between SI and SF modes, it seems like using the reserved
stack slot is beneficial, so I put in logic to use a pre-reserved
stack slot when there is one, and emit the copy to target_reg in the
conversion seq if stack_parm was set up there.

for  gcc/ChangeLog

PR rtl-optimization/67753
PR rtl-optimization/64164
* function.c (assign_parm_setup_block): Avoid allocating a
stack slot if we don't have an ABI-reserved one.  Emit the
copy to target_reg in the conversion seq if the copy from
entry_parm is in it too.  Don't use the conversion seq to copy
a PARALLEL to a REG or a CONCAT.

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

8 years agoAdd testcases for middle-end/53852 and middle-end/67518
vondele [Fri, 6 Nov 2015 09:51:12 +0000 (09:51 +0000)]
Add testcases for middle-end/53852 and middle-end/67518

2015-11-06  Joost VandeVondele  <vondele@gnu.gcc.org>

PR middle-end/53852
PR middle-end/67518
* gfortran.dg/PR67518.f90: New test.
* gfortran.dg/PR53852.f90: New test.

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

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

* tree-hash-traits.h (tree_operand_hash): Provide equal, not
equal_keys.

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

8 years ago gcc/
cesar [Fri, 6 Nov 2015 02:03:48 +0000 (02:03 +0000)]
gcc/
* gimplify.c (gimplify_scan_omp_clauses): Add support for
OMP_CLAUSE_TILE.  Update handling of OMP_CLAUSE_INDEPENDENT.
(gimplify_adjust_omp_clauses): Likewise.
* omp-low.c (scan_sharing_clauses): Add support for OMP_CLAUSE_TILE.
* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_TILE.
* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_TILE.
* tree.c (omp_clause_num_ops): Add an entry for OMP_CLAUSE_TILE.
(omp_clause_code_name): Likewise.
(walk_tree_1): Handle OMP_CLAUSE_TILE.
* tree.h (OMP_TILE_LIST): New macro.

gcc/c-family/
* c-omp.c (c_oacc_split_loop_clauses): Make TILE, GANG, WORKER, VECTOR,
AUTO, SEQ, INDEPENDENT and PRIVATE loop clauses.  Associate REDUCTION
clauses with parallel and kernels and loops.
* c-pragma.h (enum pragma_omp_clause): Add entries for
PRAGMA_OACC_CLAUSE_{INDEPENDENT,TILE,DEFAULT}.
* pt.c (tsubst_omp_clauses): Add support for OMP_CLAUSE_{NUM_GANGS,
NUM_WORKERS,VECTOR_LENGTH,GANG,WORKER,VECTOR,ASYNC,WAIT,TILE,AUTO,
INDEPENDENT,SEQ}.
(tsubst_expr): Add support for OMP_CLAUSE_{KERNELS,PARALLEL,LOOP}.

gcc/c/
* c-parser.c (c_parser_omp_clause_name): Add support for
PRAGMA_OACC_CLAUSE_INDEPENDENT and PRAGMA_OACC_CLAUSE_TILE.
(c_parser_omp_clause_default): Add is_oacc argument. Handle
default(none) in OpenACC.
(c_parser_oacc_shape_clause): Allow pointer variables as gang static
arguments.
(c_parser_oacc_clause_tile): New function.
(c_parser_oacc_all_clauses): Add support for OMP_CLAUSE_DEFAULT,
OMP_CLAUSE_INDEPENDENT and OMP_CLAUSE_TILE.
(OACC_LOOP_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_{PRIVATE,INDEPENDENT,
TILE}.
(OACC_KERNELS_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.
(OACC_PARALLEL_MASK): Add PRAGMA_OACC_CLAUSE_{DEFAULT,PRIVATE,
FIRSTPRIVATE}.
(c_parser_omp_all_clauses): Update call to c_parser_omp_clause_default.
(c_parser_oacc_update): Update the error message for missing clauses.
* c-typeck.c (c_finish_omp_clauses): Add support for OMP_CLAUSE_TILE
and OMP_CLAUSE_INDEPENDENT.

gcc/cp/
* parser.c (cp_parser_omp_clause_name): Add support for
PRAGMA_OACC_CLAUSE_INDEPENDENT and PRAGMA_OACC_CLAUSE_TILE.
(cp_parser_oacc_shape_clause): Allow pointer variables as gang static
arguments.
(cp_parser_oacc_clause_tile): New function.
(cp_parser_omp_clause_default): Add is_oacc argument. Handle
default(none) in OpenACC.
(cp_parser_oacc_all_clauses): Add support for
(cp_parser_omp_all_clauses): Update call to
cp_parser_omp_clause_default.
PRAGMA_OACC_CLAUSE_{DEFAULT,INDEPENDENT,TILE,PRIVATE,FIRSTPRIVATE}.
(OACC_LOOP_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_{PRIVATE,INDEPENDENT,
TILE}.
(OACC_KERNELS_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.
(OACC_PARALLEL_MASK): Add PRAGMA_OACC_CLAUSE_{DEFAULT,PRIVATE,
FIRSTPRIVATE}.
(cp_parser_oacc_update): Update the error message for missing clauses.
* semantics.c (finish_omp_clauses): Add support for
OMP_CLAUSE_INDEPENDENT and OMP_CLAUSE_TILE.

gcc/fortran/
* openmp.c (gfc_match_omp_clauses): Update support for the tile
and default clauses in OpenACC.
(gfc_match_oacc_update): Error when data clauses are supplied.
(oacc_compatible_clauses): Delete.
(resolve_omp_clauses): Give special care for OpenACC reductions.
Also update error reporting for the tile clause.
(resolve_oacc_loop_blocks): Update error reporting for the tile clause.
* trans-openmp.c (gfc_trans_omp_clauses): Update OMP_CLAUSE_SEQ. Add
OMP_CLAUSE_{AUTO,TILE} and add support the the gang static argument.
(gfc_trans_oacc_combined_directive): Update the list of clauses which
are split to acc loops.

gcc/testsuite/
* c-c++-common/goacc/combined-directives.c: New test.
* c-c++-common/goacc/loop-clauses.c: New test.
* c-c++-common/goacc/tile.c: New test.
* c-c++-common/goacc/loop-shape.c: Add test for pointer variable
as gang static arguments.
* c-c++-common/goacc/update-1.c: Adjust expected error message.
* g++.dg/goacc/template.C: New test.
* gfortran.dg/goacc/combined-directives.f90: New test.
* gfortran.dg/goacc/default.f95: New test.
* gfortran.dg/goacc/default_none.f95: New test.
* gfortran.dg/goacc/firstprivate-1.f95: New test.
* gfortran.dg/goacc/gang-static.f95: New test.
* gfortran.dg/goacc/kernels-loop-inner.f95: New test.
* gfortran.dg/goacc/kernels-loops-adjacent.f95: New test.
* gfortran.dg/goacc/list.f95: Update test.
* gfortran.dg/goacc/loop-2.f95: Likewise.
* gfortran.dg/goacc/loop-4.f95: New test.
* gfortran.dg/goacc/loop-5.f95: New test.
* gfortran.dg/goacc/loop-6.f95: New test.
* gfortran.dg/goacc/loop-tree-1.f90: Update test.
* gfortran.dg/goacc/multi-clause.f90: New test.
* gfortran.dg/goacc/parallel-tree.f95: Update test.
* gfortran.dg/goacc/update.f95: New test.

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

8 years agoPR c++/67942 - diagnose placement new buffer overflow
msebor [Fri, 6 Nov 2015 01:08:53 +0000 (01:08 +0000)]
PR c++/67942 - diagnose placement new buffer overflow

gcc/cp/
* cp/init.c (warn_placement_new_too_small): Avoid assuming
the size of the first operand of placement new or its type
is known.

gcc/testsuite/
* g++.dg/warn/Wplacement-new-size.C: Exercise placement new
invocations where the size of the destination buffer object
or its type (or both) is unknown.

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

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

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

8 years agoPR c++/67942 - diagnose placement new buffer overflow
msebor [Thu, 5 Nov 2015 21:42:10 +0000 (21:42 +0000)]
PR c++/67942 - diagnose placement new buffer overflow

gcc/
        * invoke.texi (-Wplacement-new): Document new option.
* gcc/testsuite/g++.dg/warn/Wplacement-new-size.C: New test.

gcc/c-family/
        * c.opt (-Wplacement-new): New option.

gcc/cp/
* cp/init.c (warn_placement_new_too_small): New function.
(build_new_1): Call it.

gcc/testsuite/
        * g++.dg/warn/Wplacement-new-size.C: New test.

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

8 years ago[PATCH] tree-scalar-evolution.c: Handle LSHIFT by constant
alalaw01 [Thu, 5 Nov 2015 18:39:38 +0000 (18:39 +0000)]
[PATCH] tree-scalar-evolution.c: Handle LSHIFT by constant

gcc/:

PR tree-optimization/65963
* tree-scalar-evolution.c (interpret_rhs_expr): Try to handle
LSHIFT_EXPRs as equivalent unsigned MULT_EXPRs.

gcc/testsuite/:

* gcc.dg/pr68112.c: New.
* gcc.dg/vect/vect-strided-shift-1.c: New.

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

8 years ago PR c/68090
mpolacek [Thu, 5 Nov 2015 18:21:30 +0000 (18:21 +0000)]
PR c/68090
* c-parser.c (c_parser_postfix_expression_after_paren_type): Don't
deal with pre-evaluation on invalid types.

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

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

8 years ago[Patch ifcvt] Teach RTL ifcvt to handle multiple simple set instructions
jgreenhalgh [Thu, 5 Nov 2015 18:11:12 +0000 (18:11 +0000)]
[Patch ifcvt] Teach RTL ifcvt to handle multiple simple set instructions

gcc/

* ifcvt.c (bb_ok_for_noce_convert_multiple_sets): New.
(noce_convert_multiple_sets): Likewise.
(noce_process_if_block): Call them.

gcc/testsuite/

* gcc.dg/ifcvt-4.c: New.

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

8 years ago/cp
paolo [Thu, 5 Nov 2015 16:47:40 +0000 (16:47 +0000)]
/cp
2015-11-05  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/67846
* parser.c (cp_parser_lambda_body): Check lambda_return_type
return value.
* typeck2.c (cxx_incomplete_type_diagnostic): Print member or
member function used invalidly.

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

PR c++/67846
* g++.dg/cpp0x/lambda/lambda-ice15.C: New.

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

8 years ago * gimple-fold.c: Include omp-low.h.
nathan [Thu, 5 Nov 2015 15:46:59 +0000 (15:46 +0000)]
* gimple-fold.c: Include omp-low.h.
(fold_internal_goacc_dim): New.
(gimple_fold_call): Call it.

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

8 years agogcc/
jakub [Thu, 5 Nov 2015 15:08:08 +0000 (15:08 +0000)]
gcc/
2015-11-05  Jakub Jelinek  <jakub@redhat.com>
    Ilya Verbin  <ilya.verbin@intel.com>

* builtin-types.def
(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
* cgraph.h (enum cgraph_simd_clone_arg_type): Add
SIMD_CLONE_ARG_TYPE_LINEAR_REF_VARIABLE_STEP,
SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP and
SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP.
(struct cgraph_simd_clone_arg): Adjust comment.
* omp-builtins.def (BUILT_IN_GOMP_TARGET): Rename GOMP_target_41
to GOMP_target_ext.  Add num_teams and thread_limit arguments.
(BUILT_IN_GOMP_TARGET_DATA): Rename GOMP_target_data_41
to GOMP_target_data_ext.
(BUILT_IN_GOMP_TARGET_UPDATE): Rename GOMP_target_update_41
to GOMP_target_update_ext.
(BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED): New built-ins.
* tree-core.h (enum omp_clause_schedule_kind): Add
OMP_CLAUSE_SCHEDULE_MASK, OMP_CLAUSE_SCHEDULE_MONOTONIC,
OMP_CLAUSE_SCHEDULE_NONMONOTONIC and change
OMP_CLAUSE_SCHEDULE_LAST value.
* tree.def (OMP_SIMD, CILK_SIMD, CILK_FOR, OMP_DISTRIBUTE,
OMP_TASKLOOP, OACC_LOOP): Add OMP_FOR_ORIG_DECLS argument.
* tree.h (OMP_FOR_ORIG_DECLS): Use OMP_LOOP_CHECK instead of
OMP_FOR_CHECK.  Remove comment.
* tree-pretty-print.c (dump_omp_clause): Handle
GOMP_MAP_FIRSTPRIVATE_REFERENCE and GOMP_MAP_ALWAYS_POINTER.
Simplify.  Print schedule clause modifiers.
* tree-vect-stmts.c (vectorizable_simd_clone_call): Add
SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_VARIABLE_STEP
cases.
* gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALWAYS_TO.
(omp_default_clause): Tweak for
private/firstprivate/is_device_ptr variables on target
construct and use_device_ptr on target data.
(omp_check_private): Likewise.
(omp_notice_variable): For references check whether what it refers
to has mappable type, rather than the reference itself.
(omp_is_private): Diagnose linear iteration variables on non-simd
constructs.
(omp_no_lastprivate): Return true only for Fortran.
(gimplify_scan_omp_clauses): Or in GOVD_MAP_ALWAYS_TO for
GOMP_MAP_ALWAYS_TO or GOMP_MAP_ALWAYS_TOFROM kinds.
Add support for GOMP_MAP_FIRSTPRIVATE_REFERENCE and
GOMP_MAP_ALWAYS_POINTER, remove old handling of structure element
based array sections.  Use GOMP_MAP_ALWAYS_P.  Fix up handling of
lastprivate and linear when combined with distribute.  Gimplify
variable low-bound for array reduction.  Look through
POINTER_PLUS_EXPR when looking for ADDR_EXPR for array section
reductions.
(gimplify_adjust_omp_clauses_1): For implicit references to
variables with reference type and when not ref to scalar or
ref to pointer, map what they refer to using tofrom and
use GOMP_MAP_FIRSTPRIVATE_REFERENCE for the reference.
(gimplify_adjust_omp_clauses): Remove GOMP_MAP_ALWAYS_POINTER
from target exit data.  Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE.
Drop OMP_CLAUSE_MAP_PRIVATE support.  Use GOMP_MAP_ALWAYS_P.
Diagnose the same var on both firstprivate and lastprivate on
distribute construct.
(gimplify_omp_for): Fix up handling of predetermined
lastprivate or linear iter vars when combined with distribute.
(find_omp_teams, computable_teams_clause, optimize_target_teams): New
functions.
(gimplify_omp_workshare): Call optimize_target_teams.
* omp-low.c (struct omp_region): Add sched_modifiers field.
(struct omp_for_data): Likewise.
(omp_any_child_fn_dumped): New variable.
(extract_omp_for_data): Fill in sched_modifiers, and mask out
OMP_CLAUSE_SCHEDULE_KIND bits outside of OMP_CLAUSE_SCHEDULE_MASK
from sched_kind.
(determine_parallel_type): Use only OMP_CLAUSE_SCHEDULE_MASK
bits of OMP_CLAUSE_SCHED_KIND.
(scan_sharing_clauses): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE,
drop OMP_CLAUSE_MAP_PRIVATE support.  Look through POINTER_PLUS_EXPR
for array section reductions.
(add_taskreg_looptemp_clauses): Add one extra _looptemp_ clause even
for distribute parallel for, if there are lastprivate clauses on the
for.
(lower_rec_input_clauses): Handle non-zero low-bound on array
section reductions.
(lower_reduction_clauses): Likewise.
(lower_send_clauses): Look through POINTER_PLUS_EXPR
for array section reductions.
(expand_parallel_call): Use nonmonotonic entrypoints for
nonmonotonic: dynamic/guided.
(expand_omp_taskreg): Call assign_assembler_name_if_neeeded on
child_fn if current_function_decl has assembler name set, but child_fn
does not.  Dump the header and IL of the child function when not in SSA
form.
(expand_omp_target): Likewise.  Pass num_teams and thread_limit
arguments to BUILT_IN_GOMP_TARGET.
(expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
Initialize the extra _looptemp_ clause to fd->loop.n2.
(expand_omp_for): Use nonmonotonic entrypoints for
nonmonotonic: dynamic/guided.  Initialize region->sched_modifiers.
(expand_omp): Clear omp_any_child_fn_dumped.  Dump function header
again if we have dumped any child functions.
(lower_omp_for_lastprivate): Determine the right count variable
for distribute simd, or distribute parallel for{, simd}.
(lower_omp_target): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE
and GOMP_MAP_ALWAYS_POINTER.  Drop OMP_CLAUSE_MAP_PRIVATE
support.
(simd_clone_clauses_extract): Handle variable step
for references and arguments passed by reference.
(simd_clone_mangle): Mangle ref/uval/val variable steps.
(simd_clone_adjust_argument_types): Handle
SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP like
SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP like
SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
(simd_clone_linear_addend): New function.
(simd_clone_adjust): Handle variable step like similarly
to constant step, use simd_clone_linear_addend to determine
the actual step at runtime.
gcc/c-family/
2015-11-05  Jakub Jelinek  <jakub@redhat.com>

* c-common.h (c_finish_omp_atomic): Add TEST argument.
(c_omp_check_loop_iv, c_omp_check_loop_iv_exprs): New prototypes.
* c-omp.c (c_finish_omp_atomic): Add TEST argument.  Don't call
save_expr or create_tmp_var* if TEST is true.
(c_finish_omp_for): Store OMP_FOR_ORIG_DECLS always.
Don't call add_stmt here.
(struct c_omp_check_loop_iv_data): New type.
(c_omp_check_loop_iv_r, c_omp_check_loop_iv,
c_omp_check_loop_iv_exprs): New functions.
(c_omp_split_clauses): Adjust for lastprivate being allowed on
distribute.
(c_omp_declare_simd_clauses_to_numbers): Change
OMP_CLAUSE_LINEAR_VARIABLE_STRIDE OMP_CLAUSE_LINEAR_STEP into numbers.
(c_omp_declare_simd_clauses_to_decls): Similarly change those
from numbers to PARM_DECLs.
gcc/c/
2015-11-05  Jakub Jelinek  <jakub@redhat.com>
    Ilya Verbin  <ilya.verbin@intel.com>

* c-parser.c: Include context.h and gimple-expr.h.
(c_parser_omp_clause_schedule): Parse schedule modifiers, diagnose
monotonic together with nonmonotonic.
(c_parser_omp_for_loop): Call c_omp_check_loop_iv.  Call add_stmt here.
(OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
(c_parser_omp_target_data, c_parser_omp_target_enter_data,
c_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER.
(c_parser_omp_target): Likewise.  Evaluate num_teams and thread_limit
expressions on combined target teams before the target.
(c_parser_omp_declare_target): If decl has "omp declare target" or
"omp declare target link" attribute, and cgraph or varpool node already
exists, then set corresponding flags.  Call c_finish_omp_clauses
in the parenthesized extended-list syntax case.
* c-decl.c (c_decl_attributes): Don't diagnose block scope vars inside
declare target.
* c-typeck.c (handle_omp_array_sections_1): Allow non-zero low-bound
on OMP_CLAUSE_REDUCTION array sections.
(handle_omp_array_sections): Encode low-bound into the MEM_REF, either
into the constant offset, or for variable low-bound using
POINTER_PLUS_EXPR.  For structure element based array sections use
GOMP_MAP_ALWAYS_POINTER instead of GOMP_MAP_FIRSTPRIVATE_POINTER.
(c_finish_omp_clauses): Drop generic_field_head, structure
elements are now always mapped even as array section bases,
diagnose same var in data sharing and mapping clauses.  Diagnose if
linear step on declare simd is neither a constant nor a uniform
parameter.  Look through POINTER_PLUS_EXPR for array section
reductions.  Diagnose the same var or function appearing multiple
times on the same directive.  Fix up wording for the to clause if t
is neither a FUNCTION_DECL nor a VAR_DECL.  Diagnose nonmonotonic
modifier on kinds other than dynamic or guided or nonmonotonic
modifier together with ordered clause.
gcc/cp/
2015-11-05  Jakub Jelinek  <jakub@redhat.com>
    Ilya Verbin  <ilya.verbin@intel.com>

* cp-tree.h (finish_omp_for): Add ORIG_INITS argument.
(omp_privatize_field): Add SHARED argument.
* parser.c: Include context.h.
(cp_parser_omp_clause_schedule): Parse schedule
modifiers, diagnose monotonic together with nonmonotonic.
(cp_parser_omp_clause_linear): Add DECLARE_SIMD argument.  Parse
parameter name as linear step as id-expression rather than expression.
(cp_parser_omp_all_clauses): Adjust caller.
(cp_parser_omp_for_loop_init): Add ORIG_INIT argument,
initialize it.  Adjust omp_privatize_field caller.
(cp_parser_omp_for_loop): Compute orig_inits, pass it's address
to finish_omp_for.
(OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
(cp_parser_omp_target_data,
cp_parser_omp_target_enter_data,
cp_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER
and GOMP_MAP_FIRSTPRIVATE_REFERENCE.
(cp_parser_omp_target): Likewise.  Evaluate num_teams and
thread_limit expressions on combined target teams before the target.
(cp_parser_omp_declare_target): If decl has "omp declare target" or
"omp declare target link" attribute, and cgraph or varpool node already
exists, then set corresponding flags.  Call finish_omp_clauses
in the parenthesized extended-list syntax case.  Call
cp_parser_require_pragma_eol instead of cp_parser_skip_to_pragma_eol.
(cp_parser_omp_end_declare_target): Call cp_parser_require_pragma_eol
instead of cp_parser_skip_to_pragma_eol.
* decl2.c (cplus_decl_attributes): Don't diagnose block scope vars inside
declare target.
* pt.c (tsubst_omp_clauses): If OMP_CLAUSE_LINEAR_VARIABLE_STRIDE,
use tsubst_omp_clause_decl instead of tsubst_expr on
OMP_CLAUSE_LINEAR_STEP.  Handle non-static data members in shared
clauses.
(tsubst_omp_for_iterator): Adjust omp_privatize_field caller.
(tsubst_find_omp_teams): New function.
(tsubst_expr): Evaluate num_teams and thread_limit expressions on
combined target teams before the target.  Use OMP_FOR_ORIG_DECLS for
all OpenMP/OpenACC/Cilk+ looping constructs.  Adjust finish_omp_for
caller.
* semantics.c (omp_privatize_field): Add SHARED argument, if true,
always create artificial var and never put it into the hash table
or vector.
(handle_omp_array_sections_1): Adjust omp_privatize_field caller.
Allow non-zero low-bound on OMP_CLAUSE_REDUCTION array sections.
(handle_omp_array_sections): For structure element
based array sections use GOMP_MAP_ALWAYS_POINTER instead of
GOMP_MAP_FIRSTPRIVATE_POINTER.  Encode low-bound into the MEM_REF,
either into the constant offset, or for variable low-bound using
POINTER_PLUS_EXPR.
(finish_omp_clauses): Adjust omp_privatize_field caller.  Drop
generic_field_head, structure elements are now always mapped even
as array section bases, diagnose same var in data sharing and
mapping clauses.  For references map what they refer to using
GOMP_MAP_ALWAYS_POINTER for structure elements and
GOMP_MAP_FIRSTPRIVATE_REFERENCE otherwise.  Diagnose if linear step
on declare simd is neither a constant nor a uniform parameter.
Allow non-static data members on shared clauses.  Look through
POINTER_PLUS_EXPR for array section reductions.  Diagnose nonmonotonic
modifier on kinds other than dynamic or guided or nonmonotonic
modifier together with ordered clause.  Diagnose the same var or
function appearing multiple times on the same directive.  Fix up
wording for the to clause if t is neither a FUNCTION_DECL nor a
VAR_DECL, use special wording for OVERLOADs and TEMPLATE_ID_EXPR.
(handle_omp_for_class_iterator): Add ORIG_DECLS argument.  Call
c_omp_check_loop_iv_exprs on cond.
(finish_omp_for): Add ORIG_INITS argument.  Call
c_omp_check_loop_iv_exprs on ORIG_INITS elements.  Adjust
handle_omp_for_class_iterator caller.  Call c_omp_check_loop_iv.
Call add_stmt.
(finish_omp_atomic): Adjust c_finish_omp_atomic caller.
gcc/fortran/
2015-11-05  Jakub Jelinek  <jakub@redhat.com>

* types.def (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
gcc/testsuite/
2015-11-05  Jakub Jelinek  <jakub@redhat.com>

* c-c++-common/gomp/clauses-2.c (foo): Adjust for diagnostics
of variables in both data sharing and mapping clauses and for
structure element based array sections being mapped rather than
privatized.
* c-c++-common/gomp/declare-target-2.c: Add various new tests.  Adjust
expected diagnostics wording in one case.
* c-c++-common/gomp/distribute-1.c: New test.
* c-c++-common/gomp/element-1.c: New test.
* c-c++-common/gomp/pr61486-2.c: Add #pragma omp declare target
and #pragma omp end declare target pair around the function.
Change s from a parameter to a file scope variable.
* c-c++-common/gomp/pr67521.c: Add dg-error directives.
* c-c++-common/gomp/reduction-1.c (foo): Don't expect diagnostics
on non-zero low-bound in reduction array sections.  Add further
tests.
* c-c++-common/gomp/schedule-modifiers-1.c: New test.
* c-c++-common/gomp/target-teams-1.c: New test.
* gcc.dg/gomp/declare-simd-1.c: Add scan-assembler-times directives
for expected mangling on x86_64/i?86.
* gcc.dg/gomp/declare-simd-3.c: New test.
* gcc.dg/gomp/declare-simd-4.c: New test.
* gcc.dg/gomp/for-20.c: New test.
* gcc.dg/gomp/for-21.c: New test.
* gcc.dg/gomp/for-22.c: New test.
* gcc.dg/gomp/for-23.c: New test.
* gcc.dg/gomp/for-24.c: New test.
* gcc.dg/gomp/linear-1.c: New test.
* gcc.dg/gomp/loop-1.c: New test.
* g++.dg/gomp/atomic-17.C: New test.
* g++.dg/gomp/clause-1.C (T::test): Don't expect error on
non-static data member in shared clause.  Add single construct.
* g++.dg/gomp/declare-simd-1.C: Add dg-options.  Add
scan-assembler-times directives for expected mangling on x86_64/i?86.
* g++.dg/gomp/declare-simd-3.C: Likewise.
* g++.dg/gomp/declare-simd-4.C: New test.
* g++.dg/gomp/declare-simd-5.C: New test.
* g++.dg/gomp/declare-target-1.C: New test.
* g++.dg/gomp/linear-2.C: New test.
* g++.dg/gomp/loop-1.C: New test.
* g++.dg/gomp/loop-2.C: New test.
* g++.dg/gomp/loop-3.C: New test.
* g++.dg/gomp/member-2.C (B::m2, B::m4): Don't expect error on
non-static data member in shared clause.
* g++.dg/gomp/member-3.C: New test.
* g++.dg/gomp/member-4.C: New test.
* g++.dg/gomp/pr38639.C (foo): Adjust dg-error.
(bar): Remove dg-message.
* g++.dg/gomp/target-teams-1.C: New test.
include/
2015-11-05  Jakub Jelinek  <jakub@redhat.com>
    Ilya Verbin  <ilya.verbin@intel.com>

* gomp-constants.h (GOMP_MAP_FLAG_SPECIAL_2): Define.
(GOMP_MAP_FLAG_ALWAYS): Remove.
(enum gomp_map_kind): Use GOMP_MAP_FLAG_SPECIAL_2 instead of
GOMP_MAP_FLAG_ALWAYS for GOMP_MAP_ALWAYS_TO, GOMP_MAP_ALWAYS_FROM,
GOMP_MAP_ALWAYS_TOFROM, GOMP_MAP_STRUCT, GOMP_MAP_RELEASE.
Add GOMP_MAP_ALWAYS_POINTER and GOMP_MAP_FIRSTPRIVATE_REFERENCE.
(GOMP_MAP_ALWAYS_P): Define.
(GOMP_TARGET_FLAG_NOWAIT): Adjust comment.
libgomp/
2015-11-05  Jakub Jelinek  <jakub@redhat.com>
    Ilya Verbin  <ilya.verbin@intel.com>

* libgomp_g.h (GOMP_loop_nonmonotonic_dynamic_next,
GOMP_loop_nonmonotonic_dynamic_start,
GOMP_loop_nonmonotonic_guided_next,
GOMP_loop_nonmonotonic_guided_start,
GOMP_loop_ull_nonmonotonic_dynamic_next,
GOMP_loop_ull_nonmonotonic_dynamic_start,
GOMP_loop_ull_nonmonotonic_guided_next,
GOMP_loop_ull_nonmonotonic_guided_start,
GOMP_parallel_loop_nonmonotonic_dynamic,
GOMP_parallel_loop_nonmonotonic_guided): New prototypes.
(GOMP_target_41): Renamed to ...
(GOMP_target_ext): ... this.  Add num_teams and thread_limit
arguments.
(GOMP_target_data_41): Renamed to ...
(GOMP_target_data_ext): ... this.
(GOMP_target_update_41): Renamed to ...
(GOMP_target_update_ext): ... this.
* libgomp.map (GOMP_4.5): Export GOMP_target_ext,
GOMP_target_data_ext and GOMP_target_update_ext instead of
GOMP_target_41, GOMP_target_data_41 and GOMP_target_update_41.
Export GOMP_loop_nonmonotonic_dynamic_next,
GOMP_loop_nonmonotonic_dynamic_start,
GOMP_loop_nonmonotonic_guided_next,
GOMP_loop_nonmonotonic_guided_start,
GOMP_loop_ull_nonmonotonic_dynamic_next,
GOMP_loop_ull_nonmonotonic_dynamic_start,
GOMP_loop_ull_nonmonotonic_guided_next,
GOMP_loop_ull_nonmonotonic_guided_start,
GOMP_parallel_loop_nonmonotonic_dynamic and
GOMP_parallel_loop_nonmonotonic_guided.
* loop.c (GOMP_parallel_loop_nonmonotonic_dynamic,
GOMP_parallel_loop_nonmonotonic_guided,
GOMP_loop_nonmonotonic_dynamic_start,
GOMP_loop_nonmonotonic_guided_start,
GOMP_loop_nonmonotonic_dynamic_next,
GOMP_loop_nonmonotonic_guided_next): New aliases or functions.
* loop_ull.c (GOMP_loop_ull_nonmonotonic_dynamic_start,
GOMP_loop_ull_nonmonotonic_guided_start,
GOMP_loop_ull_nonmonotonic_dynamic_next,
GOMP_loop_ull_nonmonotonic_guided_next): Likewise.
* target.c (gomp_map_0len_lookup, gomp_map_val): New inline
functions.
(gomp_map_vars): Handle GOMP_MAP_ALWAYS_POINTER.  For
GOMP_MAP_ZERO_LEN_ARRAY_SECTION use gomp_map_0len_lookup.
Use gomp_map_val function.
(gomp_target_fallback_firstprivate): New static function.
(GOMP_target_41): Renamed to ...
(GOMP_target_ext): ... this.  Add num_teams and thread_limit
arguments.  Move firstprivate fallback handling into a new
function.
(GOMP_target_data_41): Renamed to ...
(GOMP_target_data_ext): ... this.
(GOMP_target_update_41): Renamed to ...
(GOMP_target_update_ext): ... this.
(gomp_exit_data): For GOMP_MAP_*ZERO_LEN* use
gomp_map_0len_lookup instead of gomp_map_lookup.
(omp_target_is_present): Use gomp_map_0len_lookup instead of
gomp_map_lookup.
* testsuite/libgomp.c/target-28.c: Likewise.
* testsuite/libgomp.c/monotonic-1.c: New test.
* testsuite/libgomp.c/monotonic-2.c: New test.
* testsuite/libgomp.c/nonmonotonic-1.c: New test.
* testsuite/libgomp.c/nonmonotonic-2.c: New test.
* testsuite/libgomp.c/pr66199-5.c: New test.
* testsuite/libgomp.c/pr66199-6.c: New test.
* testsuite/libgomp.c/pr66199-7.c: New test.
* testsuite/libgomp.c/pr66199-8.c: New test.
* testsuite/libgomp.c/pr66199-9.c: New test.
* testsuite/libgomp.c/reduction-11.c: New test.
* testsuite/libgomp.c/reduction-12.c: New test.
* testsuite/libgomp.c/reduction-13.c: New test.
* testsuite/libgomp.c/reduction-14.c: New test.
* testsuite/libgomp.c/reduction-15.c: New test.
* testsuite/libgomp.c/target-12.c (main): Adjust for
omp_target_is_present change for one-past-last element.
* testsuite/libgomp.c/target-17.c (foo): Drop tests where
the same var is both mapped and privatized.
* testsuite/libgomp.c/target-19.c (foo): Adjust for different
handling of zero-length array sections.
* testsuite/libgomp.c/target-28.c: New test.
* testsuite/libgomp.c/target-29.c: New test.
* testsuite/libgomp.c/target-30.c: New test.
* testsuite/libgomp.c/target-teams-1.c: New test.
* testsuite/libgomp.c++/member-6.C: New test.
* testsuite/libgomp.c++/member-7.C: New test.
* testsuite/libgomp.c++/monotonic-1.C: New test.
* testsuite/libgomp.c++/monotonic-2.C: New test.
* testsuite/libgomp.c++/nonmonotonic-1.C: New test.
* testsuite/libgomp.c++/nonmonotonic-2.C: New test.
* testsuite/libgomp.c++/pr66199-3.C: New test.
* testsuite/libgomp.c++/pr66199-4.C: New test.
* testsuite/libgomp.c++/pr66199-5.C: New test.
* testsuite/libgomp.c++/pr66199-6.C: New test.
* testsuite/libgomp.c++/pr66199-7.C: New test.
* testsuite/libgomp.c++/pr66199-8.C: New test.
* testsuite/libgomp.c++/pr66199-9.C: New test.
* testsuite/libgomp.c++/reduction-11.C: New test.
* testsuite/libgomp.c++/reduction-12.C: New test.
* testsuite/libgomp.c++/target-13.C: New test.
* testsuite/libgomp.c++/target-14.C: New test.
* testsuite/libgomp.c++/target-15.C: New test.
* testsuite/libgomp.c++/target-16.C: New test.
* testsuite/libgomp.c++/target-17.C: New test.
* testsuite/libgomp.c++/target-18.C: New test.
* testsuite/libgomp.c++/target-19.C: New test.

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

8 years ago * target.def (goacc.dim_limit): New hook.
nathan [Thu, 5 Nov 2015 13:50:13 +0000 (13:50 +0000)]
* target.def (goacc.dim_limit): New hook.
* targhooks.h (default_goacc_dim_limit): Declare.
* doc/tm.texi.in (TARGET_GOACC_DIM_LIMIT): Add.
* doc/tm.texi: Rebuilt.
* omp-low.h (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): Declare.
* omp-low.c (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): New.
(default_goacc_dim_limit): New.
* config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
(nvptx_goacc_dim_limit) New.
(TARGET_GOACC_DIM_LIMIT): Override.
* tree-vrp.c: Include omp-low.h, target.h.
(extract_range_basic): Add handling for IFN_GOACC_DIM_SIZE &
IFN_GOACC_DIM_POS.

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

8 years agogcc/
ienkovich [Thu, 5 Nov 2015 12:21:33 +0000 (12:21 +0000)]
gcc/

* tree-vect-generic.c (do_compare): Use -1 for true
result instead of 1.

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

8 years ago[Patch AArch64] Switch constant pools to separate rodata sections.
ramana [Thu, 5 Nov 2015 09:48:53 +0000 (09:48 +0000)]
[Patch AArch64] Switch constant pools to separate rodata sections.

        Now that PR63304 is fixed and we have an option to address
any part of the memory using adrp / add or adrp / ldr instructions
it makes sense to switch out literal pools into their own
mergeable sections by default.

This would mean that by default we could now start getting
the benefits of constant sharing across the board, potentially
improving code size. The other advantage of doing so, for the
security conscious is that this prevents intermingling of literal
pools with code.

Wilco's kindly done some performance measurements and suggests that
there is not really a performance regression in doing this.
I've looked at the code size for SPEC2k6 today at -Ofast and
in general there is a good code size improvement as expected
by sharing said constants.

Tested on aarch64-none-elf with no regressions and bootstrapped
and regression tested in my tree for a number of days now.

2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        * config/aarch64/aarch64.c
        (aarch64_can_use_per_function_literal_pools_p): New.
        (aarch64_use_blocks_for_constant_p): Adjust declaration
        and use aarch64_can_use_function_literal_pools_p.
        (aarch64_select_rtx_section): Update.

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

8 years agogcc/
ienkovich [Thu, 5 Nov 2015 09:46:10 +0000 (09:46 +0000)]
gcc/

2015-10-29  Ilya Enkovich  <enkovich.gnu@gmail.com>

* targhooks.c (default_get_mask_mode): Use BLKmode in
case target doesn't support required vector mode.
* stor-layout.c (layout_type); Check for BLKmode.

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

8 years ago2015-11-05 Richard Biener <rguenther@suse.de>
rguenth [Thu, 5 Nov 2015 08:43:46 +0000 (08:43 +0000)]
2015-11-05  Richard Biener  <rguenther@suse.de>

* gcc.dg/tree-ssa/loadpre2.c: Avoid undefined behavior due to
uninitialized variables.
* gcc.dg/tree-ssa/loadpre21.c: Likewise.
* gcc.dg/tree-ssa/loadpre22.c: Likewise.
* gcc.dg/tree-ssa/loadpre23.c: Likewise.
* gcc.dg/tree-ssa/loadpre24.c: Likewise.
* gcc.dg/tree-ssa/loadpre25.c: Likewise.
* gcc.dg/tree-ssa/loadpre4.c: Likewise.
* gcc.dg/ipa/inlinehint-2.c: Likewise.
* gcc.dg/ipa/pure-const-2.c: Likewise.
* gcc.dg/tree-ssa/loop-1.c: Likewise.
* gcc.dg/tree-ssa/loop-23.c: Likewise.
* gcc.dg/tree-ssa/pr22051-2.c: Likewise.
* gcc.dg/tree-ssa/ssa-pre-3.c: Likewise.
* gcc.dg/tree-ssa/ssa-sccvn-3.c: Likewise.
* gcc.dg/vect/pr30858.c: Likewise.
* gcc.dg/vect/pr33866.c: Likewise.
* gcc.dg/vect/pr37027.c: Likewise.
* c-c++-common/ubsan/null-10.c: Likewise.
* gcc.target/i386/incoming-8.c: Likewise.

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

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

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

8 years ago gcc/cp/
cesar [Wed, 4 Nov 2015 22:09:53 +0000 (22:09 +0000)]
gcc/cp/
* (cp_parser_oacc_single_int_clause): New function.
(cp_parser_oacc_clause_vector_length): Delete.
(cp_parser_omp_clause_num_gangs): Delete.
(cp_parser_omp_clause_num_workers): Delete.
(cp_parser_oacc_all_clauses): Use cp_parser_oacc_single_int_clause
for num_gangs, num_workers and vector_length.

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

8 years agoremove parameter_rename_map
spop [Wed, 4 Nov 2015 20:59:18 +0000 (20:59 +0000)]
remove parameter_rename_map

This map was used in the transition to the new scop detection: with the new scop
detection, we do not need this map anymore.

       * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
       Remove use of parameter_rename_map.
       (copy_def): Remove.
       (copy_internal_parameters): Remove.
       (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
       * sese.c (new_sese_info): Do not initialize parameter_rename_map.
       (free_sese_info): Do not free parameter_rename_map.
       (set_rename): Do not use parameter_rename_map.
       (rename_uses): Update call to set_rename.
       (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
       * sese.h (parameter_rename_map_t): Remove.
       (struct sese_info_t): Remove field parameter_rename_map.

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

8 years agoimprove debug of codegen
spop [Wed, 4 Nov 2015 20:59:12 +0000 (20:59 +0000)]
improve debug of codegen

- fix printing of ISL stmt and parameter names
- move dot_scop* functions outside of anonymous namespace.

  * graphite-isl-ast-to-gimple.c: Include tree-cfg.h.
  (translate_isl_ast_node_user): Add more dumps: call print_loops_bb.
  * graphite-scop-detection.c (dot_all_scops_1): Moved out of
  anonymous namespace.
  * graphite-sese-to-poly.c (ssa_name_version_typesize): Remove.
  (isl_id_for_pbb): Use a buffer of size 10.
  (isl_id_for_ssa_name): Same.
  * sese.c (set_rename): Add more dumps.

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

8 years ago * omp-low.c (struct omp_context): Remove reduction_map field.
nathan [Wed, 4 Nov 2015 20:54:24 +0000 (20:54 +0000)]
* omp-low.c (struct omp_context): Remove reduction_map field.
(lookup_oacc_reduction, maybe_lookup_oacc_reduction): Delete.
(new_omp_context, delete_omp_context, scan_omp_target): Remove
reduction_map handling.
(lower_omp_target): Remove obsolete openacc reduction handling.

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

8 years ago gcc/
nathan [Wed, 4 Nov 2015 20:48:05 +0000 (20:48 +0000)]
gcc/
* config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add checking.

libgomp/
* testsuite/libgomp.oacc-fortran/reduction-1.f90: Fix dimensions
and reduction copy.
* testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
* testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: New.

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

8 years ago * gnat.dg/slice9.adb: New test.
ebotcazou [Wed, 4 Nov 2015 20:32:54 +0000 (20:32 +0000)]
* gnat.dg/slice9.adb: New test.

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

8 years ago * libgomp.oacc-c-c++-common/loop-red-g-1.c: New.
nathan [Wed, 4 Nov 2015 17:01:23 +0000 (17:01 +0000)]
* libgomp.oacc-c-c++-common/loop-red-g-1.c: New.
* libgomp.oacc-c-c++-common/loop-red-gwv-1.c: New.
* libgomp.oacc-c-c++-common/loop-red-v-1.c: New.
* libgomp.oacc-c-c++-common/loop-red-v-2.c: New.
* libgomp.oacc-c-c++-common/loop-red-w-1.c: New.
* libgomp.oacc-c-c++-common/loop-red-w-2.c: New.
* libgomp.oacc-c-c++-common/loop-red-wv-1.c: New.
* libgomp.oacc-fortran/reduction-5.f90: Avoid reference var.

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

8 years ago * gfortran.dg/goacc/reduction-2.f95: Delete.
nathan [Wed, 4 Nov 2015 17:00:27 +0000 (17:00 +0000)]
* gfortran.dg/goacc/reduction-2.f95: Delete.

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

8 years ago * config/nvptx/nvptx.c: Include gimple headers.
nathan [Wed, 4 Nov 2015 16:58:52 +0000 (16:58 +0000)]
* config/nvptx/nvptx.c: Include gimple headers.
(worker_red_size, worker_red_align, worker_red_name,
worker_red_sym): New.
(nvptx_option_override): Initialize worker reduction buffer.
(nvptx_file_end): Write out worker reduction buffer var.
(nvptx_expand_shuffle, nvptx_expand_worker_addr,
nvptx_expand_cmp_swap): New builtin expanders.
(enum nvptx_builtins): New.
(nvptx_builtin_decls): New.
(nvptx_builtin_decl, nvptx_init_builtins, nvptx_expand_builtin): New
(PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
(nvptx_get_worker_red_addr, nvptx_generate_vector_shuffle,
nvptx_lockless_update): New helpers.
(nvptx_goacc_reduction_setup, nvptx_goacc_reduction_init,
nvptx_goacc_reduction_fini, nvptx_goacc_reduction_teaddown): New.
(nvptx_goacc_reduction): New.
(TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN,
TARGET_BUILTIN_DECL): Override.
(TARGET_GOACC_REDUCTION): Override.

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

8 years ago * internal-fn.def (GOACC_REDUCTION): New.
nathan [Wed, 4 Nov 2015 16:57:36 +0000 (16:57 +0000)]
* internal-fn.def (GOACC_REDUCTION): New.
* internal-fn.h (enum ifn_goacc_reduction_kind): New.
* internal-fn.c (expand_GOACC_REDUCTION): New.
* target.def (goacc.reduction): New OpenACC hook.
* targhooks.h (default_goacc_reduction): Declare.
* doc/tm.texi.in: Add TARGET_GOACC_REDUCTION.
* doc/tm.texi: Rebuilt.
* omp-low.c (oacc_get_reduction_array_id, oacc_max_threads,
scan_sharing_clauses): Remove oacc reduction handling here.
(lower_rec_input_clauses): Don't handle OpenACC reductions here.
(oacc_lower_reduction_var_helper): Delete.
(lower_oacc_reductions): New.
(lower_reduction_clauses): Don't handle OpenACC reductions here.
(lower_oacc_head_tail): Call lower_oacc_reductions.
(oacc_gimple_assign, oacc_init_reduction_array,
oacc_initialize_reduction_data, oacc_finalize_reduction_data,
oacc_process_reduction_data): Delete.
(lower_omp_target): Remove old OpenACC reduction handling.  Insert
dummy OpenACC gang reduction for reductions at outer level.
(oacc_loop_xform_head_tail): Transform IFN_GOACC_REDUCTION.
(default_goacc_reduction): New.
(execute_oacc_device_lower): Handle IFN_GOACC_REDUCTION.

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

8 years agoPass manager: add support for termination of pass list
marxin [Wed, 4 Nov 2015 16:50:45 +0000 (16:50 +0000)]
Pass manager: add support for termination of pass list

* cgraphunit.c (cgraph_node::expand_thunk): Call
allocate_struct_function before init_function_start.
(cgraph_node::expand): Use push_cfun and pop_cfun.
* config/i386/i386.c (ix86_code_end): Call
allocate_struct_function before init_function_start.
* config/rs6000/rs6000.c (rs6000_code_end): Likewise.
* function.c (init_function_start): Move preamble to all
callers.
* passes.c (do_per_function_toporder): Use push_cfun and pop_cfun.
(execute_one_pass): Handle newly added TODO_discard_function.
(execute_pass_list_1): Terminate if cfun equals to NULL.
(execute_pass_list): Do not push and pop cfun, expect that
cfun is set.
* tree-pass.h (TODO_discard_function): Define.

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

8 years agoENABLE_CHECKING refactoring: remove remaining occurrences
miyuki [Wed, 4 Nov 2015 15:01:46 +0000 (15:01 +0000)]
ENABLE_CHECKING refactoring: remove remaining occurrences

libcpp/

* config.in: Regenerate.
* configure: Regenerate.
* configure.ac: Remove ENABLE_CHECKING.

gcc/

* cfganal.c (inverted_post_order_compute): Remove conditional
compilation, use flag_checking.
* config.in: Regenerate.
* configure: Regenerate.
* configure.ac: Remove ENABLE_CHECKING.
* genconditions.c: Do not #undef ENABLE_CHECKING.
* sese.h (bb_in_region): Comment out broken check.
* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa_1): Remove
conditional compilation, use flag_checking.

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

8 years agoENABLE_CHECKING refactoring: C family front ends
miyuki [Wed, 4 Nov 2015 14:32:42 +0000 (14:32 +0000)]
ENABLE_CHECKING refactoring: C family front ends

gcc/c-family/

* c-omp.c (c_omp_split_clauses): Remove conditional compilation. Use
flag_checking.

gcc/cp/

* call.c (validate_conversion_obstack): Define unconditionally.
* constexpr.c (maybe_constant_value, fold_non_dependent_expr): Use
gcc_checking_assert.
* cp-tree.h: Use CHECKING_P instead of ENABLE_CHECKING.
* decl2.c (cxx_post_compilation_parsing_cleanups): Use flag_checking.
* mangle.c (add_substitution): Likewise.
* method.c (maybe_explain_implicit_delete): Likewise.
* parser.c (cp_parser_template_argument_list): Remove conditional
compilation.
* pt.c (check_unstripped_args): Rename to...
(verify_unstripped_args): ... this and remove conditional compilation.
(retrieve_specialization): Guard call of verify_unstripped_args with
flag_checking.
(template_parm_to_arg): Remove conditional compilation.
(template_parms_to_args, coerce_template_parameter_pack,
coerce_template_parms): Likewise.
(tsubst_copy): Use flag_checking.
(type_unification_real): Remove conditional compilation.
(build_non_dependent_expr): Use flag_checking.
* tree.c (build_target_expr): Remove conditional compilation, use
gcc_checking_assert.
* typeck.c (comptypes): Likewise.
* typeck2.c (digest_init_r): Likewise.

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

8 years agoHandle recursive restrict in function parameter
vries [Wed, 4 Nov 2015 14:18:43 +0000 (14:18 +0000)]
Handle recursive restrict in function parameter

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

PR tree-optimization/67742
* tree-ssa-structalias.c (struct fieldoff): Add restrict_pointed_type
field.
(push_fields_onto_fieldstack): Handle restrict_pointed_type field.
(create_variable_info_for_1): Add and handle handle_param parameter.
Add restrict handling.
(create_variable_info_for): Call create_variable_info_for_1 with extra
arg.
(make_param_constraints): Drop restrict_name parameter.  Ignore
vi->only_restrict_pointers.
(intra_create_variable_infos): Call create_variable_info_for_1 with
extra arg.  Remove restrict handling.  Call make_param_constraints with
one less arg.

* gcc.dg/tree-ssa/restrict-7.c: New test.
* gcc.dg/tree-ssa/restrict-8.c: New test.

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

8 years agoUse decl_type in create_variable_info_for_1
vries [Wed, 4 Nov 2015 14:18:34 +0000 (14:18 +0000)]
Use decl_type in create_variable_info_for_1

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

* tree-ssa-structalias.c (create_variable_info_for_1): Use decl_type
variable.

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

8 years ago * gnat.dg/slice9.adb: New test.
ebotcazou [Wed, 4 Nov 2015 08:50:46 +0000 (08:50 +0000)]
* gnat.dg/slice9.adb: New test.

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

8 years ago gotest: fix handling of --goarch option
ian [Wed, 4 Nov 2015 01:52:40 +0000 (01:52 +0000)]
gotest: fix handling of --goarch option

    I managed to add a new --goarch option to gotest without noticing that
    the script already had one.  Worse, they set different variables.
    Remove the old option in favor of the new one.

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

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

8 years agoDaily bump.
gccadmin [Wed, 4 Nov 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.

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

8 years agoremove usage of ROUND_TYPE_SIZE from encoding.c
tbsaunde [Tue, 3 Nov 2015 22:43:22 +0000 (22:43 +0000)]
remove usage of ROUND_TYPE_SIZE from encoding.c

gcc got rid of this target macro in 2003, so it seems safe to assume the
alternate path works fine on all targets.

libobjc/ChangeLog:

2015-11-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

PR libobjc/24775
* encoding.c (objc_layout_finish_structure): Remove usage of
ROUND_TYPE_SIZE.

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

8 years agoremove unused config/arm/coff.h
tbsaunde [Tue, 3 Nov 2015 22:43:17 +0000 (22:43 +0000)]
remove unused config/arm/coff.h

gcc/ChangeLog:

2015-11-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* config/arm/coff.h: Remove.

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

8 years ago Handle auto parameter packs.
jason [Tue, 3 Nov 2015 20:51:41 +0000 (20:51 +0000)]
Handle auto parameter packs.

* pt.c (struct find_parameter_pack_data): Add
type_pack_expansion_p field.
(find_parameter_packs_r): Use it to turn 'auto' into a parameter pack.
(uses_parameter_packs, make_pack_expansion)
(check_for_bare_parameter_packs, fixed_parameter_pack_p): Set it.

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

8 years ago * libgomp.h (struct acc_dispatch_t): Remove args from exec_func.
nathan [Tue, 3 Nov 2015 20:18:33 +0000 (20:18 +0000)]
* libgomp.h (struct acc_dispatch_t): Remove args from exec_func.
* plugin/plugin-nvptx.c (nvptx_exec): Remove sizes & kinds arg.
(GOMP_OFFLOAD_openacc_parallel): Likewise.
* oacc-host.c (host_openacc_exec): Likewise.
* oacc-parallel.c (GOACC_parallel_keyed): Adjust exec_func call.

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

8 years ago * lex.c (search_line_sse42): Correctly advance the pointer to an
uros [Tue, 3 Nov 2015 19:05:50 +0000 (19:05 +0000)]
* lex.c (search_line_sse42): Correctly advance the pointer to an
aligned address.

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

8 years agoPR c++-common/67882
msebor [Tue, 3 Nov 2015 18:53:19 +0000 (18:53 +0000)]
PR c++-common/67882

* c-family/c-common.h (fold_offsetof_1): Add argument.
* c-family/c-common.c (fold_offsetof_1): Diagnose more invalid
offsetof expressions that reference elements past the end of
an array.

        * c-c++-common/builtin-offsetof-2.c: New test.

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

8 years ago2015-11-03 Dominique d'Humieres <dominiq@lps.ens.fr>
dominiq [Tue, 3 Nov 2015 18:03:38 +0000 (18:03 +0000)]
2015-11-03  Dominique d'Humieres <dominiq@lps.ens.fr>

PR fortran/67982
* gfortran.dg/warn_unused_function_3.f90: New test.

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

8 years agoRemove superfluous gcc/ prefixes
ebotcazou [Tue, 3 Nov 2015 17:25:24 +0000 (17:25 +0000)]
Remove superfluous gcc/ prefixes

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

8 years ago * gimple-expr.c (useless_type_conversion_p): Reinstate type canonical
ebotcazou [Tue, 3 Nov 2015 17:19:30 +0000 (17:19 +0000)]
* gimple-expr.c (useless_type_conversion_p): Reinstate type canonical
check for aggregate types and beef up comment for mode check.

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

8 years ago * libsupc++/new: Declare sized deletes.
jason [Tue, 3 Nov 2015 16:43:54 +0000 (16:43 +0000)]
* libsupc++/new: Declare sized deletes.

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

8 years ago2015-11-03 Richard Biener <rguenther@suse.de>
rguenth [Tue, 3 Nov 2015 15:59:17 +0000 (15:59 +0000)]
2015-11-03  Richard Biener  <rguenther@suse.de>

* tree-vect-data-refs.c (vect_analyze_data_refs): Do not collect
data references here.
* tree-vect-loop.c: Include cgraph.h.
(vect_analyze_loop_2): Collect data references here.
* tree-vect-slp.c (find_bb_location): Inline ...
(vect_slp_bb): ... here.  Renamed from vect_slp_analyze_bb.
Factor in vect_slp_transform_bb.
(vect_slp_transform_bb): Removed.
(vect_slp_analyze_bb_1): Collect data references here.
* tree-vectorizer.c (pass_slp_vectorize::execute): Call
vect_slp_bb.
* tree-vectorizer.h (vect_slp_bb): Declare.
(vect_slp_analyze_bb): Remove.
(vect_slp_transform_bb): Remove.
(find_bb_location): Remove.
(vect_analyze_data_refs): Remove stmt count reference parameter.

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

8 years ago mksysinfo.sh: Make sure that CLONE_NEWUSER is defined.
ian [Tue, 3 Nov 2015 15:07:47 +0000 (15:07 +0000)]
mksysinfo.sh: Make sure that CLONE_NEWUSER is defined.

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

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

8 years ago2015-11-03 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Tue, 3 Nov 2015 13:41:23 +0000 (13:41 +0000)]
2015-11-03  Paolo Carlini  <paolo.carlini@oracle.com>

* Wrap ChangeLog entries to 80 columns.

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

8 years ago2015-11-03 Evgeny Stupachenko <evstupac@gmail.com>
iverbin [Tue, 3 Nov 2015 12:02:53 +0000 (12:02 +0000)]
2015-11-03  Evgeny Stupachenko  <evstupac@gmail.com>

gcc/
* multiple_target.c (create_dispatcher_calls): Add target check
on ifunc.
(create_target_clone): Change assembler name for versioned declarations.
gcc/testsuite/
* g++.dg/ext/mvc4.C: Add dg-require-ifunc condition.
* gcc.target/i386/mvc5.c: Ditto.
* gcc.target/i386/mvc7.c: Add dg-require-ifunc condition and checks on
resolver.

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

8 years agoOpenACC atomic directive
tschwinge [Tue, 3 Nov 2015 11:28:22 +0000 (11:28 +0000)]
OpenACC atomic directive

gcc/c-family/
* c-pragma.c (oacc_pragmas): Add "atomic".
* c-pragma.h (pragma_kind): Add PRAGMA_OACC_ATOMIC.
gcc/c/
* c-parser.c (c_parser_omp_construct): Handle PRAGMA_OACC_ATOMIC.
gcc/cp/
* parser.c (cp_parser_omp_construct, cp_parser_pragma): Handle
PRAGMA_OACC_ATOMIC.
gcc/fortran/
* gfortran.h (gfc_statement): Add ST_OACC_ATOMIC,
ST_OACC_END_ATOMIC.
(gfc_exec_op): Add EXEC_OACC_ATOMIC.
* match.h (gfc_match_oacc_atomic): New prototype.
* openmp.c (gfc_match_omp_atomic, gfc_match_oacc_atomic): New
wrapper functions around...
(gfc_match_omp_oacc_atomic): ... this new function.
(oacc_code_to_statement, gfc_resolve_oacc_directive): Handle
EXEC_OACC_ATOMIC.
* parse.c (decode_oacc_directive): Handle "atomic", "end atomic".
(case_exec_markers): Add ST_OACC_ATOMIC.
(gfc_ascii_statement): Handle ST_OACC_ATOMIC, ST_OACC_END_ATOMIC.
(parse_omp_atomic): Rename to...
(parse_omp_oacc_atomic): ... this new function.  Add omp_p formal
parameter.  Adjust all users.
(parse_executable): Handle ST_OACC_ATOMIC.
(is_oacc): Handle EXEC_OACC_ATOMIC.
* resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle
EXEC_OACC_ATOMIC.
* st.c (gfc_free_statement): Handle EXEC_OACC_ATOMIC.
* trans-openmp.c (gfc_trans_oacc_directive): Handle
EXEC_OACC_ATOMIC.
* trans.c (trans_code): Handle EXEC_OACC_ATOMIC.
gcc/
* builtins.def (DEF_GOMP_BUILTIN): Enable for flag_openacc.
* omp-low.c (check_omp_nesting_restrictions): Allow
GIMPLE_OMP_ATOMIC_LOAD, GIMPLE_OMP_ATOMIC_STORE inside OpenACC
contexts.
gcc/testsuite/
* c-c++-common/goacc-gomp/nesting-fail-1.c: Move "atomic" tests
from here to...
* c-c++-common/goacc-gomp/nesting-1.c: ... here, and expect them
to succeed.
libgomp/
* testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c: New
file.
* testsuite/libgomp.oacc-c-c++-common/atomic_capture-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/atomic_rw-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/atomic_update-1.c: Likewise.
* testsuite/libgomp.oacc-fortran/atomic_capture-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/atomic_rw-1.f90: New file.
* testsuite/libgomp.oacc-fortran/atomic_update-1.f90: Likewise.
* testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: New file.
* testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/worker-single-1a.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/worker-single-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/worker-single-6.c: Likewise.

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

8 years ago[AARCH64][PATCH 1/3] Implementing the variants of the vmulx_ NEON intrinsic
jgreenhalgh [Tue, 3 Nov 2015 10:58:27 +0000 (10:58 +0000)]
[AARCH64][PATCH 1/3] Implementing the variants of the vmulx_ NEON intrinsic

gcc/

* config/aarch64/aarch64-simd-builtins.def (fmulx): New.
* config/aarch64/aarch64-simd.md (aarch64_fmulx<mode>): New.
* config/aarch64/arm_neon.h (vmulx_f32): Rewrite to call fmulx
builtin.
(vmulxq_f32): Likewise.
(vmulx_f64): New.
(vmulxq_f64): Rewrite to call fmulx builtin.
(vmulxs_f32): Likewise.
(vmulxd_f64): Likewise.
(vmulx_lane_f32): Remove.
* config/aarch64/iterators.md (UNSPEC): Add fmulx.

gcc/testsuite/

* gcc/testsuite/gcc.target/aarch64/simd/vmulx_f32_1.c: New.
* gcc/testsuite/gcc.target/aarch64/simd/vmulx_f64_1.c: New.
* gcc/testsuite/gcc.target/aarch64/simd/vmulxq_f32_1.c: New.
* gcc/testsuite/gcc.target/aarch64/simd/vmulxq_f64_1.c: New.
* gcc/testsuite/gcc.target/aarch64/simd/vmulxs_f32_1.c: New.
* gcc/testsuite/gcc.target/aarch64/simd/vmulxd_f64_1.c: New.

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

8 years ago[AArch64] Fix ICE on (const_double:HF 0.0)
alalaw01 [Tue, 3 Nov 2015 10:35:31 +0000 (10:35 +0000)]
[AArch64] Fix ICE on (const_double:HF 0.0)

gcc/:

* config/aarch64/aarch64.md (*movhf_aarch64): Use
aarch64_reg_or_fp_zero for second operand.

gcc/testsuite/:

* gcc.target/aarch64/fp16/set_zero_1.c: New.

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

8 years ago * ChangeLog: Fix whitespace.
uros [Tue, 3 Nov 2015 08:45:55 +0000 (08:45 +0000)]
* ChangeLog: Fix whitespace.
* testsuite/ChangeLog: Ditto.

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

8 years ago2015-11-03 Ville Voutilainen <ville.voutilainen@gmail.com>
ville [Tue, 3 Nov 2015 08:41:40 +0000 (08:41 +0000)]
2015-11-03  Ville Voutilainen  <ville.voutilainen@gmail.com>

Make the default constructors of tuple and pair conditionally explicit.
* include/std/type_traits (is_unsigned, __is_array_unknown_bounds,
__is_default_constructible_atom, __is_default_constructible_safe,
__is_direct_constructible_new_safe, __is_direct_constructible_ref_cast,
__is_nt_default_constructible_impl, is_nothrow_default_constructible,
is_nothrow_constructible, is_nothrow_assignable,
is_trivially_constructible, is_trivially_copy_constructible,
is_trivially_move_constructible, is_trivially_assignable,
is_trivially_copy_assignable, is_trivially_move_assignable,
is_trivially_destructible): Simplify.
* include/std/type_traits (
__do_is_implicitly_default_constructible_impl,
__is_implicitly_default_constructible_impl,
__is_implicitly_default_constructible_safe,
__is_implicitly_default_constructible): New.
* include/bits/stl_pair.h (pair::pair()): Use it.
* include/std/tuple (tuple<_T1, _T2>::tuple): Use it.
* include/std/tuple (_ImplicitlyDefaultConstructibleTuple): New.
* include/std/tuple (tuple<_Types...>::tuple()): Use it.
* testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
* testsuite/20_util/is_implicitly_default_constructible/requirements/explicit_instantiation.cc: New.
* testsuite/20_util/is_implicitly_default_constructible/requirements/typedefs.cc: Likewise.
* testsuite/20_util/is_implicitly_default_constructible/value.cc: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise.
* testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
* testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.

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

8 years ago * gcc.dg/mvc1.c: Move to ...
uros [Tue, 3 Nov 2015 08:34:42 +0000 (08:34 +0000)]
* gcc.dg/mvc1.c: Move to ...
* gcc.target/i386/mvc1.c: ... here.  Require ifunc.
* gcc.dg/mvc2.c: Move to ...
* gcc.target/i386/mvc2.c: ... here.
* gcc.dg/mvc3.c: Move to ...
* gcc.target/i386/mvc3.c: ... here.
* gcc.dg/mvc4.c: Move to ...
* gcc.target/i386/mvc4.c: ... here.  Require ifunc.
* gcc.dg/mvc5.c: Move to ...
* gcc.target/i386/mvc5.c: ... here.
* gcc.dg/mvc6.c: Move to ...
* gcc.target/i386/mvc6.c: ... here.
* gcc.dg/mvc7.c: Move to ...
* gcc.target/i386/mvc7.c: ... here.

* g++.dg/ext/mvc1.C: Require ifunc.

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

8 years agodefer mark_addressable calls during expand till the end of expand
aoliva [Tue, 3 Nov 2015 03:57:07 +0000 (03:57 +0000)]
defer mark_addressable calls during expand till the end of expand

for  gcc/ChangeLog

* gimple-expr.c: Include hash-set.h and rtl.h.
(mark_addressable_queue): New var.
(mark_addressable): Factor actual marking into...
(mark_addressable_1): ... this.  Queue it up during expand.
(mark_addressable_2): New.
(flush_mark_addressable_queue): New.
* gimple-expr.h (flush_mark_addressable_queue): Declare.
* cfgexpand.c: Include gimple-expr.h.
(pass_expand::execute): Flush mark_addressable queue.

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

8 years agoRemove ChangeLog entry unintentionally duplicated in the top level
aoliva [Tue, 3 Nov 2015 03:52:56 +0000 (03:52 +0000)]
Remove ChangeLog entry unintentionally duplicated in the top level

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

8 years agoifcombine: factor out inner block viability test
aoliva [Tue, 3 Nov 2015 00:31:18 +0000 (00:31 +0000)]
ifcombine: factor out inner block viability test

Bail out early if the inner block has side effects or is otherwise not
eligible for ifcombine.

for  gcc/ChangeLog

* tree-ssa-ifcombine.c (tree_ssa_ifcombine_bb_1): Factor out
bb_no_side_effects_p tests...
(tree_ssa_ifcombine_bb): ... here.

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

8 years ago[PR68083] don't introduce undefined behavior in ifcombine
aoliva [Tue, 3 Nov 2015 00:30:07 +0000 (00:30 +0000)]
[PR68083] don't introduce undefined behavior in ifcombine

The ifcombine pass may move a conditional access to an uninitialized
value before the condition that ensures it is always well-defined,
thus introducing undefined behavior.  Stop it from doing so.

for  gcc/ChangeLog

PR tree-optimization/68083
* tree-ssa-ifcombine.c: Include tree-ssa.h.
(bb_no_side_effects_p): Test for undefined uses too.
* tree-ssa.c (gimple_uses_undefined_value_p): New.
* tree-ssa.h (gimple_uses_undefined_value_p): Declare.

for  gcc/testsuite/ChangeLog

PR tree-optimization/68083
* gcc.dg/torture/pr68083.c: New.  From Zhendong Su.

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

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

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

8 years ago libgo: Bump version number.
ian [Mon, 2 Nov 2015 23:30:21 +0000 (23:30 +0000)]
libgo: Bump version number.

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

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

8 years ago[PATCH] Avoid more irreducible loops in FSM threader
law [Mon, 2 Nov 2015 23:25:06 +0000 (23:25 +0000)]
[PATCH] Avoid more irreducible loops in FSM threader

* tree-ssa-threadupdate.c (valid_jump_thread_path): Also detect
cases where the loop latch edge is in the middle of an FSM
path.

* gcc.dg/tree-ssa/ssa-thread-11.c: Verify that we do not have
irreducible loops in the CFG.

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

8 years agoRename make_restrict_var_constraints to make_param_constraints
vries [Mon, 2 Nov 2015 23:23:28 +0000 (23:23 +0000)]
Rename make_restrict_var_constraints to make_param_constraints

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

* tree-ssa-structalias.c (make_restrict_var_constraints): Rename to ...
(make_param_constraints): ... this.  Add and handle restrict_name
parameter.  Handle is_full_var case.
(intra_create_variable_infos): Use make_param_constraints.

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

8 years agoReplace make_copy_constraint with make_constraint_from in make_restrict_var_constraints
vries [Mon, 2 Nov 2015 23:23:19 +0000 (23:23 +0000)]
Replace make_copy_constraint with make_constraint_from in make_restrict_var_constraints

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

* tree-ssa-structalias.c (make_restrict_var_constraints): Replace
make_copy_constraint call with make_constraint_from call.

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

8 years ago2015-11-02 Andreas Tobler <andreast@gcc.gnu.org>
andreast [Mon, 2 Nov 2015 21:51:25 +0000 (21:51 +0000)]
2015-11-02  Andreas Tobler  <andreast@gcc.gnu.org>

    * config/rs6000/freebsd64.h (ASM_SPEC32): Adust spec to handle
    PIE executables.

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

8 years ago mksysinfo.sh: Handle TIOCGPGRP if too complex for -dump-go-spec.
ian [Mon, 2 Nov 2015 20:23:09 +0000 (20:23 +0000)]
mksysinfo.sh: Handle TIOCGPGRP if too complex for -dump-go-spec.

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

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

8 years ago syscall: Change raw_ioctl cmd type to uintptr.
ian [Mon, 2 Nov 2015 19:58:15 +0000 (19:58 +0000)]
syscall: Change raw_ioctl cmd type to uintptr.

    Attempt to fix a build bug report:

    ../../../../libgo/go/syscall/exec_linux.go:185:37: error: integer constant overflow
       _, err1 = raw_ioctl_ptr(sys.Ctty, TIOCSPGRP, unsafe.Pointer(&pgrp))

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

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

8 years agolibcpp: Improvements to description of source_location in line-map.h
dmalcolm [Mon, 2 Nov 2015 19:47:03 +0000 (19:47 +0000)]
libcpp: Improvements to description of source_location in line-map.h

libcpp/ChangeLog:
* include/line-map.h (source_location): In the table in the
descriptive comment, show UNKNOWN_LOCATION, BUILTINS_LOCATION,
LINE_MAP_MAX_LOCATION_WITH_COLS, LINE_MAP_MAX_SOURCE_LOCATION.
Add notes about ad-hoc values.

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

8 years agoMove constant folds for maths functions to new file
rsandifo [Mon, 2 Nov 2015 16:34:16 +0000 (16:34 +0000)]
Move constant folds for maths functions to new file

The new routines operate on the built-in enum rather than on tree decls.
The idea is to extend this to handle internal functions too, with a
combined enum for both.

The patch also moves fold_fma too, with the same prototype.  The long-term
plan is to replace FMA_EXPR with an internal function, for consistency
with the way that things like SQRT will be handled.

Tested on x86_64-linux-gnu, arm-linux-gnueabi and aarch64-linux-gnu.

gcc/
* builtins.h (fold_fma): Move to fold-const-call.h.
* builtins.c: Include fold-const-call.h.
(mathfn_built_in_2): New function, split out from...
(mathfn_built_in_1): ...here.
(do_real_to_int_conversion, fold_const_builtin_pow)
(fold_const_builtin_logb, fold_const_builtin_significand)
(fold_const_builtin_load_exponent, do_mpfr_arg1, do_mpfr_arg2)
(do_mpfr_arg3, do_mpfr_sincos, do_mpfr_bessel_n, do_mpc_arg1): Delete.
(fold_builtin_sincos): Use fold_const_call to handle constants.
(fold_builtin_1, fold_builtin_2, fold_builtin_3): Add explicit
checks for ERROR_MARK.  Use fold_const_call to handle constant
folds for math functions.
(fold_fma): Move to fold-const-call.c.
* fold-const.c: Include fold-const-call.h.
* Makefile.in (OBJS): Add fold-const-call.o.
(PLUGIN_HEADERS): Add fold-const-call.h.
* realmpfr.h (real_from_mpfr): Allow the format to be specified
directly.
* realmpfr.c (real_from_mpfr): Likewise.
* fold-const-call.h, fold-const-call.c: New files.

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

8 years ago[ARM] neon-testgen.ml typo
jules [Mon, 2 Nov 2015 12:43:14 +0000 (12:43 +0000)]
[ARM] neon-testgen.ml typo

* config/arm/neon-testgen.ml (emit_epilogue): Remove extraneous
brackets and semicolon.

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

8 years agoRevert: tree-scalar-evolution.c: Handle LSHIFT by constant
alalaw01 [Mon, 2 Nov 2015 12:39:31 +0000 (12:39 +0000)]
Revert: tree-scalar-evolution.c: Handle LSHIFT by constant

gcc/:

tree-scalar-evolution.c (interpret_rhs_expr): Handle some
LSHIFT_EXPRs as equivalent MULT_EXPRs.

gcc/testsuite/:

gcc.dg/vect/vect-strided-shift.c: New.

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

8 years agoMove gcc.target/arm/pr67929_1.c test to execute.exp
ktkachov [Mon, 2 Nov 2015 12:23:36 +0000 (12:23 +0000)]
Move gcc.target/arm/pr67929_1.c test to execute.exp

PR target/67929
* gcc.target/arm/pr67929_1.c: Move to...
* gcc.c-torture/execute/pr67929_1.c: ... Here.
Remove arm-specific directives.  Add noclone, noinline
attributes.

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