Commit Graph

24470 Commits

Author SHA1 Message Date
Richard Henderson
d3a923ee2e Makefile.in (flow.o): Depend on TREE_H.
* Makefile.in (flow.o): Depend on TREE_H.
	* basic-block.h (REG_SET_EQUAL_P): New.
	(XOR_REG_SET): New.
	(n_edges): Declare.
	(free_regset_vector): Remove declaration.
	(flow_delete_insn_chain): Declare.
	(enum update_life_extent): New.
	(update_life_info, count_or_remove_death_notes): Declare.
	* combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
	Verify register live at bb->global_live_at_start before adding USE.
	* flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
	(CLEAN_ALLOCA): New.
	(n_edges): New.
	(PROP_*): New flags.
	(find_basic_blocks_1): Use alloc_EXPR_LIST.
	(clear_edges): Zero n_edges.
	(make_edge): Increment n_edges.
	(split_edge): Don't allocate bb->local_set.  Increment n_edges.
	(flow_delete_insn_chain): Export.
	(delete_block): Decrement n_edges.
	(merge_blocks_nomove): Likewise.
	(life_analysis): Give life_analysis_1 PROP flags.
	(verify_wide_reg_1, verify_wide_reg): New.
	(verify_local_live_at_start): New.
	(update_life_info): Rewrite to call into propogate_block.
	(mark_reg): New.
	(mark_regs_live_at_end): After reload, if epilogue as rtl,
	always mark stack pointer.  Conditionally mark PIC register.
	After reload, mark call-saved registers, return regsiters.
	(life_analysis_1): Accept PROP flags not remove_dead_code.
	Call mark_regs_live_at_end before zeroing regs_ever_live.
	Use calculate_global_regs_live.  Copy global_live_at_end before
	calling final propagate_block.  Zero reg_next_use on exit.
	(calculate_global_regs_live): New.
	(allocate_bb_life_data): Don't allocate bb->local_set.
	(init_regset_vector, free_regset_vector): Remove.
	(propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
	Test flags before every operation.  Warn if prologue/epilogue insn
	would have been deleted.
	(mark_set_regs, mark_set_1): Accept and use FLAGS.
	Use alloc_EXPR_LIST.
	(mark_used_regs): Accept and use FLAGS, not FINAL.
	Remove special handling for RETURN.
	(try_pre_increment): Use alloc_EXPR_LIST.
	(dump_flow_info): Dump n_edges.
	(unlink_insn_chain, split_hard_reg_notes): Remove.
	(maybe_add_dead_note, maybe_add_dead_note_use): Remove.
	(find_insn_with_note, new_insn_dead_notes): Remove.
	(update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
	(maybe_remove_dead_notes, prepend_reg_notes): Remove.
	(replace_insns): Remove.
	(count_or_remove_death_notes): New.
	(verify_flow_info): Abort on error after all checks.
	(remove_edge): Decrement n_edges.
	(remove_fake_edges): Tweek format.
	* haifa-sched.c (schedule_insns): Use split_all_insns.
	* output.h (update_life_info): Remove declaration.
	* recog.c (split_all_insns): From the corpse of split_block_insns,
	do the whole function block by block.  Use update_life_info.
	(recog_last_allowed_insn): New.
	(recog_next_insn): Mind it.
	(peephole2_optimize): Set it.  Walk backwards through blocks.
	Use update_life_info.
	* rtl.h (update_flow_info, replace_insns): Remove declarations.
	(split_all_insns): Declare.
	* toplev.c (rest_of_compilation): Thread prologue before flow2.
	Use split_all_insns.

	* i386.md (or -1 peep2s): Disable.

From-SVN: r29877
1999-10-09 12:47:18 -07:00
Richard Henderson
1640ef3802 Test commit.
From-SVN: r29876
1999-10-09 12:07:33 -07:00
Richard Henderson
7a5a60cf0f * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
From-SVN: r29875
1999-10-09 12:03:29 -07:00
Richard Henderson
cf45bb0618 mips.md (movstrsi+[123]): Combine these into a single pattern.
* config/mips/mips.md (movstrsi+[123]) : Combine these into
	a single pattern.  Scrap the 'd' versions as unnecessary.

	* config/mips/mips.md (tablejump_internal3,tablejump_mips161,
	tablejump_mips162,tablejump_internal4): The operands to a
	label_ref must be VOIDmode.

From-SVN: r29874
1999-10-08 21:54:12 +00:00
Kaveh R. Ghazi
64fb023e4e * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
From-SVN: r29873
1999-10-08 20:16:42 +00:00
Richard Henderson
455419a530 lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the cache every function if ggc_p.
* lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
        cache every function if ggc_p.

From-SVN: r29872
1999-10-08 11:59:27 -07:00
Bernd Schmidt
a6de7040f8 New testcase
From-SVN: r29871
1999-10-08 18:00:01 +00:00
Bernd Schmidt
da43a810ca Add functions copy_insn/copy_insn_1; use them in jump.c
From-SVN: r29870
1999-10-08 17:39:10 +00:00
Kaveh R. Ghazi
b1afd7f4e0 Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
* Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.

        * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
        arguments to `current_file_function_operand'.

        * genrecog.c: Include hard-reg-set.h and resource.h in the
        generated output file.

        * real.c: Include tm_p.h.

cp:
        * method.c: Include tm_p.h.

From-SVN: r29869
1999-10-08 17:10:19 +00:00
Bernd Schmidt
9d17a893d3 Fix bad constraints in prologue_allocate_stack in i386.md
From-SVN: r29868
1999-10-08 17:03:57 +00:00
Jeff Law
851a35a35b Daily bump.
From-SVN: r29867
1999-10-08 01:46:23 -06:00
Richard Henderson
a8af032191 rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber before the fctiwz insn.
* rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
        before the fctiwz insn.

From-SVN: r29866
1999-10-07 23:07:50 -07:00
Franz Sirl
266f2faa84 cp-tree.h (cp_make_lake_type): Renamed from make_lang_type.
* cp-tree.h (cp_make_lake_type): Renamed from make_lang_type.
        * lex.c (cp_make_lake_type): Likewise.
        * tree.c (init_tree): Init make_lang_type_fn.

From-SVN: r29865
1999-10-08 05:50:44 +00:00
Franz Sirl
0f4fd75d9a tree.c (make_lang_type_fn): New funtion pointer.
* tree.c (make_lang_type_fn): New funtion pointer.
        (make_lang_type): Call it.
        * tree.h (make_lang_type): Declare.
        (make_lang_type_fn): Likewise.
        * rs6000.c (rs6000_build_va_list): Use make_lang_type.

Co-Authored-By: Mark Mitchell <mark@codesourcery.com>

From-SVN: r29864
1999-10-08 05:48:29 +00:00
Mark Mitchell
f8191e640d pt.c (tsubst_expr): Set DECL_TEMPLATE_INSTANTIATED for a catch paramter.
* pt.c (tsubst_expr): Set DECL_TEMPLATE_INSTANTIATED for a catch
	paramter.

	* semantics.c (expand_stmt): Don't pretend to have asmspecs for
	local statics if we don't really have them.

	* ir.texi: Improve documentation for STMT_EXPR.  Describe
	CLEANUP_POINT_EXPR.

From-SVN: r29863
1999-10-08 05:42:36 +00:00
Mark Mitchell
7d00586921 Fix test case
From-SVN: r29862
1999-10-08 05:35:02 +00:00
Diego Novillo
e6f5c0ed64 Moved ChangeLog entry for a recent change to gcc/config/rs6000 to
its proper place in gcc/ChangeLog.

From-SVN: r29861
1999-10-07 23:31:43 -04:00
Jason Merrill
6fbfac9226 expr.c (expand_expr, [...]): Set TREE_USED sooner.
* expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.

	* c-decl.c (finish_struct): Use simpler method of
	removing elements of a singly-linked list.

From-SVN: r29860
1999-10-07 20:10:09 -04:00
Jason Merrill
11028a5379 class.c (build_vtable_entry_ref): Use finish_asm_stmt.
* class.c (build_vtable_entry_ref): Use finish_asm_stmt.

	* class.c (finish_struct_1): Use simpler method of
	removing elements of a singly-linked list which doesn't
	lose for classes without data members.

From-SVN: r29859
1999-10-07 20:08:23 -04:00
Michael Meissner
45df366316 Comment out peepholes that generate buggy code
From-SVN: r29858
1999-10-07 19:25:54 +00:00
Richard Henderson
c2d9fa7b17 genrecog.c (add_to_sequence): Disable mode check for wildcard matches.
* genrecog.c (add_to_sequence): Disable mode check for
        wildcard matches.

From-SVN: r29857
1999-10-07 12:02:36 -07:00
Bernd Schmidt
ed23b2a950 Initialize empty_string in ggc-simple.
From-SVN: r29856
1999-10-07 18:28:15 +00:00
Mark Mitchell
c219b87877 friend.c (make_friend_class): Robustify.
* friend.c (make_friend_class): Robustify.

	* semantics.c (finish_object_call_expr): Reject calls to template
	types.

From-SVN: r29855
1999-10-07 16:41:48 +00:00
Anthony Green
ab150fb189 During class file generation...
During class file generation, generate_classfile occasionally writes
out a bunch of data and then skips backwards to fill in blanks.  When
configured with --enable-checking, this patching up will often trip
the checking code.  This change introduces UNSAFE_PUTx macros which
never use CHECK_PUT.  These should only be used in cases we know
CHECK_PUT will fail.

From-SVN: r29854
1999-10-07 13:26:01 +00:00
Richard Henderson
81bf3d9ed3 configure.in: Detect mmap.
* configure.in: Detect mmap.  Add --with-gc=foo to select
        garbage collector; default to page if mmap available.
        * Makefile.in (GGC): Substitute.

From-SVN: r29853
1999-10-07 01:15:19 -07:00
Jeff Law
bdf768134b Daily bump.
From-SVN: r29852
1999-10-07 01:45:09 -06:00
Richard Henderson
0f695c379e * c-decl.c (ggc_p): Enable.
From-SVN: r29851
1999-10-06 23:57:07 -07:00
Diego Novillo
201b6183d2 rs6000.c (secondary_reload_class): For TARGET_ELF make sure that HIGH instructions are copied into BASE_REGS.
* config/rs6000/rs6000.c (secondary_reload_class): For
	TARGET_ELF make sure that HIGH instructions are copied
	into BASE_REGS.

From-SVN: r29850
1999-10-07 02:38:15 -04:00
Mark Mitchell
56934d5c71 * dump.c (dequeue_and_dump): Dump all three operands to a COND_EXPR.
From-SVN: r29849
1999-10-07 03:34:58 +00:00
Tom Tromey
f2646bf2fa configure.in (GCJ): Define as "target-gcj", not "target/gcj" when building Canadian cross.
* configure.in (GCJ): Define as "target-gcj", not "target/gcj"
	when building Canadian cross.
	(NATIVE): Don't define when cross-compiling.

From-SVN: r29848
1999-10-06 23:13:37 +00:00
Kaveh R. Ghazi
dd6d68a933 * flow.c (verify_flow_info): Make it extern & unconditionally define.
From-SVN: r29847
1999-10-06 21:23:52 +00:00
Brendan Kehoe
129a720f0a sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc string for little-endian-data.
* sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
	string for little-endian-data.

From-SVN: r29846
1999-10-06 16:20:15 -04:00
Michael Meissner
319d943479 Fix sanity check
From-SVN: r29845
1999-10-06 20:14:28 +00:00
Richard Henderson
2224ac3c4e genrecog.c (add_to_sequence): Verify operand to label_ref is VOIDmode.
* genrecog.c (add_to_sequence): Verify operand to label_ref is
        VOIDmode.

From-SVN: r29844
1999-10-06 12:24:28 -07:00
Mark Mitchell
d3a3fb6add cp-tree.h (CLASSTYPE_VFIELD): Remove.
* cp-tree.h (CLASSTYPE_VFIELD): Remove.
	* call.c (build_vfield_ref): Use TYPE_VFIELD, not
	CLASSTYPE_VFIELD.
	* class.c (get_vfield_offset): Likewise.
	(finish_base_struct): Likewise.
	(modify_one_vtable): Likewise.
	(fixup_vtable_deltas): Likewise.
	(finish_struct_1): Likewise.
	* init.c (expand_virtual_init): Likewise.
	* search.c (lookup_field_1): Likewise.
	(expand_upcast_fixups): Likewise.
	* typeck.c (build_component_ref): Likewise.
	(build_binary_op_nodefault): Likewise.

	* dump.c (dqueue_and_dump): Dump TYPE_VFIELD.
	* ir.texi: Document TYPE_VFIELD.

From-SVN: r29843
1999-10-06 19:01:44 +00:00
Brendan Kehoe
a4156b889d decl.c (grokdeclarator): Only warn about non-zero arrays if !in_system_header (linux socketbits.h can...
* decl.c (grokdeclarator): Only warn about non-zero arrays if
	!in_system_header (linux socketbits.h can give this for
	__cmsg_data, which is using a GNU extension).

From-SVN: r29842
1999-10-06 13:48:17 -04:00
Richard Henderson
2ee2956a63 genconfig.c (main): Disable HAVE_conditional_arithmetic.
* genconfig.c (main): Disable HAVE_conditional_arithmetic.
        * jump.c (jump_optimize_1): Document why.

From-SVN: r29841
1999-10-06 10:22:54 -07:00
Kaveh R. Ghazi
f428f25240 collect2.c (scan_prog_file, [...]): Prototype function pointers and casts for int_handler' and quit_handler'.
* collect2.c (scan_prog_file, scan_libraries): Prototype function
       pointers and casts for `int_handler' and `quit_handler'.

       * flow.c (verify_flow_info, split_hard_reg_notes,
       find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
       remove_edge, remove_fake_successors): Add static prototypes.
       (verify_flow_info): Wrap with macro ENABLE_CHECKING.
       (mark_set_1): Initialize variable `regno'.
       (unlink_insn_chain): Likewise for variable `curr'.
       (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.

       * loop.c (strength_reduce): Initialize variable
       `unrolled_insn_copies'.
       (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
       prototypes.  Change these functions to take const PTR parameters
       to avoid prototype conflict when used as the comparson argument
       for qsort.
       (check_dbra_loop): Initialize variable `comparison_val'.

       * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
       (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
       (find_valid_class): Initialize variable `best_class'.
       (find_reloads): Call memcpy, not bcopy.

       * reload1.c (gen_mode_int, dump_needs): Add prototypes.
       (hard_reg_use_compare): Don't needlessly cast away const.
       (reload_reg_class_lower): Likewise.
       (choose_reload_regs): Initialize variable `regno'.

From-SVN: r29840
1999-10-06 14:48:41 +00:00
Jeff Law
1e0a44093b Daily bump.
From-SVN: r29839
1999-10-06 01:45:19 -06:00
Mark Mitchell
13ef1ec581 decl2.c (start_static_storage_duration_function): Push the function declaration so it ends up in namespace scope.
* decl2.c (start_static_storage_duration_function): Push the
	function declaration so it ends up in namespace scope.

From-SVN: r29838
1999-10-06 06:18:18 +00:00
Mark Mitchell
3454335f03 dump.c (DUMP_CHILDREN): Remove.
* dump.c (DUMP_CHILDREN): Remove.
	(DUMP_BINFO): Adjust.
	(struct dump_node_info): Remove dump_children_p.
	(queue_and_dump_type): Remove dump_children_p parameter.
	(queue): Don't set dump_children_p.
	(dump_child): Pass DUMP_NONE, instead of DUMP_CHILDREN, to
	queue_and_dump_index.
	(dequeue_and_dump): Unconditionally print children.  Adjust calls
	to functions mentioned above.
	(dump_node):  Pass DUMP_NONE, instead of DUMP_CHILDREN to queue.

From-SVN: r29837
1999-10-06 05:35:38 +00:00
Michael Meissner
dca31eb4cc Redo changelog entry.
From-SVN: r29836
1999-10-06 03:25:39 +00:00
Mark Mitchell
3651fb44bb ir.texi: Document BIND_EXPR, LOOP_EXPR, and EXIT_EXPR.
* ir.texi: Document BIND_EXPR, LOOP_EXPR, and EXIT_EXPR.
	* dump.c (dequeue_and_dump): Dump them.

From-SVN: r29835
1999-10-05 23:59:27 +00:00
Mark Mitchell
cd6642cbec * ir.texi: Document LOOP_EXPR and EXIT_EXPR.
From-SVN: r29834
1999-10-05 23:40:00 +00:00
Paul Burchard
85f88abf55 * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
From-SVN: r29833
1999-10-05 23:29:32 +00:00
Michael Meissner
820f6e3ac9 Make libgcc1-test.c compile without warnings
From-SVN: r29832
1999-10-05 23:07:09 +00:00
Michael Meissner
2f9e65b1f1 Do not include stddef.h if building trampoline support and inhibit_libc is defined
From-SVN: r29831
1999-10-05 19:59:03 +00:00
Michael Meissner
139fa6f87b Mark args as unused.
From-SVN: r29830
1999-10-05 19:48:55 +00:00
Michael Meissner
df231a0970 Declare malloc, free, and atexit if inhibit_libc is defined.
From-SVN: r29829
1999-10-05 19:41:35 +00:00
Richard Henderson
dbf08f94a7 flow.c (make_edge): Accept an optional 2D bitmap in which to cache edge existence.
* flow.c (make_edge): Accept an optional 2D bitmap in which
        to cache edge existence.  Update all callers.
        (make_label_edge, make_eh_edge): Pass through the edge cache.
        (make_edges): Provide the cache.

From-SVN: r29828
1999-10-05 12:01:01 -07:00