aboutsummaryrefslogtreecommitdiff
path: root/gcc/integrate.c
AgeCommit message (Collapse)AuthorFilesLines
2002-05-30rtl.h (clear_emit_caches): Delete.David S. Miller1-1/+0
2002-05-29 David S. Miller <davem@redhat.com> * rtl.h (clear_emit_caches): Delete. * integrate.c (output_inline_function): Don't call it. * emit-rtl.c (restore_emit_status, init_emit): Likewise. (clear_emit_caches): Delete definition. (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise. From-SVN: r54053
2002-04-30cpplex.c: Fix comment formatting.Kazu Hirata1-1/+1
* cpplex.c: Fix comment formatting. * function.c: Likewise. * integrate.c: Likewise. * regrename.c: Likewise. * sibcall.c: Likewise. * simplify-rtx.c: Likewise. * tree-inline.c: Likewise. From-SVN: r52972
2002-04-25integrate.c (function_attribute_inlinable_p): Simplify.Neil Booth1-18/+10
* integrate.c (function_attribute_inlinable_p): Simplify. Check the table pointer is not NULL. From-SVN: r52763
2002-04-22rtl.h (RTX_FLAG): New macro.Janis Johnson1-4/+4
* rtl.h (RTX_FLAG): New macro. * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags. * final.c (alter_subreg): Use macro to access rtx flag. * integrate.c (copy_rtx_and_substitute): Use new access macro. * print-rtl.c (print_rtx): Use new access macro. * cse.c (insert): Check rtx code before accessing flag. * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P, ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New. (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test, convert_const_symbol_ref, make_canonical, make_alternative_compare, evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp, simplify_test_exp, optimize_attrs, simplify_by_exploding, find_and_mark_used_attributes, unmark_used_attributes, add_values_to_cover, simplify_with_current_value, simplify_with_current_value_aux, clear_struct_flag, walk_attr_value, copy_rtx_unchanging, main): Use new access macros. From-SVN: r52645
2002-04-12integrate.c (compare_blocks): Make comparisons safe for when sizeof(int) < ↵DJ Delorie1-4/+12
sizeof(char *). * integrate.c (compare_blocks): Make comparisons safe for when sizeof(int) < sizeof(char *). (find_block): Likewise. From-SVN: r52232
2002-03-21Makefile.in (fold-const.o, [...]): Update.Neil Booth1-1/+1
* Makefile.in (fold-const.o, stor-layout.o, stmt.o, sdbout.o, profile.o): Update. * c-common.c (c_common_nodes_and_builtins): Use pushdecl langhook. * c-common.h (gettags): Move here from tree.h. * c-tree.h (pushdecl, pushlevel, poplevel, set_block, insert_block, getdecls, kept_level_p, global_bindings_p): New. * dbxout.c (dbxout_init): Use getdecls langhook. * expr.c (expand_expr): Use insert_block langhook. * fold-const.c: Include langhooks.h. (fold_range_test, fold_binary_op_with_conditional_arg, fold): Use global_bindings_p langhook. * integrate.c (expand_inline_function): Use insert_block langhook. * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P, LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL, LANG_HOOKS_GETDECLS): New. (LANG_HOOKS_INITIALIZER): Update. * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p langhook. * langhooks.h (struct lang_hooks_for_decls): New. (struct lang_hooks): Update. * profile.c: Include langhooks.h. (output_func_start_profiler): Use new langhooks. * sdbout.c: Include langhooks.h. (sdbout_init, sdbout_finish): Use getdecls langhook. * stmt.c: Include langhooks.h. (expand_fixup, fixup_gotos): Use new langhooks. * stor-layout.c: Include langhooks.h. (variable_size): Use global_bindings_p langhook. * toplev.c (compile_file): Use getdecls langhook. * tree-inline.c (remap_block): Use insert_block langhook. * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags, insert_block, getdecls, kept_level_p, global_bindings_p): Remove. cp: * cp-tree.h (pushdecl, pushlevel, poplevel, set_block, insert_block, getdecls, global_bindings_p): New. java: * cp-tree.h (pushdecl, pushlevel, poplevel, set_block, insert_block, getdecls, kept_level_p, global_bindings_p): New. f: * cp-tree.h (pushdecl, pushlevel, poplevel, set_block, insert_block, getdecls, global_bindings_p): New. From-SVN: r51136
2002-03-12Makefile.in (debug.o): Depend on debug.h.Kaveh R. Ghazi1-1/+1
* Makefile.in (debug.o): Depend on debug.h. * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify. * debug.c (do_nothing_debug_hooks): Likewise. * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks, sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks, dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise. * dwarf2out.c (dwarf2_debug_hooks): Likewise. * dwarfout.c (dwarf_debug_hooks): Likewise. * integrate.c (output_inline_function): Likewise. * objc/objc-act.c (synth_module_prologue): Likewise. * sdbout.c (sdb_debug_hooks): Likewise. * toplev.c (debug_hooks): Likewise. * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. From-SVN: r50635
2002-02-28Makefile.in (integrate.o): Update.Neil Booth1-2/+2
* Makefile.in (integrate.o): Update. * c-decl.c (copy_lang_decl): Rename. * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine. * integrate.c: Include langhooks.h. (copy_decl_for_inlining): Update to use langhook. * langhooks-def.h (lhd_do_nothing_t, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New. (LANG_HOOKS_INITIALIZER): Update. * langhooks.c (lhd_do_nothing_t): New. * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl. * tree.h (copy_lang_decl): Remove. ada: * misc.c (copy_lang_decl): Remove. cp: * class.c (build_clone): Update. * cp-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine. * cp-tree.h (cxx_dup_lang_specific_decl): New. * lex.c (copy_lang_decl): Rename cxx_dup_lang_specific_decl. (copy_decl): Update. * method.c (make_thunk): Update. f: * com.c (copy_lang_decl): Delete. java: * decl.c (copy_lang_decl): Rename java_dup_lang_specific_decl. * java-tree.h (java_dup_lang_specific_decl): New. * lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine. objc: * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine. From-SVN: r50122
2002-02-19i386.md ("mmx_uavgv8qi3"): Use const_vector.Aldy Hernandez1-0/+2
2002-02-19 Aldy Hernandez <aldyh@redhat.com> * 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. From-SVN: r49853
2002-01-23elf.h: New file.Bob Wilson1-6/+44
* config/xtensa/elf.h: New file. * config/xtensa/lib1funcs.asm: New file. * config/xtensa/lib2funcs.S: New file. * config/xtensa/linux.h: New file. * config/xtensa/t-xtensa: New file. * config/xtensa/xtensa-config.h: New file. * config/xtensa/xtensa-protos.h: New file. * config/xtensa/xtensa.c: New file. * config/xtensa/xtensa.h: New file. * config/xtensa/xtensa.md: New file. * config.gcc (xtensa-*-elf*): New target. (xtensa-*-linux*): New target. * cse.c (canon_hash): Compare rtx pointers instead of register numbers. This is required for the Xtensa port. * integrate.c (copy_insn_list): Handle case where the static chain is in memory and the memory address has to be copied to a register. * doc/invoke.texi (Option Summary): Add Xtensa options. (Xtensa Options): New node. * doc/md.texi (Machine Constraints): Add Xtensa machine constraints. * gcc.c-torture/compile/20001226-1.x: xfail for Xtensa. From-SVN: r49155
2002-01-16calls.c (try_to_integrate): Use "(size_t)" intermediate cast and when ↵Graham Stott1-2/+2
casting an integer literal to "rtx"... * calls.c (try_to_integrate): Use "(size_t)" intermediate cast and when casting an integer literal to "rtx" pointer. (expand_call): Likewise. * flow.c (try_pre_increment): Likewise. (find_use_as_address): Likewise. * integrate.c (expand_iline_function): Likewise. * regmove.c (try_auto_increment): Likewise. From-SVN: r48906
2002-01-05c-decl.c (c_expand_body): Don't call outlining_inline_function.Richard Henderson1-5/+1
* c-decl.c (c_expand_body): Don't call outlining_inline_function. * integrate.c (output_inline_function): Likewise. * toplev.c (rest_of_compilation): Do it here instead. Move call to remove_unnecessary_notes after emitting abstract instance. Force an emitted nested function to have its parent emited as well. * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking for null. (rtl_for_decl_location): Do not look at reload data structures before reload has run. * semantics.c (expand_body): Revert last change. From-SVN: r48572
2001-12-30integrate.c (copy_rtx_and_substitute): Fix error last change: we need to ↵Richard Henderson1-3/+3
unconditionally create a new mem. * integrate.c (copy_rtx_and_substitute): Fix error last change: we need to unconditionally create a new mem. From-SVN: r48403
2001-12-29expr.c (store_field): Use adjust_address, not PUT_MODE.Richard Kenner1-4/+3
* expr.c (store_field): Use adjust_address, not PUT_MODE. (expand_expr, case VIEW_CONVERT_EXPR): Likewise. * reload1.c (eliminate_regs, case SUBREG): Likewise, but use adjust_address_nv. * varasm.c (make_decl_rtl): Likewise. * integrate.c (copy_rtx_and_substitute, case MEM): Likewise, but use replace_equiv_address_nv. From-SVN: r48387
2001-12-27integrate.c (copy_rtx_and_substitute, case MEM): If inlining and not for ↵Richard Kenner1-0/+7
LHS, clear RTX_UNCHANGING_P. * integrate.c (copy_rtx_and_substitute, case MEM): If inlining and not for LHS, clear RTX_UNCHANGING_P. From-SVN: r48337
2001-12-27integrate.c (copy_insn_notes): Don't adjust REG_EH_REGION note if special value.Richard Kenner1-1/+2
* integrate.c (copy_insn_notes): Don't adjust REG_EH_REGION note if special value. From-SVN: r48328
2001-11-14integrate.c (get_hard_reg_initial_reg): New.DJ Delorie1-0/+18
* integrate.c (get_hard_reg_initial_reg): New. * integrate.h (get_hard_reg_initial_reg): Prototype. * local-alloc.c (block_alloc): Don't tie pseudos that represent call-saved hard regs' initial values. From-SVN: r47037
2001-11-11alpha.c (unicosmk_special_name): Prototype.Kaveh R. Ghazi1-1/+4
* alpha.c (unicosmk_special_name): Prototype. (unicosmk_ssib_name): Delete unused variable. * alpha/unicosmk.h (common_section, ssib_section): Prototype. * alpha/vms.h (PREFIX): Undef before defining. * arm/pe.h (SUBTARGET_NAME_ENCODING_LENGTHS): Likewise. * i370/i370.c (mvs_hash_alias): Prototype. Wrap with macro controlling usage. Const-ify. (alias_number): Delete unused variable. * m32r/m32r.c (m32r_sched_init): Add missing argument. (m32r_expand_block_move): Fix uninitialized warnings. * mn10300/mn10300.h (REGNO_IN_RANGE_P): Fix 'unsigned >=0 is always true' warnings. * openbsd.h (TARGET_MEM_FUNCTIONS): Don't redefine. * sh/sh.c: Include "integrate.h". (output_far_jump): Fix uninitialized warning. * final.c (shorten_branches): Avoid automatic aggregate initialization. * integrate.c (subst_constants): Likewise. From-SVN: r46932
2001-10-24integrate.c (copy_rtx_and_substitute, case CALL): Fix error in last change.Richard Kenner1-1/+1
* integrate.c (copy_rtx_and_substitute, case CALL): Fix error in last change. From-SVN: r46471
2001-10-23alias.c (can_address_p): Compnonents are not addressable if the containing ↵Richard Kenner1-7/+12
type has alias set 0. * alias.c (can_address_p): Compnonents are not addressable if the containing type has alias set 0. (get_alias_set): Rework to use STRIP_NOPS. Only call front-end routine on object, type, or object with NOPs stripped, not inner values. Use language hook to call front-end routine. * builtins.c (get_memory_rtx): Always call set_mem_attributes. (expand_builtin_apply): Call set_mem_align on MEMs we make. Don't pass alignment to emit_block_move. (expand_builtin_memcpy, expand_builtin_va_copy): Likewise. (expand_builtin_memset): Likewise, but for clear_storage. * c-common.c (lang_get_alias_set): Renamed to c_common_alias_set and remove C++ specific parts. * c-common.h (c_common_get_alias_set): Add declaration. * c-lang.c (LANG_HOOKS_GET_ALIAS_SET): New macro. * calls.c (emit_call_1): Fix typo in sibcall_pop case. (save_fixed_argument_area): Call set_mem_align. Remove alignment in call to emit_block_move. (emit_library_call_value_1, store_one_arg): Likewise. (target_for_arg): Remove; disabled long ago. * emit-rtl.c (set_mem_attributes): Rework to only call get_mem_attrs once and similar cleanups. (offset_address): Use proper introductory comment. * expr.c (emit_block_move): Use alignment from that of MEM args, not from explicit operand; all callers changed. (clear_storage): Likewise. (expand_assignment): Don't call set_mem_alias_set on to_rtx. (store_field): Remove kludge on alias set used for to_rtx. (highest_pow2_factor, case *_DIV_EXPR): Never return 0. (expand_expr_unaligned): Call set_mem_attributes instead of set_mem_alias_set. * expr.h (emit_block_move, clear_storage): Remove ALIGN argument. * function.c (assign_stack_temp_for_type): Set MEM alignment. (expand_function_end): Track MEM attributes of trampolines. * ifcvt.c (noce_try_cmove_arith): Set alignment of new MEM. * integrate.c (copy_rtx_and_substitute, case CALL): Copy memory attributes from original. * langhooks.c (lang_hook_default_get_alias_set): New function. (hook_get_alias_set_0): New function. * langhooks.h (hook_get_alias_set_0): New declaration. (lang_hook_default_get_alias_set): Likewise. (LANG_HOOKS_GET_ALIAS_SET): New macro; add to initializer. * reload1.c (alter_reg): Use adjust_address_nv. * rtl.c (get_mode_alignment): Moved to here. * rtl.h (MEM_ALIGN): Take default from mode, if not BLKmode, and change default if unknown from 1 to BITS_PER_UNIT. * stor-layout.c (get_mode_alignment): Remove from here. * toplev.h (struct lang_hoks): Add get_alias_set field. * tree.h (lang_get_alias_set): Delete declaration. * config/arc/arc.c (arc_setup_incoming_varags): Set MEM alignment. * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise. (ix86_va_arg): Likewise. * config/i960/i960.c (i960_setup_incoming_varargs): Likewise. * config/pa/pa.c (hppa_builtin_saveregs): Likewise. * config/sparc/sparc.c (sparc_va_arg): Likewise. * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise. (expand_block_move_mem): Remove dead code. * cp/cp-lang.c (cxx_get_alias_set): New function. Point LANG_HOOKS_GET_ALIAS_SET to it. * f/com.c (LANG_HOOKS_GET_ALIAS_SET): New macro. (lang_get_alias_set): Delete. * java/lang.c (lang_get_alias_set): Deleted. From-SVN: r46440
2001-10-19calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.Kaveh R. Ghazi1-3/+0
* calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED. * 1750a.c (print_operand): Fix format specifier warning. * 1750a.h (ASM_FILE_START): Don't discard pointer qualifier. * 1750a.md: Likewise. * gcc.c (init_gcc_specs): Wrap with ENABLE_SHARED_LIBGCC. * genemit.c (output_add_clobbers): Mark parameter with ATTRIBUTE_UNUSED. * genrecog.c (write_subroutine): Likewise. * integrate.c (expand_inline_function): Delete unused variable. * varasm.c (remove_from_pending_weak_list): Wrap with ASM_WEAKEN_LABEL. From-SVN: r46358
2001-10-18Install correct version of fileRichard Kenner1-1/+1
From-SVN: r46339
2001-10-18emit-rtl.c (gen_reg_rtx): Also reallocate reg_decl array.Richard Kenner1-0/+9
* emit-rtl.c (gen_reg_rtx): Also reallocate reg_decl array. (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. From-SVN: r46337
2001-10-11alias.c: Remove uses of "register" specifier in declarations of arguments ↵Stan Shebs1-29/+29
and local... 2001-10-10 Stan Shebs <shebs@apple.com> * 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. From-SVN: r46173
2001-10-10calls.c: Fix formatting.Kazu Hirata1-1/+1
* 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: r46145
2001-10-05Makefile.in (c-decl.o): Depend on tree-inline.h.Alexandre Oliva1-19/+26
* Makefile.in (c-decl.o): Depend on tree-inline.h. (c-lang.o): Likewise, as well as insn-config.h and integrate.h. * c-decl.c: Include tree-inline.h. (c_expand_body): Call optimize_inline_calls. Determine whether a function is inlinable upfront, and only clear DECL_SAVED_TREE, DECL_INITIAL and DECL_ARGUMENTS if it isn't. * c-lang.c: Include tree-inline.h, insn-config.h and integrate.h. (c_disregard_inline_limits): New function. (inline_forbidden_p, c_cannot_inline_tree_fn): Likewise. (c_post_options): Enable tree inlining if inlining is enabled. Don't inline trees when instrumenting functions. (c_init): Initialize lang_disregard_inline_limits and lang_cannot_inline_tree_fn. * tree-inline.c (initialize_inlined_parameters): Handle calls with fewer arguments than declared parameters, and fewer parameters than passed arguments. Don't assume value is a DECL. (declare_return_variable): Convert return value back to the original type, if it was promoted. (tree_inlinable_function_p): New function. (inlinable_function_p): Don't look at DECL_INLINE if we're inlining all functions. Make it work with a NULL id. Re-check DECL_UNINLINABLE after language-specific checks. (varargs_function_p): Move back to cp/tree.c. * tree-inline.h (tree_inlinable_function_p): Declare it. (varargs_function_p): Removed declaration. * integrate.h (function_attribute_inlinable_p): Declare it. * integrate.c (function_attribute_inlinable_p): Export it. (save_for_inline): Don't bother to prepare argvec when not inlining. * cse.c (check_for_label_ref): Don't check deleted labels. From-SVN: r46025
2001-10-05Makefile.in (OBJS): Added tree-inline.o.Alexandre Oliva1-3/+1
* Makefile.in (OBJS): Added tree-inline.o. (c-common.o): Depend on tree-inline.h. (tree-inline.o): New target. * c-common.c: Include tree-inline.h. (c_mark_lang_decl): Don't mark saved_tree. (c_common_lang_init): Set lang_anon_aggr_type_p. * c-common.h (walk_tree_fn, DECL_SAVED_TREE): Moved to tree.h. (struct c_lang_decl): Moved saved_tree to tree_decl. * ggc-common.c: Mark saved_tree and inlined_fns of FUNCTION_DECLs. * integrate.h (function_attribute_inlinable_p): Declare it. * integrate.c (function_attribute_inlinable_p): Export it. * tree-inline.c: New file. Define variables declared in... * tree-inline.h: New file. Declare functions to be moved to tree-inline.c. Define macros and declare types and hooks for language-specific tree inlining. (flag_inline_trees): Moved definition from cp/decl2.c. * tree.h (walk_tree_fn, DECL_SAVED_TREE): Moved from c-common.h. (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved from cp/cp-tree.h. (struct tree_decl): Moved saved_tree from c_lang_decl and inlined_fns from C++'s lang_decl. From-SVN: r46021
2001-09-21* integrate.c (allocate_initial_values): Eliminate unused arg warning.Richard Kenner1-1/+1
From-SVN: r45729
2001-09-21basic-block.h (flow_delete_insn, [...]): Kill.Jan Hubicka1-3/+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-21Table-driven attributes.Joseph Myers1-9/+37
* c-decl.c, config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c, config/arm/pe.c, config/avr/avr.c, config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h, config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c, config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c, config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi, doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c, tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES. * tree.h (struct tree_decl): Change machine_attributes to attributes. * doc/c-tree.texi: Document that all attributes are now attached to decls and types. * c-common.c (add_attribute, attrtab, attrtab_idx, default_valid_lang_attribute, valid_lang_attribute): Remove. (attribute_tables, attributes_initialized, c_common_attribute_table, default_lang_attribute_table): New variables. (handle_packed_attribute, handle_nocommon_attribute, handle_common_attribute, handle_noreturn_attribute, handle_unused_attribute, handle_const_attribute, handle_transparent_union_attribute, handle_constructor_attribute, handle_destructor_attribute, handle_mode_attribute, handle_section_attribute, handle_aligned_attribute, handle_weak_attribute, handle_alias_attribute, handle_no_instrument_function_attribute, handle_no_check_memory_usage_attribute, handle_malloc_attribute, handle_no_limit_stack_attribute, handle_pure_attribute): New functions. (init_attributes, decl_attributes): Rewrite to implement table-driven attributes. * c-common.h (enum attribute_flags): Move to tree.h. * c-format.c (decl_handle_format_attribute, decl_handle_format_arg_attribute): Rename to handle_format_attribute and handle_format_arg_attribute. Update for table-driven attributes. * c-common.h (decl_handle_format_attribute, decl_handle_format_arg_attribute): Remove prototypes. (handle_format_attribute, handle_format_arg_attribute): Add prototypes. * c-decl.c (grokdeclarator): Handle attributes nested inside declarators. * c-parse.in (setattrs, maybe_setattrs): Remove. (maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs. Update to handle nested attributes properly. (maybe_resetattrs, after_type_declarator, parm_declarator_nostarttypename, notype_declarator, absdcl1_noea, absdcl1_ea, direct_absdcl1): Update to handle nested attributes properly. (make_pointer_declarator): Update to handle nested attributes properly. * doc/extend.texi: Update documentation of limits of attributes syntax. Warn about problems with attribute semantics in C++. * target.h (struct target): Remove valid_decl_attribute and valid_type_attribute. Add attribute_table and function_attribute_inlinable_p. * target-def.h (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Remove. (TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Add. (TARGET_INITIALIZER): Update. * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default definition. (function_attribute_inlinable_p): New function. Check for the presence of any machine attributes before using targetm.function_attribute_inlinable_p. (function_cannot_inline_p): Update. * Makefile.in (integrate.o): Update dependencies. * doc/tm.texi: Update documentation of target attributes and example definition of TARGET_VALID_TYPE_ATTRIBUTE. * tree.c (default_valid_attribute_p, valid_machine_attribute): Remove. (default_target_attribute_table, default_function_attribute_inlinable_p): New. (lookup_attribute): Update comment to clarify handling of multiple attributes with the same name. (merge_attributes, attribute_list_contained): Allow multiple attributes with the same name but different arguments to appear in the same attribute list. * tree.h (default_valid_attribute_p): Remove prototype. (struct attribute_spec): New. (default_target_attribute_table): Declare. (enum attribute_flags): Move from c-common.h. Add ATTR_FLAG_TYPE_IN_PLACE. (default_function_attribute_inlinable_p): Declare. * config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove. (TARGET_VALID_DECL_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (vms_attribute_table): New. * config/arc/arc.c (arc_valid_decl_attribute): Remove. (TARGET_VALID_DECL_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (arc_attribute_table, arc_handle_interrupt_attribute): New. * config/arm/arm.c (arm_valid_type_attribute_p, arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p): Remove. (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (arm_attribute_table, arm_handle_fndecl_attribute, arm_handle_isr_attribute): New. * config/avr/avr.c (avr_valid_type_attribute, avr_valid_decl_attribute): Remove. (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (avr_attribute_table, avr_handle_progmem_attribute, avr_handle_fndecl_attribute): New. * config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove. (TARGET_VALID_TYPE_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (c4x_attribute_table, c4x_handle_fntype_attribute): New. * config/h8300/h8300.c (h8300_valid_decl_attribute): Remove. (TARGET_VALID_DECL_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (h8300_attribute_table, h8300_handle_fndecl_attribute, h8300_handle_eightbit_data_attribute, h8300_handle_tiny_data_attribute): New. * config/i386/i386-protos.h (ix86_valid_type_attribute_p, i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p): Remove prototypes. (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New declarations. * config/i386/i386.c (ix86_valid_type_attribute_p: Remove. (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (ix86_attribute_table, ix86_handle_cdecl_attribute, ix86_handle_regparm_attribute): New. * config/i386/winnt.c (i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p): Remove. (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New. * config/ia64/ia64.c (ia64_valid_type_attribute): Remove. (TARGET_VALID_TYPE_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (ia64_attribute_table): New. * config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1, interrupt_ident2, model_ident1, model_ident2): Remove. (TARGET_VALID_DECL_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (init_idents): Update. (m32r_attribute_table, m32r_handle_model_attribute): New. * config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p): Remove. (TARGET_VALID_TYPE_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New. * config/mcore/mcore.c (mcore_valid_decl_attribute): Remove. (TARGET_VALID_DECL_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (mcore_attribute_table, mcore_handle_naked_attribute): New. * config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove. (TARGET_VALID_TYPE_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (ns32k_attribute_table, ns32k_handle_fntype_attribute): New. * config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove. (TARGET_VALID_TYPE_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (rs6000_attribute_table, rs6000_handle_longcall_attribute): New. * config/sh/sh.c (sh_valid_decl_attribute): Remove. (TARGET_VALID_DECL_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (sh_attribute_table, sh_handle_interrupt_handler_attribute, sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute): New. * config/stormy16/stormy16.c (stormy16_valid_type_attribute): Remove. (TARGET_VALID_TYPE_ATTRIBUTE): Don't define (TARGET_ATTRIBUTE_TABLE): Define. (stormy16_attribute_table, stormy16_handle_interrupt_attribute): New. * config/v850/v850.c (v850_valid_decl_attribute): Remove. (TARGET_VALID_DECL_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (v850_attribute_table, v850_handle_interrupt_attribute, v850_handle_data_area_attribute): New. * config/v850/v850-c.c (mark_current_function_as_interrupt): Return void. Call decl_attributes instead of valid_machine_attribute. cp: Table-driven attributes. * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES. * decl2.c (cplus_decl_attributes): Only take one attributes parameter. * cp-tree.c (cplus_decl_attributes): Update prototype. * class.c (finish_struct), decl.c (start_decl, start_function), decl2.c (grokfield), friend.c (do_friend), parse.y (parse_bitfield): Update calls to cplus_decl_attributes. * decl.c (grokdeclarator): Take a pointer to a single ordinary attribute list. * decl.h (grokdeclarator): Update prototype. * decl2.c (grokfield): Take a single ordinary attribute list. * friend.c (do_friend): Likewise. * decl.c (shadow_tag, groktypename, start_decl, start_handler_parms, grokdeclarator, grokparms, start_function, start_method), decl2.c (grokfield, grokbitfield, grokoptypename), parse.y (parse_field, parse_bitfield, component_decl_1), pt.c (process_template_parm, do_decl_instantiation): Pass single ordinary attribute lists around. * decl.c (grokdeclarator): Correct handling of nested attributes. Revert the patch 1998-10-18 Jason Merrill <jason@yorick.cygnus.com> * decl.c (grokdeclarator): Embedded attrs bind to the right, not the left. . * cp-tree.h (cp_valid_lang_attribute): Remove declaration (cp_attribute_table): Declare. * decl.c (valid_lang_attribute): Don't define. (lang_attribute_table): Define. (init_decl_processing): Initialize lang_attribute_table instead of valid_lang_attribute. * tree.c (cp_valid_lang_attribute): Remove. (handle_java_interface_attribute, handle_com_interface_attribute, handle_init_priority_attribute): New functions. (cp_attribute_table): New array. * decl2.c (import_export_class): Don't use targetm.valid_type_attribute. testsuite: Table-driven attributes. * g++.dg/ext/attrib1.C: New test. From-SVN: r45718
2001-09-21integrate.c (allocate_initial_values): New function.J"orn Rennecke1-0/+34
* integrate.c (allocate_initial_values): New function. * integrate.h (allocate_initial_values): Declare. * local-alloc.c (local_alloc): Move call to allocate_reg_info from here... * reload1.c (reload): And initialization of reg_equiv_memory_loc from here... * toplev.c (rest_of_compilation): To here. Call allocate_initial_values. * tm.texi: add description for ALLOCATE_INITIAL_VALUE. From-SVN: r45716
2001-09-12integrate.c (copy_insn_list): Copy label name from NOTE_INSN_DELETED_LABEL.Richard Henderson1-0/+1
* integrate.c (copy_insn_list): Copy label name from NOTE_INSN_DELETED_LABEL. From-SVN: r45568
2001-09-05function.c (ggc_mark_struct_function): Mark f->outer.Zack Weinberg1-5/+3
* function.c (ggc_mark_struct_function): Mark f->outer. * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here... * integrate.c (output_inline_function): ... not here. From-SVN: r45419
2001-08-31function.c: Remove all_functions.Zack Weinberg1-2/+3
* function.c: Remove all_functions. Make outer_function_chain 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. From-SVN: r45336
2001-08-22Makefile.in, [...]: replace "GNU CC" with "GCC".Lars Brinkhoff1-13/+13
* 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-15rtl.h (only_sets_cc0_p): New prototype.John Wehle1-1/+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-12gcc.c: Fix comment formatting.Kazu Hirata1-2/+2
* gcc.c: Fix comment formatting. * gccspec.c: Likewise. * gcov.c: Likewise. * gcse.c: Likewise. * genemit.c: Likewise. * gengenrtl.c: Likewise. * genrecog.c: Likewise. * gensupport.c: Likewise. * ggc-page.c: Likewise. * global.c: Likewise. * graph.c: Likewise. * ifcvt.c: Likewise. * integrate.c: Likewise. * lcm.c: Likewise. * libgcc2.c: Likewise. * loop.c: Likewise. * mbchar.c: Likewise. * optabs.c: Likewise. * predict.c: Likewise. * prefix.c: Likewise. * profile.c: Likewise. * protoize.c: Likewise. * real.c: Likewise. * recog.c: Likewise. * regclass.c: Likewise. * regmove.c: Likewise. * reg-stack.c: Likewise. * reload1.c: Likewise. * resource.c: Likewise. * rtlanal.c: Likewise. * rtl.c: Likewise. From-SVN: r44837
2001-08-07alias.c (nonlocal_mentioned_p): Rename CONST_CALL_P to CONST_OR_PURE_CALL_PJan Hubicka1-1/+1
* 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-20integrate.c (copy_insn_list): handle NOTE_INSN_DELETED_LABEL, as if it were ↵Jan Hubicka1-7/+15
CODE_LABEL. * integrate.c (copy_insn_list): handle NOTE_INSN_DELETED_LABEL, as if it were CODE_LABEL. (copy_rtx_and_substitute): Likewise; behave to NOTE_INSN_DELETED_LABEL identically as to CODE_LABEL. * fold-const (fold): Convert A/B/C to A/(B*C) and A/(B/C) to (A/B)*C * except.c (connect_post_landing_pads): Delete the RESX insns. From-SVN: r44193
2001-07-19Makefile.in (emit-rtl.o, c-decl.o): Depend on debug.h.Neil Booth1-1/+1
* Makefile.in (emit-rtl.o, c-decl.o): Depend on debug.h. (final.o): Don't depend on xcoffout.h, dbxout.h or sdbout.h. (toplev.o): Don't depend on xcoffout.h. * c-decl.c: Include debug.h (duplicate_decls): Use debug hook. * dbxout.c (dbxout_source_file, dbxout_args): Make static. (dbx_debug_hooks, xcoff_debug_hooks): Update. (dbxout_types): Remove. * dbxout.h (dbxout_source_file, dbxout_types, dbxout_args): Remove. * debug.c (do_nothing_debug_hooks): Update. (debug_true_tree, debug_nothing_rtx): New. * debug.h (struct rtx_def): New. (struct gcc_debug_hooks): New hooks ignore_block, outlining_inline_function and label. (debug_true_tree, debug_nothing_rtx, dwarf2out_frame_init, dwarf2out_frame_finish): New. * dwarf2out.c (dwarf2out_ignore_block, dwarf2out_abstract_function): Make static, update prototype. (dwarf2_debug_hooks): Update. * dwarf2out.h (dwarf2out_ignore_block, dwarf2out_abstract_function, dwarf2out_frame_init, dwarf2out_frame_finish): Remove. * dwarfout.c (dwarf_debug_hooks): Update. * emit-rtl.c: Include debug.h. (remove_unnecessary_notes): Use debug hook. * final.c: Don't include dbxout.h, xcoffout.h or sdbout.h. (final_scan_insn): Use debug hook. * integrate.c (output_inline_function): Use debug hook. * sdbout.c (sdbout_toplevel_data, sdbout_label): Make static. (sdb_debug_hooks): Update. * sdbout.h (sdbout_label, sdbout_toplevel_data): Remove. * toplev.c: Don't include xcoffout.h. (note_outlining_of_inline_function, debug_ignore_block): Remove. * toplev.h (note_outlining_of_inline_function, debug_ignore_block): Remove. * tree.h (dwarf2out_do_frame): Remove. From-SVN: r44163
2001-07-18* integrate.c (output_inline_function): Correct type of debug_hooks.Andreas Jaeger1-1/+1
From-SVN: r44098
2001-07-16basic-block.h (CLEANUP_PRE_SIBCALL): New constant.Jan Hubicka1-8/+9
* 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-15Makefile.in (integrate.o): Add debug.h.Richard Kenner1-1/+7
* Makefile.in (integrate.o): Add debug.h. * integrate.c (debug.h): Add. (output_inline_function): Save, reset, and restore debug_hooks. From-SVN: r44026
2001-06-21* integrate.c (mark_hard_reg_initial_vals): Check for NULL.DJ Delorie1-0/+3
From-SVN: r43487
2001-06-21integrate.c (ggc.h): Include.DJ Delorie1-0/+141
* integrate.c (ggc.h): Include. (initial_value_pair, initial_value_struct, setup_initial_hard_reg_value_integration): Add prototypes. (expand_inline_function): Call setup_initial_hard_reg_value_integration. (has_func_hard_reg_initial_val, get_func_hard_reg_initial_val, get_hard_reg_initial_val, has_hard_reg_initial_val): New functions to keep track of values present at the start of a function. (mark_hard_reg_initial_vals): New, for gc. (setup_initial_hard_reg_value_integration): New. Sets up pseudo mappings for initial values. (emit_initial_value_sets): New. Emits code to set initial value pseudos. * integrate.h: Add prototypes for new functions. * function.h (struct function): Add hard_reg_initial_vals field. * function.c (integrate.h): Include. (mark_function_status): Call mark_hard_reg_initial_vals. * toplev.c (integrate.h): Include. (rest_of_compilation): Call emit_initial_value_sets. From-SVN: r43486
2001-06-08except.c (get_exception_pointer, [...]): Take a struct function.Richard Henderson1-0/+5
* except.c (get_exception_pointer, get_exception_filter): Take a struct function. Update all callers. * except.h (get_exception_pointer): Update declaration. * expr.c (expand_expr): Update get_exception_pointer call. * integrate.c (expand_inline_function): Remap the exception pointer from callee to caller. From-SVN: r43060
2001-06-04rtlanal.c (operand_preference): Fix preference for objects.Jan Hubicka1-10/+5
* rtlanal.c (operand_preference): Fix preference for objects. * gcse.c (handle_avail_expr): Be prepared to handle single_set parallels. * combine.c (if_then_else_cond): Use simplify_subreg instead of operand_subword. * integreate.c (sub_constants): Likewise. * emit-rtl.c (constant_subword): Deprecate; remove most of code and use simplify_gen_subreg. Mon Jun 4 19:55:23 CEST 2001 Lars Brinkhoff <lars@nocrew.org> * sibcall.c (skip_copy_to_return_value): recognize the situation when the called function's return value is copied into an intermediate pseudo, and then into the calling functions return value register. From-SVN: r42864
2001-05-23* integrate.c (expand_inline_function): Handle CONCAT DECL_RESULT.Richard Henderson1-0/+25
From-SVN: r42515
2001-05-17integrate.c (copy_rtx_and_substitute): Use simplify_gen_subreg.Jan Hubicka1-29/+3
* 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-05* integrate.c (copy_insn_list): Substitute NOTE_EXPECTED_VALUE.Richard Henderson1-0/+5
From-SVN: r41868