Loren J. Rittle [Fri, 30 Jan 2004 08:24:27 +0000 (08:24 +0000)]
check_performance: Only compile with $THREAD_FLAG when test is marked to require it.
* scripts/check_performance: Only compile with $THREAD_FLAG
when test is marked to require it. Allow multiple
compilations/executions of marked tests.
* testsuite/testsuite_performance.h (report_performance):
Report dynamic thread support status.
(report_header): Likewise.
* testsuite/performance/allocator.cc: Stabilize iteration
count. Support more allocators. Mark each allocator test to
run and report independently.
* testsuite/performance/allocator_map_thread.cc: Likewise.
* testsuite/performance/allocator_thread.cc: Likewise.
Mohan Embar [Fri, 30 Jan 2004 06:33:43 +0000 (06:33 +0000)]
BufferedReader.java (sbuf): New field.
* java/io/BufferedReader.java (sbuf): New field.
(readLine): Use String.valueOf instead of new String() as per
Per Bothner's suggestion. Use instance sbuf field instead of a
local StringBuffer instance.
* java/io/InputStreamReader.java (read(char[],int,int)): Pass the
caller's buffer to refill().
(read(void)): Pass our internal work buffer to refill if our
input queue is empty.
(refill): Changed return type to int. Use the specified buffer
instead of our work buffer as per Bryce McKinlay's suggestion.
Return the number of characters read or -1 for EOF.
Stephen M. Webb [Fri, 30 Jan 2004 03:43:00 +0000 (03:43 +0000)]
c_locale.h: Change ::malloc() to new char[].
2004-01-29 Stephen M. Webb <stephen.webb@bregmasoft.com>
* config/local/generic/c_locale.h: Change ::malloc() to new char[].
* config/local/gnu/c_locale.h: Change ::malloc() to new char[].
* include/bits/stl_tempbuf.h: Convert _Temporary_buffer to use
std::get_temporary_buffer() instead of duplicating its code.
Update to C++STYLE conventions.
* include/std/std_memory.h (get_temporary_buffer): Use ::operator
new() instead of std::malloc().
(return_temporary_buffer): Use ::operator delete() instead of
std::free().
Roger Sayle [Thu, 29 Jan 2004 17:13:21 +0000 (17:13 +0000)]
re PR java/13824 (gcj SEGV with simple .java program)
PR java/13824
* tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
recursion.
Kim Ho [Thu, 29 Jan 2004 14:34:31 +0000 (14:34 +0000)]
2004-01-29 Kim Ho <kho@redhat.com>
* gnu/java/awt/peer/gtk/GtkFramePeer.java
(gtkLayoutSetVisible): New method
(setMenuBar): Hide layout before setting MenuBar
and reshow it after.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
(gtkLayoutSetVisible): Hide or show the Gtk Layout.
Giovanni Bajo [Thu, 29 Jan 2004 04:23:37 +0000 (04:23 +0000)]
parser.c (cp_parser_template_id): Parse tentatively `[:' after a template name as it was `<::' (digraph typo).
* parser.c (cp_parser_template_id): Parse tentatively `[:' after a
template name as it was `<::' (digraph typo).
(cp_parser_nth_token_starts_template_argument_list_p): New function.
(cp_parser_id_expression): Use it.
(cp_parser_nested_name_specifier_opt): Likewise.
(cp_parser_template_name): Likewise.
(cp_parser_class_name): Likewise.
(cp_lexer_get_preprocessor_token): Use c_lex_with_flags.
Giovanni Bajo [Thu, 29 Jan 2004 04:19:01 +0000 (04:19 +0000)]
c-lex.c (c_lex): Rename to...
* c-lex.c (c_lex): Rename to...
(c_lex_with_flags): Add new parameter to get CPP flags.
(c_lex): Thunk to c_lex_with_flags while keeping the old interface.
* c-pragma.h (c_lex_with_flags): Declare.
Kazu Hirata [Thu, 29 Jan 2004 01:31:15 +0000 (01:31 +0000)]
frv-protos.h: Remove the prototype for frv_expand_builtin_saveregs.
* config/frv/frv-protos.h: Remove the prototype for
frv_expand_builtin_saveregs.
* config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
(frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
STRUCT_VALUE_REGNUM.
(frv_expand_builtin_saveregs): Make it static.
(frv_struct_value_rtx): New.
* config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
Mark Mitchell [Thu, 29 Jan 2004 01:29:03 +0000 (01:29 +0000)]
re PR c++/13736 (Parser confused on compound casts)
PR c++/13736
* parser.c (cp_parser_direct_declarator): Do not prevent
backtracking inside a parenthesized declarator.
(cp_parser_parameter_declaration): Fix typo in comment.
PR c++/13736
* g++.dg/parse/cast2.C (main): New test.
Jan Hubicka [Thu, 29 Jan 2004 00:34:09 +0000 (01:34 +0100)]
re PR c++/12850 (memory consumption for heavy template instantiations tripled since 3.3)
PR c++/12850
* cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
initial pointers.
* cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
for functions that will be only inlined.
(cgraph_mark_function_to_output): Likewise.
(cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
do not clear function body.
* tree-optimize.c (clear_decl_rtl): Use decl_function_context.
(tree_rest_of_compilation): Reorganize the logic releasing function
body to use callgraph datastructure.
Zack Weinberg [Wed, 28 Jan 2004 22:09:27 +0000 (22:09 +0000)]
* config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
(cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
match_operand expressions so that all match_dups appear
lexically after their corresponding match_operands.
Kazu Hirata [Wed, 28 Jan 2004 22:00:26 +0000 (22:00 +0000)]
h8300.c (WORD_REG_USED): Use HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
* config/h8300/h8300.c (WORD_REG_USED): Use
HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
(compute_saved_regs): Likewise.
(h8300_expand_prologue): Likewise. Allocate locals after
saving registers.
(h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
of FRAME_POINTER_REGNUM. Deallocate locals before saving
registers.
(h8300_initial_elimination_offset): Adjust for the new frame
layout, which swaps flips the order of locals and saved
registers.
* config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
(HARD_FRAME_POINTER_REGNUM): New.
(ELIMINABLE_REGS): Add an elimination rule from
FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
(REGISTER_NAMES): Add fp.
* config/h8300/h8300.md (FP_REG): Change to 11.
(HFP_REG): New.
Zack Weinberg [Wed, 28 Jan 2004 18:13:28 +0000 (18:13 +0000)]
ia64.c (ia64_split_tmode, [...]): Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a scratch pointer.
2004-01-28 Zack Weinberg <zack@codesourcery.com>
Jim Wilson <wilson@specifixinc.com>
* config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
scratch pointer.
(ia64_secondary_reload_class): Delete case GR_REGS.
* config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
Do not allocate a scratch register.
(reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
Stefan Olsson [Wed, 28 Jan 2004 17:50:34 +0000 (17:50 +0000)]
mt_allocator.h: Replaced all malloc() calls with operator new().
2004-01-28 Stefan Olsson <stefan@snon.net>
* include/ext/mt_allocator.h: Replaced all malloc() calls with
operator new(). Added support for the env variable
GLIBCXX_FORCE_NEW (this required the _S_init call to be the first
one in allocate() as well). Fix typos.
James E Wilson [Wed, 28 Jan 2004 08:17:55 +0000 (08:17 +0000)]
encode-2.m (main): New local string.
* objc.dg/encode-2.m (main): New local string. Set depending on
sizeof long. Use in sscanf call.
* objc.dg/encode-3.m (main): New local string. Set depending on
sizeof long. Use in scan_initial call.
fp-bit.c (pack_d): When using paired doubles to implement a long double...
* config/fp-bit.c (pack_d): When using paired doubles to implement
a long double, round the high part separately.
(unpack_d): Fix the case in which the high part is a power of two
and the low part is a nonzero value of the opposite sign.
Ulrich Weigand [Wed, 28 Jan 2004 00:14:00 +0000 (00:14 +0000)]
s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
* config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
* config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
frame if !TARGET_BACKCHAIN.
* config/s390/s390.md ("allocate_stack"): Use pattern only if
TARGET_BACKCHAIN.
* doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
Zack Weinberg [Tue, 27 Jan 2004 22:48:11 +0000 (22:48 +0000)]
ia64.c (ia64_function_arg): When placing HFAs in integer registers...
* ia64.c (ia64_function_arg): When placing HFAs in integer
registers, do not special case the mode used for complex
types. Do not advance int_regs until the current register
is full.
Devang Patel [Tue, 27 Jan 2004 20:36:02 +0000 (12:36 -0800)]
Makefile.in (dwarf2out.o): Depend on input.h
2004-01-27 Devang Patel <dpatel@apple.com>
* Makefile.in (dwarf2out.o): Depend on input.h
* dbxout.c (dbx_debug_hooks): Add new empty hook for
imported_module_or_decl.
(xcoff_debug_hooks): Same.
* sdbout.c (sdb_debug_hooks): Same.
* vmsdbgout.c (vmsdbg_debug_hooks): Same.
* debug.c (do_nothing_debug_hooks): Same.
(debug_nothing_tree_tree): New function.
* debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
* dwarf2out.c: Include input.h.
(dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
(remove_child_TAG): New function.
(dwarf_tag_name): Handle DW_TAG_imported_module.
(gen_subprogram_die): Equate decl number to declaration die. Do not
remove all children dies while reusing declaration die for definition.
Instead, selectively remove only formal parameters.
(gen_variable_die): Equate variable decl to declaration die.
(gen_field_die): Equate field decl to line number.
(force_namespace_die): Replace it with ...
(force_decl_die): ... this.
(force_type_die): New function.
(setup_namespace_context): Replace use of force_namespace_die() with
force_decl_die().
(gen_namespace_die): Same.
(dwarf2out_imported_module_or_decl): New function.
testsuite:
* g++.dg/debug/namespace1.C: New test.
cp:
* name-lookup.c: Include "debug.h"
(do_namespace_alias): Invoke debug_hooks to emit debug info
for namespace alias.
(do_local_using_decl): Invoke debug_hooks to emit debug info
for using decl.
(do_class_using_decl): Same.
(do_toplevel_using_decl): Same.
(do_using_directive): Same.
(cp_emit_debug_info_for_using): New function.
* Make-lang.in (cp/parser.o): Depend on debug.h
(cp/name-lookup.o): Same.
Bob Wilson [Tue, 27 Jan 2004 20:24:59 +0000 (20:24 +0000)]
xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG on CQImode and CHImode incoming arguments in register a7.
* config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
on CQImode and CHImode incoming arguments in register a7.
(function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
* config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
* config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
xtensa_copy_incoming_a7 before reload.
J"orn Rennecke [Tue, 27 Jan 2004 19:54:42 +0000 (19:54 +0000)]
coverage.c (get_coverage_counts): Give a different message if flag_guess_branch_prob is set.
* coverage.c (get_coverage_counts): Give a different message
if flag_guess_branch_prob is set.
* predict.c (counts_to_freqs): Return an int.
(estimate_bb_frequencies): If counts_to_freqs returns zero,
calculate estimates.
Kim Ho [Tue, 27 Jan 2004 19:29:57 +0000 (19:29 +0000)]
2004-01-27 Kim Ho <kho@redhat.com>
* gnu/java/awt/peer/gtk/GtkFramePeer.java
(removeMenuBarPeer): Remove MenuBarPeer argument.
* gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java
(dispose): Call native method.
* java/awt/Frame.java (setMenuBar): Create and remove
MenuBar peers only if the Frame has a peer.
(addNotify): Create the MenuBar peer if one exists.
(removeNotify): Remove MenuBar peer if one exists.
* java/awt/Menu.java: Fix imports.
(addNotify): Don't use full class name.
(removeNotify): Call removeNotify on all children.
* java/awt/MenuBar.java (removeNotify): Call
removeNotify on all children.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
(removeMenuBarPeer): Remove MenuBarPeer argument.
Iterate through children to find the Frame's MenuBar.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c
New file.
(dispose): Remove references to the MenuComponent.
Kim Ho [Tue, 27 Jan 2004 16:39:45 +0000 (16:39 +0000)]
GtkFramePeer.java (moveLayout): New method.
2004-01-26 Kim Ho <kho@redhat.com>
* gnu/java/awt/peer/gtk/GtkFramePeer.java (moveLayout): New
method.
(setMenuBar): Shift the Gtk layout up/down by the MenuBar
height and let the Layout Managers readjust anything that
needs to move.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
(moveLayout): New method. Shift everything in the Gtk
layout in the Y direction by an offset.