aboutsummaryrefslogtreecommitdiff
path: root/gcc/dwarf2out.c
AgeCommit message (Collapse)AuthorFilesLines
2007-05-21gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of NOTE_LINE_NUMBER...Jan Hubicka1-2/+2
* gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible. * ddg.c (create_ddg): LIkewise. * final.c (final): Remove hunk moving line numbernotes around since they are no longer present at this stage. (final_scan_insn): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible. (output_asm_label): Likewise. * reorg.c (dbr_schedule): Likewise. * haifa-sched.c (unlink_other_notes): Likewise. * mode-switching.c (optimize_mode_switching): Likewise. * graph.c (start_bb): Likewise. * rtl.def (NOTE): Update description. * jump.c (squeeze_notes): Delete. (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible. * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes. * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible. (dwarf2out_var_location): Likewise. * cfgbuild.c (make_edges): Likewise. (find_basic_blocks_1): Likewise. * function.c (reorder_blocks_1): Likewise. (epilogue_done): Likewise. (reposition_prologue_and_epilogue_notes): Likewise. * print-rtl.c (print_rtx): Likewise; drop code for printing line number notes. (print_rtl): Likewise. (print_rtl_single): Likewise. * gcse.c (insert_insn_start_bb): Likewise. * alias.c (init_alias_analysis): Likewise. * calls.c (fixup_tail_calls): Likewise. * except.c (sjlj_emit_function_enter): Likewise. * emit-rtl.c (add_insn_after): Likeiwse. (emit_label_before): Likewise. (emit_label_after): Likewise. (emit_note_before, emit_note_after, emit_note): Update parameter to be enum insn_note; do not deal with source files. * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible. (merge_blocks_move_successor_nojumps): Simplify now when we don't have BLOCK notes. (try_optimize_cfg): Likewise. * cfglayout.c (skip_insns_after_block): Likewise. (record_effective_endpoints): Likewise. (duplicate_insn_chain): Likewise. * varasm.c (output_constant_pool_1): Likewise. * sched-deps.c (sched_analyze): Likewise. * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS): Exterminate. (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone. * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate. (SET_INSN_DELETED): Simplify. (NOTE_LINE_NUMBER): Exterminate. (NOTE_LINE_KIND): New. (NOTE_INSN_BASIC_BLOCK_P): Update. (enum insn_note): Simplify. (GET_NOTE_INSN_NAME) Simplify. (emit_note_before, emit_note_after, emit_note): Update prototype. (squeeze_notes): Remove. * sched-int.h (NOTE_NOT_BB_P): Update. * resource.c (mark_target_live_regs): Update. * sched-rgn.c (debug_dependencies): Update. * sched-vis.c (print_insn): Update. * config/alpha/alpha.c (alpha_handle_trap_shadows): Update. * config/i386/i386.c (ix86_output_function_epilogue): Update. * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0. (TARGET_ADJUST_UNROLL_MAX): Likewise. (split_branches): Update. (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc 4.0.0. (sh_adjust_unroll_max): Exterminate. * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED. * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise. (m68hc11_reorg): Likewise. * config/ia64/ia64.c (emit_insn_group_barriers): Update. (emit_predicate_relation_info): Update. (process_for_unwind_directive): Update. * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update. (output_call): Update. * config/pa/pa.c (output_lbranch): Update. (output_millicode_call): Update. (output_call): Update. (pa_combine_instructions): Update. * config/mips/mips.c (mips16_gp_pseudo_reg): Update. * config/bfin/bfin.c (gen_one_bundle): Update. * cfgrtl.c (can_delete_note_p): Update. (delete_insn): Update. (rtl_merge_blocks): Update. (commit_one_edge_insertion): Update. (rtl_verify_flow_info): Update. * stmt.c (expand_case): Do not call squeeze_notes. From-SVN: r124895
2007-05-18Index: gcc/java/ChangeLogGeoffrey Keating1-5/+6
2007-05-18 Geoffrey Keating <geoffk@apple.com> * jcf-dump.c (HANDLE_MAGIC): Use 'unsigned long' for %lx. (print_constant): Likewise. Index: gcc/ChangeLog 2007-05-18 Geoffrey Keating <geoffk@apple.com> * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'. (output_die): Use 'unsigned long' with %x. * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT. * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx. Index: gcc/cp/ChangeLog 2007-05-18 Geoffrey Keating <geoffk@apple.com> * mangle.c (write_real_cst): Use 'unsigned long' for %lx. From-SVN: r124839
2007-04-24dwarf2out.c (field_byte_offset): Move the existing logic under the control ↵Nathan Froyd1-78/+92
of PCC_BITFIELD_TYPE_MATTERS and just... * dwarf2out.c (field_byte_offset): Move the existing logic under the control of PCC_BITFIELD_TYPE_MATTERS and just use the bit offset of the field if !PCC_BITFIELD_TYPE_MATTERS. From-SVN: r124104
2007-04-17invoke.texi (Debugging Options): Add documentation for the ↵Lawrence Crowl1-10/+34
-femit-struct-debug options... ./: * doc/invoke.texi (Debugging Options): Add documentation for the -femit-struct-debug options -femit-struct-debug-baseonly, -femit-struct-debug-reduced, and -femit-struct-debug-detailed[=...]. * c-opts.c (c_common_handle_option): Add OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced, and OPT_femit_struct_debug_detailed_. * c.opt: Add specifications for -femit-struct-debug-baseonly, -femit-struct-debug-reduced, and -femit-struct-debug-detailed[=...]. * opts.c (set_struct_debug_option): Parse the -femit-struct-debug-... options. * opts.c (matches_main_base, main_input_basename, main_input_baselength, base_of_path, matches_main_base): Add variables and functions to compare header base name to compilation unit base name. * opts.c (should_emit_struct_debug): Add to determine to emit a structure based on the option. (dump_struct_debug) Also disabled function to debug this function. * opts.c (handle_options): Save the base name of the compilation unit. * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define. (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add. This hook indicates if a type is generic. Set it by default to "never generic". * langhooks.h (struct lang_hooks_for_types): Add a new hook to determine if a struct type is generic or not. * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook. * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook. * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook with live C++ hook. * flags.h (enum debug_info_usage): Add an enumeration to describe a program's use of a structure type. * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter to indicate the program's usage of the type. Filter structs based on the -femit-struct-debug-... specification. (gen_type_die): Split into two routines, gen_type_die and gen_type_die_with_usage. gen_type_die is now a wrapper that assumes direct usage. (gen_type_die_with_usage): Replace calls to gen_type_die with gen_type_die_with_usage adding the program usage of the referenced type. (dwarf2out_imported_module_or_decl): Suppress struct debug information using should_emit_struct_debug when appropriate. testsuite/: * g++.dg/other/fesd-any.C: Test -femit-struct-debug-detailed=any. * g++.dg/other/fesd-any.h: Test -femit-struct-debug-detailed=any. * g++.dg/other/fesd-baseonly.C: Test -femit-struct-debug-baseonly. * g++.dg/other/fesd-baseonly.h: Test -femit-struct-debug-baseonly. * g++.dg/other/fesd-none.C: Test -femit-struct-debug-detailed=none. * g++.dg/other/fesd-none.h: Test -femit-struct-debug-detailed=none. * g++.dg/other/fesd-reduced.C: Test -femit-struct-debug-reduced. * g++.dg/other/fesd-reduced.h: Test -femit-struct-debug-reduced. * g++.dg/other/fesd-sys.C: Test -femit-struct-debug-detailed=sys. * g++.dg/other/fesd-sys.h: Test -femit-struct-debug-detailed=sys. * g++.dg/other/fesd.h: Common to -femit-struct-debug-... tests. * gcc.dg/fesd-any.c: Test -femit-struct-debug-detailed=any. * gcc.dg/fesd-any.h: Test -femit-struct-debug-detailed=any. * gcc.dg/fesd-baseonly.c: Test -femit-struct-debug-baseonly. * gcc.dg/fesd-baseonly.h: Test -femit-struct-debug-baseonly. * gcc.dg/fesd-none.c: Test -femit-struct-debug-detailed=none. * gcc.dg/fesd-none.h: Test -femit-struct-debug-detailed=none. * gcc.dg/fesd-reduced.c: Test -femit-struct-debug-reduced. * gcc.dg/fesd-reduced.h: Test -femit-struct-debug-reduced. * gcc.dg/fesd-sys.c: Test -femit-struct-debug-detailed=sys. * gcc.dg/fesd-sys.h: Test -femit-struct-debug-detailed=sys. * gcc.dg/fesd.h: Common to -femit-struct-debug-... tests. From-SVN: r123909
2007-04-14re PR middle-end/31322 (ld: Invalid symbol type for plabel ↵John David Anglin1-0/+1
(.libs/debug_list.o, __gxx_personality_v0).) PR middle-end/31322 * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall when a personality function is used. From-SVN: r123806
2007-04-06Cleanup whitespacingMike Stump1-100/+100
From-SVN: r123536
2007-03-30PR middle-end/PR30700Jan Hubicka1-1/+13
PR middle-end/PR30700 * dwarf2out.c (reference_to_unused): Ask cgraph for functions availablility; add more sanity checking; ask varpool only about VAR_DECL. From-SVN: r123358
2007-03-16re PR debug/29906 (-g option creates internal compiler error)Alexandre Oliva1-2/+8
gcc/ChangeLog: PR debug/29906 * dwarf2out.c (force_type_die): Adjust comment. (dwarf2out_imported_module_or_decl): Handle base AT_import types. gcc/testsuite/ChangeLog: PR debug/29906 * g++.dg/debug/pr29906.C: New From-SVN: r122976
2007-03-07dwarf2out.c (is_inlined_entry_point): NewAlexandre Oliva1-0/+37
* dwarf2out.c (is_inlined_entry_point): New (add_high_low_attributes): Emit DW_AT_entry_pc along with DW_AT_ranges if the first subblock is the entry point. From-SVN: r122650
2007-03-02target.h (init_dwarf_reg_sizes_extra): New target hook.Joseph Myers1-0/+2
* target.h (init_dwarf_reg_sizes_extra): New target hook. * target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default. * doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document. * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this hook. * config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA, rs6000_init_dwarf_reg_sizes_extra): New. * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support SPE register high parts. testsuite: * gcc.target/powerpc/spe-unwind-1.c, g++.dg/eh/simd-5.C: New tests. From-SVN: r122468
2007-02-22dwarf2out.c (add_AT_string): Call ggc_strdup once per string.Michael Matz1-5/+18
* dwarf2out.c (add_AT_string): Call ggc_strdup once per string. (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME. * cp-tree.h (TFF_NO_OUTER_SCOPE): New formatting flag. * error.c (dump_aggr_type, dump_simple_decl, dump_decl, dump_function_decl): Guard emitting outer scopes by new flag. * cp-lang.c (cxx_dwarf_name): New function. (LANG_HOOKS_DWARF_NAME): Define to cxx_dwarf_name. * pt.c (classtype_mangled_name, mangle_class_name_for_template): Remove functions. (push_template_decl_real, lookup_template_class): Remove calls to above functions. From-SVN: r122230
2007-02-22re PR debug/30898 (ICE with anonymous union and -g)Ian Lance Taylor1-0/+30
./: PR debug/30898 * dwarf2out.c (concatn_mem_loc_descriptor): New static function. (mem_loc_descriptor): Call it. testsuite/: * g++.dg/debug/pr30898.C: New test. From-SVN: r122228
2007-02-15dwarf2out.c (dwarf2out_finish): Accept namespaces as context of limbo die nodes.Alexandre Oliva1-1/+3
gcc/ChangeLog: * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of limbo die nodes. gcc/testsuite/ChangeLog: * g++.dg/ext/interface4.C, g++.dg/ext/interface4.h: New. From-SVN: r121979
2007-02-12dwarf2out.c (round_up_to_align): New static function.Eric Botcazou1-6/+22
* dwarf2out.c (round_up_to_align): New static function. (field_byte_offset): Use it to round the offset. From-SVN: r121859
2007-02-11dwarf2out.c (root_type): Delete unused function.Manuel López-Ibáñez1-30/+0
2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org> * dwarf2out.c (root_type): Delete unused function. From-SVN: r121828
2007-02-10Makefile.in (libgcc-support, [...]): Add emutls.c.Richard Henderson1-1/+1
gcc/ChangeLog: * Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c. * builtin-types.def (BT_WORD): Make unsigned. (BT_FN_VOID_PTR_WORD_WORD_PTR): New. * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New. (BUILT_IN_EMUTLS_REGISTER_COMMON): New. * c-decl.c (grokdeclarator): Don't error if !have_tls. * c-parser.c (c_parser_omp_threadprivate): Likewise. * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for emulated tls. * expr.c (emutls_var_address): New. (expand_expr_real_1): Expand emulated tls. (expand_expr_addr_expr_1): Likewise. * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common. * output.h (emutls_finish): Declare. * toplev.c (compile_file): Call it. * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the address before wrapping in CONST. * varasm.c (emutls_htab, emutls_object_type): New. (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New. (get_emutls_object_name, get_emutls_object_type): New. (get_emutls_init_templ_addr, emutls_decl): New. (emutls_common_1, emutls_finish): New. (assemble_variable): When emulating tls, swap decls; generate constructor for the emutls objects. (do_assemble_alias): When emulating tls, swap decl and target name. (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT for emulated tls. * varpool.c (decide_is_variable_needed): Look at force_output. Recurse for emulated tls. (cgraph_varpool_remove_unreferenced_decls): Remove checks redundant with decide_is_variable_needed. * emutls.c: New file. * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit tls_object for real tls. gcc/cp/ChangeLog: * decl.c (grokvardecl): Don't error if !have_tls. (grokdeclarator): Likewise. * parser.c (cp_parser_omp_threadprivate): Likewise. gcc/fortran/ChangeLog: * f95-lang.c (gfc_init_builtin_functions): Add __emutls_get_address and __emutls_register_common. * openmp.c (gfc_match_omp_threadprivate): Don't error if !have_tls. * trans-common.c (build_common_decl): Don't check have_tls. * trans-decl.c (gfc_finish_var_decl): Likewise. * types.def (BT_WORD, BT_FN_PTR_PTR): New. (BT_FN_VOID_PTR_WORD_WORD_PTR): New. gcc/testsuite/ChangeLog: * lib/target-supports.exp (check_effective_target_tls): Redefine to mean non-emulated tls. * gcc.dg/tls/alias-1.c: Remove tls requirement. * gcc.dg/tls/asm-1.c, gcc.dg/tls/debug-1.c, gcc.dg/tls/diag-1.c, gcc.dg/tls/diag-2.c, gcc.dg/tls/diag-3.c, gcc.dg/tls/diag-4.c, gcc.dg/tls/diag-5.c, gcc.dg/tls/init-1.c, gcc.dg/tls/nonpic-1.c, gcc.dg/tls/opt-10.c, gcc.dg/tls/opt-5.c, gcc.dg/tls/opt-6.c, gcc.dg/tls/opt-8.c, gcc.dg/tls/opt-9.c, gcc.dg/tls/pic-1.c, gcc.dg/tls/struct-1.c, gcc.dg/tls/trivial.c: Likewise. From-SVN: r121800
2007-02-06re PR debug/30189 (ICE on modified_type_die)Alexandre Oliva1-3/+5
gcc/ChangeLog: PR debug/30189 * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE even if cv-qualification is the same. gcc/testsuite/ChangeLog: PR debug/30189 * gcc.dg/pr30189.c: New test. From-SVN: r121638
2007-02-05dwarf2out.c (dwarf2out_frame_debug_expr): Record the register saves in a ↵Richard Sandiford1-5/+23
PARALLEL before the register assignments. gcc/ * dwarf2out.c (dwarf2out_frame_debug_expr): Record the register saves in a PARALLEL before the register assignments. From-SVN: r121594
2007-02-05tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require ↵Richard Sandiford1-13/+15
DWARF_FRAME_RETURN_COLUMN to be a general register. gcc/ * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require DWARF_FRAME_RETURN_COLUMN to be a general register. * dwarf2out.c (init_return_column_size): New function, split from... (expand_builtin_init_dwarf_reg_sizes): ...here. Allow both DWARF_FRAME_RETURN_COLUMN and DWARF_ALT_FRAME_RETURN_COLUMN to be nongeneral registers. * config/m68k/m68k.h (DWARF_FRAME_REGNUM): Only map FP and integer registers. (DWARF_FRAME_REGISTERS, DWARF_FRAME_RETURN_COLUMN): Define. (DWARF_ALT_FRAME_RETURN_COLUMN): Define. From-SVN: r121593
2007-02-01lower-subreg.c: New file.Ian Lance Taylor1-1/+31
gcc/: * lower-subreg.c: New file. * rtl.def (CONCATN): Define. * passes.c (init_optimization_passes): Add pass_lower_subreg and pass_lower_subreg2. * emit-rtl.c (update_reg_offset): New static function, broken out of gen_rtx_REG_offset. (gen_rtx_REG_offset): Call update_reg_offset. (gen_reg_rtx_offset): New function. * regclass.c: Revert patch of 2006-03-05, restoring reg_scan_update. (clear_reg_info_regno): New function. * dwarf2out.c (concatn_loc_descriptor): New static function. (loc_descriptor): Handle CONCATN. * common.opt (fsplit_wide_types): New option. * opts.c (decode_options): Set flag_split_wide_types when optimizing. * timevar.def (TV_LOWER_SUBREG): Define. * rtl.h (gen_reg_rtx_offset): Declare. (reg_scan_update): Declare. * regs.h (clear_reg_info_regno): Declare. * tree-pass.h (pass_lower_subreg): Declare. (pass_lower_subreg2): Declare. * doc/invoke.texi (Option Summary): List -fno-split-wide-types. (Optimize Options): Add -fsplit-wide-types to -O1 list. Document -fsplit-wide-types. * doc/rtl.texi (Regs and Memory): Document concat and concatn. * Makefile.in (OBJS-common): Add lower-subreg.o. (lower-subreg.o): New target. gcc/testsuite/: * gcc.dg/lower-subreg-1.c (test): New test. From-SVN: r121453
2007-01-30re PR middle-end/27657 (bogus undefined reference error to static var with ↵Richard Guenther1-2/+8
-g and -O) 2007-01-30 Richard Guenther <rguenther@suse.de> PR middle-end/27657 * dwarf2out.c (reference_to_unused): Query varpool if the variable was output. * g++.dg/debug/pr27657.C: New testcase. From-SVN: r121335
2006-12-27re PR debug/26964 (Duplicate debug info for enums in namespaces)Ian Lance Taylor1-1/+6
PR debug/26964 * dwarf2out.c (gen_type_die): Don't write out a DIE for ENUMERAL_TYPE if it was already written out. From-SVN: r120221
2006-12-23dwarf2out.c (dbx_reg_number): Do leaf register remapping only if the ↵Eric Botcazou1-14/+12
function is leaf. * dwarf2out.c (dbx_reg_number): Do leaf register remapping only if the function is leaf. (multiple_reg_loc_descriptor): Likewise. From-SVN: r120170
2006-12-11Move all varpool routines out of cgraph/cgraphunit to varpool.cJan Hubicka1-1/+1
Move all varpool routines out of cgraph/cgraphunit to varpool.c * cgraph.c: Update comments. (cgraph_varpool_hash, cgraph_varpool_nodes, cgraph_varpool_last_needed_node cgraph_varpool_node_name, cgraph_varpool_node, cgraph_varpol_mode_for_asm, cgraph_varpool_mark_needed_node, cgraph_variable_initializer_availability): Move to varpool.c and drop cgraph_ prefixes. (cgraph_varpool_enqueue_needed_node, cgraph_varpool_reset_queue, cgraph_varpool_first_unanalyzed_node, cgraph_varpool_finalize_decl): move to varpool.c; drop cgraph_ prefix; make static. (dump_cgraph_varpool_node): Move to varpool.c under name dump_varpool_node. (dump_varpool, hash_varpool_node, eq_varpool_node, decide_is_variable_needed): Move to varpool.c (decl_assembler_name_equal): Move to tree.c. (availability_names): Rename to ... (cgraph_availability_names): ... this one. (dump_cgraph_node): Update. * cgraph.h: Reorder declarations now in varpool.c (cgraph_vailablity_names): Declare. (struct cgraph_varpool_node): Rename to ... (struct varpool_node): ... this one. (cgraph_varpool_first_unanalyzed_node, cgraph_varpool_nodes_queue, cgraph_varpool_first_unanalyzed_node, cgraph_varpool_node, cgraph_varpool_node_for_asm, cgraph_varpool_mark_needed_node, cgraph_varpool_finalize_decl, cgraph_varpool_enqueue_needed_node, cgraph_varpool_reset_queue, cgraph_varpool_assemble_pending_decls, cgraph_variable_initializer_availability): Rename to ... (varpool_first_unanalyzed_node, varpool_nodes_queue, varpool_first_unanalyzed_node, varpool_node, varpool_node_for_asm, varpool_mark_needed_node, varpool_finalize_decl, varpool_enqueue_needed_node, varpool_assemble_pending_decls, variable_initializer_availability): Rename to ... * tree.c (decl_assembler_name_equal): Move here from cgraph.c. * tree.h (decl_assembler_name_equal): Declare. * omp-low.c (lower_omp_critical): Update. * ipa-reference (analyze_variable, static_execute): Likewise. * toplev.c (wrapup_global_declaration_2, compile_file): Update. * cgraphunit.c: Update comments. (cgraph_varpool_assembled_nodes_queue): Move to varpool.c under name varpool_assembled_nodes_queue. (cgraph_varpool_analyze_pending_decls): Move to varpool.c under name varpool_analyze_pending_decls. (cgraph_varpool_remove_unreferenced_decls): Move to varpool.c under name varpool_remove_unreferenced_decls. (record_reference): Update. (cgraph_create_edges): Update. (record_referneces_in_initializer): New function. (cgraph_varpool_assemble_decl): Move to varpool.c under name varpool_assemble_decl; make global. (cgraph_varpool_assemble_pending_decls): Move to varpool.c under name varpool_assemble_pending_decls. (process_function_and_variable_attributes, cgraph_finalize_compilation_unit, struct cgraph_order_sort, cgraph_output_in_order, cgraph_function_and_variable_invisibility, cgraph_optimize, cgraph_increase_alignment): Update. * dwarf2out.c (decls_for_scope): Likewise. * ipa-type-escape.c (analyze_variable, type_escape_execute): Likewise. * except.c (output_ttype): Likewise. * varasm.c (mark_decl_referenced): Likewise. (find_decl_and_mark_referenced, assemble_alias): update. * Makefile.in: Add varpool.c, gt-varpool.c and remove gt-cgraphunit.c * passes.c (rest_of_decl_compilation): Update. * cp/decl2.c (var_finalized_p): Update for renamed varpool functions. * fortran/f59-lang.c (gfc_expand_function): Update for renamed varpool functions. From-SVN: r119731
2006-12-05Merge gimple-tuples-branch into mainline.Aldy Hernandez1-3/+4
From-SVN: r119546
2006-12-01re PR c++/29433 (using boost::MPL requires lots of memory)Richard Guenther1-5/+3
2006-12-01 Richard Guenther <rguenther@suse.de> PR c++/29433 * dwarf2out.c (struct pubname_struct): Make name const. (add_pubtype): Do not xstrdup identifiers. From-SVN: r119404
2006-11-14Add ability to generate DWARF pubtypes section if DEBUG_PUBTYPES_SECTION is ↵Caroline Tice1-50/+119
defined. Add ability to generate DWARF pubtypes section if DEBUG_PUBTYPES_SECTION is defined. Also add dejagnu testcases for pubtypes. From-SVN: r118826
2006-11-11tree.def (FIX_CEIL_EXPR, [...]): Remove unused tree codes.Richard Guenther1-3/+0
2006-11-11 Richard Guenther <rguenther@suse.de> * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR): Remove unused tree codes. * tree-vrp.c (extract_range_from_unary_expr): Remove handling of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR. * tree-pretty-print.c (dump_generic_node, op_prio): Likewise. * tree.c (stabilize_reference): Likewise. * fold-const.c (fold_convert_const_int_from_real, operand_equal_p, fold_unary): Likewise. * tree-gimple.c (is_gimple_cast): Likewise. * dwarf2out.c (loc_descriptor_from_tree_1): Likewise. * expr.c (expand_expr_real_1): Likewise. * tree-eh.c (tree_could_trap_p): Likewise. * gimplify.c (gimplify_expr): Likewise. * tree-inline.c (estimate_num_insns_1): Likewise. * tree-cfg.c (verify_expr): Likewise. cp/ * typeck.c (build_unary_op): Likewise. java/ * check-init.c (check_init): Likewise. ada/ * trans.c (maybe_stabilize_reference): Likewise. fortran/ * trans-intrinsic.c (enum rounding_mode): New enum. (build_fix_expr, gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod, gfc_conv_intrinsic_function): Use it instead of FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR and FIX_TRUNC_EXPR. From-SVN: r118692
2006-11-01In gcc/:Geoffrey Keating1-1/+1
* coverage.c (coverage_checksum_string): Update comment. * dwarf2out.c (switch_to_eh_frame_section): Update for removal of get_file_function_name. * cgraphunit.c (cgraph_build_static_cdtor): Update for rename of get_file_function_name_long. * tree.c (get_file_function_name): Rename from get_file_function_name_long; improve comment; handle 'I' and 'D' specially when the target has ctor/dtor support; remove special handling for 'F'. (get_file_function_name): Remove. * tree.h (get_file_function_name): Rename from get_file_function_name_long. (get_file_function_name): Remove prototype. In gcc/cp/: * name-lookup.c (get_anonymous_namespace_name): New. (push_namespace_with_attribs): Use get_anonymous_namespace_name. * decl2.c (start_objects): Update for rename of get_file_function_name_long. In gcc/fortran/: * trans-decl.c (gfc_generate_constructors): Update for removal of get_file_function_name. From-SVN: r118360
2006-10-30builtins.c (expand_builtin_mathfn_3): Correct coding style.Roger Sayle1-27/+28
* builtins.c (expand_builtin_mathfn_3): Correct coding style. * ddg.c (print_ddg_edge): Likewise. * dwarf2out.c (prune_unused_types_walk): Likewise. * ifcvt.c (noce_try_cmove_arith): Likewise. * langhooks.c (add_builtin_function): Likewise. * reg-stack.c (subst_stack_regs_pat): Likewise. * tree.c (expanded_location): Likewise. * tree-dump.c (dequeue_and_dump): Likewise. From-SVN: r118187
2006-10-30dwarf2out.c (file_name_acquire): Correct typo.Danny Smith1-1/+1
* dwarf2out.c (file_name_acquire): Correct typo. Formatting tweak to earlier ChangeLog entry. From-SVN: r118171
2006-10-28Fixup whitespacingMike Stump1-1/+0
From-SVN: r118104
2006-10-25dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.Nathan Froyd1-5/+17
* dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH. (file_table_relative_p): Likewise. (dwarf2out_finish): Likewise. (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2. From-SVN: r118033
2006-10-09Revert emutls patch.Richard Henderson1-1/+1
From-SVN: r117578
2006-10-04Makefile.in (libgcc.mk, [...]): Add emutls.c.Richard Henderson1-1/+1
gcc/ * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c. * builtin-types.def (BT_WORD): Make unsigned. (BT_FN_VOID_PTR_WORD_WORD_PTR): New. * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New. (BUILT_IN_EMUTLS_REGISTER_COMMON): New. * c-decl.c (grokdeclarator): Don't error if !have_tls. * c-parser.c (c_parser_omp_threadprivate): Likewise. * cgraph.c (decide_is_variable_needed): Look at force_output. Recurse for emulated tls. * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove checks redundant with decide_is_variable_needed. (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls. * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for emulated tls. * expr.c (emutls_var_address): New. (expand_expr_real_1): Expand emulated tls. (expand_expr_addr_expr_1): Likewise. * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common. * output.h (emutls_finish): Declare. * toplev.c (compile_file): Call it. * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the address before wrapping in CONST. * varasm.c (emutls_htab, emutls_object_type): New. (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New. (get_emutls_object_name, get_emutls_object_type): New. (get_emutls_init_templ_addr, emutls_decl): New. (emutls_common_1, emutls_finish): New. (assemble_variable): When emulating tls, swap decls; generate constructor for the emutls objects. (do_assemble_alias): When emulating tls, swap decl and target name. (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT for emulated tls. * emutls.c: New file. * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit tls_object for real tls. gcc/cp/ * decl.c (grokvardecl): Don't error if !have_tls. (grokdeclarator): Likewise. * parser.c (cp_parser_omp_threadprivate): Likewise. gcc/fortran/ * f95-lang.c (gfc_init_builtin_functions): Add __emutls_get_address and __emutls_register_common. * openmp.c (gfc_match_omp_threadprivate): Don't error if !have_tls. * trans-common.c (build_common_decl): Don't check have_tls. * trans-decl.c (gfc_finish_var_decl): Likewise. * types.def (BT_WORD, BT_FN_PTR_PTR): New. (BT_FN_VOID_PTR_WORD_WORD_PTR): New. gcc/testsuite/ * lib/target-supports.exp (check_effective_target_tls): Redefine to mean non-emulated tls. * gcc.dg/tls/alias-1.c: Remove tls requirement. * gcc.dg/tls/asm-1.c, gcc.dg/tls/debug-1.c, gcc.dg/tls/diag-1.c, gcc.dg/tls/diag-2.c, gcc.dg/tls/diag-3.c, gcc.dg/tls/diag-4.c, gcc.dg/tls/diag-5.c, gcc.dg/tls/init-1.c, gcc.dg/tls/nonpic-1.c, gcc.dg/tls/opt-10.c, gcc.dg/tls/opt-5.c, gcc.dg/tls/opt-6.c, gcc.dg/tls/opt-8.c, gcc.dg/tls/opt-9.c, gcc.dg/tls/pic-1.c, gcc.dg/tls/struct-1.c, gcc.dg/tls/trivial.c: Likewise. From-SVN: r117440
2006-09-21re PR debug/29132 (Mips exception handling broken.)Roger Sayle1-1/+1
2006-09-21 Roger Sayle <roger@eyesopen.com> PR debug/29132 * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label, dw_fde_current_label, to be the start of the function, i.e. the same value as dw_fde_begin. From-SVN: r117114
2006-09-13re PR debug/28980 (ICE in loc_descriptor_from_tree_1 with -g)Andrew Pinski1-0/+1
2006-09-13 Andrew Pinski <pinskia@physics.uc.edu> PR debug/28980 * dwarf2out.c (loc_descriptor_from_tree_1): Handle FUNCTION_DECL. 2006-09-13 Andrew Pinski <pinskia@physics.uc.edu> PR debug/28980 * gcc.c-torture/compile/debugvlafunction-1.c: New test. From-SVN: r116939
2006-09-12dwarf2out.c (file_table_last_lookup): Move this GC'd declaration outside of ↵Andrew Pinski1-2/+3
#ifdef DWARF2_DEBUGGING_INFO to fix... * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure on platforms that don't use dwarf for debug info. Co-Authored-By: Roger Sayle <roger@eyesopen.com> From-SVN: r116903
2006-09-12dwarf2out.c (dwarf_file_data): New.Geoffrey Keating1-218/+279
* dwarf2out.c (dwarf_file_data): New. (enum dw_val_class): Add dw_val_class_file. (struct dw_val_struct): Add val_file. (file_table): Change to a hash table. (file_table_emitted): Delete. (file_table_last_lookup_index): Delete. (emitcount): Delete. (last_emitted_file): New. (lookup_filename): Change prototype to return a struct dwarf_file_data. (init_file_table): Delete. (maybe_emit_file): Change prototype to take a struct dwarf_file_data. (AT_addr): Add comment. (add_AT_file): New. (AT_file): New. (get_AT_file): New. (print_die): Handle dw_val_class_file. (print_dwarf_line_table): Update for new file table structure. (attr_checksum): Do checksum a filename. (same_dw_val_p, same_attr_p): Do compare a filename. (size_of_die): Handle dw_val_class_file. (value_format): Likewise. (output_die): Likewise. Also, call maybe_emit_file here. (struct file_info): Constify filenames. Make file_idx a pointer to a struct dwarf_file_data. (struct dir_info): Constify directory names. Remove 'used' field. (struct file_name_acquire_data): New. (file_name_acquire): New. (output_file_names): Modify to handle new file data structures. (add_src_coords_attributes): Use add_AT_file. (add_call_src_coords_attributes): Likewise. (dwarf2out_imported_module_or_decl): Likewise. (gen_subprogram_die): Modify for new file data structures. (gen_variable_die): Likewise. (file_table_eq): New. (file_table_hash): New. (file_table_last_lookup): New. (lookup_filename): Rewrite to handle new file data structures. (maybe_emit_file): Rewrite to handle new file data structures. (dwarf2out_source_line): Always call lookup_filename and maybe_emit_file. (dwarf2out_init): Create file_table here. (prune_unused_types_walk_attribs): Don't call maybe_emit_file here. (file_table_relative_p): New. (dwarf2out_finish): Change detection of relative filenames to work with new file data structures. Move output_line_info call after debug_info output. From-SVN: r116873
2006-09-10dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.Roger Sayle1-0/+1
* dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc. Co-Authored-By: Nicolas Setton <setton@adacore.com> From-SVN: r116807
2006-09-07dwarf2out.c: Remove strange characters from comment above ↵Geoffrey Keating1-3/+3
dwarf2out_frame_debug_expr. * dwarf2out.c: Remove strange characters from comment above dwarf2out_frame_debug_expr. From-SVN: r116767
2006-09-02Revert this change:Geoffrey Keating1-23/+26
2006-03-17 Alexandre Oliva <aoliva@redhat.com> * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack pointer, instead of assuming it is possible to derive the correct args size from a call insn. From-SVN: r116659
2006-08-31re PR other/22313 (profiledbootstrap is broken on the mainline)Roger Sayle1-2/+13
PR other/22313 * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is NULL, otherwise use an advance_loc4 to adjust relative to the current label. (output_cfi) <DW_CFA_set_loc>: Update the current label. (dwarf2out_switch_text_section): Reset the current label to avoid using advance_loc4 over section boundaries. From-SVN: r116604
2006-08-22Index: gcc/ChangeLogGeoffrey Keating1-4/+7
2006-08-21 Geoffrey Keating <geoffk@apple.com> PR debug/28692 * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for complex values, nor for generic vector values. Index: gcc/testsuite/ChangeLog 2006-08-21 Geoffrey Keating <geoffk@apple.com> PR debug/28692 * gcc.dg/debug/const-1.c: New. * gcc.dg/debug/const-2.c: New. * gcc.dg/debug/dwarf2/const-1.c: New. * gcc.dg/debug/dwarf2/const-2.c: New. * gcc.dg/debug/dwarf2/const-2b.c: New. From-SVN: r116331
2006-08-09var-tracking.c (enum micro_operation_type): Add MO_COPY.Alexandre Oliva1-3/+0
* var-tracking.c (enum micro_operation_type): Add MO_COPY. (var_debug_decl): New function. (var_reg_set): Follow debug decl link. Add location even if reg is already known to hold some other variable. (var_mem_set): Follow debug decl link. (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug decl link. Delete other known locations of the variable part if requested. (var_reg_delete, var_mem_delete): Delete other known locations of the variable part if requested. (same_variable_part_p): New function. (add_stores): Select MO_COPY when appropriate. (vt_initialize): Handle it. (compute_bb_dataflow, emit_notes_in_bb): Likewise. Delete known locations for MO_SET and MO_CLOBBER. (find_variable_location_part): New function. (set_variable_part, delete_variable_part): Use it. (clobber_variable_part): New function. * dwarf2out.c (dwarf2out_var_location): Do not follow debug decl link. From-SVN: r116031
2006-08-02re PR debug/28063 (Dwarf no longer uses merged strings for DW_AT_comp_dir)Daniel Jacobowitz1-1/+1
gcc/ PR debug/28063 * dwarf2out.c (prune_unused_types_prune): Move call to prune_unused_types_update_strings to cover the parent DIE also. gcc/testuite/ PR debug/28063 * gcc.dg/debug/dwarf2/dwarf-merge.c: New test. * lib/target-supports.exp (get_compiler_messages): Add WANT_OUTPUT. Optionally return assembly text. Update callers. (check_no_compiler_messages): Update verbose messages. (check_no_messages_and_pattern): New. (check_effective_target_string_merging): New. From-SVN: r115874
2006-08-01re PR debug/23336 (enum constants not visible to gdb because of ↵Daniel Jacobowitz1-1/+5
-feliminate-unused-debug-types) gcc/ PR debug/23336 * c-typeck.c (build_external_type): Mark used enum types. * dwarf2out.c (dwarf2out_abstract_function): Save and restore cfun also. (gen_subprogram_die): Whitespace fix. gcc/cp/ PR debug/23336 * pt.c (tsubst_copy_and_build): Mark used enum types. * semantics.c (finish_id_expression): Likewise. gcc/testsuite/ PR debug/23336 * lib/gcc-dg.exp (gcc-dg-debug-runtest): Suppress new tests at -g1. * gcc.dg/debug/enum-1.c, g++.dg/debug/enum-1.C, g++.dg/debug/enum-2.C: New. From-SVN: r115853
2006-05-19langhooks.h (struct lang_hooks): Add dwarf_name language hook.Nicolas Setton1-4/+2
* langhooks.h (struct lang_hooks): Add dwarf_name language hook. * langhooks.c (lhd_dwarf_name): New function. * langhooks-def.h (lhd_dwarf_name): Declare. (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name. * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook. * ada/misc.c (gnat_dwarf_name): New function. (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name. From-SVN: r113905
2006-05-14dwarf2out.c (dbx_reg_number): Check return value from LEAF_REG_REMAP and ↵Nick Clifton1-2/+14
only use it if it is valid. * dwarf2out.c (dbx_reg_number): Check return value from LEAF_REG_REMAP and only use it if it is valid. (multiple_reg_loc_descriptor): Likewise. From-SVN: r113756
2006-04-26dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there are no branches.Geoffrey Keating1-3/+15
* dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there are no branches. From-SVN: r113267