gcc.git
8 years agoAvoid endless run-time recursion for copying single-element tuples where the...
Ville Voutilainen [Mon, 9 May 2016 11:03:36 +0000 (14:03 +0300)]
Avoid endless run-time recursion for copying single-element tuples where the...

Avoid endless run-time recursion for copying single-element
tuples where the element type is by-value constructible
from any type.
  * include/std/tuple (_NotSameTuple): New.
  * include/std/tuple (tuple(_UElements&&...): Use it.
* testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.

From-SVN: r236025

8 years ago[ARM] Add mode to probe_stack set operands
Kyrylo Tkachov [Mon, 9 May 2016 10:21:06 +0000 (10:21 +0000)]
[ARM] Add mode to probe_stack set operands

* config/arm/arm.md (probe_stack): Add modes to set source
and destination.

From-SVN: r236024

8 years agolibstdc++/71004 fix recursive_directory_iterator default constructor
Jonathan Wakely [Mon, 9 May 2016 10:09:37 +0000 (11:09 +0100)]
libstdc++/71004 fix recursive_directory_iterator default constructor

PR libstdc++/71004
* include/experimental/bits/fs_dir.h (recursive_directory_iterator):
Initialize scalar member variables in default constructor.
* testsuite/experimental/filesystem/iterators/
recursive_directory_iterator.cc: Teste default construction.

From-SVN: r236023

8 years agoregrename.c (base_reg_class_for_rename): New static function.
Bernd Schmidt [Mon, 9 May 2016 09:44:30 +0000 (09:44 +0000)]
regrename.c (base_reg_class_for_rename): New static function.

* regrename.c (base_reg_class_for_rename): New static function.
(scan_rtx_address, scan_rtx): Use it instead of base_reg_class.

From-SVN: r236022

8 years agore PR fortran/70937 (ICE: tree code ‘ssa_name’ is not supported in LTO streams)
Richard Biener [Mon, 9 May 2016 07:42:45 +0000 (07:42 +0000)]
re PR fortran/70937 (ICE: tree code ‘ssa_name’ is not supported in LTO streams)

2016-05-09  Richard Biener  <rguenther@suse.de>

PR fortran/70937
* trans-decl.c: Include gimplify.h for unshare_expr.
(gfc_trans_vla_one_sizepos): Unshare exprs before inserting
them into the IL.

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

From-SVN: r236021

8 years agoDaily bump.
GCC Administrator [Mon, 9 May 2016 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r236017

8 years agoconfig/sh/sh.h: Remove extra colon from subtarget specs.
Kaz Kojima [Sun, 8 May 2016 23:01:58 +0000 (23:01 +0000)]
config/sh/sh.h: Remove extra colon from subtarget specs.

From-SVN: r236013

8 years agocgraph.c (thunk_adjust): Export.
Jan Hubicka [Sun, 8 May 2016 18:44:02 +0000 (20:44 +0200)]
cgraph.c (thunk_adjust): Export.

* cgraph.c (thunk_adjust): Export.
* cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
* cgraphunit.c (thunk_adjust): Export.
(cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
thunks.
* ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
inlinable.
* tree-inline.c (expand_call_inline): Expand thunks inline.

From-SVN: r236012

8 years agore PR target/70998 (ICE in pre_and_rev_post_order_compute, at cfganal.c)
Uros Bizjak [Sun, 8 May 2016 18:18:42 +0000 (20:18 +0200)]
re PR target/70998 (ICE in pre_and_rev_post_order_compute, at cfganal.c)

PR target/70998
* config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
(*sse2_vd_cvtss2sd): Ditto.
* config/i386/i386.md
(TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
Generate *sse2_vd_cvtsd2ss pattern.
(TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
Generate *sse2_vd_cvtss2sd pattern.

From-SVN: r236011

8 years agosh.h (GET_SH_ARG_CLASS): Convert macro into ...
Oleg Endo [Sun, 8 May 2016 14:15:24 +0000 (14:15 +0000)]
sh.h (GET_SH_ARG_CLASS): Convert macro into ...

gcc/
* config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
* config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
users.

From-SVN: r236009

8 years agosh-protos.h (sh_media_register_for_return): Remove.
Oleg Endo [Sun, 8 May 2016 14:08:09 +0000 (14:08 +0000)]
sh-protos.h (sh_media_register_for_return): Remove.

gcc/
* config/sh/sh-protos.h (sh_media_register_for_return): Remove.
* config/sh/sh.c: Define and declare variables on first use throughout
the file.
(current_function_interrupt): Change to bool type.
(frame_insn): Rename to emit_frame_insn and update users.
(push_regs): Use bool for 'interrupt_handler' argument.
(save_schedule_s): Remove.
(TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
(sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
targetm.asm_out.unaligned_op.di.
(gen_far_branch): Remove redundant forward declaration.
(sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
MAX_TEMPS, save_schedule_ssave_schedule): Remove.
(sh_set_return_address, sh_function_ok_for_sibcall,
scavenge_reg): Update comments.
(sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
(sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
(sh_attr_renesas_p): Remove unnecessary parentheses.
(branch_dest): Simplify.
* config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
(CUMULATIVE_ARGS): Change macro to typedef.
(current_function_interrupt): Change to bool type.
(sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
Surround with __cplusplus ifdef.
(sh_compare_op0, sh_compare_op1): Remove.
(EPILOGUE_USES): Use TARGET_FPU_ANY condition.

From-SVN: r236008

8 years agoFix gcc.dg/ipa/pure-const-3.c scan
Rainer Orth [Sun, 8 May 2016 11:52:38 +0000 (11:52 +0000)]
Fix gcc.dg/ipa/pure-const-3.c scan

* gcc.dg/ipa/pure-const-3.c: Scan local-pure-const1 dump.

From-SVN: r236007

8 years agoDaily bump.
GCC Administrator [Sun, 8 May 2016 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r236003

8 years agore PR fortran/56226 (Add support for DEC UNION and MAP extensions)
Fritz Reese [Sat, 7 May 2016 23:16:23 +0000 (23:16 +0000)]
re PR fortran/56226 (Add support for DEC UNION and MAP extensions)

2016-05-07  Fritz Reese  <fritzoreese@gmail.com>

PR fortran/56226
* module.c (dt_upper_string): Rename to gfc_dt_upper_string
(dt_lower_string): Likewise.
* gfortran.h: Make new gfc_dt_upper/lower_string global.
* class.c: Use gfc_dt_upper_string.
* decl.c: Likewise.
* symbol.c: Likewise.
* resolve.c (resolve_component): New function.
(resolve_fl_derived0): Move component loop code to resolve_component.
* parse.c (check_component): New function.
(parse_derived): Move loop code to check_component.
* lang.opt, invoke.texi, options.c : New option -fdec-structure.
* libgfortran.h (bt): New basic type BT_UNION.
* gfortran.h (gfc_option): New option -fdec-structure.
(gfc_get_union_type, gfc_compare_union_types): New prototypes.
(gfc_bt_struct, gfc_fl_struct, case_bt_struct, case_fl_struct): New
macros.
(gfc_find_component): Change prototype.
* match.h (gfc_match_member_sep, gfc_match_map, gfc_match_union,
gfc_match_structure_decl): New prototypes.
* parse.h (gfc_comp_struct): New macro.
* symbol.c (gfc_find_component): Search for components in nested unions
* class.c (insert_component_ref, gfc_add_component_ref, add_proc_comp,
copy_vtab_proc_comps): Update calls to gfc_find_component.
* primary.c (gfc_convert_to_structure_constructor): Likewise.
* symbol.c (gfc_add_component): Likewise.
* resolve.c (resolve_typebound_function, resolve_typebound_subroutine,
resolve_typebound_procedure, resolve_component, resolve_fl_derived):
Likewise.
* expr.c (get_union_init, component_init): New functions.
* decl.c (match_clist_expr, match_record_decl, get_struct_decl,
gfc_match_map, gfc_match_union, gfc_match_structure_decl): Likewise.
* interface.c (compare_components, gfc_compare_union_types): Likewise.
* match.c (gfc_match_member_sep): Likewise.
* parse.c (check_component, parse_union, parse_struct_map): Likewise.
* resolve.c (resolve_fl_struct): Likewise.
* symbol.c (find_union_component): Likewise.
* trans-types.c (gfc_get_union_type): Likewise.
* parse.c (parse_derived): Use new functions.
* interface.c (gfc_compare_derived_types, gfc_compare_types): Likewise.
* expr.c (gfc_default_initializer): Likewise.
* gfortran.texi: Support for DEC structures, unions, and maps.
* gfortran.h (gfc_statement, sym_flavor): Likewise.
* check.c (gfc_check_kill_sub): Likewise.
* expr.c (gfc_copy_expr, simplify_const_ref,
gfc_has_default_initializer): Likewise.
* decl.c (build_sym, match_data_constant, add_init_expr_to_sym,
match_pointer_init, build_struct, variable_decl,
gfc_match_decl_type_spec, gfc_mach_data-decl, gfc_match_entry,
gfc_match_end, gfc_match_derived_decl): Likewise.
* interface.c (check_interface0, check_interface1,
gfc_search_interface): Likewise.
* misc.c (gfc_basic_typename, gfc_typename): Likewise.
* module.c (add_true_name, build_tnt, bt_types, mio_typespec,
fix_mio_expr, load_needed, mio_symbol, read_module, write_symbol,
gfc_get_module_backend_decl): Likewise.
* parse.h (gfc_compile_state): Likewise.
* parse.c (decode_specification_statement, decode_statement,
gfc_ascii_statement, verify_st_order, parse_spec): Likewise.
* primary.c (gfc_match_varspec, gfc_match_structure_constructor,
gfc_match_rvalue, match_variable): Likewise.
* resolve.c (find_arglists, resolve_structure_cons,
is_illegal_recursion, resolve_generic_f, get_declared_from_expr,
resolve_typebound_subroutine, resolve_allocate_expr,
nonscalar_typebound_assign, generate_component_assignments,
resolve_fl_variable_derived, check_defined_assignments,
resolve_component, resolve_symbol, resolve_equivalence_derived):
Likewise.
* symbol.c (flavors, check_conflict, gfc_add_flavor, gfc_use_derived,
gfc_restore_last_undo_checkpoint, gfc_type_compatible,
gfc_find_dt_in_generic): Likewise.
* trans-decl.c (gfc_get_module_backend_decl, create_function_arglist,
gfc_create_module_variable, check_constant_initializer): Likewise.
* trans-expr.c (gfc_conv_component_ref, gfc_conv_initializer,
gfc_trans_alloc_subarray_assign, gfc_trans_subcomponent_assign,
gfc_conv_structure, gfc_trans_scalar_assign, copyable_array_p):
Likewise.
* trans-io.c (transfer_namelist_element, transfer_expr,
gfc_trans_transfer): Likewise.
* trans-stmt.c (gfc_trans_deallocate): Likewise.
* trans-types.c (gfc_typenode_for_spec, gfc_copy_dt_decls_ifequal,
gfc_get_derived_type): Likewise.

2016-05-07  Fritz Reese  <fritzoreese@gmail.com>

PR fortran/56226
* gfortran.dg/dec_structure_1.f90: New testcase.
* gfortran.dg/dec_structure_2.f90: Ditto.
* gfortran.dg/dec_structure_3.f90: Ditto.
* gfortran.dg/dec_structure_4.f90: Ditto.
* gfortran.dg/dec_structure_5.f90: Ditto.
* gfortran.dg/dec_structure_6.f90: Ditto.
* gfortran.dg/dec_structure_7.f90: Ditto.
* gfortran.dg/dec_structure_8.f90: Ditto.
* gfortran.dg/dec_structure_9.f90: Ditto.
* gfortran.dg/dec_structure_10.f90: Ditto.
* gfortran.dg/dec_structure_11.f90: Ditto.
* gfortran.dg/dec_union_1.f90: Ditto.
* gfortran.dg/dec_union_2.f90: Ditto.
* gfortran.dg/dec_union_3.f90: Ditto.
* gfortran.dg/dec_union_4.f90: Ditto.
* gfortran.dg/dec_union_5.f90: Ditto.
* gfortran.dg/dec_union_6.f90: Ditto.
* gfortran.dg/dec_union_7.f90: Ditto.

From-SVN: r235999

8 years agoEmit vmov.i64 to load 0.0 into FP reg when neon enabled.
Jim Wilson [Sat, 7 May 2016 23:11:57 +0000 (23:11 +0000)]
Emit vmov.i64 to load 0.0 into FP reg when neon enabled.

* config/arm/arm.md: (arch): Add neon.
(arch_enabled): Return yes for arch neon when TARGET_NEON.
* config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
attributes for alt renumbering.  Mark alt 3 as non-predicable.
(thumb2_movdf_vfp): Likewise.

From-SVN: r235998

8 years agoi386.md (*addqi_1): Add preferred_for_speed attribute to disparage alternatives 3...
Uros Bizjak [Sat, 7 May 2016 14:36:11 +0000 (16:36 +0200)]
i386.md (*addqi_1): Add preferred_for_speed attribute to disparage alternatives 3 and 4 for...

* config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
(*andqi_1): Add preferred_for_speed attribute to disparage
alternative 2 for TARGET_PARTIAL_REG_STALL targets.
(*<code>qi_1): Ditto.
(*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
alternative 1 for TARGET_PARTIAL_REG_STALL targets.
(*ashlqi3_1): Ditto.
(*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
Add preferred_for_size attribute to disparage alternative 0 and
preferred_for_speed attribute to disparage alternative 1 for
TARGET_PARTIAL_REG_STALL targets.

From-SVN: r235996

8 years agoHandle NULL def in build_cross_bb_scalars_def
Tom de Vries [Sat, 7 May 2016 06:47:07 +0000 (06:47 +0000)]
Handle NULL def in build_cross_bb_scalars_def

2016-05-07  Tom de Vries  <tom@codesourcery.com>

PR tree-optimization/70956
* graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
def.

* gcc.dg/graphite/pr70956.c: New test.

From-SVN: r235994

8 years agosh-protos.h (sh_cbranch_distance): Declare new function.
Oleg Endo [Sat, 7 May 2016 01:43:12 +0000 (01:43 +0000)]
sh-protos.h (sh_cbranch_distance): Declare new function.

gcc/
* config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
* config/sh/sh.c (sh_cbranch_distance): Implement it.
* config/sh/sh.md (branch_zero): Remove define_attr.
(define_delay): Disable delay slot if branch distance is one insn.

From-SVN: r235993

8 years agoDaily bump.
GCC Administrator [Sat, 7 May 2016 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r235992

8 years agoescape: Add escape graph nodes.
Ian Lance Taylor [Fri, 6 May 2016 21:24:19 +0000 (21:24 +0000)]
escape: Add escape graph nodes.

    Introduces the nodes used to model connectivity in the escape graph
    and related state: a node's escape level and an encoding that will
    be added to import and export data.

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

From-SVN: r235988

8 years agoi386.md (LEAMODE): New mode attribute.
Uros Bizjak [Fri, 6 May 2016 21:14:20 +0000 (23:14 +0200)]
i386.md (LEAMODE): New mode attribute.

* config/i386/i386.md (LEAMODE): New mode attribute.
(plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
(ashift to LEA splitter): Rewrte splitter using SWI mode iterator
and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
operand 2 predicate.
(*lea<mode>_general_2): Use VOIDmode for const248_operand.
(*lea<mode>_general_3): Ditto.
(*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.

From-SVN: r235987

8 years ago* genmddump.c (main): Convert argv from char ** to const char **.
Jakub Jelinek [Fri, 6 May 2016 20:42:10 +0000 (22:42 +0200)]
* genmddump.c (main): Convert argv from char ** to const char **.

From-SVN: r235985

8 years agoi386.md (int cmove peephole2s): Use general_reg_operand instead of register_and_not_a...
Uros Bizjak [Fri, 6 May 2016 18:24:40 +0000 (20:24 +0200)]
i386.md (int cmove peephole2s): Use general_reg_operand instead of register_and_not_any_fp_reg_operand as...

* config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
* config/i386/predicates.md (register_and_not_any_fp_reg_operand):
Remove unused predicate.
(register_and_not_fp_reg_operand): Ditto.

From-SVN: r235983

8 years agoescape: Add skeleton for gc analysis.
Chris Manghane [Fri, 6 May 2016 17:37:55 +0000 (17:37 +0000)]
escape: Add skeleton for gc analysis.

    Introduces a skeleton replacement escape analysis
    which contains four different phases extracted from the escape
    analysis implementation in gc/esc.go.  Also introduces the
    Escape_context each phase uses to make decisions.

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

From-SVN: r235982

8 years agoAdd OVERRIDE and FINAL macros to coretypes.h
David Malcolm [Fri, 6 May 2016 17:02:01 +0000 (17:02 +0000)]
Add OVERRIDE and FINAL macros to coretypes.h

gcc/ChangeLog:
* coretypes.h (OVERRIDE): New macro.
(FINAL): New macro.

From-SVN: r235981

8 years agotree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case, allow coalescing...
Eric Botcazou [Fri, 6 May 2016 15:54:15 +0000 (15:54 +0000)]
tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case, allow coalescing if the types are compatible.

* tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
allow coalescing if the types are compatible.

From-SVN: r235980

8 years agore PR target/70941 (Test miscompiled with -O2.)
Jakub Jelinek [Fri, 6 May 2016 15:23:56 +0000 (17:23 +0200)]
re PR target/70941 (Test miscompiled with -O2.)

PR middle-end/70941
* gcc.dg/torture/pr70941.c (abort): Remove prototype.
(a, b, c, d): Change type from char to signed char.
(main): Compare against (signed char) -1634678893 instead of
hardcoded -109.  Use __builtin_abort instead of abort.

From-SVN: r235978

8 years agoMove name_to_pass_map into class pass_manager
David Malcolm [Fri, 6 May 2016 15:18:59 +0000 (15:18 +0000)]
Move name_to_pass_map into class pass_manager

gcc/ChangeLog:
* pass_manager.h (pass_manager::register_pass_name): New method.
(pass_manager::get_pass_by_name): New method.
(pass_manager::create_pass_tab): New method.
(pass_manager::m_name_to_pass_map): New field.
* passes.c (name_to_pass_map): Delete global in favor of field
"m_name_to_pass_map" of pass_manager.
(register_pass_name): Rename from a function to...
(pass_manager::register_pass_name): ...this method, updating
for renaming of global "name_to_pass_map" to field
"m_name_to_pass_map".
(create_pass_tab): Rename from a function to...
(pass_manager::create_pass_tab): ...this method, updating
for renaming of global "name_to_pass_map" to field.
(get_pass_by_name): Rename from a function to...
(pass_manager::get_pass_by_name): ...this method.
(enable_disable_pass): Convert use of get_pass_by_name to
a method call, locating the pass_manager singleton.

From-SVN: r235977

8 years agoMake argv const char ** in read_md_files etc
David Malcolm [Fri, 6 May 2016 15:14:05 +0000 (15:14 +0000)]
Make argv const char ** in read_md_files etc

gcc/ChangeLog:
* genattr-common.c (main): Convert argv from
char ** to const char **.
* genattr.c (main): Likewise.
* genattrtab.c (main): Likewise.
* genautomata.c (initiate_automaton_gen): Likewise.
(main): Likewise.
* gencodes.c (main): Likewise.
* genconditions.c (main): Likewise.
* genconfig.c (main): Likewise.
* genconstants.c (main): Likewise.
* genemit.c (main): Likewise.
* genenums.c (main): Likewise.
* genextract.c (main): Likewise.
* genflags.c (main): Likewise.
* genmddeps.c (main): Likewise.
* genopinit.c (main): Likewise.
* genoutput.c (main): Likewise.
* genpeep.c (main): Likewise.
* genpreds.c (main): Likewise.
* genrecog.c (main): Likewise.
* gensupport.c (init_rtx_reader_args_cb): Likewise.
(init_rtx_reader_args): Likewise.
* gensupport.h (init_rtx_reader_args_cb): Likewise.
(init_rtx_reader_args): Likewise.
* gentarget-def.c (main): Likewise.
* read-md.c (read_md_files): Likewise.
* read-md.h (read_md_files): Likewise.

From-SVN: r235976

8 years agoi386.md (int cmove peephole2s): Use general_reg_operand instead of register_and_not_a...
Uros Bizjak [Fri, 6 May 2016 14:34:58 +0000 (16:34 +0200)]
i386.md (int cmove peephole2s): Use general_reg_operand instead of register_and_not_any_fp_reg_operand as...

* config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
* config/i386/predicates.md (register_and_not_any_fp_reg_operand):
Remove unused predicate.
(register_and_not_fp_reg_operand): Ditto.

From-SVN: r235975

8 years agoFix memory leak in tree-if-conv.c
Martin Liska [Fri, 6 May 2016 14:26:23 +0000 (16:26 +0200)]
Fix memory leak in tree-if-conv.c

* tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
instead of vec as the vector is local to the function.

From-SVN: r235974

8 years agosse.md (*<code>v8hi3, [...]): Add avx512bw alternative.
Jakub Jelinek [Fri, 6 May 2016 13:16:00 +0000 (15:16 +0200)]
sse.md (*<code>v8hi3, [...]): Add avx512bw alternative.

* config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
avx512bw alternative.

From-SVN: r235973

8 years agosse.md (<mask_codefor>ashr<mode>3<mask_name>): Move before the ashr<mode>3 pattern.
Jakub Jelinek [Fri, 6 May 2016 13:15:24 +0000 (15:15 +0200)]
sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move before the ashr<mode>3 pattern.

* config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
before the ashr<mode>3 pattern.

* gcc.target/i386/avx512bw-vpsraw-3.c: New test.
* gcc.target/i386/avx512vl-vpsrad-3.c: New test.

From-SVN: r235972

8 years agosse.md (*avx2_pmaddwd, [...]): Use v instead of x in vex or maybe_vex alternatives...
Jakub Jelinek [Fri, 6 May 2016 13:14:34 +0000 (15:14 +0200)]
sse.md (*avx2_pmaddwd, [...]): Use v instead of x in vex or maybe_vex alternatives...

* config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
v instead of x in vex or maybe_vex alternatives, use
maybe_evex instead of vex in prefix.

* gcc.target/i386/avx512bw-vpmaddwd-3.c: New test.

From-SVN: r235971

8 years agosse.md (*vec_extractv4sf_0, [...]): Use v instead of x in vex or maybe_vex alternativ...
Jakub Jelinek [Fri, 6 May 2016 13:13:09 +0000 (15:13 +0200)]
sse.md (*vec_extractv4sf_0, [...]): Use v instead of x in vex or maybe_vex alternatives...

* config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
*vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
in vex or maybe_vex alternatives, use maybe_evex instead of vex
in prefix.

From-SVN: r235970

8 years agosse.md (*vec_concatv2sf_sse4_1, [...]): Use v instead of x in vex or maybe_vex altern...
Jakub Jelinek [Fri, 6 May 2016 13:12:32 +0000 (15:12 +0200)]
sse.md (*vec_concatv2sf_sse4_1, [...]): Use v instead of x in vex or maybe_vex alternatives...

* config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
v instead of x in vex or maybe_vex alternatives, use
maybe_evex instead of vex in prefix.

From-SVN: r235969

8 years agosse.md (sse_shufps_<mode>, [...]): Use v instead of x in vex or maybe_vex alternatives...
Jakub Jelinek [Fri, 6 May 2016 13:11:56 +0000 (15:11 +0200)]
sse.md (sse_shufps_<mode>, [...]): Use v instead of x in vex or maybe_vex alternatives...

* config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
alternatives, use maybe_evex instead of vex in prefix.

From-SVN: r235968

8 years ago* config/i386/sse.md (vec_interleave_lowv4sf,
Jakub Jelinek [Fri, 6 May 2016 13:11:17 +0000 (15:11 +0200)]
* config/i386/sse.md (vec_interleave_lowv4sf,

*vec_interleave_highv2df, *vec_interleave_lowv2df): Use
v instead of x in vex or maybe_vex alternatives, use
maybe_evex instead of vex in prefix.

From-SVN: r235967

8 years agosse.md (sse_movhlps, [...]): Use v instead of x in vex or maybe_vex alternatives...
Jakub Jelinek [Fri, 6 May 2016 13:10:39 +0000 (15:10 +0200)]
sse.md (sse_movhlps, [...]): Use v instead of x in vex or maybe_vex alternatives...

* config/i386/sse.md (sse_movhlps, sse_movlhps): Use
v instead of x in vex or maybe_vex alternatives, use
maybe_evex instead of vex in prefix.

From-SVN: r235966

8 years agosse.md (*avx_cvtpd2dq256_2, [...]): Use v constraint instead of x.
Jakub Jelinek [Fri, 6 May 2016 13:09:53 +0000 (15:09 +0200)]
sse.md (*avx_cvtpd2dq256_2, [...]): Use v constraint instead of x.

* config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
v constraint instead of x.

From-SVN: r235965

8 years agogimple.c (gimple_call_same_target_p): Unique functions are eq.
Nathan Sidwell [Fri, 6 May 2016 13:02:42 +0000 (13:02 +0000)]
gimple.c (gimple_call_same_target_p): Unique functions are eq.

* gimple.c (gimple_call_same_target_p): Unique functions are eq.
* tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
equality first.

From-SVN: r235964

8 years agore PR tree-optimization/70948 (r235622 caused gcc.c-torture/execute/va-arg-pack-1...
Richard Biener [Fri, 6 May 2016 12:53:26 +0000 (12:53 +0000)]
re PR tree-optimization/70948 (r235622 caused gcc.c-torture/execute/va-arg-pack-1.c execution failure AArch64)

2016-05-06  Richard Biener  <rguenther@suse.de>

PR tree-optimization/70948
* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
Properly clobber all fields of va_list for __builtin_va_start.

From-SVN: r235963

8 years agore PR debug/70935 (ICE: verify_ssa failed (error: definition in block 9 does not...
Yuri Rumyantsev [Fri, 6 May 2016 12:07:25 +0000 (12:07 +0000)]
re PR debug/70935 (ICE: verify_ssa failed (error: definition in block 9 does not dominate use in block 12) w/ -O3 -g)

gcc/

2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>

PR debug/70935
* tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
loop latch destination.

gcc/testsuite/

2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>

PR debug/70935
* gcc.dg/torture/pr70935.c: New test.

From-SVN: r235962

8 years agoManual changes to GCC coding style in tree-ssa-uninit.c
Martin Liska [Fri, 6 May 2016 11:27:28 +0000 (13:27 +0200)]
Manual changes to GCC coding style in tree-ssa-uninit.c

* tree-ssa-uninit.c: Apply manual changes
to the GNU coding style.
(prune_uninit_phi_opnds): Rename from
prune_uninit_phi_opnds_in_unrealizable_paths.

From-SVN: r235961

8 years agosh.opt (madjust-unroll, [...]): Remove deprecated options.
Oleg Endo [Fri, 6 May 2016 11:05:49 +0000 (11:05 +0000)]
sh.opt (madjust-unroll, [...]): Remove deprecated options.

gcc/
* config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
mspace): Remove deprecated options.
* doc/invoke.texi (SH options): Remove -mspace.

From-SVN: r235960

8 years agosh.md (ic_invalidate_line_sh4a): Fix insn length.
Oleg Endo [Fri, 6 May 2016 10:35:42 +0000 (10:35 +0000)]
sh.md (ic_invalidate_line_sh4a): Fix insn length.

gcc/
* config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.

From-SVN: r235957

8 years agosh.md (*cmpeqsi_t): Remove combine insn pattern and similar corresponding combine...
Oleg Endo [Fri, 6 May 2016 10:29:33 +0000 (10:29 +0000)]
sh.md (*cmpeqsi_t): Remove combine insn pattern and similar corresponding combine split pattern.

gcc/
* config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
corresponding combine split pattern.

From-SVN: r235956

8 years agoFix ChangeLog formatting.
Oleg Endo [Fri, 6 May 2016 10:23:48 +0000 (10:23 +0000)]
Fix ChangeLog formatting.

From-SVN: r235955

8 years agore PR target/58219 ([SH] mov.l insn length is wrong on SH2A)
Oleg Endo [Fri, 6 May 2016 10:20:13 +0000 (10:20 +0000)]
re PR target/58219 ([SH] mov.l insn length is wrong on SH2A)

gcc/
PR target/58219
* config/sh/predicates.md (long_displacement_mem_operand): New.
* config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
Add movi20, movi20s alternatives.  Adjust length attribute for
alternatives.
(movsi_ie): Allow for any FPU.  Adjust length attribute for
alternatives.
(movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
attribute for alternatives.
(*mov<mode>): Use long_displacement_mem_operand for length attribute.
(*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
length attribute for alternatives.

gcc/testsuite/
PR target/58219
*gcc.target/sh/pr58219.c: New tests.

From-SVN: r235954

8 years agore PR tree-optimization/70960 (ICE: tree check: expected ssa_name, have integer_cst...
Richard Biener [Fri, 6 May 2016 10:18:59 +0000 (10:18 +0000)]
re PR tree-optimization/70960 (ICE: tree check: expected ssa_name, have integer_cst in ifcvt_walk_pattern_tree, at tree-if-conv.c:2465)

2016-05-06  Richard Biener  <rguenther@suse.de>

PR tree-optimization/70960
* tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.

* gfortran.fortran-torture/compile/pr70960.f90: New testcase.

From-SVN: r235953

8 years agore PR target/52933 (SH Target: Use div0s for integer sign comparisons)
Oleg Endo [Fri, 6 May 2016 09:52:35 +0000 (09:52 +0000)]
re PR target/52933 (SH Target: Use div0s for integer sign comparisons)

gcc/
PR target/52933
* config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
* config/sh/sh.c (sh_rtx_costs): Add another div0s case.

gcc/testsuite/
PR target/52933
* gcc.target/sh/pr52933-1.c (test_31, test_32, test_33, test_34,
test_35, test_36, test_37, test_38, test_39, test_40): New sub-tests.
Adjust expected instruction counts.
* gcc.target/sh/pr52933-2.c: Adjust expected instruction counts.

From-SVN: r235952

8 years agore PR sanitizer/70875 (ICE in get_ubsan_type_info_for_type with -fsanitize=undefined)
Marek Polacek [Fri, 6 May 2016 09:47:25 +0000 (09:47 +0000)]
re PR sanitizer/70875 (ICE in get_ubsan_type_info_for_type with -fsanitize=undefined)

PR sanitizer/70875
* ubsan.c (get_ubsan_type_info_for_type): Remove assert.

* gcc.dg/ubsan/bounds-3.c: New test.

From-SVN: r235951

8 years agore PR target/54089 ([SH] Refactor shift patterns)
Oleg Endo [Fri, 6 May 2016 09:41:57 +0000 (09:41 +0000)]
re PR target/54089 ([SH] Refactor shift patterns)

gcc/
PR target/54089
* config/sh/sh.md (*rotcr): Add another variant.

gcc/testsuite/
PR target/54089
* gcc.target/sh/pr54089-1.c (test_24): Add new sub-test.

From-SVN: r235950

8 years agore PR ada/70969 (bootstrap failure: s-unstyp.ads:40:15: violation of No_Elaboration_C...
Eric Botcazou [Fri, 6 May 2016 09:11:38 +0000 (09:11 +0000)]
re PR ada/70969 (bootstrap failure: s-unstyp.ads:40:15: violation of No_Elaboration_Code_All at line 42)

PR ada/70969
* system-darwin-ppc64.ads: Add pragma No_Elaboration_Code_All.
* system-linux-armeb.ads: Likewise.
* system-linux-mips64el.ads: Likewise.
* system-linux-mips.ads: Likewise.
* system-linux-mipsel.ads: Likewise.
* system-linux-ppc64.ads: Likewise.
* system-linux-sparcv9.ads: Likewise.
* system-rtems.ads: Likewise.

From-SVN: r235946

8 years agore PR fortran/70931 (ICE with -g in native_encode_initializer, bei dwarf2out.c:17768)
Richard Biener [Fri, 6 May 2016 07:44:22 +0000 (07:44 +0000)]
re PR fortran/70931 (ICE with -g in native_encode_initializer, bei dwarf2out.c:17768)

2016-05-06  Richard Biener  <rguenther@suse.de>

PR middle-end/70931
* dwarf2out.c (native_encode_initializer): Skip zero-sized fields.

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

From-SVN: r235944

8 years agore PR target/70941 (Test miscompiled with -O2.)
Richard Biener [Fri, 6 May 2016 07:38:27 +0000 (07:38 +0000)]
re PR target/70941 (Test miscompiled with -O2.)

2016-05-06  Richard Biener  <rguenther@suse.de>

PR middle-end/70941
* fold-const.c (split_tree): Always convert to the original type
before negating.

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

From-SVN: r235943

8 years agofwprop.c (fwprop): Remove duplicate cleanup_cfg call.
Richard Biener [Fri, 6 May 2016 07:27:33 +0000 (07:27 +0000)]
fwprop.c (fwprop): Remove duplicate cleanup_cfg call.

2016-05-06  Richard Biener  <rguenther@suse.de>

* fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
(fwprop_addr): Likewise.

From-SVN: r235942

8 years agoDaily bump.
GCC Administrator [Fri, 6 May 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r235940

8 years agore PR target/70873 ([7 Regressio] 20% performance regression at 482.sphinx3 after...
Uros Bizjak [Thu, 5 May 2016 22:48:29 +0000 (00:48 +0200)]
re PR target/70873 ([7 Regressio] 20% performance regression at 482.sphinx3 after r235442 with -O2 -m32 on Haswell.)

PR target/70873
* config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
New prototype.
* config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
* config/i386/i386.md (push mem splitter): Use find_constant_src in
the splitter condition.
(FP load splitter): Use ix86_standard_x87sse_constant_load_p in
the splitter condition.
(FP float_extend load splitter): Ditto.

From-SVN: r235936

8 years agoi386.md (peehole2 patterns): Change true_regnum to REGNUM in all peephole2 patterns.
Uros Bizjak [Thu, 5 May 2016 20:33:42 +0000 (22:33 +0200)]
i386.md (peehole2 patterns): Change true_regnum to REGNUM in all peephole2 patterns.

* config/i386/i386.md (peehole2 patterns): Change true_regnum
to REGNUM in all peephole2 patterns.
(post-reload splitters): Change true_regnum to REGNUM in
post-reload splitters.
(zero_extend splitters): Use general_reg_operand and
nonimmediate_gr_operand predicates.

From-SVN: r235933

8 years agoEnable dg-reqire-sharedlib on Solaris
Rainer Orth [Thu, 5 May 2016 19:54:42 +0000 (19:54 +0000)]
Enable dg-reqire-sharedlib on Solaris

* testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.

From-SVN: r235931

8 years agore PR tree-optimization/57206 (Auto-vectorization fails when array index is an unsign...
Bin Cheng [Thu, 5 May 2016 16:20:54 +0000 (16:20 +0000)]
re PR tree-optimization/57206 (Auto-vectorization fails when array index is an unsigned int expression)

gcc/testsuite
PR tree-optimization/57206
* gcc.dg/vect/pr57206.c: New test.

From-SVN: r235926

8 years agoDeclare isnanf in gcc.dg/ipa/inline-8.c
Rainer Orth [Thu, 5 May 2016 14:29:47 +0000 (14:29 +0000)]
Declare isnanf in gcc.dg/ipa/inline-8.c

* gcc.dg/ipa/inline-8.c (isnanf): Declare.

From-SVN: r235925

8 years ago* decl.c: Update comment.
Jason Merrill [Thu, 5 May 2016 13:33:35 +0000 (09:33 -0400)]
* decl.c: Update comment.

From-SVN: r235923

8 years agoopenmp.c (gfc_match_omp_clauses): Restructuralize...
Jakub Jelinek [Thu, 5 May 2016 13:31:02 +0000 (15:31 +0200)]
openmp.c (gfc_match_omp_clauses): Restructuralize...

* openmp.c (gfc_match_omp_clauses): Restructuralize, so that clause
parsing is done in a big switch based on gfc_peek_ascii_char and
individual clauses under their first letters are sorted too.

From-SVN: r235922

8 years agosse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use v constraint instead of x.
Jakub Jelinek [Thu, 5 May 2016 13:29:54 +0000 (15:29 +0200)]
sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use v constraint instead of x.

* config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
v constraint instead of x.

* gcc.target/i386/avx512f-vfmadd-1.c: New test.

From-SVN: r235921

8 years agoc-parser.c (c_parser_switch_statement): Add IF_P argument, parse it through to c_pars...
Jakub Jelinek [Thu, 5 May 2016 13:26:59 +0000 (15:26 +0200)]
c-parser.c (c_parser_switch_statement): Add IF_P argument, parse it through to c_parser_c99_block_statement.

* c-parser.c (c_parser_switch_statement): Add IF_P argument,
parse it through to c_parser_c99_block_statement.
(c_parser_statement_after_labels): Adjust c_parser_switch_statement
caller.

* parser.c (cp_parser_selection_statement): For RID_SWITCH,
pass if_p instead of NULL to cp_parser_implicitly_scoped_statement.

* c-c++-common/Wdangling-else-4.c: New test.

From-SVN: r235920

8 years agoAdd dg-require-filesystem-ts directive to test
Jonathan Wakely [Thu, 5 May 2016 10:03:56 +0000 (11:03 +0100)]
Add dg-require-filesystem-ts directive to test

* testsuite/experimental/filesystem/path/native/string.cc: Add
dg-require-filesystem-ts directive.

From-SVN: r235919

8 years agoDaily bump.
GCC Administrator [Thu, 5 May 2016 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r235918

8 years ago[RS6000] TARGET_RELOCATABLE
Alan Modra [Thu, 5 May 2016 00:07:27 +0000 (09:37 +0930)]
[RS6000] TARGET_RELOCATABLE

For ABI_V4, -mrelocatable and -fPIC both generate position independent
code, with some extra "fixup" output for -mrelocatable.  The
similarity of these two options has led to the situation where the
sysv4.h SUBTARGET_OVERRIDE_OPTIONS sets flag_pic on seeing
-mrelocatable, and sets TARGET_RELOCATABLE on seeing -fPIC.  That
prevents LTO from properly optimizing position dependent executables,
because the mutual dependence of the flags and the fact that LTO
streaming records the state of rs6000_isa_flags, result in flag_pic
being set when it shouldn't be.

So, don't set TARGET_RELOCATABLE when -fPIC.  Places that currently
test TARGET_RELOCATABLE can instead test
TARGET_RELOCATABLE || (DEFAULT_ABI == ABI_V4 && flag_pic > 1)
or since TARGET_RELOCATABLE can only be enabled when ABI_V4,
DEFAULT_ABI == ABI_V4 && (TARGET_RELOCATABLE || flag_pic > 1).

Also, since flag_pic is set by -mrelocatable, a number of places that
currently test TARGET_RELOCATABLE can be simplified.  I also made
-mrelocatable set TARGET_NO_FP_IN_TOC, allowing TARGET_RELOCATABLE to
be removed from ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.  Reducing occurrences
of TARGET_RELOCATABLE is a good thing.

PR target/68662
* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
TARGET_NO_FP_IN_TOC for -mrelocatable.
(MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
TARGET_RELOCATABLE test.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
(ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
* config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
(ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
* config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
(ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
* config/rs6000/predicates.md (easy_fp_constant): Likewise.
* config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
Likewise.
(rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
(rs6000_stack_info): Likewise.
(rs6000_elf_asm_out_constructor): Likewise.
(rs6000_elf_asm_out_destructor): Likewise.
(rs6000_elf_declare_function_name): Likewise.
* config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
* config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
Don't define.

From-SVN: r235914

8 years ago[RS6000] Rewrite rs6000_frame_related to use simplify_replace_rtx
Alan Modra [Thu, 5 May 2016 00:01:26 +0000 (09:31 +0930)]
[RS6000] Rewrite rs6000_frame_related to use simplify_replace_rtx

Modify SETs rather than using replace_rtx on the whole insn.
Removes fragile hacks preventing USE and CLOBBER being modified.

* config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.

From-SVN: r235913

8 years ago[RS6000] out-of-line exit register restore funcs
Alan Modra [Wed, 4 May 2016 21:32:27 +0000 (07:02 +0930)]
[RS6000] out-of-line exit register restore funcs

* config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
out-of-line gpr restore for one or two regs if that would add
a save of lr.

From-SVN: r235907

8 years agore PR target/70873 ([7 Regressio] 20% performance regression at 482.sphinx3 after...
Uros Bizjak [Wed, 4 May 2016 21:13:13 +0000 (23:13 +0200)]
re PR target/70873 ([7 Regressio] 20% performance regression at 482.sphinx3 after r235442 with -O2 -m32 on Haswell.)

PR target/70873
* config/i386/i386.md
(TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
Change to post-epilogue_completed late splitter.  Use sse_reg_operand
as operand 0 predicate.
(TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
Ditto.
(TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
Ditto.  Emit the pattern using RTX.

(TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
(TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
Ditto.
(TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
sse_reg_operand as operand 0 predicate.

(TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
instead of gen_rtx_REG.
(TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
Ditto.

From-SVN: r235906

8 years agoshrink-wrap: Remove complicated simple_return manipulations
Segher Boessenkool [Wed, 4 May 2016 20:57:08 +0000 (22:57 +0200)]
shrink-wrap: Remove complicated simple_return manipulations

Now that cfgcleanup knows how to optimize with return statements, the
epilogue insertion code doesn't have to deal with it itself anymore.

* function.c (emit_use_return_register_into_block): Delete.
(gen_return_pattern): Delete.
(emit_return_into_block): Delete.
(active_insn_between): Delete.
(convert_jumps_to_returns): Delete.
(emit_return_for_exit): Delete.
(thread_prologue_and_epilogue_insns): Delete all code dealing with
simple_return for shrink-wrapped blocks.
* shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
end of blocks that need one.
(get_unconverted_simple_return): Delete.
(convert_to_simple_return): Delete.
* shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
(convert_to_simple_return): Ditto.

From-SVN: r235905

8 years agocfgcleanup: Fold jumps and conditional branches with returns
Segher Boessenkool [Wed, 4 May 2016 20:54:47 +0000 (22:54 +0200)]
cfgcleanup: Fold jumps and conditional branches with returns

This patch makes cfgcleanup optimize jumps to returns.  There are three
cases this handles:

-- A jump to a return; this is simplified to just that return.
-- A conditional branch to a return; simplified to a conditional return.
-- A conditional branch that falls through to a return.  This is simplified
   to a conditional return (with the condition inverted), falling through
   to a jump to the original destination.  That jump can then be optimized
   further, as usual.

This handles all cases the current function.c does, and a few it misses.

* cfgcleanup.c (bb_is_just_return): New function.
(try_optimize_cfg): Simplify jumps to return, branches to return,
and branches around return.

From-SVN: r235904

8 years agocfgcleanup: Bugfix in try_simplify_condjump
Segher Boessenkool [Wed, 4 May 2016 20:50:12 +0000 (22:50 +0200)]
cfgcleanup: Bugfix in try_simplify_condjump

If the jump_block here contains just a return, we will crash later
in invert_jump.  Don't allow that case.

* cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
branch to a return.

From-SVN: r235903

8 years agore PR c++/70906 (ice in add_expr, at tree.c:7925)
Jakub Jelinek [Wed, 4 May 2016 20:44:40 +0000 (22:44 +0200)]
re PR c++/70906 (ice in add_expr, at tree.c:7925)

PR c++/70906
PR c++/70933
* tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
* tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
assert flags & OEP_HASH_CHECK, instead of asserting it
never happens.  Handle TARGET_EXPR.
* fold-const.c (operand_equal_p): For hash verification,
or in OEP_HASH_CHECK into flags.

* g++.dg/opt/pr70906.C: New test.
* g++.dg/opt/pr70933.C: New test.

From-SVN: r235902

8 years agotree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head comment.
Eric Botcazou [Wed, 4 May 2016 20:22:42 +0000 (20:22 +0000)]
tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head comment.

* tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
comment.
(compute_samebase_partition_bases): Fix typo.

From-SVN: r235900

8 years agosse.md (vec_interleave_highv8sf, [...]): Remove constraints from expanders.
Jakub Jelinek [Wed, 4 May 2016 19:56:20 +0000 (21:56 +0200)]
sse.md (vec_interleave_highv8sf, [...]): Remove constraints from expanders.

* config/i386/sse.md (vec_interleave_highv8sf,
vec_interleave_lowv8sf, vec_interleave_highv4df,
vec_interleave_lowv4df): Remove constraints from expanders.

From-SVN: r235898

8 years agos-osinte-gnu.ads (Get_Page_Size): Return int and use getpagesize instead of __getpage...
Samuel Thibault [Wed, 4 May 2016 19:14:05 +0000 (19:14 +0000)]
s-osinte-gnu.ads (Get_Page_Size): Return int and use getpagesize instead of __getpagesize.

* s-osinte-gnu.ads (Get_Page_Size): Return int and use getpagesize
instead of __getpagesize.

From-SVN: r235896

8 years agosse.md (sse2_movq128): Use v constraint instead of x.
Jakub Jelinek [Wed, 4 May 2016 17:02:57 +0000 (19:02 +0200)]
sse.md (sse2_movq128): Use v constraint instead of x.

* config/i386/sse.md (sse2_movq128): Use v constraint instead of x.

* gcc.target/i386/avx512vl-vmovq-1.c: New test.

From-SVN: r235893

8 years agotree-inline.c (expand_call_inline): Fix path dealing with making lhs of call statemen...
Jan Hubicka [Wed, 4 May 2016 16:42:12 +0000 (18:42 +0200)]
tree-inline.c (expand_call_inline): Fix path dealing with making lhs of call statement undefined.

* tree-inline.c (expand_call_inline): Fix path dealing with
making lhs of call statement undefined.

From-SVN: r235889

8 years agocgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Check availability on...
Jan Hubicka [Wed, 4 May 2016 16:36:51 +0000 (18:36 +0200)]
cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Check availability on NODE, too.

* cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
Check availability on NODE, too.
* cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
(cgraph_node::call_for_symbol_and_aliases): Likewise.
(varpool_node::call_for_symbol_and_aliase): Likewise.
* ipa-pure-const.c (add_new_function): Analyze all bodies.
(propagate_pure_const): Propagate across interposable functions, too.
(skip_function_for_local_pure_const): Do not skip interposable bodies
with aliases.
(pass_local_pure_const::execute): Update.

* gcc.dg/ipa/pure-const-3.c: New testcase.

From-SVN: r235887

8 years agoc.opt (Wdangling-else): New option.
Marek Polacek [Wed, 4 May 2016 16:00:33 +0000 (16:00 +0000)]
c.opt (Wdangling-else): New option.

* c.opt (Wdangling-else): New option.

* c-parser.c (c_parser_if_statement): Replace OPT_Wparentheses with
OPT_Wdangling_else.

* parser.c (cp_parser_selection_statement): Replace OPT_Wparentheses
with OPT_Wdangling_else.

* doc/invoke.texi: Document -Wdangling-else.

* c-c++-common/Wdangling-else-1.c: New test.
* c-c++-common/Wdangling-else-2.c: New test.
* c-c++-common/Wdangling-else-3.c: New test.

From-SVN: r235885

8 years agomips16-attributes.c: Skip if -mmicromips flag is present.
Kwok Cheung Yeung [Wed, 4 May 2016 14:56:19 +0000 (14:56 +0000)]
mips16-attributes.c: Skip if -mmicromips flag is present.

2016-05-04  Kwok Cheung Yeung  <kcy@codesourcery.com>

* gcc.target/mips/mips16-attributes.c: Skip if -mmicromips
flag is present.

From-SVN: r235881

8 years agore PR c/48778 (gcc 4.6 -Waddress adds unhelpful new warning case when using from...
Marek Polacek [Wed, 4 May 2016 13:46:15 +0000 (13:46 +0000)]
re PR c/48778 (gcc 4.6 -Waddress adds unhelpful new warning case when using from a macro)

PR c/48778
* c-typeck.c (build_binary_op): Don't issue -Waddress warnings
for macro expansions.

* gcc.dg/Waddress-2.c: New test.

From-SVN: r235878

8 years agoconfig.gcc: Error out when conflicting multilib is detected.
Thomas Preud'homme [Wed, 4 May 2016 13:33:58 +0000 (13:33 +0000)]
config.gcc: Error out when conflicting multilib is detected.

2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config.gcc: Error out when conflicting multilib is detected.  Do not
    loop over multilibs since no combination is legal.

From-SVN: r235877

8 years ago[RS6000] Correct PIC_OFFSET_TABLE_REGNUM
Alan Modra [Wed, 4 May 2016 13:23:58 +0000 (22:53 +0930)]
[RS6000] Correct PIC_OFFSET_TABLE_REGNUM

Leaving this as r30 results in pic_offset_table_rtx of (reg 30)
for -m64, which is completely bogus.  Various rtl analysis predicate
functions treat pic_offset_table_rtx specially..

* config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.

From-SVN: r235876

8 years ago[RS6000] Simplify sysv4.h TARGET_TOC
Alan Modra [Wed, 4 May 2016 13:21:01 +0000 (22:51 +0930)]
[RS6000] Simplify sysv4.h TARGET_TOC

We can use the TARGET_* defines here.  There isn't any reason to use
the underlying variable and masks.  Also, TARGET_RELOCATABLE implies
TARGET_MINIMAL_TOC, so there is no need to test TARGET_RELOCATABLE.

* config/rs6000/sysv4.h (TARGET_TOC): Simplify.

From-SVN: r235875

8 years ago[RS6000] Align .toc section
Alan Modra [Wed, 4 May 2016 13:17:51 +0000 (22:47 +0930)]
[RS6000] Align .toc section

Lack of any .toc section alignment causes kexec and kdump failure
when linking without the usual linker script.  This of course is
really a kexec-tools error, but it is also true that .toc ought to
always be word aligned.

* config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
Align .toc.

From-SVN: r235874

8 years agoUpdate MIPS P5600 processor definition to avoid IMADD
Matthew Fortune [Wed, 4 May 2016 12:59:28 +0000 (12:59 +0000)]
Update MIPS P5600 processor definition to avoid IMADD

gcc/

* config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
Clean up p5600 comments.

From-SVN: r235873

8 years agomatch.pd: Add BIT_FIELD_REF canonicalizations and vector constructor simplifications.
Richard Biener [Wed, 4 May 2016 12:37:56 +0000 (12:37 +0000)]
match.pd: Add BIT_FIELD_REF canonicalizations and vector constructor simplifications.

2016-05-04  Richard Biener  <rguenther@suse.de>

* match.pd: Add BIT_FIELD_REF canonicalizations and vector
constructor simplifications.
* fold-const.c (fold_ternary_loc): Remove duplicate functionality
here.

From-SVN: r235871

8 years agobackport: Makefile.am: Merge from upstream...
Ilya Verbin [Wed, 4 May 2016 12:29:14 +0000 (12:29 +0000)]
backport: Makefile.am: Merge from upstream...

Merge libcilkrts from upstream.

libcilkrts/
* Makefile.am: Merge from upstream, version 2.0.4420.0
<https://bitbucket.org/intelcilkruntime/intel-cilk-runtime.git>.
* README: Likewise.
* configure.ac: Likewise.
* configure.tgt: Likewise.
* include/cilk/cilk.h: Likewise.
* include/cilk/cilk_api.h: Likewise.
* include/cilk/cilk_api_linux.h: Likewise.
* include/cilk/cilk_stub.h: Likewise.
* include/cilk/cilk_undocumented.h: Likewise.
* include/cilk/common.h: Likewise.
* include/cilk/holder.h: Likewise.
* include/cilk/hyperobject_base.h: Likewise.
* include/cilk/metaprogramming.h: Likewise.
* include/cilk/reducer.h: Likewise.
* include/cilk/reducer_file.h: Likewise.
* include/cilk/reducer_list.h: Likewise.
* include/cilk/reducer_max.h: Likewise.
* include/cilk/reducer_min.h: Likewise.
* include/cilk/reducer_min_max.h: Likewise.
* include/cilk/reducer_opadd.h: Likewise.
* include/cilk/reducer_opand.h: Likewise.
* include/cilk/reducer_opmul.h: Likewise.
* include/cilk/reducer_opor.h: Likewise.
* include/cilk/reducer_opxor.h: Likewise.
* include/cilk/reducer_ostream.h: Likewise.
* include/cilk/reducer_string.h: Likewise.
* include/cilktools/cilkscreen.h: Likewise.
* include/cilktools/cilkview.h: Likewise.
* include/cilktools/fake_mutex.h: Likewise.
* include/cilktools/lock_guard.h: Likewise.
* include/internal/abi.h: Likewise.
* include/internal/cilk_fake.h: Likewise.
* include/internal/cilk_version.h: Likewise.
* include/internal/metacall.h: Likewise.
* include/internal/rev.mk: Likewise.
* mk/cilk-version.mk: Likewise.
* runtime/acknowledgements.dox: Likewise.
* runtime/bug.cpp: Likewise.
* runtime/bug.h: Likewise.
* runtime/c_reducers.c: Likewise.
* runtime/cilk-abi-cilk-for.cpp: Likewise.
* runtime/cilk-abi-vla-internal.c: Likewise.
* runtime/cilk-abi-vla-internal.h: Likewise.
* runtime/cilk-abi.c: Likewise.
* runtime/cilk-ittnotify.h: Likewise.
* runtime/cilk-tbb-interop.h: Likewise.
* runtime/cilk_api.c: Likewise.
* runtime/cilk_fiber-unix.cpp: Likewise.
* runtime/cilk_fiber-unix.h: Likewise.
* runtime/cilk_fiber.cpp: Likewise.
* runtime/cilk_fiber.h: Likewise.
* runtime/cilk_malloc.c: Likewise.
* runtime/cilk_malloc.h: Likewise.
* runtime/component.h: Likewise.
* runtime/config/generic/cilk-abi-vla.c: Likewise.
* runtime/config/generic/os-fence.h: Likewise.
* runtime/config/generic/os-unix-sysdep.c: Likewise.
* runtime/config/x86/cilk-abi-vla.c: Likewise.
* runtime/config/x86/os-fence.h: Likewise.
* runtime/config/x86/os-unix-sysdep.c: Likewise.
* runtime/doxygen-layout.xml: Likewise.
* runtime/doxygen.cfg: Likewise.
* runtime/except-gcc.cpp: Likewise.
* runtime/except-gcc.h: Likewise.
* runtime/except.h: Likewise.
* runtime/frame_malloc.c: Likewise.
* runtime/frame_malloc.h: Likewise.
* runtime/full_frame.c: Likewise.
* runtime/full_frame.h: Likewise.
* runtime/global_state.cpp: Likewise.
* runtime/global_state.h: Likewise.
* runtime/jmpbuf.c: Likewise.
* runtime/jmpbuf.h: Likewise.
* runtime/linux-symbols.ver: Likewise.
* runtime/local_state.c: Likewise.
* runtime/local_state.h: Likewise.
* runtime/mac-symbols.txt: Likewise.
* runtime/metacall_impl.c: Likewise.
* runtime/metacall_impl.h: Likewise.
* runtime/os-unix.c: Likewise.
* runtime/os.h: Likewise.
* runtime/os_mutex-unix.c: Likewise.
* runtime/os_mutex.h: Likewise.
* runtime/pedigrees.c: Likewise.
* runtime/pedigrees.h: Likewise.
* runtime/record-replay.cpp: Likewise.
* runtime/record-replay.h: Likewise.
* runtime/reducer_impl.cpp: Likewise.
* runtime/reducer_impl.h: Likewise.
* runtime/rts-common.h: Likewise.
* runtime/scheduler.c: Likewise.
* runtime/scheduler.h: Likewise.
* runtime/signal_node.c: Likewise.
* runtime/signal_node.h: Likewise.
* runtime/spin_mutex.c: Likewise.
* runtime/spin_mutex.h: Likewise.
* runtime/stats.c: Likewise.
* runtime/stats.h: Likewise.
* runtime/sysdep-unix.c: Likewise.
* runtime/sysdep.h: Likewise.
* runtime/worker_mutex.c: Likewise.
* runtime/worker_mutex.h: Likewise.
* include/cilk/reducer_vector.h: New.
* runtime/cilk_str_mem.h: New.
* runtime/config/arm/cilk-abi-vla.c: New.
* runtime/config/arm/os-fence.h: New.
* runtime/config/arm/os-unix-sysdep.c: New.
* runtime/declare-alloca.h: New.
* runtime/sslib/ignore_handler_s.c: New.
* runtime/sslib/safe_lib.h: New.
* runtime/sslib/safe_lib_errno.h: New.
* runtime/sslib/safe_str_constraint.c: New.
* runtime/sslib/safe_str_constraint.h: New.
* runtime/sslib/safe_str_lib.h: New.
* runtime/sslib/safe_types.h: New.
* runtime/sslib/safeclib_private.h: New.
* runtime/sslib/snprintf_s.h: New.
* runtime/sslib/snprintf_support.c: New.
* runtime/sslib/strcpy_s.c: New.
* runtime/sslib/strncpy_s.c: New.
* runtime/sslib/strnlen_s.c: New.
* runtime/symbol_test.c: Remove.
* Makefile.in: Regenerate.
* configure: Regenerate.

From-SVN: r235870

8 years agolibstdc++/70940 Start fixing polymorphic memory resources
Jonathan Wakely [Wed, 4 May 2016 12:08:45 +0000 (13:08 +0100)]
libstdc++/70940 Start fixing polymorphic memory resources

PR libstdc++/70940
* include/experimental/memory_resource
(__resource_adaptor_imp::do_allocate): Do not default-construct
rebound allocator.
(__resource_adaptor_imp::do_deallocate): Likewise. Use
allocator_traits to get pointer type.
(__null_memory_resource::do_allocate): Remove unused parameters.
(__null_memory_resource::do_deallocate): Likewise.
(__null_memory_resource::do_is_equal): Likewise. Add return statement.
* testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
* testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
move to ...
* testsuite/experimental/memory_resource/1.cc: Here.
* testsuite/experimental/memory_resource/null_memory_resource.cc: New.
* testsuite/experimental/memory_resource/resource_adaptor.cc: New.

From-SVN: r235868

8 years agopredicates (post_inc_mem, [...]): New predicates.
Oleg Endo [Wed, 4 May 2016 07:14:11 +0000 (07:14 +0000)]
predicates (post_inc_mem, [...]): New predicates.

gcc/
* config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
* config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
result.set_rtx is null instead of aborting.
* config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
Always enable.
(USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
* config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
*mov<mode>_store_postinc): New patterns.

From-SVN: r235859

8 years agoRemove duplicate (A & B) OP (C & B) in match.pd.
Marc Glisse [Wed, 4 May 2016 05:38:18 +0000 (07:38 +0200)]
Remove duplicate (A & B) OP (C & B) in match.pd.

2016-05-04  Marc Glisse  <marc.glisse@inria.fr>

* match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
as commutative.  Check both conversions are NOP.
((A & B) OP (C & B)): Remove.

From-SVN: r235858

8 years agoDaily bump.
GCC Administrator [Wed, 4 May 2016 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r235856

8 years agoCombine simplify_set WORD_REGISTER_OPERATIONS
Alan Modra [Wed, 4 May 2016 00:11:32 +0000 (09:41 +0930)]
Combine simplify_set WORD_REGISTER_OPERATIONS

The comment says this test is supposed to prevent "a narrower
operation than requested", but it actually only allows a larger
subreg not one the same size.  Fix that.

* combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.

From-SVN: r235852

8 years ago[RS6000] powerpc64le -ffixed-cr2 -ffixed-cr3 -ffixed-cr4 ICE
Alan Modra [Tue, 3 May 2016 23:51:34 +0000 (09:21 +0930)]
[RS6000] powerpc64le -ffixed-cr2 -ffixed-cr3 -ffixed-cr4 ICE

gcc/
PR target/70866
* config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
when cr2,3,4 are all fixed regs.
gcc/testsuite/
* gcc.target/powerpc/pr70866.c: New.

From-SVN: r235851

8 years agore PR rtl-optimization/57193 (suboptimal register allocation for SSE registers)
Bernd Schmidt [Tue, 3 May 2016 22:48:03 +0000 (22:48 +0000)]
re PR rtl-optimization/57193 (suboptimal register allocation for SSE registers)

PR rtl-optimization/57193
* opts.c (default_options_table): Revert OPT_frename_registers change.
* doc/invoke.texi (-frename-registers, -O2): Likewise.

From-SVN: r235848