1. 29 Sep, 2004 8 commits
    • Oops - fix typo in ChangeLog. · ac973ace
      From-SVN: r88272
      Per Bothner committed
    • profile.c (brnahc_prob): Pass correct value to output_location, even when USE_MAPPED_LOCATION. · 50fd1c97
      
      	* profile.c (brnahc_prob):  Pass correct value to output_location,
      	even when USE_MAPPED_LOCATION.  Fixes bug from 09-11.
      
      From-SVN: r88271
      Per Bothner committed
    • re PR middle-end/17525 (ICE in emit_move_insn (non-BLKmode arg)) · 550f100c
              PR middle-end/17525
              * class.c (build_base_field): Set TYPE_MODE.
      
      From-SVN: r88270
      Jason Merrill committed
    • re PR tree-optimization/15089 (local register variable with a specified register is bad) · aa24864c
              PR 15089
              * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
              * tree-flow.h (may_propagate_copy_into_asm): Declare.
              * tree-ssa-ccp.c (replace_uses_in): Use it.
              * tree-ssa-dom.c (cprop_operand): Likewise.
      
      From-SVN: r88269
      Richard Henderson committed
    • tree-ssa-threadupdate.c (create_block_for_threading): Request that no outgoing… · e376fe58
      tree-ssa-threadupdate.c (create_block_for_threading): Request that no outgoing edges be left in the duplicate block.
      
      
      	* tree-ssa-threadupdate.c (create_block_for_threading):  Request
      	that no outgoing edges be left in the duplicate block.  Do no
      	update information on outgoing edges or PHI nodes in target
      	blocks here.
      	(remove_ctrl_stmt_and_useless_edges): Renamed from
      	remove_last_stmt_and_useless_edges.  Handle case where the
      	block is empty or has no control statements.  Do not update edge
      	flags here.
      	(thread_block): Create a template block rather than copying the
      	original block every time.  Create outgoing edges from the
      	duplicate blocks and update PHIs at the target of the outgoing
      	edges here.  Fix edge flags for the original block if necessary.
      	* cfghooks (duplicate_block): No longer assert that the original
      	block has incoming edges.
      
      From-SVN: r88267
      Jeff Law committed
    • extend.texi (Extended Asm): Add blurb about using Explicit Reg Vars to enforce… · 805c33df
      extend.texi (Extended Asm): Add blurb about using Explicit Reg Vars to enforce register allocation with...
      
      	* doc/extend.texi (Extended Asm): Add blurb about using Explicit
      	Reg Vars to enforce register allocation with general constraints.
      	(Explicit Reg Vars): Clarify relation to asm statements.
      	(Local Reg Vars): Similar.
      
      From-SVN: r88265
      Hans-Peter Nilsson committed
    • sched-rgn.c (haifa_edge, [...]): Remove. · dcda8480
      	* sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
      	TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
      	build_control_flow, new_edge): Remove.
      	(schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
      	(bitlst, bitlst_table_last, bitlst_table): Remove.
      	(bblst): Store basic_block pointer instead of block index.
      	(bblst_table): Likewise.
      	(edgelst): Store edge pointer instead of edge index.
      	(edgelst_table, edgelst_last): New variables.
      	(extract_bitlst): Rename to ...
      	(extract_edgelst): ... this.  Return edge pointers, not indices.
      	(split_edges): Update call.
      	(rgn_edges): Store edge pointers instead of indices.
      	(edge_to_bit): Remove.
      	(EDGE_TO_BIT): Store per-region edge index in edge->aux.
      	(SET_EDGE_TO_BIT): New macro.
      	(is_cfg_nonregular): Check for simple cases of unreachable blocks.
      	(find_rgns): Remove edge_list parameter.  Traverse standard CFG
      	data structures instead of haifa_edge et al.  Use edge pointers
      	instead of edge indices everywhere.
      	(compute_dom_prob_ps): Use standard CFG data structures.  Account
      	for exit edges.
      	(compute_trg_info): Likewise.
      	(propagate_deps): Likewise.
      	(debug_candidate): Account for bblst data structure change.
      	(check_live_1, update_live_1, is_pfree): Likewise.
      	(IS_REACHABLE): Use standard CFG data structures.
      	(init_ready_list): Update bblst_table/edgelst_table allocation.
      	(schedule_region): Update alloc/cleanup code to data structure
      	changes.  Use edge->aux to store per-region edge index.
      	(init_regions): No longer call build_control_flow.  Do not
      	create edge list any more.
      
      From-SVN: r88264
      Ulrich Weigand committed
    • Daily bump. · f7deb4e9
      From-SVN: r88262
      GCC Administrator committed
  2. 28 Sep, 2004 32 commits
    • cse.c (cse_insn): Avoid creating direct non-local jumps. · 2f39b6ca
      	* cse.c (cse_insn): Avoid creating direct non-local jumps.
      	* combine.c (can_combine_p): Likewise.
      	* local-alloc. (update_equiv_regs): Likewise.
      
      From-SVN: r88258
      Ulrich Weigand committed
    • re PR tree-optimization/17531 ([ivopts] ICE compiling gzip deflate.c) · b0b324b0
              PR 17531
              * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
              Don't check VOIDmode here.  Force PLUS operands to common type.
              (expand_expr_addr_expr): Do VOIDmode check earlier.  Force use of
              Pmode if given a non pointer type.
      
              PR 17531
              * optabs.c (expand_binop): Force constants to the correct mode.
      
      From-SVN: r88257
      Richard Henderson committed
    • re PR driver/17537 (g++ not passing -lstdc++ to linker when -l is only supplied) · 078208eb
      
      	PR driver/17537
      	* g++spec.c (lang_specific_driver): Unrecognized libraries, other
      	than -lc and -lm, may require linking against libstc++.
      
      From-SVN: r88256
      Roger Sayle committed
    • * jni.cc (_Jv_JNI_RegisterNatives): Formatting fixlets. · 252d7884
      From-SVN: r88255
      Tom Tromey committed
    • s390.c (s390_adjust_cost): Remove. · ea77e738
      	* config/s390/s390.c (s390_adjust_cost): Remove.
      	(TARGET_SCHED_ADJUST_COST): Do not redefine.
      	(s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
      	* config/s390/s390.md ("main_pool"): Use "larl" type
      	attribute if TARGET_CPU_ZARCH.
      
      From-SVN: r88254
      Ulrich Weigand committed
    • ia64.c (ia64_expand_prologue): Declare ei variable. · 9924d7d8
      	* config/ia64/ia64.c (ia64_expand_prologue): Declare ei
      	variable.
      
      From-SVN: r88253
      Jakub Jelinek committed
    • tree-ssa-loop.c (pass_record_bounds): Do not assign a name to the pass. · 81842e1b
      
      	* tree-ssa-loop.c (pass_record_bounds): Do not assign a
      	name to the pass.
      
      From-SVN: r88252
      Diego Novillo committed
    • re PR libgcj/17222 (libjava fails to build due to command line length during link) · bd1c8428
      	PR libgcj/17222:
      	* Makefile.am (libgcj.la): Restored.
      	* Makefile.in: Rebuilt.
      
      From-SVN: r88251
      Tom Tromey committed
    • common.opt (flag_gcse_sm): Disable by default. · 21ef99b8
      	* common.opt (flag_gcse_sm): Disable by default.
      	(flag_gcse_las): Likewise.
      	(flag_web): Likewise.  Create from this file.
      	* flags.h: Remove flag_web declaration.
      	* toplev.c (flag_web): Likewise.
      	(process_options): Never set flag_web.
      
      From-SVN: r88250
      Steven Bosscher committed
    • Makefile.in (tree-ssa-propagate.o): Depend on vec.h. · 78492bf5
      	* Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
      	* tree-ssa-propagate.c: Include vec.h.
      	(interesting_ssa_edges, varying_ssa_edges): Make these VECs
      	instead of varrays.
      	(cfg_blocks_add): Assert the block is not already in the worklist.
      	Update uses of interesting_ssa_edges and varying_ssa_edges.
      	(process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
      	ssa_propagate): Likewise.
      
      From-SVN: r88249
      Steven Bosscher committed
    • re PR c/16409 (ICE in size_binop, at fold-const.c) · ef787822
      	PR c/16409
      	* c-decl.c (start_decl): Check for initializing incomplete array
      	of VLAs.
      	(build_compound_literal): Check for TYPE being error_mark_node.
      	* c-parse.in (primary): Check for VLA compound literals.
      
      testsuite:
      	* gcc.dg/vla-init-2.c, gcc.dg/vla-init-3.c, gcc.dg/vla-init-4.c,
      	gcc.dg/vla-init-5.c: New tests.
      
      From-SVN: r88248
      Joseph Myers committed
    • re PR java/15710 (ICE: tree check: expected class 'E', have 'c' (integer_cst) in make_class_data) · 346c5b01
      	PR java/15710:
      	* class.c (add_miranda_methods): Load superinterface if not
      	already loaded.
      
      From-SVN: r88243
      Tom Tromey committed
    • tree-ssa-live.c (calculate_live_on_entry): Fix warnings with --disable-checking. · c3b8e9aa
      	* tree-ssa-live.c (calculate_live_on_entry): Fix warnings
      	with --disable-checking.
      
      From-SVN: r88241
      Diego Novillo committed
    • re PR java/17586 (kawa build fails with ICE) · 1679340f
      2004-09-28  Andrew Haley  <aph@redhat.com>
      
      	PR java/17586
      	* jcf-parse.c (load_class): Don't try to read a class that we've
      	already read.
      
      From-SVN: r88239
      Andrew Haley committed
    • sh.h (INIT_CUMULATIVE_ARGS): Replace with an invocation of the function sh_init_cumulative_args. · cc15e98f
      sh.h (INIT_CUMULATIVE_ARGS): Replace with an invocation of the function
        sh_init_cumulative_args.
        (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
        (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
      sh-protos.h: Prototype sh_init_cumulative_args.
      sh.c (sh_init_cumulative_args): New function based on the contents of the old
        INIT_CUMULATIVE_ARGS macro but with a heuristic added to determine the setting
        of force_mem when a library function is being called.
      
      From-SVN: r88238
      Nick Clifton committed
    • tree-ssa-loop-im.c (single_reachable_address): Skip constant arguments. · ee1f0fb0
      
      	* tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
      	Skip constant arguments.
      
      From-SVN: r88237
      Diego Novillo committed
    • jcf-parse.c (load_class): Back out previous broken patch. · 46d82a27
      2004-09-28  Andrew Haley  <aph@redhat.com>
      
      	* jcf-parse.c (load_class): Back out previous broken patch.
      
      From-SVN: r88234
      Andrew Haley committed
    • re PR java/17586 (kawa build fails with ICE) · 03ec093d
      2004-09-28  Andrew Haley  <aph@redhat.com>
      
      	PR java/17586
      	* jcf-parse.c (load_class): Don't try to read a class that we've
      	already read.
      	Check that we really did read the right class.
      
      From-SVN: r88233
      Andrew Haley committed
    • tree-ssa-alias.c (create_name_tags): If PTR points to a volatile type, mark the tag volatile. · 38e05395
      
      	* tree-ssa-alias.c (create_name_tags): If PTR points to a
      	volatile type, mark the tag volatile.
      	(get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
      	volatile.
      
      From-SVN: r88232
      Diego Novillo committed
    • tree.def (vec_cond_expr): Fix. · 45fbb186
      2004-09-28  Andrew Pinski  <pinskia@physics.uc.edu>
      
              * tree.def (vec_cond_expr): Fix. Change 'e'
              to tcc_expression.
      
      From-SVN: r88231
      Andrew Pinski committed
    • * basic-block.h: Fix a comment typo. · c2b7c2d8
      From-SVN: r88230
      Kazu Hirata committed
    • * tree.c: Fix a comment typo. · f9f1c24e
      From-SVN: r88229
      Kazu Hirata committed
    • * optabs.c, optabs.h: Fix comment typos. · 6dbd43ba
      From-SVN: r88228
      Kazu Hirata committed
    • sparc.md (call_address_struct_value_sp32): Properly mask the immediate field of… · ecaa611b
      sparc.md (call_address_struct_value_sp32): Properly mask the immediate field of the 'unimp' instruction.
      
      	* config/sparc/sparc.md (call_address_struct_value_sp32):
      	Properly mask the immediate field of the 'unimp' instruction.
      	(call_symbolic_struct_value_sp32): Likewise.
      
      From-SVN: r88227
      Eric Botcazou committed
    • URLConnection.java: Reformatted. · 95b88040
      2004-09-28  Michael Koch  <konqueror@gmx.de>
      
      	* java/net/URLConnection.java: Reformatted.
      	* java/net/URLClassLoader.java: Reformatted.
      	(getContent): Reordered return of content.
      	(getContentHandler): Don't check for null explicitely.
      
      From-SVN: r88226
      Michael Koch committed
    • [multiple changes] · 1165dc50
      2004-09-28  Paolo Carlini  <pcarlini@suse.de>
      
      	PR libstdc++/16612
      	* include/bits/basic_string.h (_M_dispose, _M_refcopy,
      	basic_string()): When _GLIBCXX_FULLY_DYNAMIC_STRING is defined,
      	don't deal with _S_empty_rep.
      	* include/bits/basic_string.tcc (_S_construct, _M_destroy,
      	_M_leak_hard, _M_mutate): Likewise.
      	* acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): New.
      	* acconfig.h: Add corresponding undef.
      	* configure.ac: Use GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING.
      	* docs/html/configopts.html: Document --enable-fully-dynamic-string.
      	* configure: Regenerate.
      	* config.h.in: Likewise.
      
      2004-09-28  Benjamin Kosnik  <bkoz@redhat.com>
                  Paolo Carlini  <pcarlini@suse.de>
      
      	* testsuite/21_strings/basic_string/operations/char/1.cc: New.
      	* testsuite/21_strings/basic_string/operations/wchar_t/1.cc: New.
      	* testsuite/21_strings/basic_string/element_access/char/empty.cc: New.
      	* testsuite/21_strings/basic_string/element_access/wchar_t/empty.cc:
      	New.
      
      2004-09-28  Paolo Carlini  <pcarlini@suse.de>
      
      	* README: Remove obsolete entry about include/c_shadow.
      
      From-SVN: r88225
      Paolo Carlini committed
    • class.c (VTT_TOP_LEVEL_P, [...]): Remove. · a3a0fc7f
      	* class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): Remove.
      	(struct secondary_vptr_vtt_init_data_s): New.
      	(build_vtt_inits): Adjust dfs_walkers.
      	(dfs_build_secondary_vptr_vtt_inits): Caller data is a
      	secondary_vptr_vtt_init_data_s structure. Adjust.
      	(dfs_ctor_vtable_bases_queue_p): Remove.
      	(dfs_fixup_binfo_vtbls): No need to clear BINFO_MARKED. Simplify.
      
      	* pt.c (struct get_template_base_data_s): Remove.
      	(get_template_base_r): Fold into get_template_base.
      	(get_template_base): Walk base binfos directly in inheritance
      	graph order.
      Remove duplicated changelog entries
      
      From-SVN: r88224
      Nathan Sidwell committed
    • backport: basic-block.h: Include vec.h, errors.h. · 628f6a4e
      2004-09-24  Ben Elliston  <bje@au.ibm.com>
      	    Steven Bosscher  <stevenb@suse.de>
      	    Andrew Pinski  <pinskia@physics.uc.edu>
      
      	Merge from edge-vector-branch:
      	* basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
      	(struct edge_def): Remove pred_next, succ_next members.
      	(struct basic_block_def): Remove pred, succ members.  Add preds
      	and succs members of type VEC(edge).
      	(FALLTHRU_EDGE): Redefine using EDGE_SUCC.
      	(BRANCH_EDGE): Likewise.
      	(EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
      	(EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
      	(edge_iterator): New.
      	(ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
      	(ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
      	(FOR_EACH_EDGE): New.
      	* bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
      	where applicable.
      	(rotate_loop): Likewise.
      	(find_traces_1_route): Likewise.
      	(bb_to_key): Likewise.
      	(connect_traces): Likewise.
      	(copy_bb_p): Likewise.
      	(find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
      	(add_labels_and_missing_jumps): Likewise.
      	(fix_up_fall_thru_edges): Likewise.
      	(find_jump_block): Likewise.
      	(fix_crossing_conditional_branches): Likewise.
      	(fix_crossing_unconditional_branches): Likewise.
      	(add_reg_crossing_jump_notes): Likewise.
      	* bt-load.c (augment_live_range): Likewise.
      	* cfg.c (clear_edges): Likewise.
      	(unchecked_make_edge): Likewise.
      	(cached_make_edge): Likewise.
      	(make_single_succ_edge): Likewise.
      	(remove_edge): Likewise.
      	(redirect_edge_succ_nodup): Likewise.
      	(check_bb_profile): Likewise.
      	(dump_flow_info): Likewise.
      	(alloc_aux_for_edges): Likewise.
      	(clear_aux_for_edges): Likewise.
      	(dump_cfg_bb_info): Likewise.
      	* cfganal.c (forwarder_block_p): Likewise.
      	(can_fallthru): Likewise.
      	(could_fall_through): Likewise.
      	(mark_dfs_back_edges): Likewise.
      	(set_edge_can_fallthru_flag): Likewise.
      	(find_unreachable_blocks): Likewise.
      	(create_edge_list): Likewise.
      	(verify_edge_list): Likewise.
      	(add_noreturn_fake_exit_edges): Likewise.
      	(connect_infinite_loops_to_exit): Likewise.
      	(flow_reverse_top_sort_order_compute): Likewise.
      	(flow_depth_first_order_compute): Likewise.
      	(flow_preorder_transversal_compute): Likewise.
      	(flow_dfs_compute_reverse_execute): Likewise.
      	(dfs_enumerate_from): Likewise.
      	(compute_dominance_frontiers_1): Likewise.
      	* cfgbuild.c (make_edges): Likewise.
      	(compute_outgoing_frequencies): Likewise.
      	(find_many_sub_basic_blocks): Likewise.
      	(find_sub_basic_blocks): Likewise.
      	* cfgcleanup.c (try_simplify_condjump): Likewise.
      	(thread_jump): Likewise.
      	(try_forward_edges): Likewise.
      	(merge_blocks_move): Likewise.
      	(outgoing_edges_match): Likewise.
      	(try_crossjump_to_edge): Likewise.
      	(try_crossjump_bb): Likewise.
      	(try_optimize_cfg): Likewise.
      	(merge_seq_blocks): Likewise.
      	* cfgexpand.c (expand_gimple_tailcall): Likewise.
      	(expand_gimple_basic_block): Likewise.
      	(construct_init_block): Likewise.
      	(construct_exit_block): Likewise.
      	* cfghooks.c (verify_flow_info): Likewise.
      	(dump_bb): Likewise.
      	(delete_basic_block): Likewise.
      	(split_edge): Likewise.
      	(merge_blocks): Likewise.
      	(make_forwarder_block): Likewise.
      	(tidy_fallthru_edges): Likewise.
      	(can_duplicate_block_p): Likewise.
      	(duplicate_block): Likewise.
      	* cfglayout.c (fixup_reorder_chain): Likewise.
      	(fixup_fallthru_exit_predecessor): Likewise.
      	(can_copy_bbs_p): Likewise.
      	(copy_bbs): Likewise.
      	* cfgloop.c (flow_loops_cfg_dump): Likewise.
      	(flow_loop_entry_edges_find): Likewise.
      	(flow_loop_exit_edges_find): Likewise.
      	(flow_loop_nodes_find): Likewise.
      	(mark_single_exit_loops): Likewise.
      	(flow_loop_pre_header_scan): Likewise.
      	(flow_loop_pre_header_find): Likewise.
      	(update_latch_info): Likewise.
      	(canonicalize_loop_headers): Likewise.
      	(flow_loops_find): Likewise.
      	(get_loop_body_in_bfs_order): Likewise.
      	(get_loop_exit_edges): Likewise.
      	(num_loop_branches): Likewise.
      	(verify_loop_structure): Likewise.
      	(loop_latch_edge): Likewise.
      	(loop_preheader_edge): Likewise.
      	* cfgloopanal.c (mark_irreducible_loops): Likewise.
      	(expected_loop_iterations): Likewise.
      	* cfgloopmanip.c (remove_bbs): Likewise.
      	(fix_bb_placement): Likewise.
      	(fix_irreducible_loops): Likewise.
      	(remove_path): Likewise.
      	(scale_bbs_frequencies): Likewise.
      	(loopify): Likewise.
      	(unloop): Likewise.
      	(fix_loop_placement): Likewise.
      	(loop_delete_branch_edge): Likewise.
      	(duplicate_loop_to_header_edge): Likewise.
      	(mfb_keep_just): Likewise.
      	(create_preheader): Likewise.
      	(force_single_succ_latches): Likewise.
      	(loop_split_edge_with): Likewise.
      	(create_loop_notes): Likewise.
      	* cfgrtl.c (rtl_split_block): Likewise.
      	(rtl_merge_blocks): Likewise.
      	(rtl_can_merge_blocks): Likewise.
      	(try_redirect_by_replacing_jump): Likewise.
      	(force_nonfallthru_and_redirect): Likewise.
      	(rtl_tidy_fallthru_edge): Likewise.
      	(commit_one_edge_insertion): Likewise.
      	(commit_edge_insertions): Likewise.
      	(commit_edge_insertions_watch_calls): Likewise.
      	(rtl_verify_flow_info_1): Likewise.
      	(rtl_verify_flow_info): Likewise.
      	(purge_dead_edges): Likewise.
      	(cfg_layout_redirect_edge_and_branch): Likewise.
      	(cfg_layout_can_merge_blocks_p): Likewise.
      	(rtl_flow_call_edges_add): Likewise.
      	* cse.c (cse_cc_succs): Likewise.
      	* df.c (hybrid_search): Likewise.
      	* dominance.c (calc_dfs_tree_nonrec): Likewise.
      	(calc_dfs_tree): Likewise.
      	(calc_idoms): Likewise.
      	(recount_dominator): Likewise.
      	* domwalk.c (walk_dominator_tree): Likewise.
      	* except.c (emit_to_new_bb_before): Likewise.
      	(connect_post_landing_pads): Likewise.
      	(sjlj_emit_function_enter): Likewise.
      	(sjlj_emit_function_exit): Likewise.
      	(finish_eh_generation): Likewise.
      	* final.c (compute_alignments): Likewise.
      	* flow.c (calculate_global_regs_live): Likewise.
      	(initialize_uninitialized_subregs): Likewise.
      	(init_propagate_block_info): Likewise.
      	* function.c (thread_prologue_and_epilogue_insns): Likewise.
      	* gcse.c (find_implicit_sets): Likewise.
      	(bypass_block): Likewise.
      	(bypass_conditional_jumps): Likewise.
      	(compute_pre_data): Likewise.
      	(insert_insn_end_bb): Likewise.
      	(insert_store): Likewise.
      	(remove_reachable_equiv_notes): Likewise.
      	* global.c (global_conflicts): Likewise.
      	(calculate_reg_pav): Likewise.
      	* graph.c (print_rtl_graph_with_bb): Likewise.
      	* ifcvt.c (mark_loop_exit_edges): Likewise.
      	(merge_if_block): Likewise.
      	(find_if_header): Likewise.
      	(block_jumps_and_fallthru_p): Likewise.
      	(find_if_block): Likewise.
      	(find_cond_trap): Likewise.
      	(block_has_only_trap): Likewise.
      	(find_if_case1): Likewise.
      	(find_if_case_2): Likewise.
      	* lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
      	(perfect_nestify): Likewise.
      	* lcm.c (compute_antinout_edge): Likewise.
      	(compute_laterin): Likewise.
      	(compute_available): Likewise.
      	(compute_nearerout): Likewise.
      	* loop-doloop.c (doloop_modify): Likewise.
      	* loop-init.c (loop_optimizer_init): Likewise.
      	* loop-invariant.c (find_exits): Likewise.
      	* loop-iv.c (simplify_using_initial_values): Likewise.
      	(check_simple_exit): Likewise.
      	(find_simple_exit): Likewise.
      	* loop-unroll.c (peel_loop_completely): Likewise.
      	(unroll_loop_constant_iterations): Likewise.
      	(unroll_loop_runtime_iterations): Likewise.
      	* loop-unswitch.c (may_unswitch_on): Likewise.
      	(unswitch_loop): Likewise.
      	* modulo-sched.c (generate_prolog_epilog): Likewise.
      	(sms_schedule): Likewise.
      	* postreload-gcse.c (eliminate_partially_redundant_load):
      	Likewise.
      	* predict.c (can_predict_insn_p): Likewise.
      	(set_even_probabilities): Likewise.
      	(combine_predictions_for_bb): Likewise.
      	(predict_loops): Likewise.
      	(estimate_probability): Likewise.
      	(tree_predict_by_opcode): Likewise.
      	(tree_estimate_probability): Likewise.
      	(last_basic_block_p): Likewise.
      	(propagate_freq): Likewise.
      	(estimate_loops_at_level): Likewise.
      	(estimate_bb_frequencies): Likewise.
      	* profile.c (instrument_edges): Likewise.
      	(get_exec_counts): Likewise.
      	(compute_branch_probabilities): Likewise.
      	(branch_prob): Likewise.
      	* ra-build.c (live_in): Likewise.
      	* ra-rewrite.c (rewrite_program2): Likewise.
      	* ra.c (reg_alloc): Likewise.
      	* reg-stack.c (reg_to_stack): Likewise.
      	(convert_regs_entry): Likewise.
      	(compensate_edge): Likewise.
      	(convert_regs_1): Likewise,
      	(convert_regs_2): Likewise.
      	(convert_regs): Likewise.
      	* regrename.c (copyprop_hardreg_forward): Likewise.
      	* reload1.c (fixup_abnormal_edges): Likewise.
      	* sbitmap.c (sbitmap_intersection_of_succs): Likewise.
      	(sbitmap_insersection_of_preds): Likewise.
      	(sbitmap_union_of_succs): Likewise.
      	(sbitmap_union_of_preds): Likewise.
      	* sched-ebb.c (compute_jump_reg_dependencies): Likewise.
      	(fix_basic_block_boundaries): Likewise.
      	(sched_ebbs): Likewise.
      	* sched-rgn.c (build_control_flow): Likewise.
      	(find_rgns): Likewise.
      	* tracer.c (find_best_successor): Likewise.
      	(find_best_predecessor): Likewise.
      	(tail_duplicate): Likewise.
      	* tree-cfg.c (make_edges): Likewise.
      	(make_ctrl_stmt_edges): Likewise.
      	(make_goto_expr_edges): Likewise.
      	(tree_can_merge_blocks_p): Likewise.
      	(tree_merge_blocks): Likewise.
      	(cfg_remove_useless_stmts_bb): Likewise.
      	(remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
      	(tree_block_forwards_to): Likewise.
      	(cleanup_control_expr_graph): Likewise.
      	(find_taken_edge): Likewise.
      	(dump_cfg_stats): Likewise.
      	(tree_cfg2vcg): Likewise.
      	(disband_implicit_edges): Likewise.
      	(tree_find_edge_insert_loc): Likewise.
      	(bsi_commit_edge_inserts): Likewise.
      	(tree_split_edge): Likewise.
      	(tree_verify_flow_info): Likewise.
      	(tree_make_forwarder_block): Likewise.
      	(tree_forwarder_block_p): Likewise.
      	(thread_jumps): Likewise.
      	(tree_try_redirect_by_replacing_jump): Likewise.
      	(tree_split_block): Likewise.
      	(add_phi_args_after_copy_bb): Likewise.
      	(rewrite_to_new_ssa_names_bb): Likewise.
      	(dump_function_to_file): Likewise.
      	(print_pred_bbs): Likewise.
      	(print_loop): Likewise.
      	(tree_flow_call_edges_add): Likewise.
      	(split_critical_edges): Likewise.
      	(execute_warn_function_return): Likewise.
      	(extract_true_false_edges_from_block): Likewise.
      	* tree-if-conv.c (tree_if_conversion): Likewise.
      	(if_convertable_bb_p): Likewise.
      	(find_phi_replacement_condition): Likewise.
      	(combine_blocks): Likewise.
      	* tree-into-ssa.c (compute_global_livein): Likewise.
      	(ssa_mark_phi_uses): Likewise.
      	(ssa_rewrite_initialize_block): Likewise.
      	(rewrite_add_phi_arguments): Likewise.
      	(ssa_rewrite_phi_arguments): Likewise.
      	(insert_phi_nodes_for): Likewise.
      	(rewrite_into_ssa): Likewise.
      	(rewrite_ssa_into_ssa): Likewise.
      	* tree-mudflap.c (mf_build_check_statement_for): Likewise.
      	* tree-outof-ssa.c (coalesce_abnormal_edges): Likewise.
      	(rewrite_trees): Likewise.
      	* tree-pretty-print.c (dump_bb_header): Likewise.
      	(dump_implicit_edges): Likewise.
      	* tree-sra.c (insert_edge_copies): Likewise.
      	(find_obviously_necessary_stmts): Likewise.
      	(remove_data_stmt): Likewise.
      	* tree-ssa-dom.c (thread_across_edge): Likewise.
      	(dom_opt_finalize_block): Likewise.
      	(single_incoming_edge_ignoring_loop_edges): Likewise.
      	(record_equivalences_from_incoming_edges): Likewise.
      	(cprop_into_successor_phis): Likewise.
      	* tree-ssa-live.c (live_worklist): Likewise.
      	(calculate_live_on_entry): Likewise.
      	(calculate_live_on_exit): Likewise.
      	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
      	(copy_loop_headers): Likewise.
      	* tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
      	(fill_always_executed_in): Likewise.
      	* tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
      	* tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise.
      	(compute_phi_arg_on_exit): Likewise.
      	* tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise.
      	(get_loops_exit): Likewise.
      	(split_loop_exit_edge): Likewise.
      	(ip_normal_pos): Likewise.
      	* tree-ssa-loop-niter.c (simplify_using_initial_conditions):
      	Likewise.
      	* tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise.
      	(replace_phi_with_stmt): Likewise.
      	(value_replacement): Likewise.
      	* tree-ssa-pre.c (compute_antic_aux): Likewise.
      	(insert_aux): Likewise.
      	(init_pre): Likewise.
      	* tree-ssa-propagate.c (simulate_stmt): Likewise.
      	(simulate_block): Likewise.
      	(ssa_prop_init): Likewise.
      	* tree-ssa-threadupdate.c (thread_block): Likewise.
      	(create_block_for_threading): Likewise.
      	(remove_last_stmt_and_useless_edges): Likewise.
      	* tree-ssa.c (verify_phi_args): Likewise.
      	(verify_ssa): Likewise.
      	* tree_tailcall.c (independent_of_stmt_p): Likewise.
      	(find_tail_calls): Likewise.
      	(eliminate_tail_call): Likewise.
      	(tree_optimize_tail_calls_1): Likewise.
      	* tree-vectorizer.c (vect_transform_loop): Likewise.
      	* var-tracking.c (prologue_stack_adjust): Likewise.
      	(vt_stack_adjustments): Likewise.
      	(vt_find_locations): Likewise.
      	* config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
      	* config/i386/i386.c (ix86_pad_returns): Likewise.
      	* config/ia64/ia64.c (ia64_expand_prologue): Likewise.
      	* config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
      
      Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu>
      Co-Authored-By: Steven Bosscher <stevenb@suse.de>
      
      From-SVN: r88222
      Ben Elliston committed
    • re PR target/16532 (Inefficient jump to epilogue) · 5be9b7a1
      	PR target/16532
      	* config/sparc/sparc.c (struct machine_function): New field
      	'leaf_function_p' and 'prologue_data_valid_p'.
      	(sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro
      	to conveniently access the above fields.
      	(TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete.
      	(eligible_for_return_delay): Use 'sparc_leaf_function_p' instead
      	of the generic flavor 'current_function_uses_only_leaf_regs'.
      	(eligible_for_sibcall_delay): Likewise.
      	(sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set
      	'sparc_prologue_data_valid_p'.  Use 'sparc_leaf_function_p'.
      	(sparc_asm_function_prologue): Add sanity check for the assumption
      	made in 'sparc_expand_prologue'.  Use 'sparc_leaf_function_p'.
      	(sparc_can_use_return_insn_p): New function.
      	(sparc_expand_epilogue): Use 'sparc_leaf_function_p'.
      	(output_restore): Likewise.
      	(output_sibcall): Likewise.
      	(sparc_output_mi_thunk): Likewise.
      	* config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare.
      	* config/sparc/sparc.md (return): New expander.
      
      	* config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak.
      
      From-SVN: r88220
      Eric Botcazou committed
    • Fix formatting. · 4badaa41
      From-SVN: r88218
      David Edelsohn committed
    • re PR c++/17642 (internal compiler error: in invert_truthvalue, at fold-const.c:2997) · 455f19cb
      	PR c++/17642
      	* stor-layout.c (layout_decl): Use fold_convert, not convert.
      	(bit_from_pos): Likewise.
      	(byte_from_pos): Likewise.
      	(pos_from_bit): Likewise.
      	(normalize_offset): Likewise.
      	(place_field): Likewise.
      	(finalize_type_size): Likewise.
      	(layout_type): Likewise.
      	* tree.c (build_index_type): Likewise.
      
      	PR c++/17642
      	* cp-tree.h (fold_if_not_in_template): New function.
      	* call.c (build_conditional_expr): Use fold_if_not_in_template.
      	(build_cxx_call): Likewise.
      	* cvt.c (convert_to_complex): Likewise.
      	(ocp_convert): Likewise.
      	(convert): Likewise.
      	(convert_force): Likewise.
      	* decl.c (compute_array_index_type): Clear
      	processing_template_decl while folding array bounds.
      	* pt.c (convert_nontype_argument): Clear
      	processing_template_decl while processing non-type argument
      	initialization.
      	* tree.c (fold_if_not_in_template): New function.
      	* typeck.c (build_class_member_access_expr): Use
      	fold_if_not_in_template.
      	(build_array_ref): Likewise.
      	(build_binary_op): Likewise.  Do not try to optimize computations
      	when processing templates.
      	(cp_pointer_int_sum): Use fold_if_not_in_template.
      	(pointer_diff): Likewise.
      	(build_unary_op): Likewise.
      	(build_reinterpret_cast): Likewise.
      	(get_delta_difference): Likewise.
      	(expand_ptrmemfunc_cst): Likewise.
      	(dubious_conversion_warnings): Likewise.
      
      	* g++.dg/template/crash23.C: New test.
      
      From-SVN: r88217
      Mark Mitchell committed