gcc.git
7 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

7 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

7 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

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

From-SVN: r250554

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

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

From-SVN: r250493

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

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

From-SVN: r250470

7 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

7 years agoarm.c (arm_option_override): Deprecate use of -mstructure-size-boundary.
Michael Collison [Sun, 23 Jul 2017 23:07:12 +0000 (23:07 +0000)]
arm.c (arm_option_override): Deprecate use of -mstructure-size-boundary.

2017-07-23  Michael Collison  <michael.collison@arm.com>

* config/arm/arm.c (arm_option_override): Deprecate
use of -mstructure-size-boundary.
* config/arm/arm.opt: Deprecate -mstructure-size-boundary.
* doc/invoke.texi: Deprecate -mstructure-size-boundary.

From-SVN: r250465

7 years agoAdd optimized implementation of mersenne twister for aarch64
Michael Collison [Sun, 23 Jul 2017 22:46:34 +0000 (22:46 +0000)]
Add optimized implementation of mersenne twister for aarch64

2017-07-23  Michael Collison  <michael.collison@arm.com>

Add optimized implementation of mersenne twister for aarch64
* config/cpu/aarch64/opt/ext/opt_random.h: New file.
(__arch64_recursion): New function.
(__aarch64_lsr_128): New function.
(__aarch64_lsl_128): New function.
(operator==): New function.
(simd_fast_mersenne_twister_engine): Implement
method _M_gen_rand.
* config/cpu/aarch64/opt/bits/opt_random.h: New file.
* include/ext/random: (simd_fast_mersenne_twister_engine):
add _M_state private array.

From-SVN: r250464

7 years agofortran: fix pair_cmp qsort comparator
Alexander Monakov [Sun, 23 Jul 2017 18:40:24 +0000 (21:40 +0300)]
fortran: fix pair_cmp qsort comparator

* interface.c (pair_cmp): Fix gfc_symbol comparison.  Adjust comment.

From-SVN: r250463

7 years agopr56727-2.c: Limit to powerpc-linux.
David Edelsohn [Sun, 23 Jul 2017 17:55:19 +0000 (17:55 +0000)]
pr56727-2.c: Limit to powerpc-linux.

        * gcc.dg/pr56727-2.c: Limit to powerpc-linux.
        * gcc.dg/debug/dwarf2/stacked-qualified-types-3.c: Remove AIX XFAIL.

From-SVN: r250462

7 years agore PR target/80695 (gratuitous use of stxvx to store multiple pointers)
Bill Schmidt [Sun, 23 Jul 2017 15:32:37 +0000 (15:32 +0000)]
re PR target/80695 (gratuitous use of stxvx to store multiple pointers)

2017-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/80695
* config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
Reduce cost estimate for direct moves.

From-SVN: r250461

7 years agore PR target/80569 (i686: "shrx" instruction generated in 16-bit mode)
Uros Bizjak [Sun, 23 Jul 2017 10:28:26 +0000 (12:28 +0200)]
re PR target/80569 (i686: "shrx" instruction generated in 16-bit mode)

PR target/80569
* config/i386/i386.c (ix86_option_override_internal): Disable
BMI, BMI2 and TBM instructions for -m16.

testsuite/ChangeLog:

PR target/80569
* gcc.target/i386/pr80569.c: New test.

From-SVN: r250459

7 years agore PR libstdc++/81064 (Inline namespace regression)
François Dumont [Sun, 23 Jul 2017 08:41:35 +0000 (08:41 +0000)]
re PR libstdc++/81064 (Inline namespace regression)

2017-07-23  François Dumont  <fdumont@gcc.gnu.org>

