aboutsummaryrefslogtreecommitdiff
path: root/gcc/except.c
AgeCommit message (Collapse)AuthorFilesLines
2001-11-23ChangeLog.0, [...]: Fix spelling errors.Joseph Myers1-5/+5
* ChangeLog.0, ChangeLog.2, ChangeLog.3, ChangeLog.4, ChangeLog, 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. From-SVN: r47279
2001-11-17except.c (enum eh_region_type): Add ERT_UNKNOWN.Richard Kenner1-1/+6
* except.c (enum eh_region_type): Add ERT_UNKNOWN. (mark_eh_region, case ERT_UKNONW): New case. From-SVN: r47123
2001-11-16except.c: Support for catching a list of types with a single handler (struct ↵Olivier Hainque1-39/+154
eh_region):... * except.c: Support for catching a list of types with a single handler (struct eh_region): Change type and filter to lists for catch regions. (mark_eh_region): Mark the filter list for GC also. (expand_start_catch): Always build a list if argument not NULL and register each type of the list through add_type_for_runtime. (duplicate_eh_region_1): Change type into type_list for catch regions. (assign_filter_values): Assign a filter to each type associated with a catch region. Assign filter for NULL types in a unique entry in the filter list. (build_post_landing_pads): Emit compare and jump for each filter of the list associated with a catch region. (reachable_next_level): When the type thrown is known, stop the search as soon as one type within a catch list matches. Also, a handler is potentially reachable only if at least one of the types it catches has not been previously caught. (collect_one_action_chain): Retrieve the filter for a NULL type list from the first filter list entry. For non NULL type lists, add an action record for every filter assigned. * except.h: Reflect changes in comment before expand_start_catch. From-SVN: r47087
2001-11-15alias.c (nonoverlapping_memrefs): Use REGNO_PTR_FRAME_P.Richard Kenner1-9/+6
* alias.c (nonoverlapping_memrefs): Use REGNO_PTR_FRAME_P. * emit-rtl.c (change_address): Fix typo in default alignment. (adjust_address_1): Use mode of NEW, not MODE, when setting size. * expr.c (highest_pow2_factor, case WITH_RECORD_EXPR): New case. * rtl.h (REGNO_PTR_FRAME_P): New macro. * expr.c (store_field): Pass tree instead of max size; callers changed. Change handling of alignment. Only copy to_rtx if is TARGET. (expand_expr_unaligned): Delete; callers now use expand_expr. (emit_cmp_insn): No longer take ALIGN parm; all callers changed. (expand_assignment): Change handling of alignment. Only copy to_rtx if was original. (get_inner_reference): No longer return alginment; callers changed. (expand_expr, case COMPONENT_REF): Change handling of alignment. (expand_expr, case ADDR_EXPR): Make copy if not sufficiently aligned. (compare_from_rtx): Delete ALIGN parm; all callers changed. (do_compare_rtx_and_jump): Likewise. * expr.h: Reflect above changes. * tree.h: Likewise. * dwarf2out.c (loc_descriptor_from_tree): Remove ALIGN parameter to get_inner_reference. * except.c: Remove ALIGN parameter in call to emit_cmp_and_jump_insns. * explow.c: Likewise. * loop.c: Likewise. * optabs.c: Likewise. (prepare_cmp_insn): Now static; remove ALIGN parm. Callers changed. (emit_cmp_and_jump_insns): Remove ALIGN parm; all callers changed. * fold-const.c: Remove PALIGN in calls to get_inner_reference. * function.c (assign_stack_temp_for_type): No longer static. * optabs.h (emit_cmp_insn): Remove ALIGN parm. (prepare_cmp_insn): Delete declaration. * rtl.h (assign_stack_temp_for_type): Add declaration. * config/d30v/d30v.c: Reflect above changes. * config/i860/i860.c, config/ia64/ia64.c: Likewise. * config/rs6000/rs6000.c, config/sh/sh.c: Likewise. * ada/trans.c, ada/utils2.c: Remove PALIGN parameter to get_inner_reference. From-SVN: r47075
2001-11-11ChangeLog.2, [...]: Fix spelling errors.Joseph Myers1-4/+4
* ChangeLog.2, ChangeLog.3, ChangeLog.4, ChangeLog.5, ChangeLog, cfg.c, cfganal.c, cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, collect2.c, combine.c, config.in, configure, configure.in, conflict.c, dwarf2out.c, dwarfout.c, except.c, final.c, flow.c, genattrtab.c, ggc-page.c, jump.c, lcm.c, predict.c, reg-stack.c, reload1.c, rtlanal.c, sched-rgn.c, toplev.c, unwind-dw2-fde.h: Fix spelling errors. From-SVN: r46928
2001-10-29ChangeLog.2, [...]: Fix spelling errors and typos.Joseph Myers1-1/+1
* ChangeLog.2, ChangeLog.3, ChangeLog.4, FSFChangeLog.10, FSFChangeLog.11, c-common.c, c-common.def, c-common.h, c-decl.c, c-dump.c, c-typeck.c, except.c, sdbout.c, simplify-rtx.c, timevar.h, tree.h, varasm.c: Fix spelling errors and typos. From-SVN: r46621
2001-10-28ChangeLog.0, [...]: Fix spelling errors.Joseph Myers1-1/+1
* ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4, 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. From-SVN: r46595
2001-10-23builtins.c (expand_builtin_setjmp): Only call convert_memory_address if needed.Richard Kenner1-4/+8
* builtins.c (expand_builtin_setjmp): Only call convert_memory_address 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. From-SVN: r46448
2001-10-22target.h (struct gcc_target): Add asm_out.exception_section, ↵Stan Shebs1-2/+2
asm_out.eh_frame_section. * target.h (struct gcc_target): Add asm_out.exception_section, asm_out.eh_frame_section. * target-def.h (TARGET_ASM_EXCEPTION_SECTION): New macro. (TARGET_ASM_EH_FRAME_SECTION): New. (TARGET_INITIALIZER): Update. * output.h (default_exception_section): Declare. (default_eh_frame_section): Declare. * dwarf2out.c: Include target.h. (output_call_frame_info): Call target hook for eh frames. (default_eh_frame_section): New function. * except.c: Include target.h. (output_function_exception_table): Call target hook for exception section. * varasm.c (default_exception_section): Rename from exception_section, remove EXCEPTION_SECTION macro. * config/darwin.h (darwin_eh_frame_section): New function. (EXCEPTION_SECTION): Remove. (TARGET_ASM_EXCEPTION_SECTION): Define. * config/nextstep.h (EH_FRAME_SECTION_ASM_OP): Remove. (nextstep_exception_section): New function. (nextstep_eh_frame_section): New function. (TARGET_ASM_EXCEPTION_SECTION): Define. (TARGET_ASM_EH_FRAME_SECTION): Define. * config/pa/som.h (EXCEPTION_SECTION): Remove. (TARGET_ASM_EXCEPTION_SECTION): Define. * config/rs6000/sysv4.h, config/rs6000/xcoff.h (EXCEPTION_SECTION): Remove. (TARGET_ASM_EXCEPTION_SECTION): Define. * config/stormy16/stormy16.h: Remove comments referencing EXCEPTION_SECTION and EH_FRAME_SECTION_ASM_OP. * doc/tm.texi: Document TARGET_ASM_EXCEPTION_SECTION and TARGET_ASM_EH_FRAME_SECTION. From-SVN: r46409
2001-10-09c-common.h: Fix comment formatting.Kazu Hirata1-1/+1
* c-common.h: Fix comment formatting. * c-dump.c: Likewise. * cfg.c: Likewise. * diagnostic.h: Likewise. * except.c: Likewise. * gcc.h: Likewise. * gcov-io.h: Likewise. * genattrtab.c: Likewise. * output.h: Likewise. * predict.h: Likewise. * reload1.c: Likewise. * reload.h: Likewise. * resource.h: Likewise. * scan.h: Likewise. * system.h: Likewise. * tree.h: Likewise. * tree-inline.c: Likewise. * tsystem.h: Likewise. * varasm.c: Likewise. * xcoffout.h: Likewise. From-SVN: r46122
2001-09-26except.c (sjlj_mark_call_sites): Change address inside sequence.Andrew Haley1-3/+2
2001-09-25 Andrew Haley <aph@cambridge.redhat.com> * except.c (sjlj_mark_call_sites): Change address inside sequence. From-SVN: r45822
2001-09-21rtl.h (LCT_RETURNS_TWICE): New.Richard Henderson1-1/+1
* rtl.h (LCT_RETURNS_TWICE): New. * calls.c (emit_call_1): Set current_function_calls_setjmp for ECF_RETURNS_TWICE. (emit_library_call_value_1): Map LCT_RETURNS_TWICE to ECF_RETURNS_TWICE. * except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for call to setjmp. * unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc. * config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New. (JMP_BUF_SIZE): New. From-SVN: r45736
2001-09-21basic-block.h (flow_delete_insn, [...]): Kill.Jan Hubicka1-1/+1
* 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-17except.c (dw2_build_landing_pads): New local clobbers_hard_regs.Jeff Sturm1-1/+14
* except.c (dw2_build_landing_pads): New local clobbers_hard_regs. Emit an ASM_INPUT as a scheduling barrier after clobbers. Fixes c++/4012. From-SVN: r45667
2001-09-13c-parse.in (yyerror): Const-ification and/or static-ization.Kaveh R. Ghazi1-1/+1
* c-parse.in (yyerror): Const-ification and/or static-ization. * c-typeck.c (push_member_name): Likewise. * collect2.c (main): Likewise. * dbxout.c (dbxout_parms): Likewise. * diagnostic.c (format_with_decl): Likewise. * dwarf2out.c (output_ranges): Likewise. * dwarfout.c (fundamental_type_code): Likewise. * except.c (dw2_output_call_site_table): Likewise. * gcc.c (do_spec_1): Likewise. * genopinit.c (optabs): Likewise. * objc/objc-act.c (synth_id_with_class_suffix, start_class, gen_declaration_1, handle_impent): Likewise. * protoize.c (default_include, in_system_include_dir, abspath): Likewise. * sched-vis.c (visualize_stall_cycles): Likewise. * sdbout.c (plain_type_1, sdbout_end_function, sdbout_end_epilogue): Likewise. * varasm.c (decode_reg_name): Likewise. * 1750a.c (mod_regno_adjust): Likewise. * alpha.c (alpha_write_one_linkage, unicosmk_output_default_externs): Likewise. * arm.c (arm_condition_codes): Likewise. * arm.h (arm_condition_codes): Likewise. * avr.c (output_movsisf, encode_section_info): Likewise. * darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL): Likewise. * i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise. * i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise. * m88k.c (output_function_profiler): Likewise. * mips.c (mips_output_conditional_branch): Likewise. * ns32k.c (ns32k_out_reg_names): Likewise. * ns32k.h (ns32k_out_reg_names): Likewise. * pj.c (pj_output_rval): Likewise. * rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise. * sparc.c (sparc_flat_function_prologue, sparc_flat_function_epilogue): Likewise. cp: * decl.c (warn_extern_redeclared_static, cp_make_fname_decl): Const-ification. * pt.c (tsubst_decl): Likewise. f: * bad.c (ffebad_finish): Const-ification and/or static-ization. * intrin.c (ffeintrin_cmp_name_): Likewise. * stc.c (ffestc_R904): Likewise. java: * expr.c (expand_invoke): Const-ification. * parse.y (patch_method_invocation): Likewise. From-SVN: r45581
2001-08-27dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper alignment for ↵Richard Henderson1-4/+7
assemble_integer for DW_EH_PE_aligned. * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper alignment for assemble_integer for DW_EH_PE_aligned. * except.c (output_function_exception_table): Likewise. From-SVN: r45198
2001-08-22Makefile.in, [...]: replace "GNU CC" with "GCC".Lars Brinkhoff1-12/+12
* Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c, bitmap.h, builtin-types.def, builtins.c, builtins.def, c-aux-info.c, c-common.c, c-common.def, c-common.h, c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c, c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in, c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c, caller-save.c, calls.c, collect2.c, collect2.h, combine.c, conditions.h, config.gcc, configure.frag, configure.in, conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c, cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h, dependence.c, df.c, df.h, diagnostic.c, diagnostic.h, doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c, dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c, emit-rtl.c, errors.c, errors.h, except.c, except.h, exgettext, explow.c, expmed.c, expr.c, expr.h, final.c, fixproto, flags.h, flow.c, fold-const.c, fp-test.c, function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp, gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c, gencheck.c, gencodes.c, genconfig.c, genemit.c, genextract.c, genflags.c, gengenrtl.c, genmultilib, genopinit.c, genoutput.c, genpeep.c, genrecog.c, gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c, ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c, graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h, gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h, gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h, hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h, integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c, libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h, machmode.def, machmode.h, main.c, mbchar.c, mbchar.h, mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk, mkmap-symver.awk, optabs.c, output.h, params.c, params.def, params.h, predict.c, predict.def, predict.h, prefix.c, prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c, read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c, regclass.c, regmove.c, regrename.c, regs.h, reload.c, reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c, rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h, sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c, sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c, ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c, stringpool.c, system.h, timevar.c, timevar.def, timevar.h, tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h, tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h, unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h, unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c, xcoffout.h: replace "GNU CC" with "GCC". From-SVN: r45105
2001-08-18except.c (TYPE_HASH): Delete.Kaveh R. Ghazi1-3/+0
* except.c (TYPE_HASH): Delete. * objc/objc-act.c (HASHFUNCTION): Cast to size_t, not HOST_WIDE_INT. * tree.c (TYPE_HASH): Delete. * tree.h (TYPE_HASH): Define. ch: * tree.c (TYPE_HASH): Moved to ../tree.h. cp: * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to GNU_xref_start_scope and GNU_xref_end_scope. * tree.c (TYPE_HASH): Moved to ../tree.h. From-SVN: r45004
2001-08-16tweak commentJason Merrill1-1/+5
From-SVN: r44942
2001-08-15* except.c (TYPE_HASH): Cast to size_t, not HOST_WIDE_INT.Richard Henderson1-1/+1
From-SVN: r44919
2001-08-13expr.h: Split out optab- and libfunc-related code to...Zack Weinberg1-0/+1
* expr.h: Split out optab- and libfunc-related code to... * optabs.h, libfuncs.h: ... these new headers. * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h. (OPTABS_H): New. (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to dependencies. * mkconfig.sh: Don't include insn-codes.h from config.h. * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether enum insn_code is available. Move reload_in_optab and reload_out_optab array declarations to optabs.h. * regmove.c (gen_add3_insn): Move to optabs.c, export from there, prototype in expr.h. * gencodes.c: Cleanup: zap global variables, don't use printf where puts will do, don't bother defining MAX_INSN_CODE which nothing uses, let CODE_FOR_nothing get its value implicitly. * genemit.c, genopinit.c: Include optabs.h in generated file. * genoutput.c: Include insn-codes.h in generated file. * builtins.c, caller-save.c, combine.c, doloop.c, explow.c, expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c, reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c, config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c, config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c: Include optabs.h. * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c, optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c, config/m88k/m88k.c, config/sparc/sparc.c: Include libfuncs.h. * reload.c: Include expr.h and optabs.h before reload.h. * config/alpha/alpha.c: Include tree.h before reload.h. * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h, and reload.h in that order. * config/sparc/sparc.c: Include debug.h. * recog.c: Include insn-codes.h. cp: * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies. * except.c: Include libfuncs.h. java: * Make-lang.in (java/decl.o): Update dependencies. * decl.c: Include libfuncs.h, don't include toplev.h. From-SVN: r44858
2001-08-08dbxout.c: Fix comment formatting.Kazu Hirata1-1/+1
* dbxout.c: Fix comment formatting. * dependence.c: Likewise. * df.c: Likewise. * diagnostic.c: Likewise. * dominance.c: Likewise. * doprint.c: Likewise. * dwarf2out.c: Likewise. * dwarfout.c: Likewise. * emit-rtl.c: Likewise. * except.c: Likewise. * explow.c: Likewise. * expmed.c: Likewise. * expr.c: Likewise. * flow.c: Likewise. * fold-const.c: Likewise. * function.c: Likewise. From-SVN: r44729
2001-08-08* except.c (remove_fixup_regions): Fix typo.Mark Mitchell1-1/+1
From-SVN: r44727
2001-08-06except.c (convert_from_eh_region_ranges_1): Never mark USE or CLOBBER insns ↵Richard Henderson1-0/+2
as throwing. * except.c (convert_from_eh_region_ranges_1): Never mark USE or CLOBBER insns as throwing. From-SVN: r44666
2001-08-03except.c (collect_one_action_chain): Add an explicit cleanup action if ↵Richard Henderson1-1/+20
regions surrounding a catch were encoded... * except.c (collect_one_action_chain): Add an explicit cleanup action if regions surrounding a catch were encoded entirely within the call-site entry. * g++.dg/eh/filter1.C, g++.dg/eh/filter2.C: New tests. From-SVN: r44616
2001-08-01except.c (output_function_exception_table): Use assemble_align.Richard Henderson1-2/+2
* except.c (output_function_exception_table): Use assemble_align. * varasm.c (assemble_eh_label): Remove. (assemble_eh_align, assemble_eh_integer): Remove. From-SVN: r44561
2001-08-01* except.c (duplicate_eh_regions): Test n_array[i] for NULL.Jeff Sturm1-1/+1
From-SVN: r44527
2001-07-29rtlanal.c (parms_set, [...]): Break out from...; handle multiple sets.Jan Hubicka1-45/+1
* rtlanal.c (parms_set, find_first_parameter_load): Break out from...; handle multiple sets. * except.c (sjlj_mark_call_sites): .... here. * gcse.c (insert_insn_end_bb): Use find_first_parameter_load. From-SVN: r44465
2001-07-29basic-block.h (CLEANUP_PRE_LOOP): New.Jan Hubicka1-2/+2
* basic-block.h (CLEANUP_PRE_LOOP): New. * except.c (finish_eh_generation): Update call of cleanup_cfg. * sibcall.c (optimize_sibling_calls): Likewise. * toplev.c (rest_of_compilation): Likewise. * flow.c (try_forward_edges): Take argument MODE; do not forward over loop pre-headers if CLEANUP_PRE_LOOP. (try_optimize_cfg): Update call of try_forward_edges. * (validate_replace_rtx_1): Fix simplification of MINUS. From-SVN: r44458
2001-07-25except.c (reachable_handlers): Handle a region being removed out from under ↵Richard Henderson1-4/+10
a RESX. * except.c (reachable_handlers): Handle a region being removed out from under a RESX. From-SVN: r44363
2001-07-20integrate.c (copy_insn_list): handle NOTE_INSN_DELETED_LABEL, as if it were ↵Jan Hubicka1-2/+1
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-16basic-block.h (CLEANUP_PRE_SIBCALL): New constant.Jan Hubicka1-2/+2
* 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-11flow.c (merge_blocks_move_successor_nojumps): Do not crash when fallthru ↵Jan Hubicka1-2/+2
edge is present. * flow.c (merge_blocks_move_successor_nojumps): Do not crash when fallthru edge is present. (mege_blocks): Handle case where creation of jump insn is required. * basic-block.h (CLEANUP_EXPENSIVE, CLEANUP_CROSSJUMP, CLEANUP_POST_REGSTACK): New constants. * except.c (finish_eh_generation): Update call of cleanup_cfg, * jump.c (rtx_renumbered_equal_p): Handle 't' fields. * output.h (cleanup_cfg): Update prototype. * reg-stack.c (reg_to_stack): Use cleanup_cfg instead of jump_optimize * sibcall.c (optimize_sibling_and_tail_recursive_call): Update cleanup_cfg call; kill missleading comment. * toplev.c (rest_of_compilation): Update all cleanup_cfg calls. * flow.c (merge_blocks, try_optimize_cfg, cleanup_cfg): Accept mode parameter; control optimizations performed using it. (flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb): New functions. From-SVN: r43950
2001-07-10regmove.c (replace_in_call_usage): Fix warnings.Jan van Male1-4/+5
2001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl> * regmove.c (replace_in_call_usage): Fix warnings. * sched-deps.c (add_dependence): Fix warnings. * simplify-rtx.c (simplify_subreg): Likewise. Return NULL_RTX instead of NULL. * reg-stack.c (emit_swap_insn): Eliminate warnings. (subst_asm_stack_regs): Likewise. * combine.c (num_sign_bit_copies): Cast bitwidth to int to avoid warnings. * dwarf2out.c (output_call_frame_info): Declare i as int. (build_abbrev_table): Declare n_alloc as int. (dwarf2out_finish): Initialize die. * except.c: Declare sjlj_funcdef_number as unsigned. (connect_post_landing_pads): Declare j as unsigned. (convert_to_eh_region_ranges): Initialize call_site. (output_function_exception_table): Initialize tt_format_size. * expr.c (move_by_pieces_1): Initialize to1. (store_constructor): Initialize minelt and maxelt. * flow.c (mark_regs_live_at_end): Declare i as unsigned. * function.c (instantiate_decls): Avoid signed/unsigned warning. * c-decl.c (combine_parm_decls): Unused, remove. * c-tree.h: Remove prototype for combine_parm_decls. * reload.c (push_reload): Fix warning. (regno_clobbered_p): Likewise. * reload1.c (replace_pseudos_in_call_usage): Likewise. (reload_combine): Likewise. * bitmap.c: Rename bitmap_zero to bitmap_zero_bits to fix warnings. * bitmap.h: Rename bitmap_zero to bitmap_zero_bits to fix warnings. * bitmap.c (bitmap_operation): Change user. * bitmap.h (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise. For cp/: 2001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl> * call.c (build_op_delete_call): Initialize fn. (convert_like_real): Delete conditional. (joust): Initialize *w and *l. * class.c: Add prototype for binfo_ctor_vtable. (get_primary_binfo): Initialize result. * init.c (build_java_class_ref): Initialize name. * typeck.c (unary_complex_lvalue): Do not duplicate the argument to modify, pre-, or post-increment when used as an lvalue and when the argument has side-effects. For ch/: 2001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl> * ch-tree.h: Remove prototype for combine_parm_decls, unused function. From-SVN: r43893
2001-07-02emit-rtl.c (adjust_address): New function.Richard Kenner1-14/+8
* emit-rtl.c (adjust_address): New function. * expr.h (adjust_address): Add declaration. * builtins.c: Replace some calls to change_address with calls to it or to validize_mem. * caller-save.c, dwarf2out.c, except.c, expmed.c, expr.c: Likewise. * function.c, config/a29k/a29k.md, config/alpha/alpha.c: Likewise. * config/arm/arm.c, config/convex/convex.c: Likewise. * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise. * config/i386/i386.c, config/i386/i386.md: Likewise. * config/ia64/ia64.c, config/ia64/ia64.md: Likewise. * config/m32r/m32r.c, config/m68k/m68k.md: Likewise. * config/m88k/m88k.c, config/mips/mips.md: Likewise. * config/ns32k/ns32k.c, config/rs6000/rs6000.c: Likewise. * config/sh/sh.c, config/sparc/sparc.md: Likewise. From-SVN: r43702
2001-06-18except.c (resolve_fixup_regions): Initialise "cleanup".Ben Elliston1-1/+1
2001-06-18 Ben Elliston <bje@redhat.com> * except.c (resolve_fixup_regions): Initialise "cleanup". From-SVN: r43432
2001-06-08except.c (get_exception_pointer, [...]): Take a struct function.Richard Henderson1-13/+15
* 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-08basic-block.h: Improve comments.Mark Mitchell1-4/+0
* basic-block.h: Improve comments. * except.c (expand_eh_region_end_allowed): Remove redundant call to do_pending_stack_adjust. * flow.c (life_analysis): Fix typo in comment. (calculate_global_regs_live): Add documentation. (mark_set_1): Likewise. (debug_regset): Likewise. * doc/rtl.texi (cond_exec): Document it. From-SVN: r43049
2001-06-08except.c (expand_eh_region_end_allowed): Call do_pending_stack_adjust as ↵Mark Mitchell1-0/+8
necessary. * except.c (expand_eh_region_end_allowed): Call do_pending_stack_adjust as necessary. From-SVN: r43020
2001-06-02except.c (expand_builtin_frob_return_addr): Add missing call to ↵Richard Kenner1-13/+10
convert_memory_address #ifdef POINTERS_EXTEND_UNSIGNED. * except.c (expand_builtin_frob_return_addr): Add missing call to convert_memory_address #ifdef POINTERS_EXTEND_UNSIGNED. (expand_builtin_eh_return): Likewise. (expand_eh_return): Clean up ptr_mode != Pmode cases. From-SVN: r42793
2001-05-20except.c (dw2_build_landing_pads): Use word_mode, not Pmode, as ncessary.Richard Henderson1-2/+14
* except.c (dw2_build_landing_pads): Use word_mode, not Pmode, as ncessary. (expand_eh_return): Convert between word_mode and Pmode. * unwind-dw2.c (extract_cie_info): Do not assume words and pointers are the same size. (execute_stack_op): Likewise. (execute_cfa_program): Likewise. (uw_frame_state_for): Likewise. (uw_update_context_1): Likewise. * unwind.inc (_Unwind_Reason_Code): Likewise. * config/mips/mips.h (EH_RETURN_DATA_REGNO): Define. (EH_RETURN_STACKADJ_RTX): Likewise. * config/mips/mips.c (compute_frame_size): Make space for saving EH return registers. (mips_expand_epilogue): Handle EH stack adjustments. * config/mips/mips.md (eh_return): New pattern. (eh_set_lr_si): Likewise. (eh_set_lr_di): Likewise. Add splitter to perform EH return after reload. From-SVN: r42332
2001-05-17except.h (protect_cleanup_actions): Remove it.Mark Mitchell1-2/+9
* except.h (protect_cleanup_actions): Remove it. (lang_protect_cleanup_actions): Declare it. * except.c (protect_cleanup_actions): Remove it. (lang_protect_cleanup_actions): New variable. (init_eh): Don't make protect_cleanup_actions a GC root. (expand_eh_region_and_cleanup): Call lang_protect_cleanup_actions. (output_function_exception_table): Remove unused `align' variable. * varasm.c (assemble_external): Abort if we have not yet opened the assembly output file. * except.c (cp_protect_cleanup_actions): New function. (init_exception_processing): Don't set protect_cleanup_actions here. Do set lang_protect_cleanup_actions. From-SVN: r42218
2001-05-17except.c (sjlj_emit_function_enter): Call assemble_external_libcall for ↵Jeffrey A Law1-0/+4
eh_personality_libfunc. * except.c (sjlj_emit_function_enter): Call assemble_external_libcall for eh_personality_libfunc. From-SVN: r42216
2001-05-16except.c (eh_data_format_name): Move to ...Richard Henderson1-129/+2
* except.c (eh_data_format_name): Move to ... * dwarf2asm.c: ... here. Use designated initializers if available. (dw2_asm_output_encoded_addr_rtx): Accept varargs commentary. * dwarf2asm.h: Update declarations. * dwarf2out.c (output_cfi) [DW_CFA_set_loc]: If for_eh, mind ASM_PREFERRED_EH_DATA_FORMAT. (output_call_frame_info): Likewise. Use 'L' augmentation for the LSDA encoding. * unwind-dw2-fde.h (struct fde_vector): New. (struct old_object): Rename from struct object. (struct object): New. (__register_frame_info_bases): Declare. (__register_frame_info_table_bases): Declare. (struct dwarf_fde): Remove explicit pc_begin/pc_range members. * unwind-dw2-fde.c (objects): Remove. (unseen_objects, seen_objects): New. (__register_frame_info_bases): New. (__register_frame_info): Use it. (__register_frame_info_table_bases): New. (__register_frame_info_table): Use it. (__deregister_frame_info): Rewrite for changed object struct. (base_from_object, get_cie_encoding, get_fde_encoding): New. (fde_unencoded_compare): Rename from fde_compare; uninline. (fde_single_encoding_compare, fde_mixed_encoding_compare): New. (start_fde_sort): Adjust for new definition of fde_vector. (fde_insert): Likewise. (end_fde_sort): Likewise. Select comparison function based on properties of the object. (fde_split): Take object and fde_compare_t arguments. (frame_heapsort, fde_merge): Likewise. (classify_object_over_fdes): Rename from count_fdes. Handle encoded pointers. Collect encoding, mixed_encoding, and pc_begin for the object. (add_fdes): Handle encoded pointers. (init_object): Rename from frame_init. Update for new struct object. (linear_search_fdes): Rename from search_fdes. Handle encoded pointers. (binary_search_unencoded_fdes): Broken out from _Unwind_Find_FDE. (binary_search_single_encoding_fdes): New. (binary_search_mixed_encoding_fdes): New. (search_object): New. (_Unwind_Find_FDE): Update for new struct object. Fill in the dwarf_eh_bases. * unwind-dw2.c: Include unwind-pe.h. Constify all pointers iterating over EH data. (_Unwind_FrameState): Remove saw_lsda, addr_encoding. Add fde_encoding, lsda_encoding. (read_uleb128, read_sleb128): Remove. (read_encoded_pointer): Remove. All callers use read_encoded_value. (extract_cie_info): Set lsda_encoding from 'L' augmentation. (uw_frame_state_for): Don't set bases.func. Handle encoded fde pointers. * unwind-pe.h: Add "struct" to _Unwind_Context references. From-SVN: r42176
2001-05-12dwarf2asm.c (size_of_encoded_value): New function.Richard Henderson1-18/+20
* dwarf2asm.c (size_of_encoded_value): New function. * dwarf2asm.h: Declare it. * except.c (output_function_exception_table): Align the TType array only as wide as the encoding. From-SVN: r42028
2001-05-11defaults.h (ASM_PREFERRED_EH_DATA_FORMAT): New.Richard Henderson1-34/+92
* defaults.h (ASM_PREFERRED_EH_DATA_FORMAT): New. * dwarf2asm.c (dw2_force_const_mem, dw2_output_indirect_constant_1, dw2_output_indirect_constants, dw2_asm_output_encoded_addr_rtx): New. * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): Prototype. (dw2_output_indirect_constants): Prototype. * dwarf2out.c (dwarf2out_begin_prologue): Generate current_function_func_begin_label if we'll need it for EH. Exit early for IA64_UNWIND_INFO. * except.c: Get DW_EH_PE_* defines from dwarf2.h. (eh_data_format_name): Update for indirect references. (output_function_exception_table): Care for IA64_UNWIND_INFO. Handle ASM_PREFERRED_EH_DATA_FORMAT. * except.h (MUST_USE_SJLJ_EXCEPTIONS): IA64_UNWIND_INFO needn't define HAVE_eh_return etc. * final.c (final_start_function): Always call dwarf2out_begin_prologue. (final_end_function): Don't call output_function_exception_table. * toplev.c (compile_file): Call dw2_output_indirect_constants. (rest_of_compilation): Invoke output_function_exception_table for ia64 before assemble_end_function. * tm.texi (ASM_PREFERRED_EH_DATA_FORMAT): Document. (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Document. * unwind-dw2.c (_Unwind_GetTextRelBase, _Unwind_GetDataRelBase): New. * unwind.h: Declare them. * libgcc-std.ver: Export them. * unwind-pe.h: New file. * config/alpha/elf.h (ASM_PREFERRED_EH_DATA_FORMAT): New. * config/ia64/fde-glibc.c: Use "struct unw_table_entry" instead of "fde". (find_fde_for_dso): Extract DT_PLTGOT. (_Unwind_FindTableEntry): Rename from __ia64_find_fde; return the segment and gp as well. * config/ia64/frame-ia64.c: Remove file. * config/ia64/frame-ia64.h: Remove file. * config/ia64/unwind-ia64.c: New file. * config/ia64/unwind-ia64.h: New file. * config/ia64/ia64.h (ASM_OUTPUT_EH_CHAR): Remove. (ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT): Remove. (ASM_OUTPUT_EH_DOUBLE_INT): Remove. (ASM_PREFERRED_EH_DATA_FORMAT): New. (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New. (IA64_UNWIND_INFO): Re-enable. (HANDLER_SECTION): Remove. (EH_RETURN_DATA_REGNO): New. * config/ia64/ia64.md (exception_receiver): Remove. * config/ia64/t-glibc (LIB2ADDEH): Re-enable. * config/ia64/t-ia64 (LIB2ADDEH): Re-enable. From-SVN: r41981
2001-05-07except.c (sjlj_mark_call_sites): Do not search for assignments to ↵Jeffrey A Law1-0/+5
non-argumment registers that are mentioned in... * except.c (sjlj_mark_call_sites): Do not search for assignments to non-argumment registers that are mentioned in CALL_INSN_FUNCTION_USAGE. From-SVN: r41896
2001-05-05except.c (remove_fixup_regions): Adjust REG_EH_REGION notes to the parent of ↵Richard Henderson1-2/+21
the fixup region. * except.c (remove_fixup_regions): Adjust REG_EH_REGION notes to the parent of the fixup region. From-SVN: r41867
2001-05-01bitmap.c: Change NULL_PTR to NULL or "(rtx*)0".Kaveh R. Ghazi1-2/+2
* bitmap.c: Change NULL_PTR to NULL or "(rtx*)0". * c-common.c: Likewise. * c-decl.c: Likewise. * combine.c: Likewise. * rs6000.c: Likewise. * except.c: Likewise. * explow.c: Likewise. * expr.c: Likewise. * fold-const.c: Likewise. * function.c: Likewise. * gcc.c: Likewise. * gcse.c: Likewise. * integrate.c: Likewise. * loop.c: Likewise. * objc/objc-act.c: Likewise. * recog.c: Likewise. * reg-stack.c: Likewise. * reload.c: Likewise. * reload1.c: Likewise. * simplify-rtx.c: Likewise. * stmt.c: Likewise. * varasm.c: Likewise. From-SVN: r41722
2001-04-27except.c (expand_eh_region_start): Don't start a new block.Jason Merrill1-26/+1
* except.c (expand_eh_region_start): Don't start a new block. (expand_eh_region_end): Don't end a block. * stmt.c (expand_end_bindings): Don't end EH blocks. (expand_decl_cleanup): Starting an EH region won't change the block. (mark_block_as_eh_region, mark_block_as_not_eh_region): Lose. (is_eh_region): Lose. * tree.h: Adjust. From-SVN: r41647