1. 05 Jul, 2017 13 commits
    • tree-loop-distribution.c: Add general explanantion on the pass. · a8745cc2
      	* tree-loop-distribution.c: Add general explanantion on the pass.
      	(generate_loops_for_partition): Mark distributed loop.
      	(pg_add_dependence_edges): New parameter.  Handle alias data
      	dependence specially and record it in the parameter if asked.
      	(struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
      	(init_partition_graph_vertices, add_partition_graph_edge): New.
      	(pg_skip_alias_edge, free_partition_graph_edata_cb): New.
      	(free_partition_graph_vdata, build_partition_graph): New.
      	(sort_partitions_by_post_order, merge_dep_scc_partitions): New.
      	(pg_collect_alias_ddrs, break_alias_scc_partitions): New.
      	(data_ref_segment_size, latch_dominated_by_data_ref): New.
      	(compute_alias_check_pairs, version_loop_by_alias_check): New.
      	(version_for_distribution_p, finalize_partitions): New.
      	(distribute_loop): Handle alias data dependence specially.  Factor
      	out loop fusion code as functions and call these functions.
      
      	gcc/testsuite
      	* gcc.dg/tree-ssa/ldist-4.c: Adjust test string.
      	* gcc.dg/tree-ssa/ldist-12.c: Ditto.
      	* gcc.dg/tree-ssa/ldist-13.c: Ditto.
      	* gcc.dg/tree-ssa/ldist-14.c: Ditto.
      
      From-SVN: r249994
      Bin Cheng committed
    • tree-loop-distribution.c (classify_partition): New parameter and better handle reduction statement. · 4a52eb19
      	* tree-loop-distribution.c (classify_partition): New parameter and
      	better handle reduction statement.
      	(rdg_build_partitions): Revise comment.
      	(distribute_loop): Compute statements in all partitions and pass it
      	to classify_partition.
      
      	gcc/testsuite
      	* gcc.dg/tree-ssa/ldist-26.c: New test.
      
      From-SVN: r249993
      Bin Cheng committed
    • tree-loop-distribution.c (enum partition_type): New. · f1eb4621
      	* tree-loop-distribution.c (enum partition_type): New.
      	(struct partition): New field type.
      	(partition_merge_into): Add parameter.  Update partition type.
      	(data_dep_in_cycle_p, update_type_for_merge): New functions.
      	(build_rdg_partition_for_vertex): Compute partition type.
      	(rdg_build_partitions): Dump partition type.
      	(distribute_loop): Update calls to partition_merge_into.
      
      From-SVN: r249992
      Bin Cheng committed
    • tree-loop-distribution.c (struct ddr_hasher): New. · 17c5cbdf
      	* tree-loop-distribution.c (struct ddr_hasher): New.
      	(ddr_hasher::hash, ::equal, get_data_dependence): New function.
      	(ddrs_table): New.
      	(classify_partition): Call get_data_dependence.
      	(pg_add_dependence_edges): Ditto.
      	(distribute_loop): Release data dependence hash table.
      
      From-SVN: r249991
      Bin Cheng committed
    • tree-loop-distribution.c (ref_base_address): Delete. · 95f7d11b
      	* tree-loop-distribution.c (ref_base_address): Delete.
      	(similar_memory_accesses): Rename ...
      	(share_memory_accesses): ... to this.  Check if partitions access
      	the same memory reference.
      	(distribute_loop): Call share_memory_accesses.
      
      	gcc/testsuite
      	* gcc.dg/tree-ssa/ldist-6.c: XFAIL.
      
      From-SVN: r249990
      Bin Cheng committed
    • tree-loop-distribution.c (struct partition): New field recording its data reference. · a7a44c07
      	* tree-loop-distribution.c (struct partition): New field recording
      	its data reference.
      	(partition_alloc, partition_free): Init and release data refs.
      	(partition_merge_into): Merge data refs.
      	(build_rdg_partition_for_vertex): Collect data refs for partition.
      	(pg_add_dependence_edges): Change parameters from vector to bitmap.
      	Update uses.
      	(distribute_loop): Remve data refs from vertice data of partition
      	graph.
      
      From-SVN: r249989
      Bin Cheng committed
    • tree-loop-distribution.c (params.h): Include header file. · 9fafb14a
      	* tree-loop-distribution.c (params.h): Include header file.
      	(MAX_DATAREFS_NUM, DR_INDEX): New macro.
      	(datarefs_vec): New global var.
      	(create_rdg_vertices): Use datarefs_vec directly.
      	(free_rdg): Don't free data references.
      	(build_rdg): Update use.  Don't free data references.
      	(distribute_loop): Compute global variable for data references.
      	Bail out if there are too many data references.
      
      From-SVN: r249988
      Bin Cheng committed
    • tree-loop-distribution.c (loop_nest): New global var. · 4084ea5f
      	* tree-loop-distribution.c (loop_nest): New global var.
      	(build_rdg): Use loop directly, rather than loop nest.
      	(pg_add_dependence_edges): Remove loop nest parameter.  Use global
      	variable directly.
      	(distribute_loop): Compute global variable loop nest.  Update use.
      
      From-SVN: r249987
      Bin Cheng committed
    • tree-loop-distribution.c (enum fuse_type, [...]): New. · 821dbeef
      	* tree-loop-distribution.c (enum fuse_type, fuse_message): New.
      	(partition_merge_into): New parameter.  Dump reason for fusion.
      	(distribute_loop): Update use of partition_merge_into.
      
      From-SVN: r249986
      Bin Cheng committed
    • tree-loop-distribution.c (bb_top_order_index): New. · 3be57c56
      	* tree-loop-distribution.c (bb_top_order_index): New.
      	(bb_top_order_index_size, bb_top_order_cmp): New.
      	(stmts_from_loop): Use topological order.
      	(pass_loop_distribution::execute): Compute and release topological
      	order for basic blocks.
      
      From-SVN: r249985
      Bin Cheng committed
    • tree-loop-distribution.c (pass_loop_distribution::execute): Skip if no loops. · 773d9217
      	* tree-loop-distribution.c (pass_loop_distribution::execute): Skip
      	if no loops.
      
      From-SVN: r249984
      Bin Cheng committed
    • cfgloop.h (struct loop): Add comment. · 542e7230
      	* cfgloop.h (struct loop): Add comment.  New field orig_loop_num.
      	* cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
      	* internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
      	* internal-fn.def (LOOP_DIST_ALIAS): New.
      	* tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
      	(fold_loop_internal_call): ... this.
      	(vect_loop_dist_alias_call): New function.
      	(set_uid_loop_bbs): Call fold_loop_internal_call.
      	(vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
      	internal calls.
      
      From-SVN: r249983
      Bin Cheng committed
    • Daily bump. · 3d07163d
      From-SVN: r249982
      GCC Administrator committed
  2. 04 Jul, 2017 26 commits
    • re PR target/81300 (-fpeephole2 breaks __builtin_ia32_sbb_u64, _subborrow_u64 on AMD64) · 45bb7d59
      2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
      
      	PR target/81300
      	* config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
      	Require dead FLAGS_REG at the beginning of a peephole.
      
      testsuite/ChangeLog:
      
      	PR target/81300
      	* gcc.target/i386/pr81300.c: New test.
      
      From-SVN: r249977
      Uros Bizjak committed
    • re PR target/81294 (_subborrow_u64 argument order inconsistent with intrinsic reference, icc) · 1fcfac88
      	PR target/81294
      	* config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
      	arguments in the call to __builtin_ia32_sbb_u32.
      	(_subborrow_u64): Swap _X and _Y arguments in the call to
      	__builtin_ia32_sbb_u64.
      
      testsuite/ChangeLog:
      
      	PR target/81294
      	* gcc.target/i386/adx-addcarryx32-2.c (adx_test): Swap
      	x and y arguments in the call to _subborrow_u32.
      	* gcc.target/i386/adx-addcarryx64-2.c (adx_test): Swap
      	x and y arguments in the call to _subborrow_u64.
      	* gcc.target/i386/pr81294-1.c: New test.
      	* gcc.target/i386/pr81294-2.c: Ditto.
      
      From-SVN: r249976
      Uros Bizjak committed
    • re PR debug/81278 (-fcompare-debug failure (length)) · 06a1b233
      	PR debug/81278
      	* tree-vrp.c (compare_assert_loc): Turn into a function template
      	with stable template parameter.  Only test if a->e is NULL,
      	!a->e == !b->e has been verified already.  Use e == NULL or
      	e != NULL instead of e or ! e tests.  If stable is true, don't use
      	iterative_hash_expr, on the other side allow a or b or both NULL
      	and sort the NULLs last.
      	(process_assert_insertions): Sort using compare_assert_loc<false>
      	instead of compare_assert_loc, later sort using
      	compare_assert_loc<true> before calling process_assert_insertions_for
      	in a loop.  Use break instead of continue once seen NULL pointer.
      
      From-SVN: r249975
      Jakub Jelinek committed
    • [ARM] Add MIDR info for ARM Cortex-R7 and Cortex-R8 · 242ae26a
      2017-07-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/
          * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
          Cortex-R7 and Cortex-R8 processors.
      
      From-SVN: r249974
      Thomas Preud'homme committed
    • ipa-utils.c (ipa_merge_profiles): Fix merging when dst is uninitialized while src is not. · fd78e43e
      
      	* ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
      	uninitialized while src is not.
      
      From-SVN: r249973
      Jan Hubicka committed
    • [AArch64] Fix strict aliasing issue in gcc.target/aarch64/simd/vminmaxnm_1.c · a4187dab
      While doing some unrelated work the gcc.target/aarch64/simd/vminmaxnm_1.c testcase started failing for me.
      Upon investigation it turns out that it breaks the C strict aliasing rules in the CHECK macro by casting
      a pointer to an incompatible type and dereferencing it. GCC even warns about it if compiled with -Wstrict-aliasing.
      
      This patch fixes the testcase by making it use memcmp to compare the vector elements.
      This avoids the undefined behaviour.
      
      The testcase still passes on trunk.
      
          * gcc.target/aarch64/simd/vminmaxnm_1.c: Fix strict aliasing issues.
      
      From-SVN: r249972
      Kyrylo Tkachov committed
    • [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
  3. 03 Jul, 2017 1 commit