1. 18 Jul, 2017 12 commits
    • re PR tree-optimization/81462 (ICE in estimate_bb_frequencies at gcc/predict.c:3546) · 33e9feb5
      
      	PR middle-end/81462
      	* predict.c (set_even_probabilities): Cleanup; do not affect
      	probabilities that are already known.
      	(combine_predictions_for_bb): Call even when count is set.
      
      	* g++.dg/torture/pr81462.C: New testcase.
      
      From-SVN: r250310
      Jan Hubicka committed
    • tree-parloops.c (try_transform_to_exit_first_loop_alt): Use TYPE_MAX_VALUE. · ff22eb12
             gcc/
      	* tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
      	TYPE_MAX_VALUE.
      
             gcc/c-family/
      	* c-warn.c (warn_for_memset): Use TYPE_{MIN,MAX}_VALUE.
      
             gcc/c/
      	* c-parser.c (c_parser_array_notation): Use TYPE_{MIN,MAX}_VALUE.
      
             gcc/cp/ 
      	* cp-array-notation.c (build_array_notation_ref): Use
      	TYPE_{MIN,MAX}_VALUE.
      
             gcc/fortran/
      	* trans.c (gfc_build_array_ref): Use TYPE_MAX_VALUE.
      
      From-SVN: r250309
      Nathan Sidwell committed
    • gcc: ada: delete old $(P) reference · b34a929a
      The P variable was deleted back in Nov 2015 (svn rev 231062),
      but its expansion was missed.  Delete those now too.
      
      From-SVN: r250307
      Mike Frysinger committed
    • class.c (classtype_has_move_assign_or_move_ctor): Declare. · 6b8e738e
      	* class.c (classtype_has_move_assign_or_move_ctor): Declare.
      	(add_implicitly_declared_members): Use it.
      	(type_has_move_constructor, type_has_move_assign): Merge into ...
      	(classtype_has_move_assign_or_move_ctor): ... this new function.
      	* cp-tree.h (type_has_move_constructor, type_has_move_assign): Delete.
      
      From-SVN: r250305
      Nathan Sidwell committed
    • re PR middle-end/81408 (Lots of new -Wunsafe-loop-optimizations warnings with 7 compared to 6) · 694dd0e4
      	PR target/81408
      	* tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
      	optimization for loop niter analysis.
      
      	gcc/testsuite
      	* g++.dg/tree-ssa/pr81408.C: New.
      	* gcc.dg/tree-ssa/pr19210-1.c: Check dump message rather than warning.
      
      From-SVN: r250304
      Bin Cheng committed
    • re PR target/81473 ([avr] build fails due to INT8_MIN and friends.) · f94f48ff
      gcc/
      	PR target/81473
      	* config/avr/avr.c (avr_optimize_casesi): Don't use
      	INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
      
      From-SVN: r250301
      Georg-Johann Lay committed
    • Fix PR81362: Vector peeling · ec15a152
      npeel was erroneously overwritten by vect_peeling_hash_get_lowest_cost
      although the corresponding dataref is not used afterwards.  It should
      be safe to get rid of the npeel parameter since we use the returned
      peeling_info's npeel anyway.  Also removed the body_cost_vec parameter
      which is not used elsewhere.
      
      gcc/ChangeLog:
      
      2017-07-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
      
      	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
      	body_cost_vec from _vect_peel_extended_info.
      	(vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
      	(vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
      	npeel.
      
      From-SVN: r250300
      Robin Dapp committed
    • * config/arm/arm.c (emit_unlikely_jump): Remove unused var. · 4169392a
      From-SVN: r250299
      Bin Cheng committed
    • re PR tree-optimization/80620 (gcc produces wrong code with -O3) · f9bfe3f5
      2017-07-18  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/80620
      	PR tree-optimization/81403
      	* tree-ssa-pre.c (phi_translate_1): Clear range and points-to
      	info when re-using a VN table entry.
      
      	* gcc.dg/torture/pr80620.c: New testcase.
      	* gcc.dg/torture/pr81403.c: Likewise.
      
      From-SVN: r250297
      Richard Biener committed
    • re PR tree-optimization/81418 (ICE in vect_get_vec_def_for_stmt_copy) · d2e78d76
      2017-06-18  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/81418
      	* tree-vect-loop.c (vectorizable_reduction): Properly compute
      	vectype_in.  Verify that with lane-reducing reduction operations
      	we have a single def-use cycle.
      
      	* gcc.dg/torture/pr81418.c: New testcase.
      
      From-SVN: r250296
      Richard Biener committed
    • Revert commit r249424 2017-06-20 Carl Love <cel@us.ibm.com> · 651dbe5d
      gcc/ChangeLog:
      
      2017-07-17  Carl Love  <cel@us.ibm.com>
      
      	Revert commit r249424	2017-06-20  Carl Love  <cel@us.ibm.com>
      
      	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
      	ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
      	ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
      	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
      	builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
      	* config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
      	VMULOSW): New enum "unspec" values.
      	(vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
      	vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
      	altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
      	altivec_vmulosw): New patterns.
      	* config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
      	VMULOSW): Add definitions.
      
      gcc/testsuite/ChangeLog:
      
      2017-07-17  Carl Love  <cel@us.ibm.com>
      
      	Revert commit r249572 	2017-06-22 Carl Love  <cel@us.ibm.com>
      	test case changes for commit 249424
      
      	* gcc.target/powerpc/builtins-2.c (vmulosh, vmulouh, vmulesh,
      	vmuleuh): Fix scan-assembler-times should check for word not half word
      	instructions.
      
      From-SVN: r250295
      Carl Love committed
    • Daily bump. · cef3814b
      From-SVN: r250294
      GCC Administrator committed
  2. 17 Jul, 2017 28 commits
    • alpha.c: Include predict.h. · 8cdf5397
      	* config/alpha/alpha.c: Include predict.h.
      
      From-SVN: r250290
      Uros Bizjak committed
    • re PR tree-optimization/81162 (UBSAN switch triggers incorrect optimization in SLSR) · f6489326
      2017-07-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	PR tree-optimization/81162
      	* gcc.dg/pr81162.c: Move this to...
      	* gcc.dg/ubsan/pr81162.c: ...here.
      
      From-SVN: r250284
      Bill Schmidt committed
    • parser.c (cp_parser_decl_specifier_seq): Add fix-it hints for friend outside… · dbc4ecfc
      parser.c (cp_parser_decl_specifier_seq): Add fix-it hints for friend outside class and obsolete auto as...
      
              * parser.c (cp_parser_decl_specifier_seq): Add fix-it hints for
              friend outside class and obsolete auto as storage-class-specifier.
      
              * g++.dg/diagnostic/friend1.C: New test.
              * g++.dg/cpp0x/auto1.C: Add check for fix-it hint.
      
      From-SVN: r250282
      Volker Reichelt committed
    • class.c (maybe_warn_about_overly_private_class): Ignore public copy ctors. · a64559a5
      	* class.c (maybe_warn_about_overly_private_class): Ignore public
      	copy ctors.
      
      	* g++.dg/warn/ctor-dtor-privacy-3.C: New.
      
      From-SVN: r250281
      Nathan Sidwell committed
    • class.c (type_has_user_declared_move_constructor, [...]): Combine into ... · 619018d4
      	* class.c (type_has_user_declared_move_constructor,
      	type_has_user_declared_move_assign): Combine into ...
      	(classtype_has_user_move_assign_or_move_ctor_p): ... this new function.
      	* cp-tree.h (type_has_user_declared_move_constructor,
      	type_has_user_declared_move_assign): Combine into ...
      	(classtype_has_user_move_assign_or_move_ctor_p): ... this. Declare.
      	* method.c (maybe_explain_implicit_delete): Use it.
      	(lazily_declare_fn): Use it.
      	* tree.c (type_has_nontrivial_copy_init): Use it.
      
      From-SVN: r250280
      Nathan Sidwell committed
    • gcc-dg.exp: Increase expect's match buffer size. · aac59577
      2017-07-17  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * lib/gcc-dg.exp: Increase expect's match buffer size.
      
      From-SVN: r250279
      Bernd Edlinger committed
    • tree-vrp.c (compare_assert_loc): Fix comparison function to return predictable results. · 5dc3163d
      2017-07-17  Yury Gribov  <tetra2005@gmail.com>
      
      gcc/
              * tree-vrp.c (compare_assert_loc): Fix comparison function
      	to return predictable results.
      
      From-SVN: r250278
      Yury Gribov committed
    • [ARC] Deprecate mexpand-adddi option. · 3f2fc95c
      Emitting subregs in the expand will result in broken code due to LRA handling of them. Issue observed while turning on mlra and mexpand-adddi options using dejagnu test suite. Deprecate this
      option.
      
      gcc/
      2017-04-26  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.md (adddi3): Remove support for mexpand-adddi
      	option.
      	(subdi3): Likewise.
      	* config/arc/arc.opt (mexpand-adddi): Deprecate it.
      	* doc/invoke.texi (mexpand-adddi): Update text.
      
      From-SVN: r250276
      Claudiu Zissulescu committed
    • [ARC] [LRA] Avoid emitting COND_EXEC during expand. · ac66951a
      Emmitting COND_EXEC rtxes during expand does introduces errors due to LRA handling of them. Issue discovered while running dejagnu test suit with mlra option on.
      
      gcc/
      2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
      	that also clobbers the CC register. The old expand code is moved
      	to ...
      	(*arc_clzsi2): ... here.
      	(ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
      	the CC register. The old expand code is moved to ...
      	(arc_ctzsi2): ... here.
      
      From-SVN: r250275
      Claudiu Zissulescu committed
    • [ARC] Enable indexed loads for elf targers. · f26322a6
      Enable indexed loads only for elf target, as the linux ones need more testing.
      
      gcc/
      2017-02-28  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.opt (mindexed-loads): Use initial value
      	TARGET_INDEXED_LOADS_DEFAULT.
      	(mauto-modify-reg): Use initial value
      	TARGET_AUTO_MODIFY_REG_DEFAULT.
      	* config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
      	(TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
      	* config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
      	(TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
      
      From-SVN: r250274
      Claudiu Zissulescu committed
    • semantics.c (classtype_has_nothrow_assign_or_copy_p): Clarify semantics, simplify implementation. · 5337720c
      	* semantics.c (classtype_has_nothrow_assign_or_copy_p): Clarify
      	semantics, simplify implementation.
      
      From-SVN: r250272
      Nathan Sidwell committed
    • Do not allow -fgnu-tm w/ -fsanitize={kernel-,}address (PR sanitizer/81302). · 26c5b549
      2017-07-17  Martin Liska  <mliska@suse.cz>
      
      	PR sanitizer/81302
      	* opts.c (finish_options): Do not allow -fgnu-tm
      	w/ -fsanitize={kernel-,}address.  Say sorry.
      
      From-SVN: r250271
      Martin Liska committed
    • re PR tree-optimization/81369 (ICE in generate_code_for_partition) · 6ff37519
      	PR target/81369
      	* tree-loop-distribution.c (classify_partition): Only assert on
      	numer of iterations.
      	(merge_dep_scc_partitions): Delete prameter.  Update function call.
      	(distribute_loop): Remove code handling loop with unknown niters.
      	(pass_loop_distribution::execute): Skip loop with unknown niters.
      
      From-SVN: r250270
      Bin Cheng committed
    • re PR tree-optimization/81369 (ICE in generate_code_for_partition) · aa1528b5
      	PR target/81369
      	* tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
      	function sort_partitions_by_post_order.
      
      	gcc/testsuite
      	* gcc.dg/tree-ssa/pr81369.c: New.
      
      From-SVN: r250269
      Bin Cheng committed
    • re PR tree-optimization/81374 (ICE in bb_top_order_cmp, at tree-loop-distribution.c:391) · 3fb82452
      	PR tree-optimization/81374
      	* tree-loop-distribution.c (pass_loop_distribution::execute): Record
      	the max index of basic blocks, rather than number of basic blocks.
      
      From-SVN: r250268
      Bin Cheng committed
    • [ARC] Consolidate PIC implementation. · b6c354eb
      This patch refactors a number of functions and compiler hooks into using a
      single function which checks if a rtx is suited for pic or not. Removed
      functions are arc_legitimate_pc_offset_p and arc_legitimate_pic_operand_p
      beeing replaced by calls to arc_legitimate_pic_addr_p. Thus we have an
      unitary way of checking a rtx beeing pic.
      
      gcc/
      2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
      	proto.
      	(arc_legitimate_pic_operand_p): Likewise.
      	* config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
      	function.
      	(arc_needs_pcl_p): Likewise.
      	(arc_legitimate_pc_offset_p): Likewise.
      	(arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
      	function is also used in constrains.md.
      	(arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
      	validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
      	PLUS.  Only return true/false in known cases, otherwise assert.
      	(arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
      	is already called in arc_legitimate_constant_p.
      	* config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
      	pic addresses.
      	(LEGITIMATE_PIC_OPERAND_P): Use
      	arc_raw_symbolic_reference_mentioned_p function.
      	* config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
      	function.
      	(Cal): Likewise.
      	(C32): Likewise.
      
      gcc/testsuite
      2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* gcc.target/arc/pr9000674901.c: New file.
      	* gcc.target/arc/pic-1.c: Likewise.
      	* gcc.target/arc/pr9001191897.c: Likewise.
      
      From-SVN: r250267
      Claudiu Zissulescu committed
    • [PATCH] [ARC] Add support for naked functions. · 1825c61e
      gcc/
      2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
                  Andrew Burgess  <andrew.burgess@embecosm.com>
      
              * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
              (arc_return_address_register): New function.
              * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
              (arc_handle_fndecl_attribute): Add naked attribute.
              (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
              (TARGET_WARN_FUNC_RETURN): Likewise.
              (arc_allocate_stack_slots_for_args): New function.
              (arc_warn_func_return): Likewise.
              (machine_function): Change type fn_type.
              (arc_compute_function_type): Consider new naked function type,
              change function return type.
              (arc_must_save_register): Adapt to handle new
              arc_compute_function_type's return type.
              (arc_expand_prologue): Likewise.
              (arc_expand_epilogue): Likewise.
              (arc_return_address_regs): Delete.
              (arc_return_address_register): New function.
              (arc_epilogue_uses): Use above function.
              * config/arc/arc.h (arc_return_address_regs): Delete prototype.
              (arc_function_type): Change encoding, add naked type.
              (ARC_INTERRUPT_P): Change to handle the new encoding.
              (ARC_FAST_INTERRUPT_P): Likewise.
              (ARC_NORMAL_P): Define.
              (ARC_NAKED_P): Likewise.
              (arc_compute_function_type): Delete prototype.
              * config/arc/arc.md (in_ret_delay_slot): Use
              arc_return_address_register function.
              (simple_return): Likewise.
              (p_return_i): Likewise.
      
      gcc/testsuite
      2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
                  Andrew Burgess  <andrew.burgess@embecosm.com>
      
              * gcc.target/arc/naked-1.c: New file.
              * gcc.target/arc/naked-2.c: Likewise.
      
      Co-Authored-By: Andrew Burgess <andrew.burgess@embecosm.com>
      
      From-SVN: r250266
      Claudiu Zissulescu committed
    • re PR tree-optimization/81428 (ICE: in build_one_cst, at tree.c:2079 with -O2.… · 9ebce098
      re PR tree-optimization/81428 (ICE: in build_one_cst, at tree.c:2079 with -O2. Fixed point division.)
      
      	PR tree-optimization/81428
      	* match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
      	can't be built for those types.
      
      	* gcc.dg/fixed-point/pr81428.c: New test.
      
      From-SVN: r250265
      Jakub Jelinek committed
    • Remove stuff dead since r239246. · f986e51e
      	* config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
      	* config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
      	(avr_inform_devices): Remove dead stuff.
      
      From-SVN: r250264
      Georg-Johann Lay committed
    • gcc_update (files_and_dependencies): Remove dead entry. · 8b99a6f7
      	* gcc_update (files_and_dependencies)
      	[gcc/config/avr/avr-tables.opt]: Remove dead entry.
      
      From-SVN: r250263
      Georg-Johann Lay committed
    • arm_neon.h: Fix softp typo. · c24920b2
      2017-07-17  Tamar Christina  <tamar.christina@arm.com>
      
      	* config/arm/arm_neon.h: Fix softp typo.
      
      From-SVN: r250262
      Tamar Christina committed
    • re PR tree-optimization/81365 (GCC miscompiles swap) · e8dd1313
      	PR tree-optimization/81365
      	* tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
      	aggregate moves onto bb predecessor edges, make sure there are no
      	loads that could alias the lhs in between the start of bb and the
      	loads from *phi.
      
      	* g++.dg/torture/pr81365.C: New test.
      
      From-SVN: r250261
      Jakub Jelinek committed
    • re PR middle-end/80929 (Division with constant no more optimized to mult highpart) · 764eec6c
      	PR 80929
      	* config/avr/avr.c (avr_mul_highpart_cost): New static function.
      	(avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
      	[LSHIFTRT, outer_code = TRUNCATE]: Same.
      
      From-SVN: r250258
      Georg-Johann Lay committed
    • re PR tree-optimization/81396 (Optimization of reading Little-Endian 64-bit… · 1f1e8aed
      re PR tree-optimization/81396 (Optimization of reading Little-Endian 64-bit number with portable code has a regression)
      
      	PR tree-optimization/81396
      	* tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
      	(init_symbolic_number): Initialize it to 1.
      	(perform_symbolic_merge): Add n_ops from both operands into the new
      	n_ops.
      	(find_bswap_or_nop): Don't consider n->n == cmpnop computations
      	without base_addr as useless if they need more than one operation.
      	(bswap_replace): Handle !bswap case for NULL base_addr.
      
      	* gcc.dg/tree-ssa/pr81396.c: New test.
      
      From-SVN: r250257
      Jakub Jelinek committed
    • Insert diverging jump alap in nvptx_single · ed9091b2
      2017-07-17  Tom de Vries  <tom@codesourcery.com>
      
      	PR target/81069
      	* config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
      	as possible.
      
      From-SVN: r250256
      Tom de Vries committed
    • [SPARC/RTEMS] Add __FIX_LEON3FT_B2BST · 42ec024b
      In case the LEON3FT back-to-back store workaround is active
      (sparc_fix_b2bst), then define the builtin define __FIX_LEON3FT_B2BST on
      RTEMS.  The intended use case for this is operating system code in
      assembly language.  See also:
      
      https://lists.rtems.org/pipermail/devel/2017-July/018463.html
      
      gcc/
      	*  gcc/config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
      	conditional builtin define __FIX_LEON3FT_B2BST.
      
      From-SVN: r250254
      Sebastian Huber committed
    • [RTEMS] Add multilibs for LEON3FT back-to-back store workaround · ecaf6857
      Replace MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED for readability.
      -mfix-gr712rc and -mfix-ut700 are currently equivalent.
      
      gcc/
      	* config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
      	MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
      	with -mfix-ut700.
      
      From-SVN: r250252
      Daniel Cederman committed
    • Daily bump. · 417e2a6a
      From-SVN: r250251
      GCC Administrator committed