J"orn Rennecke [Tue, 25 Jun 2002 20:39:18 +0000 (20:39 +0000)]
lib1funcs.asm (udivdi3): Make first divide step produce a 32 bit result before normalization...
* config/sh/lib1funcs.asm (udivdi3): Make first divide step
produce a 32 bit result before normalization, then normalize with a
left shift. Compute approximative error of 2nd reciprocal
approximation in 2's complement. Fix mask generation from upper
longword of second divide stage result.
For large divisor, fix shift count used to truncate first stage
divide result; make decision if to adjust upwards based on comparison
of higher parts of normalized values.
(udivdi): Likewise. Undo normalization of result for large divisor
case.
Jeff Law [Mon, 24 Jun 2002 20:20:52 +0000 (14:20 -0600)]
flow.c (propagate_one_insn): When removing an insn with a REG_LIBCALL note but not the entire libcall...
* flow.c (propagate_one_insn): When removing an insn
with a REG_LIBCALL note but not the entire libcall sequence,
delete the associated REG_RETVAL note.
Mark Mitchell [Mon, 24 Jun 2002 19:18:43 +0000 (19:18 +0000)]
cp-tree.h (SCALAR_TYPE_P): New macro.
* cp-tree.h (SCALAR_TYPE_P): New macro.
(check_for_out_of_scope_variable): New function.
(at_class_scope_p): Likewise.
(finish_fname): Likewise.
* class.c (finish_struct): Use at_function_scope_p.
* decl.c (check_for_out_of_scope_variable): New function, split
out from do_identifier.
(finish_enum): Use at_function_scope_p.
* lex.c (do_identifier): Use check_for_out_of_scope_variable.
* parse.y (VAR_FUNC_NAME): Give it <ttype>. Use finish_fname.
(primary): Use at_function_scope_p.
* search.c (at_class_scope_p): New function.
* semantics.c (finish_fname): Likewise.
(check_multiple_declarators): Use at_function_scope_p.
Neil Booth [Mon, 24 Jun 2002 05:46:51 +0000 (05:46 +0000)]
cpptrad.c (scan_out_logical_line): Check recursing only when we know we have a macro invocation in the...
* cpptrad.c (scan_out_logical_line): Check recursing only when
we know we have a macro invocation in the function-like case.
Only call _cpp_handle_directive if we know we have a good
directive, or we want to reject a bad directive.
testsuite:
* gcc.dg/cpp/trad/argcout.c, gcc.dg/cpp/trad/assembler.S,
gcc.dg/cpp/trad/argcout.c, gcc.dg/cpp/trad/funlike-4.c,
gcc.dg/cpp/trad/null-drctv.c, gcc.dg/cpp/trad/recurse-1.c,
gcc.dg/cpp/trad/recurse-2.c, gcc.dg/cpp/trad/recurse-3.c:
New tests.
* gcc.dg/cpp/trad/directive.c: Update.
Tom Tromey [Mon, 24 Jun 2002 04:44:53 +0000 (04:44 +0000)]
Makefile.in: Rebuilt.
* Makefile.in: Rebuilt.
* Makefile.am (RUNTEST): Added AM_RUNTESTFLAGS.
(AM_RUNTESTFLAGS): New variable.
(RUNTESTFLAGS): Don't define.
* lib/libjava.exp (libjava_invoke): New proc.
(test_libjava_from_source): Use it.
(test_libjava_from_javac): Likewise.
(libjava_find_gij): New proc.
Mark Mitchell [Sun, 23 Jun 2002 20:10:09 +0000 (20:10 +0000)]
parse.y (parse_scoped_id): New function.
* parse.y (parse_scoped_id): New function.
(primary): Use it.
* cp-tree.h (do_scoped_id): Adjust declaration.
* lex.c (do_scoped_id): Remove call to yylex.
* decl2.c (build_expr_from_tree): Adjust use of do_scoped_id.
* typeck2.c (add_exception_specifier): Use tree_cons, rather than
expanding it inline.
Jan Hubicka [Sun, 23 Jun 2002 15:57:53 +0000 (17:57 +0200)]
function.h (struct emit_status): Clarify potential contents of regno_reg_rtx array.
* function.h (struct emit_status): Clarify potential contents
of regno_reg_rtx array.
* integrate.c (copy_rtx_and_substitute): Update comments. Make
sure entry in regno_reg_rtx is a REG before checking REG_POINTER.
Co-Authored-By: Jeff Law <law@redhat.com>
From-SVN: r54924
David S. Miller [Sat, 22 Jun 2002 12:05:18 +0000 (05:05 -0700)]
PR target/6841 target/6770 target/6719
2002-06-22 David S. Miller <davem@redhat.com>
PR target/6841 target/6770 target/6719
* config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Return
NO_REGS for constant X when CLASS is GENERAL_OR_FP_REGS or
GENERAL_OR_EXTRA_FP_REGS.
Neil Booth [Sat, 22 Jun 2002 11:08:20 +0000 (11:08 +0000)]
cpptrad.c (struct fun_macro): Add line number.
* cpptrad.c (struct fun_macro): Add line number.
(scan_out_logical_line): Set it, and use it to report unterminated
macro invocations.
testsuite:
* gcc.dg/cpp/trad/comment-2.c. gcc.dg/cpp/trad/funlike-2.c,
gcc.dg/cpp/trad/funlike.c, gcc.dg/cpp/trad/funlike-3.c,
gcc.dg/cpp/trad/literals-1.c, gcc.dg/cpp/trad/literals-2.c,
gcc.dg/cpp/trad/macroargs.c, gcc.dg/cpp/trad/quote.c: New tests.
Matt Thomas [Fri, 21 Jun 2002 23:58:47 +0000 (23:58 +0000)]
vax.c (vax_output_function_prologue): Use REGISTER_PREFIX.
2002-06-21 Matt Thomas <matt@3am-software.com>
* config/vax/vax.c (vax_output_function_prologue): Use
REGISTER_PREFIX. Fix some indentation.
* config/vax/vax.h (FUNCTION_PROFILER): Use reg_names[].
(VAX_ISTREAM_SYNC): Define.
(INITIALIZE_TRAMPOLINE): Use VAX_ISTREAM_SYNC. Move the
i-stream sync to the end.
(REGISTER_PREFIX): Define as "".
(ASM_OUTPUT_MI_THUNK): Use REGISTER_PREFIX.
* include/c/std_cerrno.h: Get out of the way... define errno.
* include/c/std_cmath.h: Add abs, modf overloads.
Undefine C99 isms. Still not sure how to deal with this sanely.
* include/c/std_csetjmp.h: Tweak.
* include/c/std_cwchar.h: Include cstddef for size_t.
* include/c_std/std_cmath.h: Remove extra function.
bb-reorder.c (make_reorder_chain_1): Search harder for the vax casesi fallthru edge.
2002-06-21 Richard Henderson <rth@redhat.com>
* bb-reorder.c (make_reorder_chain_1): Search harder for the
vax casesi fallthru edge.
* cfglayout.c (cleanup_unconditional_jumps): Use
redirect_edge_succ_nodup. Do not delete ADDR_VEC insns as dead.
* cfgrtl.c (force_nonfallthru_and_redirect): Place redirection
block after ADDR_VEC.
Neil Booth [Fri, 21 Jun 2002 05:29:09 +0000 (05:29 +0000)]
cpperror.c (cpp_error): For traditional CPP, default to diagnostics on pfile->line.
* cpperror.c (cpp_error): For traditional CPP, default to
diagnostics on pfile->line.
* cpplib.c (prepare_directive_trad): Set line number for
diagnostics for #define too.
* cpptrad.c (skip_whitespace): Skip comments properly.
(_cpp_expansions_different_trad): Initialize quote2.
testsuite:
* gcc.dg/cpp/trad: New directory with traditional tests copied
from parent directory.
* gcc.dg/cpp/assert_trad1.c, gcc.dg/cpp/assert_trad2.c,
gcc.dg/cpp/assert_trad3.c, gcc.dg/cpp/defined_trad.c,
gcc.dg/cpp/hash2.c, gcc.dg/cpp/tr-define.c, gcc.dg/cpp/tr-direct.c,
gcc.dg/cpp/tr-sign.c, gcc.dg/cpp/tr-str.c, gcc.dg/cpp/uchar-2.c:
Move to trad/ and rename.
* gcc.dg/cpp/trad/__STDC__.c, gcc.dg/cpp/trad/comment.c,
gcc.dg/cpp/trad/escaped-eof.c, gcc.dg/cpp/trad/redef1.c,
gcc.dg/cpp/trad/redef2.c: New tests.
* gcc.dg/cpp/trad/trad.exp: New driver.
mmix.md: Change GNU CC to GCC in file header comment.
* config/mmix/mmix.md: Change GNU CC to GCC in file header comment.
* config/mmix/mmix.h: Ditto.
* config/mmix/mmix-protos.h: Ditto.
* config/mmix/mmix.c: Ditto. Fix typo in comment.
* config/mmix/mmix-modes.def: Change GNU CC to GCC in file header
comment. Comment extra CC modes.
pa-protos.h (pa_asm_output_mi_thunk): Change third argument to HOST_WIDE_INT.
* pa-protos.h (pa_asm_output_mi_thunk): Change third argument to
HOST_WIDE_INT.
* pa.c (pa_asm_output_mi_thunk): Likewise.
(n_deferred_plabels): Change type to size_t.
(output_deferred_plabels, output_call): Use size_t instead of int.
Neil Booth [Thu, 20 Jun 2002 20:34:19 +0000 (20:34 +0000)]
cppexp.c (cpp_interpret_integer): Don't force traditional numbers to be unsigned.
* cppexp.c (cpp_interpret_integer): Don't force traditional
numbers to be unsigned.
* cpplib.c (prepare_directive_trad): Set line number for
diagnostics.
* cpptrad.c (scan_out_logical_line): Continue scanning out
at start of buffer.
* gcc.c (trad_capable_cpp): Use cc1 always.
f:
* lang-specs.h: Use cc1 for traditional preprocessing.
testsuite:
* gcc.dg/cpp/assert_trad1.c, gcc.dg/cpp/assert_trad2.c,
gcc.dg/cpp/assert_trad3.c, gcc.dg/cpp/defined_trad.c,
gcc.dg/cpp/hash2.c, gcc.dg/cpp/tr-define.c, gcc.dg/cpp/tr-direct.c,
gcc.dg/cpp/tr-sign.c, gcc.dg/cpp/tr-str.c, gcc.dg/cpp/uchar-2.c:
Remove.
* libsupc++/Makefile.am (c_sources): New.
(libsupc___la_SOURCES): Add c_sources.
(LTCOMPILE): Remove INCLUDES.
(GCC_INCLUDES): New.
(C_COMPILE): New, like COMPILE but without INCLUDES.
(cxa_demangle.o): Use C_COMPILE.
(dyn-string.o): Use C_COMPILE.
Jan Hubicka [Thu, 20 Jun 2002 17:57:27 +0000 (17:57 +0000)]
Mon Jun 10 20:42:34 CEST 2002 Jan Hubicka <jh@suse.cz>
* basic-block.h: Do not include et-forest.h
(dominance_info): Declare as struct dominance-info.
* cfglayout.c (cleanup_unconditional_jumps): Remove the edge before
deleting block.
* dominance.c (struct dominance_info): Define.
(BB_NODE, SET_BB_NODE): New macros.
(bb_hash_func, bb_eq_func): Kill.
(calculate_dominace_info, free_dominacne_info, set_immediate_dominator,
nearest_common_dominator, dominated_by_p, recount_dominator,
add_to_dominance_info, delete_from_dominance_info): update for new
representation.
(get_dominated_by, redirect_immediate_dominators): Rewrite using
enumerate_sons.
* ifcvt.c (process_double_test_block, merge_if_block, find_cond_trap,
find_if_case_1, find_if_case_2): Remove killed blocks from dominance
structure.
* et-forest.h: Update copyright; revamp all function to operate on
nodes
(et_forest_value): Kill.
(et_forest_enumerate_sons, et_forest_node_value): New.
* et-forest.c: Update copyright.
* et-forest.h: Update copyright; revamp all function to operate on
nodes
(et_forest_value): Kill.
(et_forest_enumerate_sons, et_forest_node_value): New.
Thu Jun 6 22:43:43 CEST 2002 Jan Hubicka <jh@suse.cz>
* basic-block.h: Inlude et-forest.h
(basic_block_def): Kill dominator.
(dominance_info): New type.
(loops): Use dominace_info.
(dominace handling functions): Take dominace_info as argument
instead of bitmaps.
(create_preheader): Likewise.
* cfg.c (entry_exit_blocks): Kill dominator.
(dump_flow_info): Do not dump dominators.
* cfglayout.c (cleanup_unconditonal_jumps): Delete deleted block from
dominators.
* cfgloop.c (flow_pre_header_find): Use dominacne_info.
(flow_loops_pre_header_scan, make_forwarder_block,
canonicale_loop_headers, flow_loops_find): Likewise.
* dominance.c: Include error.h
(idoms_to_doms): Kill.
(bb_hash_func, bb_eq_func): New static functions.
(debug_dominace_info): New global function.
(calculate_dominance_info): Use new et forest structure.
(free_dominace_info, get_immediate_dominator, set_immediate_dominator,
get_dominated_by, redirect_immediate_dominators,
nearest_common_dominator, dominated_by_p, verify_dominators,
recount_dominator, iterate_fix_dominators, add_to_dominace_info,
delete_from_dominance_info): New global functions.
* gcse.c (domnators): CHange to dominance_info.
(alloc_hoist_mem): Do not alloc dominators
(free_code_hoist_mem): Use free_dominance_info.
(compute_code_hoist_data): Use dominance_info.
(hoist_code): Likewise.
* ifcvt.c (post_dominators): Likewise.
(find_if_case_2, if_convert): Likewise.
* predict.c (process_note_predictions, process_note_prediction,
estimate-probability): Likewise.
* sched-rgn.c (find_rgns, init_regions): Likewise.
* ssa-dce.c (find_all_control_dependences, fint_control_depemndence,
find_pdom, delete_insn_bb, ssa_eliminate_dead_code): Likewise.
* ssa.c (compute_dominance_frontiers_1, rename_block, rename_registers,
find_evaluations, convert_to_ssa): Likewise.
* ssa.h (compute_dominance_frontiers): Likewise.
Thu Jun 6 22:57:34 CEST 2002 Pavel Nejedly <bim@atrey.karlin.mff.cuni.cz>
* Makefile.in (et-forest.c): Add.
* et-forest.c: New file.
* at-forest.h: New file.
Jan Hubicka [Thu, 20 Jun 2002 17:51:06 +0000 (19:51 +0200)]
Mon Jun 10 20:42:34 CEST 2002 Jan Hubicka <jh@suse.cz>
* basic-block.h: Do not include et-forest.h
(dominance_info): Declare as struct dominance-info.
* cfglayout.c (cleanup_unconditional_jumps): Remove the edge before
deleting block.
* dominance.c (struct dominance_info): Define.
(BB_NODE, SET_BB_NODE): New macros.
(bb_hash_func, bb_eq_func): Kill.
(calculate_dominace_info, free_dominacne_info, set_immediate_dominator,
nearest_common_dominator, dominated_by_p, recount_dominator,
add_to_dominance_info, delete_from_dominance_info): update for new
representation.
(get_dominated_by, redirect_immediate_dominators): Rewrite using
enumerate_sons.
* ifcvt.c (process_double_test_block, merge_if_block, find_cond_trap,
find_if_case_1, find_if_case_2): Remove killed blocks from dominance
structure.
* et-forest.h: Update copyright; revamp all function to operate on
nodes
(et_forest_value): Kill.
(et_forest_enumerate_sons, et_forest_node_value): New.
* et-forest.c: Update copyright.
* et-forest.h: Update copyright; revamp all function to operate on
nodes
(et_forest_value): Kill.
(et_forest_enumerate_sons, et_forest_node_value): New.
Thu Jun 6 22:43:43 CEST 2002 Jan Hubicka <jh@suse.cz>
* basic-block.h: Inlude et-forest.h
(basic_block_def): Kill dominator.
(dominance_info): New type.
(loops): Use dominace_info.
(dominace handling functions): Take dominace_info as argument
instead of bitmaps.
(create_preheader): Likewise.
* cfg.c (entry_exit_blocks): Kill dominator.
(dump_flow_info): Do not dump dominators.
* cfglayout.c (cleanup_unconditonal_jumps): Delete deleted block from
dominators.
* cfgloop.c (flow_pre_header_find): Use dominacne_info.
(flow_loops_pre_header_scan, make_forwarder_block,
canonicale_loop_headers, flow_loops_find): Likewise.
* dominance.c: Include error.h
(idoms_to_doms): Kill.
(bb_hash_func, bb_eq_func): New static functions.
(debug_dominace_info): New global function.
(calculate_dominance_info): Use new et forest structure.
(free_dominace_info, get_immediate_dominator, set_immediate_dominator,
get_dominated_by, redirect_immediate_dominators,
nearest_common_dominator, dominated_by_p, verify_dominators,
recount_dominator, iterate_fix_dominators, add_to_dominace_info,
delete_from_dominance_info): New global functions.
* gcse.c (domnators): CHange to dominance_info.
(alloc_hoist_mem): Do not alloc dominators
(free_code_hoist_mem): Use free_dominance_info.
(compute_code_hoist_data): Use dominance_info.
(hoist_code): Likewise.
* ifcvt.c (post_dominators): Likewise.
(find_if_case_2, if_convert): Likewise.
* predict.c (process_note_predictions, process_note_prediction,
estimate-probability): Likewise.
* sched-rgn.c (find_rgns, init_regions): Likewise.
* ssa-dce.c (find_all_control_dependences, fint_control_depemndence,
find_pdom, delete_insn_bb, ssa_eliminate_dead_code): Likewise.
* ssa.c (compute_dominance_frontiers_1, rename_block, rename_registers,
find_evaluations, convert_to_ssa): Likewise.
* ssa.h (compute_dominance_frontiers): Likewise.
Thu Jun 6 22:57:34 CEST 2002 Pavel Nejedly <bim@atrey.karlin.mff.cuni.cz>
* Makefile.in (et-forest.c): Add.
* et-forest.c: New file.
* at-forest.h: New file.
Co-Authored-By: Pavel Nejedly <bim@atrey.karlin.mff.cuni.cz>
From-SVN: r54843
Kaveh R. Ghazi [Thu, 20 Jun 2002 17:38:23 +0000 (17:38 +0000)]
utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit array size calculation.
ada:
* utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
array size calculation.
gcc:
* c-decl.c (c_decode_option): Use ARRAY_SIZE in lieu of explicit
array size calculation.
* gengtype.c (NUM_BASE_FILES, create_file, write_gc_root):
Likewise.
cp:
* spew.c (remove_last_token): Use ARRAY_SIZE in lieu of explicit
array size calculation.