PR libstdc++/81064
* include/bits/algorithmfwd.h: Reorganize versioned namespace.
* include/bits/basic_string.h: Likewise.
* include/bits/c++config: Likewise.
* include/bits/deque.tcc: Likewise.
* include/bits/forward_list.h: Likewise.
* include/bits/forward_list.tcc: Likewise.
* include/bits/hashtable_policy.h: Likewise.
* include/bits/list.tcc: Likewise.
* include/bits/move.h: Likewise.
* include/bits/quoted_string.h: Likewise.
* include/bits/random.h: Likewise.
* include/bits/random.tcc: Likewise.
* include/bits/regex.h: Likewise.
* include/bits/regex.tcc: Likewise.
* include/bits/regex_automaton.h: Likewise.
* include/bits/regex_automaton.tcc: Likewise.
* include/bits/regex_compiler.h: Likewise.
* include/bits/regex_compiler.tcc: Likewise.
* include/bits/regex_constants.h: Likewise.
* include/bits/regex_error.h: Likewise.
* include/bits/regex_executor.h: Likewise.
* include/bits/regex_executor.tcc: Likewise.
* include/bits/regex_scanner.h: Likewise.
* include/bits/regex_scanner.tcc: Likewise.
* include/bits/specfun.h: Likewise.
* include/bits/stl_algo.h: Likewise.
* include/bits/stl_algobase.h: Likewise.
* include/bits/stl_bvector.h: Likewise.
* include/bits/stl_deque.h: Likewise.
* include/bits/stl_iterator.h: Likewise.
* include/bits/stl_iterator_base_funcs.h: Likewise.
* include/bits/stl_list.h: Likewise.
* include/bits/stl_map.h: Likewise.
* include/bits/stl_multimap.h: Likewise.
* include/bits/stl_multiset.h: Likewise.
* include/bits/stl_relops.h: Likewise.
* include/bits/stl_set.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/bits/uniform_int_dist.h: Likewise.
* include/bits/unordered_map.h: Likewise.
* include/bits/unordered_set.h: Likewise.
* include/bits/vector.tcc: Likewise.
* include/c_global/cmath: Likewise.
* include/c_std/cmath: Likewise.
* include/decimal/decimal: Likewise.
* include/decimal/decimal.h: Likewise.
* include/experimental/algorithm: Likewise.
* include/experimental/any: Likewise.
* include/experimental/array: Likewise.
* include/experimental/bits/erase_if.h: Likewise.
* include/experimental/bits/fs_dir.h: Likewise.
* include/experimental/bits/fs_fwd.h: Likewise.
* include/experimental/bits/fs_ops.h: Likewise.
* include/experimental/bits/fs_path.h: Likewise.
* include/experimental/bits/lfts_config.h: Likewise.
* include/experimental/bits/shared_ptr.h: Likewise.
* include/experimental/bits/string_view.tcc: Likewise.
* include/experimental/chrono: Likewise.
* include/experimental/deque: Likewise.
* include/experimental/filesystem: Likewise.
* include/experimental/forward_list: Likewise.
* include/experimental/functional: Likewise.
* include/experimental/iterator: Likewise.
* include/experimental/list: Likewise.
* include/experimental/map: Likewise.
* include/experimental/memory: Likewise.
* include/experimental/memory_resource: Likewise.
* include/experimental/numeric: Likewise.
* include/experimental/optional: Likewise.
* include/experimental/propagate_const: Likewise.
* include/experimental/random: Likewise.
* include/experimental/ratio: Likewise.
* include/experimental/regex: Likewise.
* include/experimental/set: Likewise.
* include/experimental/source_location: Likewise.
* include/experimental/string: Likewise.
* include/experimental/string_view: Likewise.
* include/experimental/system_error: Likewise.
* include/experimental/tuple: Likewise.
* include/experimental/type_traits: Likewise.
* include/experimental/unordered_map: Likewise.
* include/experimental/unordered_set: Likewise.
* include/experimental/utility: Likewise.
* include/experimental/vector: Likewise.
* include/ext/bitmap_allocator.h: Likewise.
* include/ext/codecvt_specializations.h: Likewise.
* include/ext/rope: Likewise.
* include/ext/typelist.h: Likewise.
* include/std/chrono: Likewise.
* include/std/complex: Likewise.
* include/std/functional: Likewise.
* include/std/numeric: Likewise.
* include/std/string_view: Likewise.
* include/std/thread: Likewise.
* include/std/variant: Likewise.
* include/tr1/array: Likewise.
* include/tr1/bessel_function.tcc: Likewise.
* include/tr1/beta_function.tcc: Likewise.
* include/tr1/cmath: Likewise.
* include/tr1/complex: Likewise.
* include/tr1/ell_integral.tcc: Likewise.
* include/tr1/exp_integral.tcc: Likewise.
* include/tr1/functional: Likewise.
* include/tr1/functional_hash.h: Likewise.
* include/tr1/gamma.tcc: Likewise.
* include/tr1/hashtable.h: Likewise.
* include/tr1/hashtable_policy.h: Likewise.
* include/tr1/hypergeometric.tcc: Likewise.
* include/tr1/legendre_function.tcc: Likewise.
* include/tr1/modified_bessel_func.tcc: Likewise.
* include/tr1/poly_hermite.tcc: Likewise.
* include/tr1/poly_laguerre.tcc: Likewise.
* include/tr1/random.h: Likewise.
* include/tr1/random.tcc: Likewise.
* include/tr1/regex: Likewise.
* include/tr1/riemann_zeta.tcc: Likewise.
* include/tr1/shared_ptr.h: Likewise.
* include/tr1/special_function_util.h: Likewise.
* include/tr1/tuple: Likewise.
* include/tr1/type_traits: Likewise.
* include/tr1/unordered_map.h: Likewise.
* include/tr1/unordered_set.h: Likewise.
* include/tr1/utility: Likewise.
* include/tr2/bool_set: Likewise.
* include/tr2/bool_set.tcc: Likewise.
* include/tr2/dynamic_bitset: Likewise.
* include/tr2/dynamic_bitset.tcc: Likewise.
* include/tr2/ratio: Likewise.
* include/tr2/type_traits: Likewise.
* src/c++11/chrono.cc: Likewise.
* src/c++11/compatibility-c++0x.cc: Likewise.
* src/c++11/compatibility-chrono.cc: Likewise.
* src/c++11/cxx11-shim_facets.cc: Likewise.
* src/c++11/hashtable_c++0x.cc: Likewise.
* src/c++11/placeholders.cc: Likewise.
* src/c++11/thread.cc: Likewise.
* src/c++98/bitmap_allocator.cc: Likewise.
* src/c++98/hashtable_tr1.cc: Likewise.
* src/c++98/list.cc: Likewise.
* src/shared/hashtable-aux.cc: Likewise.
* testsuite/20_util/duration/literals/range.cc: Adapt line number.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
* testsuite/20_util/forward/c_neg.cc: Likewise.
* testsuite/20_util/forward/f_neg.cc: Likewise.
* testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
* testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
* python/libstdcxx/v6/printers.py: Adapt.

