Matt Austern [Fri, 12 Mar 2004 17:19:34 +0000 (17:19 +0000)]
Enabled linkonce support for Darwin.
* src/powerpc/darwin.S: Fix EH information so it corresponds to
changes in EH format resulting from addition of linkonce support.
* src/powerpc/darwin_closure.S: Likewise.
Matt Austern [Fri, 12 Mar 2004 17:09:03 +0000 (17:09 +0000)]
Enabled linkonce support for Darwin.
* target.h (struct gcc_target): New target hook, unwind_label.
* target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
* output.h (default_emit_unwind_label): New function.
* default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
(TARGET_USES_WEAK_UNWIND_INFO): New target macro.
(TARGET_SUPPORTS_HIDDEN): New target macro.
* dwarf2out.c (struct dw_fde_struct): Add field for function decl
that corresponds to this FDE.
(FRAME_BEGIN_LABEL): Allow target to override default label.
(output_call_frame_info): If FDEs are linknonce, then use extra
indirection for FDE encoding, output a label for each FDE, and
output an empty label for each function without an FDE.
(dwarf2out_begin_prologue): Set up decl field when creating an FDE.
* varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
decls with DECL_ONE_ONLY set, if that macro is defined.
(make_decl_one_only): Don't use DECL_COMMON if we're compiling
for a SUPPORTS_ONE_ONLY target.
* config/darwin-protos.h (darwin_unique_section): Declare.
(darwin_asm_named_section): Likewise.
(darwin_section_type_flags): Likewise.
(darwin_non_lazy_pcrel): Likewise.
(darwin_emit_unwind_label): Likewise.
(darwin_make_decl_one_only): Likewise.
* config/darwin.c (machopic_finish): Get rid of tweak that
eliminate stubs for symbols that are defined.
(darwin_encode_section_info): Don't treat weak functions as defined.
(darwin_make_decl_one_only): Define.
(darwin_asm_named_section): Likewise.
(darwin_section_type_flags): Likewise.
(darwin_unique_section): Likewise.
(darwin_emit_unwind_label): Likewise.
(darwin_non_lazy_pcrel): Likewise.
(darwin_asm_output_dwarf_delta): Difference between two labels is
local only if both labels are local.
* config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
(ASM_MAKE_LABEL_LINKONCE): Likewise.
(TARGET_SUPPORTS_HIDDEN): Likewise.
(TARGET_USES_WEAK_UNWIND_INFO): Likewise.
(TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
(FRAME_BEGIN_LABEL): Likewise.
(ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
(ASM_DECLARE_FUNCTION_NAME): Likewise.
(darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
(TARGET_ASM_UNIQUE_SECTION): Define.
(EH_FRAME_SECTION_NAME): Define.
(EH_FRAME_SECTION_ATTR): Likewise.
(ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
(TARGET_ASM_NAMED_SECTION): Likewise.
(TARGET_SECTION_TYPE_FLAGS): Likewise.
* doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
TARGET_ASM_EMIT_UNWIND_LABEL.
* cp/decl2.c (maybe_make_one_only): Look at
TARGET_EXPLICIT_INSTANTIATION_ONE_ONLY when deciding whether
to make an explicit instantiation weak.
* cp/method.c (use_thunk): Make sure we call comdat_linkage
when appropriate.
* cp/pt.c (do_type_instantiation): On systems where weak symbols
don't go in a static archive's TOC, explicit instantiation of a
class must imply *explicit* instantiation of its memeber.
Michael Koch [Fri, 12 Mar 2004 08:15:54 +0000 (08:15 +0000)]
[multiple changes]
2004-03-12 Ito Kazumitsu <ito.kazumitsu@hitachi-cable.co.jp>
* java/net/URI.java (toURL): Implemented.
2004-03-12 Ito Kazumitsu <ito.kazumitsu@hitachi-cable.co.jp>
* java/net/URI.java
(URI_REGEXP) updated to contain scheme specific part.
(SCHEME_SPEC_PART_GROUP) new constant.
(AUTHORITY_GROUP, PATH_GROUP, QUERY_GROUP, FRAGMENT_GROUP)
updated to make room for SCHEME_SPEC_PART_GROUP.
(parseURI) parse scheme specific part.
(resolve, isAbsolute, isOpaque, getRawSchemeSpecificPart,
getSchemeSpecificPart, getAuthority, getUserInfo, getPath,
getQuery, getFragment) implemented.
2004-03-12 Dalibor Topic <robilad@kaffe.org>
* libraries/javalib/java/net/URI.java
partially implemented using java.util.regex.
(URI_REGEXP) new constant. Used to parse URIs.
(SCHEME_GROUP) new constant representing index of scheme group
in parsed URI.
(AUTHORITY_GROUP) new constant representing index of authority
group in parsed URI.
(PATH_GROUP) new constant representing index of path group in
parsed URI.
(QUERY_GROUP) new constant representing index of query group in
parsed URI.
(FRAGMENT_GROUP) new constant representing index of fragment
group in parsed URI.
(getURIGroup) new static utility method.
(parseURI) implemented.
(quote) stub for new static utility method.
(quoteAuthority) stub for new static utility method.
(quoteHost) stub for new static utility method.
(quotePath) stub for new static utility method.
(quoteUserInfo) stub for new static utility method.
(URI) implemented.
(create) don't throw URISyntaxException. Implemented.
(toString) implemented.
* config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
(alpha_lookup_xfloating_lib_func): Use them, return rtx.
(alpha_emit_xfloating_arith): Update to match.
(alpha_emit_xfloating_compare): Likewise.
(alpha_emit_xfloating_cvt): Likewise.
(alpha_emit_xfloating_libcall): Take already built symbol,
mark call const.
* config/alpha/alpha.md (extendsftf2, extenddftf2): Take
op1 in a register.
Dhruv Matani [Fri, 12 Mar 2004 03:28:12 +0000 (03:28 +0000)]
ballocator_doc.txt: New file.
2004-03-11 Dhruv Matani <dhruvbird@HotPOP.com>
* docs/html/ext/ballocator_doc.txt: New file.
* include/Makefile.am (ext_headers): Add
${ext_srcdir}/bitmap_allocator.h .
* include/Makefile.in: Regenerate (by hand, since I didn't have
automake de jure on hand).
* include/ext/bitmap_allocator.h: New file.
* testsuite/performance/20_util/allocator/list_sort_search.cc: New test.
* testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise.
* testsuite/performance/20_util/allocator/producer_consumer.cc: Add
test for the bitmap_allocator<>.
* testsuite/performance/20_util/allocator/insert.cc: Likewise.
* testsuite/performance/20_util/allocator/insert_insert.cc: Likewise.
* testsuite/performance/20_util/allocator/map_thread.cc: Likewise.
Ulrich Weigand [Thu, 11 Mar 2004 22:53:52 +0000 (22:53 +0000)]
re PR target/14262 (Structure size computed wrong)
PR target/14262
* calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
defined, pass small BLKmode values in registers in the low-order part.
Andreas Tobler [Thu, 11 Mar 2004 19:59:49 +0000 (20:59 +0100)]
Makefile.am (AUTOMAKE_OPTIONS): Set them.
2004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
Paolo Bonzini <bonzini@gnu.org>
* Makefile.am (AUTOMAKE_OPTIONS): Set them.
Remove VPATH. Remove rules for object files. Remove multilib support.
(AM_CCASFLAGS): Add.
* configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
(AC_PREREQ): Bump version to 2.59.
(AC_INIT): Fill with version info and bug address.
(ORIGINAL_LD_FOR_MULTILIBS): Remove.
(AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
De-precious CC so that the right flags are passed down to multilibs.
(AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
(AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
(AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
* configure: Rebuilt.
* aclocal.m4: Likewise.
* Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
* fficonfig.h.in: Likewise.
Co-Authored-By: Paolo Bonzini <bonzini@gnu.org>
From-SVN: r79341
Roger Sayle [Thu, 11 Mar 2004 17:45:03 +0000 (17:45 +0000)]
fold-const.c (negate_expr_p): We can optimize -((int)X>>C) where C is an integer constant one bit less than...
* fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
-((int)X>>C) where C is an integer constant one bit less than the
size of X into (unsigned)X>>C. Similarly for unsigned->signed.
(negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
* simplify-rtx.c (simplify_unary_operation): Also implement the
above transformations at the RTL level.
* gcc.c-torture/execute/20040311-1.c: New test case.
Michael Koch [Thu, 11 Mar 2004 15:50:34 +0000 (15:50 +0000)]
[multiple changes]
2004-03-11 Dalibor Topic <robilad@kaffe.org>
* java/text/AttributedString.java
(addAttribute(AttributedCharacterIterator.Attribute,Object,int,int)):
Use HashMap instead of Hashtable since value can be null, and
you can not store a null value in a Hashtable.
2004-03-11 Guilhem Lavaux <guilhem@kaffe.org>
* java/text/AttributedStringIterator.java
(getAllAttributesKey): Return only keys concerned
by the current iterator.
(getAttributes): Use strict inequality for
end_index.
Guilhem Lavaux [Thu, 11 Mar 2004 14:41:47 +0000 (14:41 +0000)]
BufferedInputStream.java (marktarget): New field for max mark limit.
2004-03-11 Guilhem Lavaux <guilhem@kaffe.org>
* java/io/BufferedInputStream.java (marktarget): New field for max
mark limit.
(CHUNKSIZE): New constant for incremental mark buffer allocation.
(mark): Use new fields.
(read): Likewise.
(read(byte[],int,int)): Likewise.
(skip): Likewise.
(refill): Likewise.
Andreas Schwab [Thu, 11 Mar 2004 14:25:44 +0000 (14:25 +0000)]
ffi.c (ffi_prep_incoming_args_UNIX): Get floating point arguments from fp registers only for the first 8 parameter slots.
* src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
arguments from fp registers only for the first 8 parameter slots.
Don't convert a float parameter when passed in memory.
Michael Koch [Thu, 11 Mar 2004 13:35:45 +0000 (13:35 +0000)]
natFileChannelEcos.cc: Totally reworked.
2004-03-11 Michael Koch <konqueror@gmx.de>
* gnu/java/nio/channels/natFileChannelEcos.cc: Totally reworked.
This file was was just copied form java/io/natFileDescriptorEcos.cc
and never changed to compile correctly.
Michael Koch [Thu, 11 Mar 2004 08:44:18 +0000 (08:44 +0000)]
ClasspathFontPeer.java: Fixed javadoc to be correct xhtml.
2004-03-11 Michael Koch <konqueror@gmx.de>
* gnu/java/awt/peer/ClasspathFontPeer.java:
Fixed javadoc to be correct xhtml.
* gnu/java/awt/peer/gtk/GtkArgList.java
(add): Use Boolean.valueOf() instead of new Boolean().
mips.md: Use move_operand in splitters for 64-bit moves.
* config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
(movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
(*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
(*movsf_mips16, *movdf_mips16): Name unnamed patterns. Use
move_operand as source predicate in all cases.
(*movdi_32bit): Renamed from movdi_internal. Remove 'F' constraint.
Test reg_or_0_operand. Use move_operand as source predicate.
(*movdi_64bit): Renamed from movdi_internal2. Test reg_or_0_operand.
(*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
(*movsi_internal): Renamed from movsi_internal. Test reg_or_0_operand.
(movhi, movqi, movsf, movdf): Use mips_legitimize_move.
(*movhi_internal): Renamed from movhi_internal. Test reg_or_0_operand.
Use move_operand as source predicate. Remove 'K' constraint.
(*movqi_internal): Likewise movqi_internal.
(*movsf_hardfloat): Renamed from movsf_internal1. Test
reg_or_0_operand. Use move_operand as source predicate.
(*movsf_softfloat): Likewise movsf_internal2.
(*movdf_hardfloat_64bit): Likewise movsf_internal1a.
(*movdf_hardfloat_32bit): Likewise movsf_internal1b.
(*movdf_softfloat): Likewise movdf_internal2.
* config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
for DImode if !TARGET_64BIT.
(mips_legitimize_move): Simplify accordingly.
Josef Zlomek [Thu, 11 Mar 2004 08:05:14 +0000 (09:05 +0100)]
var-tracking.c (struct variable_def): Added field refcount.
PR/14362
* var-tracking.c (struct variable_def): Added field refcount.
(variable_htab_free): Decrease the refcount and delete variable
only if there are no more references.
(unshare_variable): New function.
(vars_copy_1): Increase refcount instead of copying the variable.
(variable_union): Share the variables where possible, unshare
the variables if needed.
(variable_different_p): Return false if var1 and var2 are
the same structure.
(variable_was_changed): Init the refcount of new variable.
(set_frame_base_location): Unshare variable if needed.
(set_variable_part): Init the refcount of new variable.
Unshare the variables if needed.
(delete_variable_part): Unshare the variables if needed.
(emit_notes_for_differences_1): Init the refcount of new variable.
(vt_add_function_parameters): Do not add function parameters to
IN set of ENTRY_BLOCK_PTR because it is unused anyway.
(vt_initialize): Do not add frame_base_decl to IN set of
ENTRY_BLOCK_PTR because it is unused anyway.
Paolo Bonzini [Thu, 11 Mar 2004 05:01:17 +0000 (05:01 +0000)]
(top level)
2004-03-08 Paolo Bonzini <bonzini@gnu.org>
PR ada/14131
Move language detection to the top level.
* configure.in: Find default values for the tools as
soon as possible. Disable ada if GNAT is not found.
Emit error message about missing languages. Expand
--enable-languages=all for the gcc subdirectory.
(config)
2004-03-08 Paolo Bonzini <bonzini@gnu.org>
PR ada/14131
Move language detection to the top level.
* acx.m4 (ACX_PROG_GNAT): New macro, moved here
from the gcc subdirectory.
(gcc)
2004-03-08 Paolo Bonzini <bonzini@gnu.org>
PR ada/14131
Move language detection to the top level.
* configure.ac: Remove code to detect languages,
it now lives exclusively in the top level.
* aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
top level, renamed to ACX_PROG_GNAT.
(gcc/ada)
2004-03-08 Paolo Bonzini <bonzini@gnu.org>
PR ada/14131
Move language detection to the top level.
* config-lang.in: Build by default.
Uros Bizjak [Wed, 10 Mar 2004 22:36:22 +0000 (23:36 +0100)]
optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
2004-03-10 Uros Bizjak <uros@kss-loka.si>
* optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
(exp10_optab, exp2_optab): Define corresponding macros.
* optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
* genopinit.c (optabs): Implement exp10_optab and exp2_optab
using exp10?f2 and exp2?f2 patterns.
* builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
(expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
* config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
Jerry Quinn [Wed, 10 Mar 2004 06:50:13 +0000 (06:50 +0000)]
re PR libstdc++/3247 (valarray private member)
2004-03-10 Jerry Quinn <jlquinn@optonline.net>
PR 3247
* include/bits/gslice_array.h (gslice_array()): Make public.
(operator=(gslice_array)): Make public. Implement.
* include/bits/indirect_array.h (indirect_array()): Make public.
* include/bits/mask_array.h (mask_array()): Make public.
(operator=(mask_array)): Make public. Implement.
* include/bits/valarray_array.tcc (__valarray_copy):
Comment. Add versions for gslice_array and mask_array.
* testsuite/26_numerics/valarray_subset_assignment.cc: New test.
Zack Weinberg [Tue, 9 Mar 2004 23:39:16 +0000 (23:39 +0000)]
* c-decl.c (last_function_parms, last_function_parm_tags)
(last_function_parm_others, current_function_parms)
(current_function_parm_tags, current_function_parm_others):
Delete.
(ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
New macros.
(grokdeclarator): For function definitions, save the arg-info
block from the declarator in DECL_ARGUMENTS.
(grokparms): Do not write to last_function_parm*. Use ARG_INFO_*
macros to operate on arg-info block. Can assume ARG_INFO_PARMS
contains only PARM_DECLs. Improve diagnostics.
(get_parm_info): Use ARG_INFO_* macros. Improve comments and
diagnostics. Disable some expensive checks if not ENABLE_CHECKING.
(store_parm_decls_newstyle): Take the function to operate on,
and an arg-info block, as arguments; don't get anything from
current_function_* globals.
(store_parm_decls_oldstyle): Likewise.
(store_parm_decls): Pass fndecl and its arg-info block down to
store_parm_decls_newstyle/oldstyle. Send functions with empty
argument lists through store_parm_decls_newstyle to reduce
overhead.
(pushdecl): Comment on the problems with the call to copy_node.
Clear DECL_ARGUMENTS of the old node after copying it, if it
is an arg-info block instead of a chain of decls.
(start_function): Do not manipulate current_function_parm* or
last_function_parm*.
* testsuite/gcc.dg/noncompile/incomplete-2.c: Move dg-error to
proper line.
Roger Sayle [Tue, 9 Mar 2004 23:15:15 +0000 (23:15 +0000)]
ifcvt.c (noce_try_sign_mask): New function to transform "x = (y < 0) ? z ...
* ifcvt.c (noce_try_sign_mask): New function to transform
"x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
(noce_process_if_block): Call noce_try_sign_mask.
* gcc.c-torture/execute/20040309-1.c: New test case.
Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu>
From-SVN: r79205
Michael Koch [Tue, 9 Mar 2004 21:02:52 +0000 (21:02 +0000)]
2004-03-09 Michael Koch <konqueror@gmx.de>
* java/lang/Thread.java
(runnable): Moved around.
(daemon): Renamed from daemon_flag.
(contextClassLoader): Renamed from context_class_loader.
(Thread): Reordered constructors.
(activeCount): Use group directly.
(destroy): Make it a java method. Throw NoSuchMethodError like Sun does.
(holdsLock): Reworked javadoc.
(setDaemon): Reworked.
* java/lang/natThread.cc
(destroy): Removed.
Roger Sayle [Tue, 9 Mar 2004 17:06:25 +0000 (17:06 +0000)]
simplify-rtx.c (simplify_const_relational_operation): New function renamed from simplify_relational_operation.
* simplify-rtx.c (simplify_const_relational_operation): New function
renamed from simplify_relational_operation.
(simplify_relational_operation): Change prototype to accept an
additional mode argument. Call simplify_const_relational_operation.
(simplify_gen_relational): Update simplify_relational_operation call.
(simplify_ternary_operation): Update simplify_relational_operation
subroutine call to use simplify_const_relational_operation instead.