GCC Administrator [Fri, 22 Aug 2014 00:16:51 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r214300
David Malcolm [Fri, 22 Aug 2014 00:16:51 +0000 (00:16 +0000)]
combine.c: Use rtx_insn
gcc/
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
(struct reg_stat_struct): Likewise for fields "last_death", "last_set".
(subst_insn): Likewise for this variable.
(added_links_insn): Likewise.
(struct insn_link): Likewise for field "insn".
(alloc_insn_link): Likewise for param "insn".
(struct undobuf): Likewise for field "other_insn".
(find_single_use): Likewise for param "insn" and local "next".
(combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
(delete_noop_moves): Likewise for locals "insn", "next".
(create_log_links): Likewise for locals "insn", "use_insn".
Strengthen local "next_use" from rtx * to rtx_insn **.
(insn_a_feeds_b): Likewise for params "a", "b".
(combine_instructions): Likewise for param "f" and locals "insn",
"next", "prev", "first", "last_combined_insn", "link", "link1",
"temp". Replace use of NULL_RTX with NULL when referring to
insns.
(setup_incoming_promotions): Likewise for param "first"
(set_nonzero_bits_and_sign_copies): Likewise for local "insn".
(can_combine_p): Likewise for params "insn", "i3", "pred",
"pred2", "succ", "succ2" and for local "p".
(combinable_i3pat): Likewise for param "i3".
(cant_combine_insn_p): Likewise for param "insn".
(likely_spilled_retval_p): Likewise.
(adjust_for_new_dest): Likewise.
(update_cfg_for_uncondjump): Likewise, also for local "insn".
(try_combine): Likewise for return type and for params "i3", "i2",
"i1", "i0", "last_combined_insn", and for locals "insn",
"cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
"i0_insn". Eliminate local "tem" in favor of new locals
"tem_note" and "tem_insn", the latter being an rtx_insn *. Add a
checked cast for now to rtx_insn * on the return type of
gen_rtx_INSN. Replace use of NULL_RTX with NULL when referring to
insns.
(find_split_point): Strengthen param "insn" from rtx to
rtx_insn *.
(simplify_set): Likewise for local "other_insn".
(recog_for_combine): Likewise for param "insn".
(record_value_for_reg): Likewise.
(record_dead_and_set_regs_1): Likewise for local
"record_dead_insn".
(record_dead_and_set_regs): Likewise for param "insn".
(record_promoted_value): Likewise.
(check_promoted_subreg): Likewise.
(get_last_value_validate): Likewise.
(reg_dead_at_p): Likewise.
(move_deaths): Likewise for param "to_insn".
(distribute_notes): Likewise for params "from_insn", "i3", "i2"
and locals "place", "place2", "cc0_setter". Eliminate local "tem
in favor of new locals "tem_note" and "tem_insn", the latter being
an rtx_insn *.
(distribute_links): Strengthen locals "place", "insn" from rtx to
rtx_insn *.
From-SVN: r214299
David Malcolm [Thu, 21 Aug 2014 21:16:09 +0000 (21:16 +0000)]
cfgrtl.c: Use rtx subclasses
gcc/
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
than a const_rtx.
(can_delete_label_p): Require a const rtx_code_label * rather than
a const_rtx.
(delete_insn): Add checked cast to rtx_code_label * when we know
we're dealing with LABEL_P (insn). Strengthen local "bb_note" from
rtx to rtx_insn *.
(delete_insn_chain): Strengthen locals "prev" and "current" from
rtx to rtx_insn *. Add a checked cast when assigning from
"finish" (strengthening the params will come later). Add a
checked cast to rtx_note * in region where we know
NOTE_P (current).
(rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
rtx_insn *.
(compute_bb_for_insn): Likewise.
(free_bb_for_insn): Likewise for local "insn".
(compute_bb_for_insn): Likewise.
(update_bb_for_insn_chain): Strengthen params "begin", "end" and
local "insn" from rtx to rtx_insn *
(flow_active_insn_p): Require a const rtx_insn * rather than a
const_rtx.
(contains_no_active_insn_p): Strengthen local "insn" from rtx to
rtx_insn *.
(can_fallthru): Likewise for locals "insn" and "insn2".
(bb_note): Likewise for local "note".
(first_insn_after_basic_block_note): Likewise for local "note" and
for return type.
(rtl_split_block): Likewise for locals "insn" and "next".
(unique_locus_on_edge_between_p): Likewise for locals "insn" and
"end".
(rtl_merge_blocks): Likewise for locals "b_head", "b_end",
"a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
"prev", "tmp".
(try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
them), "kill_from", "barrier", "new_insn".
(patch_jump_insn): Likewise for params "insn", "old_label".
(redirect_branch_edge): Likewise for locals "old_label", "insn".
(force_nonfallthru_and_redirect): Likewise for locals "insn",
"old_label", "new_label".
(rtl_tidy_fallthru_edge): Likewise for local "q".
(rtl_split_edge): Likewise for locals "before", "last".
(commit_one_edge_insertion): Likewise for locals "before",
"after", "insns", "tmp", "last", adding a checked cast where
currently necessary.
(commit_edge_insertions): Likewise.
(rtl_dump_bb): Likewise for locals "insn", "last".
(print_rtl_with_bb): Likewise for local "x".
(rtl_verify_bb_insns): Likewise for local "x".
(rtl_verify_bb_pointers): Likewise for local "insn".
(rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
"head", "end".
(rtl_verify_fallthru): Likewise for local "insn".
(rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
(purge_dead_edges): Likewise for local "insn".
(fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
(skip_insns_after_block): Likewise for return type and for locals
"insn", "last_insn", "next_head", "prev".
(record_effective_endpoints): Likewise for locals "next_insn",
"insn", "end".
(fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
(verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
(cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
(duplicate_insn_chain): For now, add checked cast from rtx to
rtx_insn * when returning insn.
(cfg_layout_duplicate_bb): Likewise for local "insn".
(cfg_layout_delete_block): Likewise for locals "insn", "next",
"prev", "remaints".
(cfg_layout_merge_blocks): Likewise for local "insn", "last".
(rtl_block_empty_p): Likewise.
(rtl_split_block_before_cond_jump): Likewise for locals "insn",
"split_point", "last".
(rtl_block_ends_with_call_p): Likewise for local "insn".
(need_fake_edge_p): Strengthen param "insn" from const_rtx to
const rtx_insn *.
(rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
"split_at_insn" from rtx to rtx_insn *.
(rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
(rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
to const rtx_insn *.
(rtl_account_profile_record): Likewise.
From-SVN: r214295
David Malcolm [Thu, 21 Aug 2014 21:11:30 +0000 (21:11 +0000)]
cfgloopanal.c: Use rtx_insn
gcc/
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
rtx to rtx_insn *.
(average_num_loop_insns): Likewise.
(init_set_costs): Likewise for local "seq".
(seq_cost): Likewise for param "seq", from const_rtx to const
rtx_insn *.
From-SVN: r214294
David Malcolm [Thu, 21 Aug 2014 21:08:33 +0000 (21:08 +0000)]
cfgloop.c: Use rtx_insn
gcc/
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
rtx to rtx_insn *.
From-SVN: r214293
David Malcolm [Thu, 21 Aug 2014 21:02:34 +0000 (21:02 +0000)]
cfgcleanup.c: Use rtx_insn (also touches basic-block.h and ifcvt.c)
gcc/
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
"f1" and "f2" from rtx * to rtx_insn **.
(flow_find_head_matching_sequence): Likewise.
* cfgcleanup.c (try_simplify_condjump): Strengthen local
"cbranch_insn" from rtx to rtx_insn *.
(thread_jump): Likewise for local "insn".
(try_forward_edges): Likewise for local "last".
(merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
(merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
"real_b_end".
(can_replace_by): Likewise for params "i1", "i2".
(old_insns_match_p): Likewise.
(merge_notes): Likewise.
(walk_to_nondebug_insn): Likewise for param "i1".
(flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
to rtx_insn **. Strengthen locals "i1", "i2", "last1", "last2",
"afterlast1", "afterlast2" from rtx to rtx_insn *.
(flow_find_head_matching_sequence): Strengthen params "f1" and
"f2" from rtx * to rtx_insn **. Strengthen locals "i1", "i2",
"last1", "last2", "beforelast1", "beforelast2" from rtx to
rtx_insn *.
(outgoing_edges_match): Likewise for locals "last1", "last2".
(try_crossjump_to_edge): Likewise for local "insn".
Replace call to for_each_rtx with for_each_rtx_in_insn.
(try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
(try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
"e0_last", "e_last", "head", "curr", "insn". Strengthen locals
"headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
(try_optimize_cfg): Strengthen local "last" from rtx to
rtx_insn *.
(delete_dead_jumptables): Likewise for locals "insn", "next",
"label".
* ifcvt.c (cond_exec_process_if_block): Likewise for locals
"rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
"rtx else_first_tail", to reflect the basic-block.h changes above.
From-SVN: r214292
David Malcolm [Thu, 21 Aug 2014 20:57:56 +0000 (20:57 +0000)]
cfgbuild.c: Use rtx_insn
gcc/
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
rtx_insn *.
(purge_dead_tablejump_edges): Likewise.
(find_bb_boundaries): Likewise for locals "insn", "end",
"flow_transfer_insn".
From-SVN: r214291
David Malcolm [Thu, 21 Aug 2014 20:43:47 +0000 (20:43 +0000)]
caller-save.c: Use rtx_insn
gcc/
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* caller-save.c (save_call_clobbered_regs): Strengthen locals
"ins" and "prev" from rtx to rtx_insn *.
From-SVN: r214290
David Malcolm [Thu, 21 Aug 2014 20:38:47 +0000 (20:38 +0000)]
calls.c: Use rtx_insn
gcc/
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
rtx_insn *.
(internal_arg_pointer_exp_state): Likewise for field "scan_start".
(internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
"scan_start".
(load_register_parameters): Likewise for local "before_arg".
(check_sibcall_argument_overlap): Likewise for param "insn".
(expand_call): Likewise for locals "normal_call_insns",
"tail_call_insns", "insns", "before_call", "after_args",
"before_arg", "last", "prev". Strengthen one of the "last" from
rtx to rtx_call_insn *.
(fixup_tail_calls): Strengthen local "insn" from rtx to
rtx_insn *.
(emit_library_call_value_1): Likewise for locals "before_call" and
"last".
From-SVN: r214289
David Malcolm [Thu, 21 Aug 2014 20:32:22 +0000 (20:32 +0000)]
builtins.c: strengthen various rtx to rtx_insn * and other subclasses
gcc/
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
and "last" from rtx to rtx_insn *.
(expand_builtin_nonlocal_goto): Likewise for local "insn".
(expand_builtin_apply): Strengthen local "call_insn" from rtx to
rtx_call_insn *.
(expand_errno_check): Strengthen local "lab" from rtx to
rtx_code_label *.
(expand_builtin_mathfn): Strengthen local "insns" from rtx to
rtx_insn *.
(expand_builtin_mathfn_2): Likewise.
(expand_builtin_mathfn_ternary): Likewise.
(expand_builtin_mathfn_3): Likewise.
(expand_builtin_interclass_mathfn): Likewise for local "last".
(expand_builtin_int_roundingfn): Likewise for local "insns".
(expand_builtin_int_roundingfn_2): Likewise.
(expand_builtin_strlen): Likewise for local "before_strlen".
(expand_builtin_strncmp): Likewise for local "seq".
(expand_builtin_signbit): Likewise for local "last".
(expand_builtin_atomic_compare_exchange): Strengthen local "label"
from rtx to rtx_code_label *.
(expand_stack_restore): Strengthen local "prev" from rtx to
rtx_insn *.
From-SVN: r214288
David Malcolm [Thu, 21 Aug 2014 20:28:33 +0000 (20:28 +0000)]
bt-load.c: Use rtx_insn
gcc/
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
to rtx_insn *.
(struct btr_def_s): Likewise.
(insn_sets_btr_p): Strengthen param "insn" from const_rtx to
const rtx_insn *.
(add_btr_def): Likewise.
(new_btr_user): Likewise.
(compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
rtx to rtx_insn *.
(link_btr_uses): Likewise.
(move_btr_def): Likewise for locals "insp", "old_insn",
"new_insn". Add checked cast to rtx_insn * for now on result of
gen_move_insn.
(can_move_up): Strengthen param "insn" from const_rtx to
const rtx_insn *.
From-SVN: r214287
David Malcolm [Thu, 21 Aug 2014 20:24:19 +0000 (20:24 +0000)]
bb-reorder.c: Use rtx_insn
gcc/
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
rtx_insn *.
(get_uncond_jump_length): Likewise for locals "label", "jump".
(fix_up_crossing_landing_pad): Likewise for locals "new_label",
"jump", "insn".
(add_labels_and_missing_jumps): Likewise for local "new_jump".
(fix_up_fall_thru_edges): Likewise for local "old_jump".
(find_jump_block): Likewise for local "insn".
(fix_crossing_conditional_branches): Likewise for locals
"old_jump", "new_jump".
(fix_crossing_unconditional_branches): Likewise for locals
"last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
(pass_duplicate_computed_gotos::execute): Likewise for local "insn".
From-SVN: r214286
David Malcolm [Thu, 21 Aug 2014 20:17:15 +0000 (20:17 +0000)]
auto-inc-dec.c: strengthen various rtx to rtx_insn *
gcc/
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
rtx to rtx_insn *.
(struct mem_insn): Likewise for field "insn".
(reg_next_use): Strengthen from rtx * to rtx_insn **.
(reg_next_inc_use): Likewise.
(reg_next_def): Likewise.
(move_dead_notes): Strengthen params "to_insn" and "from_insn"
from rtx to rtx_insn *.
(move_insn_before): Likewise for param "next_insn" and local "insns".
(attempt_change): Likewise for local "mov_insn".
(try_merge): Likewise for param "last_insn".
(get_next_ref): Likewise for return type and local "insn".
Strengthen param "next_array" from rtx * to rtx_insn **.
(parse_add_or_inc): Strengthen param "insn" from rtx to
rtx_insn *.
(find_inc): Likewise for locals "insn" and "other_insn" (three of
the latter).
(merge_in_block): Likewise for locals "insn", "curr",
"other_insn".
(pass_inc_dec::execute): Update allocations of the arrays to
reflect the stronger types.
From-SVN: r214285
David Malcolm [Thu, 21 Aug 2014 20:12:30 +0000 (20:12 +0000)]
asan.c: strengthen some rtx locals
gcc/
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
and "jump" from rtx to rtx_insn *. Strengthen local "top_label"
from rtx to rtx_code_label *.
From-SVN: r214284
David Malcolm [Thu, 21 Aug 2014 20:04:22 +0000 (20:04 +0000)]
alias.c: Use rtx_insn
gcc/
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* alias.c (init_alias_analysis): Strengthen local "insn" from rtx
to rtx_insn *.
From-SVN: r214283
Thomas Koenig [Thu, 21 Aug 2014 18:52:58 +0000 (18:52 +0000)]
re PR fortran/62214 (Problem with spread plus concatenation for characters)
2014-08-21 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/62214
* frontend-passes.c (optimize_binop_array_assignment):
Do not try to optimize the array assignment for string
concatenation.
2014-08-21 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/62214
* gfortran.dg/array_assignment_5.f90: New test.
From-SVN: r214281
Michael Meissner [Thu, 21 Aug 2014 18:13:52 +0000 (18:13 +0000)]
rs6000.c (print_operand, 'y' case): Fix code that generated a warning and prevented bootstrapping the compiler.
2014-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
generated a warning and prevented bootstrapping the compiler.
From-SVN: r214280
David Malcolm [Thu, 21 Aug 2014 15:08:47 +0000 (15:08 +0000)]
PHASE 2: Per-file commits in main source directory
/
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* rtx-classes-status.txt: Phase 1 ("scaffolding") is done; begin
phase 2 (per-file commits in main source dir).
From-SVN: r214276
David Malcolm [Thu, 21 Aug 2014 15:00:09 +0000 (15:00 +0000)]
delete_related_insns returns an rtx_insn
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* rtl.h (delete_related_insns): Strengthen return type from rtx to
rtx_insn *.
* jump.c (delete_related_insns): Likewise, also for locals "next"
and "prev".
From-SVN: r214275
Sandra Loosemore [Thu, 21 Aug 2014 14:52:03 +0000 (10:52 -0400)]
2014-08-21 Sandra Loosemore <sandra@codesourcery.com>
gcc/testsuite/
* lib/target-supports.exp
(check_effective_target_logical_op_short_circuit): Add nios2.
* gcc.dg/tree-ssa/reassoc-33.c: Skip for nios2.
* gcc.dg/tree-ssa/reassoc-34.c: Likewise.
* gcc.dg/tree-ssa/reassoc-35.c: Likewise.
* gcc.dg/tree-ssa/reassoc-36.c: Likewise.
* gcc.dg/tree-ssa/interposition.c: Require fpic effective target
for test using -fPIC.
* gcc.dg/lto/pr61526_0.c: Likewise.
From-SVN: r214274
David Malcolm [Thu, 21 Aug 2014 14:01:37 +0000 (14:01 +0000)]
define_bypass guard functions take a pair of rtx_insn
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* genautomata.c (output_internal_insn_latency_func): When writing
the function "internal_insn_latency" to insn-automata.c,
strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
allowing the optional guard function of (define_bypass) clauses to
expect a pair of rtx_insn *, rather than a pair of rtx.
(output_insn_latency_func): When writing the function
"insn_latency", add an "uncast_" prefix to params "insn" and
"insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
using checked casts from the params, thus enabling the above
change to the generated "internal_insn_latency" function.
From-SVN: r214273
Jan Hubicka [Thu, 21 Aug 2014 13:49:07 +0000 (15:49 +0200)]
re PR tree-optimization/62091 (ice in before_dom_children)
PR tree-optimization/62091
* g++.dg/ipa/devirt-37.C: Update template.
* g++.dg/ipa/devirt-40.C: New testcase.
* ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
handle correctly arrays.
(extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
inheritance binfos.
(record_known_type): Walk into inner type.
(ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
condition on no type changes.
From-SVN: r214271
David Malcolm [Thu, 21 Aug 2014 10:13:22 +0000 (10:13 +0000)]
Pass "insn" as an rtx_insn within generated get_attr_ fns in insn-attrtab.c
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* genattrtab.c (write_attr_get): Within the generated get_attr_
functions, rename param "insn" to "uncast_insn" and reintroduce
"insn" as an local rtx_insn * using a checked cast, so that "insn"
is an rtx_insn * within insn-attrtab.c
From-SVN: r214265
David Malcolm [Thu, 21 Aug 2014 09:40:09 +0000 (09:40 +0000)]
peephole returns an rtx_insn
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* output.h (peephole): Strengthen return type from rtx to
rtx_insn *.
* rtl.h (delete_for_peephole): Likewise for both params.
* genpeep.c (main): In generated "peephole" function, strengthen
return type and local "insn" from rtx to rtx_insn *. For now,
rename param "ins1" to "uncast_ins1", adding "ins1" back as an
rtx_insn *, with a checked cast.
* jump.c (delete_for_peephole): Strengthen params "from", "to" and
locals "insn", "next", "prev" from rtx to rtx_insn *.
From-SVN: r214264
Bin Cheng [Thu, 21 Aug 2014 09:35:52 +0000 (09:35 +0000)]
configure: Regenerated.
* configure: Regenerated.
config/ChangeLog
* isl.m4 (ISL_CHECK_VERSION): Check link of isl library
for cross_compiling.
From-SVN: r214263
Marc Glisse [Thu, 21 Aug 2014 09:32:21 +0000 (11:32 +0200)]
re PR tree-optimization/62112 (Optimize out malloc when block is unused or write-only)
2014-08-21 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/62112
gcc/
* gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
* gimple-iterator.h (gsi_replace): Return bool.
* tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
moved from ref_may_alias_global_p.
(ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
New overloads.
(ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
(stmt_kills_ref_p_1): Rename...
(stmt_kills_ref_p): ... to this.
* tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
stmt_kills_ref_p): Declare.
* tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
Move the self-assignment case...
(dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
gcc/testsuite/
* gcc.dg/tree-ssa/pr62112-1.c: New file.
* gcc.dg/tree-ssa/pr62112-2.c: Likewise.
* gcc.c-torture/execute/pr35472.c: Add noclone attribute.
* gcc.c-torture/execute/
20071219-1.c: Likewise.
From-SVN: r214262
Tony Wang [Thu, 21 Aug 2014 09:11:00 +0000 (09:11 +0000)]
62154.cc: Disable when the target doesn't provide atomic builtins.
2014-08-21 Tony Wang <tony.wang@arm.com>
libstdc++-v3/
* testsuite/18_support/nested_exception/62154.cc: Disable when the
target doesn't provide atomic builtins.
From-SVN: r214261
David Malcolm [Thu, 21 Aug 2014 08:53:25 +0000 (08:53 +0000)]
try_split returns an rtx_insn
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
* emit-rtl.c (try_split): Likewise, also for locals "before" and
"after". For now, don't strengthen param "trial", which requires
adding checked casts when returning it.
From-SVN: r214260
David Malcolm [Thu, 21 Aug 2014 08:20:43 +0000 (08:20 +0000)]
Debug hooks: use rtx_insn and rtx_code_label
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
"label" from rtx to rtx_code_label *. Strengthen param 1 of
"var_location" hook from rtx to rtx_insn *.
(debug_nothing_rtx): Delete in favor of...
(debug_nothing_rtx_code_label): New prototype.
(debug_nothing_rtx_rtx): Delete unused prototype.
(debug_nothing_rtx_insn): New prototype.
* final.c (final_scan_insn): Add checked cast to rtx_insn * when
invoking debug_hooks->var_location (in two places, one in a NOTE
case of a switch statement, the other guarded by a CALL_P
conditional. Add checked cast to rtx_code_label * when invoking
debug_hooks->label (within CODE_LABEL case of switch statement).
* dbxout.c (dbx_debug_hooks): Update "label" hook from
debug_nothing_rtx to debug_nothing_rtx_code_label. Update
"var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
(xcoff_debug_hooks): Likewise.
* debug.c (do_nothing_debug_hooks): Likewise.
(debug_nothing_rtx): Delete in favor of...
(debug_nothing_rtx_insn): New function.
(debug_nothing_rtx_rtx): Delete unused function.
(debug_nothing_rtx_code_label): New function.
* dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
debug_nothing_rtx to debug_nothing_rtx_code_label.
(dwarf2out_var_location): Strengthen param "loc_note" from rtx
to rtx_insn *.
* sdbout.c (sdb_debug_hooks): Update "var_location" hook from
debug_nothing_rtx to debug_nothing_rtx_insn.
(sdbout_label): Strengthen param "insn" from rtx to
rtx_code_label *.
* vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
debug_nothing_rtx to debug_nothing_rtx_code_label. Update
"var_location" hook from debug_nothing_rtx to
debug_nothing_rtx_insn.
From-SVN: r214259
David Malcolm [Thu, 21 Aug 2014 07:49:28 +0000 (07:49 +0000)]
Use rtx_insn internally within generated functions
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* recog.h (insn_output_fn): Update this function typedef to match
the changes below to the generated output functions, strengthening
the 2nd param from rtx to rtx_insn *.
* final.c (get_insn_template): Add a checked cast to rtx_insn * on
insn when invoking an output function, to match the new signature
of insn_output_fn with a stronger second param.
* genconditions.c (write_header): In the generated code for
gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
to match the other changes in this patch.
* genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
the generated "gen_" functions from rtx to rtx_insn * within their
implementations.
* genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
the subfunctions within the generated "recog_", "split", "peephole2"
function trees from rtx to rtx_insn *. For now, the top-level
generated functions ("recog", "split", "peephole2") continue to
take a plain rtx for "insn", to avoid introducing dependencies on
other patches. Rename this 2nd param from "insn" to
"uncast_insn", and reintroduce "insn" as a local variable of type
rtx_insn *, initialized at the top of the generated function with
a checked cast on "uncast_insn".
(make_insn_sequence): Strengthen the 1st param "curr_insn" of
the generated "gen_" functions from rtx to rtx_insn * within their
prototypes.
* genoutput.c (process_template): Strengthen the 2nd param within
the generated "output_" functions "insn" from rtx to rtx_insn *.
From-SVN: r214257
Jan Hubicka [Thu, 21 Aug 2014 06:18:48 +0000 (08:18 +0200)]
tree-profile.c (tree_profiling): Skip external functions when doing coverage instrumentation.
* tree-profile.c (tree_profiling): Skip external functions
when doing coverage instrumentation.
* cgraphunit.c (compile): Do not assert that all nodes are reachable.
* gcc.dg/ipa/ctor-empty-1.c: Update template.
From-SVN: r214256
Bill Schmidt [Thu, 21 Aug 2014 02:00:51 +0000 (02:00 +0000)]
altivec.h (vec_cpsgn): New #define.
[gcc]
2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/altivec.h (vec_cpsgn): New #define.
(vec_mergee): Likewise.
(vec_mergeo): Likewise.
(vec_cntlz): Likewise.
* config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
VMRGEW, and VMRGOW.
* doc/extend.texi: Document various forms of vec_cpsgn,
vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
[gcc/testsuite]
2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* testsuite/gcc.target/powerpc/builtins-1.c: New test.
From-SVN: r214255
Bill Schmidt [Thu, 21 Aug 2014 01:56:41 +0000 (01:56 +0000)]
rs6000.c (context.h): New include.
[gcc]
2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/rs6000.c (context.h): New include.
(tree-pass.h): Likewise.
(make_pass_analyze_swaps): New decl.
(rs6000_option_override): Register pass_analyze_swaps.
(swap_web_entry): New subsclass of web_entry_base (df.h).
(special_handling_values): New enum.
(union_defs): New function.
(union_uses): Likewise.
(insn_is_load_p): Likewise.
(insn_is_store_p): Likewise.
(insn_is_swap_p): Likewise.
(rtx_is_swappable_p): Likewise.
(insn_is_swappable_p): Likewise.
(chain_purpose): New enum.
(chain_contains_only_swaps): New function.
(mark_swaps_for_removal): Likewise.
(swap_const_vector_halves): Likewise.
(adjust_subreg_index): Likewise.
(permute_load): Likewise.
(permute_store): Likewise.
(handle_special_swappables): Likewise.
(replace_swap_with_copy): Likewise.
(dump_swap_insn_table): Likewise.
(rs6000_analyze_swaps): Likewise.
(pass_data_analyze_swaps): New pass_data.
(pass_analyze_swaps): New rtl_opt_pass.
(make_pass_analyze_swaps): New function.
* config/rs6000/rs6000.opt (moptimize-swaps): New option.
[gcc/testsuite]
2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gcc.target/powerpc/swaps-p8-1.c: New test.
* gcc.target/powerpc/swaps-p8-2.c: New test.
* gcc.target/powerpc/swaps-p8-3.c: New test.
* gcc.target/powerpc/swaps-p8-4.c: New test.
* gcc.target/powerpc/swaps-p8-5.c: New test.
* gcc.target/powerpc/swaps-p8-6.c: New test.
* gcc.target/powerpc/swaps-p8-7.c: New test.
* gcc.target/powerpc/swaps-p8-8.c: New test.
* gcc.target/powerpc/swaps-p8-9.c: New test.
* gcc.target/powerpc/swaps-p8-10.c: New test.
* gcc.target/powerpc/swaps-p8-11.c: New test.
* gcc.target/powerpc/swaps-p8-12.c: New test.
From-SVN: r214254
David Malcolm [Thu, 21 Aug 2014 01:06:33 +0000 (01:06 +0000)]
create_insn_rtx_from_pattern and create_copy_of_insn_rtx return rtx_insn
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
type from rtx to rtx_insn *.
(create_copy_of_insn_rtx): Likewise.
* sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
(create_copy_of_insn_rtx): Likewise, also for local "res".
From-SVN: r214253
David Malcolm [Thu, 21 Aug 2014 00:59:41 +0000 (00:59 +0000)]
find_first_parameter_load returns an rtx_insn
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* rtl.h (find_first_parameter_load): Strengthen return type from
rtx to rtx_insn *.
* rtlanal.c (find_first_parameter_load): Strengthen return type
from rtx to rtx_insn *. Add checked cast for now, to postpone
strengthening the params.
From-SVN: r214252
Manuel López-Ibáñez [Thu, 21 Aug 2014 00:27:25 +0000 (00:27 +0000)]
re PR fortran/44054 (Handle -Werror, -Werror=, -fdiagnostics-show-option, !GCC$ diagnostic (pragmas) and color)
gcc/ChangeLog:
2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/44054
* diagnostic.c: Set default caret.
(diagnostic_show_locus): Use it. Tell pretty-printer that a new
line is needed.
* diagnostic.h (struct diagnostic_context):
gcc/fortran/ChangeLog:
2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/44054
* error.c (gfc_diagnostic_build_locus_prefix): New function.
(gfc_diagnostic_starter): Follow Fortran FE diagnostics.
(gfc_diagnostic_finalizer): Do not call default finalizer.
From-SVN: r214251
GCC Administrator [Thu, 21 Aug 2014 00:16:52 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r214250
David Malcolm [Thu, 21 Aug 2014 00:07:16 +0000 (00:07 +0000)]
sel_bb_{head|end} return rtx_insn
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
(sel_bb_head): Strengthen return type insn_t (currently just an
rtx) to rtx_insn *.
(sel_bb_end): Likewise.
* sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
(sel_bb_head): Strengthen return type and local "head" from
insn_t (currently just an rtx) to rtx_insn *.
(sel_bb_end): Likewise for return type.
(free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
working with insn.
From-SVN: r214247
David Malcolm [Wed, 20 Aug 2014 23:59:49 +0000 (23:59 +0000)]
get_last_bb_insn returns an rtx_insn
2014-08-21 David Malcolm <dmalcolm@redhat.com>
* basic-block.h (get_last_bb_insn): Strengthen return type from
rtx to rtx_insn *.
* cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
end".
From-SVN: r214246
Manuel López-Ibáñez [Wed, 20 Aug 2014 23:07:29 +0000 (23:07 +0000)]
re PR fortran/44054 (Handle -Werror, -Werror=, -fdiagnostics-show-option, !GCC$ diagnostic (pragmas) and color)
gcc/ChangeLog:
2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/44054
* diagnostic.c (default_diagnostic_finalizer): Move caret printing
to here ...
(diagnostic_report_diagnostic): ... from here.
* toplev.c (general_init): Move code to c-family.
gcc/cp/ChangeLog:
2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/44054
* error.c (cp_diagnostic_finalizer): Delete.
(init_error): Do not set diagnostic_finalizer here.
gcc/c-family/ChangeLog:
2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/44054
* c-opts.c: Include tree-diagnostics.h.
(c_diagnostic_finalizer): New.
(c_common_initialize_diagnostics): Use it.
gcc/fortran/ChangeLog:
2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/44054
* error.c (gfc_diagnostic_finalizer): Call default finalizer.
From-SVN: r214245
Bill Schmidt [Wed, 20 Aug 2014 20:11:53 +0000 (20:11 +0000)]
df.h (web_entry_base): Replace existing struct web_entry with a new class web_entry_base with only the...
2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* df.h (web_entry_base): Replace existing struct web_entry with a
new class web_entry_base with only the predecessor member.
(unionfind_root): Remove declaration and move to class member.
(unionfind_union): Remove declaration and move to friend
function.
(union_defs): Remove declaration.
* web.c (web_entry_base::unionfind_root): Modify to be member
function and adjust accessors.
(unionfind_union): Modify to be friend function and adjust
accessors.
(web_entry): New subclass of web_entry_base containing the reg
member.
(union_match_dups): Modify for struct -> class changes.
(union_defs): Likewise.
(entry_register): Likewise.
(pass_web::execute): Likewise.
From-SVN: r214242
Jan Hubicka [Wed, 20 Aug 2014 18:32:10 +0000 (20:32 +0200)]
* g++.dg/ipa/devirt-37.C: Fix testcase.
From-SVN: r214240
Bill Schmidt [Wed, 20 Aug 2014 16:59:45 +0000 (16:59 +0000)]
rs6000-c.c (rs6000_cpu_cpp_builtins): Provide builtin define __VEC_ELEMENT_REG_ORDER__.
2014-08-20 Bill Schmidt <wschmidt@vnet.ibm.com>
* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
builtin define __VEC_ELEMENT_REG_ORDER__.
From-SVN: r214236
Wei Mi [Wed, 20 Aug 2014 16:52:03 +0000 (16:52 +0000)]
Miss to "svn add" test files in r214233 before commit.
From-SVN: r214234
Martin Jambor [Wed, 20 Aug 2014 16:47:12 +0000 (18:47 +0200)]
re PR lto/60449 (Merging function DECLs discards leaf attribute which causes cfg verifier to fail)
2014-08-20 Martin Jambor <mjambor@suse.cz>
Wei Mi <wmi@google.com>
PR ipa/60449
PR middle-end/61776
* tree-ssa-operands.c (update_stmt_operands): Remove
MODIFIED_NORETURN_CALLS.
* tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
(cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
(split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
(cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
* tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
* gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
(gimple_call_set_ctrl_altering): New func.
(gimple_call_ctrl_altering_p): Ditto.
* tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
(make_blocks): Use gimple_call_initialize_ctrl_altering.
(is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
(execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
remove MODIFIED_NORETURN_CALLS.
2014-08-20 Martin Jambor <mjambor@suse.cz>
Wei Mi <wmi@google.com>
PR ipa/60449
PR middle-end/61776
* testsuite/gcc.dg/lto/pr60449_1.c: New test.
* testsuite/gcc.dg/lto/pr60449_0.c: New test.
* testsuite/gcc.dg/pr61776.c: New test.
Co-Authored-By: Wei Mi <wmi@google.com>
From-SVN: r214233
Jan Hubicka [Wed, 20 Aug 2014 16:33:20 +0000 (18:33 +0200)]
coverage.c (coverage_compute_profile_id): Return non-0; also handle symbols with unique name.
* coverage.c (coverage_compute_profile_id): Return non-0;
also handle symbols with unique name.
(coverage_end_function): Do not skip DECL_EXTERNAL functions.
From-SVN: r214232
Steven G. Kargl [Wed, 20 Aug 2014 16:18:27 +0000 (16:18 +0000)]
re PR libfortran/62188 (Array bounds overrun in bessel_yn_r4/8/16 and other functions)
2014-08-20 Steven G. Kargl <kargl@gcc.gnu.org>
PR libgfortran/62188
* m4/bessel.m4: Avoid indexing off the end of an array.
* generated/bessel_r10.c: Regenerated.
* generated/bessel_r16.c: Ditto.
* generated/bessel_r4.c: Ditto.
* generated/bessel_r8.c: Ditto.
From-SVN: r214229
Steve Ellcey [Wed, 20 Aug 2014 15:57:42 +0000 (15:57 +0000)]
re PR middle-end/49191 (gcc.dg/memcpy-3.c FAILs on SPARC)
2014-08-20 Steve Ellcey <sellcey@mips.com>
PR middle-end/49191
* lib/target-supports.exp (check_effective_target_non_strict_align):
Add function description.
From-SVN: r214227
Steve Ellcey [Wed, 20 Aug 2014 15:56:45 +0000 (15:56 +0000)]
re PR middle-end/49191 (gcc.dg/memcpy-3.c FAILs on SPARC)
2014-08-20 Steve Ellcey <sellcey@mips.com>
PR middle-end/49191
* doc/sourcebuild.texi (non_strict_align): New.
From-SVN: r214226
Jan Hubicka [Wed, 20 Aug 2014 13:55:06 +0000 (15:55 +0200)]
cgraphunit.c (ipa_passes, compile): Reshedule symtab_remove_unreachable_nodes passes; update comments.
* cgraphunit.c (ipa_passes, compile): Reshedule
symtab_remove_unreachable_nodes passes; update comments.
* ipa-inline.c (pass_data_ipa_inline): Do not schedule
TODO_remove_functions before the pass; the functions ought to be
already removed.
* ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
TODO_remove_functions.
* passes.c (pass_data_early_local_passes): Do not schedule function
removal.
(execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
* lto.c (read_cgraph_and_symbols): Fix symtab_remove_unreachable_nodes
call.
(do_whole_program_analysis): Only sanity check that IPA passes cleans up.
* testsuite/g++.dg/ipa/devirt-17.C: Update template.
* testsuite/g++.dg/ipa/devirt-16.C: Update template.
From-SVN: r214224
Manuel López-Ibáñez [Wed, 20 Aug 2014 12:48:16 +0000 (12:48 +0000)]
re PR c/59304 (#pragma diagnostic pop after warning fails for options unspecified in the command-line and disabled by default)
gcc/ChangeLog:
2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR c/59304
* opts-common.c (set_option): Call diagnostic_classify_diagnostic
before setting the option.
* diagnostic.c (diagnostic_classify_diagnostic): Record
command-line status.
gcc/testsuite/ChangeLog:
2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR c/59304
* gcc.dg/pr59304.c: New test.
From-SVN: r214221
Mark Wielaard [Wed, 20 Aug 2014 12:32:50 +0000 (12:32 +0000)]
gcc.dg/guality/restrict.c: Add `used' attribute to all variables.
From-SVN: r214219
Richard Biener [Wed, 20 Aug 2014 11:06:48 +0000 (11:06 +0000)]
re PR lto/62190 (LTO DWARF produces __unknown__ type for unsigned int function argument type)
2014-08-20 Richard Biener <rguenther@suse.de>
PR lto/62190
* tree.c (build_common_tree_nodes): Use make_or_reuse_type
to build uint{16,32,64}_type_node.
From-SVN: r214216
Kyrylo Tkachov [Wed, 20 Aug 2014 09:28:25 +0000 (09:28 +0000)]
[testsuite] Mark tests unsupported when relocation truncation occurs on tiny memory targets
* lib/gcc-defs.exp (${tool}_check_unsupported_p):
Return memory full when we have a tiny target and relocation
truncation occurs.
* lib/gcc-dg.exp (gcc-dg-prune): Likewise.
* lib/objc.exp (${tool}_check_unsupported_p): Likewise.
* lib/target-supports.exp (check_effective_target_tiny): New function.
From-SVN: r214215
Terry Guo [Wed, 20 Aug 2014 09:26:46 +0000 (09:26 +0000)]
thumb1.md (64bit splitter): Replace const_double_operand with immediate_operand.
2014-08-20 Terry Guo <terry.guo@arm.com>
* config/arm/thumb1.md (64bit splitter): Replace const_double_operand
with immediate_operand.
From-SVN: r214214
Joost VandeVondele [Wed, 20 Aug 2014 07:08:57 +0000 (09:08 +0200)]
options.c (gfc_init_options_struct): assert that the frontend sets flag_errno_math and flag_associative_math.
gcc/fortran/ChangeLog:
2014-08-20 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
* options.c (gfc_init_options_struct): assert that the frontend sets
flag_errno_math and flag_associative_math.
gcc/testsuite/ChangeLog:
2014-08-20 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
* gfortran.dg/errnocheck_1.f90: New test.
* gfortran.dg/associative_1.f90: New test.
From-SVN: r214211
Marek Polacek [Wed, 20 Aug 2014 04:12:58 +0000 (04:12 +0000)]
cpplib.h (cpp_options): Use signed char.
* include/cpplib.h (cpp_options): Use signed char.
* lex.c (_cpp_lex_direct): Don't warn in C++ mode.
From-SVN: r214210
Jason Merrill [Wed, 20 Aug 2014 02:03:56 +0000 (22:03 -0400)]
re PR tree-optimization/62091 (ice in before_dom_children)
PR tree-optimization/62091
* g++.dg/ipa/devirt-39.C: New.
From-SVN: r214209
David Malcolm [Wed, 20 Aug 2014 01:54:35 +0000 (01:54 +0000)]
Fix issue with NULL as_a in duplicate_insn_chain
2014-08-20 David Malcolm <dmalcolm@redhat.com>
* cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
"insn" from an as_a to a safe_as_a, for the case when "insn" is
NULL.
From-SVN: r214207
GCC Administrator [Wed, 20 Aug 2014 00:16:34 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r214204
Manuel López-Ibáñez [Tue, 19 Aug 2014 22:52:02 +0000 (22:52 +0000)]
re PR preprocessor/51303 (-Wmissing-include-dirs warnings reported as [enabled by default])
gcc/ChangeLog:
2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR preprocessor/51303
* incpath.c (remove_duplicates): Use cpp_warning.
gcc/c-family/ChangeLog:
2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR preprocessor/51303
* c-common.c (struct reason_option_codes_t option_codes):
Add CPP_W_MISSING_INCLUDE_DIRS. Sort alphabetically.
gcc/testsuite/ChangeLog:
2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR preprocessor/51303
* gcc.dg/cpp/Wmissingdirs.c: Test for the warning option.
From-SVN: r214201
Manuel López-Ibáñez [Tue, 19 Aug 2014 22:37:49 +0000 (22:37 +0000)]
re PR preprocessor/60975 (-Wvariadic-macros does not print warning)
gcc/ChangeLog:
2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR c/60975
PR c/53063
* doc/options.texi (CPP): Document it.
* doc/invoke.texi (Wvariadic-macros): Fix documentation.
* optc-gen.awk: Handle CPP.
* opth-gen.awk: Likewise.
gcc/c-family/ChangeLog:
2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR c/60975
PR c/53063
* c.opt (Wvariadic-macros): Use CPP and LangEnabledBy.
* c-opts.c (c_common_handle_option): Call cpp_handle_option_auto.
(c_common_post_options): Call init_global_opts_from_cpp.
(sanitize_cpp_opts): Do not handle Wvariadic-macros here.
gcc/testsuite/ChangeLog:
2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR c/60975
PR c/53063
* gcc.dg/cpp/Wvariadic-1p.c: New test.
From-SVN: r214200
Janis Johnson [Tue, 19 Aug 2014 22:14:40 +0000 (22:14 +0000)]
* lib/target-supports.exp
(check_effective_target_arm_v8_neon_ok_nocache): Add
"-march-armv8-a" to compile flags.
From-SVN: r214198
David Malcolm [Tue, 19 Aug 2014 21:22:25 +0000 (21:22 +0000)]
Return types of unlink_insn_chain and duplicate_insn_chain
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* rtl.h (unlink_insn_chain): Strengthen return type from rtx to
rtx_insn *.
(duplicate_insn_chain): Likewise.
* cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
rtx_insn *, also for locals "prevfirst" and "nextlast". Add a
checked cast for now (until we can strengthen the params in the
same way).
(duplicate_insn_chain): Likewise.
From-SVN: r214197
David Malcolm [Tue, 19 Aug 2014 21:08:18 +0000 (21:08 +0000)]
next_cc0_user and prev_cc0_setter scaffolding
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* rtl.h (next_cc0_user): Strengthen return type from rtx to
rtx_insn *.
(prev_cc0_setter): Likewise.
* emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
rtx_insn *, adding checked casts for now as necessary.
(prev_cc0_setter): Likewise.
From-SVN: r214196
David Malcolm [Tue, 19 Aug 2014 20:51:09 +0000 (20:51 +0000)]
emit_move et al return rtx_insn *
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* expr.h (emit_move_insn): Strengthen return type from rtx to
rtx_insn *.
(emit_move_insn_1): Likewise.
(emit_move_complex_push): Likewise.
(emit_move_complex_parts): Likewise.
* expr.c (emit_move_via_integer): Strengthen return type from rtx
to rtx_insn *. Replace use of NULL_RTX with NULL when working
with insns.
(emit_move_complex_push): Strengthen return type from rtx to
rtx_insn *.
(emit_move_complex): Likewise, also for local "ret".
(emit_move_ccmode): Likewise.
(emit_move_multi_word): Likewise for return type and locals
"last_insn", "seq".
(emit_move_insn_1): Likewise for return type and locals "result",
"ret".
(emit_move_insn): Likewise for return type and local "last_insn".
(compress_float_constant): Likewise.
From-SVN: r214195
David Malcolm [Tue, 19 Aug 2014 20:36:20 +0000 (20:36 +0000)]
emit_* functions return rtx_insn
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
from rtx to rtx_insn *.
* rtl.h (emit_insn_before): Likewise.
(emit_insn_before_noloc): Likewise.
(emit_insn_before_setloc): Likewise.
(emit_jump_insn_before): Likewise.
(emit_jump_insn_before_noloc): Likewise.
(emit_jump_insn_before_setloc): Likewise.
(emit_call_insn_before): Likewise.
(emit_call_insn_before_noloc): Likewise.
(emit_call_insn_before_setloc): Likewise.
(emit_debug_insn_before): Likewise.
(emit_debug_insn_before_noloc): Likewise.
(emit_debug_insn_before_setloc): Likewise.
(emit_label_before): Likewise.
(emit_insn_after): Likewise.
(emit_insn_after_noloc): Likewise.
(emit_insn_after_setloc): Likewise.
(emit_jump_insn_after): Likewise.
(emit_jump_insn_after_noloc): Likewise.
(emit_jump_insn_after_setloc): Likewise.
(emit_call_insn_after): Likewise.
(emit_call_insn_after_noloc): Likewise.
(emit_call_insn_after_setloc): Likewise.
(emit_debug_insn_after): Likewise.
(emit_debug_insn_after_noloc): Likewise.
(emit_debug_insn_after_setloc): Likewise.
(emit_label_after): Likewise.
(emit_insn): Likewise.
(emit_debug_insn): Likewise.
(emit_jump_insn): Likewise.
(emit_call_insn): Likewise.
(emit_label): Likewise.
(gen_clobber): Likewise.
(emit_clobber): Likewise.
(gen_use): Likewise.
(emit_use): Likewise.
(emit): Likewise.
(emit_barrier_before): Strengthen return type from rtx to
rtx_barrier *.
(emit_barrier_after): Likewise.
(emit_barrier): Likewise.
* emit-rtl.c (emit_pattern_before_noloc): Strengthen return type
from rtx to rtx_insn *. Add checked casts for now when converting
"last" from rtx to rtx_insn *.
(emit_insn_before_noloc): Likewise for return type.
(emit_jump_insn_before_noloc): Likewise.
(emit_call_insn_before_noloc): Likewise.
(emit_debug_insn_before_noloc): Likewise.
(emit_barrier_before): Strengthen return type and local "insn"
from rtx to rtx_barrier *.
(emit_label_before): Strengthen return type from rtx to
rtx_insn *. Add checked cast for now when returning param
(emit_pattern_after_noloc): Strengthen return type from rtx to
rtx_insn *. Add checked casts for now when converting "last" from
rtx to rtx_insn *.
(emit_insn_after_noloc): Strengthen return type from rtx to
rtx_insn *.
(emit_jump_insn_after_noloc): Likewise.
(emit_call_insn_after_noloc): Likewise.
(emit_debug_insn_after_noloc): Likewise.
(emit_barrier_after): Strengthen return type from rtx to
rtx_barrier *.
(emit_label_after): Strengthen return type from rtx to rtx_insn *.
Add checked cast for now when converting "label" from rtx to
rtx_insn *.
(emit_pattern_after_setloc): Strengthen return type from rtx to
rtx_insn *. Add checked casts for now when converting "last" from
rtx to rtx_insn *.
(emit_pattern_after): Strengthen return type from rtx to
rtx_insn *.
(emit_insn_after_setloc): Likewise.
(emit_insn_after): Likewise.
(emit_jump_insn_after_setloc): Likewise.
(emit_jump_insn_after): Likewise.
(emit_call_insn_after_setloc): Likewise.
(emit_call_insn_after): Likewise.
(emit_debug_insn_after_setloc): Likewise.
(emit_debug_insn_after): Likewise.
(emit_pattern_before_setloc): Likewise. Add checked casts for now
when converting "last" from rtx to rtx_insn *.
(emit_pattern_before): Strengthen return type from rtx to
rtx_insn *.
(emit_insn_before_setloc): Likewise.
(emit_insn_before): Likewise.
(emit_jump_insn_before_setloc): Likewise.
(emit_jump_insn_before): Likewise.
(emit_call_insn_before_setloc): Likewise.
(emit_call_insn_before): Likewise.
(emit_debug_insn_before_setloc): Likewise.
(emit_debug_insn_before): Likewise.
(emit_insn): Strengthen return type and locals "last", "insn",
"next" from rtx to rtx_insn *. Add checked cast to rtx_insn
within cases where we know we have an insn.
(emit_debug_insn): Likewise.
(emit_jump_insn): Likewise.
(emit_call_insn): Strengthen return type and local "insn" from rtx
to rtx_insn *.
(emit_label): Strengthen return type from rtx to rtx_insn *. Add
a checked cast to rtx_insn * for now on "label".
(emit_barrier): Strengthen return type from rtx to rtx_barrier *.
(emit_clobber): Strengthen return type from rtx to rtx_insn *.
(emit_use): Likewise.
(gen_use): Likewise, also for local "seq".
(emit): Likewise for return type and local "insn".
(rtx_insn): Likewise for return type and local "new_rtx".
* cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
from rtx to rtx_barrier *.
* config/sh/sh.c (output_stack_adjust): Since emit_insn has
changed return type from rtx to rtx_insn *, we must update
"emit_fn" type, and this in turn means updating...
(frame_insn): ...this. Strengthen return type from rtx to
rtx_insn *. Introduce a new local "insn" of the appropriate type.
From-SVN: r214194
David Malcolm [Tue, 19 Aug 2014 20:22:09 +0000 (20:22 +0000)]
emit_jump_table_data returns an rtx_jump_table_data *
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* emit-rtl.c (emit_jump_table_data): Strengthen return type from
rtx to rtx_jump_table_data *. Also for local.
* rtl.h (emit_jump_table_data): Likewise.
From-SVN: r214193
David Malcolm [Tue, 19 Aug 2014 20:08:20 +0000 (20:08 +0000)]
Convert various rtx to rtx_note *
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* basic-block.h (create_basic_block_structure): Strengthen third
param "bb_note" from rtx to rtx_note *.
* rtl.h (emit_note_before): Strengthen return type from rtx to
rtx_note *.
(emit_note_after): Likewise.
(emit_note): Likewise.
(emit_note_copy): Likewise. Also, strengthen param similarly.
* function.h (struct rtl_data): Strengthen field
"x_stack_check_probe_note" from rtx to rtx_note *.
* cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
from rtx to rtx_note *.
* cfgrtl.c (create_basic_block_structure): Strengthen third param
"bb_note" from rtx to rtx_note *.
(duplicate_insn_chain): Likewise for local "last". Add a checked cast
when calling emit_note_copy.
* emit-rtl.c (make_note_raw): Strengthen return type from rtx to
rtx_note *.
(emit_note_after): Likewise.
(emit_note_before): Likewise.
(emit_note_copy): Likewise. Also, strengthen param similarly.
(emit_note): Likewise.
* except.c (emit_note_eh_region_end): Likewise for return type.
Strengthen local "next" from rtx to rtx_insn *.
(convert_to_eh_region_ranges): Strengthen local "note"
from rtx to rtx_note *.
* final.c (change_scope): Likewise.
(reemit_insn_block_notes): Likewise, for both locals named "note".
Also, strengthen local "insn" from rtx to rtx_insn *.
* haifa-sched.c (sched_extend_bb): Strengthen local "note" from
rtx to rtx_note *.
* reg-stack.c (compensate_edge): Likewise for local "after". Also,
strengthen local "seq" from rtx to rtx_insn *.
* reload1.c (reload_as_needed): Strengthen local "marker" from rtx
to rtx_note *.
* sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
vec<rtx_note *>.
(get_bb_note_from_pool): Strengthen return type from rtx to
rtx_note *.
(sel_create_basic_block): Strengthen local "new_bb_note" from
insn_t to rtx_note *.
* var-tracking.c (emit_note_insn_var_location): Strengthen local
"note" from rtx to rtx_note *.
(emit_notes_in_bb): Likewise.
From-SVN: r214192
David Malcolm [Tue, 19 Aug 2014 19:57:18 +0000 (19:57 +0000)]
rtl_data.x_parm_birth_insn is an insn
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* function.h (struct rtl_data): Strengthen field
"x_parm_birth_insn" from rtx to rtx_insn *.
* function.c (struct assign_parm_data_all): Strengthen fields
"first_conversion_insn" and "last_conversion_insn" from rtx to
rtx_insn *.
From-SVN: r214191
David Malcolm [Tue, 19 Aug 2014 19:52:55 +0000 (19:52 +0000)]
cfgexpand.c: Use rtx_insn
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* cfgexpand.c (expand_used_vars): Strengthen return type from rtx
to rtx_insn *; also for local "var_end_seq".
(maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
(maybe_cleanup_end_of_block): Likewise for param "last" and local
"insn".
(expand_gimple_cond): Likewise for locals "last2" and "last".
(mark_transaction_restart_calls): Likewise for local "insn".
(expand_gimple_stmt): Likewise for return type and locals "last"
and "insn".
(expand_gimple_tailcall): Likewise for locals "last2" and "last".
(avoid_complex_debug_insns): Likewise for param "insn".
(expand_debug_locations): Likewise for locals "insn", "last",
"prev_insn" and "insn2".
(expand_gimple_basic_block): Likewise for local "last".
(construct_exit_block): Likewise for locals "head", "end",
"orig_end".
(pass_expand::execute): Likewise for locals "var_seq",
"var_ret_seq", "next".
From-SVN: r214190
David Malcolm [Tue, 19 Aug 2014 19:48:08 +0000 (19:48 +0000)]
asan_emit_stack_protection returns an insn
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* asan.h (asan_emit_stack_protection): Strengthen return type from
rtx to rtx_insn *.
* asan.c (asan_emit_stack_protection): Likewise. Add local
"insns" to hold the return value.
From-SVN: r214189
David Malcolm [Tue, 19 Aug 2014 19:43:08 +0000 (19:43 +0000)]
bb_note returns a rtx_note *
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* basic-block.h (bb_note): Strengthen return type from rtx to
rtx_note *.
* sched-int.h (bb_note): Likewise.
* cfgrtl.c (bb_note): Likewise. Add a checked cast to rtx_note *.
From-SVN: r214188
David Malcolm [Tue, 19 Aug 2014 19:38:12 +0000 (19:38 +0000)]
make_insn_raw returns an rtx_insn
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* rtl.h (make_insn_raw): Strengthen return type from rtx to
rtx_insn *.
* emit-rtl.c (make_insn_raw): Strengthen return type and local
"insn" from rtx to rtx_insn *.
(make_debug_insn_raw): Strengthen return type from rtx to
rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
(make_jump_insn_raw): Strengthen return type from rtx to
rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
(make_call_insn_raw): Strengthen return type from rtx to
rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
(emit_pattern_before_noloc): Strengthen return type of "make_raw"
callback from rtx to rtx_insn *; likewise for local "insn" and
"next", adding a checked cast to rtx_insn in the relevant cases of
the switch statement.
(emit_pattern_after_noloc): Strengthen return type of "make_raw"
callback from rtx to rtx_insn *.
(emit_pattern_after_setloc): Likewise.
(emit_pattern_after): Likewise.
(emit_pattern_before_setloc): Likewise.
(emit_pattern_before): Likewise.
From-SVN: r214187
David Malcolm [Tue, 19 Aug 2014 19:33:21 +0000 (19:33 +0000)]
last_call_insn returns an rtx_call_insn *
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* emit-rtl.c (last_call_insn): Strengthen return type from rtx to
rtx_call_insn *.
* rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
accepting an rtx_insn *.
(last_call_insn): Strengthen return type from rtx to
rtx_call_insn *.
From-SVN: r214186
David Malcolm [Tue, 19 Aug 2014 19:27:29 +0000 (19:27 +0000)]
delete_trivially_dead_insns works on insns
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* rtl.h (delete_trivially_dead_insns): Strengthen initial param
"insns" from rtx to rtx_insn *.
* cse.c (delete_trivially_dead_insns): Likewise, also do it for
locals "insn" and "prev".
From-SVN: r214185
David Malcolm [Tue, 19 Aug 2014 19:19:13 +0000 (19:19 +0000)]
Make tablejump_p accept a rtx_jump_table_data **
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* rtl.h (tablejump_p): Strengthen third param from rtx * to
rtx_jump_table_data **.
* cfgbuild.c (make_edges): Introduce local "table", using it in
place of "tmp" for jump table data.
(find_bb_boundaries): Strengthen local "table" from rtx to
rtx_jump_table_data *.
* cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
(outgoing_edges_match): Likewise for locals "table1" and "table2".
(try_crossjump_to_edge): Likewise.
* cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
"table".
(patch_jump_insn): Introduce local "table", using it in place of
"tmp" for jump table data.
(force_nonfallthru_and_redirect): Introduce local "table", so that
call to tablejump_p can receive an rtx_jump_table_data **. Update
logic around the call to overwrite "note" appropriately if
tablejump_p returns non-zero.
(get_last_bb_insn): Introduce local "table", using it in place of
"tmp" for jump table data.
* dwarf2cfi.c (create_trace_edges): Likewise.
* config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
from rtx to rtx_jump_table_data *.
(create_fix_barrier): Strengthen local "tmp" from rtx to
rtx_jump_table_data *.
(arm_reorg): Likewise for local "table".
* config/s390/s390.c (s390_chunkify_start): Likewise.
* config/spu/spu.c (spu_emit_branch_hint): Likewise.
* jump.c (delete_related_insns): Strengthen local "lab_next" from
rtx to rtx_jump_table_data *.
* rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
rtx_jump_table_data **. Add a checked cast when writing through
the pointer: we know there that local "table" is non-NULL and that
JUMP_TABLE_DATA_P (table) holds.
(label_is_jump_target_p): Introduce local "table", using it in
place of "tmp" for jump table data.
From-SVN: r214184
Marek Polacek [Tue, 19 Aug 2014 18:50:00 +0000 (18:50 +0000)]
re PR c++/62153 (warn for bool expression compared with integer different from 0/1)
PR c++/62153
* doc/invoke.texi: Document -Wbool-compare.
c-family/
* c-common.c (maybe_warn_bool_compare): New function.
* c-common.h (maybe_warn_bool_compare): Declare.
* c.opt (Wbool-compare): New option.
c/
* c-typeck.c (build_binary_op): If either operand of a comparison
is a boolean expression, call maybe_warn_bool_compare.
cp/
* call.c (build_new_op_1): Remember the type of arguments for
a comparison. If either operand of a comparison is a boolean
expression, call maybe_warn_bool_compare.
testsuite/
* c-c++-common/Wbool-compare-1.c: New test.
From-SVN: r214183
David Malcolm [Tue, 19 Aug 2014 18:44:41 +0000 (18:44 +0000)]
entry_of_function returns an insn
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* rtl.h (entry_of_function): Strengthen return type from rtx to
rtx_insn *.
* cfgrtl.c (entry_of_function): Likewise.
From-SVN: r214182
Jason Merrill [Tue, 19 Aug 2014 18:25:45 +0000 (14:25 -0400)]
re PR tree-optimization/62091 (ice in before_dom_children)
PR tree-optimization/62091
* decl2.c (decl_needed_p): Return true for virtual functions when
devirtualizing.
From-SVN: r214181
David Malcolm [Tue, 19 Aug 2014 18:24:21 +0000 (18:24 +0000)]
Return rtx_insn from get_insns/get_last_insn
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* emit-rtl.h (get_insns): Strengthen return type from rtx to
rtx_insn *, adding a checked cast for now.
(get_last_insn): Likewise.
From-SVN: r214180
David Malcolm [Tue, 19 Aug 2014 18:12:51 +0000 (18:12 +0000)]
Strengthen return type of gen_label_rtx
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* rtl.h (gen_label_rtx): Strengthen return type from rtx to
rtx_code_label *.
* emit-rtl.c (gen_label_rtx): Likewise.
From-SVN: r214179
David Malcolm [Tue, 19 Aug 2014 17:39:08 +0000 (17:39 +0000)]
Strengthen return types of various {next|prev}_*insn from rtx to rtx_insn *
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* rtl.h (previous_insn): Strengthen return type from rtx to
rtx_insn *.
(next_insn): Likewise.
(prev_nonnote_insn): Likewise.
(prev_nonnote_insn_bb): Likewise.
(next_nonnote_insn): Likewise.
(next_nonnote_insn_bb): Likewise.
(prev_nondebug_insn): Likewise.
(next_nondebug_insn): Likewise.
(prev_nonnote_nondebug_insn): Likewise.
(next_nonnote_nondebug_insn): Likewise.
(prev_real_insn): Likewise.
(next_real_insn): Likewise.
(prev_active_insn): Likewise.
(next_active_insn): Likewise.
* emit-rtl.c (next_insn): Strengthen return type from rtx to
rtx_insn *, adding a checked cast.
(previous_insn): Likewise.
(next_nonnote_insn): Likewise.
(next_nonnote_insn_bb): Likewise.
(prev_nonnote_insn): Likewise.
(prev_nonnote_insn_bb): Likewise.
(next_nondebug_insn): Likewise.
(prev_nondebug_insn): Likewise.
(next_nonnote_nondebug_insn): Likewise.
(prev_nonnote_nondebug_insn): Likewise.
(next_real_insn): Likewise.
(prev_real_insn): Likewise.
(next_active_insn): Likewise.
(prev_active_insn): Likewise.
* config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
param "stepfunc" so that it returns an rtx_insn * rather than an
rtx, to track the change to prev_nonnote_insn_bb, which is the
only function this is called with.
* config/sh/sh.c (sh_find_set_of_reg): Likewise.
From-SVN: r214178
Jason Merrill [Tue, 19 Aug 2014 17:29:41 +0000 (13:29 -0400)]
re PR lto/53808 (Undefined symbol when building a library with lto)
PR lto/53808
PR c++/61659
* decl.c (maybe_commonize_var): Don't use DECL_COMDAT to trigger
comdat_linkage.
From-SVN: r214177
Jan Hubicka [Tue, 19 Aug 2014 17:11:57 +0000 (19:11 +0200)]
ipa-visibility.c (update_visibility_by_resolution_info): Fix assert.
* ipa-visibility.c (update_visibility_by_resolution_info): Fix
assert.
From-SVN: r214174
David Malcolm [Tue, 19 Aug 2014 16:57:10 +0000 (16:57 +0000)]
Add subclasses for the various kinds of instruction
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* coretypes.h (class rtx_debug_insn): Add forward declaration.
(class rtx_nonjump_insn): Likewise.
(class rtx_jump_insn): Likewise.
(class rtx_call_insn): Likewise.
(class rtx_jump_table_data): Likewise.
(class rtx_barrier): Likewise.
(class rtx_code_label): Likewise.
(class rtx_note): Likewise.
* rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
adding the invariant DEBUG_INSN_P (X).
(class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
the invariant NONJUMP_INSN_P (X).
(class rtx_jump_insn): New, a subclass of rtx_insn, adding
the invariant JUMP_P (X).
(class rtx_call_insn): New, a subclass of rtx_insn, adding
the invariant CALL_P (X).
(class rtx_jump_table): New, a subclass of rtx_insn, adding the
invariant JUMP_TABLE_DATA_P (X).
(class rtx_barrier): New, a subclass of rtx_insn, adding the
invariant BARRIER_P (X).
(class rtx_code_label): New, a subclass of rtx_insn, adding
the invariant LABEL_P (X).
(class rtx_note): New, a subclass of rtx_insn, adding
the invariant NOTE_P(X).
(is_a_helper <rtx_debug_insn *>::test): New.
(is_a_helper <rtx_nonjump_insn *>::test): New.
(is_a_helper <rtx_jump_insn *>::test): New.
(is_a_helper <rtx_call_insn *>::test): New.
(is_a_helper <rtx_jump_table_data *>::test): New functions,
overloaded for both rtx and rtx_insn *.
(is_a_helper <rtx_barrier *>::test): New.
(is_a_helper <rtx_code_label *>::test): New functions, overloaded
for both rtx and rtx_insn *.
(is_a_helper <rtx_note *>::test): New.
From-SVN: r214172
Marek Polacek [Tue, 19 Aug 2014 16:45:07 +0000 (16:45 +0000)]
alpha.h (CLZ_DEFINED_VALUE_AT_ZERO, [...]): Return 0/1 rather than bool.
* config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
* config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
From-SVN: r214171
David Malcolm [Tue, 19 Aug 2014 16:39:52 +0000 (16:39 +0000)]
BND_TO scaffolding
gcc/
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* sel-sched-ir.h (BND_TO): insn_t will eventually be an
rtx_insn *. To help with transition, for now, convert from an
access macro into a pair of functions: BND_TO, returning an
rtx_insn *, and...
(SET_BND_TO): New function, for use where BND_TO is used as an
lvalue.
* sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
SET_BND_TO.
(BND_TO): New function, adding a checked cast.
(SET_BND_TO): New function.
* sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
SET_BND_TO.
(compute_av_set_on_boundaries): Likewise.
/
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* rtx-classes-status.txt (TODO): Add SET_BND_TO
From-SVN: r214170
H.J. Lu [Tue, 19 Aug 2014 16:26:35 +0000 (16:26 +0000)]
Don't clear destination if it is used in source
* config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
destination if it is used in source.
(*clz<mode>2_lzcnt_falsedep_1): Likewise.
(*popcount<mode>2_falsedep_1): Likewise.
From-SVN: r214169
H.J. Lu [Tue, 19 Aug 2014 16:23:36 +0000 (16:23 +0000)]
Set install_gold_as_default to no first
PR other/62168
* configure.ac: Set install_gold_as_default to no first.
* configure: Regenerated.
From-SVN: r214168
David Malcolm [Tue, 19 Aug 2014 16:00:59 +0000 (16:00 +0000)]
BB_NOTE_LIST scaffolding
gcc/
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
"note_list" field will eventually be an rtx_insn *. To help with
transition, for now, convert from an access macro into a pair of
functions: BB_NOTE_LIST, returning an rtx_insn *, and...
(SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
used as an lvalue.
* sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
of BB_NOTE_LIST to SET_BB_NOTE_LIST.
* sel-sched-ir.c (init_bb): Likewise.
(sel_restore_notes): Likewise.
(move_bb_info): Likewise.
(BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
(SET_BB_NOTE_LIST): New function.
/
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* rtx-classes-status.txt (TODO): Add SET_BB_NOTE_LIST.
From-SVN: r214167
Marek Polacek [Tue, 19 Aug 2014 15:52:02 +0000 (15:52 +0000)]
* lex.c (_cpp_lex_direct): Fix a typo.
From-SVN: r214166
David Malcolm [Tue, 19 Aug 2014 15:42:24 +0000 (15:42 +0000)]
VINSN_INSN_RTX scaffolding
gcc/
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
field will eventually be an rtx_insn *. To help with transition,
for now, convert from an access macro into a pair of functions:
VINSN_INSN_RTX, returning an rtx_insn *, and...
(SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
is used as an lvalue.
* sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
SET_VINSN_INSN_RTX where it's used as an lvalue.
(VINSN_INSN_RTX): New function.
(SET_VINSN_INSN_RTX): New function.
/
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* rtx-classes-status.txt (TODO): Add SET_VINSN_INSN_RTX.
From-SVN: r214165
David Malcolm [Tue, 19 Aug 2014 15:31:23 +0000 (15:31 +0000)]
DEP_PRO/DEP_CON scaffolding
gcc/
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
eventually be rtx_insn *, but to help with transition, for now,
convert from an access macro into a pair of functions: DEP_PRO
returning an rtx_insn * and...
(SET_DEP_PRO): New function, for use where DEP_PRO is used as an
lvalue, returning an rtx&.
(DEP_CON): Analogous changes to DEP_PRO above.
(SET_DEP_CON): Likewise.
* haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
an lvalue to SET_DEP_CON.
* sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
(sd_copy_back_deps): Likewise for DEP_CON.
(DEP_PRO): New function, adding a checked cast for now.
(DEP_CON): Likewise.
(SET_DEP_PRO): New function.
(SET_DEP_CON): Likewise.
/
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* rtx-classes-status.txt (TODO): Add SET_DEP_PRO, SET_DEP_CON.
From-SVN: r214164
Yaakov Selkowitz [Tue, 19 Aug 2014 15:25:12 +0000 (15:25 +0000)]
os_defines.h (_GLIBCXX_THREAD_ATEXIT_WIN32): Define.
2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
Kai Tietz <ktietz@redhat.com>
* config/os/mingw32-w64/os_defines.h (_GLIBCXX_THREAD_ATEXIT_WIN32):
Define.
* config/os/newlib/os_defines.h (_GLIBCXX_THREAD_ATEXIT_WIN32):
Ditto.
* libsupc++/atexit_thread.cc [_GLIBCXX_THREAD_ATEXIT_WIN32]:
#include <windows.h>.
(struct elt): Add dll member.
(run): Decrement dll refcount.
(__cxxabiv1::__cxa_thread_atexit): Increment dll refcount.
Co-Authored-By: Kai Tietz <ktietz@redhat.com>
From-SVN: r214163
Yaakov Selkowitz [Tue, 19 Aug 2014 15:22:59 +0000 (15:22 +0000)]
cygming-crtend.c (register_frame_ctor): Move atexit call from here...
2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
* config/i386/cygming-crtend.c (register_frame_ctor): Move atexit
call from here...
* config/i386/cygming-crtbegin.c (__gcc_register_frame): to here.
(__dso_handle): Define on Cygwin.
* config/i386/t-cygming (crtbeginS.o): New rule.
* config.host (*-*-cygwin*): Add crtbeginS.o to extra_parts.
From-SVN: r214162
Yaakov Selkowitz [Tue, 19 Aug 2014 15:21:22 +0000 (15:21 +0000)]
config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
* config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
(extra_options): Add i386/cygwin.opt.
* config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
(CPP_SPEC): Accept -pthread.
(LINK_SPEC): Ditto.
(GOMP_SELF_SPECS): Update comment.
* config/i386/cygwin.opt: New file for -pthread flag.
From-SVN: r214161
David Malcolm [Tue, 19 Aug 2014 15:18:42 +0000 (15:18 +0000)]
Convert DF_REF_INSN to a function for now
gcc/
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* df-core.c (DF_REF_INSN): New, using a checked cast for now.
* df.h (DF_REF_INSN): Convert from a macro to a function, so
that we can return an rtx_insn *.
/
2014-08-19 David Malcolm <dmalcolm@redhat.com>
* rtx-classes-status.txt (TODO): Add DF_REF_INSN.
From-SVN: r214160
Joost VandeVondele [Tue, 19 Aug 2014 15:15:33 +0000 (15:15 +0000)]
MAINTAINERS (Write After Approval): Add myself.
2014-08-19 Joost VandeVondele <vondele@gcc.gnu.org>
* MAINTAINERS (Write After Approval): Add myself.
From-SVN: r214159
Yaakov Selkowitz [Tue, 19 Aug 2014 15:03:42 +0000 (15:03 +0000)]
cygwin.h (LINK_SPEC): Pass --tsaware flag only when building executables, not DLLs.
2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
* config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
when building executables, not DLLs. Add --large-address-aware
under the same conditions.
* config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
when building executables, not DLLs. Add --large-address-aware
under the same conditions when using -m32.
From-SVN: r214158