aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtl.h
AgeCommit message (Collapse)AuthorFilesLines
2001-10-11rtl.h (REG_VTABLE_REF): New.Richard Henderson1-1/+5
* 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
2001-10-11calls.c: Fix formatting.Kazu Hirata1-15/+15
* 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
2001-10-10* rtl.h (can_reverse_comparison_p): Remove.Richard Henderson1-1/+0
From-SVN: r46170
2001-10-09c-common.c: Fix comment typos.Kazu Hirata1-1/+1
* 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
2001-10-01function.c (keep_stack_depressed): Don't use delete_insn.Richard Kenner1-10/+47
* 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
2001-09-21rtl.h (LCT_RETURNS_TWICE): New.Richard Henderson1-1/+2
* 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
2001-09-21basic-block.h (flow_delete_insn, [...]): Kill.Jan Hubicka1-1/+3
* 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
2001-09-16basic-block.h (free_bb_for_insn): Declare.Jan Hubicka1-0/+1
* 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
2001-09-14rtl.h (FIND_REG_INC_NOTE): Call find_regno_note for REGs.Hans-Peter Nilsson1-1/+4
* 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
2001-09-07re PR rtl-optimization/3783 (gcc3.0/ia64 ICE on linux kernel file ↵Jim Wilson1-0/+1
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
2001-09-07loop.c (record_giv): Avoid simplifying MULT to ASHIFT.Richard Henderson1-0/+1
* 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-30rtl.def: Undo my patch commited 2001-08-27.Vladimir Makarov1-2/+14
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-27rtl.def (DEFINE_CPU_UNIT, [...]): New RTL constructions.Vladimir Makarov1-14/+2
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
2001-08-25predict.c (expensive_function_p): New.Jan Hubicka1-0/+1
* 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
2001-08-22jump.c (squeeze_notes): Take parms by reference.Jason Merrill1-1/+1
* 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
2001-08-22Makefile.in, [...]: replace "GNU CC" with "GCC".Lars Brinkhoff1-12/+12
* 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
2001-08-17system.h: Forward-declare struct rtx_def, struct rtvec_def, and union tree_node.Zack Weinberg1-18/+13
* 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
2001-08-15rtl.h (only_sets_cc0_p): New prototype.John Wehle1-0/+1
* 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
2001-08-13rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around to better ↵Geoffrey Keating1-4/+2
document the... * rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around to better document the files they're in. From-SVN: r44840
2001-08-11rtl.h (REG_EH_RETHROW): Remove.Richard Henderson1-5/+0
* rtl.h (REG_EH_RETHROW): Remove. * rtl.c (reg_note_name): Update. * combine.c (distribute_notes): Don't check for it. From-SVN: r44809
2001-08-08calls.c (ECF_ALWAYS_RETURN): New constant.Jan Hubicka1-2/+6
* 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
2001-08-07calls.c (expand_call): Do not emit INSN_SETJMP note.Jan Hubicka1-5/+5
* 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
2001-08-07alias.c (nonlocal_mentioned_p): Rename CONST_CALL_P to CONST_OR_PURE_CALL_PJan Hubicka1-2/+2
* 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
2001-07-29rtlanal.c (parms_set, [...]): Break out from...; handle multiple sets.Jan Hubicka1-0/+1
* 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
2001-07-29Suggested by Richard Henderson and Richard Kenner:Jan Hubicka1-0/+4
* 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
2001-07-26simplify-rtx.c (avoid_constant_pool_reference): Export.Richard Henderson1-0/+1
* 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
2001-07-26rtl.h (cleanup_barriers): Declare.Jan Hubicka1-0/+1
* 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
2001-07-24recog.c (split_all_insns_noflow): New.Jan Hubicka1-0/+1
* 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
2001-07-23basic-block.h (find_sub_basic_block): Declare.Jan Hubicka1-0/+1
* 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
2001-07-22basic-block.h (redirect_edge_and_branch_force, [...]): Declare.Jan Hubicka1-0/+1
* 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
2001-07-22jump.c: Update comments.Jan Hubicka1-6/+2
* 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
2001-07-16basic-block.h (CLEANUP_PRE_SIBCALL): New constant.Jan Hubicka1-1/+1
* 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
2001-07-14Re-install recently reverted patch.Jan Hubicka1-4/+2
* 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
2001-07-13Revert Jan Hubicka's patch of Fri Jul 13 14:46:21 CEST 2001.Geoffrey Keating1-2/+4
From-SVN: r43986
2001-07-13emit-rtl.c (try_split): Update mark_jump_label call.Jan Hubicka1-4/+2
* 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
2001-07-11alias.c (set_mem_alias_set): New function.Richard Kenner1-0/+1
* 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
2001-07-09emit-rtl.c (gen_highpart_mode): New.Jan Hubicka1-0/+2
* 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
2001-07-03explow.c (plus_constant_wide, case PLUS): Call find_constant_term and avoid ↵Richard Kenner1-1/+1
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
2001-07-02explow.c (plus_constant_wide, [...]): New case.Richard Kenner1-3/+0
* explow.c (plus_constant_wide, case LO_SUM): New case. (plus_constant_for_output_wide): Delete. * rtl.h (plus_constant_for_output): Delete. * alias.c (canon_rtx, init_alias_analysis): Call plus_constant instead of plus_constant_for_output. * recog.c (offsettable_address_p, adj_offsettable_operand): Likewise. * config/darwin.c, config/arm/arm.c, config/m68k/m68k.c: Likewise. * config/m88k/m88k.c, config/mips/mips.c, config/pa/pa.c: Likewise. * config/rs6000/rs6000.c, config/sparc/sparc.c: Likewise. * config/sparc/sparc.md: Likewise. Convert some change_address calls to adjust_address. From-SVN: r43720
2001-06-30rtl.def (DEFINE_INSN, [...]): Change output-template slot to format 'T'.Zack Weinberg1-0/+1
* rtl.def (DEFINE_INSN, DEFINE_INSN_AND_SPLIT, DEFINE_PEEPHOLE): Change output-template slot to format 'T'. * rtl.h (XTMPL): New. * read-rtl.c (read_escape): New function. (read_quoted_string, read_braced_string): Use it. (read_rtx): Set star_if_braced from the format string. Use XTMPL where appropriate. * genoutput.c (gen_insn, gen_peephole): Use XTMPL to get the template string. * rtl.c: Include errors.h for sake of rtl_check_failed* routines. Document 'T' in rtx format strings. * Makefile.in (rtl.o, $(HOST_PREFIX_1)rtl.o): Depend on errors.h. * errors.c (internal_error): Add missing ": " at end of string. * i860.md: Change triple backslashes to double backslashes at ends of lines in output templates. From-SVN: r43665
2001-06-20Fix __builtin_expect on PowerPCsMichael Meissner1-0/+3
From-SVN: r43470
2001-06-09predict.def: New file.Jan Hubicka1-7/+11
* predict.def: New file. * predict.h: New file. * predict.c: Include predict.h. (predictor_info): New structure and array. (predict_edge, predict_insn): Rewrite; make global. (predict_edge_def, predict_insn_def): New global functions. (dump_prediction, combine_predictions_for_insns): New static functions. (estimate_probability): Change calls to predict_edge to predict_edge_def and calls to predict_insn to predict_insn_def; combine probabilities. (expected_value_to_br_prob): Behave as predictor. * rtl.h (REG_BR_PRED): Update coment. (invert_br_probabilities): New. * jump.c: Include predict.h (duplicate_loop_exit_test): Drop branch prediction notes. (invert_jump): Use invert_br_probabilities. * Makefile.in: Add dependancy on predict.h for jump and predict pass. * ifcvt.c (dead_or_predicable): Use invert_br_probabilities. * combine.c (distribute_notes): Handle BR_PRED. From-SVN: r43115
2001-06-04simplify_rtx.c (simplify_subreg): Keep subregs on return values...Jan Hubicka1-3/+4
* simplify_rtx.c (simplify_subreg): Keep subregs on return values, check CLASS_CANNOT_CHANGE_MODE before avoiding subreg on hard reg, in case register wasn't OK previously, accept it now; allow subregs of frame pointer if reload completed and frame pointer is not needed. * combine.c (sombine_simplify_rtx): Fix comment; use subreg_lowpart_offset instead of subreg_lowpart_p (gen_lowpart_for_combine): Use subreg_lowpart_offset. * rtl.h (subreg_lowpart_parts_p): Kill. (subreg_lowpart_offset, subreg_highpart_offset): Declare. * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset. * emit-rtl.c (gen_lowpart_SUBREG): Use subreg_lowpart_offset; (gen_lowpart_common): Likewise. (subreg_lowpart_p): Likewise. (subreg_lowpart_parts_p): Kill. (subreg_lowpart_offset, subreg_highpart_offset): New function. * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg to simplify SUBREG and REG. (gen_highpart): Use simplify_gen_subreg for all simplifications. * emit-rtl.c (gen_realpart, gen_imagpart): Do not handle CONCAT specially. * rtlanal.c (replace_regs): Use simplify_gen_subreg From-SVN: r42850
2001-05-25Standardize header guards.Richard Henderson1-3/+3
From-SVN: r42615
2001-05-17integrate.c (copy_rtx_and_substitute): Use simplify_gen_subreg.Jan Hubicka1-0/+1
* integrate.c (copy_rtx_and_substitute): Use simplify_gen_subreg. (simplify_subreg): Handle complex types represented as CONCAT. * recog.c (validate_replace_rtx_1): Properly canonicalize expression * rtl.h (swap_commutative_operands_p): Declare. * rtlanal.c (swap_commutative_operands_p): New. (operand_preference): New static function. * combine.c (combine_simplify_rtx): Use swap_commutative_operands_p. (gen_binary): Likewise. * optabs.c (emit_cmp_and_jump_insns, emit_conditional_move): Likewise. * simplify-rtx.c (simplify_gen_binary, simplify_gen_relational): Likewise. From-SVN: r42224
2001-05-17cse.c (fold_rtx): Use simplify_subreg.Jan Hubicka1-0/+4
* cse.c (fold_rtx): Use simplify_subreg. * simplify-rtx.c (simplify_replace_rtx): Use simplify_gen_subreg. (simplify_gen_subreg): New. (simplify_rtx): Use simplify_subreg. * rtl.h (simplify_gen_subreg): Declare. From-SVN: r42221
2001-05-17simplify-rtx.c (simplify_subreg): Break out from ...Jan Hubicka1-0/+7
* simplify-rtx.c (simplify_subreg): Break out from ... * combine.c (combine_splify_rtx) ... here and ... * recog.c (validate_replace_rtx_1): ... here; * rtl.h (subreg_lowpart_parts_p, simplify_subreg): Declare. * emit-rtl.c (subreg_lowpart_parts_p): Break out from ... (subreg_lowpart_p): ... here. From-SVN: r42199
2001-05-13rtl.h (SYMBOL_REF_WEAK): New macro.Franz Sirl1-1/+5
2001-05-13 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> * rtl.h (SYMBOL_REF_WEAK): New macro. * rtlanal.h (rtx_addr_can_trap): Use it, a weak SYMBOL_REF can trap. * varasm.c (make_decl_rtl): Mark SYMBOL_REF weak if necessary. * rtl.texi (SYMBOL_REF_WEAK): Document it. * gcc.texi: Remove wrong description. From-SVN: r42046
2001-04-28rtl.h (simplify_gen_relational): Add cmp_mode parameter.Jan Hubicka1-0/+1
* rtl.h (simplify_gen_relational): Add cmp_mode parameter. * simplify-rtx.c (simplify_gen_relational): Likewise. * simplify-rtx.c (simplify_replace_rtx): Handle relationals and MEMs. * i386.h (VALID_SSE_REG_MODE): Accept MMX modes if SSE2 * i386.md (movsi_1, movdi2, movdi_1_rex64): Handle SSE2 moves. * i386.md (negsf2, negdf2, abssf2, absdf2): Force operands to registers in SSE case; fix handling of the immediates. (negsf2_ifs, abssf2_ifs): Tweak constraints; require operands to be in regsiters before reload. (negdf2_ifs, absdf2_ifs): Likewise; disable for 64bit (negdf2_ifs_rex64, absdf2_ifs_rtx64): New. (abstf,absxf,negtf,negxf splitters): Compute properly the regnum for x86_64. (avsdf2_if_rex64): New. From-SVN: r41664
2001-04-18output.h (dump_flow_info, [...]): Delete redundant prototypes.Kaveh R. Ghazi1-1/+0
* output.h (dump_flow_info, free_basic_block_vars, which_alternative): Delete redundant prototypes. * rtl.h (bss_section): Likewise. From-SVN: r41398