h8300-protos.h: Add a prototype for compute_a_shift_cc.
* config/h8300/h8300-protos.h: Add a prototype for
compute_a_shift_cc.
* config/h8300/h8300.c (shift_one): Update the CC status.
(shift_two): Likewise.
(output_a_shift_cc): Set cc_inline and cc_special.
(compute_a_shift_cc): New.
* config/h8300/h8300.md (shift insns): Use compute_a_shift_cc.
contrib.texi (Contributors): Add entries for Wolfgang Bangerth...
* doc/contrib.texi (Contributors): Add entries for Wolfgang
Bangerth, DJ Delorie, Christian Ehrhardt, Christopher Faylor,
Nathanael Nerode, Diego Novillo, Hartmut Penner, Volker Reichelt,
Danny Smith, and Ulrich Weigand.
Update Kriang Lerdsuwanakij and fix a typo in Janis Johnson's
entry.
Nick Clifton [Fri, 4 Apr 2003 10:38:50 +0000 (10:38 +0000)]
(expand_prologue): Only use register save helper functions if long calls are not being used.
(expand_prologue): Only use register save helper functions if long calls are
not being used.
Add a clobber of r11 id using long calls.
(prolog pattern): Do not use this pattern for v850e's.
Matt Austern [Thu, 3 Apr 2003 21:00:56 +0000 (21:00 +0000)]
cpppch.c (reset_ht): Remove.
* cpppch.c (reset_ht): Remove.
(cpp_read_state): Remove loop to reset hashtable identifiers.
* ggc-common.c (gt_pch_save): Add call to gt_pch_fixup_stringpool
after pch file is written.
* ggc.h (gt_pch_fixup_stringpool): Declare.
* stringpool.c (ht_copy_and_clear): Define. Callback. Copy
hashnode's value to another hashtable, then clear the original.
(saved_ident_hash): Define.
(gt_pch_save_stringpool): Create saved_ident_hash, use it to
store definitions in ident_hash, and clear ident_hash.
(gt_pch_fixup_stringpool): Define. Restore definitions from
saved_ident_hash to ident_hash, then destroy saved_ident_hash.
Eric Botcazou [Thu, 3 Apr 2003 19:20:06 +0000 (21:20 +0200)]
re PR rtl-optimization/10157 ([Sparc] internal compiler error: in extract_insn, at recog.c:2188)
PR optimization/10157
* gcse.c (can_copy_p): Rename it to can_copy.
(can_copy_init_p): Remove.
(compute_can_copy): Use can_copy instead of can_copy_p.
(can_copy_p): New exported function. Call compute_can_copy.
(hash_scan_set): Use it.
(gcse_main): Don't call compute_can_copy.
(bypass_jumps): Don't call compute_can_copy.
* rtl.h (can_copy_p): Declare.
* loop.c (scan_loop): Don't move the source and add a reg-to-reg
copy if the mode doesn't support copy operations.
Jason Merrill [Thu, 3 Apr 2003 18:23:04 +0000 (13:23 -0500)]
stor-layout.c (do_type_align): New fn, split out from...
* stor-layout.c (do_type_align): New fn, split out from...
(layout_decl): ...here. Do all alignment calculations for
FIELD_DECLs here.
(update_alignment_for_field): Not here.
(start_record_layout, debug_rli): Remove unpadded_align.
* tree.h (struct record_layout_info_s): Remove unpadded_align.
* c-decl.c (finish_enum): Don't set DECL_SIZE, DECL_ALIGN
or DECL_MODE on the CONST_DECLs.
(finish_struct): Don't mess with DECL_ALIGN.
* cp/class.c (build_vtable): Set DECL_ALIGN here.
(get_vtable_decl): Not here.
(layout_vtable_decl): Or here.
(create_vtable_ptr): Or here.
(layout_class_type): Or here.
(check_bitfield_decl): Don't mess with field alignment.
* ada/misc.c (gnat_adjust_rli): #if 0.
* mangle.c: Include gt-cp-mangle.h.
(subst_identifiers): Mark with GTY.
* config-lang.in (gtfiles): Add cp/mangle.c.
* Make-lang.in: (gt-cp-mangle.h): New rule.
(cp/mangle.o): Depends on gt-cp-mangle.h.
h8300-protos.h: Add a prototype for gtle_operator.
* config/h8300/h8300-protos.h: Add a prototype for
gtle_operator.
* config/h8300/h8300.c (gtle_operator): New.
* config/h8300/h8300.h (PREDICATE_CODES): Add an entry for
gtle_operator.
* config/h8300/h8300.md (a peephole2): Generalize to accept GT
and LE.
Jan Hubicka [Wed, 2 Apr 2003 22:19:30 +0000 (22:19 +0000)]
i386.c (override_options): Disable red zone by default on i386.
* i386.c (override_options): Disable red zone by default on i386.
(compute_frame_layout, ix86_force_to_memory, ix86_free_from_memory):
Do not test TARGET_64BIT together with TARGET_RED_ZONE
* config/rs6000/rs6000.c
(TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Redefine the
macros.
(rs6000_issue_rate): Add case for 8540.
(rs6000_use_sched_lookahead): New function.
* config/rs6000/8540.md: Rename SIU units into SU ones and MIU
units into MU ones.
(ppc8540_branch, ppc8540_cr_logical): Add one cycle in the
reservation before retirement.
(ppc8540_multiply, ppc8540_load, ppc8540_store,
ppc8540_simple_float, ppc8540_vector_load, ppc8540_vector_store):
Remove additional cycle in the reservation before retirement.
(ppc8540_mfcr, ppc8540_mtcrf, ppc8540_mtjmpr): Add missed
reservation of ppc8540_issue.
except.c (convert_from_eh_region_ranges_1): Smash REG_EH_REGION notes for nothrow calls if flag_forced_unwind_exceptions.
* except.c (convert_from_eh_region_ranges_1): Smash REG_EH_REGION
notes for nothrow calls if flag_forced_unwind_exceptions.
(build_post_landing_pads): Mind flag_forced_unwind_exceptions.
(sjlj_find_directly_reachable_regions): Likewise.
(reachable_handlers): Likewise.
(can_throw_external): Likewise.
(collect_one_action_chain): Record cleanups after catch-all and
must-not-throw if flag_forced_unwind_exceptions.
* flags.h (flag_forced_unwind_exceptions): Declare.
* toplev.c (flag_forced_unwind_exceptions): New.
(lang_independent_options): Add it.
* doc/invoke.text: Add it.
David Mosberger [Tue, 1 Apr 2003 23:29:35 +0000 (23:29 +0000)]
crti.asm: Clean up trailing whitespace.
* config/ia64/crti.asm: Clean up trailing whitespace.
Remove trailing hashes (#) from identifiers.
* config/ia64/crtn.asm: Ditto.
* config/ia64/crtend.asm: Remove trailing hashes (#) from
identifiers.
(__do_global_ctors_aux): Align to 32-byte boundary. Add unwind
directives. Drop explicit bundling---it just makes the code
harder to read. Don't save/restore gp needlessly.
* config/ia64/crtbegin.asm: Remove trailing hashes (#) from
identifiers (they're only needed if the identifier would clash
with a register name otherwise).
(__do_global_dtors_aux): Align to 32-byte boundary. Add unwind
directives. Drop explicit bundling---it just makes the code
harder to read.
(__do_jv_register_classes): Ditto.
(.fini_array): Remove "progbits" (newer
assemblers don't like wrong section-types).
(.init_array): Ditto.
Roger Sayle [Tue, 1 Apr 2003 22:32:37 +0000 (22:32 +0000)]
re PR fortran/9974 (Test g77.f-torture/noncompile/check0.f fails)
PR fortran/9974
* gcse.c (reg_killed_on_egde): New function to test whether the
given reg is overwritten by any instruction queued on an edge.
(bypass_block): Ignore substitutions killed on incoming edges.
Don't bypass outgoing edges that have queued instructions.
* gcc.c-torture/execute/20030401-1.c: New test case.
* real.h (EXP_BITS): Make room for...
(struct real_value): ... added canonical bit.
(struct real_format): Added pnan.
(mips_single_format, mips_double_format, mips_extended_format,
mips_quad_format): New.
* real.c: Copy p to pnan in all formats.
(get_canonical_qnan, get_canonical_snan): Set canonical bit.
(real_nan): Use pnan to compute significand's shift.
(real_identical): Disregard significand in canonical
NaNs.
(real_hash): Likewise. Take signalling into account.
(encode_ieee_single, encode_ieee_double, encode_ieee_quad):
Disregard significand bits in canonical NaNs. Set all bits of
canonical NaN if !qnan_msb_set.
(encode_ibm_extended, decode_ibm_extended): Likewise. Use
qnan_msb_set to tell the base double format.
(ibm_extended_format): Use 53 as pnan.
(mips_single_format, mips_double_format, mips_extended_format,
mips_quad_format): Copied from the corresponding ieee/ibm
formats, with qnan_msb_set false.
* config/mips/iris6.h (MIPS_TFMODE_FORMAT): Use mips_extended_format.
* config/mips/linux64.h (MIPS_TFMODE_FORMAT): Use mips_quad_format.
* config/mips/mips.c (override_options): Use mips_single_format
and mips_double_format. Default TFmode to mips_quad_format.
* config/mips/t-linux64 (tp-bit.c): Define QUIET_NAN_NEGATED.
* config/mips/t-irix6: Likewise.
* config/mips/t-mips (fp-bit.c, dp-bit.c): Likewise.
* config/fp-bit.c (pack_d, unpack_d): Obey it.
Andrew Pinski [Tue, 1 Apr 2003 20:37:00 +0000 (20:37 +0000)]
config-lang.in (gtfiles): add \$(srcdir)/cp/name-lookup.c after \$(srcdir)/cp/name-lookup.h.
2003-04-01 Andrew Pinski <pinskia@physics.uc.edu>
* config-lang.in (gtfiles): add \$(srcdir)/cp/name-lookup.c
after \$(srcdir)/cp/name-lookup.h.
* name-lookup.c: (cxx_binding_make): Use ggc_alloc_clearedinstead
of ggc_alloc. Include gt-cp-name-lookup.h at the end of the file.
* Make-lang.in: (gt-cp-name-lookup.h): is generated by the gtype.
(cp/name-lookup.o): depends on gt-cp-name-lookup.h.
* gcse.c (struct ls_expr): Added pattern_regs field.
(ldst_entry): Initialize it.
(extract_mentioned_regs, extract_mentioned_regs_helper): New.
(store_ops_ok): Use regs precomputed by them.
(find_loads, store_killed_in_insn, load_kills_store): Change return
type to bool.
(store_killed_before, store_killed_after): Take position of register
set in account.
(reg_set_info): Store position of the setter.
(gcse_main): Enable store motion.
(mems_conflict_for_gcse_p): Enable load motion of non-symbol mems.
(pre_insert_copy_insn, update_ld_motion_stores, insert_store): Prevent rtl
sharing.
(simple_mem): Enable store motion of non-symbol mems.
(regvec): Type changed.
(LAST_AVAIL_CHECK_FAILURE): New.
(compute_store_table_current_insn): New.
(build_store_vectors): Computation of availability and anticipatability
moved ...
(compute_store_table, find_moveable_store): ... here.
(delete_store): Remove senseless comment.
(store_motion): Reorganize.
David Edelsohn [Tue, 1 Apr 2003 18:05:46 +0000 (18:05 +0000)]
{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md, [...]: Change mult_compare to imul_compare.
* config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
power4.md,rios1.md,rios2.md,rs64.md}: Change mult_compare to
imul_compare. Add lmul_compare.
* config/rs6000/power4.md: Bump some latencies. Model extra cycle
in second pair of dispatch slots. Model stores more accurately.
Tweak multiply model. Add bypasses for CR instructions dependent
on complicated compares.
* config/rs6000/rs6000.md (mulsi3): Name imul_compare patterns.
(muldi3): Add lmul_compare patterns.
* config/rs6000/rs6000.c (rs6000_variable_issue): Move FPLOAD_UX
and FPSTORE_UX to split instructions and add COMPARE,
DELAYED_COMPARE, IMUL_COMPARE, LMUL_COMPARE, IDIV, LDIV.
(rs6000_adjust_cost): Add IMUL_COMPARE and LMUL_COMPARE.
(rs6000_rtx_costs): Separate POWER4 multiply case.
* config/rs6000/rs6000-protos.h: Add prototype for
easy_vector_constant, emit_easy_vector_insn.
* config/rs6000/altivec.md (xorv8hi3): New.
(xorv16qi3): New.
Remove all _const0 patterns.
(movv4si_internal): Rewrite to use code. Add vector constant to
vector alternative. Add splitter.
(movv8hi_internal): Same.
(movv16qi_internal): Same.
(movv4sf_internal): Same.
Change the unspecs for vspltis* to use constants.
* config/rs6000/spe.md ("xorv4hi3"): New.
("spe_evxor"): Rename to xorv2si3.
("xorv1di3"): New.
Remove all _const0 patterns.
(movv2si_internal): Rewrite to use code. Add vector constant to
alternatives. Add splitter.
(movv4hi_internal): Add vector constant to alternatives.
(movv1di_internal): Same.
(movv2sf_internal): Same.
Mark Mitchell [Tue, 1 Apr 2003 07:35:11 +0000 (07:35 +0000)]
re PR middle-end/9936 (ICE with local function and variable-length 2d array)
PR c/9936
* c-decl.c (grokdeclarator): Clear SAVE_EXPR_CONTEXT for
variably-sized arrays in parameters.
(set_save_expr_context): New function.
(c_expand_body): Use it, via walk_tree.
Stephane Carrez [Mon, 31 Mar 2003 20:28:40 +0000 (22:28 +0200)]
m68hc11.c (expand_prologue): For an interrupt handler save the soft registers after the frame pointer so...
* config/m68hc11/m68hc11.c (expand_prologue): For an interrupt handler
save the soft registers after the frame pointer so that gdb can unwind
the frame more easily.
(expand_epilogue): Likewise in opposite order; allow to use X register
as scratch if the return value is by reference.
Matt Austern [Mon, 31 Mar 2003 20:02:40 +0000 (20:02 +0000)]
cpppch.c (struct cpp_savedstate): Add defs and n_defs members.
* cpppch.c (struct cpp_savedstate): Add defs and n_defs members.
(count_defs): Keep track of number of defs as well as total size.
(write_defs): Put every definition in cpp_savedstate's defs array.
(comp_hashnode): Define. Comparison function for qsort.
(cpp_write_pch_deps): Sort definitions before writing them.
(struct ht_node_list): Define. Like cpp_savedstate but simpler.
(collect_ht_nodes): Define.
(cpp_valid_state): When verifying that undefined identifiers in
the pch file are still undefined, read a sorted list of undefined
identifiers, collect all defined identifiers into a sorted list,
and walk through both lists to make sure there's no match.
Roger Sayle [Mon, 31 Mar 2003 14:30:29 +0000 (14:30 +0000)]
emit-rtl.c (dconstm2, dconsthalf): New real constants.
* emit-rtl.c (dconstm2, dconsthalf): New real constants.
(init_emit_once): Initialize dconstm2 and dconsthalf here.
* real.h (dconstm2, dconsthalf): Add prototypes here.
* real.c (real_sqrt): Use dconsthalf rather than local copy.
* builtins.c (fold_builtin): When optimizing sqrt(exp(x)) as
exp(x/2.0) remember to fold the division if possible.
Fold sin(0.0) as 0.0, cos(0.0) as 1.0, pow(x,1.0) as x,
pow(x,-1.0) as 1.0/x, pow(x,2.0) as x*x, pow(x,-2.0) as
1.0/(x*x) and pow(x,0.5) as sqrt(x).
* gcc.dg/builtins-3.c: Add new tests for sin and cos.
* gcc.dg/builtins-7.c: New test case.
* gcc.dg/builtins-8.c: New test case.
Michael Koch [Mon, 31 Mar 2003 12:19:21 +0000 (12:19 +0000)]
2003-03-31 Michael Koch <konqueror@gmx.de>
* javax/swing/AbstractAction.java
(AbstractAction): Reformatted.
(serialVersionUID): New private member variable.
* javax/swing/plaf/BorderUIResource.java
(serialVersionUID): New private member variable.
* javax/swing/plaf/basic/BasicLookAndFeel.java
(serialVersionUID): New private member variable.
Michael Koch [Mon, 31 Mar 2003 11:22:03 +0000 (11:22 +0000)]
VMID.java, [...]: New version from libgcj.
2003-03-31 Michael Koch <konqueror@gmx.de>
* java/rmi/dgc/VMID.java,
java/rmi/registry/RegistryHandler.java,
java/rmi/server/LoaderHandler.java,
java/rmi/server/LogStream.java,
java/rmi/server/Operation.java,
java/rmi/server/RemoteCall.java,
java/rmi/server/RemoteRef.java,
java/rmi/server/RemoteStub.java,
java/rmi/server/Skeleton.java:
New version from libgcj.
Michael Koch [Mon, 31 Mar 2003 10:15:48 +0000 (10:15 +0000)]
2003-03-31 Michael Koch <konqueror@gmx.de>
* java/io/File.java
(separator): Merged documentation from classpath.
(separatorChar): Merged documentation from classpath.
(pathSeparator): Merged documentation from classpath.
(pathSeparatorChar): Merged documentation from classpath.
(path): Merged documentation from classpath.
(canRead): Merged documentation from classpath.
(canWrite): Merged documentation from classpath.
(createNewFile): Merged documentation from classpath.
(delete): Merged documentation from classpath.
(equals): Merged documentation from classpath.
(exists): Merged documentation from classpath.
(File): Renamed p to name to match classpath, merged documentation
from classpath.
(getAbsolutePath): Merged documentation from classpath.
(getCanonicalPath): Merged documentation from classpath.
(getCanonicalFile): Merged documentation from classpath.
(getName): Merged documentation from classpath.
(getParent): Merged documentation from classpath.
(getParentFile): Merged documentation from classpath.
(getPath): Merged documentation from classpath.
(hashCode): Merged documentation from classpath.
(isAbsolute): Merged documentation from classpath.
(isDirectory): Merged documentation from classpath.
(isFile): Merged documentation from classpath.
(isHidden): Merged documentation from classpath.
(lastModified): Merged documentation from classpath.
(length): Merged documentation from classpath.
(list): Merged documentation from classpath.
(listFiles): Merged documentation from classpath.
(toString): Merged documentation from classpath.
(toURL): Merged documentation from classpath.
(mkdir): Merged documentation from classpath.
(mkdirs): Merged documentation from classpath.
(createTempFile): Merged documentation from classpath.
(setReadOnly): Merged documentation from classpath.
(listRoots): Merged documentation from classpath.
(compareTo): Merged documentation from classpath.
(renameTo): Merged documentation from classpath.
(setLastModified): Merged documentation from classpath.
* java/io/PrintStream.java
(auto_flush): Merged documentation from classpath.
(PrintStream): Merged documentation from classpath.
(checkError): Merged documentation from classpath.
(setError): Merged documentation from classpath.
(close): Merged documentation from classpath.
(flush): Merged documentation from classpath.
(print): Merged documentation from classpath.
(println): Merged documentation from classpath.
(write): Renamed count to len to match classpath,
merged documentation from classpath.
* java/io/RandomAccessFile.java
(readShort): Merged documentation from classpath.
(readUnsignedByte): Merged documentation from classpath.
(readUnsignedShort): Merged documentation from classpath.
(readUTF): Merged documentation from classpath.
(seek): Reformatted, merged documentation from classpath.
(skipBytes): Renamed some variables to match classpath, reformatted,
merged documentation from classpath.
(write): Merged documentation from classpath.
(writeBoolean): Merged documentation from classpath.
(writeByte): Merged documentation from classpath.
(writeShort): Merged documentation from classpath.
(writeChar): Merged documentation from classpath.
(writeInt): Merged documentation from classpath.
(writeLong): Merged documentation from classpath.
(writeFloat): Merged documentation from classpath.
(writeDouble): Merged documentation from classpath.
(writeBytes): Merged documentation from classpath.
(writeChars): Merged documentation from classpath.
(writeUTF): Reformatted.
(getChannel): Reformatted.