Adhemerval Zanella [Mon, 15 May 2017 07:36:18 +0000 (07:36 +0000)]
lb1spc.S: Emit .note.GNU-stack section for a non-executable stack.
* config/sparc/lb1spc.S [__ELF__ && __linux__]: Emit .note.GNU-stack
section for a non-executable stack.
From-SVN: r248043
GCC Administrator [Mon, 15 May 2017 00:16:33 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r248041
Krister Walfridsson [Sun, 14 May 2017 22:49:03 +0000 (22:49 +0000)]
PR target/80600 - hidden symbol '__cpu_model' is referenced by DSO
gcc/ChangeLog:
PR target/80600
* config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
libgcc/ChangeLog:
PR target/80600
* config.host (*-*-netbsd*): Add t-slibgcc-libgcc to tmake_file.
From-SVN: r248037
Uros Bizjak [Sun, 14 May 2017 18:00:48 +0000 (20:00 +0200)]
i386.i386.c (ix86_cc_modes_compatible): CCNOmode is compatible with CCGOCmode and with CCZmode.
* config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
compatible with CCGOCmode and with CCZmode.
From-SVN: r248036
Martin Sebor [Sun, 14 May 2017 17:50:28 +0000 (17:50 +0000)]
PR middle-end/77671 - missing -Wformat-overflow warning on sprintf overflow with %s
gcc/ChangeLog:
PR middle-end/77671
* gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
(gimple_fold_builtin_snprintf): Same.
* gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
(gimple_fold_builtin_snprintf): Same.
* gimple-ssa-sprintf.c (get_format_string): Correct the detection
of character types.
(is_call_safe): New function.
(try_substitute_return_value): Call it.
(try_simplify_call): New function.
(pass_sprintf_length::handle_gimple_call): Call it.
gcc/testsuite/ChangeLog:
PR middle-end/77671
* gcc.dg/tree-ssa/builtin-sprintf-7.c: New test.
* gcc.dg/tree-ssa/builtin-sprintf-8.c: New test.
* gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Adjust.
* gcc.dg/tree-ssa/builtin-sprintf-warn-2.c: Adjust.
* gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Adjust.
From-SVN: r248035
Martin Sebor [Sun, 14 May 2017 16:06:41 +0000 (16:06 +0000)]
PR middle-end/80669 - Bad -Wstringop-overflow warnings for stpncpy
gcc/ChangeLog:
PR middle-end/80669
* builtins.c (expand_builtin_stpncpy): Simplify.
gcc/testsuite/ChangeLog:
PR middle-end/80669
* gcc.dg/builtin-stpncpy.c: New test.
From-SVN: r248034
Daniel Santos [Sun, 14 May 2017 10:22:08 +0000 (12:22 +0200)]
i386.opt: Add option -mcall-ms2sysv-xlogues.
gcc/ChangeLog:
* config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
* config/i386/i386.h
(x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
(NUM_X86_64_MS_CLOBBERED_REGS): New macro.
(struct machine_function): Add new members call_ms2sysv,
call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
(struct machine_frame_state): New fields sp_realigned and
sp_realigned_offset.
* config/i386/i386.c
(enum xlogue_stub): New enum.
(enum xlogue_stub_sets): New enum.
(class xlogue_layout): New class.
(struct ix86_frame): New fields stack_realign_allocate_offset,
stack_realign_offset and outlined_save_offset. Modify comments to
detail stack layout when using out-of-line stubs.
(ix86_target_string): Add -mcall-ms2sysv-xlogues option.
(ix86_option_override_internal): Add sorry() for TARGET_SEH and
-mcall-ms2sysv-xlogues.
(stub_managed_regs): New static variable.
(ix86_save_reg): Add new parameter ignore_outlined to optionally omit
registers managed by out-of-line stub.
(disable_call_ms2sysv_xlogues): New function.
(ix86_compute_frame_layout): Modify re-alignment calculations, disable
m->call_ms2sysv when appropriate and compute frame layout for
out-of-line stubs.
(sp_valid_at, fp_valid_at): New inline functions.
(choose_basereg): New function.
(choose_baseaddr): Add align parameter, use choose_basereg and modify
all callers.
(ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
Use align parameter of choose_baseaddr to generated aligned SSE movs
when possible.
(pro_epilogue_adjust_stack): Modify to track
machine_frame_state::sp_realigned.
(ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
(ix86_nsaved_sseregs): Likewise.
(ix86_emit_save_regs): Likewise.
(ix86_emit_save_regs_using_mov): Likewise.
(ix86_emit_save_sse_regs_using_mov): Likewise.
(get_scratch_register_on_entry): Likewise.
(gen_frame_set): New function.
(gen_frame_load): Likewise.
(gen_frame_store): Likewise.
(emit_outlined_ms2sysv_save): Likewise.
(emit_outlined_ms2sysv_restore): Likewise.
(ix86_expand_prologue): Modify stack re-alignment code and call
emit_outlined_ms2sysv_save when appropriate.
(ix86_emit_leave): Clear machine_frame_state::sp_realigned. Add
parameter rtx_insn *insn, which allows the function to be used to only
generate the notes.
(ix86_expand_epilogue): Modify validity checks of frame and stack
pointers, and call emit_outlined_ms2sysv_restore when appropriate.
(ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
* config/i386/predicates.md
(save_multiple): New predicate.
(restore_multiple): Likewise.
* config/i386/sse.md
(save_multiple<mode>): New pattern.
(save_multiple_realign<mode>): Likewise.
(restore_multiple<mode>): Likewise.
(restore_multiple_and_return<mode>): Likewise.
(restore_multiple_leave_return<mode>): Likewise.
* Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
gcc/testsuite/ChangeLog:
* gcc.target/x86_64/abi/ms-sysv/do-test.S: New file.
* gcc.target/x86_64/abi/ms-sysv/gen.cc: Likewise.
* gcc.target/x86_64/abi/ms-sysv/ms-sysv.c: Likewise.
* gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp: Likewise.
libgcc/ChangeLog:
* config.host: Add i386/t-msabi to i386/t-linux file list.
* config/i386/i386-asm.h: New file.
* config/i386/resms64.S: New file.
* config/i386/resms64f.S: New file.
* config/i386/resms64fx.S: New file.
* config/i386/resms64x.S: New file.
* config/i386/savms64.S: New file.
* config/i386/savms64f.S: New file.
* config/i386/t-msabi: New file.
From-SVN: r248029
Julia Koval [Sun, 14 May 2017 07:18:38 +0000 (09:18 +0200)]
i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
* config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
* config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
(__builtin_ia32_xsetbv): New builtins.
* config/i386/i386.c (ix86_expand_special_args_builtin):
Process new types.
(ix86_expand_builtin): Special expand for new intrinsics.
* config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
(xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
* config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
testsuite/ChangeLog:
* gcc.target/i386/xgetsetbv.c: New test.
From-SVN: r248028
Trevor Saunders [Sun, 14 May 2017 00:39:23 +0000 (00:39 +0000)]
make inverted_post_order_compute() operate on a vec
gcc/ChangeLog:
2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* cfganal.c (inverted_post_order_compute): Change argument type
to vec *.
* cfganal.h (inverted_post_order_compute): Adjust prototype.
* df-core.c (rest_of_handle_df_initialize): Adjust.
(rest_of_handle_df_finish): Likewise.
(df_analyze_1): Likewise.
(df_analyze): Likewise.
(loop_inverted_post_order_compute): Change argument to be a vec *.
(df_analyze_loop): Adjust.
(df_get_n_blocks): Likewise.
(df_get_postorder): Likewise.
* df.h (struct df_d): Change field to be a vec.
* lcm.c (compute_laterin): Adjust.
(compute_available): Likewise.
* lra-lives.c (lra_create_live_ranges_1): Likewise.
* tree-ssa-dce.c (remove_dead_stmt): Likewise.
* tree-ssa-pre.c (compute_antic): Likewise.
From-SVN: r248027
Trevor Saunders [Sun, 14 May 2017 00:39:13 +0000 (00:39 +0000)]
make depth_first_search_ds a class
gcc/ChangeLog:
2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* cfganal.c (connect_infinite_loops_to_exit): Adjust.
(depth_first_search::depth_first_search): Change structure init
function to this constructor.
(depth_first_search::add_bb): Rename function to this member.
(depth_first_search::execute): Likewise.
(flow_dfs_compute_reverse_finish): Adjust.
From-SVN: r248026
Trevor Saunders [Sun, 14 May 2017 00:39:08 +0000 (00:39 +0000)]
make more vars auto_sbitmaps
gcc/ChangeLog:
2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* ddg.c (find_nodes_on_paths): Use auto_sbitmap.
(longest_simple_path): Likewise.
* shrink-wrap.c (spread_components): Likewise.
(disqualify_problematic_components): Likewise.
(emit_common_heads_for_components): Likewise.
(emit_common_tails_for_components): Likewise.
(insert_prologue_epilogue_for_components): Likewise.
From-SVN: r248025
Trevor Saunders [Sun, 14 May 2017 00:39:04 +0000 (00:39 +0000)]
make a member an auto_sbitmap
gcc/ChangeLog:
2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
auto_sbitmap.
From-SVN: r248024
Trevor Saunders [Sun, 14 May 2017 00:38:59 +0000 (00:38 +0000)]
use auto_bitmap more with alternate obstacks
gcc/ChangeLog:
2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* df-core.c (df_set_blocks): Start using auto_bitmap.
(df_compact_blocks): Likewise.
* df-problems.c (df_rd_confluence_n): Likewise.
* df-scan.c (df_insn_rescan_all): Likewise.
(df_process_deferred_rescans): Likewise.
(df_update_entry_block_defs): Likewise.
(df_update_exit_block_uses): Likewise.
(df_entry_block_bitmap_verify): Likewise.
(df_exit_block_bitmap_verify): Likewise.
(df_scan_verify): Likewise.
* lra-constraints.c (lra_constraints): Likewise.
(undo_optional_reloads): Likewise.
(lra_undo_inheritance): Likewise.
* lra-remat.c (calculate_gen_cands): Likewise.
(do_remat): Likewise.
* lra-spills.c (assign_spill_hard_regs): Likewise.
(spill_pseudos): Likewise.
* tree-ssa-pre.c (bitmap_set_and): Likewise.
(bitmap_set_subtract_values): Likewise.
From-SVN: r248023
Trevor Saunders [Sun, 14 May 2017 00:38:53 +0000 (00:38 +0000)]
move several bitmaps from gc memory to the default obstack and use auto_bitmap
These places where probably trying to use the default bitmap obstack,
but passing 0 to bitmap_initialize actually uses gc allocation. In any
case they are all cleaned up before going out of scope so using
auto_bitmap should be fine.
gcc/ChangeLog:
2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
management with auto_bitmap.
(fix_inter_tick): Likewise.
(fix_recovery_deps): Likewise.
* ira.c (add_store_equivs): Likewise.
(find_moveable_pseudos): Likewise.
(split_live_ranges_for_shrink_wrap): Likewise.
* print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
(rtx_reuse_manager::seen_def_p): Likewise.
(rtx_reuse_manager::set_seen_def): Likewise.
* print-rtl.h (class rtx_reuse_manager): Likewise.
From-SVN: r248022
Trevor Saunders [Sun, 14 May 2017 00:38:48 +0000 (00:38 +0000)]
use auto_bitmap more
gcc/ChangeLog:
2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
lifetime.
(migrate_btr_def): Likewise.
* cfgloop.c (get_loop_body_in_bfs_order): Likewise.
* df-core.c (loop_post_order_compute): Likewise.
(loop_inverted_post_order_compute): Likewise.
* hsa-common.h: Likewise.
* hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
* init-regs.c (initialize_uninitialized_regs): Likewise.
* ipa-inline.c (resolve_noninline_speculation): Likewise.
(inline_small_functions): Likewise.
* ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
* ira.c (combine_and_move_insns): Likewise.
(build_insn_chain): Likewise.
* loop-invariant.c (find_invariants): Likewise.
* lower-subreg.c (propagate_pseudo_copies): Likewise.
* predict.c (tree_predict_by_opcode): Likewise.
(predict_paths_leading_to): Likewise.
(predict_paths_leading_to_edge): Likewise.
(estimate_loops_at_level): Likewise.
(estimate_loops): Likewise.
* shrink-wrap.c (try_shrink_wrapping): Likewise.
(spread_components): Likewise.
* tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
* tree-loop-distribution.c (rdg_build_partitions): Likewise.
* tree-predcom.c (tree_predictive_commoning_loop): Likewise.
* tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
* tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
* tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
* tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
* tree-ssa-threadupdate.c (compute_path_counts): Likewise.
(mark_threaded_blocks): Likewise.
(thread_through_all_blocks): Likewise.
* tree-ssa.c (verify_ssa): Likewise.
(execute_update_addresses_taken): Likewise.
* tree-ssanames.c (verify_ssaname_freelists): Likewise.
From-SVN: r248021
Trevor Saunders [Sun, 14 May 2017 00:38:40 +0000 (00:38 +0000)]
replace some manual stacks with auto_vec
gcc/ChangeLog:
2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* cfganal.c (mark_dfs_back_edges): Replace manual stack with
auto_vec.
(post_order_compute): Likewise.
(inverted_post_order_compute): Likewise.
(pre_and_rev_post_order_compute_fn): Likewise.
From-SVN: r248020
Trevor Saunders [Sun, 14 May 2017 00:38:35 +0000 (00:38 +0000)]
allow constructing a auto_vec with a preallocation, and a possibly larger actual allocation size
This allows us to set the capacity of the vector when we construct it,
and still use a stack buffer when the size is small enough.
gcc/ChangeLog:
2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* genrecog.c (int_set::int_set): Explicitly construct our
auto_vec base class.
* vec.h (auto_vec::auto_vec): New constructor.
From-SVN: r248019
Trevor Saunders [Sun, 14 May 2017 00:38:29 +0000 (00:38 +0000)]
allow auto_bitmap to use other bitmap obstacks
gcc/ChangeLog:
2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* bitmap.h (class auto_bitmap): New constructor taking
bitmap_obstack * argument.
From-SVN: r248018
Trevor Saunders [Sun, 14 May 2017 00:38:24 +0000 (00:38 +0000)]
store the bitmap_head within the auto_bitmap
This gets rid of one allocation per bitmap. Often the bitmap_head is
now on the stack, when it isn't its part of some other struct on the
heap instead of being refered to by that struct. On 64 bit platforms
this will increase the size of such structs by 24 bytes, but its an over
all win since we don't need an 8 byte pointer pointing at the
bitmap_head. Given that the auto_bitmap owns the bitmap_head anyway we
know there would never be a place where two auto_bitmaps would refer to
the same bitmap_head object.
gcc/ChangeLog:
2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* bitmap.h (class auto_bitmap): Change type of m_bits to
bitmap_head, and adjust ctor / dtor and member operators.
From-SVN: r248017
GCC Administrator [Sun, 14 May 2017 00:16:26 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r248016
Nicolas Koenig [Sat, 13 May 2017 23:38:36 +0000 (01:38 +0200)]
re PR fortran/80442 (Rejects DATA statement with array slice)
2017-05-09 Nicolas Koenig <koenigni@student.ethz.ch>
PR fortran/80442
* array.c (gfc_ref_dimen_size): Simplify stride
expression
* data.c (gfc_advance_section): Simplify start,
end and stride expressions
(gfc_advance_section): Simplify start and end
expressions
(gfc_get_section_index): Simplify start expression
2017-05-09 Nicolas Koenig <koenigni@student.ethz.ch>
PR fortran/80442
* gfortran.dg/impl_do_var_data.f90: New Test
From-SVN: r248012
Uros Bizjak [Sat, 13 May 2017 21:07:49 +0000 (23:07 +0200)]
compare-elim.c (equivalent_reg_at_start): Return NULL_RTX when returned register mode doesn't match original mode.
* compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
when returned register mode doesn't match original mode.
From-SVN: r248009
Jerry DeLisle [Sat, 13 May 2017 15:33:34 +0000 (15:33 +0000)]
io.c (gfc_resolve_dt): Fix returns to bool type.
2017-05-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
* io.c (gfc_resolve_dt): Fix returns to bool type.
From-SVN: r248008
Jeff Law [Sat, 13 May 2017 14:40:53 +0000 (08:40 -0600)]
mn10300.c (mn10300_match_ccmode): Fix where we look for cc setter after the compare-elim changes.
2017-05-12 Jeff Law <law@redhat.com>
Jakub Jelinek <jakub@redhat.com>
* config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
we look for cc setter after the compare-elim changes.
* config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
within the vector to match what compare-elim now expects.
(subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
(xorsi3_flags, one_cmplsi2_flags): Likewise.
* config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
after the compare-elim changes.
* config/rx/rx.md (abssi2_flags): Fix order of patterns within
the vector to match what compare-elim now expects.
(addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
(andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
(iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
(ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
(ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
* config/visium/visium.c (single_set_and_flags): Fix where
we look for cc setter after the compare-elim changes.
* config/visium/visium.md (flags_subst_logic): Fix order of patterns
with the vector to match what compare-elim now expects.
(flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
(add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
(addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
(sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
(subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
(neg<mode>2_insn_set_overflow): Likewise.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r248007
Pekka Jääskeläinen [Sat, 13 May 2017 11:57:16 +0000 (11:57 +0000)]
BRIG FE: Fix an assertion when doing an 'lda' of
a private array offset.
From-SVN: r248006
Jim Wilson [Sat, 13 May 2017 01:32:40 +0000 (01:32 +0000)]
Patch for RTL expand bug affecting aarch64 vector code.
gcc/
PR middle-end/79794
* expmed.c (extract_bit_field_1): Add alt_rtl argument. Before
maybe_expand_insn call, set ops[0].target. If still set after call,
set alt_rtl. Add extra arg to recursive calls.
(extract_bit_field): Add alt_rtl argument. Pass to
extract_bit_field.
* expmed.h (extract_bit_field): Fix prototype.
* expr.c (emit_group_load_1, copy_blkmode_from_reg)
(copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
to extract_bit_field_calls.
(expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
Pass alt_rtl to extract_bit_field calls.
* calls.c (store_unaligned_arguments_into_psuedos)
load_register_parameters): Pass extra NULL to extract_bit_field calls.
* optabs.c (maybe_legitimize_operand): Clear op->target when call
gen_reg_rtx.
* optabs.h (struct expand_operand): Add target bitfield.
From-SVN: r248004
GCC Administrator [Sat, 13 May 2017 00:16:33 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r248003
François Dumont [Fri, 12 May 2017 21:19:39 +0000 (21:19 +0000)]
Revert revision 247926.
From-SVN: r247998
Joseph Myers [Fri, 12 May 2017 20:29:43 +0000 (21:29 +0100)]
* sv.po: Update.
From-SVN: r247996
Martin Sebor [Fri, 12 May 2017 19:23:00 +0000 (19:23 +0000)]
re PR testsuite/80643 (NA->FAIL: gcc.dg/pr79214.c gcc.dg/pr79222.c gcc.dg/pr79223.c gcc.dg/tree-ssa/builtins-folding-gimple-ub.c)
gcc/testsuite/ChangeLog:
PR testsuite/80643
* gfortran.dg/mvbits_7.f90: Prune diagnostic output incidental
to the purpose of the test.
From-SVN: r247993
Uros Bizjak [Fri, 12 May 2017 19:04:05 +0000 (21:04 +0200)]
compare-elim.c (try_eliminate_compare): Canonicalize operation with embedded compare to [(set (reg:CCM) (compare:CCM...
* compare-elim.c (try_eliminate_compare): Canonicalize
operation with embedded compare to
[(set (reg:CCM) (compare:CCM (operation) (immediate)))
(set (reg) (operation)].
* config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
From-SVN: r247992
Uros Bizjak [Fri, 12 May 2017 18:52:51 +0000 (20:52 +0200)]
re PR target/80723 (FAIL gcc.target/i386/cadd.c scan assembler sbb)
PR target/80723
* config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
cost of adding a carry flag for ADC instruction.
[case MINUS]: Ignore the cost of subtracting a carry flag
for SBB instruction.
From-SVN: r247991
Steven Munroe [Fri, 12 May 2017 18:34:44 +0000 (18:34 +0000)]
config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h, and x86intrin.h
[gcc]
2017-05-12 Steven Munroe <munroesj@gcc.gnu.org>
* config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
and x86intrin.h
* config/rs6000/bmiintrin.h: New file.
* config/rs6000/bmi2intrin.h: New file.
* config/rs6000/x86intrin.h: New file.
[gcc/testsuite]
2017-05-12 Steven Munroe <munroesj@gcc.gnu.org>
* gcc.target/powerpc/bmi-andn-1.c: New file
* gcc.target/powerpc/bmi-andn-2.c: New file.
* gcc.target/powerpc/bmi-bextr-1.c: New file.
* gcc.target/powerpc/bmi-bextr-2.c: New file.
* gcc.target/powerpc/bmi-bextr-4.c: New file.
* gcc.target/powerpc/bmi-bextr-5.c: New file.
* gcc.target/powerpc/bmi-blsi-1.c: New file.
* gcc.target/powerpc/bmi-blsi-2.c: New file.
* gcc.target/powerpc/bmi-blsmsk-1.c: new file.
* gcc.target/powerpc/bmi-blsmsk-2.c: New file.
* gcc.target/powerpc/bmi-blsr-1.c: New file.
* gcc.target/powerpc/bmi-blsr-2.c: New File.
* gcc.target/powerpc/bmi-check.h: New File.
* gcc.target/powerpc/bmi-tzcnt-1.c: new file.
* gcc.target/powerpc/bmi-tzcnt-2.c: New file.
* gcc.target/powerpc/bmi2-bzhi32-1.c: New file.
* gcc.target/powerpc/bmi2-bzhi64-1.c: New file.
* gcc.target/powerpc/bmi2-bzhi64-1a.c: New file.
* gcc.target/powerpc/bmi2-check.h: New file.
* gcc.target/powerpc/bmi2-mulx32-1.c: New file.
* gcc.target/powerpc/bmi2-mulx32-2.c: New file.
* gcc.target/powerpc/bmi2-mulx64-1.c: New file.
* gcc.target/powerpc/bmi2-mulx64-2.c: New file.
* gcc.target/powerpc/bmi2-pdep32-1.c: New file.
* gcc.target/powerpc/bmi2-pdep64-1.c: New file.
* gcc.target/powerpc/bmi2-pext32-1.c: New File.
* gcc.target/powerpc/bmi2-pext64-1.c: New file.
* gcc.target/powerpc/bmi2-pext64-1a.c: New File.
From-SVN: r247988
Paolo Carlini [Fri, 12 May 2017 17:53:54 +0000 (17:53 +0000)]
re PR c++/60430 (static_assert and reference to const/constexpr)
2017-05-12 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/60430
* g++.dg/cpp0x/pr60430.C: New.
From-SVN: r247986
Jeff Law [Fri, 12 May 2017 17:36:01 +0000 (11:36 -0600)]
tree-vrp.c (vrp_dom_walker::before_dom_childern): Push unwinding markers.
* tree-vrp.c (vrp_dom_walker::before_dom_childern): Push unwinding
markers.
* g++.dg/tree-ssa/ssa-dom-thread-4.c: Update expected output.
From-SVN: r247985
Peter Bergner [Fri, 12 May 2017 17:13:07 +0000 (12:13 -0500)]
re PR middle-end/80707 (r247844 causes error: extra outgoing edge)
gcc/
PR middle-end/80707
* tree-cfg.c: Remove cfg edges of unreachable case statements.
gcc/testsuite/
PR middle-end/80707
* g++.dg/pr80707.C: New test.
From-SVN: r247984
Than McIntosh [Fri, 12 May 2017 16:36:50 +0000 (16:36 +0000)]
compiler: add calling Bfunction Backend::call_expression
Pass in the calling (containing) Bfunction when invoking the Backend
method call_expression(), so as to handle the case where generation of
the call forces the creation of a temp var within the calling
function.
Reviewed-on: https://go-review.googlesource.com/43270
From-SVN: r247981
Eric Botcazou [Fri, 12 May 2017 15:55:46 +0000 (15:55 +0000)]
re PR ada/80117 (Standard'Word_Size is wrong for aarch64 ILP32)
* system-linux-arm.ads (Memory_Size): Use Long_Integer'Size
instead of Word_Size.
Revert
2017-03-28 Andreas Schwab <schwab@suse.de>
PR ada/80117
* system-linux-aarch64-ilp32.ads: New file.
* gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS_COMMON): Rename
from LIBGNAT_TARGET_PAIRS.
(LIBGNAT_TARGET_PAIRS_32, LIBGNAT_TARGET_PAIRS_64): Define.
(LIBGNAT_TARGET_PAIRS): Use LIBGNAT_TARGET_PAIRS_COMMON, and
LIBGNAT_TARGET_PAIRS_64 or LIBGNAT_TARGET_PAIRS_32 for -mabi=lp64
or -mabi=ilp32, resp.
From-SVN: r247979
Will Schmidt [Fri, 12 May 2017 15:40:04 +0000 (15:40 +0000)]
rs6000.c (rs6000_gimple_fold_builtin): Add handling for early expansion of vector divide builtins.
[gcc]
2017-05-10 Will Schmidt <will_schmidt@vnet.ibm.com>
* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
early expansion of vector divide builtins.
(builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
builtins identified as having unsigned arguments.
[gcc/testsuite]
2017-05-10 Will Schmidt <will_schmidt@vnet.ibm.com>
* gcc.target/powerpc/fold-vec-div-float.c: New.
* gcc.target/powerpc/fold-vec-div-floatdouble.c: New.
* gcc.target/powerpc/fold-vec-div-longlong.c: New.
From-SVN: r247977
Will Schmidt [Fri, 12 May 2017 15:35:17 +0000 (15:35 +0000)]
rs6000.c (gimple-fold.h): New #include.
[gcc]
2017-05-10 Will Schmidt <will_schmidt@vnet.ibm.com>
* config/rs6000/rs6000.c (gimple-fold.h): New #include.
(rs6000_gimple_fold_builtin): Add handling for early GIMPLE
expansion of vector logical operations (and, andc, or, xor,
nor, orc, nand)
[gcc/testsuite]
2017-05-10 Will Schmidt <will_schmidt@vnet.ibm.com>
* gcc.target/powerpc/fold-vec-logical-ands-char.c: New.
* gcc.target/powerpc/fold-vec-logical-ands-int.c: New.
* gcc.target/powerpc/fold-vec-logical-ands-longlong.c: New.
* gcc.target/powerpc/fold-vec-logical-ands-short.c: New.
* gcc.target/powerpc/fold-vec-logical-ors-char.c: New.
* gcc.target/powerpc/fold-vec-logical-ors-int.c: New.
* gcc.target/powerpc/fold-vec-logical-ors-longlong.c: New.
* gcc.target/powerpc/fold-vec-logical-ors-short.c: New.
* gcc.target/powerpc/fold-vec-logical-other-char.c: New.
* gcc.target/powerpc/fold-vec-logical-other-int.c: New.
* gcc.target/powerpc/fold-vec-logical-other-longlong.c: New.
* gcc.target/powerpc/fold-vec-logical-other-short.c: New.
From-SVN: r247976
Will Schmidt [Fri, 12 May 2017 15:22:58 +0000 (15:22 +0000)]
gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
[gcc]
* gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
* gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
From-SVN: r247975
Will Schmidt [Fri, 12 May 2017 15:17:27 +0000 (15:17 +0000)]
rs6000.c (rs6000_gimple_fold_builtin): Add handling for early GIMPLE expansion of vector multiplies.
[gcc]
2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
early GIMPLE expansion of vector multiplies.
From-SVN: r247974
Jonathan Wakely [Fri, 12 May 2017 14:43:11 +0000 (15:43 +0100)]
PR libstdc++/78939 make tuple_size<cv T> depend on tuple_size<T>
PR libstdc++/78939
* include/std/utility (tuple_size<cv T>): Only define partial
specializations when tuple_size<T>::value is valid.
* testsuite/20_util/tuple/78939.cc: New.
* testsuite/20_util/tuple/cv_tuple_size_neg.cc: New.
From-SVN: r247973
Uros Bizjak [Fri, 12 May 2017 14:35:13 +0000 (16:35 +0200)]
* gcc.target/i386/pr22152.c: Remove unneeded dg-additional-options.
From-SVN: r247972
Prakhar Bahuguna [Fri, 12 May 2017 14:16:52 +0000 (14:16 +0000)]
[ARM] Add missing TARGET_32BIT conditional to movsi
2017-05-12 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
gcc/
* config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
TARGET_HAVE_MOVT conditional.
(movt splitter): Likewise.
From-SVN: r247971
Paolo Carlini [Fri, 12 May 2017 13:20:21 +0000 (13:20 +0000)]
re PR c++/49604 (forward-declared enum's elements in class scope gets default access (class vs struct))
2017-05-12 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/49604
* g++.dg/cpp0x/forw_enum14.C: New.
* g++.dg/cpp0x/forw_enum15.C: Likewise.
From-SVN: r247969
Ian Lance Taylor [Fri, 12 May 2017 12:49:34 +0000 (12:49 +0000)]
runtime: fix build for non-split-stack systems
Change memory allocation accounting for stacks to use stacks_sys,
since that seems to be what it is for.
Reviewed-on: https://go-review.googlesource.com/43297
From-SVN: r247967
Richard Biener [Fri, 12 May 2017 12:04:31 +0000 (12:04 +0000)]
tree-ssa-sccvn.h (has_VN_INFO): Declare.
2017-05-12 Richard Biener <rguenther@suse.de>
* tree-ssa-sccvn.h (has_VN_INFO): Declare.
* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
Fold all stmts not inplace.
* g++.dg/tree-ssa/ssa-dse-2.C: Adjust.
From-SVN: r247966
Paolo Carlini [Fri, 12 May 2017 11:24:56 +0000 (11:24 +0000)]
re PR c++/67687 (ICE initializing constexpr member with constexpr constructor)
2017-05-12 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/67687
* g++.dg/cpp0x/constexpr-ice17.C: New.
From-SVN: r247964
Richard Biener [Fri, 12 May 2017 10:54:29 +0000 (10:54 +0000)]
re PR tree-optimization/80713 (recent crash in update_dep_bb)
2017-05-12 Richard Biener <rguenther@suse.de>
PR tree-optimization/80713
* tree-ssa-pre.c (remove_dead_inserted_code): Clear
inserted_exprs bit for not removed stmts.
* gcc.dg/torture/pr80713.c: New testcase.
From-SVN: r247963
Andi Kleen [Fri, 12 May 2017 10:09:50 +0000 (10:09 +0000)]
Limit perf data buffer during profiling
With high -j parallelism the autofdo tests can randomly fail.
autofdo uses Linux perf to record profiling data.
Linux perf uses a locked perf buffer. By default it has
around 516k buffer per uid (/proc/sys/kernel/perf_event_mlock_kb).
An individual perf record tries to grab the full 516k,
which makes parallel perf record fail.
This patch limits the perf buffer for individual perf record to 8k.
With the default settings this allows a parallelism of the test
cases of 16, which is hopefully good enough
(if not would need to add some kind of semaphore, or ask
the user to increase the limit as root)
I also removed an unneeded -o perf.data option
Thanks to Marcin to finally spotting the problem.
Passes bootstrap and test on x86_64-linux. Ok for trunk?
gcc/testsuite/:
2017-05-12 Andi Kleen <ak@linux.intel.com>
PR testsuite/77684
* lib/target-supports.exp (profopt-perf-wrapper):
Add -m8 option to increase parallelism.
From-SVN: r247962
Thomas Schwinge [Fri, 12 May 2017 09:33:18 +0000 (11:33 +0200)]
OpenACC C front end maintenance: c_parser_oacc_single_int_clause
gcc/c/
* c-parser.c (c_parser_omp_clause_num_gangs)
(c_parser_omp_clause_num_workers)
(c_parser_omp_clause_vector_length): Merge functions into...
(c_parser_oacc_single_int_clause): ... this new function. Adjust
all users.
gcc/testsuite/
* c-c++-common/goacc/parallel-dims-1.c: New file.
* c-c++-common/goacc/parallel-dims-2.c: Likewise.
From-SVN: r247960
Rainer Orth [Fri, 12 May 2017 09:20:37 +0000 (09:20 +0000)]
Load new scanlang.exp
libitm:
* testsuite/lib/libitm.exp: Load scanlang.exp.
libgomp:
* testsuite/lib/libgomp.exp: Load scanlang.exp.
libatomic:
* testsuite/lib/libatomic.exp: Load scanlang.exp.
From-SVN: r247959
Thomas Schwinge [Fri, 12 May 2017 09:18:34 +0000 (11:18 +0200)]
[PR middle-end/69921] Use "oacc kernels parallelized" attribute for parallelized OpenACC kernels
gcc/
PR middle-end/69921
* tree-parloops.c (create_parallel_loop): Set "oacc kernels
parallelized" attribute for parallelized OpenACC kernels.
* omp-offload.c (execute_oacc_device_lower): Use it.
gcc/testsuite/
* c-c++-common/goacc/classify-kernels-unparallelized.c: Adjust.
* c-c++-common/goacc/classify-kernels.c: Likewise.
* c-c++-common/goacc/kernels-counter-vars-function-scope.c:
Likewise.
* c-c++-common/goacc/kernels-double-reduction-n.c: Likewise.
* c-c++-common/goacc/kernels-double-reduction.c: Likewise.
* c-c++-common/goacc/kernels-loop-2.c: Likewise.
* c-c++-common/goacc/kernels-loop-3.c: Likewise.
* c-c++-common/goacc/kernels-loop-g.c: Likewise.
* c-c++-common/goacc/kernels-loop-mod-not-zero.c: Likewise.
* c-c++-common/goacc/kernels-loop-n.c: Likewise.
* c-c++-common/goacc/kernels-loop-nest.c: Likewise.
* c-c++-common/goacc/kernels-loop.c: Likewise.
* c-c++-common/goacc/kernels-one-counter-var.c: Likewise.
* c-c++-common/goacc/kernels-reduction.c: Likewise.
* gfortran.dg/goacc/classify-kernels-unparallelized.f95: Likewise.
* gfortran.dg/goacc/classify-kernels.f95: Likewise.
* gfortran.dg/goacc/kernels-loop-2.f95: Likewise.
* gfortran.dg/goacc/kernels-loop-data-2.f95: Likewise.
* gfortran.dg/goacc/kernels-loop-data-enter-exit-2.f95: Likewise.
* gfortran.dg/goacc/kernels-loop-data-enter-exit.f95: Likewise.
* gfortran.dg/goacc/kernels-loop-data-update.f95: Likewise.
* gfortran.dg/goacc/kernels-loop-data.f95: Likewise.
* gfortran.dg/goacc/kernels-loop-n.f95: Likewise.
* gfortran.dg/goacc/kernels-loop.f95: Likewise.
From-SVN: r247957
Thomas Schwinge [Fri, 12 May 2017 09:02:55 +0000 (11:02 +0200)]
Use "oacc kernels" attribute for OpenACC kernels
gcc/
* omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
Set "oacc kernels" attribute.
* omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
parameter. Adjust all users.
(oacc_fn_attrib_kernels_p): Remove function.
* omp-offload.c (execute_oacc_device_lower): Look for "oacc
kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
* tree-ssa-loop.c (gate_oacc_kernels): Likewise.
* tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
assert "oacc kernels" attribute is set.
gcc/testsuite/
* c-c++-common/goacc/classify-kernels-unparallelized.c: Adjust.
* c-c++-common/goacc/classify-kernels.c: Likewise.
* c-c++-common/goacc/classify-parallel.c: Likewise.
* c-c++-common/goacc/classify-routine.c: Likewise.
* gfortran.dg/goacc/classify-kernels-unparallelized.f95: Likewise.
* gfortran.dg/goacc/classify-kernels.f95: Likewise.
* gfortran.dg/goacc/classify-parallel.f95: Likewise.
* gfortran.dg/goacc/classify-routine.f95: Likewise.
From-SVN: r247955
Thomas Schwinge [Fri, 12 May 2017 08:42:31 +0000 (10:42 +0200)]
Test cases to check OpenACC offloaded function's attributes and classification
gcc/testsuite/
* c-c++-common/goacc/classify-kernels-unparallelized.c: New file.
* c-c++-common/goacc/classify-kernels.c: Likewise.
* c-c++-common/goacc/classify-parallel.c: Likewise.
* c-c++-common/goacc/classify-routine.c: Likewise.
* gfortran.dg/goacc/classify-kernels-unparallelized.f95: Likewise.
* gfortran.dg/goacc/classify-kernels.f95: Likewise.
* gfortran.dg/goacc/classify-parallel.f95: Likewise.
* gfortran.dg/goacc/classify-routine.f95: Likewise.
From-SVN: r247953
Thomas Schwinge [Fri, 12 May 2017 07:56:41 +0000 (09:56 +0200)]
Typo fixes for "Don't assume __secure_getenv is available"
libgfortran/
* runtime/environ.c (weak_secure_getenv): Fix "__secure_gettime"
vs. "__secure_getenv" typo.
(secure_getenv): Fix "HAVE__SECURE_GETENV"
vs. "HAVE___SECURE_GETENV" typo.
From-SVN: r247952
Ian Lance Taylor [Fri, 12 May 2017 01:09:42 +0000 (01:09 +0000)]
mksigtab.sh: recurse once when adding signals to SIGLIST
On MIPS, SIGABRT is defined like this:
#define SIGIOT 6
#define SIGABRT SIGIOT
This breaks addsig which tries to append __SIGIOT_ to SIGLIST. Signal
number 6 is later added to the output and go complains about a
duplicate signal number.
Fix by recursing once when obtaining the signal number from
gen-sysinfo.go if the signal is defined as an alias of another signal.
Also modify the sed expression to 's/.* = //' which is equivalent to
the original expression but is less misleading given that it might not
match a number.
Reviewed-on: https://go-review.googlesource.com/43252
From-SVN: r247948
Ian Lance Taylor [Fri, 12 May 2017 00:59:15 +0000 (00:59 +0000)]
os: use opendir64 and closedir64 on AIX
When using readdir64 on AIX, we must also use
opendir64 and closedir64.
Issue golang/go#19200
Reviewed-on: https://go-review.googlesource.com/43251
From-SVN: r247947
Nathan Sidwell [Fri, 12 May 2017 00:28:44 +0000 (00:28 +0000)]
* lib/gcc-dg.exp (schedule-cleanups): Add lang dump capability.
From-SVN: r247946
GCC Administrator [Fri, 12 May 2017 00:16:29 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r247945
Ian Lance Taylor [Thu, 11 May 2017 23:52:54 +0000 (23:52 +0000)]
re PR go/64238 (ICE in get_partitioning_class, at symtab.c:1775)
PR go/64238
* go-gcc.cc (Gcc_backend::implicit_variable_reference): Set
DECL_EXTERNAL, clear TREE_STATIC.
From-SVN: r247937
Carl Love [Thu, 11 May 2017 22:10:10 +0000 (22:10 +0000)]
rs6000-c: Add support for built-in functions vector unsigned char vec_popcnt (vector...
gcc/ChangeLog:
2017-05-11 Carl Love <cel@us.ibm.com>
* config/rs6000/rs6000-c: Add support for built-in functions
vector unsigned char vec_popcnt (vector signed char)
vector unsigned char vec_popcnt (vector unsigned char)
vector unsigned short vec_popcnt (vector signed short)
vector unsigned short vec_popcnt (vector unsigned short)
vector unsigned int vec_popcnt (vector signed int)
vector unsigned int vec_popcnt (vector unsigned int)
vector unsigned long long vec_popcnt (vector signed long long)
vector unsigned long long vec_popcnt (vector unsigned long long)
vector signed long long vec_slo (vector signed long long,
vector signed char)
vector signed long long vec_slo (vector signed long long,
vector unsigned char)
vector unsigned long long vec_slo (vector unsigned long long,
vector signed char)
vector unsigned long long vec_slo (vector unsigned long long,
vector unsigned char)
* config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
* config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
* doc/extend.texi: Update the built-in documentation file for the
new built-in functions.
gcc/testsuite/ChangeLog:
2017-05-11 Carl Love <cel@us.ibm.com>
* gcc.target/powerpc/builtins-3-p8.c: Add tests for the new built-ins
to the test suite file.
* gcc.target/powerpc/builtins-3.c: Add tests for the new built-ins
to the test suite file.
From-SVN: r247933
Michael Meissner [Thu, 11 May 2017 21:51:07 +0000 (21:51 +0000)]
attribs.h (sorted_attr_string): Move machine independent functions for target clone support from the i386 port...
2017-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
* attribs.h (sorted_attr_string): Move machine independent
functions for target clone support from the i386 port to common
code. Rename ix86_function_versions to common_function_versions.
Rename make_name to make_unique_name.
(common_function_versions): Likewise.
(make_unique_name): Likewise.
(make_dispatcher_decl): Likewise.
(is_function_default_version): Likewise.
* attribs.c (attr_strcmp): Likewise.
(sorted_attr_string): Likewise.
(common_function_versions): Likewise.
(make_unique_name): Likewise.
(make_dispatcher_decl): Likewise.
(is_function_default_version): Likewise.
* config/i386/i386.c (attr_strcmp): Likewise.
(sorted_attr_string): Likewise.
(ix86_function_versions): Likewise.
(make_name): Likewise.
(make_dispatcher_decl): Likewise.
(is_function_default_version): Likewise.
(TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
From-SVN: r247932
Ian Lance Taylor [Thu, 11 May 2017 20:55:41 +0000 (20:55 +0000)]
runtime: fix isSystemGoroutine for gccgo
The gc toolchain decides whether a goroutine is a system goroutine by
comparing startpc to a list of saved special PCs. In gccgo that
approach does not work as startpc is often a thunk that invokes the
real function with arguments, so the thunk address never matches the
saved special PCs.
This patch fixes gccgo's understanding of system goroutines. Since
there are only a limited number of them, we simply change each one to
mark itself as special.
This fixes stack dumps and functions like runtime.NumGoroutine to
behave more like gc. It also fixes the goprint test in the gc
testsuite.
Reviewed-on: https://go-review.googlesource.com/43156
From-SVN: r247931
Jerry DeLisle [Thu, 11 May 2017 20:40:49 +0000 (20:40 +0000)]
re PR fortran/78659 ([F03] Spurious "requires DTIO" reported against namelist statement)
2017-05-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/78659
* io.c (dtio_procs_present): Add new function to check for DTIO
procedures relative to I/O statement READ or WRITE.
(gfc_resolve_dt): Add namelist checks using the new function.
* resolve.c (dtio_procs_present): Remove function and related
namelist checks. (resolve_fl_namelist): Add check specific to
Fortran 95 restriction on namelist objects.
* gfortran.dg/namelist_91.f90: New test.
* gfortran.dg/namelist_92.f90: New test.
* gfortran.dg/namelist_93.f90: New test.
* gfortran.dg/namelist_94.f90: New test.
From-SVN: r247930
François Dumont [Thu, 11 May 2017 20:30:44 +0000 (20:30 +0000)]
2017-05-11 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_tree.h [_GLIBCXX_INLINE_VERSION]
(_Rb_tree_impl<>): Remove _Is_pod_comparator
template parameter.
From-SVN: r247929
Bill Schmidt [Thu, 11 May 2017 20:16:02 +0000 (20:16 +0000)]
re PR target/80695 (gratuitous use of stxvx to store multiple pointers)
[gcc]
2017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/80695
* config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
Account for direct move costs for vec_construct of integer
vectors.
[gcc/testsuite]
2017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/80695
* gcc.target/powerpc/pr80695-p8.c: New file.
* gcc.target/powerpc/pr80695-p9.c: New file.
From-SVN: r247928
Janne Blomqvist [Thu, 11 May 2017 20:04:53 +0000 (23:04 +0300)]
Don't assume __secure_getenv is available
Glibc 2.17 made __secure_getenv an officially supported function, and
renamed it secure_getenv. The libgfortran configure has checked for
both of these, per
https://sourceware.org/glibc/wiki/Tips_and_Tricks/secure_getenv.
Unfortunately, while the dynamical library (libc.so) retains the
__secure_getenv symbol for backwards compatibility, the static library
(libc.a) does not. This means that a libgfortran.a compiled against an
older glibc will not work if one tries to link against a newer
libc.a. This creates problems for providing gfortran binary
distributions that work on as many target systems as possible.
Thus, retain the support for __secure_getenv but call it only via a
weak reference.
Regtested on x86_64-pc-linux-gnu.
2017-05-11 Janne Blomqvist <jb@gcc.gnu.org>
* libgfortran.h: HAVE_SECURE_GETENV: Don't check
HAVE___SECURE_GETENV.
* environ/runtime.c (secure_getenv): Use __secure_getenv via a
weak reference.
From-SVN: r247927
François Dumont [Thu, 11 May 2017 20:03:47 +0000 (20:03 +0000)]
2017-05-11 François Dumont <fdumont@gcc.gnu.org>
* include/debug/safe_container.h [_GLIBCXX_USE_CXX11_ABI]
(_Safe_container<>): Remove _IsCxx11AllocatorAware template parameter.
* include/debug/string: Adapt.
From-SVN: r247926
François Dumont [Thu, 11 May 2017 19:49:26 +0000 (19:49 +0000)]
2017-05-11 François Dumont <fdumont@gcc.gnu.org>
* include/debug/formatter.h [_GLIBCXX_INLINE_VERSION]
(__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove.
(__gnu_debug::_Error_formatter::_Parameter::_M_print_description):
Remove.
(__gnu_debug::_Error_formatter::_M_format_word): Remove.
(__gnu_debug::_Error_formatter::_M_print_word): Remove.
(__gnu_debug::_Error_formatter::_M_print_string): Remove.
(__gnu_debug::_Error_formatter::_M_get_max_length): Remove.
* src/c++11/debug.cc: Adapt.
* config/abi/pre/gnu-versioned-namespace.ver: Adapt.
From-SVN: r247925
Nathan Sidwell [Thu, 11 May 2017 19:15:59 +0000 (19:15 +0000)]
Missing Changelog
Missing Changelog
* libcp1plugin.cc (safe_pushdecl_maybe_friend): Call pushdecl.
From-SVN: r247924
Nathan Sidwell [Thu, 11 May 2017 19:09:51 +0000 (19:09 +0000)]
cp-lang.c (get_global_decls, [...]): Move to ...
* cp-lang.c (get_global_decls, cxx_pushdecl, LANG_HOOK_GETDECLS)
LANG_HOOKS_PUSHDECL): Move to ...
* cp-objcp-common.c (cp_get_global_decls, cp_pushdec)
LANG_HOOK_DECLS, LANG_HOOKS_PUSHDECL): ... here.
* cp-objcp-common.h (cp_get_global_decls, cp_pushdecl): Declare.
((--This line, and those below, will be ignored--
M cp/ChangeLog
M cp/cp-lang.c
M cp/cp-objcp-common.c
M cp/cp-objcp-common.h
From-SVN: r247923
Nathan Sidwell [Thu, 11 May 2017 18:48:55 +0000 (18:48 +0000)]
* libcp1plugin.cc (plugin_build_decl): Adjust add_method call.
From-SVN: r247922
Uros Bizjak [Thu, 11 May 2017 18:12:25 +0000 (20:12 +0200)]
re PR target/80706 (peephole2 uses uninitialized stack variables on i686)
PR target/80706
* config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
(UNSPEC_STX_ATOMIC): Ditto.
(loaddi_via_sse): New insn.
(storedi_via_sse): Ditto.
(atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
Update corresponding peephole2 patterns.
(atomic_storedi_fpu): Ditto.
testsuite/ChangeLog:
PR target/80706
* gcc.target/i386/pr80706.c: New test.
From-SVN: r247921
Julia Koval [Thu, 11 May 2017 18:01:12 +0000 (20:01 +0200)]
* config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
(_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
New intrinsics.
* config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
(__builtin_ia32_rsqrt14ss_mask): New builtins.
* config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
testsuite/ChangeLog:
* gcc.target/i386/avx512f-vrsqrt14sd-1.c: Test new intrinsics.
* gcc.target/i386/avx512f-vrsqrt14sd-2.c: Ditto.
* gcc.target/i386/avx512f-vrsqrt14ss-1.c: Ditto.
* gcc.target/i386/avx512f-vrsqrt14ss-2.c: Ditto.
From-SVN: r247920
Nathan Sidwell [Thu, 11 May 2017 17:43:52 +0000 (17:43 +0000)]
* graphite-poly.c: Include dumpfile.h.
From-SVN: r247919
Nathan Sidwell [Thu, 11 May 2017 17:38:55 +0000 (17:38 +0000)]
name-lookup.h (pushdecl): Add default friend parm.
* name-lookup.h (pushdecl): Add default friend parm.
(pushdecl_maybe_friend): Delete.
(pushdecl_top_level): Add default friend parm.
(pushdecl_top_level_maybe_friend): Delete.
* name-lookup.c (pushdecl_maybe_friend): Delete.
(pushdecl): Add is_friend parm.
(pushdecl_top_level): Add is friend_parm.
(pushdecl_top_level_maybe_friend, pushdecl_top_level_1): Delete.
(pushdecl_top_level_and_finish): Do pushing and finishing
directly.
* friend.c (do_friend): Adjust.
* pt.c (tsubst_friend_class): Adjust.
From-SVN: r247918
Paolo Carlini [Thu, 11 May 2017 17:13:42 +0000 (17:13 +0000)]
re PR c++/70538 (ICE on a deprecated access declaration in instantiate_template_1, at cp/pt.c:17310)
2017-05-11 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/70538
* g++.dg/cpp0x/pr70538.C: New.
From-SVN: r247917
Nathan Sidwell [Thu, 11 May 2017 15:48:51 +0000 (15:48 +0000)]
dumpfle.h (dump_function): Declare here ...
* dumpfle.h (dump_function): Declare here ...
* tree-dump.h (dump_function): ... not here.
* dumpfile.c: #include tree-cfg.h.
(dump_function): Move here from ...
* tree-dump.c (dump_function): ... here.
* gimplify.c: #include splay-tree.h, not tree-dump.h.
* graphite-poly.c: Don't include tree-dump.h.
* cgraphclones.c: Include dumpfile.h not tree-dump.h.
* print-tree.c: Likewise.
* stor-layout.c: Likewise.
* tree-nested.c: Likewise.
c/
* gimple-parser.c: Don't #include tree-dump.h.
fortran/
* trans-decl.c: Include dumpfile.h not tree-dump.h,
From-SVN: r247916
Nathan Sidwell [Thu, 11 May 2017 15:46:48 +0000 (15:46 +0000)]
Revert pushdecl_top_level_and_finish name change.
* name-lookup.h (pushdecl_top_level_and_finish): Resurrect old
name.
* name-lookup.c (pushdecl_top_level_and_finish): Likewise.
* decl.c (cp_make_fname_decl): Adjust.
* decl2.c (get_guard, handle_tls_init): Adjust.
* rtti.c (get_tinfo_decl, tinfo_base_init): Adjust.
From-SVN: r247915
Uros Bizjak [Thu, 11 May 2017 15:41:50 +0000 (17:41 +0200)]
pr22152.c: Fix undefined testcase.
* gcc.target/i386/pr22152.c: Fix undefined testcase. Remove
unnecessary loop. Run on 32-bit targets only.
(dg-options): Remove -fno-tree-sink.
From-SVN: r247914
Steven Munroe [Thu, 11 May 2017 15:41:24 +0000 (15:41 +0000)]
As I will be working on X86 intrinsic equivalents for PowerPC64LE
adding myself to Write After Approval list.
2017-05-11 Steven Munroe <munroesj@gcc.gnu.org>
* MAINTAINERS: Add myself to Write After Approval section.
From-SVN: r247913
Jonathan Wakely [Thu, 11 May 2017 15:01:10 +0000 (16:01 +0100)]
Fix ViewCVS URLs in libstdc++ manual
* doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
* doc/xml/manual/mt_allocator.xml: Likewise.
* doc/html/*: Regenerate.
From-SVN: r247911
Nathan Sidwell [Thu, 11 May 2017 14:51:07 +0000 (14:51 +0000)]
name-lookup.c (pushdecl_outermost_localscope): Always conditionally stop timer.
* name-lookup.c (pushdecl_outermost_localscope): Always
conditionally stop timer.
From-SVN: r247910
Nathan Sidwell [Thu, 11 May 2017 14:40:28 +0000 (14:40 +0000)]
decl.c (xref_tag_1): Don't frob ts_lambda scope here.
* decl.c (xref_tag_1): Don't frob ts_lambda scope here.
* name-lookup.c (pushtag_1): Deal with ts_lambda scope.
From-SVN: r247909
Nathan Sidwell [Thu, 11 May 2017 14:23:16 +0000 (14:23 +0000)]
dumpfile.h (TDF_FLAGS): New.
* dumpfile.h (TDF_FLAGS): New.
* dumpfile.c (dump_start): Use TDF_FLAGS.
(dump_enable_all): Fix TDF_KIND check thinko.
From-SVN: r247908
Kelvin Nilsen [Thu, 11 May 2017 14:13:31 +0000 (14:13 +0000)]
cmpb-1.c: New test.
gcc/testsuite/ChangeLog:
2017-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
* gcc.target/powerpc/cmpb-1.c: New test.
* gcc.target/powerpc/cmpb-2.c: New test.
* gcc.target/powerpc/cmpb-3.c: New test.
* gcc.target/powerpc/cmpb32-1.c: New test.
* gcc.target/powerpc/cmpb32-2.c: New test.
gcc/ChangeLog:
2017-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
array entries to represent two legal parameterizations of the
overloaded __builtin_cmpb function, as represented by the
P6_OV_BUILTIN_CMPB constant.
(altivec_resolve_overloaded_builtin): Add special case handling
for the __builtin_cmpb function, as represented by the
P6_OV_BUILTIN_CMPB constant.
* config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
(BU_P6_64BIT_2): New macro.
(BU_P6_OVERLOAD_2): New macro
(CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
(CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
(CMPB): Add overload support to represent both 32-bit and 64-bit
compare-bytes function.
* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
support for TARGET_CMPB.
* config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
* doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
documentation of the __builtin_cmpb overloaded built-in function.
From-SVN: r247907
Richard Biener [Thu, 11 May 2017 14:08:07 +0000 (14:08 +0000)]
re PR tree-optimization/80705 (Incorrect code generated for profile counter updates due to SLP+LIM)
2017-05-11 Richard Biener <rguenther@suse.de>
PR tree-optimization/80705
* tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
bases are not vectorizable.
* gcc.dg/vect/bb-slp-pr80705.c: New testcase.
From-SVN: r247906
Jonathan Wakely [Thu, 11 May 2017 13:21:07 +0000 (14:21 +0100)]
PR libstdc++/80285 optimize std::make_shared for -fno-rtti
PR libstdc++/80285
* include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Define
function to get unique fake std::type_info reference.
(_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Compare to
_S_ti() fake reference.
(__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Share
single implementation with or without RTTI enable.
[!__cpp_rtti]: Pass fake reference to _M_get_deleter.
* testsuite/20_util/shared_ptr/creation/alloc.cc: Change expected
allocation and deallocation counts.
* testsuite/20_util/shared_ptr/creation/single_allocation.cc: New.
* testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
New.
From-SVN: r247905
Nathan Sidwell [Thu, 11 May 2017 13:09:42 +0000 (13:09 +0000)]
scanlang.exp: New.
* lib/scanlang.exp: New.
* lib/gcc-dg.exp: Load scanlang.exp.
* g++.dg/inherit/covariant7.C: Use scan-lang-dump.
From-SVN: r247904
Mikhail Maltsev [Thu, 11 May 2017 12:27:37 +0000 (12:27 +0000)]
GIMPLEFE: Handle invalid SSA names
gcc/testsuite/
PR testsuite/80580
* gcc.dg/gimplefe-error-6.c: New test.
gcc/c/
PR testsuite/80580
* gimple-parser.c (c_parser_parse_ssa_name): Validate SSA name base.
From-SVN: r247903
Nathan Sidwell [Thu, 11 May 2017 11:57:01 +0000 (11:57 +0000)]
cp-tree.h (pushdecl, [...]): Move declarations to ...
* cp-tree.h (pushdecl, pushdecl_maybe_friend, pushtag)
pushtag_top_level_maybe_friend,
pushdecl_top_level_and_finish): Move declarations to ...
* name-lookup.h: ... here. Group pushdecl variants.
(pushdecl_top_level_and_finish): Rename to ...
(pushdecl_top_level_with_init): ... here.
* decl.c (cp_make_fname_decl): Use pushdecl_top_level_with_init.
* decl2.c (get_guard, handle_tls_init): Likewise.
* rtti.c (get_tinfo_decl, tinfo_base_init): Likewise.
* lambda.c (maybe_add_lambda_conv_op): Use namespace_bindings_p.
* method.c (implicitly_declare_fn): Likewise.
* searchc (node_debug_info_needed): Likewise.
* name-lookup.c (pushdecl_top_level_and_finish): Rename to ...
(pushdecl_top_level_with_init): ... here.
(pop_everything): Use namespace_bindings_p.
(--This line, and those below, will be ignored--
M cp/ChangeLog
M cp/method.c
M cp/cp-tree.h
M cp/decl.c
M cp/lambda.c
M cp/rtti.c
M cp/name-lookup.c
M cp/decl2.c
M cp/name-lookup.h
M cp/search.c
From-SVN: r247902
Nathan Sidwell [Thu, 11 May 2017 11:06:26 +0000 (11:06 +0000)]
name-lookup.h (pop_binding): Rename to pop_local_binding.
* name-lookup.h (pop_binding): Rename to pop_local_binding.
(getdecls): Rename to get_local_decls.
* name-lookup.c (pop_binding): Rename to ...
(pop_local_binding): ... here.
(pop_bindings_and_leave_scope): Adjust.
(getdecls): Rename to ...
(get_local_decls): ... here. Assert local scope.
* decl.c (poplevel): Assert not namespace. Adjust and simplify
logic.
(store_parm_decls): Adjust get_local_decls call.
(parser.c (synthesize_implicit_template_parm): Likewise.
From-SVN: r247901
Mikhail Maltsev [Thu, 11 May 2017 10:55:52 +0000 (10:55 +0000)]
GIMPLEFE: handle invalid __MEM
gcc/c/
PR testsuite/80580
* gimple-parser.c (c_parser_gimple_postfix_expression): Handle
incorrect __MEM syntax.
gcc/testsuite/
PR testsuite/80580
* gcc.dg/gimplefe-error-5.c: New test.
From-SVN: r247900
Mikhail Maltsev [Thu, 11 May 2017 10:48:54 +0000 (10:48 +0000)]
GIMPLEFE: Handle invalid unary "*" operand type
gcc/c/
PR testsuite/80580
* gimple-parser.c (c_parser_gimple_unary_expression): Check argument
type of unary '*'.
gcc/testsuite/
PR testsuite/80580
* gcc.dg/gimplefe-error-4.c: New test.
From-SVN: r247899
Bin Cheng [Thu, 11 May 2017 09:57:06 +0000 (09:57 +0000)]
tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger when counting register pressure.
* tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
when counting register pressure.
From-SVN: r247898
Bin Cheng [Thu, 11 May 2017 09:55:56 +0000 (09:55 +0000)]
tree-ssa-loop-ivopts.c (compare_cost_pair): New.
* tree-ssa-loop-ivopts.c (compare_cost_pair): New.
(iv_ca_more_deps): Renamed to ...
(iv_ca_compare_deps): ... this.
(iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
From-SVN: r247897
Bin Cheng [Thu, 11 May 2017 09:54:30 +0000 (09:54 +0000)]
tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump to ...
* tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
to ...
(determine_group_iv_costs): ... here.
(find_inv_vars_cb): Record inv var if it's not recorded before.
From-SVN: r247896
Bin Cheng [Thu, 11 May 2017 09:52:52 +0000 (09:52 +0000)]
tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
* tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
(get_shiftadd_cost): Ditto.
From-SVN: r247895