gcc.git
7 years agoDo not instrument use-after-scope for vars with large alignment (PR sanitizer/82517).
Martin Liska [Thu, 19 Oct 2017 07:50:48 +0000 (09:50 +0200)]
Do not instrument use-after-scope for vars with large alignment (PR sanitizer/82517).

2017-10-19  Martin Liska  <mliska@suse.cz>

PR sanitizer/82517
* gimplify.c (gimplify_decl_expr): Do not instrument variables
that have a large alignment.
(gimplify_target_expr): Likewise.
2017-10-19  Martin Liska  <mliska@suse.cz>

PR sanitizer/82517
* gcc.dg/asan/pr82517.c: New test.

From-SVN: r253879

7 years agore PR fortran/82568 ([6/7/8] ICE with do-loop inside BLOCK inside omp)
Jakub Jelinek [Thu, 19 Oct 2017 07:38:59 +0000 (09:38 +0200)]
re PR fortran/82568 ([6/7/8] ICE with do-loop inside BLOCK inside omp)

PR fortran/82568
* gfortran.h (gfc_resolve_do_iterator): Add a bool arg.
(gfc_resolve_omp_local_vars): New declaration.
* openmp.c (omp_current_ctx): Make static.
(gfc_resolve_omp_parallel_blocks): Handle EXEC_OMP_TASKLOOP
and EXEC_OMP_TASKLOOP_SIMD.
(gfc_resolve_do_iterator): Add ADD_CLAUSE argument, if false,
don't actually add any clause.  Move omp_current_ctx test
earlier.
(handle_local_var, gfc_resolve_omp_local_vars): New functions.
* resolve.c (gfc_resolve_code): Call gfc_resolve_omp_parallel_blocks
instead of just gfc_resolve_omp_do_blocks for EXEC_OMP_TASKLOOP
and EXEC_OMP_TASKLOOP_SIMD.
(gfc_resolve_code): Adjust gfc_resolve_do_iterator caller.
(resolve_codes): Call gfc_resolve_omp_local_vars.

* gfortran.dg/gomp/pr82568.f90: New test.

From-SVN: r253878

7 years agoUse Levenshtein spelling suggestions in Fortran FE
Bernhard Reutner-Fischer [Thu, 19 Oct 2017 07:24:33 +0000 (09:24 +0200)]
Use Levenshtein spelling suggestions in Fortran FE

gcc/fortran/ChangeLog

2017-10-19  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

* gfortran.h (gfc_lookup_function_fuzzy): New declaration.
(gfc_closest_fuzzy_match): New declaration.
(vec_push): New definition.
* misc.c (gfc_closest_fuzzy_match): New definition.
* resolve.c: Include spellcheck.h.
(lookup_function_fuzzy_find_candidates): New static function.
(lookup_uop_fuzzy_find_candidates): Likewise.
(lookup_uop_fuzzy): Likewise.
(resolve_operator) <INTRINSIC_USER>: Call lookup_uop_fuzzy.
(gfc_lookup_function_fuzzy): New definition.
(resolve_unknown_f): Call gfc_lookup_function_fuzzy.
* interface.c (check_interface0): Likewise.
(lookup_arg_fuzzy_find_candidates): New static function.
(lookup_arg_fuzzy ): Likewise.
(compare_actual_formal): Call lookup_arg_fuzzy.
* symbol.c: Include spellcheck.h.
(lookup_symbol_fuzzy_find_candidates): New static function.
(lookup_symbol_fuzzy): Likewise.
(gfc_set_default_type): Call lookup_symbol_fuzzy.
(lookup_component_fuzzy_find_candidates): New static function.
(lookup_component_fuzzy): Likewise.
(gfc_find_component): Call lookup_component_fuzzy.

gcc/testsuite/ChangeLog

2017-10-19  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

* gfortran.dg/spellcheck-operator.f90: New testcase.
* gfortran.dg/spellcheck-procedure_1.f90: New testcase.
* gfortran.dg/spellcheck-procedure_2.f90: New testcase.
* gfortran.dg/spellcheck-structure.f90: New testcase.
* gfortran.dg/spellcheck-parameter.f90: New testcase.

From-SVN: r253877

