summaryrefslogtreecommitdiff
path: root/gcc/function.c
Commit message (Collapse)AuthorAgeFilesLines
* * Makefile.in (convert.o, calls.o, expmed.o): Update.neil2002-03-291-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * attribs.c (handle_mode_attribute, handle_vector_size_attribute): Use new hooks. * builtin-types.def (BT_PTRMODE): Update. * c-common.c (type_for_size): Rename c_common_type_for_size. (type_for_mode): Similarly. (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins): Use new hook. * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New. * c-decl.c (finish_enum, build_enumerator): Use new hooks. * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE): Redefine. * c-typeck.c (common_type, comptypes, default_conversion): Use new hooks. * calls.c: Include langhooks.h. (emit_library_call_value_1): Use new hooks. Avoid redundant calls. * convert.c: Include langhooks.h (convert_to_pointer, convert_to_integer): Use new hooks. * except.c (init_eh): Similarly. * expmed.c: Include langhooks.h. (expand_mult_add): Use new hooks. * expr.c (store_expr, store_constructor, expand_expr, do_jump, try_casesi): Similarly. * fold-const.c (optimize_bit_field_compare, make_range, decode_field_reference, fold_truthop, fold): Similarly. * function.c (assign_stack_local_1, assign_stack_temp_for_type, put_var_into_stack): Similarly. * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE): New. (LANG_HOOKS_TYPES_INITIALIZER): Update. * langhooks.h (lang_hooks_for_types): New hooks. * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks. * tree.c (get_unwidened, get_narrower): Similarly. * tree.h (type_for_mode, type_for_size): Remove. * varasm.c (force_const_mem): Use new hooks. ada: * gigi.h (type_for_size, type_for_mode): Rename. * misc.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE): Redefine. * trans.c (tree_transform): Update. * utils.c (gnat_init_decl_processing, init_gigi_decls, builtin_function, float_type_for_size, signed_or_unsigned_type, build_vms_descriptor, unchecked_convert): Update. (type_for_mode, type_for_size): Rename. * utils2.c (nonbinary_modular_operation): Update. cp: * cp-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE): Redefine. * cvt.c (cp_convert_to_pointer, type_promotes_to): Use new hooks. * decl.c (finish_enum): Similarly. * error.c (dump_type): Similarly. * lex.c (cxx_init): Similarly. * mangle.c (write_builtin_type): Similarly. * typeck.c (comptypes): Similarly. f: * com.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE): Redefine. (type_for_mode, type_for_size): Rename. (signed_or_unsigned_type, signed_type, truthvalue_conversion, unsigned_type): Use new hooks. java: * Make-lang.in (builtins.o): Update. * boehm.c (get_boehm_type_descriptor): Update. * builtins.c: Include langhooks.h. * decl.c (java_init_decl_processing): Update. * java-tree.h (java_type_for_mode, java_type_for_size): New. * lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE): Redefine. * typeck.c (type_for_mode, type_for_size): Update. objc: * objc-act.c (handle_impent): Update. * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE): Redefine. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51571 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in: Update.neil2002-03-201-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.c: Include langhooks.h. (inline_forbidden_p): Use new hook. * diagnostic.c: Include langhooks.h. (format_with_decl, announce_function, default_print_error_function): Use new hook. * dwarf2out.c (dwarf2_name): Use new hook. * function.c: Include langhooks.h. (init_function_start): Use new hook. * langhooks-def.h (lhd_decl_printable_name): New. (LANGHOOKS_DECL_PRINTABLE_NAME): New. (LANGHOOKS_INITIALIZER): Update. * langhooks.c (lhd_decl_printable_name): New. * langhooks.h (struct lang_hooks): New hook. * toplev.c (decl_name, decl_printable_name): Remove. (open_dump_file): Use new hook. (process_options): Remove old hook. * tree.h (decl_printable_name): Remove. ada: * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine. (gnat_init): Remove old hook. cp: * cp-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine. * cp-tree.h (lang_printable_name): Rename. * error.c (lang_decl_name): Use new hook. * lex.c (cxx_init): Remove old hook. * pt.c (tsubst_expr): Use new hook. * tree.c (lang_printable_name): Rename. f: * com.c (lang_printable_name): Rename. (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine. (ffe_init): Don't use old hook. java: * decl.c (start_java_method): Use new hook. * lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine. (java_init): Remove old hook. objc: * objc-act.c (objc_init): Remove old hook. (objc_printable_name): Export. * objc-act.h (objc_printable_name): New. * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51066 138bc75d-0d04-0410-961f-82ee72b054a4
* PR optimization/5901rth2002-03-131-44/+48
| | | | | | | | * function.c (reposition_prologue_and_epilogue_notes): Position the markers after/before the last/first insn not deleted. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50715 138bc75d-0d04-0410-961f-82ee72b054a4
* * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.kenner2002-03-091-48/+74
| | | | | | | | | | | | | * function.c (fixup_var_refs): Add MAY_SHARE parameter. (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise. (fixup_var_refs_insn, fixup_var_refs_1): Likewise. (pop_function_context): Compute MAY_SHARE parameter for fixup_var_refs. (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR. (gen_mem_addressof): Call fixup_var_refs with new parm. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50493 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definitionrth2002-03-011-1/+1
| | | | | | | | | | | | | | | | | | to take ptr_extend into account as third type of extension. (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit fields used by SUBREG_PROMOTED_UNSIGNED_P. * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro. (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1. * calls.c (precompute_arguments): Use new macro. (expand_call): Ditto. * combine.c (nonzero_bits): Ditto. (record_promoted_value): Ditto. * expr.c (store_expr): Ditto. (expand_expr): Ditto. * function.c (assign_parms): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50174 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-02-19 Aldy Hernandez <aldyh@redhat.com>aldyh2002-02-191-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector. ("mmx_uavgv4hi3"): Same. ("pmulhrwv4hi3"): Same. * tree-inline.c (walk_tree): Handle vectors. * c-common.c (constant_expression_warning): Handle vectors. (overflow_warning): Same. * sched-deps.c (sched_analyze_2): Handle vectors. * rtlanal.c (rtx_unstable_p): Handle vectors. (rtx_varies_p): Same. (count_occurrences): Same. (regs_set_between_p): Same. (modified_between_p): Same. (modified_in_p): Same. (volatile_insn_p): Same. (volatile_refs_p): Same. (side_effects_p): Same. (may_trap_p): Same. (inequality_comparisons_p): Same. (replace_regs): Same. (computed_jump_p_1): Same. * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th argument. (inner_mode_array): New. (copy_rtx): Handle vectors. (copy_most_rtx): Same. (rtx_equal_p): Same. (get_mode_alignment): Adjust for vectors. * resource.c (mark_referenced_resources): Handle vectors. (mark_set_resources): Same. * reload1.c (eliminate_regs): Handle vectors. (elimination_effects): Same. (scan_paradoxical_subregs): Same. * reload.c (subst_reg_equivs): Handle vectors. * regrename.c (scan_rtx): Handle vectors. * regclass.c (reg_scan_mark_refs): Handle vectors. * recog.c (find_single_use_1): Handle vectors. * local-alloc.c (equiv_init_varies_p): Handle vectors. (contains_replace_regs): Same. (memref_referenced_p): Same. * integrate.c (copy_rtx_and_substitute): Handle vectors. (subst_constants): Same. * genattrtab.c (attr_copy_rtx): Handle vectors. (encode_units_mask): Same. (clear_struct_flag): Same. (count_sub_rtxs): Same. * gcse.c (want_to_gcse_p): Handle vectors. (oprs_unchanged_p): Same. (hash_expr_1): Same. (oprs_not_set_p): Same. (expr_killed_p): Same. (compute_transp): Same. (store_ops_ok): Same. * function.c (purge_addressof_1): Do not allow paradoxical subregs of vectors. (fixup_var_refs_1): Same. (instantiate_virtual_regs_1): Same. * fold-const.c (operand_equal_p): Handle vectors. (fold): Same. (rtl_expr_nonnegative_p): Same. * flow.c (mark_used_regs): Handle vectors. * df.c (df_uses_record): Handle vectors. * cselib.c (cselib_subst_to_values): Handle vectors. (cselib_mem_conflict_p): Same. (hash_rtx): Same. * cse.c (canon_reg): Handle vectors. (fold_rt): Same. (cse_process_notes): Same. (count_reg_usage): Same. (canon_hash): Same. * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR. * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR. * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors. (gen_rtx): Handle CONST_VECTOR. (gen_const_vector_0): New. (copy_rtx_if_shared): CONST_VECTORs can be shared. (reset_used_flags): Same. (copy_insn_1): Same. (initializer_constant_valid_p): Handle VECTOR_CST. * doc/c-tree.texi (Expression trees): Document VECTOR_CST. * doc/rtl.texi (Constants): Document const_vector. (CONST0_RTX): Update for vectors. (RTL sharing): Same. * print-tree.c (print_node): Add case for VECTOR_CST. * tree.h (TREE_VECTOR_CST_ELTS): New. (struct tree_vector): New. (union tree_node): Add vector node. (build_vector): Add prototype. * tree.def (VECTOR_CST): New. * tree.c (build_vector): New. * expmed.c (make_tree): Handle CONST_VECTOR. * rtl.h (CONSTANT_P): CONST_VECTORs are constants too. (CONST_VECTOR_ELT): New. (CONST_VECTOR_NUNITS): New. * machmode.h (GET_MODE_INNER): New. (DEF_MACHMODE): Accept 8th arg. * machmode.def: Add 8th argument for vector inner mode. Add inner vector modes for vectors. * rtl.def (VEC_CONST): Remove. (CONST_VECTOR): New. * expr.c (clear_storage): Allow vectors. (is_zeros_p): Handle VECTOR_CST. * varasm.c (output_constant_pool): Handle vectors. (rtx_const): Add veclo and vechi fields. (kind): Add RTX_VECTOR. (decode_rtx_const): Add case for vector. * config/rs6000/rs6000-protos.h: Add zero_constant. * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector constants. Force easy vector constants into memory. (easy_vector_constant): New. (emit_easy_vector_constant): New. (rs6000_legitimize_reload_address): Do not generate bad reloads on darwin. * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what instruction does. ("altivec_lvxl"): Same. (altivec_lvebx): Same. (altivec_lvehx): Same. (altivec_lvewx): Same. ("*movv4si_const0"): New. ("*movv4sf_const0"): New. ("*movv8hi_const0"): New. ("*movv16qi_const0"): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49853 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (assign_parms): Demote promoted argument passed byaoliva2002-02-141-7/+9
| | | | | | | transparent reference. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49774 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (assign_parms): Don't put args of inline functionsjason2002-01-231-4/+2
| | | | | | | | into registers when not optimizing. * cp/decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49131 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/tm.texi: Remove STARTING_FRAME_PHASE.aldyh2002-01-221-21/+9
| | | | | | | | | | | | * config/rs6000/rs6000.h: Same. * function.c (instantiate_virtual_regs): Remove STARTING_FRAME_PHASE. (assign_stack_local_1): Same. Calculate frame phase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49063 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-01-18 Aldy Hernandez <aldyh@redhat.com>aldyh2002-01-191-2/+21
| | | | | | | | | | | | | | | | | * gcc.dg/20020118-1.c: New. * tm.texi (STARTING_FRAME_PHASE): Document. * function.c (assign_stack_local_1): Adjust x_frame_offset with STARTING_FRAME_PHASE. (STARTING_FRAME_PHASE): New. (instantiate_virtual_regs): Check saneness of STARTING_FRAME_PHASE. * rs6000.h (STARTING_FRAME_PHASE): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49006 138bc75d-0d04-0410-961f-82ee72b054a4
* * bitmap.h: Fix comment formatting.kazu2002-01-181-3/+3
| | | | | | | | | | | | | | | | | | | | | | | * combine.c: Likewise. * cppfiles.c: Likewise. * c-pragma.h: Likewise. * c-typeck.c: Likewise. * df.c: Likewise. * dwarf2out.c: Likewise. * function.c: Likewise. * gcc.c: Likewise. * genattrtab.c: Likewise. * gthr-win32.h: Likewise. * haifa-sched.c: Likewise. * predict.c: Likewise. * rtlanal.c: Likewise. * rtl.h: Likewise. * unwind-dw2-fde.h: Likewise. * unwind-pe.h: Likewise. * vmsdbgout.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48987 138bc75d-0d04-0410-961f-82ee72b054a4
* * cse.c: Fix formatting.kazu2002-01-051-2/+2
| | | | | | | | | | | | | | | | | * dwarf2asm.c: Likewise. * dwarf2out.c: Likewise. * explow.c: Likewise. * expmed.c: Likewise. * function.c: Likewise. * gcov.c: Likewise. * gencheck.c: Likewise. * genrecog.c: Likewise. * ggc-common.c: Likewise. * ggc-page.c: Likewise. * global.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48570 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.h (struct function): Add profile.wcohen2002-01-031-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (current_function_profile): New. doc/extend.texi: Update documentation. * final.c (final_start_function): Use current_function_profile instead of profile_flag. (profile_after_prologue): Likewise. * function.c (expand_function_start): Likewise. (expand_function_start): Likewise. * config/alpha/alpha.c (direct_call_operand): (alpha_does_function_need_gp): Likewise. (alpha_expand_prologue): Likewise. * config/arm/arm.c (arm_expand_prologue): Likewise. thumb_expand_prologue: Likewise. * config/d30v/d30v.c (d30v_stack_info): Likewise. * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise. (fr30_expand_prologue): Likewise. * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise. * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise. * config/i386/i386.h (FINALIZE_PIC): Likewise. * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise. * config/i960/i960.c (i960_output_function_prologue): Likewise. * config/ia64/ia64.c (ia64_compute_frame_size): Likewise. * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise. (m32r_expand_prologue): Likewise. * config/m88k/m88k.c (m88k_layout_frame): Likewise. (m88k_expand_prologue): Likewise. * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise. * config/mips/mips.c (compute_frame_size): Likewise. (mips_expand_prologue): Likewise. (mips_can_use_return_insn): Likewise. * config/pa/elf.h (ASM_FILE_START): Likewise. * config/pa/pa-linux.h (ASM_FILE_START): Likewise. * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise. * config/pa/som.h (ASM_FILE_START): Likewise. * config/romp/romp.c (romp_using_r14): Likewise. * config/rs6000/rs6000.c (first_reg_to_save): Likewise. (rs6000_stack_info): Likewise. * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise. * config/rs6000/xcoff.h (toc_section): Likewise. * config/v850/v850.c (compute_register_save_size): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48515 138bc75d-0d04-0410-961f-82ee72b054a4
* * haifa-sched.c (reemit_other_notes): New.rth2001-12-271-0/+24
| | | | | | | | | | | | | | (schedule_block): Use it. * sched-ebb.c (schedule_ebbs): Call remove_unnecessary_notes. * sched-rgn.c (schedule_insns): Likewise. * cfglayout.c (remove_scope_notes): Handle removing note at the end of the insn chain. * function.c (debug_find_var_in_block_tree): New. * gcc.dg/debug-1.c, gcc.dg/debug-2.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48333 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (expand_main_function): Make sure stack adjustmentsdj2001-12-261-1/+12
| | | | | | | happen before sjlj exception setup. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48316 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (expand_expr, case ADDR_EXPR): Handling taking address ofkenner2001-12-221-12/+11
| | | | | | | | | SAVE_EXPR. * function.c (gen_mem_addressof): Add missing tests for SAVE_EXPR. (put_addressof_into_stack): Clarify code in setting of used_p. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48268 138bc75d-0d04-0410-961f-82ee72b054a4
* * ChangeLog.2, ChangeLog.3, ChangeLog.5, ChangeLog, alias.c,jsm282001-12-091-9/+9
| | | | | | | | | | | | | | | | | cfgbuild.c, expmed.c, expr.c, final.c, flow.c, fold-const.c, function.c, config/alpha/alpha.md, config/alpha/vms-ld.c, config/arm/arm.c, config/arm/arm.h, config/c4x/libgcc.S, config/i370/i370.c, config/i386/i386.c, config/i386/i386-interix.h, config/i386/i386.md, config/i386/i386.h, config/i386/netbsd-elf.h, config/ia64/ia64.c, config/m32r/m32r-protos.h, config/mcore/mcore.h, config/rs6000/rs6000.h, config/sparc/linux64.h, config/sparc/sparc.c, config/v850/v850-protos.h, config/cris/cris.h, config/s390/s390.md, config/elfos.h: Fix spelling errors. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47815 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (handle_epilogue_set): Check for FP setting case whenkenner2001-12-061-3/+6
| | | | | | | SP is set from FP in same insn. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47719 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (assing_parms): Fix typo in last change.kenner2001-12-061-1/+1
| | | | | | | | | | * config/clipper.c (clipper_builtin_saveregs): Remove Checker code. * config/m88k/m88k.c (m88k_builtin_saveregs): Likewise. * config/pa/pa.c (hppa_builtin_saveregs): Likewise. * config/sparc/sparc.c (sparc_builtin_saveregs): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47715 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (keep_stack_depressed): Check global_live_at_startkenner2001-12-061-1/+6
| | | | | | | of EXIT_BLOCK for temp register and verify it isn't in equiv_reg_src. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47706 138bc75d-0d04-0410-961f-82ee72b054a4
* * attribs.c (handle_no_check_memory_usage_atribute): Deleted.kenner2001-12-051-37/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (c_com): Delete its reference. * builtins.c: Delete memory checking code. * calls.c, expr.c, function.c, stmt.c: Likewise. * builtins.c (expand_builtin_arg_info): Remove reference to EXPAND_MEMORY_USE_* modifiers. * explow.c (expr_size): Likewise. * expr.c (expand_expr, expand_increment): Likewise. * expr.h (ARGS_SIZE_RTX): Likewise. * function.c (assign_parms, expand_pending_sizeso): Likewise. * c-decl.c (duplicate_decls): Don't handle DECL_NO_CHECK_MEMORY_USAGE. * expr.c (in_check_memory_usage): Delete. (get_push_address, get_memory_usage_from_modifier): Delete. (expand_assigment): Use EXPAND_WRITE on destination. (expand_expr): Delete ro_modifier. * expr.h (expand_modifier): Delete EXPAND_MEMORY_* entries and add EXPAND_WRITE. (memory_use_mode): Delete. * flags.h (flag_check_memory_usage): Deleted. (flag_prefix_function_name): Likewise. * function.c (expand_function_start): Don't set current_function_check_memory_usage. * function.h (check_memory_usage): Delete. * libfuncs.h, optabs.c: Delete chkr_* stuff. * stmt.c (expand_asm_opernd): Change EXPAND_MEMORY_USE_WO to EXPAND_WRITE. * toplev.c (flag_check_memory_usage): Deleted. (flag_prefix_function_name): Likewise. (f_options, process_options): Delete references to above. * tree.h (DECL_NO_CHECK_MEMORY_USAGE): Deleted. * varasm.c (CHKR_PREFIX): Deleted. (make_decl_rtl): Remove flag_prefix_function_name handling. (assemble_name): Likewise. * doc/extend.texi: Remove no_check_memory_usage attribute. * doc/invoke.texi: Remove -fcheck-memory-usage and -fprefix-function-name. * cp/decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47697 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (keep_stack_depressed): Refine check for registerkenner2001-12-051-1/+2
| | | | | | | clobbered over call. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47664 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (assign_parms): Set last_named only for last namedjakub2001-12-041-5/+14
| | | | | | | | | argument. * g++.dg/other/stdarg1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47601 138bc75d-0d04-0410-961f-82ee72b054a4
* * rtl.def (PREFETCH): New rtx code.janis2001-12-041-0/+1
| | | | | | | | | | | * doc/rtl.texi (PREFETCH): Add documentation. * function.c (instantiate_virtual_regs_1): Handle PREFETCH rtx. * rtlanal.c (reg_referenced_p): Ditto. * sched-vis.c (print_exp): Ditto. * ssa-dce.c (find_inherently_necessary): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47580 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (assign_stack_temp_for_type): Clear alias set beforekenner2001-11-241-0/+1
| | | | | | | setting new one. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47303 138bc75d-0d04-0410-961f-82ee72b054a4
* * ChangeLog.0, ChangeLog.2, ChangeLog.3, ChangeLog.4, ChangeLog,jsm282001-11-231-1/+1
| | | | | | | | | | | FSFChangeLog.10, c-decl.c, cppfiles.c, cppinit.c, cpplex.c, cpplib.c, cppmain.c, cse.c, df.c, diagnostic.c, dominance.c, dwarf2out.c, dwarfout.c, emit-rtl.c, errors.c, except.c, except.h, explow.c, function.c, gcse.c, genrecog.c, predict.c, regmove.c, sched-rgn.c, ssa-ccp.c, stmt.c, toplev.c: Fix spelling errors. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47279 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (keep_stack_depressed): Major rework.kenner2001-11-211-39/+269
| | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47250 138bc75d-0d04-0410-961f-82ee72b054a4
* * explow.c (probe_stack_range): Use LCT_NORMAL as second argumentjakub2001-11-211-5/+5
| | | | | | | | | | | | | | | to emit_library_call. * function.c (expand_main_function, expand_function_start, expand_function_end): Likewise. * profile.c (output_func_start_profiler): Likewise. * stmt.c (expand_nl_goto_receivers): Use LCT_NORETURN as second argument to emit_library_call. * optabs.c (prepare_cmp_insn): Use LCT_CONST_MAKE_BLOCK as second argument to emit_library_call. * calls.c (emit_library_call): Update fn_type description. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47241 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c (nonoverlapping_memrefs): Use REGNO_PTR_FRAME_P.kenner2001-11-151-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47075 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (struct temp_slot): ALIGN now unsigned.kenner2001-11-141-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47016 138bc75d-0d04-0410-961f-82ee72b054a4
* * expmed.c (extract_bit_field): No longer pass in alignment.kenner2001-11-111-9/+4
| | | | | | | | | | | | | | | (extract_fixed_bit_field, extract_split_bit_field): Likewise. (store_bit_field, store_fixed_bit_field, store_split_bit_field): Likewise. * expr.c (store_constructor, store_constructor_field): Likewise. (store_field, emit_group_load, emit_group_store): Likewise. * expr.h (emit_group_load, emit_group_store): Delete ALIGN parm. (store_bit_field, extract_bit_field): Likewise. * calls.c, expr.c, function.c: Change calls to above functions. * ifcvt.c, stmt.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46926 138bc75d-0d04-0410-961f-82ee72b054a4
* * cselib.c (cselib_subst_to_values, case CONST_DOUBLE): Removekenner2001-11-031-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46736 138bc75d-0d04-0410-961f-82ee72b054a4
* * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,jsm282001-10-281-1/+1
| | | | | | | | | | | | | ChangeLog.5, ChangeLog, FSFChangeLog.10, FSFChangeLog.11, c-common.c, c-common.h, c-parse.in, c-typeck.c, cfg.c, config.gcc, configure, configure.in, except.c, except.h, flow.c, function.c, gcc.c, gcse.c, genrecog.c, libgcc2.c, loop.c, loop.h, params.def, predict.def, predict.h, reg-stack.c, regmove.c, sched-deps.c, sched-int.h, sibcall.c, ssa.c, stringpool.c, toplev.c, tree.c, unroll.c: Fix spelling errors. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46595 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (expand_builtin_setjmp): Only call convert_memory_addresskenner2001-10-231-1/+8
| | | | | | | | | | | | | | | | | | | | | | if needed. (expand_builtin_longjmp, expand_builtin_alloca): Likewise. * except.c (expand_builtin_frob_return_addr): Likewise. (expand_builtin_eh_return): Likewise. * stmt.c (expand_computed_goto): Likewise. * explow.c (memory_address): Likewise. (allocate_dynamic_stack_space): Clean up predicate testing. (probe_stack_range): Convert SIZE to Pmode. * calls.c (rtx_for_function_call): Only call convert_memory_address if needed. Pass function call operand as ptr_mode, not Pmode. * expr.c (expand_assignment): Clean up calls to convert_memory address by only doing so when needed and making offsets Pmode. (store_constructor, expand_expr, expand_expr_unaligned): Likewise. * function.c (assign_parms): Ensure address in MEM for RESULT_DECL is in Pmode, not ptr_mode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46448 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c (can_address_p): Compnonents are not addressable ifkenner2001-10-231-8/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46443 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c (can_address_p): Compnonents are not addressable ifkenner2001-10-231-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46442 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (rtlanal.o): Depend on $(TM_P_H).ghazi2001-10-191-0/+2
| | | | | | | | | | | | | | | | | | | | * arm-protos.h (rdata_section, zero_init_section, common_section): Prototype. * arm.h (ASM_OUTPUT_DEF_FROM_DECLS): Const-ify. * avr.h (ASM_OUTPUT_SKIP): Rename macro parameter to avoid traditional mode stringification. * function.c (thread_prologue_and_epilogue_insns): Wrap variable in macros controling its use. * rtlanal.c: Include tm_p.h. * varasm.c (asm_output_aligned_bss): Mark parameter with ATTRIBUTE_UNUSED. (assemble_constant_align, assemble_start_function, assemble_align, assemble_variable, assemble_trampoline_template, output_constant_def_contents): Wrap potentially empty if-stmt body in brackets. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46360 138bc75d-0d04-0410-961f-82ee72b054a4
* * emit-rtl.c (gen_reg_rtx): Also reallocate reg_decl array.kenner2001-10-181-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | (offset_address): New function. (free_emit_status): Free regno_decl. (init_emit): Pass proper number of elements to xcalloc. Allocate regno_decl. (mark_emit_status): Mark regno_decl values. * expr.c (highest_pow2_factor): New function. (expand_assigment): Use it and offset_address. Properly handle ptr_mode vs. Pmode in offset calculation. (store_constructor, expand_expr_unaligned): Likewise. (expand_expr, case COMPONENT_EXPR): Likewise. * expr.h (offset_address): New decl. * function.h (struct emit_status): Add regno_decl. (REGNO_DECL): New macro. * final.c (output_asm_name): Move in file and don't conditionalize on flag_print_asm_name. (output_asm_insn): Only call output_asm_name if flag_print_asm_name. Output names of operands, if known. * function.c (assign_parms): Set REGNO_DECL. * integrate.c (integrate_decl_tree): Likewise. * stmt.c (expand_decl): Likewise. * regclass.c (reg_scan_mark_refs): Propagate REGNO_DECL for copies. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46337 138bc75d-0d04-0410-961f-82ee72b054a4
* 2001-10-10 Stan Shebs <shebs@apple.com>shebs2001-10-111-36/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * alias.c: Remove uses of "register" specifier in declarations of arguments and local variables. * c-common.c: Ditto. * c-convert.c: Ditto. * c-decl.c: Ditto. * c-format.c: Ditto. * c-semantics.c: Ditto. * c-typeck.c: Ditto. * caller-save.c: Ditto. * calls.c: Ditto. * cfg.c: Ditto. * cfgbuild.c: Ditto. * cfgrtl.c: Ditto. * collect2.c: Ditto. * combine.c: Ditto. * convert.c: Ditto. * cppexp.c: Ditto. * cppfiles.c: Ditto. * cse.c: Ditto. * dbxout.c: Ditto. * defaults.h: Ditto. * df.c: Ditto. * dwarf2out.c: Ditto. * dwarfout.c: Ditto. * emit-rtl.c: Ditto. * explow.c: Ditto. * expmed.c: Ditto. * expr.c: Ditto. * final.c: Ditto. * fix-header.c: Ditto. * floatlib.c: Ditto. * flow.c: Ditto. * fold-const.c: Ditto. * function.c: Ditto. * gcc.c: Ditto. * gcse.c: Ditto. * gen-protos.c: Ditto. * genattrtab.c: Ditto. * gencheck.c: Ditto. * genconfig.c: Ditto. * genemit.c: Ditto. * genextract.c: Ditto. * genflags.c: Ditto. * gengenrtl.c: Ditto. * genoutput.c: Ditto. * genpeep.c: Ditto. * genrecog.c: Ditto. * gensupport.c: Ditto. * global.c: Ditto. * gmon.c: Ditto. * graph.c: Ditto. * haifa-sched.c: Ditto. * hard-reg-set.h: Ditto. * hash.c: Ditto. * integrate.c: Ditto. * jump.c: Ditto. * lists.c: Ditto. * local-alloc.c: Ditto. * loop.c: Ditto. * mips-tdump.c: Ditto. * mips-tfile.c: Ditto. * optabs.c: Ditto. * prefix.c: Ditto. * print-rtl.c: Ditto. * read-rtl.c: Ditto. * real.c: Ditto. * recog.c: Ditto. * reg-stack.c: Ditto. * regclass.c: Ditto. * regmove.c: Ditto. * reload.c: Ditto. * reload1.c: Ditto. * reorg.c: Ditto. * resource.c: Ditto. * rtl.c: Ditto. * rtlanal.c: Ditto. * scan.c: Ditto. * sched-deps.c: Ditto. * sched-rgn.c: Ditto. * sdbout.c: Ditto. * simplify-rtx.c: Ditto. * stmt.c: Ditto. * stor-layout.c: Ditto. * toplev.c: Ditto. * tradcif.y: Ditto. * tradcpp.c: Ditto. * tree.c: Ditto. * unroll.c: Ditto. * varasm.c: Ditto. * xcoffout.c: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46173 138bc75d-0d04-0410-961f-82ee72b054a4
* * calls.c: Fix formatting.kazu2001-10-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46145 138bc75d-0d04-0410-961f-82ee72b054a4
* * varasm.c (restore_varasm_status): New.rth2001-10-081-0/+1
| | | | | | | | * function.h: Declare it. * function.c (pop_function_context_from): Call it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46080 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (keep_stack_depressed): Don't use delete_insn.kenner2001-10-011-10/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45922 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (cfgrtl.o): Add.hubicka2001-09-251-19/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks, free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges, free_aux_for_edge): Declare. * cfg.c (HAVE_return): Undefine. * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks, free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges, free_aux_for_edge): New global functions. (first_delete_block): New static variable. (init_flow): Clear first_delete_block. (basic_block_for_insn, label_value_list, tail_recursion_label_list, can_delete_note_p, can_delete_label_p, commit_one_edge_insertion, try_redirect_by_replacing_jump, last_loop_beg_note, back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect, delete_insn, delete_insn_chain, create_basic_block_structure, create_basic_block, flow_delete_block, compute_bb_for_insn, free_bb_for_insn, update_bb_for_insn, set_block_for_insn, set_block_for_new_insns, split_block, merge_blocks_nomove, block_label, try_redirect_by_replacing_jump, last_loop_beg_note, redirect_edge_and_branch, force_nonfallthru_and_redirect, force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge, tidy_fallthru_edges, split_edge, insert_insn_on_edge, commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges, purge_all_dead_edges): Move to .... * cfgrtl.c: New file; .... Here. * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block. (reroder_basic_block): Use alloc_aux_for_blocks. * predict.c (estimate_bb_frequencies): Likewise; use alloc_aux_for_edges. * profile.c (compute_branch_probabilities): Likewise. (branch_prob): Likewise. * reg-stack.c (reg_to_stack): Likewise. * emit-rtl.c (emit_insns_after): Never return NULL. * basic-block.h (set_block_for_new_insns): Delete. * cfgrtl.c (set_block_for_new_insns): Delete. * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn calls when crossjumping. * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call. * unroll.c (copy_loop_body): Use delete_insn. * final.c (final, final_scan_insn): Use delete_insn/delete_note. * function.c (fixup_var_refs_insn, fixup_var_refs_1, keep_stack_depressed): Likewise. * gcse.c (cprop_cc0_jump): Likewise. * local-alloc.c (update_equiv_regs): Likewise. * loop.c (scan_loop, loop_delete_insns): Likewise. * regmove.c (try_auto_increment, fixup_match_1): Likewise. * reload1.c (reload, calculate_needs_all_insns, reload_as_needed, delete_output_reload, delete_address_reloads_1, reload_cse_delete_noop_set, reload_combine, reload_cse_move2add): Likewise. * sibcall.c (replace_call_placeholder): Likewise. * cse.c (cse_insn): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45807 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (pop_function_context_from): var_refs_queuekenner2001-09-231-55/+33
| | | | | | | | | | | | | | | and temp slots now in GC memory. (mark_function_status, free_after_compilation): Likewise; also struct function now in GC memory. (assign_stack_temp_for_type): struct temp_slot now in GC memory. (combine_temp_slots): Likewise. (schedule_fixup_var_refs): var_refs_queue now in GC memory. (prepare_function_start): Use GC memory for struct function. (mark_temp_slot): Deleted. (gcc_mark_struct_function): struct function now in GC memory. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45764 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (fix_lexical_address): Use set_mem_alias_set.kenner2001-09-221-2/+2
| | | | | | | | (expand_function_start): Likewise. * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45751 138bc75d-0d04-0410-961f-82ee72b054a4
* * basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill.hubicka2001-09-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45726 138bc75d-0d04-0410-961f-82ee72b054a4
* * basic-block.h (free_bb_for_insn): Declare.hubicka2001-09-161-14/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45647 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (ggc_mark_struct_function): Mark f->outer.zack2001-09-051-0/+2
| | | | | | | | * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here... * integrate.c (output_inline_function): ... not here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45419 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.h (struct function): Add arg_pointer_save_area_init.rth2001-09-031-11/+14
| | | | | | | | | * function.c (expand_function_end): Init arg_pointer_save_area. (get_arg_pointer_save_area): Do not init arg_pointer_save_area when called from a nested function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45362 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c: Remove all_functions. Make outer_function_chainzack2001-08-311-58/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | static. (init_function_start): Don't add new function structure to all_functions. (find_function_data, push_function_context_to, pop_function_context_from, put_var_into_stack, trampoline_address): Update for changed structure element names. (push_function_context_to): Disentangle. (free_after_compilation): Also free F. (expand_dummy_function_end): Don't free cfun here. (put_var_into_stack): Comment why we can't use find_function_data here. (fix_lexical_addr, trampoline_address, ): Use find_function_data. (mark_function_chain): Split into maybe_mark_struct_function and ggc_mark_struct_function. Export the latter. (init_function_once): Mark from cfun and outer_function_chain; not all_functions. * function.h (struct function): Kill next_global. Rename next to outer. All users updated to match. (all_functions, outer_function_chain): Don't declare. * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS. * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS, don't touch f->inlinable, after calling rest_of_compilation. * tree.h: Forward-declare struct function. Prototype ggc_mark_struct_function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45336 138bc75d-0d04-0410-961f-82ee72b054a4