]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
6 years agore PR sanitizer/80998 (Implement -fsanitize=pointer-overflow)
Jakub Jelinek [Fri, 28 Jul 2017 10:37:51 +0000 (12:37 +0200)] 
re PR sanitizer/80998 (Implement -fsanitize=pointer-overflow)

PR sanitizer/80998
* sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
* tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
* flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
Or it into SANITIZER_UNDEFINED.
* ubsan.c: Include gimple-fold.h and varasm.h.
(ubsan_expand_ptr_ifn): New function.
(instrument_pointer_overflow): New function.
(maybe_instrument_pointer_overflow): New function.
(instrument_object_size): Formatting fix.
(pass_ubsan::execute): Call instrument_pointer_overflow
and maybe_instrument_pointer_overflow.
* internal-fn.c (expand_UBSAN_PTR): New function.
* ubsan.h (ubsan_expand_ptr_ifn): Declare.
* sanitizer.def (__ubsan_handle_pointer_overflow,
__ubsan_handle_pointer_overflow_abort): New builtins.
* tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
* internal-fn.def (UBSAN_PTR): New internal function.
* opts.c (sanitizer_opts): Add pointer-overflow.
* lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
* fold-const.c (build_range_check): Compute pointer range check in
integral type if pointer arithmetics would be needed.  Formatting
fixes.
gcc/testsuite/
* c-c++-common/ubsan/ptr-overflow-1.c: New test.
* c-c++-common/ubsan/ptr-overflow-2.c: New test.
libsanitizer/
* ubsan/ubsan_handlers.cc: Cherry-pick upstream r304461.
* ubsan/ubsan_checks.inc: Likewise.
* ubsan/ubsan_handlers.h: Likewise.

From-SVN: r250656

6 years agoDo not handle VLA in sanitization (PR sanitizer/81460).
Martin Liska [Fri, 28 Jul 2017 10:36:36 +0000 (12:36 +0200)] 
Do not handle VLA in sanitization (PR sanitizer/81460).

2017-07-28  Martin Liska  <mliska@suse.cz>

PR sanitizer/81460
* sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
parameters that are of a variable-length.
2017-07-28  Martin Liska  <mliska@suse.cz>

PR sanitizer/81460
* gcc.dg/asan/pr81460.c: New test.

From-SVN: r250655

6 years ago[PowerPC/RTEMS] Add 64-bit support using ELFv2 ABI
Sebastian Huber [Fri, 28 Jul 2017 07:17:10 +0000 (07:17 +0000)] 
[PowerPC/RTEMS] Add 64-bit support using ELFv2 ABI

Add 64-bit support for RTEMS using the ELFv2 ABI with 64-bit long
double.

