Mark Mitchell [Tue, 31 Aug 2004 20:29:28 +0000 (20:29 +0000)]
hooks.c (hook_bool_void_true): New function.
* hooks.c (hook_bool_void_true): New function.
* hooks.h (hook_bool_void_true): Declare.
* target-def.h (TARGET_CXX): Add
TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
* target.h (struct cxx): Add key_method_may_be_inline.
* config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
function.
(TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
* config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
__THUMB_INTERWORK.
* class.c (key_method): Rename to ...
(determine_key_method): ... this.
(finish_struct_1): Adjust accordingly.
* cp-tree.h (key_method): Declare.
* decl2.c (maybe_emit_vtables): Determine the key method here if
it has not already been done.
Tobias Schlüter [Tue, 31 Aug 2004 19:49:33 +0000 (21:49 +0200)]
unit.c: Separate copyright years by ','.
* io/unit.c: Separate copyright years by ','.
(compare, insert_unit, delete_unit, is_internal_unit, close_units):
Remove blank line in beginning of function.
(get_unit): Simplify code.
Stephane Carrez [Tue, 31 Aug 2004 19:49:14 +0000 (21:49 +0200)]
re PR target/15334 (ICE building libgcc/./_mulvsi3.o for m68hc11-unknown-elf)
PR target/15334
* config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
because it breaks the 32-bit shift patterns that rely on a match_dup.
Tobias Schlüter [Tue, 31 Aug 2004 16:52:41 +0000 (18:52 +0200)]
re PR fortran/17244 (gfortran fatal error: gfc_todo: Not Implemented: Returning derived types)
fortran/
PR fortran/17244
* trans-types.c (gfc_return_by_reference): Remove TODO error,
add comment pointing out possible issue WRT compatibility with g77.
testsuite/
PR fortran/17244
* gfortran.dg/func_derived_1.f90: New test.
Tobias Schlüter [Tue, 31 Aug 2004 14:06:48 +0000 (16:06 +0200)]
trans-decl.c, [...]: Replace all occurences of 'gfc_strlen_type_node' by 'gfc_charlen_type_node'.
fortran/
* trans-decl.c, trans-expr.c, trans-io.c, trans-types.c: Replace
all occurences of 'gfc_strlen_type_node' by
'gfc_charlen_type_node'.
* trans-types.h: Same. Also update comment accordingly.
libgfortran/
* libgfortran.h: Replace 'gfc_strlen_type' by
'gfc_charlen_type'. Update comment accordingly.
* intrinsics/args.c, intrinsics/env.c, io/io.h, io/transfer.c:
Replace all occurences of 'gfc_strlen_type' by 'gfc_charlen_type'.
Paolo Bonzini [Tue, 31 Aug 2004 09:27:00 +0000 (09:27 +0000)]
Made fixincludes a toplevel build module.
toplevel:
2004-08-31 Paolo Bonzini <bonzini@gnu.org>
* Makefile.def (build_modules): Add fixincludes.
(dependencies): Make gcc depend on fixincludes.
* configure.in (build_tools): Add fixincludes.
(build_configdirs): Always include build_libs.
* Makefile.in: Regenerate.
* configure: Regenerate.
contrib:
2004-08-04 Paolo Bonzini <bonzini@gnu.org>
* gcc_update: Add fixincludes.
fixincludes:
2004-08-31 Paolo Bonzini <bonzini@gnu.org>
* .cvsignore: New.
* Makefile.in: From gcc/fixinc/Makefile.in, making it fully
autoconfiscated.
* configure.ac: New.
* config.h.in: Generate.
* configure: Generate.
* aclocal.m4: New.
* fixlib.h: Remove inclusions of gcc files.
* system.h: New.
Other files copied from gcc/fixinc.
gcc:
2004-08-31 Paolo Bonzini <bonzini@gnu.org>
* Makefile.in (build_subdir): New substitution.
(fixinc.sh): Simplify heavily since fixincludes is already built.
(stmp-fixinc): Depend on specs.ready.
(install-mkheaders): Use new location of fixincludes.
(clean): Do not descend into fixinc.
(FORBUILD): Replace with ../$(build_subdir).
* configure.ac (build_subdir): Substitute.
(FORBUILD): Do not set.
(all_outputs): Remove fixinc/Makefile.
(default commands): Do not create links in fixinc.
* mkfixinc.sh: New, from fixinc/mkfixinc.sh without
the fixincludes configuration steps and substituting
@FIXINCL@ in fixinc.in.
* fixinc.in: New, from fixinc/fixincl.sh.
* config/mips/mips.md (fcond): New code macro and attribute.
(sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
(seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
(sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
Andrew Pinski [Tue, 31 Aug 2004 00:29:04 +0000 (00:29 +0000)]
re PR rtl-optimization/13987 (compile time regression while compile fold-const.i)
2004-08-30 Andrew Pinski <apinski@apple.com>
PR rtl-opt/13987
* config.host (use_long_long_for_widest_fast_int): New, default is
off.
(ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
* configure.ac: If use_long_long_for_widest_fast_int, then
define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
* configure: Regenerate.
* config.in: Regenerate.
* hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
New: widest integer type supported efficiently in hardware for the
host.
* sbitmap.h (SBITMAP_ELT_BITS): Define based on
HOST_BITS_PER_WIDEST_FAST_INT.
(SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
* hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
HOST_WIDEST_FAST_INT
instead of HOST_WIDE_INT.
(HARD_REG_SET_LONGS): Likewise.
(UHOST_BITS_PER_WIDE_INT): Likewise.
Change the checks for the fast cases to be based on
HOST_BITS_PER_WIDES_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
* gcc.dg/funcdef-storage-1.c: New.
* gcc.c-torture/compile/920625-2.c: Don't use 'static' to declare
an extern function in local scope.
* gcc.c-torture/execute/20010605-1.c: Don't use 'static inline' to
declare an 'auto inline' function in local scope.
* gcc.dg/20011130-1.c: Likewise.
* gcc.c-torture/execute/nest-stdar-1.c: Don't use 'static' to declare
an 'auto' function in local scope.
* gcc.dg/20021014-1.c: Likewise.
* gcc.dg/20030331-2.c: Likewise.
expr.c (array_ref_element_size): Force aligned_size back to sizetype.
* expr.c (array_ref_element_size): Force aligned_size back to
sizetype.
(component_ref_field_offset): Similarly for aligned_offset.
* tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
low-bound, element-size, field-offset fields rather than
computed values.
* c-tree.h (struct language_function): Add arg_info element.
* c-decl.c (current_function_arg_info): New.
(grokdeclarator, store_parm_decls): Use it instead of
DECL_ARGUMENTS.
(c_push_function_context, c_pop_function_context): Save and
restore it.
Tobias Schlüter [Mon, 30 Aug 2004 19:08:41 +0000 (21:08 +0200)]
gfortran.h (gfc_namespace): Add new field is_block_data.
fortran/
* gfortran.h (gfc_namespace): Add new field is_block_data.
* parse.c (accept_statement): Remove special handling for BLOCK DATA.
(parse_block_data): Record BLOCK DATA name, set is_block_data field.
* trans.c (gfc_generate_code): Handle BLOCK DATA units.
* trans.h (gfc_generate_block_data): Add prototype.
* trans-decl.c (gfc_generate_block_data): New function.
testsuite/
* gfortran.dg/blockdata_1.f90: New test.
c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a COMPONENT_REF to pointer arithmetic.
* c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
COMPONENT_REF to pointer arithmetic.
* varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
constant "c" as a valid constant initializer. Allow narrowing of
differences against the same base object, for any base object.
* config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
(mips_fp_condition): New enum.
(mips_fp_conditions): New array.
(print_fcc_operand): Delete.
(print_operand): Remove %V, %v and %Q. Redefine %Z so that it prints
the operand and comma if and only if ISA_HAS_8CC. Add %Y.
(builtin_description): Add "cond" field.
(DIRECT_BUILTIN): Initialize it.
(CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
into INSN and CODE. Initialize the "cond" field.
(CMP_BUILTINS): Update accordingly.
(mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
(mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
mips_fp_condition as argument. Make it the final operand of the
comparison instruction.
(mips_expand_builtin): Update accordingly.
* config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
(UNSPEC_C, UNSPEC_CABS): New constants. Shuffle others to fill
the gaps.
* config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
Don't use the 'Q' operand prefix; just print the operand normally.
(mips_cabs_*, mips_c_*): Delete, replacing with...
(mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
patterns. Split the 4s versions into 2 ps patterns after reload.
fold-const.c (tree_expr_nonzero_p): Use get_base_address before assuming an ADDR_EXPR is non-null.
* fold-const.c (tree_expr_nonzero_p): Use get_base_address before
assuming an ADDR_EXPR is non-null.
cp/
* class.c (fixed_type_or_null): Use get_base_address before
assuming an ADDR_EXPR is non-null.
Anthony Green [Mon, 30 Aug 2004 15:43:03 +0000 (15:43 +0000)]
Makefile.am: Add frv support.
2004-08-30 Anthony Green <green@redhat.com>
* Makefile.am: Add frv support.
* Makefile.in, testsuite/Makefile.in: Rebuilt.
* configure.ac: Read configure.host.
* configure, aclocal.m4: Rebuilt.
* configure.host: New file. frv-elf needs libgloss.
* include/ffi.h.in: Force ffi_closure to have a nice big (8)
alignment. This is needed to frv and should harm the others.
* include/ffi_common.h (ALIGN_DOWN): New macro.
* src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
Paolo Bonzini [Mon, 30 Aug 2004 13:32:57 +0000 (13:32 +0000)]
Makefile.in (machname.h): Remove.
2004-08-30 Paolo Bonzini <bonzini@gnu.org>
* fixinc/Makefile.in (machname.h): Remove.
(fixincl.x): Do not pass $@ to genfixes.
* fixinc/genfixes: Remove code to produce machname.h.
* fixinc/fixincl.sh: Move it here instead.
* fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
instead check if pz_mn_name_pat is NULL. Make mn_get_regexps
return a bool indicating whether pz_mn_name_pat is NULL.
* fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
Declare extern C variables for the ENV_TABLE.
* fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
instead use the result of mn_get_regexps.
* fixinc/fixtests.c: Likewise.
Casey Marshall [Mon, 30 Aug 2004 13:06:48 +0000 (13:06 +0000)]
Author e-mail updated for all files.
2004-08-30 Casey Marshall <csm@gnu.org>
Author e-mail updated for all files.
* gnu/java/security/OID.java (equals): Test if the aurgment is an
instance of OID.
(compareTo): Use `equals'.
* gnu/java/security/der/BitString.java (equals): Test if the
argument is an instance of BitString.
* gnu/java/security/der/DERReader.java: Removed NIO imports. Made
class final. Made fields private.
(<init>): New constructor.
(skip): New method.
(makeString): Made static; don't use NIO.
(fromIso88591, fromUtf16Be, fromUtf8): New methods.
* gnu/java/security/der/DERWriter.java: Fixed imports.
(writeString): Don't use NIO.
(toIso88591, toUtf16Be, toUtf8): New methods.
* gnu/java/security/der/DERValue.java: Formatting changes only.
* gnu/java/security/der/DER.java: Likewise.
Paolo Carlini [Mon, 30 Aug 2004 11:33:54 +0000 (11:33 +0000)]
re PR libstdc++/17215 ([3.4 only] __basic_file<char>::close ignores errors)
2004-08-30 Paolo Carlini <pcarlini@suse.de>
Kenneth C. Schalk <ken@xorian.net>
PR libstdc++/17215
* config/io/basic_file_stdio.cc (__basic_file<char>::close()):
Check the return value of fclose/sync, loop on EINTR.
(__basic_file<char>::sys_open): Likewise, for sync.
Co-Authored-By: Kenneth C. Schalk <ken@xorian.net>
From-SVN: r86756
* config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
(UNSPEC_{RSQRT,RECIP}[12]): New constants.
(UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
* config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
(mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
Richard Earnshaw [Sun, 29 Aug 2004 22:10:44 +0000 (22:10 +0000)]
flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not just the codes, call reversed_comparison_code ().
* flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
just the codes, call reversed_comparison_code ().
(ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
(not_reg_cond): Use reversed_comparison_code.
(and_reg_cond): Likewise.
* ifcvt.c (cond_exec_process_if_block): Likewise.
* doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
Richard Earnshaw [Sun, 29 Aug 2004 21:07:37 +0000 (21:07 +0000)]
sched-deps.c (get_condition): Rewrite using jump support functions.
* sched-deps.c (get_condition): Rewrite using jump support functions.
Use reversed_comparison_code.
(conditions_mutex_p): Use reversed_comparison_code.
* config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
(mips_function_type): Move to mips.c.
* config/mips/mips.c (mips_builtin_type): New enum.
(builtin_description): Replace code and ftype with builtin_type
and function_type.
(DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
(MOVTF_BUILTINS, CMP_BUILTINS): New macros.
(CODE_FOR_mips_abs_ps): Define.
(mips_bdesc): Use new macros.
(mips_expand_builtin): Use builtin_type. Update calls to subroutines.
(mips_init_builtins): Use the mips_bdesc[] index as the function code.
(mips_expand_builtin_direct): New function.
(mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
builtin. Replace boolean parameter with builtin_type.
(mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
(mips_expand_4s_compare_builtin): Delete, replacing with...
(mips_expand_builtin_compare): ...this new function.
AbstractCollection.java, [...]: Added additional exceptions to documentation...
2004-08-29 Andrew John Hughes <gnu_andrew@member.fsf.org>
* java/util/AbstractCollection.java, java/util/AbstractList.java,
java/util/AbstractMap.java, java/util/AbstractSequentialList.java,
java/util/ArrayList.java, java/util/Arrays.java,
java/util/BitSet.java, java/util/Calendar.java,
java/util/Collection.java, java/util/ListIterator.java,
java/util/Map.java, java/util/SortedSet.java:
Added additional exceptions to documentation, along
with some additions and corrections.
* config/mips/mips.md (divide_condition): New mode attribute.
(div[sd]f3, *div[sd]f3): Use it. Redefine using :SCALARF.
(sqrt[sd]f3): Redefine using SCALARF.
(*recip[sd]f3, *rsqrt<mode>[ab]): Likewise. Name formerly unnamed
patterns.
* config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
* config/mips/mips.c (mips_prepare_builtin_arg): New function.
(mips_prepare_builtin_target): New function.
(mips_expand_builtin): Use them. Update calls to subroutines.
(mips_expand_ps_cond_move_builtin): Use the new functions. Replace
cmp_choice with a boolean argument to select between movt and movf.
Take the comparison's icode as an argument, not the function's fcode.
(mips_expand_compare_builtin): New function. Rename existing function
to mips_expand_scalar_compare_builtin.
(mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
(mips_expand_ps_compare_builtin): Use the new functions. Take the
comparison's icode as an argument, not the builtin's fcode.
* config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
(mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
registers are false and -1 if all registers are true.
(mips_expand_ps_compare_builtin): Likewise CCV2. Use subregs for
MIPS_CMP_UPPER and MIPS_CMP_LOWER.
* config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
(bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
(bc1any2t, bc1any2f): Likewise CCV2.
(bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
* config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
* config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
UNSPEC rather than an IF_THEN_ELSE.
* config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
mips_cond_move_tf_ps by name.
Chao-ying Fu [Sun, 29 Aug 2004 09:19:34 +0000 (09:19 +0000)]
mips-modes.def (V2SF, CCV2, CCV4): New modes.
2004-08-29 Chao-ying Fu <fu@mips.com>
James E Wilson <wilson@specifixinc.com>
* config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
8 byte size and alignment. Give CCV4 16 byte size and alignment.
* config/mips/mips-ps-3d.md: New file.
* config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
(mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
(mips_output_move): Emit "mov.ps" for V2SFmode.
(mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
MODE_VECTOR_FLOAT.
(override_options): Check if TARGET_MIPS3D and there was an explicit
!TARGET_PAIRED_SINGLE_FLOAT. Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
TARGET_PAIRED_SINGLE_FLOAT is true. Check if the ISA supports
TARGET_PAIRED_SINGLE_FLOAT. Allow MODE_VECTOR_FLOAT in fp registers,
and allow CCV2 and CCV4 to occupy two and four CC registers.
(print_fcc_operand): New function.
(print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC. Modify
%Z to call print_fcc_operand.
(mips_function_value): Handle MODE_VECTOR_FLOAT.
(mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
(mips_vector_mode_supported_p): New function.
(mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
(builtin_description): New struct.
(mips_bdesc): New array of struct builtin_description.
(mips_expand_builtin, mips_init_builtins,
mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
functions.
* config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
(TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
(TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
(TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
"-mips3d", and "-mno-mips3d".
(ASM_SPEC): Map -mips3d to -mips3d in gas.
(EXTRA_CONSTRAINT_Y): New macro.
(EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT. Add new
multi-letter constraint 'Y'.
(CONSTRAINT_LEN): New macro.
(enum mips_builtins): New for MIPS builtin functions.
(enum mips_function_type): New for the types of MIPS builtin functions.
(enum mips_cmp_choice): New for the MIPS comparison builtin functions.
* config/mips/mips.md: New constants for paired single and MIPS-3D
instructions. Include the new mips-ps-3d.md file.
(addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
movv2sf_hardfloat_64bit): New named patterns.
(madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
sdxc1_v2sf_di): New unnamed patterns.
* config/mips/predicates.md (const_0_operand, const_1_operand): Add
const_vector support.
(const_0_or_1_operand): New predicate.
* doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
Co-Authored-By: James E Wilson <wilson@specifixinc.com>
From-SVN: r86713
Paolo Carlini [Sun, 29 Aug 2004 09:04:33 +0000 (09:04 +0000)]
locale_facets.tcc (time_get<>::_M_extract_via_format, case 'S'): Allow for at least one leap-second (as per C99...
2004-08-29 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.tcc (time_get<>::_M_extract_via_format,
case 'S'): Allow for at least one leap-second (as per C99, 7.23.1
and 7.23.3.5), two if !_GLIBCXX_USE_C99.
* testsuite/22_locale/time_get/get_time/char/4.cc: New.
* testsuite/22_locale/time_get/get_time/wchar_t/4.cc: Likewise.
* Makefile.in (OBJS-common): Add tree-ssa-propagate.o
(tree-ssa-propagate.o): New rule.
(GTFILES): Add tree-ssa-propagate.c.
* tree-flow.h (struct stmt_ann_d): Remove field
in_ccp_worklist.
* tree-ssa-propagate.c: New file.
* tree-ssa-propagate.h: New file.
* tree-ssa-ccp.c: Re-write to use the routines from
tree-ssa-propagate.c.