From-SVN: r250458

7 years agoDaily bump.
GCC Administrator [Sun, 23 Jul 2017 00:16:26 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r250457

7 years agoDaily bump.
GCC Administrator [Sat, 22 Jul 2017 00:16:29 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r250451

7 years agors6000-c.c (altivec_overloaded_builtins): Add ALTIVEC_BUILTIN_VMULESW...
Carl Love [Sat, 22 Jul 2017 00:16:26 +0000 (00:16 +0000)]
rs6000-c.c (altivec_overloaded_builtins): Add ALTIVEC_BUILTIN_VMULESW...

gcc/ChangeLog:

2017-07-21  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.
(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-21  Carl Love  <cel@us.ibm.com>

* gcc.target/powerpc/builtins-2.c (vmulosh, vmulouh, vmulesh,
vmuleuh): Fix scan-assembler-times should check for word not half word
instructions.

From-SVN: r250450

7 years agoAdd RDMA support to falkor port.
Jim Wilson [Fri, 21 Jul 2017 21:56:57 +0000 (21:56 +0000)]
Add RDMA support to falkor port.

gcc/
* config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
(qdf24xx): Likewise.
* config/aarch64/aarch64-options-extensions.def (rdma); New.
* config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
(AARCH64_FL_V8_1): Renumber.
(AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
(AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
* config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
* doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs.  Add
rdma to feature modifiers list.

gcc/testsuite/
* lib/target-supports.exp (add_options_for_arm_v8_1a_neon): Delete
redundant -march option.
(check_effective_target_arm_v8_1a_neon_ok_nocache): Try armv8-a+rdma
in addition to armv8.1-a.

From-SVN: r250444

7 years agosyscall: call f?statfs64 on GNU/Linux
Ian Lance Taylor [Fri, 21 Jul 2017 20:25:13 +0000 (20:25 +0000)]
syscall: call f?statfs64 on GNU/Linux

    We unconditionally set _FILE_OFFSET_BITS to 64 in configure.ac, so we
    should unconditionally call the statfs64 and fstatfs64 functions.
    These functions should be available on all versions of GNU/Linux since 2.6.
    On 64-bit systems they are aliased to statfs/fstatfs, and on 32-bit
    systems they use the 64-bit data structures.

    Fixes golang/go#20922

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

From-SVN: r250443

7 years agore PR middle-end/56727 (Recursive call goes through the PLT unnecessarily)
Yury Gribov [Fri, 21 Jul 2017 19:48:51 +0000 (19:48 +0000)]
re PR middle-end/56727 (Recursive call goes through the PLT unnecessarily)

2017-07-21  Yury Gribov  <tetra2005@gmail.com>

PR middle-end/56727
* ipa-visibility (function_and_variable_visibility): Convert
recursive PLT call to direct call if appropriate.

* gcc.dg/pr56727-1.c: New test.
* gcc.dg/pr56727-2.c: New test.

From-SVN: r250442

7 years agosearch.c (lookup_conversion_operator): Return overloads.
Nathan Sidwell [Fri, 21 Jul 2017 19:23:40 +0000 (19:23 +0000)]
search.c (lookup_conversion_operator): Return overloads.

* search.c (lookup_conversion_operator): Return overloads.
(lookup_fnfields_idx_nolazy): Absorb into ...
(lookup_fnfields_slot_nolaxy): ... here.
(lookup_fnfields_1): Absorb into ...
(lookup_fnfields_slot): ... here.

From-SVN: r250440

7 years agoruntime: don't use runtime_lock in __go_get_backtrace_state
Ian Lance Taylor [Fri, 21 Jul 2017 18:27:35 +0000 (18:27 +0000)]
runtime: don't use runtime_lock in __go_get_backtrace_state

    If getSiginfo does not know how to determine the PC, it will call
    runtime_callers. That can happen in a thread that was started by
    non-Go code, in which case the TLS variable g will not be set, in
    which case runtime_lock will crash.

    Avoid the problem by using atomic operations for the lock. This is OK
    since creating a backtrace state is fast and never blocks.

    The test case is TestCgoExternalThreadSIGPROF in the runtime package
    on a system that getSiginfo doesn't handle specially.

    Updates golang/go#20931

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

From-SVN: r250439

7 years agoRemove special CDtor METHOD_VEC slots.
Nathan Sidwell [Fri, 21 Jul 2017 18:11:23 +0000 (18:11 +0000)]
Remove special CDtor METHOD_VEC slots.

* cp-tree.h (CLASSTYPE_CONSTRUCTOR_SLOT,
CLASSTYPE_DESTRUCTOR_SLOT): Delete.
(CLASSTYPE_CONSTRUCTORS): Use lookup_fnfields_slot_nolazy.
(CLASSTYPE_DESTRUCTOR): Likewise.
* class (add_method): Don't use special cdtor slots.
* search.c (lookup_fnfields_idx_nolazy): Likewise.
(look_for_overrides_here): Use lookup_fnfields_slot.
* semantics (classtype_has_nothrow_assign_or_copy_p): Likewise.

From-SVN: r250437

7 years agoruntime: handle PPC/PPC64 GNU/Linux in getSiginfo
Ian Lance Taylor [Fri, 21 Jul 2017 18:08:01 +0000 (18:08 +0000)]
runtime: handle PPC/PPC64 GNU/Linux in getSiginfo

    Updates golang/go#20931

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

From-SVN: r250436

7 years agofiletype.awk: Add AIX XCOFF type detection.
Tony Reix [Fri, 21 Jul 2017 18:05:08 +0000 (18:05 +0000)]
filetype.awk: Add AIX XCOFF type detection.

* filetype.awk: Add AIX XCOFF type detection.
* configure.ac: Recognize xcoff format.
* Makefile.am (FORMAT_FILES): Add xcoff.c.
* fileline.c: Include <unistd.h>.
(fileline_initialize): Add case for AIX procfs.
* xcoff.c: New file.
* configure, Makefile.in: Rebuild.

From-SVN: r250435

7 years agocall.c (add_candidates): Move decls to initialization.
Nathan Sidwell [Fri, 21 Jul 2017 17:58:48 +0000 (17:58 +0000)]
call.c (add_candidates): Move decls to initialization.

* call.c (add_candidates): Move decls to initialization.  Don't
use !!.

From-SVN: r250434

7 years agoruntime: allocate more stack space in CgoCallbackGC test
Ian Lance Taylor [Fri, 21 Jul 2017 17:50:14 +0000 (17:50 +0000)]
runtime: allocate more stack space in CgoCallbackGC test

    Allocate enough stack space so that the test will work on a system
    that does not support split stacks.

    This test is actually not very meaningful for gccgo at present, but it
    doesn't hurt to keep running it.

    Updates golang/go#20931

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

From-SVN: r250433

7 years agoNow completeting the mmintrin.h intrinsic headers for PowerPC by
Steven Munroe [Fri, 21 Jul 2017 17:44:22 +0000 (17:44 +0000)]
Now completeting the mmintrin.h intrinsic headers for PowerPC by
adding the DG tests.

2017-07-21  Steven Munroe  <munroesj@gcc.gnu.org>

* gcc.target/powerpc/mmx-check.h: New file.
* gcc.target/powerpc/mmx-packs.c: New file.
* gcc.target/powerpc/mmx-packssdw-1.c: New file.
* gcc.target/powerpc/mmx-packsswb-1.c: New file.
* gcc.target/powerpc/mmx-packuswb-1.c: New file.
* gcc.target/powerpc/mmx-paddb-1.c: New file.
* gcc.target/powerpc/mmx-paddd-1.c: New file.
* gcc.target/powerpc/mmx-paddsb-1.c: New file.
* gcc.target/powerpc/mmx-paddsw-1.c: New file.
* gcc.target/powerpc/mmx-paddusb-1.c: New file.
* gcc.target/powerpc/mmx-paddusw-1.c: New file.
* gcc.target/powerpc/mmx-paddw-1.c: New file.
* gcc.target/powerpc/mmx-pcmpeqb-1.c: New file.
* gcc.target/powerpc/mmx-pcmpeqd-1.c: New file.
* gcc.target/powerpc/mmx-pcmpeqw-1.c: New file.
* gcc.target/powerpc/mmx-pcmpgtb-1.c: New file.
* gcc.target/powerpc/mmx-pcmpgtd-1.c: New file.
* gcc.target/powerpc/mmx-pcmpgtw-1.c: New file.
* gcc.target/powerpc/mmx-pmaddwd-1.c: New file.
* gcc.target/powerpc/mmx-pmulhw-1.c: New file.
* gcc.target/powerpc/mmx-pmullw-1.c: New file.
* gcc.target/powerpc/mmx-pslld-1.c: New file.
* gcc.target/powerpc/mmx-psllw-1.c: New file.
* gcc.target/powerpc/mmx-psrad-1.c: New file.
* gcc.target/powerpc/mmx-psraw-1.c: New file.
* gcc.target/powerpc/mmx-psrld-1.c: New file.
* gcc.target/powerpc/mmx-psrlw-1.c: New file.
* gcc.target/powerpc/mmx-psubb-2.c: New file.
* gcc.target/powerpc/mmx-psubd-2.c: New file.
* gcc.target/powerpc/mmx-psubsb-1.c: New file.
* gcc.target/powerpc/mmx-psubsw-1.c: New file.
* gcc.target/powerpc/mmx-psubusb-1.c: New file.
* gcc.target/powerpc/mmx-psubusw-1.c: New file.
* gcc.target/powerpc/mmx-psubw-2.c: New file.
* gcc.target/powerpc/mmx-punpckhbw-1.c: New file.
* gcc.target/powerpc/mmx-punpckhdq-1.c: New file.
* gcc.target/powerpc/mmx-punpckhwd-1.c: New file.
* gcc.target/powerpc/mmx-punpcklbw-1.c: New file.
* gcc.target/powerpc/mmx-punpckldq-1.c: New file.
* gcc.target/powerpc/mmx-punpcklwd-1.c: New file.

From-SVN: r250432

7 years agotree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's operand 1 to see if the...
Andrew Pinski [Fri, 21 Jul 2017 17:16:51 +0000 (17:16 +0000)]
tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's operand 1 to see if the types precision matches.

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

        * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
        operand 1 to see if the types precision matches.
        * fold-const.c (operand_equal_p): Likewise.

From-SVN: r250431

7 years agoAdd AddressSanitizer annotations to std::vector
Jonathan Wakely [Fri, 21 Jul 2017 16:05:10 +0000 (17:05 +0100)]
Add AddressSanitizer annotations to std::vector

* config/allocator/malloc_allocator_base.h [__SANITIZE_ADDRESS__]
(_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
* config/allocator/new_allocator_base.h [__SANITIZE_ADDRESS__]
(_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
* doc/xml/manual/using.xml (_GLIBCXX_SANITIZE_VECTOR): Document macro.
* include/bits/stl_vector.h [_GLIBCXX_SANITIZE_VECTOR]
(_Vector_impl::_Asan, _Vector_impl::_Asan::_Reinit)
(_Vector_impl::_Asan::_Grow, _GLIBCXX_ASAN_ANNOTATE_REINIT)
(_GLIBCXX_ASAN_ANNOTATE_GROW, _GLIBCXX_ASAN_ANNOTATE_GREW)
(_GLIBCXX_ASAN_ANNOTATE_SHRINK, _GLIBCXX_ASAN_ANNOTATE_BEFORE_DEALLOC):
Define annotation helper types and macros.
(vector::~vector, vector::push_back, vector::pop_back)
(vector::_M_erase_at_end): Add annotations.
* include/bits/vector.tcc (vector::reserve, vector::emplace_back)
(vector::insert, vector::_M_erase, vector::operator=)
(vector::_M_fill_assign, vector::_M_assign_aux)
(vector::_M_insert_rval, vector::_M_emplace_aux)
(vector::_M_insert_aux, vector::_M_realloc_insert)
(vector::_M_fill_insert, vector::_M_default_append)
(vector::_M_shrink_to_fit, vector::_M_range_insert): Annotate.

From-SVN: r250430

7 years agore PR lto/81487 ([mingw32] ld.exe: error: asprintf failed)
Georg-Johann Lay [Fri, 21 Jul 2017 15:58:14 +0000 (15:58 +0000)]
re PR lto/81487 ([mingw32] ld.exe: error: asprintf failed)

lto-plugin/
PR lto/81487
* lto-plugin.c (claim_file_handler): Use xasprintf instead of
asprintf.
[hi!=0]: Swap hi and lo arguments supplied to xasprintf.

From-SVN: r250428

7 years agore PR tree-optimization/81303 (410.bwaves regression caused by r249919)
Richard Biener [Fri, 21 Jul 2017 11:32:39 +0000 (11:32 +0000)]
re PR tree-optimization/81303 (410.bwaves regression caused by r249919)

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

PR tree-optimization/81303
* tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
in datarefs vector.  Allow NULL dr0 for no peeling cost estimate.
(vect_peeling_hash_get_lowest_cost): Adjust.
(vect_enhance_data_refs_alignment): Likewise.  Use
vect_get_peeling_costs_all_drs to compute the penalty for no
peeling to match up costs.

From-SVN: r250424

7 years agore PR tree-optimization/81500 (ICE with -O3 in process_use, at tree-vect-stmts.c...
Richard Biener [Fri, 21 Jul 2017 11:32:01 +0000 (11:32 +0000)]
re PR tree-optimization/81500 (ICE with -O3 in process_use, at tree-vect-stmts.c:506)

2017-06-21  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81500
* tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
we didn't identify a reduction path.

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

From-SVN: r250423

7 years agoAdd missing edge probabilities in nvptx_goacc_reduction_init
Tom de Vries [Fri, 21 Jul 2017 09:46:22 +0000 (09:46 +0000)]
Add missing edge probabilities in nvptx_goacc_reduction_init

2017-07-21  Tom de Vries  <tom@codesourcery.com>
    Cesar Philippidis  <cesar@codesourcery.com>

PR gcov-profile/81442
* config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
probabilities.

Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
From-SVN: r250422

7 years agoAdd nvptx_override_options_after_change
Tom de Vries [Fri, 21 Jul 2017 09:46:05 +0000 (09:46 +0000)]
Add nvptx_override_options_after_change

2017-07-21  Tom de Vries  <tom@codesourcery.com>

PR lto/81430
* config/nvptx/nvptx.c (nvptx_override_options_after_change): New
function.
(TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
nvptx_override_options_after_change.

From-SVN: r250421

7 years agodwarf2out.c (output_file_names): Avoid double testing for dwarf_version >= 5.
Ulrich Drepper [Fri, 21 Jul 2017 08:57:04 +0000 (08:57 +0000)]
dwarf2out.c (output_file_names): Avoid double testing for dwarf_version >= 5.

gcc/
* dwarf2out.c (output_file_names): Avoid double testing for
dwarf_version >= 5.

From-SVN: r250420

7 years agoinvoke.texi (AVR Built-in Functions): Re-layout section.
Georg-Johann Lay [Fri, 21 Jul 2017 08:20:51 +0000 (08:20 +0000)]
invoke.texi (AVR Built-in Functions): Re-layout section.

gcc/
* doc/invoke.texi (AVR Built-in Functions): Re-layout section.

From-SVN: r250419

7 years agocfgcleanup.c (flow_find_cross_jump): Do not crossjump across hot/cold regions.
Jan Hubicka [Fri, 21 Jul 2017 07:17:57 +0000 (09:17 +0200)]
cfgcleanup.c (flow_find_cross_jump): Do not crossjump across hot/cold regions.

* cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
hot/cold regions.
(try_crossjump_to_edge): Do not punt on partitioned functions.

From-SVN: r250418

7 years agobb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): Put all BBs...
Jan Hubicka [Fri, 21 Jul 2017 07:17:22 +0000 (09:17 +0200)]
bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): Put all BBs reachable only via paths crossing cold region to cold region.

* bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
Put all BBs reachable only via paths crossing cold region to cold
region.
* cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.

From-SVN: r250417

7 years agore PR tree-optimization/81303 (410.bwaves regression caused by r249919)
Richard Biener [Fri, 21 Jul 2017 07:13:57 +0000 (07:13 +0000)]
re PR tree-optimization/81303 (410.bwaves regression caused by r249919)

2016-07-21  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81303
* tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
into account prologue and epilogue iterations when raising
min_profitable_iters to sth at least covering one vector iteration.

From-SVN: r250416

7 years agoarm.c (arm_test_cpu_arch_dat): Check for overlap.
Tamar Christina [Fri, 21 Jul 2017 06:46:05 +0000 (06:46 +0000)]
arm.c (arm_test_cpu_arch_dat): Check for overlap.

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

* config/arm/arm.c (arm_test_cpu_arch_dat):
Check for overlap.

From-SVN: r250415

7 years agoRemove TYPE_METHODS.
Nathan Sidwell [Fri, 21 Jul 2017 00:27:51 +0000 (00:27 +0000)]
Remove TYPE_METHODS.

gcc/
Remove TYPE_METHODS.
* tree.h (TYPE_METHODS): Delete.
* dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
* dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
(dbxout_type_methods): Scan TYPE_FIELDS.
(dbxout_type): Don't check TYPE_METHODS here.
* function.c (use_register_for_decl): Always ignore register for
class types when not optimizing.
* ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
* tree.c (free_lang_data_in_type): Stitch out member functions and
templates from TYPE_FIELDS.
(build_distinct_type_copy, verify_type_variant,
verify_type): Member fns are on TYPE_FIELDS.
* tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
* tree-pretty-print.c (dump_generic_node): Likewise.

gcc/cp/
Remove TYPE_METHODS.
* class.c (maybe_warn_about_overly_private_class,
finish_struct_methods, one_inheriting_sig, count_fields,
add_fields_to_record_type, check_field_decls, check_methods,
clone_function_decl, set_method_tm_attributes,
finalize_literal_type_property, check_bases_and_members,
create_vtable_ptr, determine_key_method,
unreverse_member_declarations, finish_struct,
add_vcall_offset_vtbl_entries_1): Member fns are on TYPE_FIELDS.
* decl.c (fixup_anonymous_aggr): Likewise.
* decl2.c (reset_type_linkage_2): Likewise.
* method.c (after_nsdmi_defaulted_late_checks,
lazily_declare_fn): Likewise.
* optimize.c (maybe_thunk_body, maybe_clone_body): Likewise.
* pt.c (instantiate_class_template_1, tsubst_expr,
do_type_instantiation, instantiate_pending_templates): Likewise.
* search.c (lookup_field_1): Likewise.
* semantics.c (finish_member_declaration,
finish_omp_declare_simd_methods): Likewise.

gcc/c-family/
Remove TYPE_METHODS.
* c-ada-spec.c (is_tagged_type, has_nontrivial_methods,
dump_ada_template, print_ada_methods,
print_ada_declaration): Member fns are on TYPE_FIELDS.

gcc/objc/
Remove TYPE_METHODS.
* objc-runtime-shared-support.c (build_ivar_list_initializer):
Don't presume first item is a FIELD_DECL.

gcc/testsuite/
* g++.dg/ext/anon-struct6.C: Adjust diag.
* g++.old-deja/g++.other/anon4.C: Adjust diag.

libcc1/
Remove TYPE_METHODS.
* libcp1plugin.cc (plugin_build_decl): Member fns are on TYPE_FIELDS.

From-SVN: r250413

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

From-SVN: r250412

7 years agocompiler: add explicit convert in Type_guard_expression::do_get_backend
Ian Lance Taylor [Thu, 20 Jul 2017 19:53:54 +0000 (19:53 +0000)]
compiler: add explicit convert in Type_guard_expression::do_get_backend

    The current recipe in Type_guard_expression for creating a Bexpression
    performs a type conversion at the Type level, but doesn't invoke
    Backend::convert_expression to capture the conversion for the back
    end. Add code to create a BE type conversion operation.

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

From-SVN: r250400

7 years agore PR target/80846 (auto-vectorized AVX2 horizontal sum should narrow to 128b right...
Jakub Jelinek [Thu, 20 Jul 2017 16:36:18 +0000 (18:36 +0200)]
re PR target/80846 (auto-vectorized AVX2 horizontal sum should narrow to 128b right away, to be more efficient for Ryzen and Intel)

PR target/80846
* config/i386/i386.c (ix86_expand_vector_init_general): Handle
V2TImode and V4TImode.
(ix86_expand_vector_extract): Likewise.
* config/i386/sse.md (VMOVE): Enable V4TImode even for just
TARGET_AVX512F, instead of only for TARGET_AVX512BW.
(ssescalarmode): Handle V4TImode and V2TImode.
(VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
(*vec_extractv2ti, *vec_extractv4ti): New insns.
(VEXTRACTI128_MODE): New mode iterator.
(splitter for *vec_extractv?ti first element): New.
(VEC_INIT_MODE): New mode iterator.
(vec_init<mode>): Consolidate 3 expanders into one using
VEC_INIT_MODE mode iterator.

* gcc.target/i386/avx-pr80846.c: New test.
* gcc.target/i386/avx2-pr80846.c: New test.
* gcc.target/i386/avx512f-pr80846.c: New test.

From-SVN: r250397

7 years agolra-assigns.c: fix pseudo_compare_func
Alexander Monakov [Thu, 20 Jul 2017 15:15:55 +0000 (18:15 +0300)]
lra-assigns.c: fix pseudo_compare_func

* lra-assigns.c (pseudo_compare_func): Fix comparison step based on
non_spilled_static_chain_regno_p.

From-SVN: r250395

7 years agogimple-ssa-store-merging.c: fix sort_by_bitpos
Alexander Monakov [Thu, 20 Jul 2017 15:13:56 +0000 (18:13 +0300)]
gimple-ssa-store-merging.c: fix sort_by_bitpos

* gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.

From-SVN: r250394

7 years agobb-reorder.c (connect_traces): Allow copying of blocks within single partition.
Jan Hubicka [Thu, 20 Jul 2017 14:27:41 +0000 (16:27 +0200)]
bb-reorder.c (connect_traces): Allow copying of blocks within single partition.

* bb-reorder.c (connect_traces): Allow copying of blocks within
single partition.

From-SVN: r250390

7 years agoMinor tweaks
Eric Botcazou [Thu, 20 Jul 2017 12:54:42 +0000 (12:54 +0000)]
Minor tweaks

From-SVN: r250386

7 years agogimple.h (gimple_phi_result): Add gphi * overload.
Richard Biener [Thu, 20 Jul 2017 12:37:14 +0000 (12:37 +0000)]
gimple.h (gimple_phi_result): Add gphi * overload.

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

* gimple.h (gimple_phi_result): Add gphi * overload.
(gimple_phi_result_ptr): Likewise.
(gimple_phi_arg): Likewise.  Adjust index assert to only
allow actual argument accesses rather than all slots available
by capacity.
(gimple_phi_arg_def): Add gphi * overload.
* tree-phinodes.c (make_phi_node): Initialize only actual
arguments.
(resize_phi_node): Clear memory not covered by old node,
do not initialize excess argument slots.
(reserve_phi_args_for_new_edge): Initialize new argument slot
completely.

From-SVN: r250385

7 years agore PR tree-optimization/81388 (Incorrect code generation with -O1)
Bin Cheng [Thu, 20 Jul 2017 12:02:19 +0000 (12:02 +0000)]
re PR tree-optimization/81388 (Incorrect code generation with -O1)

PR tree-optimization/81388
Revert r238585:
2016-07-21  Bin Cheng  <bin.cheng@arm.com>

* tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
by removing computation of may_be_zero.

gcc/testsuite
PR tree-optimization/81388
* gcc.dg/tree-ssa/pr81388-1.c: New test.
* gcc.dg/tree-ssa/pr81388-2.c: New test.

From-SVN: r250384

7 years agore PR middle-end/81030 (ICE on valid code at -O1 (only) on x86_64-linux-gnu: verify_f...
Jan Hubicka [Thu, 20 Jul 2017 11:27:31 +0000 (11:27 +0000)]
re PR middle-end/81030 (ICE on valid code at -O1 (only) on x86_64-linux-gnu: verify_flow_info failed)

PR middle-end/81030
* cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
when gimple level profile disagrees with what RTL expander did.
* gcc.dg/pr81030.c: New test.

From-SVN: r250383

7 years agore PR tree-optimization/61171 (vectorization fails for a reduction in presence of...
Richard Biener [Thu, 20 Jul 2017 11:17:21 +0000 (11:17 +0000)]
re PR tree-optimization/61171 (vectorization fails for a reduction in presence of subtraction)

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

PR tree-optimization/61171
* tree-vectorizer.h (slp_instance): Add reduc_phis member.
(vect_analyze_stmt): Add slp instance parameter.
(vectorizable_reduction): Likewise.
* tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
(vect_is_simple_reduction): Deal with chains not detected
as SLP reduction chain, specifically not properly associated
chains containing a mix of plus/minus.
(get_reduction_op): Remove.
(get_initial_defs_for_reduction): Simplify, pass in whether
this is a reduction chain, pass in the SLP node for the PHIs.
(vect_create_epilog_for_reduction): Get the SLP instance as
arg and adjust.
(vectorizable_reduction): Get the SLP instance as arg.
During analysis remember the SLP node with the PHIs in the
instance.  Simplify getting at the vectorized reduction PHIs.
* tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
through SLP instance.
(vect_slp_analyze_operations): Likewise.
* tree-vect-stms.c (vect_analyze_stmt): Likewise.
(vect_transform_stmt): Likewise.

* g++.dg/vect/pr61171.cc: New testcase.
* gfortran.dg/vect/pr61171.f: Likewise.
* gcc.dg/vect/vect-reduc-11.c: Likewise.

From-SVN: r250382

7 years agoslp-43.c: Increase loop count to enable vectorization with V64QImode.
Richard Biener [Thu, 20 Jul 2017 10:03:34 +0000 (10:03 +0000)]
slp-43.c: Increase loop count to enable vectorization with V64QImode.

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

* gcc.dg/vect/slp-43.c: Increase loop count to enable vectorization
with V64QImode.
* gcc.dg/vect/slp-45.c: Likewise.

From-SVN: r250380