* libiberty/cplus-dem.c
(libiberty_demanglers): new table for demangle styles
(cplus_demangle_set_style): New function for setting style
(cplus_demangle_name_to_style): New function to translate name
* include/demangle.h
(libiberty_demanglers): new table for different styles
(cplus_demangle_set_style): New function for setting style
(cplus_demangle_name_to_style): New function to translate name
Co-Authored-By: Jason Merrill <jason@casey.cygnus.com>
From-SVN: r33525
Chris Demetriou [Fri, 28 Apr 2000 21:46:33 +0000 (21:46 +0000)]
configure.in (sparc-hal-solaris2*): protect [] glob from my expansion.
* configure.in (sparc-hal-solaris2*): protect [] glob from
my expansion.
(mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
rather than hard-coded constants in target_cpu_default2.
* configure: Regenerate.
calls.c (combine_pending_stack_adjustment_and_call): Return the adjustment; don't do the stack adjust.
* calls.c (combine_pending_stack_adjustment_and_call): Return the
adjustment; don't do the stack adjust.
(expand_call): Call compute_argument_block_size right before
allocating the block; update comment; don't do alignment sanity
checking for sibling call; use args_size instead of
unadjusted_args_size before args_size is adjusted. Use
combine_pending_stack_adjustment_and_call to compute stack adjust
for must_preallocate case.
* expr.c (push_block): Remove shadow `temp' in inner scope.
Co-Authored-By: Jan Hubicka <jh@suse.cz>
From-SVN: r33516
Alex Samuel [Fri, 28 Apr 2000 06:18:14 +0000 (06:18 +0000)]
Makefile.in (timevar.o): Depend on flags.h.
* Makefile.in (timevar.o): Depend on flags.h.
* timevar.c (unused_stack_instances): New variable.
(timevar_push): Take a timevar_stack_def from
unused_stack_instances if available.
(timevar_pop): Push the popped timevar_stack_def onto
unused_stack_instances.
(TIMEVAR_ENABLE): New macro.
(timevar_def): Make standalone a 1-bit field. Add field used.
(get_time): Rename parameter to now. Return after clearing it if
not TIMEVAR_ENABLE.
(init_timevar): Do nothing if not TIMEVAR_ENABLE.
(timevar_pop): Likewise.
(timevar_stop): Likewise.
(timevar_push): Likewise. Mark the timing variable as used.
(timevar_start): Likewise.
(timevar_print): Do nothing if not TIMEVAR_ENABLE. Don't print
timevars that were never used.
basic_string.h: include <bits/atomicity.h> instead of <atomicity.h>, and use the uglified names.
2000-04-26 Nathan C. Myers <ncm@cantrip.org>
* bits/basic_string.h: include <bits/atomicity.h> instead
of <atomicity.h>, and use the uglified names.
* config/cpu/*/atomicity.h: replace with bits/atomicity.h;
uglify names, eliminate dependence on <inttypes.h>.
* src/Makefile.in, src/Makefile.am: refer to correct place
for atomicity.h header.
Benjamin Kosnik [Fri, 28 Apr 2000 02:50:55 +0000 (02:50 +0000)]
[multiple changes]
2000-04-26 Nathan C. Myers <ncm@cantrip.org>
* bits/basic_string.h: include <bits/atomicity.h> instead
of <atomicity.h>, and use the uglified names.
* config/cpu/*/atomicity.h: replace with bits/atomicity.h;
uglify names, eliminate dependence on <inttypes.h>.
* src/Makefile.in, src/Makefile.am: refer to correct place
for atomicity.h header.
2000-04-25 Steven King <sxking@uswest.net>
* bits/basic_string.h: Fix syntax error.
2000-04-25 Benjamin Kosnik <bkoz@redhat.com>
* acinclude.m4 (GLIBCPP_CHECK_MATH_SUPPORT): Improve checks for
USE_LONG_DOUBLE.
(GLIBCPP_ENABLE_DEBUG): If alpha, use -gdwarf-2.
* math/Makefile.am (EXTRA_LONG_DOUBLE_yes): Add all the long
versions to this as copysignl is needed anyway for these targets.
* math/Makefile.in: Regenerate.
* bits/streambuf.tcc (streambuf::xsgetn): Tweak.
* bits/fstream.tcc (underflow): Cast to libio types.
* bits/basic_file.h (seekoff): Fixes for alpha: use __c_streamoff.
* config/c_io_libio.cc (seekoff): And here.
Alex Samuel [Fri, 28 Apr 2000 00:59:40 +0000 (00:59 +0000)]
Makefile.in (OBJS): Add timevar.o.
hangeLog:
* Makefile.in (OBJS): Add timevar.o.
(toplev.o): Depend on timevar.h.
(ggc-simple.o): Likewise.
(ggc-page.o): Likewise.
(timevar.o): New rule.
(timevar.h): New rule.
* timevar.h: New file.
* timevar.c: Likewise.
* timevar.def: Likewise.
* toplev.h (gc_time, parse_time, varconst_time): Remove.
* toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
throughout.
(TIMEVAR): Remove macro.
(gc_time, parse_time, varconst_time, integration_time, jump_time,
cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
flow_time, combine_time, regmove_time, sched_time,
local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
sched2_time, dbr_sched_time, reorder_blocks_time,
rename_registers_time, shorten_branch_time, stack_reg_time,
to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
all_time): Remove.
(compile_file): Don't initialize time variables. Call
init_timevar and start TV_TOTAL timer. Call timevar_print instead
of many calls to print_time.
(rest_of_compilation): Add timing for reload_cse_regs.
(get_run_time): Removed to timevar.c.
(print_time): Likewise.
(get_run_time): Implement using TV_TOTAL time variable.
(print_time): Get total run time from get_run_time.
* ggc-page.c (ggc_collect): Push and pop TV_GC instead of
computing elapsed time explicitly.
* ggc-simple.c (ggc_collect): Likewise.
(gc_time): Remove declaration.
cp/ChangeLog:
* lex.c (my_get_run_time): Remove.
(init_filename_times): Use get_run_time instead of my_get_run_time.
(check_newline): Likewise.
(dump_time_statistics): Likewise.
* decl2.c (finish_file): Push and pop timevar TV_VARCONST instead
of computing elapsed time explicitly.
Jan Hubicka [Thu, 27 Apr 2000 12:57:35 +0000 (12:57 +0000)]
* loop.c (load_mems) Don't use hard registers for the hoisting.
* unroll.c (unroll_loop): Avoid overflow in the n_iterations
calculation; rename const_equiv array in the preconditioning code
from loop_unroll to loop_unroll_precondition
* flow.c (struct propagate_block_info): Remove new_dead, new_live;
add new_set.
(propagate_one_insn): Clear it. Don't update reg_live here.
(init_propagate_block_info): Update for pbi member changes.
(free_propagate_block_info): Likewise.
(mark_set_1): Know that zero_extract, sign_extract, and
strict_low_part don't kill their argument. Alter hard subregs.
Update new_set for non-CLOBBER sets. Update reg_live.
(find_auto_inc): Update reg_live, not new_dead.
(mark_used_reg): Update reg_live, not new_live. Examine new_set
to determine if the reg in question was set this insn. Only update
reg info with PROP_REG_INFO.
rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
* rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
* genconfig.c (main): Set all HAVE_foo to 1.
* graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
flow.c (update_life_info): Consider blocks null to mean the universal set.
* flow.c (update_life_info): Consider blocks null to mean the
universal set.
(calculate_global_regs_live): Likewise.
(life_analysis): Do that instead of collecting all_blocks.
flow.c (mark_set_1): New arguments code and flags; update all callers.
* flow.c (mark_set_1): New arguments code and flags; update all
callers. Track regno_first and regno_last; do HARD_REGNO_NREGS
test in one place. Tidy flags tests. Don't bias REG_N_REFS by
loop_depth when optimizing for size. Do new_dead update after
emitting REG_UNUSED notes. Merge mark_set_reg code.
(mark_set_reg): Remove.
(propagate_one_insn): Use mark_set_1 for call-clobbered registers;
arrange to not emit REG_UNUSED notes.
flow.c (propagate_one_insn): Break out from propagate_block.
* flow.c (propagate_one_insn): Break out from propagate_block.
(init_propagate_block_info): Likewise.
(free_propagate_block_info): Likewise.
(propagate_block): Use them. Export.
* basic-block.h: Declare them all.
Jakub Jelinek [Thu, 27 Apr 2000 00:43:33 +0000 (02:43 +0200)]
<<<<<<< ChangeLog
2000-04-26 Jakub Jelinek <jakub@redhat.com>
* gcconfig.h (SPARC): Define ALIGNMENT to 8 for 64bit SPARC.
(SPARC/LINUX): Use GC_SysVGetDataStart instead of LINUX_DATA_START
- sparc glibc does not provide it.
(SAVE_CALL_CHAIN, ASM_CLEAR_CODE): Define on sparc*-linux*.
Make STACKBOTTOM depend on the wordsize.
* os_dep.c (GC_SysVGetDataStart): Compile in on sparc*-linux*.
(struct frame): Declare on sparc*-linux*.
(GC_save_callers): Bias the frame pointers if needed (sparc64).
* mach_dep.c (GC_save_regs_in_stack): Optimize on sparc32.
Implement on sparc64.
(GC_clear_stack_inner): Implement on sparc64.
* gc_priv.h (GC_test_and_set): Implement for sparc.
* linux_threads.c (GC_suspend_handler, GC_push_all_stacks): Use
* config/cpu: Atomicity cleanups.
* config/cpu/alpha/bits: New directory.
* config/cpu/arm/bits: New directory.
* config/cpu/generic/bits: New directory.
* config/cpu/i386/bits: New directory.
* config/cpu/powerpc/bits: New directory.
* config/cpu/sparc/sparc32/bits: New directory.
* config/cpu/sparc/sparc32/bits: New directory.
* config/cpu/*/bits: Move atomicity.h files to here.
* dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
is the primary DIE for a member function.
(gen_decl_die): Call set_decl_origin_self here.
* dwarfout.c (output_decl): And here.
* integrate.c (output_inline_function): Not here.
Don't clear DECL_INLINE until after calling rest_of_compilation.
(set_decl_origin_self): No longer static.
* tree.h: Add prototype.
* toplev.c (note_deferral_of_defined_inline_function): Only write
out abstract instance for actual inlines.
* cp/decl.c (finish_function): Don't play games with DECL_INLINE.
aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires INCLUDES to search and does not provide any of its own.
* aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
INCLUDES to search and does not provide any of its own. Also it
now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
parameters. Also it does not call AC_DEFINE.
(gcc_AC_NEED_DECLARATIONS): Likewise. Also this macro now calls
AC_DEFINE and provides for automatic entries for autoheader.
(gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
* configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
so we can pass -I flags and include gansidecl.h/system.h in this
test.
* acconfig.h: Delete all NEED_DECLARATION_* entries.
* configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
for these macros. Clean up spacing and linewraps.
* configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
for these macros. Clean up spacing and linewraps.
* cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
flags, not CPP_OPEN_PAREN.
* cpplex.c (expand_token_space, init_token_list,
cpp_free_token_list): Put the dummy token at list->tokens[-1].
(_cpp_lex_line, _cpp_lex_file): token list is 0-based.