Tom Tromey [Mon, 20 Aug 2001 19:52:02 +0000 (19:52 +0000)]
jni.cc (nathash, [...]): New globals.
* jni.cc (nathash, nathash_count, nathash_size): New globals.
(DELETED_ENTRY): New define.
(hash): New function.
(nathash_find_slot): Likewise.
(natrehash): Likewise.
(nathash_add): Likewise.
(_Jv_JNI_RegisterNatives): No longer interpreter-specific. Use
nathash_add.
(nathash_find): New function.
(_Jv_LookupJNIMethod): Use it. Synchronize body.
(call): Synchronize around assignment.
Janis Johnson [Mon, 20 Aug 2001 17:34:48 +0000 (17:34 +0000)]
gcov.exp: Add support for branch information.
* gcc.misc-tests/gcov.exp: Add support for branch information.
* gcc.misc-tests/gcov-2.c: Change to invoke gcov and clean up.
* gcc.misc-tests/gcov-4.c: New test.
* gcc.misc-tests/gcov-4b.c: New test.
* gcc.misc-tests/gcov-5b.c: New test.
Neil Booth [Mon, 20 Aug 2001 06:14:53 +0000 (06:14 +0000)]
cppinit.c (init_standard_includes): The returned buffer is already malloc-ed.
* cppinit.c (init_standard_includes): The returned buffer
is already malloc-ed.
* gcc.c (add_prefix): Similarly.
* prefix.c (translate_name): Update to support clear buffer
ownership rules.
(update_path): Similarly. Be sure to free any newly allocated
key. UPDATE_PATH_HOST_CANONICALIZE takes only one argument.
(tr): New function.
* prefix.h (update_path): Update prototype and document.
* config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): Clean
up and update to new buffer ownership rules.
* doc/gcc.texi (UPDATE_PATH_HOST_CANONICALIZE): Update.
Jan Hubicka [Sun, 19 Aug 2001 23:46:10 +0000 (01:46 +0200)]
final.c (compute_alignments): New function.
* final.c (compute_alignments): New function.
(init_insn_lengths): Do not care label_align.
(LABEL_ALIGN_AFTER_BARRIER): Default to 1.
(LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to 0.
(JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): New.
(shorted_branches): Realloc label_align array; do
not call init_insn_lengths; Do not care about loop alignments.
* output.h (compute_alignments): Declare.
* toplev.c (rest_of_compilation): Call compute_alignments.
* tm.texi (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): Document.
* predict.c (block_info_def): Add npredecesors, remove nvisited;
change visited to tovisit.
(propagate_freq): Use faster traversing algorithm.
(estimate_loops_at_level, estimate_bb_frequencies): Change visited
to tovisit; reverse meaning.
* predict.c (struct block_info_def): Remove nvisited.
(propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
(estimate_bb_frequencies): Call mark_dfs_back_edges.
ia64.h (STRIP_NAME_ENCODING): Handle @ and * in the same string.
* config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and *
in the same string.
(ASM_NAME_TO_STRING): Remove.
* config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and *
in the same string. Remove support for expressions.
* config/ia64/crtbegin.asm (dtor_ptr): Make gp-relative.
(__do_global_dtors_aux): Update to match.
(__JCR_LIST__, __do_jv_register_classes): New.
(.init): Call it.
* config/ia64/crtend.asm (__JCR_END__): New.
(__do_global_ctors_aux): Use a GPREL64I reloc to __CTOR_END__
instead of an indirect LTOFF22 reloc.
crtstuff.c: Move list heads before code that uses them.
* crtstuff.c: Move list heads before code that uses them.
(__JCR_LIST__): Remove initial null.
(frame_dummy, __frame_dummy): Do java registration here ...
(__do_global_ctors_aux): ... not here.
flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call.
* flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call.
* regclass.c (init_reg_sets_1): Fix typo.
* config/ia64/ia64.c (ar_pfs_reg_operand): New.
(ia64_expand_call): Pass ar.pfs to sibcall expanders.
(ia64_compute_frame_size): Make ar.unat live when in use.
(ia64_epilogue_uses): Reformat; do not check current_function_is_leaf
for ar.pfs; remove ar.unat handling.
* config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): ar.unat is
call-saved.
(PREDICATE_CODES): Add ar_pfs_reg_operand.
* config/ia64/ia64-protos.h: Update decls.
* config/ia64/ia64.md (sibcall_nopic): Use ar.pfs.
(sibcall_pic): Likewise.
timevar.h (struct timevar_time_def): Change element type to float.
* timevar.h (struct timevar_time_def): Change element type to float.
(ticks_to_msec, clocks_to_msec): Likewise.
(TICKS_TO_MSEC, CLOCKS_TO_MSEC): Rescale to seconds; use type float.
(get_time): Likewise.
(timevar_print): Adjust zero check and printing to match.
Zack Weinberg [Sat, 18 Aug 2001 20:46:45 +0000 (20:46 +0000)]
ansidecl.h: Reorganize for readability...
include:
* ansidecl.h: Reorganize for readability, remove documentation
of obsolete macros, document PARAMS and VPARAMS. Add new
macros VA_OPEN, VA_CLOSE, and VA_FIXEDARG for nicer variadic
function implementation.
gcc:
* cpperror.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
Zack Weinberg [Sat, 18 Aug 2001 20:25:54 +0000 (20:25 +0000)]
haifa-sched.c: Convert to target hooks.
* haifa-sched.c: Convert to target hooks. Macros replaced
are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT,
MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE,
MD_SCHED_FINISH, and HAVE_cycle_display.
* target-def.h (TARGET_SCHED_ADJUST_COST,
TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE,
TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT,
TARGET_SCHED_FINISH, TARGET_SCHED_REORDER,
TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY):
New hook #defines to be overridden.
(TARGET_SCHED): Bring them all together.
(TARGET_INITIALIZER): Update.
* target.h: Don't forward declare struct rtx_def. Use 'rtx'
instead of 'struct rtx_def *' throughout.
(struct sched): New set of hooks for the scheduler.
* Makefile.in (haifa-sched.o): Depend on target.h.
* doc/tm.texi: Document the new scheduler hooks, together in
their own section, instead of scattered around.
Fix a bunch of underfull/overfull hboxes.
* a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h,
ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h,
sparc.h: Don't define any of the old scheduler macros.
* a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c,
ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c,
sparc.c: Create hook functions from code extracted from
corresponding target header, or make existing hooks static, as
appropriate. Set the appropriate entries in targetm.
* alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h,
i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h,
rs6000-protos.h, s390-protos.h, sparc-protos.h:
Remove prototypes for functions which are now static.
* d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and
related gunk; the Haifa scheduler is now the only choice.
Zack Weinberg [Sat, 18 Aug 2001 19:59:46 +0000 (19:59 +0000)]
optabs.h (OTI_flodiv, [...]): Kill.
* optabs.h (OTI_flodiv, flodiv_optab): Kill.
* genopinit.c: Put floating point divide insns in sdiv_optab.
* expr.c (expand_expr): Use sdiv_optab, not flodiv_optab.
* config/gofast.h, config/c4x/c4x.h,
config/ia64/hpux_longdouble.h, config/mips/mips.h,
config/pa/long_double.h, config/rs6000/sysv4.h,
config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab.
* optabs.c (init_optab): Break into new_optab, init_optab, init_optabv.
(init_optabs): Use init_optabv for overflow-trapping optabs.
Don't init flodiv_optab. Give mov_optab, movstrict_optab, and
cmp_optab RTX codes so have_insn_for can find them.
* optabs.c (expand_simple_binop, expand_simple_unop,
have_insn_for, gen_sub3_insn): New interfaces.
* expr.h: Prototype new functions.
(enum optab_methods): Move here from optabs.h.
* builtins.c, combine.c, doloop.c, function.c, ifcvt.c,
loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c:
Use new functions instead of working directly with optabs.
* doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c,
unroll.c: Don't include optabs.h.
* caller-save.c, combine.c, function.c, stmt.c: Just include
insn-codes.h, not optabs.h.
* Makefile.in: Update dependencies.
* combine.c (make_compound_operation, simplify_comparison):
Fix typos testing for this or that instruction.
* testsuite/22_locale/collate_byname.cc: New.
* testsuite/22_locale/collate.cc: New file.
* testsuite/22_locale/collate_char_members.cc: New file.
* testsuite/22_locale/collate_wchar_t_members.cc: New file.
Hans Boehm [Sat, 18 Aug 2001 01:01:51 +0000 (01:01 +0000)]
boehm.cc: Include gc_local_alloc.h if appropriate.
2001-08-17 Hans-J. Boehm <Hans_Boehm@hp.com>
* boehm.cc: Include gc_local_alloc.h if appropriate.
(GC_GENERIC_MALLOC): Don't define.
(MAYBE_MARK): Redefine for GC 6.0.
(_Jv_MarkObj): Mark class differently.
(_Jv_AllocArray): Use GC_generic_malloc.
* jcf-parse.c (load_class): New locals saved and class_loaded. If
loading a class_or_name fails, try considering an innerclass name
and load the enclosing context.
* parse.y (resolve_inner_class): New function.
(find_as_inner_class): Added leading comment.
(register_incomplete_type): Keep the current context as enclosing
context for JDEP_FIELD dependencies.
(do_resolve_class): Locals new_class_decl and super initialized to
NULL. Call resolve_inner_class, explore the enclosing context
superclass if necessary.
Fixes PR java/4007
Zack Weinberg [Fri, 17 Aug 2001 20:29:21 +0000 (20:29 +0000)]
system.h: Forward-declare struct rtx_def, struct rtvec_def, and union tree_node.
* system.h: Forward-declare struct rtx_def, struct rtvec_def,
and union tree_node. Typedef rtx, rtvec, and tree. Fix comment.
* rtl.h: Don't forward-declare union tree_node here. Don't
typedef rtx or rtvec here. Change all uses of struct rtx_def *,
struct rtvec_def *, or union tree_node * to use rtx, rtvec,
and tree respectively.
* tree.h: Don't forward-declare struct rtx_def here. Don't
typedef tree here. Change all uses of struct rtx_def *,
struct rtvec_def *, or union tree_node * to use rtx, rtvec,
and tree respectively.
Zack Weinberg [Fri, 17 Aug 2001 01:27:49 +0000 (01:27 +0000)]
final.c (shorten_branches): Clear the end of the label_align array only if we made it larger.
* final.c (shorten_branches): Clear the end of the label_align
array only if we made it larger. Break up messy expressions
for clarity.
* diagnostic.c (internal_error): Check for error recursion
before doing ICE suppression.
* timevar.c: Timing variables now count in milliseconds.
(init_timevar): Set up ticks_to_msec and clocks_to_msec here.
(get_time): Not here.
(timevar_print): Don't print any timer whose user, cpu, and
wall times are all zero as displayed.
* timevar.h: Update comment aboout units. Make timevar
counters unsigned.
Franz Sirl [Thu, 16 Aug 2001 19:19:09 +0000 (19:19 +0000)]
configure.target: Set LIMITSH for powerpc-*-*.
2001-08-16 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* configure.target: Set LIMITSH for powerpc-*-*.
* config/cpu/powerpc/bits/limits.h: New file.