7 years agoDaily bump.
GCC Administrator [Thu, 19 Oct 2017 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253876

7 years agore PR fortran/82567 ([6/7/8] gfortran takes a long time to compile a simple implied...
Thomas Koenig [Wed, 18 Oct 2017 21:29:37 +0000 (21:29 +0000)]
re PR fortran/82567 ([6/7/8] gfortran takes a long time to compile a simple implied-do with -Optimization.)

2017-10-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/82567
* frontend-passes.c (combine_array_constructor): If an array
constructor is all constants and has more elements than a small
constant, don't convert a*[b,c] to [a*b,a*c] to reduce compilation
times.

2017-10-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/82567
* gfortran.dg/array_constructor_51.f90: New test.

From-SVN: r253872

7 years agoira: volatile asm's are not moveable (PR82602)
Segher Boessenkool [Wed, 18 Oct 2017 21:08:18 +0000 (23:08 +0200)]
ira: volatile asm's are not moveable (PR82602)

A volatile asm statement can not be moved (relative to other volatile
asm, etc.), but IRA would do it nevertheless.  This patch fixes it.

PR rtl-optimization/82602
* ira.c (rtx_moveable_p): Return false for volatile asm.

From-SVN: r253869

7 years agore PR fortran/79795 (Fortran ICE in resolve_symbol starting with r163221)
Thomas Koenig [Wed, 18 Oct 2017 20:32:34 +0000 (20:32 +0000)]
re PR fortran/79795 (Fortran ICE in resolve_symbol starting with r163221)

2017-10-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/79795
* resolve.c (resovle_symbol): Change gcc_assert to
sensible error message.

2017-10-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/79795
* gfortran.dg/assumed_size_2.f90: New test.

From-SVN: r253868

7 years agore PR target/82580 (Optimize comparisons for __int128 on x86-64)
Uros Bizjak [Wed, 18 Oct 2017 20:19:05 +0000 (22:19 +0200)]
re PR target/82580 (Optimize comparisons for __int128 on x86-64)

PR target/82580
* config/i386/i386-modes.def (CCGZ): New CC mode.
* config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern.
* config/i386/predicates.md (ix86_comparison_operator):
Handle CCGZmode.
* config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons
with double-word subtraction.
(put_condition_code): Handle CCGZmode.

testsuite/ChangeLog:

PR target/82580
* gcc.target/i386/pr82580.c: New test.

From-SVN: r253867

7 years agowide-int.cc (debug): New.
Aldy Hernandez [Wed, 18 Oct 2017 19:49:08 +0000 (19:49 +0000)]
wide-int.cc (debug): New.

* wide-int.cc (debug) [const wide_int &]: New.
(debug) [const wide_int *]: New.
(debug) [const widest_int &]: New.
(debug) [const widest_int *]: New.

From-SVN: r253866

7 years agore PR libfortran/82233 (execute_command_line causes program to stop when command...
Thomas Koenig [Wed, 18 Oct 2017 17:54:18 +0000 (17:54 +0000)]
re PR libfortran/82233 (execute_command_line causes program to stop when command fails (or does not exist))

2017-10-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR libfortran/82233
* gfortran.dg/execute_command_line_3.f90:  Remove unneeded output.
Move test with wait=.false. before the last test.

From-SVN: r253865

7 years agore PR middle-end/82556 (internal compiler error in curr_insn_transform, at lra-constr...
Vladimir Makarov [Wed, 18 Oct 2017 16:44:27 +0000 (16:44 +0000)]
re PR middle-end/82556 (internal compiler error in curr_insn_transform, at lra-constraints.c:4307)

2017-10-18  Vladimir Makarov  <vmakarov@redhat.com>

PR middle-end/82556
* lra-constraints.c (curr_insn_transform): Use non-input operand
instead of output one for matched reload.

2017-10-18  Vladimir Makarov  <vmakarov@redhat.com>

PR middle-end/82556
* gcc.target/i386/pr82556.c: New.

From-SVN: r253862

7 years agotree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
Bin Cheng [Wed, 18 Oct 2017 16:04:16 +0000 (16:04 +0000)]
tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.

* tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
(tree-ssa-loop-ivopts.h): New header file.
(struct builtin_info): New fields.
(classify_builtin_1): Compute and record base and offset parts for
memset builtin partition by calling strip_offset.
(offset_cmp, fuse_memset_builtins): New functions.
(finalize_partitions): Fuse adjacent memset partitions by calling
above function.
* tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration.
Expose the interface.
* tree-ssa-loop-ivopts.h (strip_offset): New declaration.

* gcc.dg/tree-ssa/ldist-17.c: Adjust test string.
* gcc.dg/tree-ssa/ldist-32.c: New test.
* gcc.dg/tree-ssa/ldist-35.c: New test.
* gcc.dg/tree-ssa/ldist-36.c: New test.

From-SVN: r253859

7 years agore PR tree-optimization/82574 (wrong code at -O3 on x86_64-linux-gnu)
Bin Cheng [Wed, 18 Oct 2017 15:56:15 +0000 (15:56 +0000)]
re PR tree-optimization/82574 (wrong code at -O3 on x86_64-linux-gnu)

PR tree-optimization/82574
* tree-loop-distribution.c (find_single_drs): New parameter.  Check
that data reference must be executed exactly once per iteration
against the outermost loop in nest.
(classify_partition): Update call to above function.

gcc/testsuite
* gcc.dg/tree-ssa/pr82574.c: New test.

From-SVN: r253857

7 years agore PR tree-optimization/82591 ([graphite] Compile-time hog w/ -O2 -floop-nest-optimize)
Richard Biener [Wed, 18 Oct 2017 14:35:26 +0000 (14:35 +0000)]
re PR tree-optimization/82591 ([graphite] Compile-time hog w/ -O2 -floop-nest-optimize)

2017-10-18  Richard Biener  <rguenther@suse.de>

PR tree-optimization/82591
* graphite.c (graphite_transform_loops): Move code gen message
printing ...
* graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
Here.  Handle scop_to_isl_ast failing.
(scop_to_isl_ast): Limit the number of ISL operations.

From-SVN: r253856

7 years ago2017-10-18 Richard Biener <rguenther@suse.de>
Richard Biener [Wed, 18 Oct 2017 13:34:00 +0000 (13:34 +0000)]
2017-10-18  Richard Biener  <rguenther@suse.de>

* graphite-isl-ast-to-gimple.c
(translate_isl_ast_to_gimple::set_rename): Simplify.
(translate_isl_ast_to_gimple::set_rename_for_each_def): Inline...
(graphite_copy_stmts_from_block): ... here.
(copy_bb_and_scalar_dependences): Simplify.
(add_parameters_to_ivs_params): Canonicalize.
(generate_entry_out_of_ssa_copies): Simplify.
* graphite-sese-to-poly.c (extract_affine_name): Simplify
by passing in ISL dimension.
(parameter_index_in_region_1): Rename to ...
(parameter_index_in_region): ... this.
(extract_affine): Adjust assert, pass down parameter index.
(add_param_constraints): Use range-info when available.
(build_scop_context): Adjust.
* sese.c (new_sese_info): Adjust.
(free_sese_info): Likewise.
* sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t):
Remove unused typedefs.
(struct sese_info_t): Simplify rename_map, remove incomplete_phis.

From-SVN: r253855

7 years agoFix failing test-case
Martin Liska [Wed, 18 Oct 2017 12:44:08 +0000 (14:44 +0200)]
Fix failing test-case

2017-10-18  Martin Liska  <mliska@suse.cz>

* gcc.dg/tree-prof/switch-case-2.c: Scan IPA profile dump
file instead of expand. Reason is that switch statement is
not yet expanded as decision tree, which also contains a BB
with count == 2000.

From-SVN: r253854

7 years agoFix -Wimplicit-fallthrough in combine.c
Martin Liska [Wed, 18 Oct 2017 11:23:50 +0000 (13:23 +0200)]
Fix -Wimplicit-fallthrough in combine.c

2017-10-18  Martin Liska  <mliska@suse.cz>

* combine.c (simplify_compare_const): Add gcc_fallthrough.

From-SVN: r253853

7 years agomisc.c (gnat_tree_size): Move around.
Eric Botcazou [Wed, 18 Oct 2017 10:41:03 +0000 (10:41 +0000)]
misc.c (gnat_tree_size): Move around.

* gcc-interface/misc.c (gnat_tree_size): Move around.

* gcc-interface/utils.c (max_size): Deal with SSA names.

From-SVN: r253852

7 years agore PR lto/82598 (lto debugobj lacks .note.GNU-stack)
Jakub Jelinek [Wed, 18 Oct 2017 09:20:31 +0000 (11:20 +0200)]
re PR lto/82598 (lto debugobj lacks .note.GNU-stack)

PR lto/82598
* simple-object.c (handle_lto_debug_sections): Copy over also
.note.GNU-stack section with unchanged name.
* simple-object-elf.c (SHF_EXECINSTR): Define.
(simple_object_elf_copy_lto_debug_section): Drop SHF_EXECINSTR bit
on .note.GNU-stack section.

From-SVN: r253851

7 years agoS/390: Do not end groups after fallthru edge.
Robin Dapp [Wed, 18 Oct 2017 09:14:16 +0000 (09:14 +0000)]
S/390: Do not end groups after fallthru edge.

gcc/ChangeLog:

2017-10-17  Robin Dapp  <rdapp@linux.vnet.ibm.com>

* config/s390/s390.c (s390_bb_fallthru_entry_likely): New function.
(s390_sched_init): Do not reset s390_sched_state if we entered the
current basic block via a fallthru edge and all others are unlikely.

From-SVN: r253850

7 years agoS/390: Handle long-running instructions.
Robin Dapp [Wed, 18 Oct 2017 09:10:09 +0000 (09:10 +0000)]
S/390: Handle long-running instructions.

gcc/ChangeLog:

2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>

* config/s390/s390.c (NUM_SIDES): New variable.
(LONGRUNNING_THRESHOLD): New variable.
(LATENCY_FACTOR): New variable.
(s390_sched_score): Decrease score for long-running instructions on
wrong side.
(s390_sched_variable_issue): Perform bookkeeping for long-running
instructions.

From-SVN: r253849

7 years agore PR fortran/82550 (program using submodules fails to link)
Paul Thomas [Wed, 18 Oct 2017 08:55:27 +0000 (08:55 +0000)]
re PR fortran/82550 (program using submodules fails to link)

2017-10-18  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/82550
* trans_decl.c (gfc_get_symbol_decl): Procedure symbols that
have the 'used_in_submodule' attribute should be processed by
'gfc_get_extern_function_decl'.

2017-10-18  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/82550
* gfortran.dg/submodule_30.f08 : New test.

From-SVN: r253848

7 years agographite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id): Simplify with...
Richard Biener [Wed, 18 Oct 2017 08:30:45 +0000 (08:30 +0000)]
graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id): Simplify with removal of the parameter rename map.

2017-10-18  Richard Biener  <rguenther@suse.de>

* graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
Simplify with removal of the parameter rename map.
(set_rename): Likewise.
(should_copy_to_new_region): Likewise.
(graphite_copy_stmts_from_block): Likewise.
(copy_bb_and_scalar_dependences): Remove initialization of
unused copied_bb_map.
(copy_def): Remove.
(copy_internal_parameters): Likewise.
(graphite_regenerate_ast_isl): Do not call copy_internal_parameters.
* graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
Use INTEGRAL_TYPE_P.
(parameter_index_in_region_1): Rename to ...
(assign_parameter_index_in_region): ... this.  Assert we have
a parameter we handle.
(scan_tree_for_params): Adjust.
* sese.h (parameter_rename_map_t): Remove.
(struct sese_info_t): Remove unused parameter_rename_map and
copied_bb_map members.
* sese.c (new_sese_info): Adjust.
(free_sese_info): Likewise.

From-SVN: r253847

7 years agoS/390: Fix vec-cmp-2 testcase
Andreas Krebbel [Wed, 18 Oct 2017 08:21:45 +0000 (08:21 +0000)]
S/390: Fix vec-cmp-2 testcase

The functions all call foo and therefore need a stack frame what makes
them subject to shrink wrapping.  Also all the additional instructions
in the function body makes it fragile wrt instruction scheduling.  Just
set a global variable instead to circumvent this.

gcc/testsuite/ChangeLog:

2017-10-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/zvector/vec-cmp-2.c
(all_eq_double, all_ne_double, all_gt_double)
(all_lt_double, all_ge_double, all_le_double)
(any_eq_double, any_ne_double, any_gt_double)
(any_lt_double, any_ge_double, any_le_double)
(all_eq_int, all_ne_int, all_gt_int)
(all_lt_int, all_ge_int, all_le_int)
(any_eq_int, any_ne_int, any_gt_int)
(any_lt_int, any_ge_int, any_le_int): Set global variable instead
of calling foo().  Fix return type.

From-SVN: r253846

7 years agoDo not put gimple stmt on an abnormal edge (PR sanitizer/82545).
Martin Liska [Wed, 18 Oct 2017 08:14:47 +0000 (10:14 +0200)]
Do not put gimple stmt on an abnormal edge (PR sanitizer/82545).

2017-10-18  Martin Liska  <mliska@suse.cz>

PR sanitizer/82545
* asan.c (asan_expand_poison_ifn): Do not put gimple stmt
on an abnormal edge.
2017-10-18  Martin Liska  <mliska@suse.cz>

PR sanitizer/82545
* gcc.dg/asan/pr82545.c: New test.

From-SVN: r253845

7 years agore PR c++/69057 ([C++14] constexpr static variable template assertion segmentation...
Paolo Carlini [Wed, 18 Oct 2017 07:53:27 +0000 (07:53 +0000)]
re PR c++/69057 ([C++14] constexpr static variable template assertion segmentation fault)

2017-10-18  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/69057
* g++.dg/cpp1y/auto-fn45.C: New.

From-SVN: r253844

7 years agore PR c++/68884 (template of value template crashes the compiler)
Paolo Carlini [Wed, 18 Oct 2017 07:43:06 +0000 (07:43 +0000)]
re PR c++/68884 (template of value template crashes the compiler)

2017-10-18  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/68884
* g++.dg/cpp0x/variadic-crash4.C: New.

From-SVN: r253843

7 years agoUpdate -ffunction/data-sections documentation
Sebastian Huber [Wed, 18 Oct 2017 07:36:38 +0000 (07:36 +0000)]
Update -ffunction/data-sections documentation

gcc/
* doc/invoke.texi (ffunction-sections and fdata-sections):
Update.

From-SVN: r253842

7 years agore PR c++/79474 (Multiple definitions of user-defined conversion operator cause ICE...
Paolo Carlini [Wed, 18 Oct 2017 07:24:50 +0000 (07:24 +0000)]
re PR c++/79474 (Multiple definitions of user-defined conversion operator cause ICE (internal compiler error))

2017-10-18  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/79474
* g++.dg/cpp1y/auto-fn44.C: New.

From-SVN: r253841

7 years agoDaily bump.
GCC Administrator [Wed, 18 Oct 2017 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253840

7 years agotree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if the use statement...
Eric Botcazou [Tue, 17 Oct 2017 21:53:34 +0000 (21:53 +0000)]
tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if the use statement can throw internally.

* tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if
the use statement can throw internally.

From-SVN: r253834

7 years ago* gcc.dg/attr-alloc_size-11.c: UnXFAIL for visium-*-*.
Eric Botcazou [Tue, 17 Oct 2017 20:34:29 +0000 (20:34 +0000)]
* gcc.dg/attr-alloc_size-11.c: UnXFAIL for visium-*-*.

From-SVN: r253831

7 years agovisium.c (visium_select_cc_mode): Return CCmode for any RTX present on the RHS of...
Eric Botcazou [Tue, 17 Oct 2017 20:28:33 +0000 (20:28 +0000)]
visium.c (visium_select_cc_mode): Return CCmode for any RTX present on the RHS of a SET.

* config/visium/visium.c (visium_select_cc_mode): Return CCmode
for any RTX present on the RHS of a SET.
* compare-elim.c (try_eliminate_compare): Restore comment.

From-SVN: r253830

7 years agolanghooks.h (struct lang_hooks): Document that tree_size langhook may be also called...
Jakub Jelinek [Tue, 17 Oct 2017 20:11:00 +0000 (22:11 +0200)]
langhooks.h (struct lang_hooks): Document that tree_size langhook may be also called on tcc_type nodes.

* langhooks.h (struct lang_hooks): Document that tree_size langhook
may be also called on tcc_type nodes.
* langhooks.c (lhd_tree_size): Likewise.

* gcc-interface/misc.c (gnat_tree_size): New function.
(LANG_HOOKS_TREE_SIZE): Redefine.

From-SVN: r253829

7 years agore PR c++/71821 (ICE on invalid C++11 code (incorrect argument for alignas): unexpect...
Paolo Carlini [Tue, 17 Oct 2017 19:49:06 +0000 (19:49 +0000)]
re PR c++/71821 (ICE on invalid C++11 code (incorrect argument for alignas): unexpected expression ‘f<int>’ of kind template_id_expr)

2017-10-17  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/71821
* g++.dg/cpp0x/alignas12.C: New.

From-SVN: r253828

7 years agoSimplify format_warning_at_substring API
David Malcolm [Tue, 17 Oct 2017 19:41:01 +0000 (19:41 +0000)]
Simplify format_warning_at_substring API

The format_warning_at_substring API has a rather clunk way of indicating
the location of the pertinent param (if any): a source_range * is passed
in, which can be NULL.  Doing so requires extracting a range from the
location_t and passing around a pointer to it, or NULL, as needed.

This patch simplifies things by eliminating the source_range * in
favor of a location_t, with UNKNOWN_LOCATION used to signify that
no param location is available.

gcc/c-family/ChangeLog:
* c-format.c (format_warning_at_char): Pass UNKNOWN_LOCATION
rather than NULL to format_warning_va.
(check_format_types): Likewise when calling format_type_warning.
Remove code to extract source_ranges and source_range * in favor
of just a location_t.
(format_type_warning): Convert source_range * param to a
location_t.

gcc/ChangeLog:
* gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of
format_warning_at_substring.
(maybe_warn): Convert source_range * param to a location_t.  Pass
UNKNOWN_LOCATION rather than NULL to fmtwarn.
(format_directive): Remove code to extract source_ranges and
source_range * in favor of just a location_t.
(parse_directive): Pass UNKNOWN_LOCATION rather than NULL to
fmtwarn.
* substring-locations.c (format_warning_va): Convert
source_range * param to a location_t.
(format_warning_at_substring): Likewise.
* substring-locations.h (format_warning_va): Likewise.
(format_warning_at_substring): Likewise.

From-SVN: r253827

7 years agore PR c++/71368 ([concepts] ICE on constrained compound requirement)
Paolo Carlini [Tue, 17 Oct 2017 19:36:49 +0000 (19:36 +0000)]
re PR c++/71368 ([concepts] ICE on constrained compound requirement)

2017-10-17  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/71368
* g++.dg/concepts/pr71368.C: New.

From-SVN: r253826

7 years agoAdd gcc_checking_assert for sbitmap.c.
Martin Liska [Tue, 17 Oct 2017 19:17:36 +0000 (19:17 +0000)]
Add gcc_checking_assert for sbitmap.c.

From-SVN: r253825

7 years ago* i386/i386.c (x86_builtin_vectorization_cost): Likewise.
Jan Hubicka [Tue, 17 Oct 2017 17:37:23 +0000 (19:37 +0200)]
* i386/i386.c (x86_builtin_vectorization_cost): Likewise.

From-SVN: r253824

7 years agotarget.h (enum vect_cost_for_stmt): Add vec_gather_load and vec_scatter_store
Jan Hubicka [Tue, 17 Oct 2017 17:35:54 +0000 (19:35 +0200)]
target.h (enum vect_cost_for_stmt): Add vec_gather_load and vec_scatter_store

* target.h (enum vect_cost_for_stmt): Add vec_gather_load and
vec_scatter_store
* tree-vect-stmts.c (record_stmt_cost): Make difference between normal
and scatter/gather ops.

* aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add
vec_gather_load and vec_scatter_store.
* arm/arm.c (arm_builtin_vectorization_cost): Likewise.
* powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise.
* rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise.
* s390/s390.c (s390_builtin_vectorization_cost): Likewise.
* spu/spu.c (spu_builtin_vectorization_cost): Likewise.

From-SVN: r253823

7 years agoreg-stack.c (compare_for_stack_reg): Add bool argument.
Uros Bizjak [Tue, 17 Oct 2017 16:35:11 +0000 (18:35 +0200)]
reg-stack.c (compare_for_stack_reg): Add bool argument.

* reg-stack.c (compare_for_stack_reg): Add bool argument.
Detect FTST instruction and handle its register pops.  Only pop
second operand if can_pop_second_op is true.
(subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to
set can_pop_second_op to false in the compare_for_stack_reg call.

* config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call
output_fp_compare for stack register operands.
* config/i386/i386.c (output_fp_compare): Do not output SSE compare
instructions here.  Do not emit stack register pops here.  Assert
that FCOMPP pops next to top stack register.  Rewrite function.

From-SVN: r253821

7 years ago[C++ PATCH 82560] missing dtor call
Nathan Sidwell [Tue, 17 Oct 2017 15:52:21 +0000 (15:52 +0000)]
[C++ PATCH 82560] missing dtor call

https://gcc.gnu.org/ml/gcc-patches/2017-10/msg01068.html
PR c++/82560
* call.c (build_over_call): Don't pass tf_no_cleanup to nested
calls.

PR c++/82560
* g++.dg/cpp0x/pr82560.C: New.

From-SVN: r253820

7 years ago[PATCH, middle-end/82577] Fix DECL_ASSEMBLER_NAME ICE
Nathan Sidwell [Tue, 17 Oct 2017 15:42:19 +0000 (15:42 +0000)]
[PATCH, middle-end/82577] Fix DECL_ASSEMBLER_NAME ICE

https://gcc.gnu.org/ml/gcc-patches/2017-10/msg01067.html
gcc/
PR middle-end/82577
* alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P,
use DECL_ASSEMBLER_NAME_RAW.

gcc/testsuite/
PR middle-end/82577
* g++.dg/opt/pr82577.C: New.

From-SVN: r253819

7 years ago[PATCH PR/82546] tree node size
Nathan Sidwell [Tue, 17 Oct 2017 14:49:05 +0000 (14:49 +0000)]
[PATCH PR/82546] tree node size

https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00899.html
PR middle-end/82546
gcc/
* tree.c (tree_code_size): Reformat.  Punt to lang hook for unknown
TYPE nodes.
gcc/cp/
* cp-objcp-common.c (cp_tree_size): Reformat.  Adjust returns size
of TYPE nodes.
gcc/objc/
* objc-act.c (objc_common_tree_size): Return size of TYPE nodes.

From-SVN: r253817

7 years agore PR middle-end/80295 (ICE in __builtin_update_setjmp_buf expander)
Qing Zhao [Tue, 17 Oct 2017 14:17:17 +0000 (14:17 +0000)]
re PR middle-end/80295 (ICE in __builtin_update_setjmp_buf expander)

gcc/ChangeLog

2017-10-17  Qing Zhao <qing.zhao@oracle.com>
    Wilco Dijkstra <wilco.dijkstra@arm.com>

        * builtins.c (expand_builtin_update_setjmp_buf): Add a
        converstion to Pmode from the buf_addr.

gcc/testsuite/ChangeLog

2017-10-17  Qing Zhao <qing.zhao@oracle.com>
    Wilco Dijkstra <wilco.dijkstra@arm.com>

        PR middle-end/80295
        * gcc.target/aarch64/pr80295.c: New test.

From-SVN: r253815

7 years agore PR middle-end/80295 (ICE in __builtin_update_setjmp_buf expander)
Qing Zhao [Tue, 17 Oct 2017 14:16:35 +0000 (14:16 +0000)]
re PR middle-end/80295 (ICE in __builtin_update_setjmp_buf expander)

gcc/ChangeLog

2017-10-17  Qing Zhao <qing.zhao@oracle.com>
    Wilco Dijkstra <wilco.dijkstra@arm.com>

        * builtins.c (expand_builtin_update_setjmp_buf): Add a
        converstion to Pmode from the buf_addr.

gcc/testsuite/ChangeLog

2017-10-17  Qing Zhao <qing.zhao@oracle.com>
    Wilco Dijkstra <wilco.dijkstra@arm.com>

        PR middle-end/80295
        * gcc.target/aarch64/pr80295.c: New test.

Co-Authored-By: Wilco Dijkstra <wdijkstr@arm.com>
From-SVN: r253814

7 years agographite-dependences.c (scop_get_reads_and_writes): Change output parameters to refer...
Richard Biener [Tue, 17 Oct 2017 13:56:14 +0000 (13:56 +0000)]
graphite-dependences.c (scop_get_reads_and_writes): Change output parameters to references.

2017-10-17  Richard Biener  <rguenther@suse.de>

* graphite-dependences.c (scop_get_reads_and_writes): Change
output parameters to references.

From-SVN: r253813

7 years agoFactor out division by squares and remove division around comparisons (0/2)
Jackson Woodruff [Tue, 17 Oct 2017 13:22:48 +0000 (13:22 +0000)]
Factor out division by squares and remove division around comparisons (0/2)

Commit gcc/fold-const.c missing from r252827:

    gcc/
PR 71026/tree-optimization
* fold-const.c (distribute_real_division): Removed.
(fold_binary_loc): Remove calls to distribute_real_divison.

From-SVN: r253812

7 years ago2017-10-17 Richard Biener <rguenther@suse.de>
Richard Biener [Tue, 17 Oct 2017 13:19:51 +0000 (13:19 +0000)]
2017-10-17  Richard Biener  <rguenther@suse.de>

* graphite-scop-detection.c
(scop_detection::stmt_has_simple_data_refs_p): Always use
the full nest as region.
(try_generate_gimple_bb): Likewise.
* sese.c (scalar_evolution_in_region): Simplify now that
SCEV can handle instantiation in regions.
* tree-scalar-evolution.c (instantiate_scev_name): Also instantiate
in the non-loop part of a function if requested.

From-SVN: r253811

7 years agore PR tree-optimization/82563 ([graphite] ICE in check_loop_closed_ssa_def, at tree...
Richard Biener [Tue, 17 Oct 2017 13:17:30 +0000 (13:17 +0000)]
re PR tree-optimization/82563 ([graphite] ICE in check_loop_closed_ssa_def, at tree-ssa-loop-manip.c:709)

2017-10-17  Richard Biener  <rguenther@suse.de>

PR tree-optimization/82563
* graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies):
New function.
(graphite_regenerate_ast_isl): Call it.
* graphite-scop-detection.c (build_scops): Remove entry edge split.

* gcc.dg/graphite/pr82563.c: New testcase.

From-SVN: r253809

7 years agoRestore "dg-do run" directives for libgomp.oacc-fortran/declare-*.f90
Thomas Schwinge [Tue, 17 Oct 2017 11:17:00 +0000 (13:17 +0200)]
Restore "dg-do run" directives for libgomp.oacc-fortran/declare-*.f90

libgomp/
* testsuite/libgomp.oacc-fortran/declare-1.f90: Restore "dg-do
run" directive.
* testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise.

From-SVN: r253808

7 years agore PR c++/67831 (Internal error on complicated constexpr initialization.)
Paolo Carlini [Tue, 17 Oct 2017 09:06:53 +0000 (09:06 +0000)]
re PR c++/67831 (Internal error on complicated constexpr initialization.)

2017-10-17  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/67831
* g++.dg/cpp0x/constexpr-ice18.C: New.

From-SVN: r253807

7 years agore PR c++/82570 (Lambda fails to compile because it doesn't meet constexpr requirements)
Paolo Carlini [Tue, 17 Oct 2017 08:38:07 +0000 (08:38 +0000)]
re PR c++/82570 (Lambda fails to compile because it doesn't meet constexpr requirements)

2017-10-17  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/82570
* g++.dg/cpp1z/constexpr-lambda18.C: New.

From-SVN: r253806

7 years agore PR tree-optimization/82549 (ICE at -O1 and above: verify_gimple failed)
Jakub Jelinek [Tue, 17 Oct 2017 07:38:32 +0000 (09:38 +0200)]
re PR tree-optimization/82549 (ICE at -O1 and above: verify_gimple failed)

PR tree-optimization/82549
* fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
Formatting fixes.  Instead of calling make_bit_field_ref with negative
bitpos return 0.

* gcc.c-torture/compile/pr82549.c: New test.

From-SVN: r253805

7 years agoImprove FAIL message for dump-*-times functions.
Martin Liska [Tue, 17 Oct 2017 07:31:30 +0000 (09:31 +0200)]
Improve FAIL message for dump-*-times functions.

2017-10-17  Martin Liska  <mliska@suse.cz>

* lib/scanasm.exp: Print how many times a regex pattern is
found.
* lib/scandump.exp: Likewise.

From-SVN: r253804

7 years agoAdd missing REDUCE[SD,SS] intrinsics
Olga Makhotina [Tue, 17 Oct 2017 07:12:45 +0000 (07:12 +0000)]
Add missing REDUCE[SD,SS] intrinsics

gcc/
* config/i386/avx512dqintrin.h (_mm_mask_reduce_sd,
_mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20
_mm_maskz_reduce_ss): New.
* config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask,
__builtin_ia32_reducess_mask): Ditto..
(__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove.
* config/i386/sse.md (reduces<mode>): Renamed to ...
(reduces<mode><mask_scalar_name>): ... this.
(vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}): Changed
to ...
(vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>|
%0<mask_scalar_operand4>, %1, %2, %3}): ... this.

gcc/testsuite/
* gcc.target/i386/avx512dq-vreducesd-1.c (_mm_mask_reduce_sd,
_mm_maskz_reduce_sd): Test new intrinsics.
* gcc.target/i386/avx512dq-vreducesd-2.c: New.
* gcc.target/i386/avx512dq-vreducess-1.c (_mm_mask_reduce_ss,
_mm_maskz_reduce_ss): Test new intrinsics.
* gcc.target/i386/avx512dq-vreducess-2.c: New.
* gcc.target/i386/avx-1.c (__builtin_ia32_reducesd,
__builtin_ia32_reducess): Remove builtin.
(__builtin_ia32_reducesd_mask,
__builtin_ia32_reducess_mask): Test new builtin.
* gcc.target/i386/sse-13.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.

From-SVN: r253803

7 years agoDaily bump.
GCC Administrator [Tue, 17 Oct 2017 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253801

7 years agoMAINTAINERS (write after approval): Add myself.
Igor Tsimbalist [Mon, 16 Oct 2017 21:36:39 +0000 (23:36 +0200)]
MAINTAINERS (write after approval): Add myself.

ChangeLog:

2017-10-16  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>

        * MAINTAINERS (write after approval): Add myself.

Index: MAINTAINERS
===================================================================
--- MAINTAINERS (revision 253797)
+++ MAINTAINERS (working copy)
@@ -603,6 +603,7 @@
 Philipp Tomsich                                        <philipp.tomsich@theobroma-systems.com>
 Konrad Trifunovic                              <konrad.trifunovic@inria.fr>
 Markus Trippelsdorf                            <markus@trippelsdorf.de>
+Igor Tsimbalist                                        <igor.v.tsimbalist@intel.com>
 Martin Uecker                                  <uecker@eecs.berkeley.edu>
 David Ung                                      <davidu@mips.com>
 Neil Vachharajani                              <nvachhar@gmail.com>

From-SVN: r253798

7 years agoAdd gnu::unique_ptr
David Malcolm [Mon, 16 Oct 2017 20:50:40 +0000 (20:50 +0000)]
Add gnu::unique_ptr

This is a version of the patch posted by Trevor Saunders on 2017-07-31,
for which he wrote:
> For most of the history of this see
>   https://sourceware.org/ml/gdb-patches/2016-10/msg00223.html
> The changes are mostly s/gdb/gtl/g

This version was updated by me (dmalcolm) adding these changes:
- renaming of "gtl" to "gnu" (3 letters, and one of the ones Richi
  proposed, and not a match for "*tl")
- renaming of DEFINE_GDB_UNIQUE_PTR to DEFINE_GNU_UNIQUE_PTR
- renaming of xfree_deleter to xmalloc_deleter, and making it
  use "free" rather than "xfree" (which doesn't exist)
- added a gcc/unique-ptr-tests.cc
- implement unique_xmalloc_ptr<T[]> (taken from gdb, but changing
  "xfree" to "free", and adding support for pre-C++-11)

gcc/ChangeLog:

David Malcolm <dmalcolm@redhat.com>

* Makefile.in (OBJS): Add unique-ptr-tests.o.
* selftest-run-tests.c (selftest::run_tests): Call
selftest::unique_ptr_tests_cc_tests.
* selftest.h (selftest::unique_ptr_tests_cc_tests): New decl.
* unique-ptr-tests.cc: New file.

include/ChangeLog:

Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
David Malcolm <dmalcolm@redhat.com>

* unique-ptr.h: New file.

From-SVN: r253797

7 years agore PR sanitizer/82353 (runtime ubsan crash)
Vladimir Makarov [Mon, 16 Oct 2017 20:34:53 +0000 (20:34 +0000)]
re PR sanitizer/82353 (runtime ubsan crash)

2017-10-16  Vladimir Makarov  <vmakarov@redhat.com>

PR sanitizer/82353
* lra.c (collect_non_operand_hard_regs): Don't ignore operator
locations.
* lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
(make_hard_regno_born, make_hard_regno_dead): Update
bb_killed_pseudos and bb_gen_pseudos for fixed regs.

From-SVN: r253796

7 years agoFix attrib-5.c test-case.
Martin Liska [Mon, 16 Oct 2017 19:45:02 +0000 (21:45 +0200)]
Fix attrib-5.c test-case.

2017-10-16  Martin Liska  <mliska@suse.cz>

* c-c++-common/ubsan/attrib-5.c (float_cast2): Fix warning scan
so that it will work for both C and C++ FEs.

From-SVN: r253795

7 years ago* tree-ssa-dse.c (live_bytes_read): Fix thinko.
Jeff Law [Mon, 16 Oct 2017 17:56:06 +0000 (11:56 -0600)]
* tree-ssa-dse.c (live_bytes_read): Fix thinko.

From-SVN: r253792

7 years agore PR fortran/82511 (ICE Bad IO basetype (12) on attempted read or write of entire...
Fritz Reese [Mon, 16 Oct 2017 17:40:53 +0000 (17:40 +0000)]
re PR fortran/82511 (ICE Bad IO basetype (12) on attempted read or write of entire DEC structure)

2017-10-16  Fritz Reese <fritzoreese@gmail.com>

    PR fortran/82511
    Treat UNION components as DT comp. in I/O lists.

    gcc/fortran/ChangeLog:

PR fortran/82511
* trans-io.c (transfer_expr): Treat BT_UNION as BT_DERIVED.

    gcc/testsuite/ChangeLog:

PR fortran/82511
* gfortran.dg/dec_structure_22.f90: New testcase.

From-SVN: r253791

7 years ago* x86-tune-costs.h (znver1_cost): Fix move cost tables.
Jan Hubicka [Mon, 16 Oct 2017 17:39:01 +0000 (19:39 +0200)]
* x86-tune-costs.h (znver1_cost): Fix move cost tables.

From-SVN: r253790

7 years agoconfig.gcc (powerpc*-*-*spe*): Pick 8548 as the default with_cpu if we were configure...
Olivier Hainque [Mon, 16 Oct 2017 16:50:57 +0000 (16:50 +0000)]
config.gcc (powerpc*-*-*spe*): Pick 8548 as the default with_cpu if we were configured for an e500v2 target...

2017-10-16  Olivier Hainque  <hainque@adacore.com>

* gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default
with_cpu if we were configured for an e500v2 target cpu name.

From-SVN: r253789

7 years agore PR c++/64931 (ICE on function with deduced return type and input is instantiated...
Paolo Carlini [Mon, 16 Oct 2017 14:21:17 +0000 (14:21 +0000)]
re PR c++/64931 (ICE on function with deduced return type and input is instantiated template class)

2017-10-16  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/64931
* g++.dg/cpp1y/auto-fn43.C: New.

From-SVN: r253788

7 years ago[ARM] Allow +nodsp for -mcpu=cortex-m33
Thomas Preud'homme [Mon, 16 Oct 2017 13:55:00 +0000 (13:55 +0000)]
[ARM] Allow +nodsp for -mcpu=cortex-m33

DSP instructions are optional for Arm Cortex-M33, yet its -mcpu option
does not allow +nodsp. Users are thus left with using
-march=armv8-m.main -mtune=cortex-m33. This patch allows +nodsp to
-mcpu=cortex-m33.

2017-10-16  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm-cpus.in (cortex-m33): Add nodsp option.
    * doc/invoke.texi: Document +nodsp as a valid extension for
    -mcpu=cortex-m33.

From-SVN: r253787

7 years agore PR target/82442 (vect/pr31699.c fails on arm)
Wilco Dijkstra [Mon, 16 Oct 2017 13:26:20 +0000 (13:26 +0000)]
re PR target/82442 (vect/pr31699.c fails on arm)

Fix PR82442

Recently the gcc.dg/vect/pr31699.c was modified to check for
vect_float effective target instead for vect_double.  As a
result it now fails on armhf.  Fix by avoiding double.
Tested on armhf, aarch64 and x64.

    gcc/testsuite/
PR target/82442
* gcc.dg/vect/pr31699.c: Fix testcase.

From-SVN: r253786

7 years agoAdd selftests for bitmap_set_range.
Martin Liska [Mon, 16 Oct 2017 11:59:39 +0000 (13:59 +0200)]
Add selftests for bitmap_set_range.

2017-10-16  Martin Liska  <mliska@suse.cz>

* sbitmap.c (bitmap_bit_in_range_p_checking): New function.
(test_set_range): Likewise.
(test_range_functions): Rename to ...
(test_bit_in_range): ... this.
(sbitmap_c_tests): Add new test.

From-SVN: r253785

7 years agoarm_neon.h (vdot_u32, [...]): New.
Tamar Christina [Mon, 16 Oct 2017 09:58:31 +0000 (09:58 +0000)]
arm_neon.h (vdot_u32, [...]): New.

2017-10-16  Tamar Christina  <tamar.christina@arm.com>

* config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): New.
(vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New.
(vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New.

gcc/testsuite/
2017-10-16  Tamar Christina  <tamar.christina@arm.com>

* gcc.target/aarch64/advsimd-intrinsics/vect-dot-qi.h: New.
* gcc.target/aarch64/advsimd-intrinsics/vdot-compile.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vect-dot-s8.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vect-dot-u8.c: New.

From-SVN: r253784

7 years ago2017-10-16 Tamar Christina <tamar.christina@arm.com>
Tamar Christina [Mon, 16 Oct 2017 09:56:41 +0000 (09:56 +0000)]
2017-10-16  Tamar Christina  <tamar.christina@arm.com>

* config/aarch64/aarch64-builtins.c
(aarch64_types_quadopu_lane_qualifiers): New.
(TYPES_QUADOPU_LANE): New.
* config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New.
(<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New.
(aarch64_<sur>dot_laneq<vsi2qi>): New.
* config/aarch64/aarch64-simd-builtins.def (sdot, udot): New.
(sdot_lane, udot_lane, sdot_laneq, udot_laneq): New.
* config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT.
(Vdottype, DOTPROD): New.
(sur): Add SDOT and UDOT.

From-SVN: r253783

7 years agoaarch64.h (AARCH64_FL_DOTPROD): New.
Tamar Christina [Mon, 16 Oct 2017 09:55:32 +0000 (09:55 +0000)]
aarch64.h (AARCH64_FL_DOTPROD): New.

2017-10-16  Tamar Christina  <tamar.christina@arm.com>

* config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New.
(AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New.
* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add TARGET_DOTPROD.
* config/aarch64/aarch64-option-extensions.def (dotprod): New.
* config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75): Enable TARGET_DOTPROD.
(cortex-a75.cortex-a55): Likewise.
* doc/invoke.texi (aarch64-feature-modifiers): Document dotprod.

From-SVN: r253782

7 years agoarm-builtins.c (arm_unsigned_uternop_qualifiers): New.
Tamar Christina [Mon, 16 Oct 2017 09:54:26 +0000 (09:54 +0000)]
arm-builtins.c (arm_unsigned_uternop_qualifiers): New.

2017-10-16  Tamar Christina  <tamar.christina@arm.com>

* config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
(UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS): New.
* config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane): new.
* config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New.
(UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New.
* config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
(neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New.
* config/arm/types.md (neon_dot, neon_dot_q): New.
* config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U.

From-SVN: r253781

7 years agoarm.h (TARGET_DOTPROD): New.
Tamar Christina [Mon, 16 Oct 2017 09:53:13 +0000 (09:53 +0000)]
arm.h (TARGET_DOTPROD): New.

2017-10-16  Tamar Christina  <tamar.christina@arm.com>

* config/arm/arm.h (TARGET_DOTPROD): New.
* config/arm/arm.c (arm_arch_dotprod): New.
(arm_option_reconfigure_globals): Add arm_arch_dotprod.
* config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New.
* config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod.
(feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New.
(ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL.
* config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod.
* doc/invoke.texi (armv8.2-a): Document dotprod

From-SVN: r253780

7 years agoEnable libgomp.oacc-*/declare-*.{c,f90} for non-nvidia devices
Tom de Vries [Mon, 16 Oct 2017 08:44:42 +0000 (08:44 +0000)]
Enable libgomp.oacc-*/declare-*.{c,f90} for non-nvidia devices

2017-10-16  Tom de Vries  <tom@codesourcery.com>

* testsuite/libgomp.oacc-c-c++-common/declare-1.c: Don't require
openacc_nvidia_accel_selected.
* testsuite/libgomp.oacc-c-c++-common/declare-2.c: Same.
* testsuite/libgomp.oacc-c-c++-common/declare-4.c: Same.
* testsuite/libgomp.oacc-fortran/declare-2.f90: Same.
* testsuite/libgomp.oacc-fortran/declare-4.f90: Same
* testsuite/libgomp.oacc-fortran/declare-5.f90: Same.
* testsuite/libgomp.oacc-c-c++-common/declare-5.c: Don't require
openacc_nvidia_accel_selected. Skip for shared memory device.
* testsuite/libgomp.oacc-fortran/declare-1.f90: Same.
* testsuite/libgomp.oacc-fortran/declare-3.f90: Same.

From-SVN: r253779

7 years agore PR c++/53574 (ICE with -fstack-usage)
Jakub Jelinek [Mon, 16 Oct 2017 08:36:06 +0000 (10:36 +0200)]
re PR c++/53574 (ICE with -fstack-usage)

PR c++/53574
* g++.dg/other/pr53574.C: New test.

From-SVN: r253778

7 years agore PR c++/61323 ('static' and 'const' attributes cause non-type template argument...
Paolo Carlini [Mon, 16 Oct 2017 08:25:31 +0000 (08:25 +0000)]
re PR c++/61323 ('static' and 'const' attributes cause non-type template argument matching failure)

2017-10-16  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/61323
* g++.dg/cpp0x/constexpr-61323.C: New.

From-SVN: r253777

7 years agore PR libstdc++/82558 (V8 JavaScript engine segfaults since r249235)
François Dumont [Mon, 16 Oct 2017 05:44:03 +0000 (05:44 +0000)]
re PR libstdc++/82558 (V8 JavaScript engine segfaults since r249235)

2017-10-16  François Dumont  <fdumont@gcc.gnu.org>

PR libstdc++/82558
* include/bits/stl_bvector.h (fill): Add iterator offset check.
* testsuite/23_containers/vector/bool/82558.cc: New.

From-SVN: r253776

7 years agoDaily bump.
GCC Administrator [Mon, 16 Oct 2017 00:16:13 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253775

7 years agore PR c++/54090 (internal compiler error: in unify, at cp/pt.c:15731)
Paolo Carlini [Sun, 15 Oct 2017 22:29:59 +0000 (22:29 +0000)]
re PR c++/54090 (internal compiler error: in unify, at cp/pt.c:15731)

2017-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/54090
* g++.dg/template/crash128.C: New.

From-SVN: r253772

7 years agoi386.c (ix86_vec_cost): New function.
Jan Hubicka [Sun, 15 Oct 2017 22:10:22 +0000 (00:10 +0200)]
i386.c (ix86_vec_cost): New function.

* i386.c (ix86_vec_cost): New function.
(ix86_rtx_costs): Handle vector operations better.
* i386.h (struct processor_costs): Add sse_op, fmasd, fmass.
* x86-tune-costs.h: Add new costs to all tables.

From-SVN: r253771

7 years agoi386.c (ix86_rtx_costs): Make difference between x87 and SSE operations.
Jan Hubicka [Sun, 15 Oct 2017 15:58:42 +0000 (17:58 +0200)]
i386.c (ix86_rtx_costs): Make difference between x87 and SSE operations.

* i386.c (ix86_rtx_costs): Make difference between x87 and SSE
operations.
* i386.h (struct processor_costs): Add addss, mulss, mulsd, divss,
divsd, sqrtss and sqrtsd
* x86-tune-costs.h: Add new entries to all costs.
(znver1_cost): Fix to match real instruction latencies.

From-SVN: r253769

7 years agore PR fortran/82372 (Rejects valid parenthesis)
Thomas Koenig [Sun, 15 Oct 2017 12:00:29 +0000 (12:00 +0000)]
re PR fortran/82372 (Rejects valid parenthesis)

2017-10-15  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/82372
* fortran/scanner.c (last_error_char):  New global variable.
(gfc_scanner_init_1): Set last_error_char to NULL.
(gfc_gobble_whitespace): If a character not printable or
not newline, issue an error.

2017-10-15  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/82372
* gfortran.dg/illegal_char.f90: New test.

From-SVN: r253768

7 years agoDaily bump.
GCC Administrator [Sun, 15 Oct 2017 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253767

7 years agocompare-elim.c: Include emit-rtl.h.
Kyrylo Tkachov [Sat, 14 Oct 2017 23:07:24 +0000 (23:07 +0000)]
compare-elim.c: Include emit-rtl.h.

2017-10-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
    Michael Collison <michael.collison@arm.com>

* compare-elim.c: Include emit-rtl.h.
(can_merge_compare_into_arith): New function.
(try_validate_parallel): Likewise.
(try_merge_compare): Likewise.
(try_eliminate_compare): Call the above when no previous clobber
is available.
(execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN
dataflow problems.

2017-10-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
    Michael Collison <michael.collison@arm.com>

* gcc.target/aarch64/cmpelim_mult_uses_1.c: New test.

Co-Authored-By: Michael Collison <michael.collison@arm.com>
From-SVN: r253764

7 years agore PR c++/80908 ([c++1z] ICE on instantiating a template deducing the noexcept-ness...
Paolo Carlini [Sat, 14 Oct 2017 20:35:36 +0000 (20:35 +0000)]
re PR c++/80908 ([c++1z] ICE on instantiating a template deducing the noexcept-ness of a function pointer)

2017-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/80908
* g++.dg/cpp1z/noexcept-type18.C: New.

From-SVN: r253763

7 years agore PR c++/81016 (ICE: segfault with template struct specialisation)
Paolo Carlini [Sat, 14 Oct 2017 20:06:08 +0000 (20:06 +0000)]
re PR c++/81016 (ICE: segfault with template struct specialisation)

2017-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/81016
* g++.dg/cpp1z/pr81016.C: New.

From-SVN: r253762

7 years agore PR middle-end/62263 (Good codegen for bitwise rotate requires code that is technic...
Jakub Jelinek [Sat, 14 Oct 2017 18:48:38 +0000 (20:48 +0200)]
re PR middle-end/62263 (Good codegen for bitwise rotate requires code that is technically undefined behavior)

PR middle-end/62263
PR middle-end/82498
* tree-ssa-phiopt.c (value_replacement): Comment fix.  Handle
up to 2 preparation statements for ASSIGN in MIDDLE_BB.

* c-c++-common/rotate-8.c: Expect no PHIs in optimized dump.

From-SVN: r253761

7 years agore PR middle-end/62263 (Good codegen for bitwise rotate requires code that is technic...
Jakub Jelinek [Sat, 14 Oct 2017 18:47:14 +0000 (20:47 +0200)]
re PR middle-end/62263 (Good codegen for bitwise rotate requires code that is technically undefined behavior)

PR middle-end/62263
PR middle-end/82498
* tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N]
to be any operand_equal_p operands.  For & (B - 1) require
B to be power of 2.  Recognize
(X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns.

* c-c++-common/rotate-5.c (f2): New function.  Move old
function to ...
(f4): ... this.  Use 127 instead of 128.
(f3, f5, f6): New functions.
(main): Test all f[1-6] functions, with both 0 and 1 as
second arguments.
* c-c++-common/rotate-6.c: New test.
* c-c++-common/rotate-6a.c: New test.
* c-c++-common/rotate-7.c: New test.
* c-c++-common/rotate-7a.c: New test.
* c-c++-common/rotate-8.c: New test.

From-SVN: r253760

7 years agore PR bootstrap/82553 (memory_blockage breaks bootstrap on powerpc)
Uros Bizjak [Sat, 14 Oct 2017 17:46:49 +0000 (19:46 +0200)]
re PR bootstrap/82553 (memory_blockage breaks bootstrap on powerpc)

PR bootstrap/82553
* optabs.c (expand_memory_blockage): Fix call of
targetm.have_memory_blockage.

From-SVN: r253759

7 years agosem_elab.adb (In_Preelaborated_Context): A generic package subject to Remote_Call_Int...
Hristian Kirtchev [Sat, 14 Oct 2017 17:17:41 +0000 (17:17 +0000)]
sem_elab.adb (In_Preelaborated_Context): A generic package subject to Remote_Call_Interface is not a suitable...

gcc/ada/

2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_elab.adb (In_Preelaborated_Context): A generic package subject to
Remote_Call_Interface is not a suitable preelaboratd context when the
call appears in the package body.

gcc/testsuite/

2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>

* gnat.dg/remote_call_iface.ads, gnat.dg/remote_call_iface.adb: New
testcase.

From-SVN: r253758

7 years ago[multiple changes]
Pierre-Marie de Rodat [Sat, 14 Oct 2017 17:07:35 +0000 (17:07 +0000)]
[multiple changes]

2017-10-14  Eric Botcazou  <ebotcazou@adacore.com>

* layout.ads (Set_Elem_Alignment): Add Align parameter defaulted to 0.
* layout.adb (Set_Elem_Alignment): Likewise.  Use M name as maximum
alignment for consistency.  If Align is non-zero, use the minimum of
Align and M for the alignment.
* cstand.adb (Build_Float_Type): Use Set_Elem_Alignment instead of
setting the alignment directly.

2017-10-14  Ed Schonberg  <schonberg@adacore.com>

* sem_prag.adb (Analyze_Pragma, case Check): Defer evaluation of the
optional string in an Assert pragma until the expansion of the pragma
has rewritten it as a conditional statement, so that the string
argument is only evaluaed if the assertion fails. This is mandated by
RM 11.4.2.

2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>

* debug.adb: Switch -gnatd.v and associated flag are now used to
enforce the SPARK rules for elaboration in SPARK code.
* sem_elab.adb: Describe switch -gnatd.v.
(Process_Call): Verify the SPARK rules only when -gnatd.v is in effect.
(Process_Instantiation): Verify the SPARK rules only when -gnatd.v is
in effect.
(Process_Variable_Assignment): Clarify why variable assignments are
processed reglardless of whether -gnatd.v is in effect.
* doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update the
sections on elaboration code and compilation switches.
* gnat_ugn.texi: Regenerate.

2017-10-14  Gary Dismukes  <dismukes@adacore.com>

* exp_util.adb, freeze.adb, sem_aggr.adb, sem_util.ads, sem_util.adb,
sem_warn.adb: Minor reformattings.

From-SVN: r253757

7 years ago[multiple changes]
Pierre-Marie de Rodat [Sat, 14 Oct 2017 16:47:32 +0000 (16:47 +0000)]
[multiple changes]

2017-10-14  Ed Schonberg  <schonberg@adacore.com>

* doc/gnat_rm/implementation_defined_aspects.rst: Add documentation
for reverse iteration over formal containers.
* gnat_rm.texi: Regenerate.

2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_elab.adb (Ensure_Dynamic_Prior_Elaboration): Renamed to
Ensure_Prior_Elaboration_Dynamic for consistency reasons.
(Ensure_Static_Prior_Elaboration): Renamed to
Ensure_Prior_Elaboration_Static for consistency reasons.
(Info_Variable_Reference): Renamed to Info_Variable_Read in order to
reflect its new purpose.
(Is_Initialized): New routine.
(Is_Suitable_Variable_Reference): Renamed to Is_Suitable_Variable_Read
in order to reflect its new purpose.
(Is_Variable_Read): New routine.
(Output_Variable_Reference): Renamed to Output_Variable_Read in order
to reflect its new purpose.
(Process_Variable_Assignment): This routine now acts as a top level
dispatcher for variable assignments.
(Process_Variable_Assignment_Ada): New routine.
(Process_Variable_Assignment_SPARK): New routine.
(Process_Variable_Reference): Renamed to Process_Variable_Read in order
to reflects its new purpose. A reference to a variable is now suitable
for ABE processing only when it is a read. The logic in the routine now
reflects the latest SPARK elaboration rules.

2017-10-14  Justin Squirek  <squirek@adacore.com>

* sem_ch8.adb (Analyze_Subprogram_Renaming): Modify condition that
triggers marking on formal subprograms.

2017-10-14  Javier Miranda  <miranda@adacore.com>

* checks.adb (Ensure_Valid): Do not skip adding the validity check on
renamings of objects that come from the sources.

2017-10-14  Eric Botcazou  <ebotcazou@adacore.com>

* cstand.adb (Build_Float_Type): Move down Siz parameter, add Align
parameter and set the alignment of the type to Align.
(Copy_Float_Type): Adjust call to Build_Float_Type.
(Register_Float_Type): Add pragma Unreferenced for Precision.  Adjust
call to Build_Float_Type and do not set RM_Size and Alignment.

From-SVN: r253756

7 years agoMakefile.rtl (GNATRTL_NONTASKING_OBJ): Add s-soliin to GNATRTL_NONTASKING_OBJ.
Patrick Bernardi [Sat, 14 Oct 2017 16:33:30 +0000 (16:33 +0000)]
Makefile.rtl (GNATRTL_NONTASKING_OBJ): Add s-soliin to GNATRTL_NONTASKING_OBJ.

2017-10-14  Patrick Bernardi  <bernardi@adacore.com>

* Makefile.rtl (GNATRTL_NONTASKING_OBJ): Add s-soliin to
GNATRTL_NONTASKING_OBJ.

From-SVN: r253755

7 years ago[multiple changes]
Pierre-Marie de Rodat [Sat, 14 Oct 2017 16:25:21 +0000 (16:25 +0000)]
[multiple changes]

2017-10-14  Bob Duff  <duff@adacore.com>

* exp_ch6.adb (Is_Build_In_Place_Result_Type): Include code for
enabling b-i-p for nonlimited controlled types (but disabled).

2017-10-14  Justin Squirek  <squirek@adacore.com>

* sem_elab.adb (Is_Suitable_Variable_Assignment): Replace call to
Has_Warnings_Off with Warnings_Off.

2017-10-14  Piotr Trojanek  <trojanek@adacore.com>

* sinfo.ads (Generic_Parent): Remove wrong (possibly obsolete) comment.

2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch3.adb (Analyze_Declarations): Analyze the contract of an
enclosing package at the end of the visible declarations.
* sem_prag.adb (Analyze_Initialization_Item): Suppress the analysis of
an initialization item which is undefined due to some illegality.

2017-10-14  Patrick Bernardi  <bernardi@adacore.com>

* ali.adb: Add new ALI line 'T' to read the number of tasks contain
within each unit that require a default-sized primary and secondary
stack to be generated by the binder.
(Scan_ALI): Scan new 'T' lines.
* ali.ads: Add Primary_Stack_Count and Sec_Stack_Count to Unit_Record.
* bindgen.adb (Gen_Output_File): Count the number of default-sized
stacks within the closure that are to be created by the binder.
(Gen_Adainit, Gen_Output_File_Ada): Generate default-sized secondary
stacks and record these in System.Secodnary_Stack.
(Resolve_Binder_Options): Check if System.Secondary_Stack is in the
closure of the program being bound.
* bindusg.adb (Display): Add "-Q" switch. Remove rouge "--RTS" comment.
* exp_ch3.adb (Count_Default_Sized_Task_Stacks): New routine.
(Expand_N_Object_Declaration): Count the number of default-sized stacks
used by task objects contained within the object whose declaration is
being expanded.  Only performed when either the restrictions
No_Implicit_Heap_Allocations or No_Implicit_Task_Allocations are in
effect.
* exp_ch9.adb (Create_Secondary_Stack_For_Task): New routine.
(Expand_N_Task_Type_Declaration): Create a secondary stack as part of
the expansion of a task type if the size of the stack is known at
run-time and the restrictions No_Implicit_Heap_Allocations or
No_Implicit_Task_Allocations are in effect.
(Make_Task_Create_Call): If using a restricted profile provide
secondary stack parameter: either the statically created stack or null.
* lib-load.adb (Create_Dummy_Package_Unit, Load_Unit,
Load_Main_Source): Include Primary_Stack_Count and Sec_Stack_Count in
Unit_Record initialization expressions.
* lib-writ.adb (Add_Preprocessing_Dependency,
Ensure_System_Dependency): Include Primary_Stack_Count and
Sec_Stack_Count in Unit_Record initialization expression.
(Write_ALI): Write T lines.
(Write_Unit_Information): Do not output 'T' lines if there are no
stacks for the binder to generate.
* lib-writ.ads: Updated library information documentation to include
new T line entry.
* lib.adb (Increment_Primary_Stack_Count): New routine.
(Increment_Sec_Stack_Count): New routine.
(Primary_Stack_Count): New routine.
(Sec_Stack_Count): New routine.
* lib.ads: Add Primary_Stack_Count and Sec_Stack_Count components to
Unit_Record and updated documentation.
(Increment_Primary_Stack_Count): New routine along with pragma Inline.
(Increment_Sec_Stack_Count): New routine along with pragma Inline.
(Primary_Stack_Count): New routine along with pragma Inline.
(Sec_Stack_Count): New routine along with pragma Inline.
* opt.ads: New constant No_Stack_Size. Flag Default_Stack_Size
redefined.  New flag Default_Sec_Stack_Size and
Quantity_Of_Default_Size_Sec_Stacks.
* rtfinal.c Fixed erroneous comment.
* rtsfind.ads: Moved RE_Default_Secondary_Stack_Size from
System.Secondary_Stack to System.Parameters.  Add RE_SS_Stack.
* sem_util.adb (Number_Of_Elements_In_Array): New routine.
* sem_util.ads (Number_Of_Elements_In_Array): New routine.
* switch-b.adb (Scan_Binder_Switches): Scan "-Q" switch.
* libgnarl/s-solita.adb (Get_Sec_Stack_Addr): Removed routine.
(Set_Sec_Stack_Addr): Removed routine.
(Get_Sec_Stack): New routine.
(Set_Sec_Stack): New routine.
(Init_Tasking_Soft_Links): Update System.Soft_Links reference to
reflect new procedure and global names.
* libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb,
libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__solaris.adb,
libgnarl/s-taprop__vxworks.adb (Register_Foreign_Thread): Update
parameter profile to allow the secondary stack size to be specified.
* libgnarl/s-tarest.adb (Create_Restricted_Task): Update the parameter
profile to include Sec_Stack_Address.  Update Tasking.Initialize_ATCB
call to remove Secondary_Stack_Size reference.  Add secondary stack
address and size to SSL.Create_TSD call.
(Task_Wrapper): Remove secondary stack creation.
* libgnarl/s-tarest.ads (Create_Restricted_Task,
Create_Restricted_Task_Sequential): Update parameter profile to include
Sec_Stack_Address and clarify the Size parameter.
* libgnarl/s-taskin.adb (Initialize_ATCB): Remove Secondary_Stack_Size
from profile and body.
(Initialize): Remove Secondary_Stack_Size from Initialize_ATCB call.
* libgnarl/s-taskin.ads: Removed component Secondary_Stack_Size from
Common_ATCB.
(Initialize_ATCB): Update the parameter profile to remove
Secondary_Stack_Size.
* libgnarl/s-tassta.adb (Create_Task): Updated parameter profile and
call to Initialize_ATCB.  Add secondary stack address and size to
SSL.Create_TSD call, and catch any storage exception from the call.
(Finalize_Global_Tasks): Update System.Soft_Links references to reflect
new subprogram and component names.
(Task_Wrapper): Remove secondary stack creation.
(Vulnerable_Complete_Master): Update to reflect TSD changes.
* libgnarl/s-tassta.ads: Reformat comments.
(Create_Task): Update parameter profile.
* libgnarl/s-tporft.adb (Register_Foreign_Thread): Update parameter
profile to include secondary stack size. Remove secondary size
parameter from Initialize_ATCB call and add it to Create_TSD call.
* libgnat/s-parame.adb, libgnat/s-parame__rtems.adb,
libgnat/s-parame__vxworks.adb (Default_Sec_Stack_Size): New routine.
* libgnat/s-parame.ads, libgnat/s-parame__ae653.ads,
libgnat/s-parame__hpux.ads, libgnat/s-parame__vxworks.ads: Remove type
Percentage.  Remove constants Dynamic, Sec_Stack_Percentage and
Sec_Stack_Dynamic.  Add constant Runtime_Default_Sec_Stack_Size and
Sec_Stack_Dynamic.
(Default_Sec_Stack_Size): New routine.
* libgnat/s-secsta.adb, libgnat/s-secsta.ads: New implementation. Is
now Preelaborate.
* libgnat/s-soflin.adb: Removed unused with-clauses.  With
System.Soft_Links.Initialize to initialize non-tasking TSD.
(Create_TSD): Update parameter profile. Initialize the TSD and
unconditionally call SS_Init.
(Destroy_TSD): Update SST.SS_Free call.
(Get_Sec_Stack_Addr_NT, Get_Sec_Stack_Addr_Soft, Set_Sec_Stack_Addr_NT,
Set_Sec_Stack_Addr_Soft): Remove routines.
(Get_Sec_Stack_NT, Get_Sec_Stack_Soft, Set_Sec_Stack_NT,
Set_Sec_Stack_Soft): Add routines.
(NT_TSD): Move to private part of package specification.
* libgnat/s-soflin.ads: New types Get_Stack_Call and Set_Stack_Call
with suppressed access checks.  Renamed *_Sec_Stack_Addr_* routines and
objects to *_Sec_Stack_*.  TSD: removed warning suppression and
component intialization. Changed Sec_Stack_Addr to Sec_Stack_Ptr.
(Create_TSD): Update parameter profile.
(NT_TSD): Move to private section from body.
* libgnat/s-soliin.adb, libgnat/s-soliin.ads: New files.
* libgnat/s-thread.ads (Thread_Body_Enter): Update parameter profile.
* libgnat/s-thread__ae653.adb (Get_Sec_Stack_Addr, Set_Sec_Stack_Addr):
Remove routine.
(Get_Sec_Stack, Set_Sec_Stack): Add routine.
(Thread_Body_Enter): Update parameter profile and body to adapt to new
System.Secondary_Stack.
(Init_RTS): Update body for new System.Soft_Links names.
* gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add
s-soliin.o.

From-SVN: r253754

7 years agore PR bootstrap/82548 (After -r 253646 GCC 8.0 can't build cross compiler for mingw32)
Jakub Jelinek [Sat, 14 Oct 2017 12:32:17 +0000 (14:32 +0200)]
re PR bootstrap/82548 (After -r 253646 GCC 8.0 can't build cross compiler for mingw32)

PR bootstrap/82548
* config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*,
x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append
objects to extra_objs instead of overwriting it.

From-SVN: r253753

7 years ago* optabs.c (expand_memory_blockage): Use targetm.gen_memory_blockage.
Uros Bizjak [Sat, 14 Oct 2017 10:46:20 +0000 (12:46 +0200)]
* optabs.c (expand_memory_blockage): Use targetm.gen_memory_blockage.

From-SVN: r253752

7 years agosync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2): Use any_fp_register_operand...
Uros Bizjak [Sat, 14 Oct 2017 09:31:29 +0000 (11:31 +0200)]
sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2): Use any_fp_register_operand as operand[3] predicate.

* config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
Use any_fp_register_operand as operand[3] predicate.  Simplify
equality test for operands[2] and operands[4] memory location.
(LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
(FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New.
(LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
(FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use
any_fp_register_operand as operand[1] predicate.  Simplify
equality test for operands[0] and operands[3] memory location.
(LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
(FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New.
(LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto.

From-SVN: r253751

7 years agotarget-insns.def: Add memory_blockage.
Uros Bizjak [Sat, 14 Oct 2017 09:10:45 +0000 (11:10 +0200)]
target-insns.def: Add memory_blockage.

* target-insns.def: Add memory_blockage.
* optabs.c (expand_memory_blockage): New function.
(expand_asm_memory_barrier): Rename ...
(expand_asm_memory_blockage): ... to this.
(expand_mem_thread_fence): Call expand_memory_blockage
instead of expand_asm_memory_barrier.
(expand_mem_singnal_fence): Ditto.
(expand_atomic_load): Ditto.
(expand_atomic_store): Ditto.
* doc/md.texi (Standard Pattern Names For Generation):
Document memory_blockage instruction pattern.

From-SVN: r253750

7 years agore PR rtl-optimization/81423 (Wrong code at -O2)
Jakub Jelinek [Sat, 14 Oct 2017 08:34:11 +0000 (10:34 +0200)]
re PR rtl-optimization/81423 (Wrong code at -O2)

PR rtl-optimization/81423
* gcc.c-torture/execute/pr81423.c (foo): Add missing cast.  Change L
suffixes to LL.
(main): Punt if either long long isn't 64-bit or int isn't 32-bit.

From-SVN: r253749