Age | Commit message (Collapse) | Author | Files | Lines |
|
2001-12-04 Andrew MacLeod <amacleod@redhat.com>
* rtl.h (initialize_uninitialized_subregs): New prototype.
* toplev.c (rest_of_compilation): Call initialize_uninitialized_subregs
when optimization is on.
* flow.c (find_regno_partial): Find subregs within an expression.
(initialize_uninitialized_subregs): Initialize live on entry registers
which are used in subreg expressions.
From-SVN: r47644
|
|
* rtl.h (mem_attrs): Rename decl to expr; adjust all users.
(MEM_EXPR): Rename from MEM_DECL; adjust all users.
* emit-rtl.c (set_mem_expr): Rename from set_mem_decl.
* expr.h, final.c, reload1.c: Adjust users.
* alias.c (nonoverlapping_component_refs_p): New.
(decl_for_component_ref, adjust_offset_for_component_ref): New.
(nonoverlapping_memrefs_p): Use them.
* emit-rtl.c (component_ref_for_mem_expr): New.
(set_mem_attributes): Use it.
(set_mem_offset): New.
* expr.c (expand_assignment): Call set_mem_attributes for
inner references; adjust the memory offset as needed.
* print-rtl.c (print_mem_expr): New.
(print_rtx): Use it.
From-SVN: r47534
|
|
* function.c (keep_stack_depressed): Major rework.
(handle_epilogue_set, emit_equiv_load): New functions.
(thread_prologue_and_epilogue_insns): keep_stack_depressed now
has return value.
* jump.c (returnjump_p_1): Also return 1 if SET with SET_IS_RETURN_P.
* rtl.h (SET_IS_RETURN_P): New macro.
From-SVN: r47250
|
|
* alias.c (nonoverlapping_memrefs): Use REGNO_PTR_FRAME_P.
* emit-rtl.c (change_address): Fix typo in default alignment.
(adjust_address_1): Use mode of NEW, not MODE, when setting size.
* expr.c (highest_pow2_factor, case WITH_RECORD_EXPR): New case.
* rtl.h (REGNO_PTR_FRAME_P): New macro.
* expr.c (store_field): Pass tree instead of max size; callers changed.
Change handling of alignment.
Only copy to_rtx if is TARGET.
(expand_expr_unaligned): Delete; callers now use expand_expr.
(emit_cmp_insn): No longer take ALIGN parm; all callers changed.
(expand_assignment): Change handling of alignment.
Only copy to_rtx if was original.
(get_inner_reference): No longer return alginment; callers changed.
(expand_expr, case COMPONENT_REF): Change handling of alignment.
(expand_expr, case ADDR_EXPR): Make copy if not sufficiently aligned.
(compare_from_rtx): Delete ALIGN parm; all callers changed.
(do_compare_rtx_and_jump): Likewise.
* expr.h: Reflect above changes.
* tree.h: Likewise.
* dwarf2out.c (loc_descriptor_from_tree): Remove ALIGN parameter
to get_inner_reference.
* except.c: Remove ALIGN parameter in call to emit_cmp_and_jump_insns.
* explow.c: Likewise.
* loop.c: Likewise.
* optabs.c: Likewise.
(prepare_cmp_insn): Now static; remove ALIGN parm. Callers changed.
(emit_cmp_and_jump_insns): Remove ALIGN parm; all callers changed.
* fold-const.c: Remove PALIGN in calls to get_inner_reference.
* function.c (assign_stack_temp_for_type): No longer static.
* optabs.h (emit_cmp_insn): Remove ALIGN parm.
(prepare_cmp_insn): Delete declaration.
* rtl.h (assign_stack_temp_for_type): Add declaration.
* config/d30v/d30v.c: Reflect above changes.
* config/i860/i860.c, config/ia64/ia64.c: Likewise.
* config/rs6000/rs6000.c, config/sh/sh.c: Likewise.
* ada/trans.c, ada/utils2.c: Remove PALIGN parameter to
get_inner_reference.
From-SVN: r47075
|
|
* jump.c (squeeze_notes): Return true if no real insns were found.
* rtl.h (squeeze_notes): Adjust prototype.
* cfgcleanup.c (merge_blocks_move_predecessor_nojumps): If
squeeze_notes finds no real instructions, abort.
(merge_blocks_move_successor_nojumps): Likewise.
* loop.c (find_and_verify_loops): Likewise.
* stmt.c (expand_end_case): Likewise.
* ifcvt.c (dead_or_predicable): Return TRUE if squeeze_notes doesn't
find any real instructions.
* gcc.c-torture/compile/20011114-4.c: New test.
From-SVN: r47048
|
|
* rtl.h (mem_for_const_double): New declaration.
* varasm.c (mem_for_const_double): New function.
* config/convex/convex.md (movdf): Use it.
* config/m68k/hp320.h (LEGITIMATE_PIC_OPERAND_P): Likewise.
* config/m68k/linux.h, config/m68k/m68k.h: Likewise.
* config/m68k/m68kv4.h: Likewise.
From-SVN: r46808
|
|
CONST_DOUBLE_MEM in comment.
* cselib.c (cselib_subst_to_values, case CONST_DOUBLE): Remove
reference to CONST_DOUBLE_MEM in comment.
* emit-rtl.c (gen_rtx_CONST_DOUBLE): Remove one operand.
(gen_rtx, case CONST_DOUBLE): Call it with one less operand.
(init_emit_once): Don't clear CONST_DOUBLE_MEM.
* function.c (pop_function_context_from): Don't call
restore_varasm_status.
* function.h (restore_varasm_status): Delete declaration.
* gengenrtl.c (CONST_DOUBLE_FORMAT): Delete CONST_DOUBLE_MEM slot.
* rtl.c: Likewise.
* rtl.def (CONST_DOUBLE): Update comment.
* rtl.h (CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW): Update operand number.
(CONST_DOUBLE_CHAIN): Likewise.
(CONST_DOUBLE_MEM): Delete.
(gen_rtx_CONST_DOUBLE): Update parameters.
* varasm.c (struct varasm_status): x_pool_offset now HOST_WIDE_INT.
Remove reference to CONST_DOUBLE_MEM.
(const_alias_set): New variable.
(immed_double_const): Change call to gen_rtx_CONST_DOUBLE.
(immed_real_const_1): Adjust tests for 0, 1, and 2.
Don't set CONST_DOUBLE_MEM.
(clear_const_double_mem): Don't do anything with const_tiny_rtx.
(output_constant_def): Don't look at TREE_CST_RTL if INTEGER_CST.
Put constant in const_alias_set.
(struct pool_constant): ALIGN now unsigned.
OFFSET now HOST_WIDE_INT.
Delete LABEL.
(restore_varasm_status): Deleted.
(mark_pool_constant): Mark desc->rtl.
(force_const_mem): Rework to store rtl in hash table,
not CONST_DOUBLE_MEM.
Put constant in const_alias_set.
(find_pool_constant): Check desc->rtl.
(mark_constants, mark_constant): Don't special-case CONST_DOUBLE.
(init_varasm_once): Initialize const_alias_set.
From-SVN: r46736
|
|
for ASM_OPERANDS.
* emit-rtl.c (set_unique_reg_note): Don't create REG_EQUAL or
REG_EQUIV notes for ASM_OPERANDS. Return the new note (if any).
* rtl.h (set_unique_reg_note): Change return value.
* gcse.c (try_replace_reg): Use set_unique_reg_note.
* cse.c (cse_insn): Likewise.
* expr.c (emit_move_insn): Likewise.
* explow.c (force_reg): Likewise.
* local-alloc (update_equiv_regs): Likewise.
* loop.c (move_moveables, load_mems): Likewise.
* reload (find_reloads): Likewise.
* gcc.dg/20011029-2.c: New test.
From-SVN: r46636
|
|
* alias.c (can_address_p): No longer static.
* emit-rtl.c (get_mem_attrs): New parameter, MODE; all callers changed.
Return 0 if all parameters are default values.
(set_mem_attributes): Set MEM_KEEP_ALIAS_SET_P.
(adjust_address_1): Try harder to compute a size.
* expr.c (expand_assignment, store_constructor): If can't address,
set MEM_KEEP_ALIAS_SET_P.
(store_constructor_field): Don't change set if MEM_KEEP_ALIAS_SET_P.
(store_field): Likewise.
(store_constructor): Simplify call to store_constructor_field.
* expr.h (can_address_p): New declaration.
* gensupport.c (gen_rtx_CONST_INT): New function.
* rtl.h (MEM_KEEP_ALIAS_SET_P): New macro.
(MEM_SIZE): Get size from mode, if not set and not BLKmode.
(MEM_COPY_ATTRIBUTES): Copy MEM_KEEP_ALIAS_SET_P.
From-SVN: r46487
|
|
type has alias set 0.
* alias.c (can_address_p): Compnonents are not addressable if
the containing type has alias set 0.
(get_alias_set): Rework to use STRIP_NOPS.
Only call front-end routine on object, type, or object with
NOPs stripped, not inner values.
Use language hook to call front-end routine.
* builtins.c (get_memory_rtx): Always call set_mem_attributes.
(expand_builtin_apply): Call set_mem_align on MEMs we make.
Don't pass alignment to emit_block_move.
(expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
(expand_builtin_memset): Likewise, but for clear_storage.
* c-common.c (lang_get_alias_set): Renamed to c_common_alias_set
and remove C++ specific parts.
* c-common.h (c_common_get_alias_set): Add declaration.
* c-lang.c (LANG_HOOKS_GET_ALIAS_SET): New macro.
* calls.c (emit_call_1): Fix typo in sibcall_pop case.
(save_fixed_argument_area): Call set_mem_align.
Remove alignment in call to emit_block_move.
(emit_library_call_value_1, store_one_arg): Likewise.
(target_for_arg): Remove; disabled long ago.
* emit-rtl.c (set_mem_attributes): Rework to only call get_mem_attrs
once and similar cleanups.
(offset_address): Use proper introductory comment.
* expr.c (emit_block_move): Use alignment from that of MEM args, not
from explicit operand; all callers changed.
(clear_storage): Likewise.
(expand_assignment): Don't call set_mem_alias_set on to_rtx.
(store_field): Remove kludge on alias set used for to_rtx.
(highest_pow2_factor, case *_DIV_EXPR): Never return 0.
(expand_expr_unaligned): Call set_mem_attributes instead of
set_mem_alias_set.
* expr.h (emit_block_move, clear_storage): Remove ALIGN argument.
* function.c (assign_stack_temp_for_type): Set MEM alignment.
(expand_function_end): Track MEM attributes of trampolines.
* ifcvt.c (noce_try_cmove_arith): Set alignment of new MEM.
* integrate.c (copy_rtx_and_substitute, case CALL): Copy memory
attributes from original.
* langhooks.c (lang_hook_default_get_alias_set): New function.
(hook_get_alias_set_0): New function.
* langhooks.h (hook_get_alias_set_0): New declaration.
(lang_hook_default_get_alias_set): Likewise.
(LANG_HOOKS_GET_ALIAS_SET): New macro; add to initializer.
* reload1.c (alter_reg): Use adjust_address_nv.
* rtl.c (get_mode_alignment): Moved to here.
* rtl.h (MEM_ALIGN): Take default from mode, if not BLKmode, and
change default if unknown from 1 to BITS_PER_UNIT.
* stor-layout.c (get_mode_alignment): Remove from here.
* toplev.h (struct lang_hoks): Add get_alias_set field.
* tree.h (lang_get_alias_set): Delete declaration.
* config/arc/arc.c (arc_setup_incoming_varags): Set MEM alignment.
* config/i386/i386.c (ix86_setup_incoming_varargs): Likewise.
(ix86_va_arg): Likewise.
* config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
* config/pa/pa.c (hppa_builtin_saveregs): Likewise.
* config/sparc/sparc.c (sparc_va_arg): Likewise.
* config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
(expand_block_move_mem): Remove dead code.
* cp/cp-lang.c (cxx_get_alias_set): New function.
Point LANG_HOOKS_GET_ALIAS_SET to it.
* f/com.c (LANG_HOOKS_GET_ALIAS_SET): New macro.
(lang_get_alias_set): Delete.
* java/lang.c (lang_get_alias_set): Deleted.
From-SVN: r46440
|
|
* emit-rtl.c (set_mem_attributes): Alignment is in bits.
(adjust_address_1, offset_address): Likewise.
From-SVN: r46378
|
|
* basic-block.h (find_sub_basic_blocks): Use sbitmap parameter.
* cfgbuild.c (find_bb_boundaries, compute_outgoing_frequencies):
Break out from ...
(find_sub_basic_blocks): ... here;
(find_many_sub_basic_blocks): New.
* recog.c (split_all_insns): Update find_sub_basic_blocks call.
* i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Define sdata4.
* i386.c (ix86_va_arg): Kill indirect_p handling; fix aliasing issues.:
* i386.c (split_di, split_ti): Revamp to use simplify_subreg.
* timevar.def (TV_LIFE, TV_LIFE_UPDATE, TV_MODE_SWITCH): new.
* flow.c (update_life_info): Measure time.
* c-decl.c: Include timevar.h
(c_expand_body): Measure time.
* toplev.c (rest_of_compilation): Measure time of mode switching
separately.
* Makefile.in (c-decl.o, cfgcleanup.o): Add dependancy.
* toplev.c (flag_asynchronous_unwind_tables): New global variable.
(lang_independent_options): Add asynchronous-unwind-tables
(toplev_main): flag_asynchronous_unwind_tables implies
flag_unwind_tables.
* flags.h (flag_asynchronous_unwind_tables): Declare.
* dwarf2out.c (dwarf2out_stack_adjust): Take into account
flag_asynchronous_unwind_tables.
(output_call_frame_info): Likewise.
* invoke.texi (-fasynchronous-unwind-tables): Document.
* i386.c (optimization_options): Enable
flag_asynchronous_unwind_tables.
* i386.c (ix86_expand_setcc): Always expect target to be QImode.
* i386.md (s* expanders): Destination is QImode.
* toplev.c (rest_of_compilation): Do not call clear_log_links.
* rtl.h (clear_log_links): Kill.
* flow.c (clear_log_links): Make static; accept blocks parameter;
do no clear life info.
(update_life_info): Call clear_log_links.
* cfganal.c (forwarder_block_p): Avoid active_insn_p calls.
From-SVN: r46374
|
|
* rtl.h (REG_VTABLE_REF): New.
* rtl.c (reg_note_name): Add it.
* combine.c (distribute_notes): Handle it.
* final.c (final_scan_insn): Handle it.
* tree.def (VTABLE_REF): New.
* expr.c (expand_expr): Handle it.
* varasm.c (assemble_vtable_entry, assemble_vtable_inherit): New.
* output.h: Declare them.
cp/
* class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
of an asm statement.
(build_vtbl_ref_1): Split out from build_vtbl_ref.
(build_vfn_ref): Use it to handle vtable descriptors before
calling build_vtable_entry_ref.
* decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.
testsuite/
* g++.old-deja/g++.other/crash18.C: Add -S to options.
From-SVN: r46195
|
|
* calls.c: Fix formatting.
* c-decl.c: Likewise.
* cfgcleanup.c: Likewise.
* combine.c: Likewise.
* cppfiles.c: Likewise.
* cpplib.c: Likewise.
* cppmacro.c: Likewise.
* crtstuff.c: Likewise.
* cse.c: Likewise.
* dwarf2out.c: Likewise.
* expmed.c: Likewise.
* expr.c: Likewise.
* fold-const.c: Likewise.
* function.c: Likewise.
* gcse.c: Likewise.
* genattrtab.c: Likewise.
* ggc-page.c: Likewise.
* integrate.c: Likewise.
* libgcc2.c: Likewise.
* loop.c: Likewise.
* optabs.c: Likewise.
* profile.c: Likewise.
* protoize.c: Likewise.
* real.c: Likewise.
* recog.c: Likewise.
* reload1.c: Likewise.
* reload.c: Likewise.
* reorg.c: Likewise.
* resource.c: Likewise.
* sched-rgn.c: Likewise.
* sdbout.c: Likewise.
* stmt.c: Likewise.
* toplev.c: Likewise.
* varasm.c: Likewise.
From-SVN: r46182
|
|
From-SVN: r46170
|
|
* c-common.c: Fix comment typos.
* cfgrtl.c: Likewise.
* collect2.c: Likewise.
* cpplex.c: Likewise.
* doloop.c: Likewise.
* dwarf2out.c: Likewise.
* dwarfout.c: Likewise.
* expr.c: Likewise.
* fold-const.c: Likewise.
* gcc.c: Likewise.
* gcov.c: Likewise.
* gcse.c: Likewise.
* global.c: Likewise.
* ifcvt.c: Likewise.
* loop.c: Likewise.
* optabs.c: Likewise.
* protoize.c: Likewise.
* regclass.c: Likewise.
* reorg.c: Likewise.
* rtl.h: Likewise.
* stmt.c: Likewise.
* tree.h: Likewise.
* doc/cpp.texi: Likewise.
* doc/c-tree.texi: Likewise.
* doc/extend.texi: Likewise.
* doc/invoke.texi: Likewise.
* doc/objc.texi: Likewise.
* doc/tm.texi: Likewise.
From-SVN: r46114
|
|
* function.c (keep_stack_depressed): Don't use delete_insn.
* expr.h (set_mem_alias_set): Move decl to here.
* rtl.h (mem_attrs): New typedef and struct.
(union rtunion_def): Add field for mem_attrs.
(X0MEMATTR, MEM_ATTRS): New macros.
(MEM_ALIAS_SET): Use MEM_ATTRS.
(MEM_DECL, MEM_OFFSET, MEM_SIZE, MEM_ALIGN): New macros.
(MEM_COPY_ATTRIBUTES): Copy MEM_ATTRS.
(set_mem_alias_set): Delete decl from here.
* alias.c (set_mem_alias_set): Delete from here.
* emit-rtl.c (mem_attrs_htab): New variable.
(rtx_htab_mark, rtx_htab_mark_1): Deleted.
(mem_attrs_htab_hash, mem_attrs_htab_eq): New functions.
(mem_attrs_mark, get_mem_attrs): Likewise.
(gen_rtx_MEM): Clear MEM_ATTRS.
(set_mem_attributes): Move to here.
(set_mem_alias_set): Likewise, and call get_mem_attrs.
(init_emit_once): const_int_htab now deletable htab.
Initialize mem_attrs_htab.
* explow.c (set_mem_attributes): Delete from here.
* function.c (put_var_into_stack): Clear MEM_ATTRS.
(gen_mem_addressof): Likewise; rework to use set_mem_attributes.
* ggc-common.c (ggc_mark_rtx_children, case MEM): New case.
* reload1.c (reload): Rework changing REG to MEM.
From-SVN: r45922
|
|
* rtl.h (LCT_RETURNS_TWICE): New.
* calls.c (emit_call_1): Set current_function_calls_setjmp for
ECF_RETURNS_TWICE.
(emit_library_call_value_1): Map LCT_RETURNS_TWICE
to ECF_RETURNS_TWICE.
* except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for
call to setjmp.
* unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc.
* config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New.
(JMP_BUF_SIZE): New.
From-SVN: r45736
|
|
* basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill.
* cfg.c (delete_insn): Rename from ....; use remove_insn; do not
remove some labels.
(flow_delete_insn): This one.
(delete_insn_chain): Rename from ...; do not care labels.
(flow_delete_insn_chain): ... this one.
(flow_delete_block): Remove the insns one BB has been expunged.
(merge_blocks_nomove): Likewise.
(try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care
updating BB boundaries.
(tidy_fallthru_edge): Likewise.
(commit_one_edge_insertion): Likewise.
* cfgbuild.c (find_basic_block): Likewise.
(find_basic_blocks_1): Likewise.
* cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise.
(try_crossjump_to_edge): Likewise.
(try_optimize_cfg): Likewise.
* cse.c (delete_trivially_dead_insns): Likewise.
* df.c (df_insn_delete): Likewise.
* doloop.c (doloop_modify): Use delete_related_insns.
* emit-rtl.c (try_split): Likewise.
(remove_insn): Update BB boundaries.
* expect.c (connect_post_landing_pads): Use delete_related_insns.
* flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care
updating BB boundaries.
(propagate_block_delete_insn): Likewise.
(propagate_block_delete_libcall): Likewise.
* function.c (delete_handlers): Use delete_related_insns.
(thread_prologue_and_epilogue_insns): Likewise.
* gcse.c (delete_null_pointer_checks): Use delete_related_insns.
* genpeep.c (gen_peephole): Use delete_related_insns.
* ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating
BB boundaries.
(find_cond_trap): Likewise.
* integrate.c (save_for_inline): Use delete_related_insns.
(copy_insn_list): Likewise.
* jump.c (pruge_linie_number_notes): Likewise.
(duplicate_loop_exit_test): Likewise.
(delete_computation): Likewise.
(delete_related_insn): Rename from ...; use delete_insn
(delete_insn): ... this one.
(redirect_jump): Use delete_related_insns.
* loop.c (scan_loop): Likewise.
(move_movables): Likewise.
(find_and_verify_loops): Likewise.
(check_dbra_loop): Likewise.
* recog.c (peephole2_optimize): Likewise.
* reg-stack.c (delete_insn_for_stacker): Remove.
(move_for_stack_reg): Use delete_insn.
* regmove.c (combine_stack_adjustments_for_block): Likewise.
* reload1.c (delete_address_reloads): Use delete_related_insns.
(fixup_abnormal_edges): Use delete_insn.
* recog.c (emit_delay_sequence): Use delete_related_insns.
(delete_from-delay_slot): Likewise.
(delete_scheduled_jump): likewise.
(optimize_skip): Likewise.
(try_merge_delay_insns): Likewise.
(full_simple_delay_slots): Likewise.
(fill_slots_from_thread): Likewise.
(relax_delay_slots): Likewise.
(make_return_insns): Likewise.
(dbr_schedule): Likewise.
* rtl.h (delete_insn): Rename to delete_related_insns.
(delete_insn, delete_insn_chain): New prototypes.
* ssa-ccp (sse_fast_dce): Remove deleting of DEF, as it is done
by df_insn_delete already.
* ssa-dce.c (delete_insn_bb): Use delete_insn.
* ssa.c (convert_from_ssa): Use delete_related_insns.
* unroll.c (unroll_loop): Likewise.
(calculate_giv_inc): Likewise.
(copy_loop_body): Likewise.
* i386-protos.h (ix86_libcall_value, ix86_function_value,
ix86_function_arg_regno_p, ix86_function_arg_boundary,
ix86_return_in_memory, ix86_function_value): Declare.
* i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers):
new static valurables.
(x86_64_reg_class): New enum
(x86_64_reg_class_name): New array.
(classify_argument, examine_argument, construct_container,
merge_classes): New static functions.
(optimization_options): Enable flag_omit_frame_pointer and disable
flag_pcc_struct_return on 64bit.
(ix86_libcall_value, ix86_function_value,
ix86_function_arg_regno_p, ix86_function_arg_boundary,
ix86_return_in_memory, ix86_function_value): New global functions.
(init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg.
(function_arg_advance): Handle x86_64 passing conventions.
(function_arg): Likewise.
* i386.h (FUNCTION_ARG_BOUNDARY): New macro.
(RETURN_IN_MEMORY): Move offline.
(FUNCTION_VALUE, LIBCALL_VALUE): Likewise.
(FUNCTION_VALUE_REGNO_P): New macro.
(FUNCTION_ARG_REGNO_P): Move offline.
(struct ix86_args): Add maybe_vaarg.
* next.h (FUNCTION_VALUE_REGNO_P): Delete.
* unix.h (FUNCTION_VALUE_REGNO_P): Delete.
From-SVN: r45726
|
|
* basic-block.h (free_bb_for_insn): Declare.
* bb-reorder.c (label_for_bb): Use block_label.
(emit_jump_to_block_after): Remove.
(insert_intra_1): Do not update block_for_insn.
(insert_inter_bb_scope_notes): Likewise; update bb->end
* cfg.c (free_bb_for_insn): New.
(try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call.
(force_nonfallthru_and_redirect): Likewise; do not update BB boundaries.
(commit_one_edge_insertion): Likewise.
(commit_one_edge_insertion): Do not update BB boundary.
(commit_edge_insertions): Do not call compute_bb_for_insn.
* cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn.
* cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb.
(merge_blocks_move_successor_nojumps): Likewise.
(try_crossjump_to_edge): Do not update block_for_insn.
* combine.c (combine_instructions): Remove compute_bb_for_insn call.
* df.c (df_pattern_emit_later): Do not update BB boundary.
(df_jump_pattern_emit_after): Likewise.
(df_insn_move_before): Use emit_insn_before.
* emit-rtl.c (try_split): Emit after trial to get bb boundary updated
properly.
(add_insn_after, add_insn_before, emit_insns_after): Update BB
boundaries and basic_block_for_insn.
(reorder_insns_nobb): Rename from reorder_insns.
(reorder_insns): New.
(emit_block_insn_before, emit_block_insn_after): Kill.
* flow.c (check_function_return_warnings): Do not call
compute_bb_for_insn; Do not free basic_block_for_insn.
(attempt_auto_inc): Do not update basic_block_for_insn.
* function.c (emit_return_into_block): Likewise;
do not update BB boundaries.
* gcse.c (handle_avail_expr): Do not update basic_block_for_insn.
(insert_insn_end_bb): Use emit_insn_before; Likewise.
(pre_insert_copy_insn): Likewise.
(update_ld_motion_notes): Likewise.
(insert_insn_start_bb): Likewise.
(replace_store_insn): Likewise.
* ifcvt.c (noce_process_if_block): Likewise.
(if_convert): Do not call compute_bb_for_insn.
* lcm.c (optimize_mode_switching): Do not update BB boundaries.
Use emit_insn_before and emit_insn_after.
* recog.c (split_all_insns): Do not update BB boundaries;
Do not call compute_bb_for_insn.
(peephole2_optimize): Do not update BB boundaries.
* reg-stack.c (emit_pop_insn): Use emit_insn_after and
emit_insn_before.
(emit_swap_insn): Likewise.
(convert_regs_1): Likewise.
* reload1.c (reload): Call compute_bb_for_insn.
* rtl.h (reorder_insns_nobb): Declare.
* ssa.c (rename_equivalent_regs): Use emit_insn_before.
* toplev.c (rest_of_compilation): Call free_bb_for_insn
at places CFG is invalidated; do not call compute_bb_for_insn.
* cfg.c (expunge_block): Invalidate BB structure.
* (merge_blocks_nomove): Update properly BLOCK_FOR_INSN
array.
* cfg.c (verify_flow_info): Verify the basic_block_for_insn array.
From-SVN: r45647
|
|
* rtl.h (FIND_REG_INC_NOTE) [HAVE_PRE_INCREMENT
|| HAVE_PRE_DECREMENT || HAVE_POST_INCREMENT
|| HAVE_POST_DECREMENT]: Call find_regno_note for REGs.
From-SVN: r45617
|
|
fs/ufs/super.c)
Fix for PR 3783.
* alias.c (clear_reg_alias_info): New.
* flow.c (attempt_auto_inc): Call clear_reg_alias_info.
* rtl.h (clear_reg_alias_info): Declare.
From-SVN: r45482
|
|
* loop.c (record_giv): Avoid simplifying MULT to ASHIFT.
(express_from_1): Wrap lines.
* rtlanal.c (commutative_operand_precedence): Rename from
operand_preference; export.
* rtl.h: Declare it.
* simplify-rtx.c (simplify_gen_binary): Tidy +/- const_int handling.
(simplify_binary_operation): Invoke simplify_plus_minus on
(CONST (PLUS ...)) as well.
(struct simplify_plus_minus_op_data): New.
(simplify_plus_minus_op_data_cmp): New.
(simplify_plus_minus): Use them. Avoid infinite recursion with
simplify_binary_operation wrt CONST.
From-SVN: r45473
|
|
2001-08-30 Vladimir Makarov <vmakarov@redhat.com>
* rtl.def: Undo my patch commited 2001-08-27.
* genattrtab.c: Ditto.
* rtl.h: Ditto.
* sched-int.h: Ditto.
* target-def.h: Ditto.
* target.h: Ditto.
* haifa-sched.c: Ditto.
* sched-rgn.c: Ditto.
* sched-vis.c: Ditto.
* Makefile.in: Ditto.
* doc/md.texi: Ditto.
* doc/tm.texi: Ditto.
* doc/contrib.texi: Ditto.
* doc/gcc.texi: Ditto.
* genattrtab.h: Remove it.
* genautomata.c: Remove it.
* genattr.c: Undo my patch and Richard Henderson's patch commited
2001-08-27.
From-SVN: r45297
|
|
2001-08-27 Vladimir Makarov <vmakarov@touchme.toronto.redhat.com>
* rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
RTL constructions.
* genattr.c (main): New variable num_insn_reservations. Increase
it if there is DEFINE_INSN_RESERVATION. Output automaton based
pipeline hazard recognizer interface.
* genattrtab.h: New file.
* genattrtab.c: Include genattrtab.h.
(attr_printf, check_attr_test, make_internal_attr,
make_numeric_value): Move protypes into genattrtab.h. Define them
as external.
(num_dfa_decls): New global variable.
(main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
DEFINE_INSN_RESERVATION. Call expand_automata and write_automata.
* genautomata.c: New file.
* rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
* sched-int.h: (curr_state): Add the external definition for
automaton pipeline interface.
(haifa_insn_data): Add comments for members blockage and units.
* target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
TARGET_SCHED_DFA_PRE_CYCLE_INSN,
TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
TARGET_SCHED_DFA_POST_CYCLE_INSN,
TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
macros.
(TARGET_SCHED): Use the new macros.
* target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
dfa_bubble): New members in gcc_target.sched.
* haifa-sched.c (insert_schedule_bubbles_p): New variable.
(MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
(insn_queue): Redefine it as pointer to array.
(NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
INSN_QUEUE_SIZE.
(max_insn_queue_index_macro_value): New variable.
(curr_state, dfa_state_size, ready_try): New varaibles for
automaton interface.
(ready_element, ready_remove, max_issue): New function prototypes
for automaton interface.
(choose_ready): New function prototype.
(insn_unit, blockage_range): Add comments.
(unit_last_insn, unit_tick, unit_n_insns): Define them for case
FUNCTION_UNITS_SIZE == 0.
(insn_issue_delay, actual_hazard_this_instance, schedule_unit,
actual_hazard, potential_hazard): Add comments.
(insn_cost): Use cost -1 as undefined value. Remove
LINK_COST_ZERO and LINK_COST_FREE. Add new code for automaton
pipeline interface.
(ready_element, ready_remove): New functions for automaton
interface.
(schedule_insn): Add new code for automaton pipeline interface.
(queue_to_ready): Add new code for automaton pipeline interface.
Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
(debug_ready_list): Print newline when the queue is empty.
(max_issue): New function for automaton pipeline interface.
(choose_ready): New function.
(schedule_block): Add new code for automaton pipeline interface.
Print ready list before scheduling each insn.
(sched_init): Add new code for automaton pipeline interface.
Initiate insn cost by -1.
(sched_finish): Free the current automaton state and finalize
automaton pipeline interface.
* sched-rgn.c: Include target.h.
(init_ready_list, new_ready, debug_dependencies): Add new code for
automaton pipeline interface.
* sched-vis.c: Include target.h.
(get_visual_tbl_length): Add code for automaton interface.
(target_units, print_block_visualization): Add comments.
* Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
(sched-rgn.o, sched-vis.o): Add new dependency file target.h.
(getruntime.o, genautomata.o): New entries.
(genattrtab.o): Add new dependency file genattrtab.h.
(genattrtab): Add new dependencies. Link it with `libm.a'.
(getruntime.o, hashtab.o): New entries for canadian cross.
* doc/md.texi: Description of automaton based model.
* doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
Add comments.
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
TARGET_SCHED_DFA_PRE_CYCLE_INSN,
TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
TARGET_SCHED_DFA_POST_CYCLE_INSN,
TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
hook descriptions.
(TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
MAX_DFA_ISSUE_RATE): New macro descriptions.
* doc/contrib.texi: Add dfa based scheduler contribution.
* doc/gcc.texi: Add more information about genattrtab.
From-SVN: r45202
|
|
* predict.c (expensive_function_p): New.
* rtl.h (expensive_function_p): Declare.
* i386.c (FAST_PROLOGUE_INSN_COUNT): New constant.
(use_fast_prologue_epilogue): New static variable.
(expand_prologue): Set it; emit short prologues if unset.
(expand_epilogue): Likewise.
From-SVN: r45176
|
|
* jump.c (squeeze_notes): Take parms by reference. Handle END being
a squeezable note.
* rtl.h: Adjust.
* ifcvt.c (dead_or_predicable): Adjust.
* loop.c (find_and_verify_loops): Adjust.
* stmt.c (expand_end_case): Adjust.
* flow.c (merge_blocks_move_successor_nojumps): Adjust. Modify the
head and end insn pointers in the basic block, not just local copies.
(merge_blocks_move_predecessor_nojumps): Likewise.
From-SVN: r45107
|
|
* Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
bitmap.h, builtin-types.def, builtins.c, builtins.def,
c-aux-info.c, c-common.c, c-common.def, c-common.h,
c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
conditions.h, config.gcc, configure.frag, configure.in,
conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
emit-rtl.c, errors.c, errors.h, except.c, except.h,
exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
gencheck.c, gencodes.c, genconfig.c, genemit.c,
genextract.c, genflags.c, gengenrtl.c, genmultilib,
genopinit.c, genoutput.c, genpeep.c, genrecog.c,
gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
params.h, predict.c, predict.def, predict.h, prefix.c,
prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
regclass.c, regmove.c, regrename.c, regs.h, reload.c,
reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
xcoffout.h: replace "GNU CC" with "GCC".
From-SVN: r45105
|
|
* system.h: Forward-declare struct rtx_def, struct rtvec_def,
and union tree_node. Typedef rtx, rtvec, and tree. Fix comment.
* rtl.h: Don't forward-declare union tree_node here. Don't
typedef rtx or rtvec here. Change all uses of struct rtx_def *,
struct rtvec_def *, or union tree_node * to use rtx, rtvec,
and tree respectively.
* tree.h: Don't forward-declare struct rtx_def here. Don't
typedef tree here. Change all uses of struct rtx_def *,
struct rtvec_def *, or union tree_node * to use rtx, rtvec,
and tree respectively.
From-SVN: r44980
|
|
* rtl.h (only_sets_cc0_p): New prototype.
* jump.c (sets_cc0_p): Handle INSN.
(only_sets_cc0_p): New function.
* flow.c (merge_blocks_nomove): Use only_sets_cc0_p.
(tidy_fallthru_edge): Likewise.
* integrate.c (copy_insn_list): Likewise.
* unroll.c (unroll_loop): Likewise.
(copy_loop_body): Likewise.
From-SVN: r44927
|
|
document the...
* rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around
to better document the files they're in.
From-SVN: r44840
|
|
* rtl.h (REG_EH_RETHROW): Remove.
* rtl.c (reg_note_name): Update.
* combine.c (distribute_notes): Don't check for it.
From-SVN: r44809
|
|
* calls.c (ECF_ALWAYS_RETURN): New constant.
(emit_call_1): Add REG_ALWAYS_RETURN note if needed.
(expand_call): Use LCF_ALWAYS_RETURN for __bb_fork_func.
(emit_library_call_value_1): Handle LCT_ALWAYS_RETRUN.
* flow.c (need_fake_edge_p): Handle REG_ALWAYS_RETURN.
* rtl.c (reg_note_name): New name.
* rtl.h (enum reg_note): Add REG_ALWAYS_RETURN.
From-SVN: r44722
|
|
* calls.c (expand_call): Do not emit INSN_SETJMP note.
(emit_library_call_value_1): Likewise.
(emit_call_1): Emit REG_SETJMP note.
* cse.c (cse_end_of_basic_block): Use REG_SETJMP instead
of INSN_SETJMP
* cselib.c (cselib_process_insn): Likewise.
* flow.c (propagate_block): Likewise.
* loop.c (find_and_verify_loops): Likewise.
* reload.c (find_equiv_regs): Likewise.
* reload1.c (reload): Likewise.
* resource.c (mark_referenced_resources,
mark_set_resources): Likewise.
* sched-deps (sched_analyze_insn, sched_analyze): Likewise.
* final.c (final_scan_insn): Remove NOTE_INSN_SETJMP.
* haifa-sched.c (unlink_other_notes): Likewise.
(reemit_notes): Likewise.
* sched-ebb.c (sched_ebb): Likewise.
* sched-rgc.c (sched_region): Likewise.
* rtl.c (note_insn_name): Likewise.
(reg_note_name): Add REG_SETJMP
* rtl.h (reg_note): Add REG_SETJMP.
(insn_note): Remove NOTE_INSN_SETJMP.
* profile.c (branch_prob): Add fake edges for setjmp.
From-SVN: r44700
|
|
* alias.c (nonlocal_mentioned_p):
Rename CONST_CALL_P to CONST_OR_PURE_CALL_P
* calls.c (emit_call_1): Likewise.
* cse.c (cse_insn, invalidate_skipped_block): Likewise.
* cselib.c (cselib_process_insn): Likewise.
* df.c (df_insns_modify): Likewise.
* flow.c (need_fake_edge_p): Likewise.
(propagate_one_insn): Likewise.
* haifa-sched.c (reemit_notes): Likewise.
* integrate.c (copy_insn_list): Likewise.
* jump.c (delete_prior_computation): Likewise.
* local-alloc.c (validate_equiv_mem): Likewise.
* loop.c (scan_loop): Likewise.
* predict.c (estimate_probability): Likewise.
* reload.c (reload): Likewise.
* sched-deps (sched_analyze): Likewise.
* rtl.h (CONST_CALL_P): rename to CONST_OR_PURE_CALL_P.
* gcse.c (compute_hash_table): Likewise.
(mark_call): Likewise.
(store_killed_in_insn): Likewise.
From-SVN: r44688
|
|
* rtlanal.c (parms_set, find_first_parameter_load): Break out from...;
handle multiple sets.
* except.c (sjlj_mark_call_sites): .... here.
* gcse.c (insert_insn_end_bb): Use find_first_parameter_load.
From-SVN: r44465
|
|
* combine.c (recog_for_combine): Use the fake recog
only if instruction does not match.
* rtl.h (NOOP_MOVE_INSN_CODE): New.
* rtlanal.c (noop_move_p): Always return 1 for NOOP_MOVE_INSN_CODE.
* combine.c (try_combine): Discover noop jump as direct jump.
From-SVN: r44464
|
|
* simplify-rtx.c (avoid_constant_pool_reference): Export.
* rtl.h (avoid_constant_pool_reference): Declare it.
* dwarf2out.c (add_location_or_const_value_attribute): Use it.
(add_const_value_attribute): Use add_AT_unsigned for unsigned values.
From-SVN: r44411
|
|
* rtl.h (cleanup_barriers): Declare.
* jump.c (cleanup_barriers): New function.
* toplev.c (rest_of_compilation): Call cleanup_barriers
before loop optimizer and after bb_reorder.
* flow.c (back_edge_of_syntactic_loop_p): New.
(split_edge): Use it.
From-SVN: r44409
|
|
* recog.c (split_all_insns_noflow): New.
* rtl.h (split_all_insns_noflow): Declare.
* ia64.c (ia64_reorg): Use split_all_insns_noflow.
* m68hc11.c (m68hc11_reorg): Likewise.
* sh.c (machine_dependent_reorg): Likewise.
* toplev.c (rest_of_compilation): Likewise for last split_all_insns
call.
From-SVN: r44312
|
|
* basic-block.h (find_sub_basic_block): Declare.
* flow.c (make_edges): New arguments MIN and MAX;
(find_sub_basic_blocks): Revamp to use make_edges
and purge_dead_edges.
(find_basic_blocks): Update call of find_sub_basic_block.
* recog.c (split_all_insns): Always expect CFG to be consistent;
call find_sub_basic_blocks in case something has changed.
* toplev.c (rest_of_compilation): Always call split_all_insns once CFG
has been built.
* basic-block.h (delete_noop_moves): Declare.
* combine.c (combine_instructions): Call it.
(recog_for_combine): Tolerate noop moves
(distribute_notes): Force refresh when register dies at noop move.
* flow.c (delete_noop_moves): Use BB structure; delete JUMP insns
too.
(life_analysis): Update delete_noop_moves call.
(set_noop_p): Move too ...
* rtlanal.c (noop_move_p): ... here.
* rtl.h (noop_move_p): Declare.
* basic-block.h (purge_all_dead_edges, purge_dead_edges): New functions.
* toplev.c (rest_of_compilation): Conditionally call purge_all_dead_edges
after combine.
* gcse.c (cprop_cc0_jump, cprop_insn): New argument "basic_block".
(cprop_jump): Likewise; call purge_dead_edges if substitution suceeded.
From-SVN: r44267
|
|
* basic-block.h (redirect_edge_and_branch_force,
redirect_edge_and_branch, block_label, forwarder_block_p): Declare.
* flow.c (redirect_edge_and_branch_force,
redirect_edge_and_branch, block_label, forwarder_block_p): Make global.
(redirect_edge_and_branch_force): Fix copying of lifeness information.
(block_label): Handle EXIT_BLOCK_PTR by returning NULL.
* ifcvt.c (dead_or_predictable): Take BB as an new destionation
instead of label; update CFG after transformation.
(find_if_case_1): Update call, use redirect_edge_and_branch_force
for finishing the transformation; handle even case where ELSE
does not follow THEN.
(find_if_case_2): Update call of dead_or_predictable; simplify
CFG update.
* emit-rtl.c (split_branch_probability): New global variable.
(try_split): Take care to set split_branch_probability and
create REG_BR_PROB note for new jump insns.
* md.texi (define_split): Document new feature.
* i386.c (ix86_split_fp_branch): Redistribute branch probability notes.
From-SVN: r44249
|
|
* jump.c: Update comments.
(delete_barrier_successors, delete_unreferenced_labels,
delete_noop_moves, tension_vector_labels, delete_from_jump_chain,
delete_labelref_insn, redirect_tablejump, jump_optimize_1,
jump_optimize, jump_optimize_minimal): Kill.
(rebuild_jump_labels): Move code from jump_optimize_1.
(purge_line_number_notes): Likewise.
(copy_loop_headers): Likewise.
* reg-stack.c: Update comment.
* stmt.c: Likewise.
* rtl.h (jump_optimize, jump_optimize_1, JUMP_NOOP_MOVES,
JUMP_AFTER_REGSCAN): Kill.
* toplev.c (rest_of_compilation): Use cleanup_cfg, call
purge_line_number_notes and copy_loop_headers.
From-SVN: r44245
|
|
* basic-block.h (CLEANUP_PRE_SIBCALL): New constant.
* except.c (finish_eh_generation): Update call of cleanup_cfg;
do rebuild_jump_labels instead of jump_optimize
* sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
* toplev.c (rest_of_compulation): Likewise for -Wreturn_type.
* flow.c (try_optimize_cfg): Remove unneeded code_labels.
* flow.c: Include timevar.h
(find_basic_block): Push/pop timevar;
(cleanup_cfg): Likewise.
* timevar.def (TV_CFG, TV_CLEANUP_CFG): New.
* Makefile: Add dependencies on timevar.h
* integrate.c (save_for_inline): Kill all BASIC_BLOCK notes.
(copy_insn_list): Avoid killing of BASIC_BLOCK notes.
* rtl.h (delete_trivially_dead_insns): Add new parameter.
* toplev.c (rest_of_compilation): Update calls.
* cse.c (set_live_p, insn_live_p, dead_libcall_p): Break out from ...
(delete_trivially_dead_insns): ... here; accept new argument
preserve_basic_blocks; preserve basic blocks if set.
* reg-stack.c (stack_regs_mentioned): Return 0 if
stack_regs_mentioned_data is not initialized.
(reg_to_stack): Make stack_regs_mentioned survive after the
reg-stack is completted; do not call cleanup_cfg.
* toplev.c (rest_of_compilation): Do cleanup_cfg before bb-reorder;
make cleanup_cfg after bb-reorder to output to debug file.
From-SVN: r44056
|
|
* emit-rtl.c (try_split): Update mark_jump_label call.
* flow.c (find_sub_basic_blocks): Likewise.
* jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
jump_back_p): Kill.
(mark_all_labels): Kill second parameter.
(jump_optimize, jump_optimize_1): Kill cross_jump parameter.
(rebuild_jump_labels, jump_optimize_minimal): Update call
of jump_optimize_1.
(jump_optimize_1): Kill crossjumping code.
(mark_jump_label): Kill cross_jump parameter.
* rtl.h (mark_jump_label, jump_optimize): Update prototypes.
(JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
* reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
splitting.
* toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
DFI_bpro.
(dump_file_info): Likewise.
(rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
reorganize passes to do reg-stack first, bb-reorder second.
* invoke.texi (-d letters doc): Remove the jump2 pass.
From-SVN: r44008
|
|
From-SVN: r43986
|
|
* emit-rtl.c (try_split): Update mark_jump_label call.
* flow.c (find_sub_basic_blocks): Likewise.
* jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
jump_back_p): Kill.
(mark_all_labels): Kill second parameter.
(jump_optimize, jump_optimize_1): Kill cross_jump parameter.
(rebuild_jump_labels, jump_optimize_minimal): Update call
of jump_optimize_1.
(jump_optimize_1): Kill crossjumping code.
(mark_jump_label): Kill cross_jump parameter.
* rtl.h (mark_jump_label, jump_optimize): Update prototypes.
(JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
* reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
splitting.
* toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
DFI_bpro.
(rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
reorganize passes to do reg-stack first, bb-reorder second.
* invoke.texi (-d letters doc): Remove the jump2 pass.
From-SVN: r43979
|
|
* alias.c (set_mem_alias_set): New function.
* rtl.h (set_mem_alias_set): Declare it.
* builtins.c (expand_builtin_return_addr): Call it instead of
using MEM_ALIAS_SET accessor.
(expand_builtin_setjmp_setup, expand_builtin_longjmp): Likewise.
(get_memory_rtx, expand_builtin_va_arg): Likewise.
(expand_builtin_va_copy):Likewise.
* caller-save.c (setup_save_areas): Likewise.
* calls.c (compute_argument_addresses): Likewise.
* explow.c (set_mem_attributes): Likewise.
* expr.c (emit_single_push_insn, emit_push_insn): Likewise.
(expand_assignment, store_constructor_field, store_field): Likewise.
(expand_expr_unaligned): Likewise.
* function.c (assign_stack_temp_for_type): Likewise.
(put_reg_into_stack, gen_mem_addressof): Likewise.
* ifcvt.c (noce_try_cmove_arith): Likewise.
* reload1.c (reload, alter_reg): Likewise.
* config/alpha/alpha.c (get_aligned_mem): Likewise.
(alpha_set_memflags_1, alpha_expand_unaligned_load): Likewise.
(alpha_expand_unaligned_store): Likewise
(alpha_expand_unaligned_load_words): Likewise.
(alpha_expand_unaligned_store_words): Likewise.
(alpha_expand_block_clear, alpha_expand_prologue): Likewise.
(alpha_expand_epilogue): Likewise.
* config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
* config/clipper/clipper.c (clipper_builtin_saveregs): Likewise.
* config/i386/i386.c (legitimize_pic_address): Likewise.
* config/i960/i960.c (setup_incoming_varargs): Likewise.
* config/ia64/ia64.c (spill_restore_mem): Likewise.
* config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
* config/m8k/m88k.c (m88k_builtin_saveregs): Likewise.
* config/mips/mips.c (mips_va_arg): Likewise.
* config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
* config/pa/pa.c (hppa_builtin_saveregs): Likewise.
* config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
(setup_incoming_varargs, rs6000_va_arg): Likewise.
(rs6000_emit_eh_toc_restore, rs6000_emit_prologue): Likewise.
(rs6000_emit_epilogue): Likewise.
* config/sh/sh.c (sh_builtin_saveregs): Likewise.
* config/sparc/sparc.c (sparc_va_arg): Likewise.
* config/v850/v850.c (v850_va_arg): Likewise.
From-SVN: r43951
|
|
* emit-rtl.c (gen_highpart_mode): New.
* rtl.h (gen_highpart_mode): Declare.
* sparc.md (insn splitters): Use gen_highpart_mode, whenever the
operand can be VOIDmode constant.
From-SVN: r43869
|
|
checking for constant as first operand.
* explow.c (plus_constant_wide, case PLUS): Call find_constant_term
and avoid checking for constant as first operand.
* recog.c (find_constant_term_loc): No longer static.
(adj_offettable_operand): Delete.
* rtl.h (adj_offsettable_operand): Delete declaration.
(find_constant_term): Add declaration.
* caller-save.c: Replace calls to adj_offsettable_operand with calls
to adjust_address.
* config/arm/arm.c, config/c4x/c4x.c: Likewise.
* config/clipper/clipper.md, config/h8300/h8300.c: Likewise.
* config/i386/i386.c, config/i386/i386.md: Likewise.
* config/i860/i860.c, config/i960/i960.c: Likewise.
* config/i960/i960.md, config/m68hc11/m68hc11.c: Likewise.
* config/m68k/m68k.c, config/m68k/m68k.md: Likewise.
* config/m88k/m88k.md, config/mcore/mcore.c: Likewise.
* config/mips/mips.c, config/mips/mips.md: Likewise.
* config/mn10200/mn10200.c, config/mn10300/mn10300.c: Likewise.
* config/ns32k/ns32k.c, config/ns32k/ns32k.md: Likewise.
* config/pa/pa.c, config/pdp11/pdp11.c: Likewise.
* config/pdp11/pdp11.md, config/sh/sh.c, config/v850/v850.c: Likewise.
* config/vax/vax.md, config/ns32k/ns32k.c: Likewise.
* config/ns32k/ns32k.md: Likewise.
From-SVN: r43733
|