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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
GCC Administrator [Wed, 18 Oct 2017 00:16:14 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r253840
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
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
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
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
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
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
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
Martin Liska [Tue, 17 Oct 2017 19:17:36 +0000 (19:17 +0000)]
Add gcc_checking_assert for sbitmap.c.
From-SVN: r253825
Jan Hubicka [Tue, 17 Oct 2017 17:37:23 +0000 (19:37 +0200)]
* i386/i386.c (x86_builtin_vectorization_cost): Likewise.
From-SVN: r253824
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
GCC Administrator [Tue, 17 Oct 2017 00:16:15 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r253801
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
GCC Administrator [Mon, 16 Oct 2017 00:16:13 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r253775
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
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
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
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
GCC Administrator [Sun, 15 Oct 2017 00:16:15 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r253767
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Sebastian Perta [Sat, 14 Oct 2017 00:33:58 +0000 (00:33 +0000)]
rl78.c (rl78_emit_libcall): New function.
[gcc]
* config/rl78/rl78.c (rl78_emit_libcall): New function.
* config/rl78/rl78-protos.h (rl78_emit_libcall): New function.
* config/rl78/rl78.md: New define_expand "adddi3".
[libgcc]
* config/rl78/adddi3.S: New assembly file.
* config/rl78/t-rl78: Added adddi3.S to LIB2ADD.
From-SVN: r253748
GCC Administrator [Sat, 14 Oct 2017 00:16:16 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r253747
Jakub Jelinek [Fri, 13 Oct 2017 20:19:17 +0000 (22:19 +0200)]
re PR sanitizer/82353 (runtime ubsan crash)
PR sanitizer/82353
* g++.dg/ubsan/pr82353-2.C: New test.
* g++.dg/ubsan/pr82353-2-aux.cc: New file.
* g++.dg/ubsan/pr82353-2.h: New file.
From-SVN: r253744
Jakub Jelinek [Fri, 13 Oct 2017 20:06:40 +0000 (22:06 +0200)]
c-gimplify.c (c_gimplify_expr): Handle [LR]ROTATE_EXPR like [LR]SHIFT_EXPR.
* c-gimplify.c (c_gimplify_expr): Handle [LR]ROTATE_EXPR like
[LR]SHIFT_EXPR.
From-SVN: r253742
Jan Hubicka [Fri, 13 Oct 2017 20:04:00 +0000 (22:04 +0200)]
cfghooks.c (verify_flow_info): Disable check that all probabilities are set correctly.
* cfghooks.c (verify_flow_info): Disable check that all probabilities
are set correctly.
From-SVN: r253741