Commit Graph

25461 Commits

Author SHA1 Message Date
Jan Hubicka
1f01879e43 * regclass.c (regclass): Do not use flowgraph when not optimizing.
From-SVN: r30993
1999-12-17 13:19:41 +00:00
Jan Hubicka
833fc3ad23 gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV notes too...
* gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
	notes too, create one when replacement failed, attempt to simplify
	resulting notes.
	(cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
	or REG_EQUIV notes.

From-SVN: r30992
1999-12-17 11:10:58 +00:00
Jeff Law
5928cc35db Daily bump.
From-SVN: r30991
1999-12-17 01:45:07 -07:00
Mark Mitchell
db4283a074 cp-tree.h (cp_tree_index): Add CPTI_DSO_HANDLE.
* cp-tree.h (cp_tree_index): Add CPTI_DSO_HANDLE.
	(dso_handle_node): New macro.
	(flag_use_cxa_atexit): New variable.
	(declare_global_var): New function.
	(start_anon_func): Remove declaration.
	(end_anon_func): Likewise.
	* decl.c (get_atexit_node): New function, split out from
	destroy_local_static.  Handle flag_use_cxa_atexit.
	(get_dso_handle_node): Likewise.
	(start_cleanup_fn): Renamed from start_anon_func.  Moved here from
	except.c.  Handle flag_use_cxa_atexit.
	(end_cleanup_fn): Renamed from end_anon_func.  Moved here from
	except.c.
	(declare_global_var): New variable.
	(destroy_local_static): Handle flag_use_cxa_atexit.
	* decl2.c (flag_use_cxa_atexit): New variable.
	(lang_f_options): Likewise.
	* except.c (start_anon_func): Remove.
	(end_anon_func): Liekwise.
	* lang-options.h: Add -fuse-cxa-atexit and -fno-use-cxa-atexit.
	* rtti.c (get_tinfo_var): Use declare_global_var.

From-SVN: r30990
1999-12-17 07:40:08 +00:00
Mark Mitchell
fc69382254 crtstuff.c (__dso_handle): Declare.
* crtstuff.c (__dso_handle): Declare.
	(__cxa_finalize): Likewise.
	(do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
	non-NULL.

	* invoke.texi: Document -fuse-cxa-atexit.

	* tree.h (ptr_type_node): Document.
	(const_ptr_type_node): Likewise.

From-SVN: r30989
1999-12-17 07:39:13 +00:00
Bryce McKinlay
5ac99d9adc Boolean.java (Boolean(String)): Set Value' to false on a null String constructor parameter.
1999-12-16  Bryce McKinlay  <bryce@albatross.co.nz>

        * java/lang/Boolean.java (Boolean(String)): Set Value' to false on a
        null String constructor parameter.
        * java/net/natPlainSocketImpl.cc: Remove unneccessary sprintf calls
        for exception messages.
        BooleanClass: declare.
        (setOption): Use BooleanClass instead of Class.forName() for
        instanceof test.
        (bind): Cast 4th parameter of setsockopt to char *' for
        compatibility with older Solaris headers.
        * java/net/natPlainDatagramSocketImpl.cc: Remove unneccessary
        sprintf calls for exception messages.
        BooleanClass, IntegerClass: declare.
        (setOption): Use BooleanClass and IntegerClass, not Class.forName()
        for instanceof test.

From-SVN: r30988
1999-12-17 05:11:28 +00:00
Jan Hubicka
fe2e294c7e Oops. Used wrong changelog entry.
* regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
	(optimize_reg_copy_2): Likewise.
	(optimize_reg_copy_3): Likewise.
	(fixup_match_2): Likewise.
	(regmove_optimize): Likewise.
	(fixup_match_1): Liekwise.

From-SVN: r30987
1999-12-17 00:49:22 +00:00
Jan Hubicka
07aaad94e7 regmove.c (copy_src_to_dest): Remove loop_depth parameter.
* regmove.c (copy_src_to_dest): Remove loop_depth parameter.
	(optimize_reg_copy_1): Remove REG_N_REFS updating code.
	(optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
	(regmove_optimize, fixup_match_1): Likewise.

From-SVN: r30986
1999-12-17 00:47:46 +00:00
Jan Hubicka
e9e808584e i386.md (HI to SImode promoting splitters): Rewrite.
* i386.md (HI to SImode promoting splitters): Rewrite.
	(pushsf mem peep2): New.
	(testhi to andhi peep2): Remove.
	* i386.h (x86_promote_QImode): New.
	(TARGET_PROMOTE_QImode): New.
	(PREDICATE_CODES): Add promotable_binary_operator.
	* i386.c (x86_promote_QImode0: New.
	(promotable_binary_operator): New.
	* i386-protos.h (promotable_binary_operator): New.

From-SVN: r30985
1999-12-17 00:45:03 +00:00
Jan Hubicka
a1cbdd7f51 i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify condition.
* i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
	condition.
	(one_cmpl?i*): Pass "NOT" to unary_operator_ok.

From-SVN: r30984
1999-12-17 00:35:39 +00:00
Mark Mitchell
607cf13135 class.c (check_field_decls): Don't return a value.
1999-12-16  Mark Mitchell  <mark@codesourcery.com>

	* class.c (check_field_decls): Don't return a value.
	(avoid_overlap): Moved here from tree.c.
	(build_base_fields): Likewise.
	(check_bases): New function, split out from finish_base_struct.
	(check_bases_and_members): New function, split out from finish_struct_1.
	(struct base_info): Remove cant_have_default_ctor,
	cant_have_const_ctor, cant_have_asn_ref.
	(finish_base_struct): Split semantic analysis into check_bases.
	(finish_struct_methods): Fix bogus assertion.
	(check_field_decls): Call finish_struct_anon here.
	(build_vbase_pointer_fields): Use CLASSTYPE_N_BASECLASSES.
	(finish_struct_1): Use check_bases_and_members.  Reorganize.
	* cp-tree.h (CLASSTYPE_VBASECLASSES): Improve documentation.
	(build_base_fields): Don't declare.
	* tree.c (avoid_overlap): Remove.
	(build_base_fields): Likewise.

From-SVN: r30983
1999-12-16 22:18:22 +00:00
Mark Mitchell
a97901e608 Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
* Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
	* function.c (insert_block_after_note): Remove.
	(retrofit_block): Likewise.
	(identify_blocks): Fix indentation.
	(reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
	NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
	* function.h (insert_block_after_note): Remove prototype.
	(retrofit_block): Likewise.
	* integrate.c (expand_inline_function): Don't call
	find_loop_tree_blocks.  Use expand_start_bindings_and_block, not
	just expand_start_bindings.  Use the block_map to remap old
	NOTE_BLOCKs to new ones.
	(integrate_decl_tree): Keep track of remapped blocks.
	* integrate.h (struct inline_remap): Add block_map.
	* stmt.c (expand_fixup): Don't try to retrofit_blocks.  Just set
	NOTE_BLOCK on the notes.
	(expand_start_bindings): Rename to ...
	(expand_start_bindings_and_block): Add parameter.  Set NOTE_BLOCK.
	(expand_end_bindings): Set NOTE_BLOCK.
	* toplev.c (rest_of_compilation): In function-at-a-time-mode,
	reconstruct the BLOCK tree.
	* tree.h (expand_start_bindings): Macroize.  Call ...
	(expand_start_bindings_and_block): New function.

	* optimize.c (struct inline_data): Remove scope_stmt.
	(remap_block): Don't use insert_block_after_note.  Don't update
	scope_stmt.
	(expand_call_inline): Don't update scope_stmt.
	(optimize_function): Don't initialize scope_stmt.
	* semantics.c (expand_stmt): Set NOTE_BLOCK for newly emitted
	NOTE_INSN_BLOCK_BEG/NOTE_INSN_BLOCK_END notes.

From-SVN: r30982
1999-12-16 17:50:29 +00:00
Jakub Jelinek
0d9484c5ad sparc.c (print_operand): Cast fprintf arguments to match the format.
* config/sparc/sparc.c (print_operand): Cast fprintf arguments to
	match the format.

From-SVN: r30981
1999-12-16 18:12:10 +01:00
David S. Miller
76a7c776f9 sparc.c (epilogue_renumber): Add default case to switch stmt.
* config/sparc/sparc.c (epilogue_renumber): Add default case
	to switch stmt.

From-SVN: r30980
1999-12-16 08:37:50 -08:00
David S. Miller
235ae7be49 expr.c (emit_move_insn_1): Only emit clobbers if one of the outputs is a SUBREG.
* expr.c (emit_move_insn_1): Only emit clobbers if one of
	the outputs is a SUBREG.
	* rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
	change.

From-SVN: r30979
1999-12-16 06:55:20 -08:00
Jan Hubicka
5b772bbdc0 toplev.c (rest_of_compilation): Run branch shortening after reg-stack.
* toplev.c (rest_of_compilation): Run branch shortening after
        reg-stack.

From-SVN: r30978
1999-12-16 03:58:12 -07:00
Bernd Schmidt
8cc24765ee New testcase.
From-SVN: r30977
1999-12-16 10:45:50 +00:00
Jan Hubicka
954d8e993c regclass.c (loop_depth): Remove
* regclass.c (loop_depth): Remove
	(scan_one_insn): Do not handle LOOP_NOTE insns.
	(regclass): Go through basic blocks and set loop_cost

From-SVN: r30976
1999-12-16 10:35:14 +00:00
Bernd Schmidt
5ba280dae8 Fix an older test
From-SVN: r30975
1999-12-16 10:20:44 +00:00
Zack Weinberg
3d62d65114 * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
From-SVN: r30974
1999-12-16 02:58:23 -07:00
Richard Henderson
27114460d3 * loop.c (insert_loop_mem): Ignore memory clobbers.
From-SVN: r30973
1999-12-16 02:55:20 -07:00
Jan Hubicka
4cbfbb1bbb i386.md (movqi): Use "nonimmediate_operand" for output operand.
* i386.md (movqi): Use "nonimmediate_operand" for output operand.
	(movstrictqi, movdi, movsf, movdf, movxf): Likewise.
	(adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.

From-SVN: r30972
1999-12-16 09:50:17 +00:00
Jeffrey A Law
df55ea0914 * profile.c: Remove redundant #include "output.h".
From-SVN: r30971
1999-12-16 02:46:28 -07:00
Richard Henderson
0bd4b46174 combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0) to (OP A B).
* combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
        to (OP A B).

From-SVN: r30970
1999-12-16 02:42:57 -07:00
Jeffrey A Law
41adf8980c * h8300.md (HImode preinc peephole): Fix typo.
From-SVN: r30969
1999-12-16 02:27:51 -07:00
Jeff Law
1f7c249a1a Daily bump.
From-SVN: r30968
1999-12-16 01:45:07 -07:00
Michael Meissner
0b1f07255c Add new tests for long long spanning reg/stack
From-SVN: r30967
1999-12-16 06:13:46 +00:00
Mark Mitchell
58010b57a6 class.c (handle_using_decl): Get TYPE_FIELDS and TYPE_METHODS out of the class...
* class.c (handle_using_decl): Get TYPE_FIELDS and TYPE_METHODS
	out of the class, rather than taking them as parameters.
	(build_vbase_pointer_fields): Move here from tree.c.
	(build_vtbl_or_vbase_field): New function.
	(check_methods): Likewise.
	(remove_zero_width_bitfields): Likewise.
	(add_virtual_function): Use tree_cons instead of temp_tree_cons.
	(delete_duplicate_fields_1): Tidy.  Don't delete duplicate
	USING_DECLs here.
	(finish_struct_methods): Handle the case where there are no
	methods here.
	(get_basefndecls): Use tree_cons instead of temp_tree_cons.
	(check_field_decls): Call delete_duplicate_fields here.
	(finish_struct_1): Tidy.  Use check_methods and
	remove_zero_width_bitfields.
	* cp-tree.h (build_vbase_pointer_fields): Remove.
	* decl.c (grokdeclarator): Use tree_cons instead of
	temp_tree_cons.
	* decl2.c (qualified_lookup_using_namespace): Use tree_cons
	instead of temp_tree_cons.
	* lex.c (cons_up_default_function): Remove dead code.
	* method.c (fixup_pending_inline): New function, split out from	...
	(do_inline_function_hair): ... here.
	* tree.c (build_vbase_pointer_fields): Remove.

From-SVN: r30966
1999-12-16 03:10:12 +00:00
Jason Merrill
5afb79e7f8 function.c (retrofit_block): Abort if we don't find a suitable insn.
* function.c (retrofit_block): Abort if we don't find a suitable insn.
        (insert_block_after_note): Abort if we don't have a previous block.
        Remove FN parameter.
        * function.h: Adjust.

        * tree.c (walk_tree): Walk operand subtrees in forward order.
        * optimize.c (expand_call_inline): Likewise.
        (optimize_function): Initialize id->scope_stmt to something useful.
        (remap_block): Assume id->scope_stmt has a useful value.

From-SVN: r30965
1999-12-15 19:09:35 -05:00
Tom Tromey
6150df627a natSystem.cc (init_properties): Don't set user.name or user.home if NO_GETUID defined.
* java/lang/natSystem.cc (init_properties): Don't set user.name or
	user.home if NO_GETUID defined.  Only set user.dir if getcwd
	exists.

	* include/config.h.in: Rebuilt.
	* acconfig.h (NO_GETUID): New define.
	* configure.in: Rebuilt.
	* configure.in: Define NO_GETUID in cross case.  Check for getcwd
	in native case.

From-SVN: r30964
1999-12-15 22:38:56 +00:00
Mark Mitchell
5a626f11f4 builtins.c (expand_builtin_mathfn): Make sure not to expand the argument more than once.
* builtins.c (expand_builtin_mathfn): Make sure not to expand the
	argument more than once.

From-SVN: r30963
1999-12-15 20:56:58 +00:00
Jason Merrill
4d9af632c4 * stmt.c (expand_decl): Expand upper bound of a dynamic array.
From-SVN: r30962
1999-12-15 14:56:41 -05:00
Jason Merrill
8890f3d8df tweak comments
From-SVN: r30961
1999-12-15 14:33:38 -05:00
Jakub Jelinek
8b725198ed * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
From-SVN: r30960
1999-12-15 17:36:26 +01:00
Jan Hubicka
a087165623 function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
* function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
	(assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
	update stack_alignment_needed.
	(prepare_function_start): Initialize stack_alignment_needed
	* function.h (struct function): Add field stack_alignment_needed.

From-SVN: r30958
1999-12-15 15:34:03 +00:00
J"orn Rennecke
285f3cf09a caller-save.c (insert_one_insn): Returns struct insn_chain *.
* caller-save.c (insert_one_insn): Returns struct insn_chain *.
	Handle live_throughout / dead_or_set instead of live_before /
	live_after.
	(save_call_clobbered_regs): Get register livenessinformation from
	chain->live_throughout.
	(add_stored_regs): New function.
	(insert_restore, insert_save): Add restored / saved registers to
	dead_or_set.
	* global.c (reg_dies): New parameter chain.
	(reg_becomes_live): Third parameter is regs_set now.
	Changed all callers.
	(reg_dies): New parameter chain.  Changed all callers.
	(build_insn_chain): Set live_throughout instead of
	live_before / live_after.
	* reload.h (struct insn_chain): Replace members live_before /
	live_after with live_throughout / dead_or_set.
	* reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
	instead of live_before / live_after.
	(maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
	(order_regs_for_reload, find_reg, finish_spills): Likewise.
	(choose_reload_regs_init): Likewise.
	* stupid.c (current_chain, find_clobbered_regs): Delete.
	(stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
	instead of chain->live_before / chain->live_after.
	(mark_hard_ref): New function.
	(stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.

From-SVN: r30957
1999-12-15 14:57:29 +00:00
David S. Miller
4940cd6041 rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
1999-12-15  David S. Miller  <davem@redhat.com>

	* rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.

From-SVN: r30956
1999-12-15 06:33:50 -08:00
Jan Hubicka
35836a43fa flow.c (calculate_loop_depth): Make global, remove prototype, rewrite to use new loop infrastructure.
* flow.c (calculate_loop_depth): Make global, remove prototype,
	rewrite to use new loop infrastructure.
	(find_basic_block): Remove calculate_loop_depth call.
	* toplev.c (rest_of_compilation): Call find_basic_block.
	* output.h (calculate_loop_depth): Declare.

From-SVN: r30955
1999-12-15 14:17:59 +00:00
Jan Hubicka
ce4bbac71c flow.c (dump_flow_info): Dump loop_depth.
* flow.c (dump_flow_info): Dump loop_depth.
	(flow_loop_nodes_find): Increase loop_depth for basic block in the
	body.
	(flow_loop_find): Initialize the loop_depth for each basic block.

From-SVN: r30954
1999-12-15 14:09:52 +00:00
Nathan Sidwell
41bd0db1f0 * g++.old-deja/g++.warn/cast-align1.C: New test.
From-SVN: r30953
1999-12-15 12:40:30 +00:00
Nathan Sidwell
8be7ab5d48 typeck.c (build_c_cast): Expand warning message.
* typeck.c (build_c_cast): Expand warning message. Move pointer
	alignment warning to after the cast. Don't warn about pointer
	alignment when given a pointer to incomplete.
fix cut-n-paste error on 1999-12-09  Andreas Jaeger and
1999-12-09  Mark Mitchell (was 11999 & 999)

From-SVN: r30952
1999-12-15 12:39:02 +00:00
Richard Henderson
33848bb028 cp-tree.h (make_aggr_type): Declare.
* cp-tree.h (make_aggr_type): Declare.
        * lex.c (cp_make_lang_type): Don't SET_IS_AGGR_TYPE.
        (make_aggr_type): New.

        * decl.c (build_typename_type, init_decl_processing): Use it.
        (build_ptrmemfunc_type, xref_tag): Likewise.
        * except.c (call_eh_info): Likewise.
        * init.c (init_init_processing): Likewise.
        * pt.c (process_template_parm, lookup_template_class): Likewise.
        * rtti.c (expand_class_desc): Likewise.
        * semantics.c (begin_class_definition, finish_typeof): Likewise.
        * tree.c (copy_template_template_parm): Likewise.

From-SVN: r30951
1999-12-15 01:51:24 -08:00
Jason Merrill
6ff7fb9572 tree.c (decl_function_context): Handle virtual functions.
* tree.c (decl_function_context): Handle virtual functions.

        * tlink.c (scan_linker_output): Don't look in demangled name when
        looking for linker output keywords.

        * dwarfout.c (output_type): We can defer namespace-scope classes.

From-SVN: r30950
1999-12-15 04:37:48 -05:00
Jason Merrill
04a2ecf780 cp-tree.def (TEMPLATE_PARM_INDEX): Calculate size using sizeof (struct tree_common).
* cp-tree.def (TEMPLATE_PARM_INDEX): Calculate size using
	sizeof (struct tree_common).

From-SVN: r30949
1999-12-15 04:18:21 -05:00
Jason Merrill
03c3ba3937 Makefile.in (MYCXXFLAGS): Include $(CXXFLAGS).
* Makefile.in (MYCXXFLAGS): Include $(CXXFLAGS).
        (MYCFLAGS): Include $(CFLAGS).

From-SVN: r30948
1999-12-15 04:13:57 -05:00
Jason Merrill
3eea0202cd filedoalloc.c, [...]: Remove advertising clause from BSD license, pursuant with
* filedoalloc.c, floatio.h, iovfprintf.c, iovfscanf.c: Remove
        advertising clause from BSD license, pursuant with

          ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change

From-SVN: r30947
1999-12-15 04:13:06 -05:00
Jason Merrill
1ae8994fb3 dwarf2out.c (add_abstract_origin_attribute): Do call abort if the abstract origin wasn't emitted.
* dwarf2out.c (add_abstract_origin_attribute): Do call abort if
        the abstract origin wasn't emitted.

From-SVN: r30946
1999-12-15 04:05:18 -05:00
Jason Merrill
8cb360d3a2 optimize.c (expand_call_inline): Set BLOCK_ABSTRACT_ORIGIN on the outermost block to point to the inlined...
* optimize.c (expand_call_inline): Set BLOCK_ABSTRACT_ORIGIN on the
        outermost block to point to the inlined function decl.

From-SVN: r30945
1999-12-15 04:03:06 -05:00
Jeff Law
6ae63bcd1f Daily bump.
From-SVN: r30944
1999-12-15 01:45:06 -07:00
Jeffrey A Law
accef10312 regclass.c (record_reg_classes): Update comment for merging register class preferences in reg->reg copies.
* regclass.c (record_reg_classes): Update comment for merging
        register class preferences in reg->reg copies.  Tighten conditions
        for merging register class preferences in reg->reg copies.

From-SVN: r30943
1999-12-15 01:29:37 -07:00