re PR rtl-optimization/12142 (-fnon-call-exceptions generates incorrect code)
PR optimization/12142
* cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the
uses of the register in the SET_SRC. Remove unnecessary argument.
* pa.c (legitimize_pic_address): Before reload, use a scratch register
for the intermediate result in loading the address of a SYMBOL_REF.
Set the MEM_NOTRAP_P flag for the MEM. Add a REG_EQUAL to the insn
which loads the SYMBOL_REF address.
Michael Koch [Wed, 8 Oct 2003 15:30:21 +0000 (15:30 +0000)]
2003-10-08 Michael Koch <konqueror@gmx.de>
* java/util/prefs/Preferences.java
(defaultFactoryClass): Fixed class name.
(getFactory): Create instance of class returned by Class.forName(),
reformated code.
* javax/swing/table/AbstractTableModel.java
(getColumnName): Simplified code much. Thanks to Yannick Boogaerts who
helped stop pulling my hair on this +1 then -1 tricky thing!
Timo Kokkonen [Wed, 8 Oct 2003 12:29:27 +0000 (15:29 +0300)]
re PR bootstrap/12490 (buffer overflow in scan-decls.c)
PR bootstrap/12490
* scan-decls.c (MAX_EXTERN_C_BRACES): New preprocessor constant
to define the size of the extern_C_braces array. Set it to 200.
(scan_decls): Abort when extern_C_braces_length is out-of-bounds.
Co-Authored-By: Eric Botcazou <ebotcazou@libertysurf.fr>
From-SVN: r72224
Carlo Wood [Wed, 8 Oct 2003 12:24:08 +0000 (12:24 +0000)]
Makefile.in (gengtype-lex.c): flex 2.5.4[a] doesn't understand a space after the -o option.
* Makefile.in (gengtype-lex.c): flex 2.5.4[a] doesn't understand
a space after the -o option. flex 2.5.31 understands both, with
and without the space. Removed that space.
Giovanni Bajo [Wed, 8 Oct 2003 00:42:56 +0000 (02:42 +0200)]
cp_tree.h: Added TFF_NO_FUNCTION_ARGUMENTS.
* cp_tree.h: Added TFF_NO_FUNCTION_ARGUMENTS.
* error.c (dump_function_decl): Use it to skip the dump of the
arguments.
(dump_expr): When dumping a declaration found within an
expression, always set TFF_NO_FUNCTION_ARGUMENTS
in the flags.
Zack Weinberg [Tue, 7 Oct 2003 20:06:37 +0000 (20:06 +0000)]
errors.c: Don't include coretypes.h or tm.h.
* errors.c: Don't include coretypes.h or tm.h.
(trim_filename): Use IS_DIR_SEPARATOR.
* Makefile.in: Update dependencies of errors.o and
$(BUILD_PREFIX_1)errors.o.
function.c (pad_to_arg_alignment): Take STACK_POINTER_OFFSET into account when aligning arguments.
2003-10-07 Geoffrey Keating <geoffk@apple.com>
* function.c (pad_to_arg_alignment): Take STACK_POINTER_OFFSET into
account when aligning arguments.
* calls.c (STACK_POINTER_OFFSET): Move default from here ...
* defaults.h (STACK_POINTER_OFFSET): ... to here.
* config/sparc/sparc.h (STACK_BOUNDARY): Add comment about how
it's wrong when TARGET_ARCH64 && TARGET_STACK_BIAS.
(SPARC_STACK_BOUNDARY_HACK): Define.
* config/rs6000/rs6000.c (function_arg): On non-SVR4 systems,
arrange for vector parameters to varargs functions to be passed
in both memory and GPRs when appropriate.
(rs6000_va_arg): Vector arguments passed in memory are 16-byte
aligned.
* arm.md (cmpsi2_addneg): New ARM pattern. Add peephole2 to generate
it.
(cbranchne_decr1): New Thumb pattern.
* arm.c (arm_addimm_operand): New insn predicate.
* arm-protos.h: Add a prototype for it.
* arm.h (PREDICATE_CODES): Add it.
Dorit Naishlos [Tue, 7 Oct 2003 08:18:42 +0000 (08:18 +0000)]
sched-int.h (sched_info): New field sched_max_insns_priority.
* sched-int.h (sched_info): New field
sched_max_insns_priority.
* sched-rgn.c (init_ready_list): Add invocations to
targetm.sched.adjust_priority.
(sched_max_insns_priority): Init new field.
* sched-ebb.c (sched_max_insns_priority): Init new field.
* haifa-sched.c (set_priorities): Set
sched_info->sched_max_insns_priority.
* config/rs6000/rs6000.h:
(rs6000_sched_restricted_insns_priority_str): Support new
flag -mprioritize-restricted-insns.
(DEFAULT_RESTRICTED_INSNS_PRIORITY): Define.
* config/rs6000/rs6000.c (is_dispatch_slot_restricted): New
function.
(rs6000_adjust_priority): Change priority of restricted
insns, using above new function and new flag.
* doc/invoke.texi (-mprioritize-restricted-insns): Document
new option.
Zack Weinberg [Tue, 7 Oct 2003 07:25:32 +0000 (07:25 +0000)]
expr.c (cmpstr_optab, [...]): New.
* expr.c (cmpstr_optab, cmpmem_optab): New.
* genopinit.c: Initialize them.
* optabs.h: Declare them.
* optabs.c (init_optabs): Clear them.
(prepare_cmp_insn): Use cmpstr_optab and cmpmem_optab to find
block memory compare insns, not conditional chains. Restructure
the fallback generation of a call to memcmp/bcmp for better
readability.
Zack Weinberg [Tue, 7 Oct 2003 02:23:42 +0000 (02:23 +0000)]
* libfuncs.h (LTI_extendsfdf2, LTI_extendsfxf2, LTI_extendsftf2)
(LTI_extenddfxf2, LTI_extenddftf2, LTI_truncdfsf2, LTI_truncxfsf2)
(LTI_trunctfsf2, LTI_truncxfdf2, LTI_trunctfdf2, LTI_floatsisf)
(LTI_floatdisf, LTI_floattisf, LTI_floatsidf, LTI_floatdidf)
(LTI_floattidf, LTI_floatsixf, LTI_floatdixf, LTI_floattixf)
(LTI_floatsitf, LTI_floatditf, LTI_floattitf, LTI_fixsfsi, LTI_fixsfdi)
(LTI_fixsfti, LTI_fixdfsi, LTI_fixdfdi, LTI_fixdfti, LTI_fixxfsi)
(LTI_fixxfdi, LTI_fixxfti, LTI_fixtfsi, LTI_fixtfdi, LTI_fixtfti)
(LTI_fixunssfsi, LTI_fixunssfdi, LTI_fixunssfti, LTI_fixunsdfsi)
(LTI_fixunsdfdi, LTI_fixunsdfti, LTI_fixunsxfsi, LTI_fixunsxfdi)
(LTI_fixunsxfti, LTI_fixunstfsi, LTI_fixunstfdi, LTI_fixunstfti)
(extendsfdf2_libfunc, extendsfxf2_libfunc, extendsftf2_libfunc)
(extenddfxf2_libfunc, extenddftf2_libfunc, truncdfsf2_libfunc)
(truncxfsf2_libfunc, trunctfsf2_libfunc, truncxfdf2_libfunc)
(trunctfdf2_libfunc, floatsisf_libfunc, floatdisf_libfunc)
(floattisf_libfunc, floatsidf_libfunc, floatdidf_libfunc)
(floattidf_libfunc, floatsixf_libfunc, floatdixf_libfunc)
(floattixf_libfunc, floatsitf_libfunc, floatditf_libfunc)
(floattitf_libfunc, fixsfsi_libfunc, fixsfdi_libfunc, fixsfti_libfunc)
(fixdfsi_libfunc, fixdfdi_libfunc, fixdfti_libfunc, fixxfsi_libfunc)
(fixxfdi_libfunc, fixxfti_libfunc, fixtfsi_libfunc, fixtfdi_libfunc)
(fixtfti_libfunc, fixunssfsi_libfunc, fixunssfdi_libfunc)
(fixunssfti_libfunc, fixunsdfsi_libfunc, fixunsdfdi_libfunc)
(fixunsdfti_libfunc, fixunsxfsi_libfunc, fixunsxfdi_libfunc)
(fixunsxfti_libfunc, fixunstfsi_libfunc, fixunstfdi_libfunc)
(fixunstfti_libfunc): Delete.
* optabs.h (struct optab_handlers): Break out of struct optab.
(struct convert_optab, convert_optab, enum convert_optab_index,
convert_optab_table, sext_optab, zext_optab, trunc_optab,
sfix_optab, ufix_optab, sfixtrunc_optab, ufixtrunc_optab,
sfloat_optab, ufloat_optab): New.
(set_conv_libfunc): Prototype.
(GEN_FCN): Use C90 indirect call syntax, remove unnecessary cast.
(trunc_optab): Renamed btrunc_optab.
* builtins.c (expand_builtin_mathfn): Update to match.
* optabs.c (extendtab, fixtab, fixtrunctab, floattab): Delete.
(convert_optab_table, new_convert_optab, init_convert_optab)
(init_interclass_conv_libfuncs, init_intraclass_conv_libfuncs)
(set_conv_libfunc): New.
(can_extend_p, gen_extend_insn, can_fix_p, can_float_p)
(expand_float, expand_fix): Use new conversion optabs,
not old insn code tables or long chains of ifs.
(init_optabs): No need to clear old insn code tables.
Initialize the new optabs, not the old libfunc array entries.
Don't handle FIXUNS_TRUNC_LIKE_FIX_TRUNC here.
* genopinit.c: Initialize conversion optabs, not the
former insn code tables. Remove unnecessary casts.
Handle FIXUNS_TRUNC_LIKE_FIX_TRUNC here.
* expr.c (convert_move): Remove redundant check that
to_real==from_real. Use the conversion optabs instead
of long chains of tests of modes. Move partial-integer-mode
interconversion above all integer conversion. Do not recurse
on a value forced into a register in the original mode.
* config/gofast.h, config/frv/frv.c, config/ia64/ia64.c
* config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c
* config/sparc/sparc.c: Use set_conv_libfunc to adjust entries
in new conversion optabs; do not reference the old libfunc
array entries. No need to include libfuncs.h.
Roger Sayle [Mon, 6 Oct 2003 23:18:31 +0000 (23:18 +0000)]
i386.c (ix86_expand_setcc): Annotate the floating point comparison sequence with a REG_EQUAL note that...
* config/i386/i386.c (ix86_expand_setcc): Annotate the floating
point comparison sequence with a REG_EQUAL note that describes
the comparison's semantics.
Devang Patel [Mon, 6 Oct 2003 22:25:19 +0000 (15:25 -0700)]
Fix -feliminate-dwarf2-dups ICE.
gcc
* dwarf2out.c (is_main_source): Remove variable.
(dwarf2out_start_source_file): Do not check is_main_source.
Do not reset is_main_source.
(dwarf2out_init): Do not initialize is_main_source.
testsuite
* gcc.dg/debug/dwarf2-3.h: New test.
* gcc.dg/debug/dwarf2-3.c: New test case for -feliminate-dwarf2-dups.
* config/mips/mips.h (PREDICATE_CODES): Add stack_operand.
* config/mips/mips.c (stack_operand): New predicate.
* config/mips/mips.md: Use it for the destination of mips16 insns
that store $31.
Andrew Pinski [Mon, 6 Oct 2003 13:35:36 +0000 (13:35 +0000)]
+2003-10-06 Andrew Pinski <apinski@apple.com> + + * config/darwin.c...
+2003-10-06 Andrew Pinski <apinski@apple.com>
+
+ * config/darwin.c (machopic_non_lazy_ptr_name): Fix off by one
+ error in calculating the length of the string.
+ (machopic_stub_name): Likewise.
Roger Sayle [Mon, 6 Oct 2003 12:48:49 +0000 (12:48 +0000)]
optabs.c (prepare_float_lib_cmp): Attach a REG_EQUAL note describing the return value of the comparison libcall...
* optabs.c (prepare_float_lib_cmp): Attach a REG_EQUAL note
describing the return value of the comparison libcall to the
REG_RETVAL instruction of the emitted sequence.
Eric Botcazou [Mon, 6 Oct 2003 08:52:23 +0000 (10:52 +0200)]
re PR rtl-optimization/11637 (g++ invalid assembly with -fnon-call-exceptions)
2003-10-06 Eric Botcazou <ebotcazou@libertysurf.fr>
PR optimization/11637
* combine.c (adjust_for_new_dest): New function to adjust the
notes and LOG_LINKS when the dest of an insn has changed.
(try_combine): Use it when deleting the first insn of a two-insn
parallel or splitting a two-load parallel.
Andrew Pinski [Mon, 6 Oct 2003 06:11:14 +0000 (06:11 +0000)]
darwin.c (machopic_non_lazy_ptr_name): Fix off by one errors in memcpy destinations.
2003-10-05 Andrew Pinski <apinski@apple.com>
* config/darwin.c (machopic_non_lazy_ptr_name): Fix off by one
errors in memcpy destinations.
(machopic_stub_name): Likewise.
Chris Demetriou [Sun, 5 Oct 2003 23:57:56 +0000 (23:57 +0000)]
mips.md (*divsf3): Move description of SB-1 F2 erratum from here to...
2003-10-05 Chris Demetriou <cgd@broadcom.com>
* config/mips/mips.md (*divsf3): Move description of
SB-1 F2 erratum from here to...
(divsf3): Here. Disable if TARGET_FIX_SB1 is set and
flag_unsafe_math_optimizations is not.
* tree-inline.c (remap_type): New.
(remap_decl): Use it. Remap DECL_SIZE*.
(copy_body_r): Use it.
(walk_tree): Walk TREE_TYPE too.
(copy_tree_r): Don't walk subtrees of types.
* tree.c (variably_modified_type_p): Restructure. Consider integer
types with non-const bounds variably modified.
Paolo Carlini [Sun, 5 Oct 2003 15:08:46 +0000 (17:08 +0200)]
2003-10-05 Paolo Carlini <pcarlini@unitus.it>
* include/bits/locale_facets.tcc
(num_put::do_put(..., bool)): Prefer ?: to if-else.
(time_get::_M_extract_name): Qualify min with std::.
(__pad<>::_S_pad): Constify two variables; simplify an
if-else statement factoring out some code.
* include/bits/locale_facets.tcc: Minor cosmetic changes.
* optabs.c (prepare_float_lib_cmp): Rewrite. Get the libfuncs
from the code_to_optab table, not a giant switch; use
swap_condition; do widening only if a comparison function that
we can call exists in a wider mode, not if a cmp_optab insn or
libfunc exists in a wider mode; call protect_from_queue
exactly once on each operand.
(init_optabs): Initialize the new optabs, not the deleted libfuncs.
* config/gofast.h, config/ia64/ia64.c, config/mips/mips.c
* config/pa/pa.c, config/rs6000/rs6000.c, config/sparc/sparc.c:
Set floating point comparison libfuncs using set_optab_libfunc
on the appropriate optab.