summaryrefslogtreecommitdiff
path: root/gcc/function.c
Commit message (Collapse)AuthorAgeFilesLines
* * mkconfig.sh: Include insn-flags.h.rth2001-03-221-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (CONFIG_H): Include insn-flags.h. (lots of objects): Remove insn-codes.h and insn-flags.h. * alias.c, bb-reorder.c, calls.c, do-loop.c, flow.c, haifa-sched.c, integrate.c, jump.c, loop.c, predict.c, profile.c, reg-stack.c, regmove.c, reorg.c, a29k/a29k.c, alpha/alpha.c, arc/arc.c, arm/arm.c, avr/avr.c, clipper/clipper.c, convex/convex.c, d30v/d30v.c, dsp16xx/dsp16xx.c, fr30/fr30.c, h8300/h8300.c, i370/i370.c, i386/i386.c, i860/i860.c, ia64/ia64.c, m32r/m32r.c, m68hc11/m68hc11.c, m68k/m68k.c, m88k/m88k.c, mcore/mcore.c, mn10200/mn10200.c, mn10300/mn10300.c, ns32k/ns32k.c, pa/pa.c, pdp11/pdp11.c, pj/pj.c, romp/romp.c, rs6000/rs6000.c, sh/sh.c, sparc/sparc.c, v850/v850.c, vax/vax.c: Don't include insn-flags.h. * diagnostic.c, expr.h, reload.c, toplev.c: Don't include insn-codes.h. * builtins.c, combine.c, except.c, explow.c, expmed.c, expr.c, final.c, function.c, optabs.c, recog.c, reload1.c, stmt.c, c4x/c4x.c, i960/i960.c, mips/mips.c: Don't include insn-codes.h or insn-flags.h. * genemit.c, genopinit.c, genoutput.c: Don't include insn-codes.h or insn-flags.h in the generated code. * genflags.c (gen_proto): Use "struct rtx_def *" instead of "rtx". (main): Forward declare struct rtx_def. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40754 138bc75d-0d04-0410-961f-82ee72b054a4
* * defaults.h (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Move from ...rth2001-03-181-4/+0
| | | | | | | | | * calls.c: ... here. * combine.c, expr.c, final.c, function.c toplev.c: Don't provide defaults for them here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40603 138bc75d-0d04-0410-961f-82ee72b054a4
* * varasm.c (assemble_alias): Use DECL_ASSEMBLER_NAME, not themmitchel2001-03-151-26/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | contents of the RTL, to determine the name of the object. * tree.h (DECL_RTL): Allocate RTL lazily. (SET_DECL_RTL): New macro. (DECL_RTL_SET_P): Likewise. (COPY_DECL_RTL): Likewise. (DECL_RTL_IF_SET): Likewise. * varasm.c (make_decl_rtl): Add assertions about the kind of declaration we are processing. * c-decl.c (duplicate_decls): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. (start_decl): Likewise. (finish_decl): Likewise. * c-semantics.c (emit_local_var): Likewise. * calls.c (expand_call): Likewise. * dbxout.c (dbxout_symbol): Likewise. * emit-rtl.c (unshare_all_rtl): Likewise. (unshare_all_decls): Likewise. (reset_used_decls): Likewise. * expr.c (store_constructor): Likewise. (safe_from_p): Likewise. (expand_expr): Likewise. * function.c (put_var_into_stack): Likewise. (instantiate_decls_1): Likewise. (assign_parms): Likewise. (expand_function_start): Likewise. (expand_function_end): Likewise. * ggc-common.c (gcc_mark_trees): Likewise. * integrate.c (function_cannot_inline_p): Likewise. (copy_decl_for_inlining): Likewise. (expand_inline_function): Likewise. (integrate_parm_decls): Likewise. (integrate_decl_tree): Likewise. * print-tree.c (print_node): Likewise. * reg-stack.c (stack_result): Likewise. * stmt.c (label_rtx): Likewise. (expand_return): Likewise. (expand_decl): Likewise. (expand_decl_cleanup): Likewise. (expand_anon_union_decl): Likewise. * toplev.c (check_global_declarations): Likewise. (rest_of_decl_compilation): Likewise. * tree.c (simple_cst_equal): Likewise. * objc/objc-act.c (generate_static_references): Likewise. * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. * cp-tree.h (DECL_IN_MEMORY_P): Likewise. * decl.c (duplicate_decls): Likewise. (builtin_function): Likewise. (build_library_fn): Likewise. (build_cp_library_fn): Likewise. (check_initializer): Likewise. (cp_finish_decl): Likewise. * decl2.c (grokfield): Likewise. (grok_function_init): Remove #if 0'd code. (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. * friend.c (do_friend): Likewise. * init.c (get_temp_regvar): Likewise. * method.c (make_thunk): Likewise. * pt.c (tsubst_friend_function): Likewise. (tsubst_decl): Likewise. (regenerate_decl_from_template): Likewise. * semantics.c (genrtl_named_return_value): Likewise. (expand_body): Likewise. (genrtl_finish_function): Likewise. * tree.c (cp_tree_equal): Likewise. * com.c (ffecom_member_phase_2): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. (duplicate_decls): Likewise. (start_decl): Likewise. * class.c (build_static_field_ref): Likewise. (make_method_value): Likewise. (get_dispatch_table): Likewise. * decl.c (push_jvm_slot): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40482 138bc75d-0d04-0410-961f-82ee72b054a4
* 2001-03-12 Jeffrey Oldham <oldham@codesourcery.com>oldham2001-03-121-16/+16
| | | | | | | | | | | | | | * emit-rtl.c (remove_unnecessary_notes): Reverse Richard Kenner's 2001-02-24 which broke building the Java library. * function.c (identify_blocks): Likewise. (all_blocks): Likewise. * integrate.c (integrate_decl_tree): Likewise. * print-tree.c (print_node): Likewise. * tree.h (BLOCK_NUMBER): Likewise. (struct tree_block): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40431 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/xm-lynx.h, config/xm-std32.h, config/a29k/xm-a29k.h,zack2001-03-021-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | config/a29k/xm-unix.h, config/alpha/xm-alpha.h, config/arc/xm-arc.h, config/arm/xm-arm.h, config/c4x/xm-c4x.h, config/clipper/xm-clix.h, config/convex/xm-convex.h, config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h, config/elxsi/xm-elxsi.h, config/fr30/xm-fr30.h, config/h8300/xm-h8300.h, config/i370/xm-i370.h, config/i370/xm-linux.h, config/i370/xm-mvs.h, config/i370/xm-oe.h, config/i386/xm-aix.h, config/i386/xm-i386.h, config/i386/xm-osf.h, config/i860/xm-i860.h, config/i960/xm-i960.h, config/ia64/xm-ia64.h, config/m32r/xm-m32r.h, config/m68k/xm-m68k.h, config/m88k/xm-m88k.h, config/mcore/xm-mcore.h, config/mips/xm-mips.h, config/mn10200/xm-mn10200.h, config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h, config/pa/xm-linux.h, config/pa/xm-pa.h, config/pa/xm-pa64hpux.h, config/pa/xm-pahpux.h, config/pa/xm-papro.h, config/pj/xm-pj.h, config/romp/xm-romp.h, config/rs6000/xm-beos.h, config/rs6000/xm-rs6000.h, config/rs6000/xm-sysv4.h, config/sh/xm-sh.h, config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h, config/v850/xm-v850.h, config/vax/xm-vax.h, config/vax/xm-vms.h, config/we32k/xm-we32k.h: Do not define TRUE or FALSE. * config/i386/xm-aix.h, config/i386/xm-osf.h: Delete; made empty by above change. * config.gcc: Remove references to these files. * configure.in: Detect stdbool.h. * configure, config.in: Regenerate. * system.h: Include stddef.h here if available. Set HAVE__BOOL based on GCC_VERSION and __STDC_VERSION__. Then set up a sensible boolean type at the very end. * combine.c, cse.c, expr.c, fold-const.c, gensupport.c, f/com.c, config/mcore/mcore.c: Rename variables named 'true' and/or 'false'. * hash.h: Delete 'boolean' typedef and related #undefs. * f/proj.h: Delete 'bool' type. Don't include stddef.h here. * function.c, ggc-common.c, hash.h, hash.c, tlink.c, cp/decl.c, java/class.c, java/decl.c, java/java-tree.h: Replace all uses of 'boolean' with 'bool'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40176 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree.h (BLOCK_DEAD): New macro.kenner2001-02-241-16/+16
| | | | | | | | | | | | (struct tree_block): New flag, dead_flag. * print-tree.c (print_node, case 'b'): Print missing fields. * emit-rtl.c (remove_unnecessary_notes): Set BLOCK_DEAD. * function.c (identify_blocks): Enable test for misplaced notes. (all_blocks): Skip BLOCK_DEAD blocks. * integrate.c (integrate_decl_tree): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40039 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (epilogue_done): Be ready for first basic block nothubicka2001-02-241-2/+11
| | | | | | | | | containing PROLOGUE_END note. (reposition_prologue_and_epilogue_notes): Avoid placing PROLOGUE_END note between BASIC_BLOCK. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40020 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (assign_parms): Set RTX_UNCHANGING_P in pseudo when wekenner2001-02-161-2/+5
| | | | | | | do in memory. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39737 138bc75d-0d04-0410-961f-82ee72b054a4
* * combine.c (nonzero_bits, case PLUS): If pointers extend unsignedkenner2001-02-061-51/+60
| | | | | | | | | | | | | | | | | and this is the sum of a pointer and a constant, we know the result did not overflow. (num_sign_bit_copies, case PLUS): Likewise. * explow.c (convert_memory_address): Remove opposite SUBREG. * function.c (instantiate_new_reg): New function (from common code). (instantiate_virtual_regs_1): Call it. For PLUS, handle if (plus (subreg (virt-reg) (const_int)) if pointers sign- or zero-extend. * simplify-rtx.c (simplify_unary_operation, case ZERO_EXTEND): If pointers extend unsigned, use inside of SUBREG. (simplify_unary_operation, case SIGN_EXTEND): Likewise, if sign extend. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39489 138bc75d-0d04-0410-961f-82ee72b054a4
* * final.c: Move the declaration profile_label_no to ...cchavva2001-02-061-0/+5
| | | | | | | | | | | | | | * output.h: ... here. * function.c (expand_function_start): Call PROFILE_HOOK. * config/rs6000/aix.h: Define PROFILE_HOOK. * config/rs6000/rs6000-protos.h: output_profile_hook new. * config/rs6000/rs6000.c (output_profile_hook): Define. (output_prolog): Do nothing for ABI_AIX as it is taken care by output_profile_hook. tm.texi : Explain new macro PROFILE_HOOK. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39473 138bc75d-0d04-0410-961f-82ee72b054a4
* Reinstall 1.245 -> 1.246 changekenner2001-01-201-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39154 138bc75d-0d04-0410-961f-82ee72b054a4
* 2001-01-20 Jakub Jelinek <jakub@redhat.com>zack2001-01-201-217/+248
| | | | | | | | | | | | | | | | | | | * function.c (fixup_var_refs): Move CALL_PLACEHOLDER handling... (fixup_var_refs_insns): ...here. * gcc.c-torture/compile/20010118-1.c: New test. 2001-01-20 Zack Weinberg <zack@wolery.stanford.edu> * function.c (fixup_var_refs_insns): Break up into fixup_var_refs_insn [body of loop], fixup_var_refs_insns [loop over entire insn list], and fixup_var_refs_insns_with_hash [loop over hash table entries]. (fixup_var_refs): Adjust calls to fixup_var_refs_insns and/or fixup_var_refs_insns_with_hash, to match above changes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39151 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c (rtx_equal_for_memref_p, case ADDRESSOF): Don't assumekenner2001-01-191-1/+1
| | | | | | | | | args are REG. * expr.c (store_constructor): Don't look at MEM_ALIAS_SET unless MEM. * function.c (assign_parms): Use INTVAL for a CONST_INT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39139 138bc75d-0d04-0410-961f-82ee72b054a4
* Minor whitespace changeskenner2001-01-161-1/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39066 138bc75d-0d04-0410-961f-82ee72b054a4
* Remove {save|restore}_machine_status.nickc2001-01-101-10/+6
| | | | | | | Document {init|mark|free}_machine_status. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38882 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (instantiate_virtual_regs): Instantiate virtuallaw2001-01-101-0/+4
| | | | | | | registers found in CALL_INSN_FUNCTION_USAGE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38873 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (fixup_var_refs): Use push_to_full_sequence wherezack2001-01-051-1/+1
| | | | | | | possible. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38729 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (reorder_blocks): Make sure the flags are all resetdj2001-01-051-0/+31
| | | | | | | | | before using them to mark blocks, else a second invocation will corrupt the block chain. (reorder_blocks_0): New, resets the flags. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38724 138bc75d-0d04-0410-961f-82ee72b054a4
* * integrate.c (expand_inline_function): Don't put a virtualamylaar2001-01-041-1/+3
| | | | | | | | | | register into the reg map. * function.c (fixup_var_refs_1): If force_operand didn't put the address into the target, move it there. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38694 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (expand_function_end): Properly handle DECL_RESULTkenner2001-01-021-5/+15
| | | | | | | | and copy when ptr_mode != Pmode. * expmed.c (make_tree): Convert X from Pmode to ptr_mode, if needed. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38607 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c (alias_sets_conflict_p): New function.kenner2000-12-301-26/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (mems_in_disjoint_alias_sets_p): Use it. (readonly_fields_p): Moved from expr.c; check for record type. (objects_must_conflict_p): New function. * calls.c (expand_call): Use assign_temp as much as possible, use readonly variant if assigned once, and don't set memory attributes. (emit_library_call_value_1, store_one_arg): Likewise. * integrate.c (expand_inline_function): Likewise. * stmt.c (expand_asm_operands, expand_return): Likewise. * expr.c (copy_blkmode_from_reg, store_constructor): Likewise. (store_field, save_noncopied_parts, expand_expr): Likewise. (expand_expr_unaligned): Likewise. (readonly_fields_p): Moved to alias.c. (safe_from_p): Rework handling of SAVE_EXPR. MEMs ony conflict if alias sets conflict; likewise for INDIRECT_REF. * function.c (struct temp_slot): Delete field ALIAS_SET; add TYPE. (assign_stack_for_temp): Use objects_must_confict_p. Set all memory attributes from type, if specified. (mark_temp_slot): Mark TYPE field. * tree.h (alias_sets_conflict_p, readonly_fields_p): New decls. (objects_must_conflict_p): Likewise. * stmt.c (expand_decl): Don't use assign_stack_temp in error case. (add_case_node): No need to copy nodes anymore. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38559 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (assign_parms): Convert arguments passed byaoliva2000-12-291-1/+16
| | | | | | | reference to the right mode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38528 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (assign_parms): Update parm's DECL_INCOMING_RTLaoliva2000-12-221-0/+1
| | | | | | | when optimizing PARALLEL to REG. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38444 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (adjust_trampoline_addr): New function.aoliva2000-12-151-3/+19
| | | | | | | | (trampoline_address): Call it instead of round_trampoline_addr(). * tm.texi (TRAMPOLINE_ADJUST_ADDRESS): Document it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38279 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (assign_parms): Optimize incoming PARALLELs intoaoliva2000-12-131-0/+20
| | | | | | | REGs if possible. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38233 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.h (emit_status): Delete member regno_pointer_flag andlaw2000-11-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rename regno_pointer_flag_length to regno_pointer_align_length. Delete define for REGNO_POINTER_FLAG. * integrate.h (inline_remap): Delete member regno_pointer_flag. Add member x_regno_reg_rtx. * rtl.h (rtx_def): Use frame_related bit to indicate register is a pointer in REG expressions. Define REG_POINTER macro. * alias.c (find_base_value, find_base_term): Use REG_POINTER instead of REGNO_POINTER_FLAG. * combine.c (nonzero_bits, num_sign_bit_copies): Likewise. * emit-rtl.c (gen_reg_rtx): Use regno_pointer_align_length instead of regno_pointer_flag_length. Remove code which refers to regno_pointer_flag. (mark_reg_pointer): Use REG_POINTER. (free_emit_status): Remove code which refers to regno_pointer_flag. (init_emit, mark_emit_status): Likewise. * flow.c (dump_flow_info): Likewise. * function.c (preserve_temp_slots): Likewise. * integrate.c (expand_inline_function, copy_rtx_and_substitute): Use x_regno_reg_rtx instead of regno_pointer_flag for function pointer determination in map. * loop.c (strength_reduce, maybe_eliminate_biv_1): Use REG_POINTER. * predict.c (estimate_probability): Likewise. * regclass.c (record_address_regs, reg_scan_mark_refs): Likewise. * unroll.c (unroll_loop): Use x_regno_reg_rtx instead of regno_pointer_flag for function pointer determination in map. * convex.h (RTX_COSTS): Don't test regno_pointer_flag and use REG_POINTER. * pa.c (hppa_legitimize_address, emit_move_sequence, basereg_operand): Use REG_POINTER. (restore_unscaled_index_insn_codes): Revise comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37863 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (free_after_compilation): Clear x_clobber_return_insn.mmitchel2000-11-271-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37806 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (assign_parms): When calling put_var_into_stack, makemmitchel2000-11-131-1/+13
| | | | | | | sure that there are no hidden pending sequences. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37417 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (assign_parms): If TREE_ADDRESSABLE is set, try tojason2000-11-121-4/+3
| | | | | | | | | | | give the parm a register and then call put_var_into_stack. * stmt.c (expand_decl): Likewise. cp/ * typeck.c (mark_addressable): Don't call put_var_into_stack. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37396 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (expand_function_start): Cast GET_MODE_SIZE tojakub2000-11-081-1/+2
| | | | | | | HOST_WIDE_INT before negating it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37317 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c (init_alias_analysis), calls.c (expand_call,jsm282000-11-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | emit_library_call_value_1), combine.c (init_reg_last_arrays), cse.c (new_basic_block), dbxout.c (dbxout_type), diagnostic.c (init_output_buffer, set_diagnostic_context), dwarf2out.c (equate_decl_number_to_die, build_abbrev_table), emit-rtl.c (init_emit_once), fold-const.c (mul_double, div_and_round_double), function.c (assign_parms), gcse.c (compute_can_copy, alloc_gcse_mem, alloc_reg_set_mem, record_one_set, compute_hash_table, compute_set_hash_table, compute_expr_hash_table), genattrtab.c (optimize_attrs), global.c (global_alloc, global_conflicts), haifa-sched.c (compute_trg_info, clear_units, schedule_block), integrate.c (initialize_for_inline, expand_inline_function), jump.c (thread_jumps), local-alloc.c (local_alloc), loop.c (combine_movables, count_loop_regs_set, load_mems_and_recount_loop_regs_set), print-tree.c (debug_tree), regclass.c (init_reg_sets, init_reg_sets_1, regclass, record_reg_classes, allocate_reg_info), reload.c (get_secondary_mem, remove_address_replacements, find_reloads), reload1.c (reload, set_initial_label_offsets, finish_spills, reload_as_needed, choose_reload_regs_init, reload_cse_simplify_operands), reorg.c (dbr_schedule), sbitmap.c (sbitmap_zero), simplify-rtx.c (simplify_plus_minus), ssa.c (rename_registers), stmt.c (expand_end_case), unroll.c (unroll_loop), varray.c (varray_grow), objc/objc-act.c: Use memset () instead of bzero (). ch: * actions.c (check_missing_cases), typeck.c (build_chill_slice, build_chill_cast): Use memset () instead of bzero (). cp: * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c (push_binding_level), error.c (cp_tree_printer), pt.c (process_partial_specialization, tsubst_template_arg_vector), search.c (lookup_member): Use memset () instead of bzero (). java: * expr.c (note_instructions), jcf-io.c (find_class), jcf-parse.c (init_outgoing_cpool), lex.c (java_init_lex): Use memset () instead of bzero (). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37303 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (locate_and_pad_parm): Use host_integerp and tree_low_cst.kenner2000-10-201-4/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36973 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (locate_and_pad_parm): Zero alignment_pad.rth2000-10-201-0/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36969 138bc75d-0d04-0410-961f-82ee72b054a4
* 2000-10-17 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>sirl2000-10-171-1/+6
| | | | | | | | | | | | | | | | * function.c (locate_and_pad_parm): Don't align stack unconditionally. Fixes execute/20001017-1.c on pwerpc-linux-gnu. * expr.c (store_constructor): Apply MEM_ALIAS_SET to MEMs only. * rs6000/rs6000.c (rs6000_hash_constant): use X0INT to access a LABEL_REF. * rs6000/rs6000.h (NO_DOLLAR_IN_LABEL, DOLLARS_IN_IDENTIFIERS, ENCODE_SECTION_INFO, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Move from here... * rs6000/aix.h: ...to here. * rs6000/linux.h (ASM_APP_ON, ASM_APP_OFF): Define to Linux-style. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36914 138bc75d-0d04-0410-961f-82ee72b054a4
* Remove obstacks.mmitchel2000-10-131-45/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (ggc-callbacks.o): Remove target. (flow.o): Depend on GGC_H. * alias.c (init_alias_analysis): Remove ggc_p conditionals. (end_alias_analysis): Likewise. * basic-block.h (init_flow): New function. (allocate_reg_life_data): Declare. * bb-reorder.c (function_obstack): Replace with ... (flow_obstack): ... new variable. (fixup_reorder_chain): Use it. * c-decl.c (ggc_p): Remove. (caller-save.c): Don't call oballoc/obfree. * combine.c (struct undobuf): Remove storage. (try_combine): Don't call oballoc. (undo_all): Don't call obfree. * cse.c (insert): Use xmalloc, not oballoc. (cse_main): Adjust accordingly. * dwarf2out.c (save_rtx): Remove obstack code. (dwarf2out_init): Remove ggc_p conditionals. * emit-rtl.c (rtl_obstack): Remove. (gen_rtx_CONST_INT): Remove ggc_p conditionals. (make_insn_raw): Likewise. (emit_insn_before): Likewise. (emit_insn_after): Likewise. (emit_insn): Likewise. (gen_sequence): Likewise. (copy_insn_1): Remove handling of `b' RTL components. (init_emit_once): Remove ggc_p conditionals. * except.c (create_rethrow_ref): Don't fool with obstacks. (add_partial_entry): Likewise. (call_get_eh_context): Likewise. (begin_protect_partials): Likewise. (protect_with_terminate): Likewise. * explow.c (plus_constant_wide): Likewise. * expr.c (init_expr_once): Likewise. (emit_block_move): Likewise. (clear_storage): Likewise. (expand_expr): Likewise. * flow.c (function_obstack): Remove. (flow_obstack): New variable. (flow_firstobj): Likewise. (create_base_block): Use the flow_obstack. (split_block): Likewise. (split_edge): Likewise. (calculate_global_regs_live): Likewise. (allocate_bb_life_data): Make it static. Likewiwse. (init_flow): New function. (size_int_type_wide): Remove ggc_p conditionals. * function.c (push_function_context_to): Don't call save_tree_status. (pop_function_context_from): Or restore_tree_status. (assign_stack_local_1): Don't call push_obstacks. (find_fixup_replacement): Use xmalloc. (fixup_var_refs_insns): Free the storage. (insns_for_mem_walk): Don't mess with obstacks. (instantiate_decls): Likewise. (trampoline_address): Likewise. (expand_function_end): Likewise. * function.h (sturct function): Remove obstack-related variables. (save_tree_status): Don't declare. (restore_tree_status): Likewise. * gcse.c (compute_can_copy): Don't call oballoc/obfree. * genattrtab.c (operate_exp): Remove ggc_p conditionals. (simplify_cond): Likewise. (simplify_test_exp): Don't mess with obstacks. (optimize_attrs): Likewise. * gengenrtl.c (gendef): Don't include ggc_p conditionals. * ggc-callbacks.c (ggc_p): Remove. * ggc-none.c (ggc_p): Remove. * ggc.h (ggc_p): Don't declare. * integrate.c (save_for_inline): Don't mess with obstacks. (integrate_decl_tree): Likewise. (output_inline_function): Likewise. * lists.c (init_EXPR_INSN_LIST_cache): Likewise. * loop.c (temp_obstack): Remove. (rtl_obstack): Likewise. (init_loop): Don't mess with obstacks. (reg_address_cost): Free BIVs and GIVs. (check_insns_for_bivs): Use xmalloc, not oballoc. (find_mem_givs): Likewise. (record_biv): Likewise. (general_induction_var): Likewise. (product_cheap_p): Likewse. * optabs.c (init_one_libfunc): Remove ggc_p conditional. * print-tree.c (debug_tree): Don't use oballoc/obfree. (print_node): Likewise. * profile.c (output_func_start_profiler): Remove call to temporary_allocation. * reload1.c (eliminate_regs_in_insn): Don't mess with obstacks. * resource.c (mark_target_live_regs): Use xmalloc. (free_resource_info): Free the memory. * rtl.c (rtl_obstack): Remove. (rtvec_alloc): Don't mess with obstacks. (rtx_alloc): Likewise. (rtx_free): Remove. (copy_rtx): Don't handle `b' cases. (read_rtx): Use a local rtl_obstack. * rtl.h (oballoc): Remove. (obfree): Likewise. (pop_obstacks): Likewise. (push_obstacks): Likewise. (allocate_bb_life_data): Likewise. (allocate_reg_life_data): Likewise. (rtx_free): Likewise. * sdbout.c (sdbout_queue_anonymous_type): Use tree_cons, not saveable_tree_cons. * simplify-rtx.c (cselib_init): Don't mess with obstacks. * stmt.c (mark_block_nesting): Mark the label_chain. (epxand_label): Use ggc_alloc, not oballoc. (clear_last_expr): Don't mess with obstacks. (expand_decl_cleanup): Likewise. (expand_dcc_cleanup): Likewise. (expand_dhc_cleanup): Likewise. (expand_anon_union_decl): Likewise. (add_case_node): Use xmalloc, not oballoc. (free_case_nodes): New function. (expand_end_case): Call it. * stor-layout.c (layout_type): Don't mess with obstacks. (layout_type): Likewise. * toplev.c (wrapup_global_declarations): Likewise. (compile_file): Remove ggc_p conditionals. (rest_of_compilation): Call init_flow. Remove ggc_p conditionals. (decode_f_option): Remove ggc_p conditionals. * tree.c (function_maybepermanent_obstack): Remove. (maybepermanent_obstack): Likewise. (function_obstack): Likewise. (tmeporary_obstack): Likewise. (momentary_obstack): Likewise. (temp_decl_obstack): Likewise. (saveable_obstack): Likewise. (rtl_obstack): Likewise. (current_obstack): Likewise. (expression_obstack): Likewise. (struct obstack_stack): Likewise. (obstack_stack): Likewise. (obstack_stack_obstack): Likewise. (maybepermanent_firstobj): Likewise. (temporary_firstobj): Likewise. (momentary_firstobj): Likewise. (temp_decl_firstobj): Likewise. (momentary_function_firstobj): Likewise. (all_types_permanent): Likewise. (struct momentary_level): Likewise. (momentary_stack): Likewise. (init_obstacks): Remove initialization of removed obstacks. (save_tree_status): Remove. (restore_tree_status): Likewise. (temporary_allocation): Liekwise. (end_temporary_allocation): Liekwise. (resume_temporary_allocation): Likewise. (saveable_allocation): Likewise. (push_obstacks): Likewise. (push_obstacks_nochange): Likewise. (pop_obstacks): Likewise. (allocation_temporary_p): Likewise. (permanent_allocation): Likewise. (preserve_data): Likewise. (preserve_initializer): Likewise. (rtl_in_current_obstack): Likewise. (rtl_in_saveable_obstack): Likewise. (oballoc): Likewise. (obfree): Likewise. (savealloc): Likewise. (expralloc): Likewise. (print_obstack_name): Likewise. (debug_obstack): Likewise. (object_permanent_p): Likewise. (push_momentary): Likewise. (perserve_momentary): Likewise. (clear_momentary): Likewise. (pop_momentary): Likewise. (pop_momentary_nofree): Likewise. (suspend_momentary): Likewise. (resume_momentary): Likewise. (make_node): Don't set TREE_PERMANENT. (copy_node): Remove ggc_p conditionals. Don't set TYPE_OBSTACK. Don't set TREE_PERMANENT. (get_identifier): Remove ggc_p conditionals. (build_string): Likewise. (make_tree_vec): Likewise. (build_decl_list): Remove. (build_expr_list): Likewise. (tree_cons): Remove ggc_p conditionals. (decl_tree_cons): Remove. (expr_tree_cons): Likewise. (perm_tree_cons): Likewise. (temp_tree_cons): Likewise. (saveable_tree_cons): Likewise. (build1): Remove ggc_p conditionals. (build_parse_node): Likewise. (build_type_attribute_variant): Don't mess with obstacks. (build_type_copy): Likewise. (type_hash_canon): Likewise. (build_pointer_type): Likewise. (build_reference_type): Likewise. (build_index_type): Likewise. (build_range_type): Likewise. (dump_tree_statistics): Don't print obstack information. * tree.h (struct tree_common): Remove permanent_flag. (TREE_PERMANENT): Remove. (TREE_SET_PERMANENT): Likewise. (TYPE_OBSTACK): Likewise. (struct tree_type): Remove obstack. (oballoc): Remove. (savealloc): Likewise. (build_decl_list): Likewise. (build_expr_list): Likewise. (perm_tree_cons): Likewise. (temp_tree_cons): Likewise. (saveable_tree_cons): Likewise. (decl_tree_cons): Likewise. (expr_tree_cons): Likewise. (suspend_momentary): Likewise. (allocation_temporary_p): Likewise. (resume_momentary): Likewise. (push_obstacks_nochange): Likewise. (permanent_allocation): Likewise. (push_momentary): Likewise. (clear_momentary): Likewise. (pop_momentary): Likewise. (end_temporary_allocation): Likewise. (pop_obstacks): Likewise. (push_obstacks): Likewise. (pop_momentary_nofree): LIkewise. (preserve_momentary): Likewise. (saveable_allocation): Likewise. (temporary_allocation): Likewise. (resume_temporary_allocation): Likewise. (perserve_initializer): Likewise. (debug_obstack): Likewise. (rtl_in_current_obstack): Likewise. (rtl_in_saveable_obstack): Likewise. (obfree): Likewise. * varasm.c (current_obstack): Remove. (saveable_obstack): Remove. (rtl_obstack): Remove. (immed_double_const): Don't mess with obstacks. (immed_real_cons): Likewise. (output_constant_def): Likewise. (init_varasm_status): Use xcalloc. (mark_pool_constant): Mark the pool constant itself. (free_varasm_status): Free memory. (decode_rtx_const): Call bzero directly, rather than expanding it inline. (record_rtx_const): Don't mess with obstacks. (force_const_mem): Likewise. * config/arm/arm.c (arm_encode_call_attribute): Remove ggc_p conditionals. (aof_pic_entry): Likewise. * config/ia64/ia64.c (ia64_encode_section_info): Likewise. * config/m32r/m32r.c (m32r_encode_section_info): Likewise. * config/pa/pa.c (saveable_obstack): Remove. (rtl_obstack): Likewise. (current_obstack): Likewise. (output_call): Don't mess with obstacks. (hppa_encode_label): Remove ggc_p conditionals. * config/romp/romp.c (get_symref): Don't mess with obstacks. * config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional. (rs6000_encode_section_info): Likewise. * config/sh/sh.c (get_fpscr_rtx): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36856 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (diddle_return_value): Examinerth2000-10-071-28/+48
| | | | | | | | | | current_function_return_rtx instead of the DECL_RESULT. (expand_function_end): Handle reloading DECL_RESULT from memory into a hard register. Query promote_mode for sign of mismatched modes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36769 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-decl.c (warn_missing_noreturn): Remove.rth2000-10-061-0/+9
| | | | | | | | | | | | | | | | | | | | | | (c_expand_body): Don't set or check can_reach_end. * c-tree.h (warn_missing_noreturn): Move ... * flags.h: ... here. (can_reach_end): Remove. * flow.c (check_function_return_warnings): New. (make_edges): No edge to exit for noreturn sibcalls. * function.c (expand_function_end): Save the return value clobber instruction. (mark_function_status): Mark it. * function.h (struct function): Add x_clobber_return_insn. * jump.c (can_reach_end): Remove. (calculate_can_reach_end): Remove. (jump_optimize_1): Don't call it. * output.h (check_function_return_warnings): Declare. * toplev.c (warn_missing_noreturn): Move from c-decl.c (rest_of_compilation): Call check_function_return_warnings. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36750 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix IA-64 REG_LIBCALL dangling reference.wilson2000-10-051-10/+34
| | | | | | | | | * function.c (fixup_var_refs_1, case SET): When gen_move_insn returns a SEQUENCE, call emit_insn_before, copy PATTERN and REG_NOTES of last sequence insn to INSN, and delete last sequence insn. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36735 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix ia64-linux kernel fn_hash() miscompilation.wilson2000-09-181-0/+8
| | | | | | | | | * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a paradoxical subreg, then directly substitute the replacement and return. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36515 138bc75d-0d04-0410-961f-82ee72b054a4
* 2000-09-15 Andrew Haley <aph@redhat.com>aph2000-09-181-0/+66
| | | | | | | | | | | * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to remove all SETs of SUBREGs of hard registers. * function.c (purge_hard_subreg_sets): New function. (purge_single_hard_subreg_set): New function. * rtl.h: (purge_hard_subreg_sets): New function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36511 138bc75d-0d04-0410-961f-82ee72b054a4
* Bring back equal forms for libcallscrux2000-09-171-5/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36469 138bc75d-0d04-0410-961f-82ee72b054a4
* * stmt.c (expand_asm_operands): Twiddle generating_concat_pgeoffk2000-09-011-0/+4
| | | | | | | | | | | | | | | so that CONCATs are not generated for ASMs. * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when not generating_concat_p. * function.c (pop_function_context_from): Reset generating_concat_p. (prepare_function_start): Likewise. * rtl.c (generating_concat_p): Define. * rtl.h (generating_concat_p): Declare. * toplev.c (rest_of_compilation): No CONCATs after RTL generation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36088 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix x86-x-ia64 abort while compiling glibc ldbl2mpn.c.wilson2000-08-251-1/+6
| | | | | | | * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35991 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (fixup_var_refs_1, case MEM): Update CODE afterkenner2000-08-181-0/+1
| | | | | | | updating X. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35790 138bc75d-0d04-0410-961f-82ee72b054a4
* * calls.c (calls_function_1, expand_call): Only testkenner2000-08-161-1/+2
| | | | | | | | TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE. * function.c (thread_prologue_and_epilogue_insns): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35743 138bc75d-0d04-0410-961f-82ee72b054a4
* * calls.c (ECF_SP_DEPRESSED): New macro.kenner2000-08-161-0/+71
| | | | | | | | | | | | | | | | | | | | | | | | | (calls_function_1): Treat calling sp-depressed function as alloca. (emit_call_1): Don't adjust SP if calling sp-depressed function. (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED. If sp-depressed, ensure block saves and restores SP. * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE for INTEGER_TYPE. * function.c (keep_stack_depressed): New function. (thread_prologue_and_epilogue_insns): Call it. * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED to print DECL_OFFSET_ALIGN. Print no-force-blk and transparent-union flags properly. * stmt.c (expand_goto_internal): Don't restore stack if last block and function returns with sp depressed. (fixup_gotos): Likewise. (save_stack_pointer): New function, from code in expand_decl. (expand_decl): Call new function. * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK. (TYPE_RETURNS_STACK_DEPRESSED): New macro. (save_stack_pointer): New declaration. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35734 138bc75d-0d04-0410-961f-82ee72b054a4
* * cse.c: Fix formatting.law2000-08-141-146/+141
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35676 138bc75d-0d04-0410-961f-82ee72b054a4
* * flow.c (attempt_auto_inc): Remove unused variable `bb'.geoffk2000-08-141-1/+0
| | | | | | | | | | | | | | | | (attempt_auto_inc): Suppress parentheses warning. * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'. * loop.c (load_mems): Remove `u' suffix in two places. * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from hex constants. * config/rs6000/rs6000.h: Likewise. * config/rs6000/sol-c0.c: Prototype some functions. Remove the __eabi dummy routine. * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused variable `buf_ptr'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35670 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (put_reg_into_stack): Allow type to be NULL.rth2000-08-111-22/+46
| | | | | | | | | (schedule_fixup_var_refs): Likewise. (gen_mem_addressof): Allow decl to be NULL. (put_addressof_into_stack): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35625 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (schedule_fixup_var_refs): New function, broken outamylaar2000-08-041-14/+40
| | | | | | | | | | | | of put_reg_into_stack. (put_reg_into_stack): Use it. (put_var_into_stack): In CONCAT case, fixup up references for components only after fixing up references to the whole concat. testsuite: * gcc.c-torture/execute/20000804-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35495 138bc75d-0d04-0410-961f-82ee72b054a4