1. 04 Jul, 2017 20 commits
    • [arm] Move some generated files out of the source tree · 50061652
      When I originally started work on the new options framework for ARM
      I'd worked on the assumption that AWK might not be available on every
      build machine (only on developer's machines).  However, looking again
      I notice that all the options framework relies on it being present for
      every build.  This means that some of the generated files that come
      from running parsecpu.awk do not need to be kept under revision
      control.
      
      Unfortunately, it's not _all_ generated files.  The build
      infrastructure assumes that all .md fragments are in the source tree
      and similarly that all .opt fragments are there as well.
      
      Still, eliminating the very big .h files is a step forward as they are
      very regular in structure and diff/patch/merge tools can sometimes
      make mistakes when resolving conflicts.
      
      So this patch removes the generated .h files from the source tree and
      tweaks the make rules accordingly.  I've also changed the build rules
      to use the stamp technique to eliminate some false dependencies in a
      rebuild.
      
      Top-level:
      
      * contrib/gcc_update (files_and_dependencies): Remove stamp rules for
      arm-specific auto-generated header files.
      
      gcc:
      * common/config/arm/arm-common.c: Adjust include path for
      arm-cpu-cdata.h
      * t-arm (TM_H): Adjust path for arm-cpu.h.
      (arm-cpu.h): Create in build directory.  Adjust dependency rules.
      (arm-cpu-data.h): Likewise.
      (arm-cpu-cdata.h): Likewise.
      * config/arm/arm-cpu.h: Delete.
      * config/arm/arm-cpu-cdata.h: Delete.
      * config/arm/arm-cpu-data.h: Delete.
      
      From-SVN: r249971
      Richard Earnshaw committed
    • [Patch ARM] Add initial tuning for Cortex-A55 and Cortex-A75 · 1d79dcb8
      Much like my AArch64 patch a few weeks ago, this patch adds support
      for the ARM Cortex-A75 and Cortex-A55 processors through the
      -mcpu/-mtune values cortex-a55 and cortex-a75, and an
      ARM DynamIQ big.LITTLE configuration of these two processors through
      the -mcpu/-mtune value cortex-a75.cortex-a55
      
      Both Cortex-A55 and Cortex-A75 support ARMv8-A with the ARM8.1-A and
      ARMv8.2-A extensions. This is reflected in the patch, -mcpu=cortex-a75 is
      treated as equivalent to passing -mtune=cortex-a75 -march=armv8.2-a+fp16
      
      gcc/
      
      2017-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
      
      	* config/arm/arm-cpus.in (cortex-a55): New.
      	(cortex-a75): Likewise.
      	(cortex-a75.cortex-a55): Likewise.
      	* config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
      	cortex-a75.
      	* doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
      
      	* config/arm/arm-cpu-cdata.h: Regenerate.
      	* config/arm/arm-cpu-data.h: Regenerate.
      	* config/arm/arm-cpu.h: Regenerate.
      	* config/arm/arm-tables.opt: Regenerate.
      	* config/arm/arm-tune.md: Regenerate.
      
      From-SVN: r249970
      James Greenhalgh committed
    • * haifa-sched.c (sched_create_recovery_edges): Update profile. · cea768b0
      From-SVN: r249967
      Jan Hubicka committed
    • bb-reorder.c (better_edge_p): Fix handling of uninitialized probability. · 4741e46d
      	* bb-reorder.c (better_edge_p): Fix handling of uninitialized
      	probability.
      
      From-SVN: r249966
      Jan Hubicka committed
    • Fix ChangeLog format in r247584 · e5d81167
      This patch fixes relative pathnames in gcc/ChangeLog for r247584.
      
      From-SVN: r249964
      Thomas Preud'homme committed
    • re PR c/81231 (ICE with invalid argument to __atomic_*) · efbf55b0
      	PR c/81231
      	* c-common.c (sync_resolve_size): Give error for pointers to incomplete
      	types.
      
      	* gcc.dg/atomic-pr81231.c: New test.
      
      From-SVN: r249963
      Marek Polacek committed
    • brig-function.cc: Include profile-count.h. · f0622a50
      	* brigfrontend/brig-function.cc: Include profile-count.h.
      	* brigfrontend/brig-to-generic.cc: Likewise.
      
      From-SVN: r249962
      Jakub Jelinek committed
    • PR 81292: ICE on related strlens after r249880 · 1aad7106
      r249880 installed the result of a strlen in a strinfo if the strinfo
      wasn't previously a full string.  But as Jakub says in the PR comments,
      we can't just do that in isolation, because there are no vdefs on the
      call that would invalidate any related strinfos.
      
      This patch updates the related strinfos if the adjustment is simple and
      invalidates them otherwise.  As elsewhere, we treat adjustments of the
      form strlen +/- INTEGER_CST as simple but anything else as too complex.
      
      2017-07-04  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	PR tree-optimization/81292
      	* tree-ssa-strlen.c (handle_builtin_strlen): When setting
      	full_string_p, also call adjust_related_strinfos if the adjustment
      	is simple, otherwise invalidate related strinfos.
      
      gcc/testsuite/
      	PR tree-optimization/81292
      	* gcc.dg/pr81292-1.c: New test.
      	* gcc.dg/pr81292-2.c: Likewise.
      
      From-SVN: r249961
      Richard Sandiford committed
    • Enable addressable params sanitization with --param asan-stack=1. · 7c819e8a
      2017-07-04  Martin Liska  <mliska@suse.cz>
      
      	PR sanitizer/81040
      	* sanopt.c (sanitize_rewrite_addressable_params): Mark the
      	newly created variable as DECL_IGNORED_P.
      2017-07-04  Martin Liska  <mliska@suse.cz>
      
      	PR sanitizer/81040
      	* g++.dg/asan/function-argument-1.C: Run the test-case w/o
      	use-after-scope sanitization.
      
      From-SVN: r249960
      Martin Liska committed
    • Use xstrdup_for_dump in ipa-inline.c (PR ipa/81293). · 6abe2864
      2017-07-04  Martin Liska  <mliska@suse.cz>
      
      	PR ipa/81293
      	* ipa-inline.c (inline_small_functions):
      	Use xstrdup_for_dump.
      
      From-SVN: r249959
      Martin Liska committed
    • Save and restore EDGE_DFS_BACK in draw_cfg_edges · 1315099e
      2017-07-04  Tom de Vries  <tom@codesourcery.com>
      
      	* graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
      
      From-SVN: r249954
      Tom de Vries committed
    • Add missing libgcc/ChangeLog entry. · b85a969e
      From-SVN: r249953
      Olivier Hainque committed
    • function-argument-3.C: Add -Wno-psabi to additional options. · 8e8dd13b
      	* g++.dg/asan/function-argument-3.C: Add -Wno-psabi to additional
      	options.
      
      From-SVN: r249952
      Jakub Jelinek committed
    • re PR target/81175 (EXC_BAD_ACCESS in… · f111f434
      re PR target/81175 (EXC_BAD_ACCESS in ::slpeel_duplicate_current_defs_from_edges(edge, edge, edge, edge) at is-a.h:192)
      
      	PR target/81175
      	* gcc.target/i386/pr69255-2.c (foo): Use the return value of the
      	gather.
      
      From-SVN: r249951
      Jakub Jelinek committed
    • vxworks.h (PTRDIFF_TYPE, SIZE_TYPE): Restore unconditional basic definitions. · 88f4e766
      2017-07-04  Olivier Hainque  <hainque@adacore.com>
      
      	* config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE): Restore
      	unconditional basic definitions.
      	(VXWORKS_LIBS_RTP): Likewise, prefixed by VXWORKS_SYSCALL_LIBS_RTP,
      	empty by default.
      	* config/i386/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE): Redefine,
      	accounting for 64bit ABIs using cpu specific macros available for
      	this purpose.
      	(VXWORKS_SYSCALL_LIBS_RTP): Likewise.
      
      From-SVN: r249950
      Olivier Hainque committed
    • Add dg-require ifunc for mvc test-cases. · 7a1238d1
      2017-07-04  Martin Liska  <mliska@suse.cz>
      
      	PR ipa/81214
      	* g++.dg/ext/mvc2.C: Add dg-require ifunc.
      	* g++.dg/ext/mvc3.C: Likewise.
      	* gcc.target/i386/mvc2.c: Likewise.
      	* gcc.target/i386/mvc3.c: Likewise.
      
      From-SVN: r249949
      Martin Liska committed
    • parser.c (cp_parser_decomposition_declaration): Replace decomposition… · 8e3b9bbf
      parser.c (cp_parser_decomposition_declaration): Replace decomposition declaration with structured binding in diagnostics.
      
      	* parser.c (cp_parser_decomposition_declaration): Replace
      	decomposition declaration with structured binding in diagnostics.
      	* decl.c (cp_finish_decomp): Likewise.
      	(grokdeclarator): Likewise.
      
      	* g++.dg/cpp1z/decomp1.C: Expect structured binding instead of
      	decomposition declaration in diagnostics.
      	* g++.dg/cpp1z/decomp2.C: Likewise.
      	* g++.dg/cpp1z/decomp3.C: Likewise.
      	* g++.dg/cpp1z/decomp4.C: Likewise.
      	* g++.dg/cpp1z/decomp5.C: Likewise.
      	* g++.dg/cpp1z/decomp6.C: Likewise.
      	* g++.dg/cpp1z/decomp7.C: Likewise.
      	* g++.dg/cpp1z/decomp8.C: Likewise.
      	* g++.dg/cpp1z/decomp13.C: Likewise.
      	* g++.dg/cpp1z/decomp14.C: Likewise.
      	* g++.dg/cpp1z/decomp18.C: Likewise.
      	* g++.dg/cpp1z/decomp19.C: Likewise.
      	* g++.dg/cpp1z/decomp22.C: Likewise.
      	* g++.dg/cpp1z/decomp23.C: Likewise.
      	* g++.dg/cpp1z/decomp24.C: Likewise.
      	* g++.dg/cpp1z/decomp25.C: Likewise.
      	* g++.dg/cpp1z/decomp26.C: Likewise.
      	* g++.dg/cpp1z/decomp28.C: Likewise.
      
      From-SVN: r249948
      Jakub Jelinek committed
    • re PR c++/81258 (ICE on C++1z code with invalid decomposition declaration: in… · 9fc1fed4
      re PR c++/81258 (ICE on C++1z code with invalid decomposition declaration: in cp_finish_decl, at cp/decl.c:6760)
      
      	PR c++/81258
      	* parser.c (cp_parser_decomposition_declaration): Diagnose invalid
      	forms of structured binding initializers.
      
      	* g++.dg/cpp1z/decomp21.C (foo): Adjust expected diagnostics.
      	* g++.dg/cpp1z/decomp30.C: New test.
      
      From-SVN: r249947
      Jakub Jelinek committed
    • Daily bump. · f5474a4c
      From-SVN: r249942
      GCC Administrator committed
  2. 03 Jul, 2017 20 commits
    • t-vxworks7: New file. · ca12f1ca
      2017-06-27  Olivier Hainque  <hainque@adacore.com>
      
      	* config/t-vxworks7: New file.
      
      New file mistakenly omitted from previous commit referencing it.
      
      From-SVN: r249938
      Olivier Hainque committed
    • re PR c++/65775 (Late-specified return type bypasses return type checks… · 17c18221
      re PR c++/65775 (Late-specified return type bypasses return type checks (qualified, function, array))
      
      /cp
      2017-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/65775
      	* decl.c (grokdeclarator): Move checks on function return type after
      	the splice_late_return_type call; if declspecs->locations[ds_type_spec]
      	is UNKNOWN_LOCATION fall back to input_location.
      
      /testsuite
      2017-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/65775
      	* g++.dg/cpp0x/trailing14.C: New.
      
      From-SVN: r249935
      Paolo Carlini committed
    • re PR fortran/79866 (diagnostics: typo in "Variable %s at %L of type EVENT_TYPE") · 370d975d
      2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
       
      	PR fortran/79866
      	* resolve.c (resolve_symbol): Fix typo.
      
      	PR testsuite/79866
      	* gfortran.dg/coarray_event_2.f08: New test.
      
      From-SVN: r249934
      Dominique d'Humieres committed
    • re PR fortran/79843 (diagnostics: missing word in fortran/symbol.c, conflict_std) · 73977c47
      2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
      
      	PR fortran/79843
      	* symbol.c (check_conflict): Add missing "conflicts".
      
      	PR testsuite/79843
      	* gfortran.dg/namelist_3.f90: Adjust the dg-error string.
      	* gfortran.dg/pointer_intent_2.f90: Likewise.
      
      From-SVN: r249933
      Dominique d'Humieres committed
    • C++: fix "RT_INTERATION" typo · 4ab42f46
      gcc/cp/ChangeLog:
      	* parser.c (enum required_token): Fix spelling of
      	RT_INTERATION to RT_ITERATION.
      	(cp_parser_iteration_statement): Likewise.
      	(cp_parser_required_error): Likewise.
      
      From-SVN: r249931
      David Malcolm committed
    • re PR bootstrap/81033 (there are cases where ld64 is not able to determine… · 7001cb1f
      re PR bootstrap/81033 (there are cases where ld64 is not able to determine correct atom boundaries from the output GCC currently produces)
      
      2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
      
      	PR target/81033
      	* config/darwin.c (darwin_function_switched_text_sections):
      	Fix spaces.
      
      From-SVN: r249930
      Dominique d'Humieres committed
    • * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up. · 10ea2672
      From-SVN: r249929
      Jan Hubicka committed
    • [arm] Add -mbe8 and -mbe32 to options summary. · 5c2ef4e8
      * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
      
      From-SVN: r249928
      Richard Earnshaw committed
    • Avoid minimum - 1 confusion in vectoriser · 80be3333
      The variables that claimed to be the "minimum number of iterations" for
      which vectorisation was profitable were actually the maximum number of
      iterations for which vectorisation wasn't profitable.  The loop threshold
      was too.
      
      This patch makes the values be what the variable names suggest.
      
      2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
      	min_profitable_iters, and th as inclusive lower bounds.
      	Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
      	(vect_estimate_min_profitable_iters): Return inclusive lower bounds
      	for min_profitable_iters and min_profitable_estimate.
      	(vect_transform_loop): Treat th as an inclusive lower bound.
      	* tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
      
      From-SVN: r249927
      Richard Sandiford committed
    • re PR bootstrap/81033 (there are cases where ld64 is not able to determine… · be587708
      re PR bootstrap/81033 (there are cases where ld64 is not able to determine correct atom boundaries from the output GCC currently produces)
      
      2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
      
      	PR target/81033
      	* config/darwin.c (darwin_function_switched_text_sections):
      	Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
      	in two pieces, and suppress the use of buf.
      
      From-SVN: r249926
      Dominique d'Humieres committed
    • * hash-table.h (hash_table_mod1): Fix indentation. · 57c49199
      From-SVN: r249925
      Nathan Sidwell committed
    • re PR rtl-optimization/81290 (ICE in update_br_prob_note) · 2f70a979
      
      	PR middle-end/81290
      	* predict.c (force_edge_cold): Be more careful about propagation
      	backward.
      	* profile-count.h (profile_probability::guessed,
      	profile_probability::fdo, profile_count::guessed, profile_count::fdo):
      	New.
      	* tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
      
      	* gcc.c-torture/compile/pr81290.c: New.
      
      From-SVN: r249924
      Jan Hubicka committed
    • Andrew pointed out that I did not document the new architecture extension flag I… · d31415ba
      Andrew pointed out that I did not document the new architecture extension flag I added for the RcPc extension.
      
      Andrew pointed out that I did not document the new architecture extension
      flag I added for the RcPc extension. This was intentional, as enabling the
      rcpc extension does not change GCC code generation, and is just
      an assembler flag. But for completeness, here is documentation for the
      new option.
      
      gcc/
      
      2017-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
      
      	* doc/invoke.texi (rcpc architecture extension): Document it.
      
      From-SVN: r249923
      James Greenhalgh committed
    • configure.ac: Set srcdir when sourcing config-lang.in fragments. · d4360477
      	* configure.ac: Set srcdir when sourcing config-lang.in fragments.
      	* configure: Rebuilt.
      
      	gcc/objcp/
      	* config-lang.in: Source cp/config-lang.in, sort objc++ gtfiles list.
      
      From-SVN: r249922
      Nathan Sidwell committed
    • Readd myself as c6x maintainer. · 9dc9ae74
      From-SVN: r249920
      Bernd Schmidt committed
    • re PR tree-optimization/60510 (SLP blocks loop vectorization (with reduction)) · 6b5e165b
      2017-07-03  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/60510
      	* tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
      	the scalar reduction PHI and use it.
      	(vectorizable_reduction): Properly guard the single_defuse_cycle
      	path for non-SLP reduction chains where we cannot use it.
      	Rework reduc_def/index and vector type deduction.  Rework
      	vector operand gathering during reduction op code-gen.
      	* tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
      	chains dissolve the chain and leave it to non-SLP reduction
      	handling.
      
      	* gfortran.dg/vect/pr60510.f: New testcase.
      
      From-SVN: r249919
      Richard Biener committed
    • Fix secure_getenv.h include in plugin-hsa.c · 9607b014
      2017-07-03  Tom de Vries  <tom@codesourcery.com>
      
      	* plugin/plugin-hsa.c: Fix secure_getenv.h include.
      
      From-SVN: r249918
      Tom de Vries committed
    • Add a helper for getting the overall alignment of a DR · 25f68d90
      This combines the information from previous patches to give a guaranteed
      alignment for the DR as a whole.  This should be a bit safer than using
      base_element_aligned, since that only really took the base into account
      (not the init or offset).
      
      2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* tree-data-ref.h (dr_alignment): Declare.
      	* tree-data-ref.c (dr_alignment): New function.
      	* tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
      	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
      	set it.
      	* tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
      
      From-SVN: r249917
      Richard Sandiford committed
    • Add DR_BASE_ALIGNMENT and DR_BASE_MISALIGNMENT · bb642979
      This patch records the base alignment and misalignment in
      innermost_loop_behavior, to avoid the second-guessing that was
      previously done in vect_compute_data_ref_alignment.  It also makes
      vect_analyze_data_refs use dr_analyze_innermost, instead of having an
      almost-copy of the same code.
      
      I wasn't sure whether the alignments should be measured in bits
      (for consistency with most other interfaces) or in bytes (for consistency
      with DR_ALIGNED_TO, now DR_OFFSET_ALIGNMENT, and with *_ptr_info_alignment).
      I went for bytes because:
      
      - I think in practice most consumers are going to want bytes.
        E.g. using bytes avoids having to mix TYPE_ALIGN and TYPE_ALIGN_UNIT
        in vect_compute_data_ref_alignment.
      
      - It means that any bit-level paranoia is dealt with when building
        the innermost_loop_behavior and doesn't get pushed down to consumers.
      
      2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* tree-data-ref.h (innermost_loop_behavior): Add base_alignment
      	and base_misalignment fields.
      	(DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
      	* tree-data-ref.c: Include builtins.h.
      	(dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
      	* tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
      	(STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
      	* tree-vect-data-refs.c: Include tree-cfg.h.
      	(vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
      	fields instead of calculating an alignment here.
      	(vect_analyze_data_refs): Use dr_analyze_innermost.  Dump the new
      	innermost_loop_behavior fields.
      
      From-SVN: r249916
      Richard Sandiford committed
    • Add DR_STEP_ALIGNMENT · 832b4117
      A later patch adds base alignment information to innermost_loop_behavior.
      After that, the only remaining piece of alignment information that wasn't
      immediately obvious was the step alignment.  Adding that allows a minor
      simplification to vect_compute_data_ref_alignment, and also potentially
      improves the handling of variable strides for outer loop vectorisation.
      A later patch will also use it to give the alignment of the DR as a whole.
      
      2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
      	field.
      	(DR_STEP_ALIGNMENT): New macro.
      	* tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
      	* tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
      	(create_data_ref): Print it.
      	* tree-vect-stmts.c (vectorizable_load): Use the step alignment
      	to tell whether the step preserves vector (mis)alignment.
      	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
      	Move the check for an integer step and generalise to all INTEGER_CST.
      	(vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
      	Print the outer step alignment.
      
      From-SVN: r249915
      Richard Sandiford committed