aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2019-07-04[Ada] Reduce emitted code size in CCG for aggregate assignmentArnaud Charlet2-1/+7
2019-07-04 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * exp_aggr.adb (Check_Component): Take into account type conversions. From-SVN: r273046
2019-07-04[Ada] GNAT.Sockets: fix socket timeout on recent Windows versionsDmitriy Anisimkov7-108/+238
2019-07-04 Dmitriy Anisimkov <anisimko@adacore.com> gcc/ada/ * doc/gnat_ugn/platform_specific_information.rst: Document Windows socket timeout particularity. * gnat_ugn.texi: Regenerate. * gsocket.h: Include versionhelpers.h. * socket.c (__gnat_minus_500ms): New function. * libgnat/g-sothco.ads (Minus_500ms_Windows_Timeout): New imported function. * libgnat/g-socket.adb (Set_Socket_Option): Refactor to remove 500ms from the requested timeout only on old Windows version. From-SVN: r273045
2019-07-04[Ada] Get_Scos: Remove bogus, dead codeThomas Quinot2-6/+4
The nonsensical snippet was found by Codepeer. No behavior change. 2019-07-04 Thomas Quinot <quinot@adacore.com> gcc/ada/ * get_scos.adb: Remove bogus, dead code. From-SVN: r273044
2019-07-04[Ada] Spurious dimensionality error on aggregate with "others" assoc.Ed Schonberg6-3/+126
This patch fixes a spurious dimensionality error on an array aggregate with a single "others' clause whose expression is a dimensioned entity, The expansion of the aggregate may create copies of the expression, and the dimensionality check must use the type of the expression to retrieve the proper dimension information to check against the dimensions of the array component type. 2019-07-04 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_dim.adb (Analyze_Dimension_Array_Aggregate): If the component is an entity name, its dimensions are those of its type. gcc/testsuite/ * gnat.dg/dimensions2.adb, gnat.dg/dimensions2_phys.ads, gnat.dg/dimensions2_real_numbers.ads: New testcase. From-SVN: r273043
2019-07-04tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr argument.Richard Biener3-27/+47
2019-07-04 Richard Biener <rguenther@suse.de> * tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr argument. * tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move globals into... (struct vn_walk_cb_data): New callback data struct. (vn_reference_lookup_2): Adjust. (vn_reference_lookup_3): Likewise. (vn_reference_lookup_pieces): Likewise. (vn_reference_lookup): Likewise, get last_vuse_ptr argument. (visit_reference_op_load): Adjust. From-SVN: r273042
2019-07-04re PR tree-optimization/91063 (ICE in set_vinfo_for_stmt, at ↵Jakub Jelinek4-3/+36
tree-vectorizer.c:676) PR tree-optimization/91063 * tree-vect-stmts.c (vect_init_vector): Call gsi_remove to remove stmt from stmts sequence before calling vect_init_vector_1. Formatting fix. * gcc.dg/gomp/pr91063.c: New test. From-SVN: r273041
2019-07-04re PR target/88833 ([SVE] Redundant moves for WHILELO-based loops)Prathamesh Kulkarni6-45/+136
2019-07-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> PR target/88833 * fwprop.c (reg_single_def_p): New function. (propagate_rtx_1): Add unconditional else inside RTX_EXTRA case. (forward_propagate_into): New parameter reg_prop_only with default value false. Propagate def's src into loop only if SET_SRC and SET_DEST of def_set have single definitions. Likewise if reg_prop_only is set to true. (fwprop): New param fwprop_addr_p. Integrate fwprop_addr into fwprop. (fwprop_addr): Remove. (pass_rtl_fwprop_addr::execute): Call fwprop with arg set to true. (pass_rtl_fwprop::execute): Call fwprop with arg set to false. * simplify-rtx.c (simplify_subreg): Add case for vector comparison. * config/i386/sse.md (UNSPEC_BLENDV): Adjust pattern. testsuite/ * gfortran.dg/pr88833.f90: New test. From-SVN: r273040
2019-07-04re PR tree-optimization/91069 (Miscompare of 453.povray since r272843)Jakub Jelinek2-2/+8
PR middle-end/91069 * gcc.dg/pr91069.c (v2df): Use 2 * sizeof (double) instead of hardcoded 16 for better portability. (v2di): Change from long vector to long long vector. Use 2 * sizeof (long long) instead of hardcoded 16. From-SVN: r273039
2019-07-04omp-low.c (lower_omp_scan): Call lower_omp on stmt's body in worksharing ↵Jakub Jelinek2-1/+6
loop scans. * omp-low.c (lower_omp_scan): Call lower_omp on stmt's body in worksharing loop scans. From-SVN: r273038
2019-07-04re PR tree-optimization/91074 (c-c++-common/gomp/scan-3.c fails with ICE ↵Jakub Jelinek2-0/+5
starting with r272958) PR tree-optimization/91074 * omp-low.c (lower_omp_for_scan): Set DECL_GIMPLE_REG_P on cplx temporary. From-SVN: r273037
2019-07-04re PR rtl-optimization/90756 (g++ ICE in convert_move, at expr.c:218 on i686 ↵Jakub Jelinek4-10/+38
and s390x) PR rtl-optimization/90756 * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it for VECTOR_TYPE_P. * gcc.dg/pr90756.c: New test. From-SVN: r273036
2019-07-04compiler: optimize 0,1,2-case select statementIan Lance Taylor5-5/+285
For a select statement with zero-, one-, or two-case with a default case, we can generate simpler code instead of calling the generic selectgo. A zero-case select is just blocking the execution. A one-case select is mostly just executing the case. A two-case select with a default case is a non-blocking send or receive. We add these special cases for lowering a select statement. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/184998 From-SVN: r273034
2019-07-04[MIPS][Testsuite] Specify msa-fmadd.c abis.Chenghua Xu3-1/+108
gcc/testsuite/ * gcc.target/mips/mips-fmadd.c: Rename to ... * gcc.target/mips/mips-fmadd-o32.c: ... Here; add abi=32. * gcc.target/mips/mips-fmadd-n64.c: New. From-SVN: r273033
2019-07-04compiler: fix indentation of select statement AST dumpIan Lance Taylor2-1/+2
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/184997 From-SVN: r273032
2019-07-04Daily bump.GCC Administrator1-1/+1
From-SVN: r273031
2019-07-03compiler: set varargs lowered for imported call expressionsIan Lance Taylor2-2/+2
Fix compiler buglet: varargs lowering happens before inlinable function bodies are written out to export data, so set the "varargs lowered" flag on call expressions that we import. Fixes golang/go#32922 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/184919 From-SVN: r273026
2019-07-03[AArch64] Remove constraint strings from define_expand constructsDennis Zhang5-370/+382
A number of AArch64 define_expand patterns have specified constraints for their operands. But the constraint strings are ignored at expand time and are therefore redundant/useless. We now avoid specifying constraints in new define_expands, but we should clean up the existing define_expand definitions. For example, the constraint "=w" is removed in the following case: (define_expand "sqrt<mode>2" [(set (match_operand:GPF_F16 0 "register_operand" "=w") The "" marks with an empty constraint in define_expand are removed as well. 2019-07-03 Dennis Zhang <dennis.zhang@arm.com> gcc/ * config/aarch64/aarch64.md: Remove redundant constraints from define_expand but keep some patterns untouched if they are specially selected by TARGET_SECONDARY_RELOAD hook. * config/aarch64/aarch64-sve.md: Likewise. * config/aarch64/atomics.md: Remove redundant constraints from define_expand. * config/aarch64/aarch64-simd.md: Likewise. From-SVN: r273021
2019-07-03[Darwin] Revise pie,no-pie and rdynamic driver specs.Iain Sandoe2-13/+20
Processing these early and pushing the corresponding Xlinker lines has the effect that the driver then supposes that there are linker inputs, and causes a link line to be created when it is not needed The solution is to place these drive specs into the link spec and claim them at the end of that. 2019-07-03 Iain Sandoe <iain@sandoe.co.uk> * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases. (RDYNAMIC): Rename to, DARWIN_RDYNAMIC. (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker clauses. (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and DARWIN_NOPIE_SPEC. From-SVN: r273017
2019-07-03[Darwin] Some TLC for older Darwin versions.Iain Sandoe3-30/+75
The library handling and some of the options for creating the crts for the older PPC Darwin versions had bit-rotted somewhat. This adjusts the build criteria for the crts to avoid newer ld64 versions warnings about mismatches in build and object versions. Added to some of the comments that it's documented why the specs are as they are. 2019-07-03 Iain Sandoe <iain@sandoe.co.uk> gcc/ * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin. (STARTFILE_SPEC): Split crt3 into a separate spec. (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec. (DARWIN_CRT2_SPEC): New. (DARWIN_CRT3_SPEC): New. (MIN_LD64_OMIT_STUBS): Revise to 62.1. * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions. (DARWIN_CRT3_SPEC): New. libgcc/ 2019-07-03 Iain Sandoe <iain@sandoe.co.uk> * config.host (powerpc-*-darwin*,powerpc64-*-darwin*): Revise crt list. * config/rs6000/t-darwin: Build crt3_2 for older systems. Revise mmacosx-version-min for crts to run across all system versions. * config/rs6000/t-darwin64 (LIB2ADD): Remove. * config/t-darwin: Revise mmacosx-version-min for crts to run across system versions >= 10.4. From-SVN: r273016
2019-07-03altivec.md (altivec_mov<mode>, [...]): Change the RTL attribute "length" ↵Michael Meissner4-43/+70
from "4" to "*" to allow the length attribute... 2019-07-03 Michael Meissner <meissner@linux.ibm.com> * config/rs6000/altivec.md (altivec_mov<mode>, VM2 iterator): Change the RTL attribute "length" from "4" to "*" to allow the length attribute to be adjusted automatically for prefixed load, store, and add immediate instructions. * config/rs6000/rs6000.md (extendhi<mode>2, EXTHI iterator): Likewise. (extendsi<mode>2, EXTSI iterator): Likewise. (movsi_internal1): Likewise. (movsi_from_sf): Likewise. (movdi_from_sf_zero_ext): Likewise. (mov<mode>_internal): Likewise. (movcc_internal1, QHI iterator): Likewise. (mov<mode>_softfloat, FMOVE32 iterator): Likewise. (movsf_from_si): Likewise. (mov<mode>_hardfloat32, FMOVE64 iterator): Likewise. (mov<mode>_softfloat64, FMOVE64 iterator): Likewise. (mov<mode>, FMOVE128 iterator): Likewise. (movdi_internal64): Likewise. * config/rs6000/vsx.md (vsx_le_permute_<mode>, VSX_TI iterator): Likewise. (vsx_le_undo_permute_<mode>, VSX_TI iterator): Likewise. (vsx_mov<mode>_64bit, VSX_M iterator): Likewise. (vsx_mov<mode>_32bit, VSX_M iterator): Likewise. (vsx_splat_v4sf): Likewise. From-SVN: r273013
2019-07-03Fix store merging tests on ArmWilco Dijkstra5-6/+13
Fix the failing store merging test on Arm. Aligning variables fixes a few cases, otherwise disable the test on Arm. All store merging tests now pass. Committed as obvious. testsuite/ * gcc.dg/store_merging_27.c: Fix test for Arm. * gcc.dg/store_merging_28.c: Likewise. * gcc.dg/store_merging_29.c: Likewise. * gcc.dg/tree-ssa/dump-6.c: Likewise. From-SVN: r273011
2019-07-03compiler: include transitive imports in the type descriptor listIan Lance Taylor5-18/+80
In CL 179598, we were using Gogo::packages_, when compiling the main package, as the list of packages of which we need to register the type descriptors. This is not complete. It only includes main's direct import and one-level indirect imports. It does not include all the packages transitively imported. To fix that, we need to track all the transitive imports. We have almost already done that, for init functions. However, there may be packages that don't need init functions but do need to register type descriptors. For them, we add a dummy init function to its export data. So when we compile the main package we will see all the transitive imports. The dummy init functions are not real functions and are not called. Fixes golang/go#32901. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/184717 From-SVN: r273009
2019-07-03PR debug/90981 Empty .debug_addr crashes -gdwarf-5 -gsplit-dwarfMark Wielaard3-25/+45
Even if there was no, or an empty address list we would try to generate a header for the .debug_addr section with -gdwarf-5 and -gsplit-dwarf. The skeleton DIE would also get a (dangling) DW_AT_addr_base in that case. PR debug/90981 * dwarf2out.c (add_top_level_skeleton_die_attrs): Only add DW_AT_addr_base if there is actually a .debug_addr section with addresses. (output_addr_table): Add DWARF5 table header generation here after checking there are actually any addresses from... (dwarf2out_finish): ...here. * testsuite/g++.dg/pr90981.C: New test. From-SVN: r273008
2019-07-03re PR tree-optimization/91069 (Miscompare of 453.povray since r272843)Richard Biener4-1/+32
2019-07-03 Richard Biener <rguenther@suse.de> PR middle-end/91069 * match.pd (vec_perm -> bit_insert): Fix element read from first vector. * gcc.dg/pr91069.c: New testcase. From-SVN: r273007
2019-07-03Add dbgcnt for gimple_match and generic_match.Martin Liska5-2/+15
2019-07-03 Martin Liska <mliska@suse.cz> * dbgcnt.def (DEBUG_COUNTER): Add match debug counter. * genmatch.c (dt_simplify::gen_1): Generate dbgcnt condition. * generic-match-head.c: Include dbgcnt.h. * gimple-match-head.c: Likewise. From-SVN: r273006
2019-07-03Rename SINGE_VALUE to TOPN_VALUES counters.Martin Liska7-45/+71
2019-07-03 Martin Liska <mliska@suse.cz> * gcov-counter.def (GCOV_COUNTER_V_SINGLE): Remove. (GCOV_COUNTER_V_TOPN): New. (GCOV_COUNTER_V_INDIR): Use _topn. * gcov-io.h (GCOV_DISK_SINGLE_VALUES): Remove. (GCOV_TOPN_VALUES): New. (GCOV_SINGLE_VALUE_COUNTERS): Remove. (GCOV_TOPN_VALUES_COUNTERS): New. * profile.c (instrument_values): Use HIST_TYPE_TOPN_VALUES. * tree-profile.c: (gimple_init_gcov_profiler): Rename variables from one_value to topn_values. (gimple_gen_one_value_profiler): Remove. (gimple_gen_topn_values_profiler): New function. * value-prof.c (dump_histogram_value): Use TOPN_VALUES names instead of SINGLE_VALUE. (stream_out_histogram_value): Likewise. (stream_in_histogram_value): Likewise. (get_most_common_single_value): Likewise. (gimple_divmod_fixed_value_transform): Likewise. (gimple_stringops_transform): Likewise. (gimple_divmod_values_to_profile): Likewise. (gimple_stringops_values_to_profile): Likewise. (gimple_find_values_to_profile): Likewise. * value-prof.h (enum hist_type): Rename to TOPN. (gimple_gen_one_value_profiler): Remove. (gimple_gen_topn_values_profiler): New. 2019-07-03 Martin Liska <mliska@suse.cz> * Makefile.in: Use topn_values instead of one_value names. * libgcov-merge.c (__gcov_merge_single): Move to ... (__gcov_merge_topn): ... this. (merge_single_value_set): Move to ... (merge_topn_values_set): ... this. * libgcov-profiler.c (__gcov_one_value_profiler_body): Move to ... (__gcov_topn_values_profiler_body): ... this. (__gcov_one_value_profiler_v2): Move to ... (__gcov_topn_values_profiler): ... this. (__gcov_one_value_profiler_v2_atomic): Move to ... (__gcov_topn_values_profiler_atomic): ... this. (__gcov_indirect_call_profiler_v4): Remove. * libgcov-util.c (__gcov_single_counter_op): Move to ... (__gcov_topn_counter_op): ... this. * libgcov.h (L_gcov_merge_single): Remove. (L_gcov_merge_topn): New. (__gcov_merge_single): Remove. (__gcov_merge_topn): New. (__gcov_one_value_profiler_v2): Move to .. (__gcov_topn_values_profiler): ... this. (__gcov_one_value_profiler_v2_atomic): Move to ... (__gcov_topn_values_profiler_atomic): ... this. From-SVN: r273005
2019-07-03Support N values in libgcov for single value counter type.Martin Liska2-4/+6
2019-07-03 Martin Liska <mliska@suse.cz> * gcc.dg/tree-prof/val-prof-2.c: Update scanned pattern as we do now better. 2019-07-03 Martin Liska <mliska@suse.cz> * libgcov-merge.c (merge_single_value_set): Support N values. * libgcov-profiler.c (__gcov_one_value_profiler_body): Likewise. From-SVN: r273004
2019-07-03dwarf2out.c (add_scalar_info): Add back refererence to existing DIE if it ↵Eric Botcazou4-0/+28
has the DW_AT_data_member_location... * dwarf2out.c (add_scalar_info): Add back refererence to existing DIE if it has the DW_AT_data_member_location attribute. From-SVN: r273002
2019-07-03gimple-pretty-print.c (dump_ternary_rhs): Fix BIT_INSERT_EXPR dumping.Richard Biener2-3/+12
2019-07-03 Richard Biener <rguenther@suse.de> * gimple-pretty-print.c (dump_ternary_rhs): Fix BIT_INSERT_EXPR dumping. From-SVN: r273001
2019-07-03[aarch64]: force frame pointer setup before tlsdesc callSylvia Taylor2-2/+11
The operation that sets up the tlsdesc register is really a function call; as such, the frame pointer should really be correctly set up before this happens. However, because it does not appear as a call_insn in the RTL the normal dependencies are not added automatically. We fix this by adding a USE of FP_REGNUM to prevent migration of the frame-pointer setup past the call by the scheduler. If a frame pointer is not being used, this is harmless since it only represents a scheduling constraint. 2019-07-03 Sylvia Taylor <sylvia.taylor@arm.com> * config/aarch64/aarch64.md (FP_REGNUM): New constant. (tlsdesc_small_advsimd_<mode>): Add use of FP_REGNUM. (tlsdesc_small_sve_<mode>): Likewise. From-SVN: r273000
2019-07-03Add zstd support for LTO bytecode compression.Martin Liska13-30/+402
2019-07-03 Martin Liska <mliska@suse.cz> * Makefile.in: Define ZSTD_LIB. * common.opt: Adjust compression level to support also zstd levels. * config.in: Regenerate. * configure: Likewise. * configure.ac: Add --with-zstd and --with-zstd-include options and detect ZSTD. * doc/install.texi: Mention zstd dependency. * gcc.c: Print supported LTO compression algorithms. * lto-compress.c (lto_normalized_zstd_level): Likewise. (lto_compression_zstd): Likewise. (lto_uncompression_zstd): Likewise. (lto_end_compression): Dispatch in between zlib and zstd. (lto_compression_zlib): Mark with ATTRIBUTE_UNUSED. (lto_uncompression_zlib): Make it static. * lto-compress.h (lto_end_uncompression): Fix GNU coding style. * lto-section-in.c (lto_get_section_data): Pass info about used compression. * lto-streamer-out.c: By default use zstd when possible. * timevar.def (TV_IPA_LTO_DECOMPRESS): Rename to decompression (TV_IPA_LTO_COMPRESS): Likewise for compression. From-SVN: r272996
2019-07-03Add .gnu.lto_.lto section.Martin Liska7-27/+88
2019-07-03 Martin Liska <mliska@suse.cz> * lto-section-in.c (lto_get_section_data): Add "lto" section. * lto-section-out.c (lto_destroy_simple_output_block): Never compress LTO_section_lto section. * lto-streamer-out.c (produce_asm): Do not set major_version and minor_version. (lto_output_toplevel_asms): Likewise. (produce_lto_section): New function. (lto_output): Call produce_lto_section. (lto_write_mode_table): Do not set major_version and minor_version. (produce_asm_for_decls): Likewise. * lto-streamer.h (enum lto_section_type): Add LTO_section_lto type. (struct lto_header): Remove. (struct lto_section): New struct. (struct lto_simple_header): Do not inherit from lto_header. (struct lto_file_decl_data): Add lto_section_header field. 2019-07-03 Martin Liska <mliska@suse.cz> * lto-common.c: Read LTO section and verify header. From-SVN: r272995
2019-07-03Remove another bunch of dead assignment.Martin Liska23-61/+70
2019-07-03 Martin Liska <mliska@suse.cz> * lra-eliminations.c (eliminate_regs_in_insn): Remove dead assignemts. * reg-stack.c (check_asm_stack_operands): Likewise. * tree-ssa-structalias.c (create_function_info_for): Likewise. * tree-vect-generic.c (expand_vector_operations_1): Likewise. * config/i386/i386-expand.c (ix86_expand_sse2_mulvxdi3): Use force_expand_binop. 2019-07-03 Martin Liska <mliska@suse.cz> * c-common.c (try_to_locate_new_include_insertion_point): Remove dead assignemts. 2019-07-03 Martin Liska <mliska@suse.cz> * call.c (build_new_op_1): Remove dead assignemts. * typeck.c (cp_build_binary_op): Likewise. 2019-07-03 Martin Liska <mliska@suse.cz> * check.c (gfc_check_c_funloc): Remove dead assignemts. * decl.c (variable_decl): Likewise. * resolve.c (resolve_typebound_function): Likewise. * simplify.c (gfc_simplify_matmul): Likewise. (gfc_simplify_scan): Likewise. * trans-array.c (gfc_could_be_alias): Likewise. * trans-common.c (add_equivalences): Likewise. * trans-expr.c (trans_class_vptr_len_assignment): Likewise. (gfc_trans_array_constructor_copy): Likewise. (gfc_trans_assignment_1): Likewise. * trans-intrinsic.c (conv_intrinsic_atomic_op): Likewise. * trans-openmp.c (gfc_omp_finish_clause): Likewise. * trans-types.c (gfc_get_array_descriptor_base): Likewise. * trans.c (gfc_build_final_call): Likewise. 2019-07-03 Martin Liska <mliska@suse.cz> * line-map.c (linemap_get_expansion_filename): Remove dead assignemts. * mkdeps.c (make_write): Likewise. From-SVN: r272994
2019-07-03Handle '\0' in strcmp in RTL expansion (PR tree-optimization/90892).Martin Liska4-3/+39
2019-07-03 Martin Liska <mliska@suse.cz> PR tree-optimization/90892 * builtins.c (inline_expand_builtin_string_cmp): Handle '\0' in string constants. 2019-07-03 Martin Liska <mliska@suse.cz> PR tree-optimization/90892 * gcc.dg/pr90892.c: New test. From-SVN: r272993
2019-07-03Add to same comdate group only if set (PR middle-end/90899)Martin Liska4-1/+19
2019-07-03 Martin Liska <mliska@suse.cz> PR middle-end/90899 * multiple_target.c (create_dispatcher_calls): Add to comdat group only if set for ifunc. 2019-07-03 Martin Liska <mliska@suse.cz> PR middle-end/90899 * gcc.target/i386/pr90899.c: New test. From-SVN: r272992
2019-07-03Fix use-after-scope in host-mingw32.c (PR target/88056).Martin Liska2-2/+9
2019-07-03 Martin Liska <mliska@suse.cz> PR target/88056 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Define local_object_name in outer scope in order to handle use-after-scope issue. From-SVN: r272991
2019-07-03Add -fprofile-note option.Martin Liska4-5/+26
2019-07-03 Martin Liska <mliska@suse.cz> * common.opt: Add fprofile-note. * coverage.c (coverage_init): Append the option to bbg_file_name. * doc/invoke.texi: Document -fprofile-note. From-SVN: r272990
2019-07-03re PR tree-optimization/91033 (ICE in vect_analyze_loop, at ↵Jakub Jelinek8-14/+53
tree-vect-loop.c:2416) PR tree-optimization/91033 * tree-vectorizer.h (vect_mark_stmts_to_be_vectorized, vect_analyze_data_refs): Add bool * arguments. * tree-vect-data-refs.c (vect_analyze_data_refs): Add fatal argument, if failure is due to scatter/gather, set *fatal to false if non-NULL. * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise. * tree-vect-loop.c (vect_analyze_loop_2): Adjust vect_mark_stmts_to_be_vectorized and vect_analyze_data_refs callers. * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust vect_analyze_data_refs caller. * gcc.target/i386/pr91033.c: New test. From-SVN: r272989
2019-07-03[Ada] Document new flags in GNATppBob Duff2-5/+37
2019-07-03 Bob Duff <duff@adacore.com> gcc/ada/ * doc/gnat_ugn/gnat_utility_programs.rst: Document new flags in GNATpp. From-SVN: r272988
2019-07-03[Ada] Forced elaboration order in Elaboration order v4.0Hristian Kirtchev11-238/+976
This patch refactors the forced elaboration order functionality, reintegrates it in Binde, and impelements it in Bindo. ------------ -- Source -- ------------ -- server.ads package Server is end Server; -- client.ads with Server; package Client is end Client; -- main.adb with Client; procedure Main is begin null; end Main; -- duplicate_1.txt server (spec) client (spec) server (spec) -- error_unit_1.txt no such unit client (spec) -- error_unit_2.txt no such unit client (spec) -- error_unit_3.txt no such unit -- comment client (spec) -- error_unit_4.txt no such unit -- comment client (spec) -- error_unit_5.txt no such unit (body) client (spec) -- error_unit_6.txt no such unit (body) client (spec) -- error_unit_7.txt no such unit (body) -- comment client (spec) -- error_unit_8.txt no such unit (body)-- comment client (spec) -- error_unit_9.txt no such unit-- comment client (spec) -- no_unit_1.txt -- no_unit_2.txt -- no_unit_3.txt -- comment -- no_unit_4.txt -- no_unit_5.txt -- no_unit_6.txt -- comment -- no_unit_7.txt -- no_unit_8.txt -- comment -- comment -- ok_unit_1.txt server (spec) client (spec) -- ok_unit_2.txt server (spec) client (spec) -- ok_unit_3.txt server (spec) client (spec) -- ok_unit_4.txt server (spec) -- comment client (spec) -- ok_unit_5.txt server (spec) client (spec) -- ok_unit_6.txt server (spec) client (spec) -- comment -- ok_unit_7.txt server (spec) client (spec) -- comment -- ok_unit_8.txt -- comment -- comment server (spec) -- comment -- comment client (spec) -- comment -- ok_unit_9.txt server (spec)-- comment client (spec) ---------------------------- -- Compilation and output -- ---------------------------- $ gnatmake -q main.adb $ gnatbind -fno_unit_1.txt main.ali $ gnatbind -fno_unit_2.txt main.ali $ gnatbind -fno_unit_3.txt main.ali $ gnatbind -fno_unit_4.txt main.ali $ gnatbind -fno_unit_5.txt main.ali $ gnatbind -fno_unit_6.txt main.ali $ gnatbind -fno_unit_7.txt main.ali $ gnatbind -fno_unit_8.txt main.ali $ gnatbind -ferror_unit_1.txt main.ali $ gnatbind -ferror_unit_2.txt main.ali $ gnatbind -ferror_unit_3.txt main.ali $ gnatbind -ferror_unit_4.txt main.ali $ gnatbind -ferror_unit_5.txt main.ali $ gnatbind -ferror_unit_6.txt main.ali $ gnatbind -ferror_unit_7.txt main.ali $ gnatbind -ferror_unit_8.txt main.ali $ gnatbind -ferror_unit_9.txt main.ali $ gnatbind -fduplicate_1.txt main.ali $ gnatbind -fok_unit_1.txt main.ali $ gnatbind -fok_unit_2.txt main.ali $ gnatbind -fok_unit_3.txt main.ali $ gnatbind -fok_unit_4.txt main.ali $ gnatbind -fok_unit_5.txt main.ali $ gnatbind -fok_unit_6.txt main.ali $ gnatbind -fok_unit_7.txt main.ali $ gnatbind -fok_unit_8.txt main.ali $ gnatbind -fok_unit_9.txt main.ali "no such unit": not present; ignored "no such unit": not present; ignored "no such unit": not present; ignored "no such unit": not present; ignored "no such unit%b": not present; ignored "no such unit%b": not present; ignored "no such unit%b": not present; ignored "no such unit%b": not present; ignored "no such unit": not present; ignored server (spec) <-- client (spec) error: duplicate_1.txt:3: duplicate unit name "server (spec)" from line 1 server (spec) <-- client (spec) server (spec) <-- client (spec) server (spec) <-- client (spec) server (spec) <-- client (spec) server (spec) <-- client (spec) server (spec) <-- client (spec) server (spec) <-- client (spec) server (spec) <-- client (spec) server (spec) <-- client (spec) 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * binde.adb: Remove with clause for System.OS_Lib. (Force_Elab_Order): Refactor the majority of the code in Butil. Use the new forced units iterator to obtain unit names. * bindo-builders.adb: Add with and use clauses for Binderr, Butil, Opt, Output, Types, GNAT, and GNAT.Dynamic_HTables. Add a hash table which maps units to line number in the forced elaboration order file. (Add_Unit): New routine. (Build_Library_Graph): Create forced edges between pairs of units listed in the forced elaboration order file. (Create_Forced_Edge, Create_Forced_Edges, Destroy_Line_Number, Duplicate_Unit_Error, Hash_Unit, Internal_Unit_Info, Is_Duplicate_Unit, Missing_Unit_Info): New routines. * bindo-graphs.adb (Is_Internal_Unit, Is_Predefined_Unit): Refactor some of the behavior to Bindo-Units. * bindo-graphs.ads: Enable the enumeration literal for forced edges. * bindo-units.adb, bindo-units.ads (Is_Internal_Unit, Is_Predefined_Unit): New routines. * butil.adb: Add with and use clauses for Opt, GNAT, and System.OS_Lib. Add with clause for Unchecked_Deallocation. (Has_Next, Iterate_Forced_Units, Next, Parse_Next_Unit_Name, Read_Forced_Elab_Order_File): New routines. * butil.ads: Add with and use clauses for Types. Add new iterator over the units listed in the forced elaboration order file. (Has_Next, Iterate_Forced_Units, Next): New routine. * namet.adb, namet.ads (Present): New routine. From-SVN: r272987
2019-07-03[Ada] Crash on anonymous access-to-class-wide with tasksBob Duff6-6/+38
This patch fixes a bug in which if an object declaration is of an anonymous access type whose designated type is a limited class-wide type (but not an interface), and the object is initialized with an allocator, and the designated type of the allocator contains tasks, the compiler would crash. 2019-07-03 Bob Duff <duff@adacore.com> gcc/ada/ * sem_ch3.adb (Access_Definition): The code was creating a master in the case where the designated type is a class-wide interface type. Create a master in the noninterface case as well. That is, create a master for all limited class-wide types. gcc/testsuite/ * gnat.dg/task2.adb, gnat.dg/task2_pkg.adb, gnat.dg/task2_pkg.ads: New testcase. From-SVN: r272986
2019-07-03[Ada] Suppress warnings in generic instantiations with pragma WarningsYannick Moy2-3/+33
Warnings issued by GNAT or GNATprove inside generic instantiations can now be suppressed by using pragma Warnings Off/On around the instance. This has mostly an effect on GNATprove, since GNAT typically does not issue warnings on instantiations, only on the generic code itself. 2019-07-03 Yannick Moy <moy@adacore.com> gcc/ada/ * erroutc.adb (Sloc_In_Range): New function to determine whether the range of a pragma Warnings covers a location, taking instantiations into account. From-SVN: r272985
2019-07-03[Ada] New routine to access file on command lineJohannes Kanig3-0/+17
This patch adds a new routine to query the first file argument of the commandline without moving to the next file. This is needed in SPARK. There is no impact on compilation. 2019-07-03 Johannes Kanig <kanig@adacore.com> gcc/ada/ * osint.ads, osint.adb (Get_First_Main_File_Name): New routine to access the first file provided on the command line. From-SVN: r272984
2019-07-03[Ada] Crash on front-end inlining of subp. with aspect specificationsEd Schonberg7-0/+102
This patch fixes a gap in the handling of formals when inlining a call to a subprogram marked Inline_Always. For the inlining, the formals are replaced by the actuals in the block constructed for inlining, The traversal that performs this replacement does not apply to aspect specifications that may appear in the original body, because these aspects are only indirectly reachable from the nodes to which they apply: a separate traversal is required to perform the replacement in the expressions for any aspect specification present in the source. 2019-07-03 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * inline.adb (Process_Formals_In_Aspects): New procedure within Expand_Inlined_Call, to perform a replacement of references to formals that appear in aspect specifications within the body being inlined. gcc/testsuite/ * gnat.dg/inline16.adb, gnat.dg/inline16_gen.adb, gnat.dg/inline16_gen.ads, gnat.dg/inline16_types.ads: New testcase. From-SVN: r272983
2019-07-03[Ada] Incorrect expansion on renamings of formal parametersJustin Squirek5-4/+72
This patch fixes an issue whereby a renaming of an unconstrained formal parameter leads to spurious runtime errors; manifesting either as a storage or constraint error due to incorrect bounds being assumed. This issue also occurs when the renamings are implicit such as through generic instantiations. 2019-07-03 Justin Squirek <squirek@adacore.com> gcc/ada/ * sem_ch8.adb (Analyze_Object_Renaming): Add call to search for the appropriate actual subtype of the object renaming being analyzed. (Check_Constrained_Object): Minor cleanup. gcc/testsuite/ * gnat.dg/renaming13.adb, gnat.dg/renaming14.adb: New testcases. From-SVN: r272982
2019-07-03[Ada] Refine pointer support in SPARKYannick Moy2-51/+69
Refine the implementation of pointer support for SPARK analysis. There is no impact on compilation. 2019-07-03 Yannick Moy <moy@adacore.com> gcc/ada/ * sem_spark.adb (Get_Observed_Or_Borrowed_Expr): New function to return go through traversal function call. (Check_Type): Consistently use underlying type. (Get_Perm): Adapt for case of elaboration code where variables are not declared in the environment. Remove incorrect handling of borrow and observe. From-SVN: r272981
2019-07-03[Ada] Spurious visibility error in inlined functionHristian Kirtchev7-91/+255
This patch corrects the use of tree replication when inlining a function that returns an unconstrained result, and its sole statement is an extended return statement. The use of New_Copy_Tree ensires that global references saved in a generic template are properly carried over when the function is instantiated and inlined. 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * inline.adb (Build_Return_Object_Formal): New routine. (Can_Split_Unconstrained_Function): Code clean up. (Copy_Formals,Copy_Return_Object): New routines. (Split_Unconstrained_Function): Code clean up and refactoring. gcc/testsuite/ * gnat.dg/inline15.adb, gnat.dg/inline15_gen.adb, gnat.dg/inline15_gen.ads, gnat.dg/inline15_types.ads: New testcase. From-SVN: r272980
2019-07-03[Ada] Minor editorial corrections and reformattingGary Dismukes9-28/+35
2019-07-03 Gary Dismukes <dismukes@adacore.com> gcc/ada/ * bindo-augmentors.adb, bindo-augmentors.ads, bindo-builders.ads, bindo-elaborators.adb, sem_ch12.adb, sem_ch13.adb, sem_spark.adb, sinfo.ads: Minor editorial corrections and reformatting. From-SVN: r272979
2019-07-03[Ada] Improve warnings about infinite loopsBob Duff6-3/+49
The compiler now has fewer false alarms when warning about infinite loops. For example, a loop of the form "for X of A ...", where A is an array, cannot be infinite. The compiler no longer warns in this case. 2019-07-03 Bob Duff <duff@adacore.com> gcc/ada/ * sem_warn.adb (Check_Infinite_Loop_Warning): Avoid the warning if an Iterator_Specification is present. gcc/testsuite/ * gnat.dg/warn20.adb, gnat.dg/warn20_pkg.adb, gnat.dg/warn20_pkg.ads: New testcase. From-SVN: r272978
2019-07-03[Ada] Document default new-line behavior for GNATppBob Duff2-0/+7
2019-07-03 Bob Duff <duff@adacore.com> gcc/ada/ * doc/gnat_ugn/gnat_utility_programs.rst: Document default new-line behavior. From-SVN: r272977