Richard Kenner [Mon, 10 Apr 2000 12:31:19 +0000 (12:31 +0000)]
sbitmap.h: Whitespace changes and use upper-case macro args.
* sbitmap.h: Whitespace changes and use upper-case macro args.
(struct simple_bitmap_def): All sizes now unsigned.
(EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
* sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
(sbitmap_vector_alloc): Parms and local vars now unsigned.
(sbitmap_zero): Cast bzero arg to PTR.
(sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
(sbitmap_union_of_diffs): Change loop index to unsigned and rework
loop to make structure clearer.
(sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
(sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
(sbitmap_a_and_b_or_c): Likewise.
(sbitmap_intersection_of_succs): Minor cleanups.
(sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
(sbitmap_union_of_preds): Likewise.
(sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
(debug_sbitmap): New function.
Richard Kenner [Mon, 10 Apr 2000 11:33:18 +0000 (11:33 +0000)]
gcse.c (expr_hash_table_size): Now unsigned.
* gcse.c (expr_hash_table_size): Now unsigned.
(compute_ae_gen): Local variable `i' now unsigned.
(compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
(compute_transout, hoist_code): Likewise.
(compute_local_properties): Likewise, also hash_table_size.
(alloc_expr_hash_table): N_INSNS now unsigned.
(delete_null_pointer_checks): Mark arg F as unused.
Martin v. Löwis [Mon, 10 Apr 2000 07:48:15 +0000 (07:48 +0000)]
invoke.texi (-ansi): Remove -foperator-names from list of implied options.
* invoke.texi (-ansi): Remove -foperator-names from list of
implied options. Do not call it ANSI C++.
(-foperator-names): Document as -fno-operator-names.
* cp/decl2.c (flag_operator_names): Default to 1.
(lang_decode_option): Do not set it for -ansi.
Martin v. Löwis [Mon, 10 Apr 2000 07:43:45 +0000 (07:43 +0000)]
invoke.texi (-fno-gnu-keywords): Remove classof, headof, __classof__, and __headof__ from the list of gnu keywords.
* invoke.texi (-fno-gnu-keywords): Remove classof, headof,
__classof__, and __headof__ from the list of gnu keywords.
* cp/lex.c (init_parse): Remove traces of classof and headof.
* cp-tree.h (struct lang_decl): Remove main_decl_variant.
(DECL_MAIN_VARIANT): Remove.
* decl.c (duplicate_decls): Don't set it.
(start_function): Likewise.
(lang_mark_tree): Don't mark it.
* decl2.c (defer_fn): Don't use it.
* lex.c (retrofit_lang_decl): Don't set it.
* pt.c (tsubst_decl): Likewise.
* ptree.c (print_lang_decl): Don't print it.
* typeck.c (mark_addressable): Don't use it.
* cpphash.c (timestamp): Delete.
(del_HASHNODE): If type is T_MCONST, free value.cpval.
(special_symbol): Remove unnecessary braces. Remove
T_VERSION. Treat T_STDC like T_CONST unless
STDC_0_IN_SYSTEM_HEADERS. Render both __DATE__ and __TIME__
when one is encountered, then convert them into T_MCONST
nodes.
* cppinit.c (builtin_array): version_string is T_MCONST.
__STDC__ has a "1" in its cpval. Don't have a terminator
entry. Clean up which entries are dumped.
(initialize_builtins): Only __STDC__ gets the special
-traditional treatment. Count the length of builtin_array.
Render version_string here.
* cpphash.h: Remove T_VERSION. Add T_MCONST.
* cpplib.h (struct cpp_reader): Remove timebuf.
* vec.cc: Include <new> and <exception>.
(__cxa_vec_ctor): Use __cxa_vec_dtor for cleanup.
(__cxa_vec_dtor): Catch dtor exceptions, and rethrow or
terminate.
(__cxa_vec_delete): Catch dtor exceptions.
Anthony Green [Sun, 9 Apr 2000 05:41:56 +0000 (05:41 +0000)]
posix-threads.cc (_Jv_MutexLock): Moved back to posix-threads.h.
2000-04-08 Anthony Green <green@cygnus.com>
* posix-threads.cc (_Jv_MutexLock): Moved back to posix-threads.h.
(_Jv_MutexUnlock): Ditto.
* include/posix-threads.h (_Jv_MutexLock): From posix-threads.cc.
(_Jv_MutexUnlock): Ditto.
Mark Mitchell [Sun, 9 Apr 2000 04:28:33 +0000 (04:28 +0000)]
Under the new ABI, constructors don't return `this'.
* cp-tree.h (warn_reorder): Declare.
(special_function_kind): New enum.
(global_base_init_list): Remove declaration.
(emit_base_init): Don't return a value.
(check_base_init): Don't declare.
(is_aggr_typedef): Likewise.
* decl.c (check_special_function_return_type): New function.
(return_types): Remove.
(grokdeclarator): Use check_special_function_return_type.
(start_function): Don't initialize ctor_label under the new ABI.
(finish_construtor_body): Don't create a corresponding LABEL_STMT.
* init.c (begin_init_stmts): Move to top of file.
(finish_init_stmts): Likewise.
(warn_reorder): Don't declare.
(emit_base_init): Don't create a STMT_EXPR here. Don't return a
value.
(check_base_init): Remove.
(is_aggr_typedef): Likewise.
(build_new_1): Don't use the return value of a constructor.
* semantics.c (setup_vtbl_ptr): Don't use the return value
of emit_base_init.
* typeck.c (check_return_expr): Don't magically convert return
statements into `return this' in constructors under the new ABI.
Tom Tromey [Sun, 9 Apr 2000 04:13:27 +0000 (04:13 +0000)]
Makefile.in: Rebuilt.
* Makefile.in: Rebuilt.
* Makefile.am (awt_java_source_files): Added new files.
* java/awt/IllegalComponentStateException.java: New file.
* java/awt/ItemSelectable.java: New file.
* java/awt/event/WindowEvent.java: Finished.
* java/awt/event/TextEvent.java: Finished.
* java/awt/event/ContainerEvent.java: New file.
* java/awt/Component.java (getX, getY): New methods.
* java/awt/event/PaintEvent.java: New file.
* java/awt/event/MouseEvent.java: New file.
* java/awt/ActiveEvent.java: New file.
* java/awt/event/KeyEvent.java: Finished.
* java/awt/event/ItemEvent.java: New file.
* java/awt/Adjustable.java: New file.
* java/awt/event/InputMethodEvent.java: New file.
* java/awt/event/InputEvent.java: Finished.
* java/awt/event/FocusEvent.java: New file.
* java/awt/event/MouseMotionAdapter.java: New file.
* java/awt/event/MouseAdapter.java: New file.
* java/awt/event/KeyAdapter.java: New file.
* java/awt/event/FocusAdapter.java: New file.
* java/awt/event/ContainerAdapter.java: New file.
* java/awt/event/ComponentEvent.java: Finished.
* java/awt/event/AdjustmentEvent.java: New file.
* java/awt/event/ComponentAdapter.java: New file.
* java/awt/event/ActionEvent.java: Finished.
* java/awt/event/MouseMotionListener.java: New file.
* java/awt/event/MouseListener.java: New file.
* java/awt/event/ItemListener.java: New file.
* java/awt/event/InputMethodListener.java: New file.
* java/awt/event/ContainerListener.java: New file.
* java/awt/event/FocusListener.java: New file.
* java/awt/event/ComponentListener.java: New file.
* java/awt/event/AWTEventListener.java: New file.
* java/awt/event/AdjustmentListener.java: New file.
John Wehle [Sat, 8 Apr 2000 04:33:28 +0000 (04:33 +0000)]
i386.md (ashrsi3, [...]): Fix typo.
* i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
* i386.md (floathisf2, floathidf2, floathixf2): New patterns.
* i386.c (print_operand): Use the proper suffix for a 387 HImode
operand. Abort if a 387 operand has an unsupported size.
Neil Booth [Sat, 8 Apr 2000 04:00:02 +0000 (04:00 +0000)]
cppexp.c (parse_charconst): Null does not end character constants.
* cppexp.c (parse_charconst): Null does not end character
constants.
* cppinit.c (ISTABLE): Null character handled as whitespace.
* cpplex.c (null_warning): new function.
(skip_string): Emit warning if nulls encountered.
(_cpp_skip_hspace): Emit warning if nulls encountered.
(_cpp_lex_token): Emit warning if nulls encountered. Drop
them.
* cpp.texi: Update.
* flow.c (loop_depth): Remove.
(reg_next_use, cc0_live, mem_set_list): Replace with ...
(struct propagate_block_info): New.
(life_analysis): Don't allocate reg_next_use.
(propagate_block_delete_insn): Break out of propagate_block.
Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
(propagate_block_delete_libcall): Likewise.
(propagate_block): Create a propagate_block_info struct to pass
to subroutines. Allocate one not two temporary regsets. Don't
clobber memory for const calls. Look for clobbers in
CALL_INSN_FUNCTION_USAGE.
(mark_set_regs): Recognize COND_EXEC.
(mark_set_reg): Break out of mark_set_1.
(mark_used_reg): Break out of mark_used_regs.
(mark_used_regs): Recognize COND_EXEC.
(insn_dead_p): Use propagate_block_info struct.
(libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
(find_auto_inc, try_pre_increment_1): Likewise.
(print_rtl_with_bb): Dump regs live at end too.
(count_reg_sets_1): Pass in loop_depth.
(count_reg_sets, count_reg_references): Likewise.
(recompute_reg_usage): Provide it.
cpplib.c (do_elif): Skip the rest of the line if we're not going to bother evaluating it.
* cpplib.c (do_elif): Skip the rest of the line if we're
not going to bother evaluating it.
(skip_if_group): Clear pfile->only_seen_white. Reorder loop
to avoid pointless calls to the lexer.
* gcc.dg/cpp-mi2.c: New test.
* gcc.dg/cpp-mi2[abc].h: New files.
Jakub Jelinek [Fri, 7 Apr 2000 14:57:58 +0000 (16:57 +0200)]
t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
* config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
* Makefile.in: Build crtbeginS and crtendS like crtbegin and
crtend so they can be multilibbed.
(STAGESTUFF): Remove s-crt and s-crtS.
alpha.c (alpha_emit_conditional_move): Fail if we discover we need a pseudo and no_new_pseudos is true.
* config/alpha/alpha.c (alpha_emit_conditional_move): Fail
if we discover we need a pseudo and no_new_pseudos is true.
* config/alpha/alpha.md (ne:DI insn): New.
(trunctfsf2, sne): Emit NE instead of non-canonical LTU.
* gcse.c (gcse_main): Don't rebuild the CFG here.
(delete_null_pointer_checks): Likewise.
* ssa.c (convert_to_ssa): Likewise.
* toplev.c (rest_of_compilation): Do it here instead. Combine
sequential calls to TIMEVAR. Consistently use `insns' instead of
`get_insns()'. Always split insns after reload when optimizing.
* basic-block.h (merge_blocks_nomove): Declare.
(tidy_fallthru_edge): Declare.
* flow.c (merge_blocks_nomove): Document as merging into previous
blocks. Remove cruft from between blocks; remove all edges out of A.
(tidy_fallthru_edge): Export.
Alex Samuel [Fri, 7 Apr 2000 08:16:31 +0000 (08:16 +0000)]
ssa.c (compute_conservative_reg_partition): Declare with void arguments.
* ssa.c (compute_conservative_reg_partition): Declare with
void arguments.
* toplev.c (clean_dump_file): Remove previously-deleted function
inadvertantly merged back in.
* conflict.c (conflict_graph_add): Use a single call to
htab_find_slot to look up and insert.
Alex Samuel [Fri, 7 Apr 2000 03:33:15 +0000 (03:33 +0000)]
Forgot the ChangeLog entry in this commit; here it is.
* rtl.h (INSN_P): New macro.
(successor_phi_fn): New typedef.
(for_each_successor_phi): New prototype.
(in_ssa_form): New variable.
(PHI_NODE_P): Likewise.
* flow.c (calculate_global_regs_live): Add to new_live_at_end from
phi nodes in successors.
(mark_used_regs): Add PHI case.
(set_phi_alternative_reg): New function.
(life_analysis): Assert that dead code elimination is not selected
when in SSA form.
* toplev.c (to_ssa_time): New variable.
(from_ssa_time): Likewise.
(compile_file): Zero to_ssa_time and from_ssa_time.
Print time to convert to and from SSA.
(rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
(print_time): Compute percent fraction as integer.
* ssa.c (PHI_NODE_P): Moved to rtl.h.
(convert_to_ssa): Check if we're already in SSA.
Don't eliminate dead code in life_analysis.
Rerun flow and life analysis at bottom.
(eliminate_phi): Use canonical regnos when adding nodes.
(mark_reg_in_phi): New function.
(mark_phi_and_copy_regs): Likewise.
(convert_from_ssa): Rerun life analysis at top.
Use coalesced partition.
Check for removing a phi node at the end of the block.
(compute_coalesced_reg_partition): New function.
(coalesce_regs_in_copies): Likewise.
(coalesce_reg_in_phi): Likewise.
(coalesce_regs_in_sucessor_phi_nodes): Likewise.
(for_each_successor_phi): Likewise.
(rename_context): New struct.
(rename_block): Use a rename_context with rename_insn_1. When
renaming sets of a subreg, emit a copy of the entire reg first.
(rename_insn_1): Treat data as a rename_context *. Save current
insn in set_data.
(rename_set_data): Add field set_insn.
* Makefile.in (HASHTAB_H): Move up in file.
(OBSTACK_H): New macro.
(collect2.o): Use OBSTACK_H in dependencies.
(sdbout.o): Likewise.
(emit-rtl.o): Likewise.
(simplify-rtx.o): Likewise.
(fix-header.o): Likewise.
(OBJS): Add conflict.o.
(conflict.o): New rule.
* basic-block.h: Include partition.h.
(conflict_graph): New typedef.
(conflict_graph_enum_fn): Likewise.
(conflict_graph_new): New prototype.
(conflict_graph_delete): Likewise.
(conflict_graph_add): Likewise.
(conflict_graph_conflict_p): Likewise.
(conflict_graph_enum): Likewise.
(conflict_graph_merge_regs): Likewise.
(conflict_graph_print): Likewise.
(conflict_graph_compute): Likewise.
* conflict.c: New file.
Alex Samuel [Thu, 6 Apr 2000 21:22:49 +0000 (21:22 +0000)]
rtl.h (INSN_P): New macro.
* rtl.h (INSN_P): New macro.
(successor_phi_fn): New typedef.
(for_each_successor_phi): New prototype.
(in_ssa_form): New variable.
(PHI_NODE_P): Likewise.
* flow.c (calculate_global_regs_live): Add to new_live_at_end from
phi nodes in successors.
(mark_used_regs): Add PHI case.
(set_phi_alternative_reg): New function.
(life_analysis): Assert that dead code elimination is not selected
when in SSA form.
* toplev.c (to_ssa_time): New variable.
(from_ssa_time): Likewise.
(compile_file): Zero to_ssa_time and from_ssa_time.
Print time to convert to and from SSA.
(rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
(print_time): Compute percent fraction as integer.
* ssa.c (PHI_NODE_P): Moved to rtl.h.
(convert_to_ssa): Check if we're already in SSA.
Don't eliminate dead code in life_analysis.
Rerun flow and life analysis at bottom.
(eliminate_phi): Use canonical regnos when adding nodes.
(mark_reg_in_phi): New function.
(mark_phi_and_copy_regs): Likewise.
(convert_from_ssa): Rerun life analysis at top.
Use coalesced partition.
Check for removing a phi node at the end of the block.
(compute_coalesced_reg_partition): New function.
(coalesce_regs_in_copies): Likewise.
(coalesce_reg_in_phi): Likewise.
(coalesce_regs_in_sucessor_phi_nodes): Likewise.
(for_each_successor_phi): Likewise.
(rename_context): New struct.
(rename_block): Use a rename_context with rename_insn_1. When
renaming sets of a subreg, emit a copy of the entire reg first.
(rename_insn_1): Treat data as a rename_context *. Save current
insn in set_data.
(rename_set_data): Add field set_insn.
* Makefile.in (HASHTAB_H): Move up in file.
(OBSTACK_H): New macro.
(collect2.o): Use OBSTACK_H in dependencies.
(sdbout.o): Likewise.
(emit-rtl.o): Likewise.
(simplify-rtx.o): Likewise.
(fix-header.o): Likewise.
(OBJS): Add conflict.o.
(conflict.o): New rule.
* basic-block.h: Include partition.h.
(conflict_graph): New typedef.
(conflict_graph_enum_fn): Likewise.
(conflict_graph_new): New prototype.
(conflict_graph_delete): Likewise.
(conflict_graph_add): Likewise.
(conflict_graph_conflict_p): Likewise.
(conflict_graph_enum): Likewise.
(conflict_graph_merge_regs): Likewise.
(conflict_graph_print): Likewise.
(conflict_graph_compute): Likewise.
* conflict.c: New file.
* cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
(macro_cleanup): No need to cast pbuf->macro.
(collect_expansion): Use _cpp_get_define_token. Goto done if
it returns VSPACE. Remove check for trailing space after
CPP_COMMENT.
(_cpp_create_definition): Don't diddle flags here. Return
directly on error.
(unsafe_chars): Handle c1 being EOF.
(push_macro_expansion): Use unsafe_chars for both accidental-paste
checks. Don't push the buffer till after we're done with
them.
* cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
(PEEKN, FORWARD, GETC, PEEKC): Use them.
(cpp_push_buffer): Don't set new->alimit. Set new->mark
appropriately.
(_cpp_parse_assertion): Don't NUL terminate.
(_cpp_lex_token): Fix -traditional macro handling. Don't skip
hspace before calling _cpp_parse_assertion. Remove all sets
of only_seen_white. Treat '\f' as hspace. Don't do anything
special with '\n' here.
(maybe_macroexpand): Handle T_EMPTY hash entries without
pushing a buffer at all.
(cpp_get_token): Handle clearing only_seen_white here. Handle
incrementing the line number here. Clear
potential_control_macro as well as only_seen_white, if
appropriate.
(cpp_get_non_space_token): Don't eat CPP_POP tokens.
(_cpp_get_define_token): New function, basically like
_cpp_get_directive_token was but doesn't eat horizontal space.
Don't do anything with only_seen_white here.
(_cpp_get_directive_token): Just call _cpp_get_define_token
repeatedly till it returns non-hspace.
* cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
(conditional_skip, skip_if_group): Return int.
(DIRECTIVE_TABLE): Change origin of all conditional directives
to "COND".
(TRAD_DIRECT_P): New macro.
(_cpp_handle_directive): Use _cpp_get_directive_token. Issue
an error for a bogus directive, unless -lang-asm. Use
TRAD_DIRECT_P. Loop calling handler functions till one returns
zero.
(get_macro_name): Don't diddle flags here.
(do_define): Diddle flags here. Use _cpp_get_directive_token.
Create T_EMPTY nodes for #define macro /* nothing */.
(do_undef): Don't copy the name. Use _cpp_get_directive_token.
Use hp->name when calling pass_thru_directive.
(do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
Return the result of conditional_skip and/or skip_if_group.
Don't call _cpp_output_line_command.
(consider_directive_while_skipping): Use _cpp_get_directive_token.
Issue -Wtraditional warnings as appropriate. Don't complain
about unrecognized directives. If we are to stop skipping,
return the number of the directive that ended the skip.
(skip_if_group): Use _cpp_get_directive_token. Turn off macro
expansion and line commands while skipping. Return the result
of consider_directive_while_skipping, if nonzero.
(do_endif): Just set potential_control_macro here.
(validate_else): Use _cpp_get_directive_token.
(do_assert, do_unassert): Don't save pointers into the
token_buffer across calls to the lexer. Use
_cpp_get_directive_token.
* cpplib.h (cpp_buffer): Remove alimit and colno. Make mark a
pointer, not an offset. Replace 'data', which was a generic
pointer, with 'macro', which points to a struct hashnode.
(cpp_reader): Add 'potential_control_macro' pointer.
* cpphash.h (T_UNUSED): Replace with T_EMPTY.
(CPP_BUF_GET, CPP_FORWARD): Delete.
(CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
(CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
ACTIVE_MARK_P): Update.
(_cpp_get_define_token): New internal function.
* cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
Benjamin Kosnik [Thu, 6 Apr 2000 06:48:16 +0000 (06:48 +0000)]
configure.in (enable_libstdcxx_v3): Add.
2000-04-05 Benjamin Kosnik <bkoz@cygnus.com>
Martin v. Loewis <martin@loewis.home.cs.tu-berlin.de>
* configure.in (enable_libstdcxx_v3): Add.
(target_libs): Add bits here to switch between libstdc++-v2 and
libstdc++-v3.
* config.if: And this file too.
* Makefile.in: Add libstdc++-v3 targets.
Co-Authored-By: Martin v. Loewis <martin@loewis.home.cs.tu-berlin.de>
From-SVN: r32963
Benjamin Kosnik [Thu, 6 Apr 2000 06:47:52 +0000 (06:47 +0000)]
configure.in: And here.
2000-04-05 Benjamin Kosnik <bkoz@cygnus.com>
* configure.in: And here.
* configure: Regenerate.
* acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
--enable-libstdcxx-v3 is passed at configure time.
* config.h.in: Regenerate.
Mark Mitchell [Thu, 6 Apr 2000 00:51:25 +0000 (00:51 +0000)]
final.c (final): Use xcalloc to allocate line_note_exists.
* final.c (final): Use xcalloc to allocate line_note_exists.
* function.c (free_after_compilation): Free the temp_slots.
(assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
(combine_temp_slot): Free temp_slots when they get combined.
(purge_addressof): Fix typo in comment.
* stmt.c (mark_goto_fixup): Mark the fixup itself.
(expand_fixup): Allocate the fixup with ggc_alloc_obj.
* ggc.h: Include varray.h.
(ggc_pending_trees): Declare.
(ggc_mark_tree_children): Remove declaration.
(ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
* ggc-common.c (ggc_pending_trees): New variable.
(ggc_mark_roots): Call ggc_mark_trees.
(ggc_mark_tree_children): Rename to ggc_mark_trees. Process all
the ggc_pending_trees.
* Makefile.in (GGC_H): New variable. Use it throughout in place
of ggc.h.
* Makefile.in (GGC_H): New variable. Use it throughout in place
of ggc.h.
* call.c: Don't include obstack.h. Include ggc.h.
(obstack_chunk_alloc): Don't define.
(obstack_chunk_free): Likewise.
(add_candidate): Allocate the z_candidate with ggc_alloc_obj.
* decl.c (push_switch): Use xmalloc to allocate the cp_switch.
(pop_switch): Free it.
* decl2.c (grokclassfn): Set TREE_READONLY for PARM_DECLs.
* dump.c (dequeue_and_dump): Don't try to print the bit_position
if we don't have a DECL_FIELD_OFFSET.