gcc/
* config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h.  Add
rs6000/biarch64.h.
* config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
(CRT_CALL_STATIC_FUNCTION): Likewise.
(ASM_DEFAULT_SPEC): New define.
(ASM_SPEC32): Likewise.
(ASM_SPEC64): Likewise.
(ASM_SPEC_COMMON): Likewise.
(ASM_SPEC): Likewise.
(INVALID_64BIT): Likewise.
(LINK_OS_DEFAULT_SPEC): Likewise.
(LINK_OS_SPEC32): Likewise.
(LINK_OS_SPEC64): Likewise.
(POWERPC_LINUX): Likewise.
(PTRDIFF_TYPE): Likewise.
(RESTORE_FP_PREFIX): Likewise.
(RESTORE_FP_SUFFIX): Likewise.
(SAVE_FP_PREFIX): Likewise.
(SAVE_FP_SUFFIX): Likewise.
(SIZE_TYPE): Likewise.
(SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
(TARGET_64BIT): Likewise.
(TARGET_64BIT): Likewise.
(TARGET_AIX): Likewise.
(WCHAR_TYPE_SIZE): Likewise.
(WCHAR_TYPE): Undefine.
(TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
(CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
(CPP_OS_RTEMS_SPEC): Delete.
(SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems.  Add
asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
link_os_spec64.
* config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.

libgcc/
* config/rs6000/ibm-ldouble.c: Disable if defined __rtems__.

From-SVN: r250652

6 years agore PR tree-optimization/81578 (ICE in omp_reduction_init_op)
Jakub Jelinek [Fri, 28 Jul 2017 07:11:51 +0000 (09:11 +0200)] 
re PR tree-optimization/81578 (ICE in omp_reduction_init_op)

PR tree-optimization/81578
* tree-parloops.c (build_new_reduction): Bail out if
reduction_code isn't one of the standard OpenMP reductions.
Move the details printing after that decision.

* gcc.dg/pr81578.c: New test.

From-SVN: r250651

6 years agore PR tree-optimization/81573 (wrong code at -O3 on x86_64-linux-gnu)
Richard Biener [Fri, 28 Jul 2017 07:08:38 +0000 (07:08 +0000)] 
re PR tree-optimization/81573 (wrong code at -O3 on x86_64-linux-gnu)

2017-07-28  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81573
* gcc.dg/torture/pr81573.c: Explicitely use signed char.

From-SVN: r250650

6 years agogo-backend.c (go_write_export_data): Use EXCLUDE section for AIX.
Tony Reix [Fri, 28 Jul 2017 00:16:36 +0000 (00:16 +0000)] 
go-backend.c (go_write_export_data): Use EXCLUDE section for AIX.

* go-backend.c (go_write_export_data): Use EXCLUDE section for
AIX.

From-SVN: r250648

6 years agoDaily bump.
GCC Administrator [Fri, 28 Jul 2017 00:16:34 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r250647

6 years agopredicates.md (volatile_mem_operand): Remove code related to reload_in_progress.
Peter Bergner [Thu, 27 Jul 2017 20:04:53 +0000 (15:04 -0500)] 
predicates.md (volatile_mem_operand): Remove code related to reload_in_progress.

* config/rs6000/predicates.md (volatile_mem_operand): Remove code
related to reload_in_progress.
(splat_input_operand): Likewise.
* config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
Delete prototype.
* config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
field.
(TARGET_EXPAND_TO_RTL_HOOK): Delete.
(TARGET_INSTANTIATE_DECLS): Likewise.
(legitimate_indexed_address_p): Delete reload_in_progress code.
(rs6000_debug_legitimate_address_p): Likewise.
(rs6000_eliminate_indexed_memrefs): Likewise.
(rs6000_emit_le_vsx_store): Likewise.
(rs6000_emit_move_si_sf_subreg): Likewise.
(rs6000_emit_move): Likewise.
(register_to_reg_type): Likewise.
(rs6000_pre_atomic_barrier): Likewise.
(rs6000_machopic_legitimize_pic_address): Likewise.
(rs6000_allocate_stack_temp): Likewise.
(rs6000_address_for_fpconvert): Likewise.
(rs6000_address_for_altivec): Likewise.
(rs6000_secondary_memory_needed_rtx): Delete function.
(rs6000_check_sdmode): Likewise.
(rs6000_alloc_sdmode_stack_slot): Likewise.
(rs6000_instantiate_decls): Likewise.
* config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
* config/rs6000/rs6000.md (splitter for *movsi_got_internal):
Delete reload_in_progress.
(*vec_reload_and_plus_<mptrsize>): Likewise.
* config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
(vsx_div_v2di): Likewise.
(vsx_udiv_v2di): Likewise.

From-SVN: r250638

6 years agors6000.opt (mlra): Replace with stub.
Peter Bergner [Thu, 27 Jul 2017 20:03:35 +0000 (15:03 -0500)] 
rs6000.opt (mlra): Replace with stub.

gcc/

* config/rs6000/rs6000.opt (mlra): Replace with stub.
* config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
* config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
(rs6000_debug_reg_global): Delete print of LRA status.
(rs6000_option_override_internal): Delete dead LRA related code.
(rs6000_lra_p): Delete function.
* doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.

gcc/testsuite/

* g++.dg/pr69667.C: Remove option -mlra.
* gcc.target/powerpc/dform-1.c: Likewise.
* gcc.target/powerpc/dform-2.c: Likewise.
* gcc.target/powerpc/dform-3.c: Likewise.
* gcc.target/powerpc/p8vector-int128-1.c: Likewise.
* gcc.target/powerpc/p9-vparity.c: Likewise.
* gcc.target/powerpc/pr63491.c: Likewise.
* gcc.target/powerpc/pr67808.c: Likewise.
* gcc.target/powerpc/pr68805.c: Likewise.
* gcc.target/powerpc/pr69461.c: Likewise.
* gcc.target/powerpc/pr71680.c: Likewise.
* gcc.target/powerpc/pr77289.c: Likewise.
* gcc.target/powerpc/pr78458.c: Likewise.
* gcc.target/powerpc/pr78543.c: Likewise.
* g++.dg/pr71294.C: Remove option -mno-lra.
* gcc.target/powerpc/pr71656-1.c: Likewise.
* gcc.target/powerpc/pr71656-2.c: Likewise.
* gcc.target/powerpc/pr71698.c: Likewise.

From-SVN: r250637

6 years agore PR c/45784 (gcc OpenMP - error: invalid controlling predicate)
Jakub Jelinek [Thu, 27 Jul 2017 19:13:42 +0000 (21:13 +0200)] 
re PR c/45784 (gcc OpenMP - error: invalid controlling predicate)

PR c/45784
* c-omp.c (c_finish_omp_for): If the condition is wrapped in
rhs of COMPOUND_EXPR(s), skip them and readd their lhs into
new COMPOUND_EXPRs around the rhs of the comparison.

* testsuite/libgomp.c/pr45784.c: New test.
* testsuite/libgomp.c++/pr45784.C: New test.

From-SVN: r250635

6 years agoAdd RTEMS support
Sebastian Huber [Thu, 27 Jul 2017 16:41:27 +0000 (16:41 +0000)] 
Add RTEMS support

gcc/ChangeLog

2017-07-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>

* config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
* config/riscv/rtems.h: New file.

From-SVN: r250632

6 years ago[PATCH][AArch64] Fix missing optimization for CMP+AND
Kyrylo Tkachov [Thu, 27 Jul 2017 16:29:31 +0000 (16:29 +0000)] 
[PATCH][AArch64] Fix missing optimization for CMP+AND

During combine GCC tries to merge CMP (with zero) and AND into a TST. However,
in cases where an ANDS operand is not compatible, this was being missed. Adding
a define_split where this operand was moved to a register seems to help out.

Committed on behalf of Sudi Das

---
gcc/

2017-07-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
    Sudakshina Das  <sudi.das@arm.com>

* config/aarch64/aarch64.md
(define_split for and<mode>3nr_compare): Move
non aarch64_logical_operand to a register.
(define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
register immediate operand to a register.
* config/aarch64/predicates.md (aarch64_mov_imm_operand): New.

gcc/testsuite

2017-07-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
    Sudakshina Das  <sudi.das@arm.com>

* gcc.target/aarch64/tst_imm_split_1.c: New Test.

Co-Authored-By: Sudakshina Das <sudi.das@arm.com>
From-SVN: r250631

6 years agore PR c/81417 (-Wsign-compare should print types being compared)
Marek Polacek [Thu, 27 Jul 2017 15:02:17 +0000 (15:02 +0000)] 
re PR c/81417 (-Wsign-compare should print types being compared)

PR c/81417
* c-warn.c (warn_for_sign_compare): Tweak the warning message.  Print
the types.

* c-c++-common/Wsign-compare-1.c: New test.
* g++.dg/warn/Wsign-compare-2.C: Update dg-warning.
* g++.dg/warn/Wsign-compare-4.C: Likewise.
* g++.dg/warn/Wsign-compare-6.C: Likewise.
* g++.dg/warn/compare1.C: Likewise.
* gcc.dg/compare1.c: Likewise.
* gcc.dg/compare2.c: Likewise.
* gcc.dg/compare4.c: Likewise.
* gcc.dg/compare5.c: Likewise.
* gcc.dg/pr35430.c: Likewise.
* gcc.dg/pr60087.c: Likewise.

From-SVN: r250630

6 years agore PR middle-end/81564 (ICE in group_case_labels_stmt())
Peter Bergner [Thu, 27 Jul 2017 14:05:14 +0000 (09:05 -0500)] 
re PR middle-end/81564 (ICE in group_case_labels_stmt())

gcc/
PR middle-end/81564
* tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.

gcc/testsuite/
PR middle-end/81564
* gcc.dg/pr81564.c: New test.

From-SVN: r250628

6 years agore PR tree-optimization/81573 (wrong code at -O3 on x86_64-linux-gnu)
Richard Biener [Thu, 27 Jul 2017 13:46:07 +0000 (13:46 +0000)] 
re PR tree-optimization/81573 (wrong code at -O3 on x86_64-linux-gnu)

2017-07-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81573
PR tree-optimization/81494
* tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
multi defuse cycle case.

* gcc.dg/torture/pr81573.c: New testcase.

From-SVN: r250627

6 years agore PR tree-optimization/81571 (ICE at -O3 in both 32-bit and 64-bit modes (internal...
Richard Biener [Thu, 27 Jul 2017 13:44:51 +0000 (13:44 +0000)] 
re PR tree-optimization/81571 (ICE at -O3 in both 32-bit and 64-bit modes (internal compiler error: in as_a, at is-a.h:192))

2017-07-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81571
* tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
PHIs.

* gcc.dg/torture/pr81571.c: New testcase.

From-SVN: r250626

6 years agoValidate that Init value is within range defined by IntegerRange.
Martin Liska [Thu, 27 Jul 2017 12:58:07 +0000 (14:58 +0200)] 
Validate that Init value is within range defined by IntegerRange.

2017-07-27  Martin Liska  <mliska@suse.cz>

* opt-functions.awk: Add validation of value of Init.
* optc-gen.awk: Pass new argument.

From-SVN: r250625

6 years agosparc.c (sparc_option_override): Set MASK_FSMULD flag earlier and only if MASK_FPU...
Eric Botcazou [Thu, 27 Jul 2017 12:56:03 +0000 (12:56 +0000)] 
sparc.c (sparc_option_override): Set MASK_FSMULD flag earlier and only if MASK_FPU is set.

* config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
earlier and only if MASK_FPU is set.  Adjust formatting.

From-SVN: r250623

6 years agoFix indirect call optimization done by autoFDO.
Martin Liska [Thu, 27 Jul 2017 12:54:17 +0000 (14:54 +0200)] 
Fix indirect call optimization done by autoFDO.

2017-07-27  Martin Liska  <mliska@suse.cz>

* auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
Fix wrong condition.

From-SVN: r250622

6 years agoInitialize counters in autoFDO to zero, not to uninitialized.
Martin Liska [Thu, 27 Jul 2017 12:53:34 +0000 (14:53 +0200)] 
Initialize counters in autoFDO to zero, not to uninitialized.

2017-07-27  Martin Liska  <mliska@suse.cz>

* auto-profile.c (afdo_annotate_cfg): Assign zero counts to
BBs and edges seen by autoFDO.

From-SVN: r250621

6 years agore PR middle-end/81502 (In some cases the data is moved to memory unnecessarily ...
Richard Biener [Thu, 27 Jul 2017 12:01:21 +0000 (12:01 +0000)] 
re PR middle-end/81502 (In some cases the data is moved to memory unnecessarily [partial regression])

2017-07-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81502
* tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
with incompatible but same sized type.
(execute_update_addresses_taken): Likewise.

* gcc.target/i386/vect-insert-1.c: New testcase.

From-SVN: r250620

6 years ago[Patch (preapproved)] Guard Copy Header pass on
James Greenhalgh [Thu, 27 Jul 2017 11:42:17 +0000 (11:42 +0000)] 
[Patch (preapproved)] Guard Copy Header pass on

While answering a user question on the equivalence of
-ftree-loop-vectorize + -ftree-slp-vectorize and -ftree-vectorize I
spotted one case which broke the equivalence. pass_ch::process_loop_p
was guarded on flag_tree_vectorize, meaning you would get it for
-ftree-vectorize, but not for -ftree-loop-vectorize/-ftree-slp-vectorize.

This patch fixes that, getting rid of the only use of flag_tree_vectorize
in the code base.

gcc/

* tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
flag_tree_loop_vectorize rather than flag_tree_vectorize.

From-SVN: r250619

6 years agoS/390: Fix PR81534
Andreas Krebbel [Thu, 27 Jul 2017 10:39:49 +0000 (10:39 +0000)] 
S/390: Fix PR81534

The HI/QI atomic_fetch_<atomic><mode>" expander accepted symbolic
references and emitted CAS patterns whose insn predicates rejected them.

Fixed by allowing symbolic references there as well.  Reload will get
rid of them due to the constraint letter.

Regression tested on s390x.

gcc/ChangeLog:

2017-07-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

PR target/81534
* config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
Change s_operand to memory_operand.

gcc/testsuite/ChangeLog:

2017-07-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

PR target/81534
* gcc.target/s390/pr81534.c: New test.

From-SVN: r250617

6 years ago[rs6000] Avoid rotates of floating-point modes
Richard Sandiford [Thu, 27 Jul 2017 09:38:54 +0000 (09:38 +0000)] 
[rs6000] Avoid rotates of floating-point modes

The little-endian VSX code uses rotates to swap the two 64-bit halves of
128-bit scalar modes.  This is fine for TImode and V1TImode, but it
isn't really valid to use RTL rotates on floating-point modes like
KFmode and TFmode, and doing that triggered an assert added by the
SVE series.  This patch uses bit-casts to V1TImode instead.

2017-07-27  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
* config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
(rs6000_emit_le_vsx_permute): ...this.  Take the destination as input.
Emit instructions rather than returning an expression.  Handle TFmode
and KFmode by casting to TImode.
(rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
(rs6000_emit_le_vsx_store): Likewise.
* config/rs6000/vsx.md (VSX_TI): New iterator.
(*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
(*vsx_le_undo_permute_<mode>): Likewise.
(*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
emit the split sequence.
(*vsx_le_perm_store_<mode>): Likewise.

From-SVN: r250615

6 years agore PR tree-optimization/81555 (Wrong code at -O1)
Jakub Jelinek [Thu, 27 Jul 2017 08:49:16 +0000 (10:49 +0200)] 
re PR tree-optimization/81555 (Wrong code at -O1)

PR tree-optimization/81555
PR tree-optimization/81556
* tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
if true, force CHANGED for the recursive invocation.
(reassociate_bb): Remember original length of ops array, pass
len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.

* gcc.c-torture/execute/pr81555.c: New test.
* gcc.c-torture/execute/pr81556.c: New test.

From-SVN: r250609

6 years agoattribs.c (decl_attributes): Imply noinline, noclone and no_icf attributes for noipa...
Jakub Jelinek [Thu, 27 Jul 2017 07:53:33 +0000 (09:53 +0200)] 
attribs.c (decl_attributes): Imply noinline, noclone and no_icf attributes for noipa attribute.

* attribs.c (decl_attributes): Imply noinline, noclone and no_icf
attributes for noipa attribute.  For naked attribute use
lookup_attribute first before lookup_attribute_spec.
* final.c (rest_of_handle_final): Disable IPA RA for functions with
noipa attribute.
* ipa-visibility.c (non_local_p): Fix comment typos.  Return true
for functions with noipa attribute.
(cgraph_externally_visible_p): Return true for functions with noipa
attribute.
* cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
for functions with noipa attribute.
* doc/extend.texi: Document noipa function attribute.
* tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
also for functions with noipa attribute.
(ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
c-family/
* c-attribs.c (c_common_attribute_table): Add noipa attribute.
(handle_noipa_attribute): New function.
testsuite/
* gcc.dg/attr-noipa.c: New test.
* gcc.dg/ipa/ipa-pta-18.c: New test.
* gcc.dg/ipa/ipa-sra-11.c: New test.

From-SVN: r250607

6 years agoDaily bump.
GCC Administrator [Thu, 27 Jul 2017 00:16:30 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r250601

6 years agoaarch64.c (thunderx_vector_cost): Decrease cost of vec_unalign_load_cost and vec_unal...
Andrew Pinski [Wed, 26 Jul 2017 23:31:26 +0000 (23:31 +0000)] 
aarch64.c (thunderx_vector_cost): Decrease cost of vec_unalign_load_cost and vec_unalign_store_cost.

2017-07-26  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
        vec_unalign_load_cost and vec_unalign_store_cost.

From-SVN: r250597

6 years agors6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete -mvsx-small-integer option.
Michael Meissner [Wed, 26 Jul 2017 23:03:41 +0000 (23:03 +0000)] 
rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete -mvsx-small-integer option.

[gcc]
2017-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
-mvsx-small-integer option.
(ISA_3_0_MASKS_IEEE): Likewise.
(OTHER_VSX_VECTOR_MASKS): Likewise.
(POWERPC_MASKS): Likewise.
* config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
code, only testing for DImode being allowed in non-VSX floating
point registers.
(rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
to TARGET_P8_VECTOR test.  Remove redundant VSX test inside of
another VSX test.
(rs6000_option_override_internal): Delete -mvsx-small-integer.
(rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
TARGET_P8_VECTOR test.
(rs6000_secondary_reload_simple_move): Likewise.
(rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
since TARGET_P9_VECTOR was already tested.
(rs6000_opt_masks): Remove -mvsx-small-integer.
* config/rs6000/vsx.md (vsx_extract_<mode>): Delete
TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
used.
(vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
test for TARGET_VEXTRACTUB was used, and that uses
TARGET_P9_VECTOR.
(p9 extract splitter): Likewise.
(vsx_extract_<mode>_di_p9): Likewise.
(vsx_extract_<mode>_store_p9): Likewise.
(vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
for TARGET_P9_VECTOR was used.  Delete code that is now dead with
the elimination of TARGET_VSX_SMALL_INTEGER.
(vsx_extract_<mode>_p8): Likewise.
(vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
(vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
(vsx_set_<mode>_p9): Likewise.
(vsx_set_v4sf_p9): Likewise.
(vsx_set_v4sf_p9_zero): Likewise.
(vsx_insert_extract_v4sf_p9): Likewise.
(vsx_insert_extract_v4sf_p9_2): Likewise.
* config/rs6000/rs6000.md (sign extend splitter): Change
TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
(floatsi<mode>2_lfiwax_mem): Likewise.
(floatunssi<mode>2_lfiwzx_mem): Likewise.
(float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
since a test for TARGET_P9_VECTOR was used.
(float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
(floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
(floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
(fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
TARGET_P8_VECTOR test.
(fix_trunc<mode>si2_stfiwx): Likewise.
(fix_trunc<mode>si2_internal): Likewise.
(fix_trunc<SFDF:mode><QHI:mode>2): Delete
TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
used.
(fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
(fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
TARGET_P8_VECTOR test.
(fixuns_trunc<mode>si2_stfiwx): Likewise.
(fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
used.
(fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
(fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
since a test for TARGET_P9_VECTOR was used.
(splitter for loading small constants): Likewise.

[gcc/testsuite]
2017-07-25  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/vsx-himode.c: Delete -mvsx-small-integer
option.
* gcc.target/powerpc/vsx-himode2.c: Likewise.
* gcc.target/powerpc/vsx-himode3.c: Likewise.
* gcc.target/powerpc/vsx-qimode.c: Likewise.
* gcc.target/powerpc/vsx-qimode2.c: Likewise.
* gcc.target/powerpc/vsx-qimode3.c: Likewise.
* gcc.target/powerpc/vsx-simode.c: Likewise.
* gcc.target/powerpc/vsx-simode2.c: Likewise.
* gcc.target/powerpc/vsx-simode3.c: Likewise.

From-SVN: r250595

6 years agoPR libstdc++/53984 fix failing test
Jonathan Wakely [Wed, 26 Jul 2017 22:06:13 +0000 (23:06 +0100)] 
PR libstdc++/53984 fix failing test

PR libstdc++/53984
* testsuite/27_io/basic_fstream/53984.cc: Fix test.

From-SVN: r250594

6 years agore PR go/81548 ("make distclean" does not clean all of gotools/)
Ian Lance Taylor [Wed, 26 Jul 2017 22:01:36 +0000 (22:01 +0000)] 
re PR go/81548 ("make distclean" does not clean all of gotools/)

PR go/81548
* Makefile.am (MOSTLYCLEANFILES): Add *.sent.
* Makefile.in: Rebuild.

From-SVN: r250593

6 years agoaarch64.c (thunderx_vector_cost): Fix vec_fp_stmt_cost.
Andrew Pinski [Wed, 26 Jul 2017 21:51:05 +0000 (21:51 +0000)] 
aarch64.c (thunderx_vector_cost): Fix vec_fp_stmt_cost.

2017-07-26  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
        vec_fp_stmt_cost.

From-SVN: r250592

6 years agore PR c++/71570 (ICE on invalid variable capture in cxx_incomplete_type_diagnostic...
Paolo Carlini [Wed, 26 Jul 2017 21:46:22 +0000 (21:46 +0000)] 
re PR c++/71570 (ICE on invalid variable capture in cxx_incomplete_type_diagnostic, at cp/typeck2.c:55)

/cp
2017-07-26  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/71570
* lambda.c (add_capture): Early return if we cannot capture by
reference.

/testsuite
2017-07-26  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/71570
* g++.dg/cpp0x/lambda/lambda-ice17.C: New.

From-SVN: r250591

6 years agoconfigure.ac: Check for XCOFF32/XCOFF64.
Tony Reix [Wed, 26 Jul 2017 21:43:28 +0000 (21:43 +0000)] 
configure.ac: Check for XCOFF32/XCOFF64.

* configure.ac: Check for XCOFF32/XCOFF64.  Check for loadquery.
* filetype.awk: Separate AIX XCOFF32 and XCOFF64.
* xcoff.c: Add support for AIX XCOFF32 and XCOFF64 formats.
* configure, config.h.in: Regenerate.

From-SVN: r250590

6 years agoruntime: handle Alpha GNU/Linux in getSiginfo
Ian Lance Taylor [Wed, 26 Jul 2017 20:20:22 +0000 (20:20 +0000)] 
runtime: handle Alpha GNU/Linux in getSiginfo

    Patch by Uros Bizjak.

    Reviewed-on: https://go-review.googlesource.com/51370

From-SVN: r250588

6 years agox86: Properly check saved register CFA offset
H.J. Lu [Wed, 26 Jul 2017 19:13:23 +0000 (19:13 +0000)] 
x86: Properly check saved register CFA offset

X86 prologue saves register at CFA offset.  Since its location on stack
is computed as CFA - its CFA_OFFSET, CFA_OFFSET points the end of the
saved register area on stack.  This patch updates sp_valid_at and
fp_valid_at to properly check saved register CFA offset.

gcc/

PR target/81563
* config/i386/i386.c (sp_valid_at): Properly check CFA offset.
(fp_valid_at): Likewise.

gcc/testsuite/

PR target/81563
* gcc.target/i386/pr81563.c: New test

From-SVN: r250587

6 years ago[Patch AArch64 obvious] Unify address costs to generic_addrcost_table
James Greenhalgh [Wed, 26 Jul 2017 17:40:39 +0000 (17:40 +0000)] 
[Patch AArch64 obvious] Unify address costs to generic_addrcost_table

The special case address cost tables for Cortex-A57 and qdf24xx are no
different from the generic address cost table. We should just use the
address cost table directly. If this changes in future, a core is welcome
to add new address cost tables.

gcc/

* config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
(qdf24xx_addrcost_table): Likewise.
(cortexa57_tunings): Update to use generic_branch_cost.
(cortexa72_tunings): Likewise.
(cortexa73_tunings): Likewise.
(qdf24xx_tunings): Likewise.

From-SVN: r250585

6 years agoP0702R1 - List deduction of vector.
Jason Merrill [Wed, 26 Jul 2017 17:39:31 +0000 (13:39 -0400)] 
P0702R1 - List deduction of vector.

* pt.c (do_class_deduction): Special-case deduction from a single
element of related type.

From-SVN: r250584

6 years agoPR c++/67054 - Inherited ctor with non-default-constructible members
Leonid Koppel [Wed, 26 Jul 2017 17:39:26 +0000 (17:39 +0000)] 
PR c++/67054 - Inherited ctor with non-default-constructible members

        PR c++/67054 - Inherited ctor with non-default-constructible members
        * method.c (walk_field_subobs) Consider member initializers (NSDMIs)
when deducing an inheriting constructor.

From-SVN: r250583

6 years ago[Patch AArch64 Obvious] Unify branch costs to generic_branch_cost
James Greenhalgh [Wed, 26 Jul 2017 17:39:12 +0000 (17:39 +0000)] 
[Patch AArch64 Obvious] Unify branch costs to generic_branch_cost

All the cores in AArch64 use the pair {1, 3} for their branch costs. As
that is covered by generic_branch_cost, we can just use that directly and
save the tiny amount of redundant code. If in future any core wants to
modify this, they can always add a special-case branch-cost back.

gcc/

* config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
(thunderx2t99_branch_cost): Likewise.
(cortexa35_tunings): Update to use generic_branch_cost.
(cortexa53_tunings): Likewise.
(cortexa57_tunings): Likewise.
(cortexa72_tunings): Likewise.
(cortexa73_tunings): Likewise.
(thunderx2t99_tunings): Likewise.

From-SVN: r250582

6 years ago53984.cc: Fix typo in dg-require directive.
Paolo Carlini [Wed, 26 Jul 2017 14:13:15 +0000 (14:13 +0000)] 
53984.cc: Fix typo in dg-require directive.

2017-07-26  Paolo Carlini  <paolo.carlini@oracle.com>

* testsuite/27_io/basic_fstream/53984.cc: Fix typo in dg-require
directive.

From-SVN: r250575

6 years ago[SPARC] Add -mfsmuld option
Sebastian Huber [Wed, 26 Jul 2017 12:39:43 +0000 (12:39 +0000)] 
[SPARC] Add -mfsmuld option

Add the -mfsmuld option to control the generation of the FsMULd
instruction.  In general, this instruction is available in architecture
version V8 and V9 CPUs with FPU.  Some CPUs of this category do not
support this instruction properly, e.g. AT697E, AT697F and UT699.  Some
CPUs of this category do not implement it in hardware, e.g. LEON3/4 with
GRFPU-lite.

gcc/
* config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
(sparc_option_override): Honour MASK_FSMULD.
* config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
* config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
* config/sparc/sparc.opt (mfsmuld): New option.
* doc/invoke.texi (mfsmuld): Document option.

From-SVN: r250570

6 years agoDisable pr79041-2.c with -mabi=ilp32.
Wilco Dijkstra [Wed, 26 Jul 2017 11:55:03 +0000 (11:55 +0000)] 
Disable pr79041-2.c with -mabi=ilp32.

    gcc/testsuite/
PR target/79041
* gcc.target/aarch64/pr79041-2.c: Don't run in ILP32.

From-SVN: r250567

6 years agore PR middle-end/70992 (Infinite recursion between fold_build2_stat_loc and fold_bina...
Marek Polacek [Wed, 26 Jul 2017 11:53:17 +0000 (11:53 +0000)] 
re PR middle-end/70992 (Infinite recursion between fold_build2_stat_loc and fold_binary_loc w/ -fwrapv)

PR middle-end/70992
* tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.

* gcc.dg/overflow-warn-1.c: Adjust dg-error.
* gcc.dg/overflow-warn-2.c: Likewise.
* gcc.dg/overflow-warn-3.c: Likewise.
* gcc.dg/overflow-warn-4.c: Likewise.
* gcc.dg/torture/pr70992-2.c: New test.
* gcc.dg/torture/pr70992.c: New test.

From-SVN: r250566

6 years agogimple-match-head.c (do_valueize): Return OP if valueize returns NULL_TREE.
Richard Biener [Wed, 26 Jul 2017 11:35:45 +0000 (11:35 +0000)] 
gimple-match-head.c (do_valueize): Return OP if valueize returns NULL_TREE.

2017-07-26  Richard Biener  <rguenther@suse.de>

* gimple-match-head.c (do_valueize): Return OP if valueize
returns NULL_TREE.
(get_def): New helper to get at the def stmt of a SSA name
if valueize allows.
* genmatch.c (dt_node::gen_kids_1): Use get_def instead of
do_valueize to get at the def stmt.
(dt_operand::gen_gimple_expr): Simplify do_valueize calls.

* gcc/testsuite/gcc.dg/pr70920-2.c: Adjust for transform already
happening in ccp1.
* gcc/testsuite/gcc.dg/pr70920-4.c: Likewise.

From-SVN: r250565

6 years agoFix PR46932: Block auto increment on frame pointer
Wilco Dijkstra [Wed, 26 Jul 2017 10:49:17 +0000 (10:49 +0000)] 
Fix PR46932: Block auto increment on frame pointer

Block auto increment on frame pointer references.  This is never
beneficial since the SFP expands into SP+C or FP+C during register
allocation.  The generated code for the testcase is now as expected:

str x30, [sp, -32]!
strb w0, [sp, 31]
add x0, sp, 31
bl foo3
ldr x30, [sp], 32
ret

    gcc/
PR middle-end/46932
* auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.

    gcc/testsuite/
PR middle-end/46932
* gcc.dg/pr46932.c: New testcase.

From-SVN: r250564

6 years agoMove non-local goto expansion after parm_birth_insn (PR sanitize/81186).
Martin Liska [Wed, 26 Jul 2017 08:52:37 +0000 (10:52 +0200)] 
Move non-local goto expansion after parm_birth_insn (PR sanitize/81186).

2017-07-26  Martin Liska  <mliska@suse.cz>

PR sanitize/81186
* function.c (expand_function_start): Make expansion of
nonlocal_goto_save_area after parm_birth_insn.
2017-07-26  Martin Liska  <mliska@suse.cz>

PR sanitize/81186
* gcc.dg/asan/pr81186.c: New test.

From-SVN: r250561

6 years ago[SPARC] Drop superfluous MASK_FPU enable
Sebastian Huber [Wed, 26 Jul 2017 08:28:12 +0000 (08:28 +0000)] 
[SPARC] Drop superfluous MASK_FPU enable

All TARGET_DEFAULT defines set MASK_FPU.  There is no need to set it in
some CPU target flags enable.

gcc/
* config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
from all CPU target flags enable members.

From-SVN: r250557

6 years agogenmatch.c (dt_simplify::gen): Make iterator vars const.
Richard Biener [Wed, 26 Jul 2017 07:36:07 +0000 (07:36 +0000)] 
genmatch.c (dt_simplify::gen): Make iterator vars const.

2017-07-25  Richard Biener  <rguenther@suse.de>

* genmatch.c (dt_simplify::gen): Make iterator vars const.
(decision_tree::gen): Make 'type' const.
(write_predicate): Likewise.

From-SVN: r250556

6 years agors6000.c (rs6000_init_hard_regno_mode_ok): Eliminate TARGET_UPPER_REGS_{DF,DI,SF...
Michael Meissner [Wed, 26 Jul 2017 04:15:23 +0000 (04:15 +0000)] 
rs6000.c (rs6000_init_hard_regno_mode_ok): Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.

2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
(rs6000_option_override_internal): Likewise.
(rs6000_expand_vector_set): Likewise.
* config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
(TARGET_UPPER_REGS_SF): Likewise.
(TARGET_UPPER_REGS_DI): Likewise.
(TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
(TARGET_DIRECT_MOVE_64BIT): Likewise.
* config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
(float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
(Splitters for DI constants in Altivec registers): Likewise.
* config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
(vsx_set_v4sf_p9): Likewise.
(vsx_set_v4sf_p9_zero): Likewise.
(vsx_insert_extract_v4sf_p9): Likewise.
(vsx_insert_extract_v4sf_p9_2): Likewise.

From-SVN: r250555

6 years agoDaily bump.
GCC Administrator [Wed, 26 Jul 2017 00:16:22 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r250554

6 years agoextend.texi: Update the built-in documentation file for the existing built-in functio...
Carl Love [Tue, 25 Jul 2017 23:16:25 +0000 (23:16 +0000)] 
extend.texi: Update the built-in documentation file for the existing built-in functions...

gcc/ChangeLog:

2017-07-25  Carl Love  <cel@us.ibm.com>

* doc/extend.texi: Update the built-in documentation file for the
existing built-in functions
vector signed char vec_cnttz (vector signed char);
vector unsigned char vec_cnttz (vector unsigned char);
vector signed short vec_cnttz (vector signed short);
vector unsigned short vec_cnttz (vector unsigned short);
vector signed int vec_cnttz (vector signed int);
vector unsigned int vec_cnttz (vector unsigned int);
vector signed long long vec_cnttz (vector signed long long);
vector unsigned long long vec_cnttz (vector unsigned long long);

gcc/testsuite/ChangeLog:

2017-07-25  Carl Love  <cel@us.ibm.com>

* gcc.target/powerpc/builtins-4-p9-runnable.c:  Add test file for
vec_cnttz builtins.

From-SVN: r250549

6 years agocompiler: clean up unresolved placeholders for pointer types
Ian Lance Taylor [Tue, 25 Jul 2017 22:54:23 +0000 (22:54 +0000)] 
compiler: clean up unresolved placeholders for pointer types

    Add a new helper routine Type::finish_pointer_types that walks through
    the pointer type cache and looks for placeholder types that may have
    been created at some point before conversion of named types, and
    invokes Type::finish_backend() on said placeholders.  This is needed
    to handle cases where the compiler manufactures a pointer type as part
    of lowering, then a placeholder is created for it due to a call to
    Type::backend_type_size(), but there is no explicit reference to the
    type in user code.

    Reviewed-on: https://go-review.googlesource.com/51131

From-SVN: r250548

6 years agoPR libstdc++/53984 handle exceptions in basic_istream::sentry
Jonathan Wakely [Tue, 25 Jul 2017 20:36:06 +0000 (21:36 +0100)] 
PR libstdc++/53984 handle exceptions in basic_istream::sentry

PR libstdc++/53984
* include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment.
* include/bits/istream.tcc (basic_istream::sentry): Handle exceptions
during construction.
* include/std/istream: Adjust comments for formatted input functions
and unformatted input functions.
* testsuite/27_io/basic_fstream/53984.cc: New.
* testsuite/27_io/basic_istream/sentry/char/53984.cc: New.

From-SVN: r250545

6 years agoRemove deprecated iostream members for C++17
Jonathan Wakely [Tue, 25 Jul 2017 17:47:52 +0000 (18:47 +0100)] 
Remove deprecated iostream members for C++17

* include/bits/ios_base.h (ios_base::io_state, ios_base::open_mode)
(ios_base::seek_dir): Remove for C++17.
* include/std/streambuf (basic_streambuf::stossc): Remove for C++17.
Add deprecated attribute for C++11 and C++14.
* testsuite/27_io/types/1.cc: Don't run for C++17 and later.
* testsuite/27_io/types/4.cc: New.

From-SVN: r250531

6 years agotree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory accesses where...
Andrew Pinski [Tue, 25 Jul 2017 17:17:46 +0000 (17:17 +0000)] 
tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory accesses where the use is for the first operand of a...

2017-07-25  Andrew Pinski  <apinski@cavium.com>

        * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
        accesses where the use is for the first operand of a BIT_INSERT.

From-SVN: r250530

6 years agoFix i686-pc-cygwin build failure.
Jim Wilson [Tue, 25 Jul 2017 16:06:37 +0000 (16:06 +0000)] 
Fix i686-pc-cygwin build failure.

gcc/
PR bootstrap/81521
* config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.

From-SVN: r250529

6 years agoDelete files unused since openbsd 2 & 3 support was dropped.
Jim Wilson [Tue, 25 Jul 2017 14:59:38 +0000 (14:59 +0000)] 
Delete files unused since openbsd 2 & 3 support was dropped.

gcc/
* config/i386/gstabs.h: Delete.
* config/i386/openbsd.h, config/i386/t-openbsd: Likewise.

From-SVN: r250527

6 years agoi386.c (ix86_decompose_address): Do not check for register RTX when looking at index_...
Uros Bizjak [Tue, 25 Jul 2017 14:48:55 +0000 (16:48 +0200)] 
i386.c (ix86_decompose_address): Do not check for register RTX when looking at index_reg or base_reg.

* config/i386/i386.c (ix86_decompose_address): Do not check for
register RTX when looking at index_reg or base_reg.
* config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.

From-SVN: r250526

6 years agogimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace to update EH info...
Eric Botcazou [Tue, 25 Jul 2017 14:47:16 +0000 (14:47 +0000)] 
gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace to update EH info here.

* gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
to update EH info here.
ada/
* checks.adb (Apply_Divide_Checks): Ensure that operands are not
evaluated twice.

From-SVN: r250525

6 years agomatch.pd: combine successive multiplications by constants
Alexander Monakov [Tue, 25 Jul 2017 14:36:03 +0000 (17:36 +0300)] 
match.pd: combine successive multiplications by constants

* match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
testsuite:
* gcc.dg/tree-ssa/assoc-2.c: Enhance.
* gcc.dg/tree-ssa/slsr-4.c: Adjust.

From-SVN: r250524

6 years agomatch.pd: reassociate multiplications
Alexander Monakov [Tue, 25 Jul 2017 14:33:39 +0000 (17:33 +0300)] 
match.pd: reassociate multiplications

* match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
testsuite/
* gcc.dg/tree-ssa/assoc-2.c: New testcase.

From-SVN: r250523

6 years agoc-attribs.c (c_common_attribute_table): Add entry for "patchable_function_entry".
Torsten Duwe [Tue, 25 Jul 2017 14:16:10 +0000 (14:16 +0000)] 
c-attribs.c (c_common_attribute_table): Add entry for "patchable_function_entry".

2017-07-07  Torsten Duwe  <duwe@suse.de>

        c-family/
* c-attribs.c (c_common_attribute_table): Add entry for
"patchable_function_entry".

        lto/
* lto-lang.c (lto_attribute_table): Add entry for
"patchable_function_entry".

* common.opt: Introduce -fpatchable-function-entry
command line option, and its variables function_entry_patch_area_size
and function_entry_patch_area_start.
* opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
including a two-value parser.
* target.def (print_patchable_function_entry): New target hook.
* targhooks.h (default_print_patchable_function_entry): New function.
* targhooks.c (default_print_patchable_function_entry): Likewise.
* toplev.c (process_options): Switch off IPA-RA if
patchable function entries are being generated.
* varasm.c (assemble_start_function): Look at the
patchable-function-entry command line switch and current
function attributes and maybe generate NOP instructions by
calling the print_patchable_function_entry hook.
* doc/extend.texi: Document patchable_function_entry attribute.
* doc/invoke.texi: Document -fpatchable_function_entry
command line option.
* doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
New target hook.
* doc/tm.texi: Re-generate.

* c-c++-common/patchable_function_entry-default.c: New test.
* c-c++-common/patchable_function_entry-decl.c: Likewise.
* c-c++-common/patchable_function_entry-definition.c: Likewise.

From-SVN: r250521

6 years agore PR target/81532 (insn does not satisfy its constraints: extract_constrain_insn...
Jakub Jelinek [Tue, 25 Jul 2017 13:35:17 +0000 (15:35 +0200)] 
re PR target/81532 (insn does not satisfy its constraints: extract_constrain_insn, at recog.c:2213)

PR target/81532
* config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
TARGET_AVX512DQ rather than TARGET_AVX512BW.

* gcc.target/i386/pr80833-3.c: New test.
* gcc.target/i386/avx512dq-pr81532.c: New test.
* gcc.target/i386/avx512bw-pr81532.c: New test.

From-SVN: r250520

6 years agoparsecpu.awk (all_cores): Remove duplicates.
Tamar Christina [Tue, 25 Jul 2017 13:25:36 +0000 (13:25 +0000)] 
parsecpu.awk (all_cores): Remove duplicates.

2017-07-25  Tamar Christina  <tamar.christina@arm.com>

* config/arm/parsecpu.awk (all_cores): Remove duplicates.

From-SVN: r250519

6 years agore PR tree-optimization/81455 (Compile-time hog w/ -O1 -funswitch-loops)
Richard Biener [Tue, 25 Jul 2017 13:24:51 +0000 (13:24 +0000)] 
re PR tree-optimization/81455 (Compile-time hog w/ -O1 -funswitch-loops)

2017-07-25  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81455
* tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
not walk in cycles when looking for guards.

* gcc.dg/pr81455.c: New testcase.

From-SVN: r250518

6 years agore PR tree-optimization/81529 (ICE in vectorizable_induction, at tree-vect-loop.c...
Richard Biener [Tue, 25 Jul 2017 13:22:31 +0000 (13:22 +0000)] 
re PR tree-optimization/81529 (ICE in vectorizable_induction, at tree-vect-loop.c:6613)

2017-07-25  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81529
* tree-vect-stmts.c (process_use): Disregard live induction PHIs
when optimizing backedge uses.

* gfortran.dg/pr81529.f90: New testcase.

From-SVN: r250517

6 years agodwarf2asm.c (dw2_asm_output_nstring): Encode double quote character for AIX.
David Edelsohn [Tue, 25 Jul 2017 13:11:37 +0000 (13:11 +0000)] 
dwarf2asm.c (dw2_asm_output_nstring): Encode double quote character for AIX.

        * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
        character for AIX.
        * dwarf2out.c (output_macinfo): Copy debug_line_section_label
        to dl_section_ref.  On AIX, append an expression to subtract
        the size of the section length to dl_section_ref.

From-SVN: r250516

6 years ago* c-decl.c (grokfield): Remove local variable.
Marek Polacek [Tue, 25 Jul 2017 12:06:12 +0000 (12:06 +0000)] 
* c-decl.c (grokfield): Remove local variable.

From-SVN: r250513

6 years agore PR target/79041 (aarch64 backend emits R_AARCH64_ADR_PREL_PG_HI21 relocation despi...
Wilco Dijkstra [Tue, 25 Jul 2017 12:03:13 +0000 (12:03 +0000)] 
re PR target/79041 (aarch64 backend emits R_AARCH64_ADR_PREL_PG_HI21 relocation despite -mpc-relative-literal-loads option being used)

Fix PR79041

Add missing scan assembler to testcase.

    gcc/testsuite/
* gcc.target/aarch64/pr79041-2.c: Improve test.

From-SVN: r250512

6 years ago* ioparm.def: Use 1U << 31 instead of 1 << 31 as flags2 mask.
Jakub Jelinek [Tue, 25 Jul 2017 11:44:49 +0000 (13:44 +0200)] 
* ioparm.def: Use 1U << 31 instead of 1 << 31 as flags2 mask.

From-SVN: r250510

6 years agoDo not silently continue if config.{build,host,gcc} fails
Segher Boessenkool [Tue, 25 Jul 2017 11:34:57 +0000 (13:34 +0200)] 
Do not silently continue if config.{build,host,gcc} fails

If config.{build,host,gcc} fails, configure currently silently
continues.  This then makes it much harder than necessary to notice
you made a stupid pasto in config.gcc (and where exactly).

* configure.ac: If any of the config.* scripts fail, exit 1.
* configure: Regenerate.

From-SVN: r250507

6 years agore PR tree-optimization/81410 (-O3 breaks code)
Richard Biener [Tue, 25 Jul 2017 11:28:08 +0000 (11:28 +0000)] 
re PR tree-optimization/81410 (-O3 breaks code)

2017-07-25  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81410
* gcc.dg/vect/pr81410.c: Do not typedef uint64_t.

From-SVN: r250506

6 years agore PR tree-optimization/81546 (ICE at -O3 during GIMPLE pass dom)
Richard Biener [Tue, 25 Jul 2017 11:05:55 +0000 (11:05 +0000)] 
re PR tree-optimization/81546 (ICE at -O3 during GIMPLE pass dom)

2017-07-25  Richard Biener  <rguenther@suse.de>

PR middle-end/81546
* tree-ssa-operands.c (verify_imm_links): Remove cap on number
of immediate uses, be more verbose on errors.

From-SVN: r250505

6 years agore PR tree-optimization/81510 (ice in operator[], at vec.h:749)
Richard Biener [Tue, 25 Jul 2017 11:02:32 +0000 (11:02 +0000)] 
re PR tree-optimization/81510 (ice in operator[],  at vec.h:749)

2017-07-25  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81510
* tree-vect-loop.c (vect_is_simple_reduction): When the
reduction stmt is not inside the loop bail out.

* gcc.dg/torture/pr81510.c: New testcase.
* gcc.dg/torture/pr81510-2.c: Likewise.

From-SVN: r250504

6 years agore PR tree-optimization/81303 (410.bwaves regression caused by r249919)
Richard Biener [Tue, 25 Jul 2017 10:59:15 +0000 (10:59 +0000)] 
re PR tree-optimization/81303 (410.bwaves regression caused by r249919)

2017-07-25  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81303
* tree-vect-loop-manip.c (vect_loop_versioning): Build
profitability check against LOOP_VINFO_NITERSM1.

From-SVN: r250503

6 years agodomwalk: optimize basic block sorting
Alexander Monakov [Tue, 25 Jul 2017 10:53:58 +0000 (13:53 +0300)] 
domwalk: optimize basic block sorting

* domwalk.c (cmp_bb_postorder): Simplify.
(sort_bbs_postorder): New function.  Use it...
(dom_walker::walk): ...here to optimize common cases.

From-SVN: r250502

6 years agoFix wrong condition in ipa-visibility.c (PR ipa/81520).
Martin Liska [Tue, 25 Jul 2017 10:20:23 +0000 (12:20 +0200)] 
Fix wrong condition in ipa-visibility.c (PR ipa/81520).

2017-07-25  Martin Liska  <mliska@suse.cz>

PR ipa/81520
* ipa-visibility.c (function_and_variable_visibility): Make the redirection
just on target that do supporting aliasing.  Fix GNU coding style.
2017-07-25  Martin Liska  <mliska@suse.cz>

PR ipa/81520
* gcc.dg/ipa/pr81520.c: New test.

From-SVN: r250501

6 years ago[RTEMS] Add GCC Runtime Library Exception
Sebastian Huber [Tue, 25 Jul 2017 10:06:23 +0000 (10:06 +0000)] 
[RTEMS] Add GCC Runtime Library Exception

gcc/

PR libgcc/61152
* config/aarch64/rtems.h: Add GCC Runtime Library Exception.
Format changes.
* config/arm/rtems.h: Likewise.
* config/bfin/rtems.h: Likewise.
* config/i386/rtemself.h: Likewise.
* config/lm32/rtems.h: Likewise.
* config/m32c/rtems.h: Likewise.
* config/m68k/rtemself.h: Likewise.
* config/microblaze/rtems.h: Likewise.
* config/mips/rtems.h: Likewise.
* config/moxie/rtems.h: Likewise.
* config/nios2/rtems.h: Likewise.
* config/powerpcspe/rtems.h: Likewise.
* config/rs6000/rtems.h: Likewise.
* config/rtems.h: Likewise.
* config/sh/rtems.h: Likewise.
* config/sh/rtemself.h: Likewise.
* config/sparc/rtemself.h: Likewise.

From-SVN: r250500

6 years agore PR lto/81487 ([mingw32] ld.exe: error: asprintf failed)
Georg-Johann Lay [Tue, 25 Jul 2017 09:59:44 +0000 (09:59 +0000)] 
re PR lto/81487 ([mingw32] ld.exe: error: asprintf failed)

gcc/
PR 81487
* hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
* gimple-pretty-print.c (dump_profile, dump_probability): Same.
* tree-ssa-structalias.c (alias_get_name): Same.

From-SVN: r250499

6 years agore PR c/81364 (Bogus -Wmultistatement-macros warning)
Marek Polacek [Tue, 25 Jul 2017 09:49:08 +0000 (09:49 +0000)] 
re PR c/81364 (Bogus -Wmultistatement-macros warning)

PR c/81364
* c-parser.c (c_parser_else_body): Don't warn about multistatement
macro expansion if the body is in { }.
(c_parser_while_statement): Likewise.
(c_parser_for_statement): Likewise.

* Wmultistatement-macros-12.c: New test.

From-SVN: r250498

6 years agore PR target/81414 (ICE in fma steering on AArch64/cortex-a57)
Bin Cheng [Tue, 25 Jul 2017 08:31:22 +0000 (08:31 +0000)] 
re PR target/81414 (ICE in fma steering on AArch64/cortex-a57)

PR target/81414
* config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
instructions if no du chain is found.

gcc/testsuite
* gcc.target/aarch64/pr81414.C: New.

From-SVN: r250496

6 years ago* config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
Georg-Johann Lay [Tue, 25 Jul 2017 08:05:11 +0000 (08:05 +0000)] 
* config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.

From-SVN: r250495

6 years agore PR sanitizer/81505 (ICE in tree-ssa-loop-manip.c:95 with -fsanitize=signed-integer...
Richard Biener [Tue, 25 Jul 2017 07:04:07 +0000 (07:04 +0000)] 
re PR sanitizer/81505 (ICE in tree-ssa-loop-manip.c:95 with -fsanitize=signed-integer-overflow)

2017-07-25  Richard Biener  <rguenther@suse.de>

PR middle-end/81505
* fold-const.c (fold_negate_const): TREE_OVERFLOW should be
sticky.

* gcc.dg/ubsan/pr81505.c: New testcase.

From-SVN: r250494

6 years agoDaily bump.
GCC Administrator [Tue, 25 Jul 2017 00:16:18 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r250493

6 years agoPR testsuite/80759 Fix broken tests in ms-sysv.exp
Daniel Santos [Mon, 24 Jul 2017 22:00:35 +0000 (22:00 +0000)] 
PR testsuite/80759 Fix broken tests in ms-sysv.exp

2017-07-24  Daniel Santos  <daniel.santos@pobox.com>

PR testsuite/80759
* gcc.target/x86_64/abi/ms-sysv/do-test.S
(ELFFN_BEGIN): Rename to FN_TYPE.
(ELFFN_END): Rename to FN_SIZE.
(ASMNAME): New macro.
(FUNC): Rename to FUNC_BEGIN, use ASMNAME and use .globl instead of
.global.
(FUNC_END): Use ASMNAME.
(test_data_save): Remove.
(test_data_input): Likewise.
(test_data_output: Likewise.
(test_data_fn): Likewise.
(test_data_retaddr): Likewise.
(regs_to_mem): Make globals, use r10 instead of rax.
(mem_to_regs): Likewise.
(do_test_unaligned): Remove .cfi directives, remove pushf/popf, move
body to ms-sysv.c.
(do_test_aligned): Likewise.
* gcc.target/x86_64/abi/ms-sysv/ms-sysv.c:
Add dg-* directives.
(PASTE_STR): New macro.
(ASMNAME): Likewise.
(LOAD_TEST_DATA_ADDR): Likewise.
(TEST_DATA_OFFSET): Likewise.
(do_test_body0): New C function.
(do_test_body): New inline assembly routine.
* gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp
(runtest_ms_sysv): Modify.

From-SVN: r250489

6 years agoPR testsuite/80759 Fix -mcall-ms2sysv-xlogues on Darwin and Solaris
Daniel Santos [Mon, 24 Jul 2017 21:59:57 +0000 (21:59 +0000)] 
PR testsuite/80759 Fix -mcall-ms2sysv-xlogues on Darwin and Solaris

2017-07-24  Daniel Santos  <daniel.santos@pobox.com>

PR testsuite/80759
* config.host: include i386/t-msabi for darwin and solaris.
* config/i386/i386-asm.h
(ELFFN): Rename to FN_TYPE.
(FN_SIZE): New macro.
(FN_HIDDEN): Likewise.
(ASMNAME): Likewise.
(FUNC_START): Rename to FUNC_BEGIN, use ASMNAME, replace .global with
.globl.
(HIDDEN_FUNC): Use ASMNAME and .globl instead of .global.
(SSE_SAVE): Convert to cpp macro, hard-code offset (always 0x60).
* config/i386/resms64.S: Use SSE_SAVE as cpp macro instead of gas
.macro.
* config/i386/resms64f.S: Likewise.
* config/i386/resms64fx.S: Likewise.
* config/i386/resms64x.S: Likewise.
* config/i386/savms64.S: Likewise.
* config/i386/savms64f.S: Likewise.

From-SVN: r250488

6 years agors6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete upper-regs options.
Michael Meissner [Mon, 24 Jul 2017 20:02:33 +0000 (20:02 +0000)] 
rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete upper-regs options.

[gcc]
2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
upper-regs options.
(ISA_2_7_MASKS_SERVER): Likewise.
(ISA_3_0_MASKS_IEEE): Likewise.
(OTHER_P8_VECTOR_MASKS): Likewise.
(OTHER_VSX_VECTOR_MASKS): Likewise.
(POWERPC_MASKS): Likewise.
(power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
duplicate list of options.
* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
explicit -mupper-regs options.
* config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
-mupper-regs* options.  Delete -mvsx-scalar-memory, which was an
alias for -mupper-regs-df.
* config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
(rs6000_init_hard_regno_mode_ok): Likewise.
(rs6000_option_override_internal): Likewise.
(rs6000_opt_masks): Likewise.
* config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
options in terms of whether -mvsx or -mpower8-vector was used.
(TARGET_UPPER_REGS_DI): Likewise.
(TARGET_UPPER_REGS_SF): Likewise.
* doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
-mupper-regs-* options.

[gcc/testsuite]
2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/pr65849-1.c: Delete, test no longer valid
since the upper-regs options have been deleted.
* gcc.target/powerpc/pr65849-2.c: Likewise.
* gcc.target/powerpc/pr80099-1.c: Likewise.
* gcc.target/powerpc/pr80099-2.c: Likewise.
* gcc.target/powerpc/pr80099-3.c: Likewise.
* gcc.target/powerpc/pr80099-4.c: Likewise.
* gcc.target/powerpc/pr80099-5.c: Likewise.
* gcc.target/powerpc/builtins-2-p9-runnable.c: Update test to
support removal of the upper-regs options.
* gcc.target/powerpc/p8vector-fp.c: Likewise.
* gcc.target/powerpc/p8vector-ldst.c: Likewise.
* gcc.target/powerpc/p9-dimode1.c: Likewise.
* gcc.target/powerpc/p9-dimode2.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-1.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-10.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-5.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-9.c: Likewise.
* gcc.target/powerpc/ppc-round.c: Likewise.
* gcc.target/powerpc/pr71720.c: Likewise.
* gcc.target/powerpc/pr72853.c: Likewise.
* gcc.target/powerpc/pr79907.c: Likewise.
* gcc.target/powerpc/pr78953.c: Likewise.
* gcc.target/powerpc/upper-regs-df.c: Likewise.
* gcc.target/powerpc/upper-regs-sf.c: Likewise.
* gcc.target/powerpc/vec-extract-1.c: Likewise.
* gcc.target/powerpc/vec-init-3.c: Likewise.
* gcc.target/powerpc/vec-init-6.c: Likewise.
* gcc.target/powerpc/vec-init-7.c: Likewise.
* gcc.target/powerpc/vec-set-char.c: Likewise.
* gcc.target/powerpc/vec-set-int.c: Likewise.
* gcc.target/powerpc/vec-set-short.c: Likewise.

From-SVN: r250482

6 years agopasses: Print a header in emergency_dump_function
Segher Boessenkool [Mon, 24 Jul 2017 19:48:57 +0000 (21:48 +0200)] 
passes: Print a header in emergency_dump_function

Currently the emergency dump has no separation whatsoever from any
previous output in the dump file, making it harder than necessary
to find.

* passes.c (emergency_dump_function): Print some empty lines and a
header before the RTL dump.

From-SVN: r250481

6 years agocfgrtl: Don't crash in rtl_dump_bb if BB_END(bb) is NULL
Segher Boessenkool [Mon, 24 Jul 2017 19:47:15 +0000 (21:47 +0200)] 
cfgrtl: Don't crash in rtl_dump_bb if BB_END(bb) is NULL

Currently rtl_dump_bb crashes if BB_END(bb) is NULL, like it can be
during expand (rtl_dump_bb can be called at any time, by the emergency
dump added recently for example).

This fixes it.

* cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.

From-SVN: r250480

6 years agore PR target/79041 (aarch64 backend emits R_AARCH64_ADR_PREL_PG_HI21 relocation despi...
Wilco Dijkstra [Mon, 24 Jul 2017 18:06:37 +0000 (18:06 +0000)] 
re PR target/79041 (aarch64 backend emits R_AARCH64_ADR_PREL_PG_HI21 relocation despite -mpc-relative-literal-loads option being used)

Fix PR79041

As described in PR79041, -mcmodel=large -mpc-relative-literal-loads
may be used to avoid generating ADRP/ADD or ADRP/LDR.  However both
trunk and GCC7 may still emit ADRP for some constant pool literals.
Fix this by adding a aarch64_pcrelative_literal_loads check.

gcc/
PR target/79041
* config/aarch64/aarch64.c (aarch64_classify_symbol):
Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals
gcc/testsuite/
* gcc.target/aarch64/pr79041-2.c: New test.

From-SVN: r250478

6 years agors6000-c.c: Add support for built-in functions vector float vec_extract_fp32_from_sho...
Carl Love [Mon, 24 Jul 2017 16:50:22 +0000 (16:50 +0000)] 
rs6000-c.c: Add support for built-in functions vector float vec_extract_fp32_from_shorth...

gcc/ChangeLog:

2017-07-24  Carl Love  <cel@us.ibm.com>

* config/rs6000/rs6000-c.c: Add support for built-in functions
vector float vec_extract_fp32_from_shorth (vector unsigned short);
vector float vec_extract_fp32_from_shortl (vector unsigned short);
* config/rs6000/altivec.h (vec_extract_fp_from_shorth,
vec_extract_fp_from_shortl): Add defines for the two builtins.
* config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
new builtins.
* config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
(vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
* doc/extend.texi: Update the built-in documentation file for the
new built-in function.

gcc/testsuite/ChangeLog:

2017-07-24  Carl Love  <cel@us.ibm.com>

* gcc.target/powerpc/builtins-3-p9-runnable.c: Add new test file for
the new built-ins.

From-SVN: r250477

6 years agore PR target/81521 (After [r250413] GCC 8.0 doesn't compile for Windows)
Jakub Jelinek [Mon, 24 Jul 2017 13:02:06 +0000 (15:02 +0200)] 
re PR target/81521 (After [r250413] GCC 8.0 doesn't compile for Windows)

PR bootstrap/81521
* tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
documentation.
* doc/generic.texi: Likewise.
* config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.

From-SVN: r250476

6 years ago[AArch64, Patch] Generate MLA when multiply + add vector by scalar
Jackson Woodruff [Mon, 24 Jul 2017 11:37:09 +0000 (11:37 +0000)] 
[AArch64, Patch] Generate MLA when multiply + add vector by scalar

(On behalf of jackson.woodruff@arm.com)

This merges vector multiplies and adds into a single mla instruction
when the multiplication is done by a scalar.

    typedef int __attribute__((vector_size(16))) vec;

    vec
    mla1(vec v0, vec v1, int v2)
    {
      return v0 + v1 * c;
    }

Now generates:

    mla1:
        fmov   s2, w0
        mla    v0.4s, v1.4s, v2.s[0]

This is also done for the identical case for a multiply followed by a
subtract of vectors with an integer operand on the multiply.

gcc/

2017-07-24  Jackson Woodruff  <jackson.woodruff@arm.com>

        * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
        (aarch64_mls_elt_merge<mode>): Likewise.

gcc/testsuite/

2017-07-24  Jackson Woodruff  <jackson.woodruff@arm.com>

* gcc.target/aarch64/simd/vmla_elem_1.c: New.

From-SVN: r250475

6 years agoChangeLog: Fix typo in date and ommitted PR number.
Thomas Koenig [Mon, 24 Jul 2017 10:48:57 +0000 (10:48 +0000)] 
ChangeLog: Fix typo in date and ommitted PR number.

2017-07-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

* ChangeLog: Fix typo in date and ommitted PR number.

From-SVN: r250474

6 years agounix.c (buf_write): Return early if there is nothing to write.
Thomas Koenig [Mon, 24 Jul 2017 10:42:23 +0000 (10:42 +0000)] 
unix.c (buf_write): Return early if there is nothing to write.

2017-07-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

* io/unix.c (buf_write):  Return early if there is
nothing to write.

From-SVN: r250473

6 years agodump-parse-tree.c (show_symbol): Show binding label if present.
Thomas Koenig [Mon, 24 Jul 2017 10:36:30 +0000 (10:36 +0000)] 
dump-parse-tree.c (show_symbol): Show binding label if present.

2017-07-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

* dump-parse-tree.c (show_symbol):  Show binding label if present.

From-SVN: r250472

6 years agore PR fortran/66102 (dependency mishandling with reallocation on assignment)
Thomas Koenig [Mon, 24 Jul 2017 09:50:28 +0000 (09:50 +0000)] 
re PR fortran/66102 (dependency mishandling with reallocation on assignment)

2017-07-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
    Mikael Morin <mikael@gcc.gnu.org>

PR fortran/66102
* fortran/trans-array.c (gfc_conv_resolve_dependencies):
Break if dependency has been found.

2017-07-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
    Mikael Morin <mikael@gcc.gnu.org>

PR fortran/66102
* gfortran.dg/realloc_on_assign_28.f90:  New test.

Co-Authored-By: Mikael Morin <mikael@gcc.gnu.org>
From-SVN: r250471

6 years agoDaily bump.
GCC Administrator [Mon, 24 Jul 2017 00:17:01 +0000 (00:17 +0000)] 
Daily bump.

From-SVN: r250470

6 years agoconfig.gcc (*-*-netbsd*): Remove check for NetBSD versions not having __cxa_atexit.
Krister Walfridsson [Sun, 23 Jul 2017 23:43:08 +0000 (23:43 +0000)] 
config.gcc (*-*-netbsd*): Remove check for NetBSD versions not having __cxa_atexit.

2017-07-23  Krister Walfridsson  <krister.walfridsson@gmail.com>

* config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
having __cxa_atexit.

From-SVN: r250466