Commit Graph

19119 Commits

Author SHA1 Message Date
Jeff Law
18e765cbda [multiple changes]
1998-10-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
        * reorg.c (steal_delay_list_from_target) Check for insns that
        modify the condition codes and effect the direction of the jump
        in the sequence.
Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
        * function.c (purge_addressof_1): Replace call to
        emit_insns_before() with emit_insn_before().

From-SVN: r23189
1998-10-19 14:23:44 -06:00
Jason Merrill
ea4d3ff6e0 new
From-SVN: r23188
1998-10-19 16:13:26 -04:00
Jason Merrill
1590ea76e9 update
From-SVN: r23187
1998-10-19 16:13:15 -04:00
Jason Merrill
51924768e7 Revamp references to member functions.
* method.c (hack_identifier): Call build_component_ref for a
	reference to a member function.
	* typeck.c (build_component_ref): Only return a single function
	if it's static.  Otherwise, return a COMPONENT_REF.
	(build_x_function_call): Handle a COMPONENT_REF.
	(build_unary_op): Handle all unknown-type things.
	* decl2.c (arg_assoc): Handle COMPONENT_REF.
	* class.c (instantiate_type): Complain if the function we get is a
	nonstatic member function.  Remove code for finding "compatible"
	functions.
	* pt.c (tsubst_copy): Handle NOP_EXPR.
	* tree.c (build_dummy_object): New fn.
	(maybe_dummy_object): New fn.
	(is_dummy_object): New fn.
	* cp-tree.h: Declare them.
	* cvt.c (cp_convert_to_pointer): Use maybe_dummy_object.
	* error.c (dump_expr, case OFFSET_REF): Use is_dummy_object.
	* init.c (build_member_call): Use maybe_dummy_object and
	is_dummy_object.
	(build_offset_ref): Use maybe_dummy_object.
	(resolve_offset_ref): Use is_dummy_object.
	* typeck.c (build_x_function_call): Call build_dummy_object.
	(unary_complex_lvalue): Call is_dummy_object.
	* typeck.c (build_component_addr): Make sure field is a field.
	* call.c (build_new_op): Delete obsolete code.
	* pt.c (tsubst, TEMPLATE*PARM*): Abort if we don't have any args.

From-SVN: r23186
1998-10-19 16:08:23 -04:00
Mike Stump
4f2905fb4b * libgcc2.c (__pure_virtual): Call __terminate instead of _exit.
From-SVN: r23185
1998-10-19 15:34:53 -04:00
Per Bothner
8b27f22596
Undo some mistakes from previous merge.

From-SVN: r23184
1998-10-19 06:43:57 -07:00
Per Bothner
c20012b633
Undo some mistakes from previous merge.

From-SVN: r23183
1998-10-19 06:43:55 -07:00
Jeffrey A Law
dbcce8f8e8 * 981019-1.c: New test.
From-SVN: r23182
1998-10-19 07:04:43 -06:00
Jeff Law
2fb5435af8 Fix dumb thinko.
From-SVN: r23181
1998-10-19 07:03:32 -06:00
Bernd Schmidt
51d87cd905 * jump.c (sets_cc0_p): Compile only if HAVE_cc0.
From-SVN: r23180
1998-10-19 06:28:19 -06:00
Jeffrey A Law
e1f7435e41 loop.c (scan_loop): Be more selective about what invariants are moved out of a loop.
* loop.c (scan_loop): Be more selective about what invariants are
        moved out of a loop.

From-SVN: r23178
1998-10-19 06:20:32 -06:00
Jeffrey A Law
38bf4c6fcd Bump for snapshot
From-SVN: r23176
1998-10-19 04:47:33 -06:00
Jeffrey A Law
c3cad2213e libgcc2.c (eh_context_static): Do not call malloc to allocate the static eh_context structure.
* libgcc2.c (eh_context_static): Do not call malloc to allocate the
        static eh_context structure.

From-SVN: r23175
1998-10-19 04:44:52 -06:00
Jeffrey A Law
b1fc873cc2 reload1.c (reload_reg_free_before_p): Hack.
* reload1.c (reload_reg_free_before_p): Hack.  Return 0 if EQUIV
        is nonzero.  This is temporary!

From-SVN: r23174
1998-10-19 04:30:23 -06:00
Dave Love
495e6ebb40 configure.in: Use AC_CONFIG_AUX_DIR.
1998-10-19  Dave Love  <d.love@dl.ac.uk>
	* configure.in: Use AC_CONFIG_AUX_DIR.

From-SVN: r23173
1998-10-19 10:14:19 +00:00
Bernd Schmidt
8e2f6e35ba combine.c (recog_for_combine): Lose PADDED_SCRATCHES arg.
* combine.c (recog_for_combine): Lose PADDED_SCRATCHES arg.  All
	callers changed.
	(try_combine): Don't update max_scratch.
	* flow.c (max_scratch, num_scratch): Delete variables.
	(life_analysis_1): Don't initialize max_scratch.
	(propagate_block): Don't update max_scratch.
	(mark_set_1): Don't increment num_scratch.
	* regs.h (max_scratch): Delete declaration.

From-SVN: r23172
1998-10-19 03:47:55 -06:00
Jeff Law
02bc973394 sched.c (update_flow_info): Handle death notes made invalid by instruction splitting.
�
        * sched.c (update_flow_info): Handle death notes made invalid by
        instruction splitting.  Partially reverts Oct 15, 1998 patch.
        * haifa-sched.c (update_flow_info): Likewise.

From-SVN: r23171
1998-10-19 03:44:36 -06:00
Jeff Law
5f5702e21c sched.c (update_flow_info): Handle death notes made invalid by instruction splitting.
�
        * sched.c (update_flow_info): Handle death notes made invalid by
        instruction splitting.  Partially reverts Oct 15, 1998 patch.
        * haifa-sched.c (update_flow_info): Likewise.

From-SVN: r23170
1998-10-19 03:44:34 -06:00
Jeff Law
577a8b78ca sched.c (update_flow_info): Handle death notes made invalid by instruction splitting.
P
        * sched.c (update_flow_info): Handle death notes made invalid by
        instruction splitting.  Partially reverts Oct 15, 1998 patch.
        * haifa-sched.c (update_flow_info): Likewise.

From-SVN: r23169
1998-10-19 03:44:31 -06:00
Kaveh R. Ghazi
6fbe990127 Warning fixes:
* Makefile.in (lex.o): Depend on dwarfout.h.
        * lang-specs.h: Add missing braces in initializer.
        * lex.c: Include dwarfout.h, if DWARF_DEBUGGING_INFO is defined.

From-SVN: r23168
1998-10-19 09:17:21 +00:00
Jeff Law
f2e4552251 Daily bump.
From-SVN: r23167
1998-10-18 18:45:01 -06:00
Jeff Law
1b8a4ef39f config.if (cxx_interface, [...]): Do not try to set these if the appropriate directories and files to not exist.
P
        * config.if (cxx_interface, libstdcxx_interface): Do not try to set
        these if the appropriate directories and files to not exist.

From-SVN: r23166
1998-10-18 11:37:10 -06:00
Jeff Law
35cd256514 config.if (cxx_interface, [...]): Do not try to set these if the appropriate directories and files to not exist.
�
        * config.if (cxx_interface, libstdcxx_interface): Do not try to set
        these if the appropriate directories and files to not exist.

From-SVN: r23165
1998-10-18 11:37:09 -06:00
Jeffrey A Law
6acdd0fd75 function.c (uninitialized_vars_warning): Do not warn for a VAR_DECL if it has a nonzero DECL_INITIAL.
* function.c (uninitialized_vars_warning): Do not warn for a VAR_DECL
        if it has a nonzero DECL_INITIAL.

From-SVN: r23164
1998-10-18 10:34:41 -06:00
Martin v. Löwis
39ee4d93e6 decl2.c (validate_nonmember_using_decl): Fix using-directives of std if std is ignored.
* decl2.c (validate_nonmember_using_decl): Fix using-directives of
        std if std is ignored.

From-SVN: r23162
1998-10-18 09:21:17 +00:00
Jason Merrill
820fcad8d1 * decl.c (grokvardecl): Fix thinko.
From-SVN: r23161
1998-10-18 00:18:02 -04:00
Jason Merrill
1eab9b5614 decl.c (grokdeclarator): Embedded attrs bind to the right, not the left.
* decl.c (grokdeclarator): Embedded attrs bind to the right,
	not the left.

From-SVN: r23160
1998-10-18 00:11:07 -04:00
Jason Merrill
52fbc84763 parse.y (fn.def2): Fix 'attrs' format.
* parse.y (fn.def2): Fix 'attrs' format.
	* Makefile.in (CONFLICTS): Update.
	* parse.y (expr_or_declarator_intern): New rule.
	(expr_or_declarator, direct_notype_declarator, primary,
	functional_cast): Use it.
	(notype_declarator_intern): New rule.
	(notype_declarator, complex_notype_declarator): Use it.

From-SVN: r23159
1998-10-17 23:10:53 -04:00
Jeff Law
176b6042f7 Daily bump.
From-SVN: r23158
1998-10-17 18:45:02 -06:00
Jason Merrill
79c4d4b7a8 decl.c (grokfndecl): Set DECL_CONTEXT to namespace if appropriate.
* decl.c (grokfndecl): Set DECL_CONTEXT to namespace if appropriate.
	(grokvardecl): Likewise.

From-SVN: r23157
1998-10-17 19:01:39 -04:00
Kaveh R. Ghazi
1ddb2906cc Warning fixes:
* class.c (make_method_vec): Cast 1st argument of `bzero' to (PTR).
        (add_method): Likewise for arguments 1 & 2 of `bcopy'.
        * decl.c (signal_catch): Mark with ATTRIBUTE_NORETURN.
        * pt.c (process_partial_specialization): Cast 1st argument of
        `bzero' to (PTR).
        * tree.c (build_base_fields): Cast `base_align' to (int) when
        comparing against one.

From-SVN: r23156
1998-10-17 20:33:45 +00:00
Kaveh R. Ghazi
79c9824ecb Warning fixes:
* Makefile.in (flow.o): Depend on recog.h.
        * cpplib.h (directive_table): Add missing initializiers.
        (finclude): Change type of variable `bsize' to size_t.
        * cse.c (rtx_cost): Mark parameter `outer_code' with ATTRIBUTE_UNUSED.
        * dwarfout.h (dwarfout_label): Wrap prototype in macro RTX_CODE.
        * fix-header.c (lookup_std_proto): Cast the result of `strlen' to
        `int' when comparing against one.
        (cpp_file_line_for_message): Mark parameter `pfile' with
        ATTRIBUTE_UNUSED.
        (cpp_fatal): Mark parameter `pfile' with ATTRIBUTE_UNUSED.
        * flow.c: Include recog.h.
        (sbitmap_copy): Cast arguments 1 & 2 of `bcopy' to (PTR).
        * function.c (thread_prologue_and_epilogue_insns): Mark parameter
        `f' with ATTRIBUTE_UNUSED.
        (reposition_prologue_and_epilogue_notes): Likewise.
        * genopinit.c (gen_insn): Cast argument of ctype functions to
        `unsigned char'.
        * haifa-sched.c: Include recog.h.
        (blockage_range): Cast result of UNIT_BLOCKED macro to (int) when
        comparing against one.
        * libgcc2.a (__throw): Revert ATTRIBUTE_UNUSED change for now.
        * mips-tfile.c (parse_end): Cast the argument of ctype function to
        `unsigned char'.
        (parse_ent): Likewise.
        (parse_input): Likewise.
        * optabs.c (init_libfuncs): Likewise.
        * protoize.c (find_rightmost_formals_list): Likewise.
        * recog.h (const_double_operand): Fix typo in prototype.
        * tlink.c (scan_linker_output): Cast the argument of ctype
        function to `unsigned char'.
        * toplev.c (check_lang_option): Cast the result of `strlen' to
        `int' when comparing against one.

From-SVN: r23155
1998-10-17 20:26:29 +00:00
Graham Stott
eb51666662 * gcse.c (dump_cuid_table): Correct typo.
From-SVN: r23154
1998-10-17 06:11:06 -06:00
Per Bothner
f9d48c822a Makefile.in: Link with libiberty.a instead of memmove.o.
�
	* Makefile.in:  Link with libiberty.a instead of memmove.o.

From-SVN: r23153
1998-10-17 04:27:41 -07:00
Per Bothner
3e9cfddb07 *** empty log message ***
From-SVN: r23152
1998-10-17 04:27:40 -07:00
Nick Clifton
1f50b02979 Prepend '-m' to --hrlp output of target specific options.
Ignore text after end of first word of a language specific option.

From-SVN: r23151
1998-10-17 11:04:29 +00:00
Jeff Law
13c8e8e30e Comment tweak.
From-SVN: r23150
1998-10-16 19:45:13 -06:00
Bernd Schmidt
297927a89c reload1.c (reg_used_by_pseudo): New static variable.
* reload1.c (reg_used_by_pseudo): New static variable.
	(choose_reload_regs): Initialize it.
	Use it instead of testing spill_reg_order to determine whether a
	pseudo is live in a hard register across the current insn.
	Fix a typo in a reference to reload_reg_rtx.

From-SVN: r23149
1998-10-16 19:44:01 -06:00
Bernd Schmidt
f8dd7f9883 flow.c (propagate_block): Replace code that computes and uses regs_sometimes_live with simpler code that...
* flow.c (propagate_block): Replace code that computes and uses
        regs_sometimes_live with simpler code that just walks the set of
        currently live registers.

From-SVN: r23148
1998-10-16 19:38:15 -06:00
Bernd Schmidt
0a578fee77 Makefile.in (insn-extract.o): Fix dependencies.
* Makefile.in (insn-extract.o): Fix dependencies.
	* genextract.c (main): Generate includes for insn-config.h and
	recog.h.
	Delete generation of declarations which are now in recog.h.
	* genrecog.c (main): Delete generation of definitions which are
	now in recog.c.
	* local-alloc.c (block_alloc): Use extract_insn and the variables
	it sets up instead of looking up values by insn_code.
	* recog.c (recog_operand, recog_operand_loc, recog_dup_loc,
	recog_dup_num): Define here instead of generating the definition in
	genrecog.c.
	(recog_n_operands, recog_n_dups, recog_n_alternatives,
	recog_operand_mode, recog_constraints, recog_operand_address_p):
	New variables.
	(extract_insn): New function.
	* recog.h (extract_insn): Declare function.
	(which_alternative, recog_n_operands, recog_n_dups,
	recog_n_alternatives, recog_operand_mode, recog_constraints,
	recog_operand_address_p): Declare variables.
	* regclass.c (n_occurrences): New static function.
	* reload.c (n_occurrences): Delete function.
	(find_reloads): Use extract_insn.
	* reload.h (n_occurrences): Delete declaration.

From-SVN: r23147
1998-10-16 19:28:57 -06:00
Jeff Law
e02bdac131 Daily bump.
From-SVN: r23146
1998-10-16 18:45:02 -06:00
Jeffrey A Law
dd6acd1b84 reload1.c (reload_as_needed): Fix test for when to call update_eliminable_offsets.
�
        * reload1.c (reload_as_needed): Fix test for when to call
        update_eliminable_offsets.

From-SVN: r23145
1998-10-16 18:19:37 -06:00
Ovidiu Predescu
befb6d14df Minor changes in the documentation. Correctly define get_inner_array_type.
From-SVN: r23144
1998-10-16 22:19:22 +00:00
J"orn Rennecke
cb2afeb31e Fix consistency problems with reg_equiv_{mem,address};
Improve reload inheritance;
        * reload.c (reload_out_reg): New variable.
        (loc_mentioned_in_p, remove_address_replacements): New functions.
        (remove_replacements): Deleted.
        (push_reload): Set reload_out_reg[i].
        When merging, also set reload_{in,out}_reg[i], and remove
        duplicate address reloads.
        (combine_reloads): Copy reload_out_reg[i].
        (find_reloads): Do make_memloc substitution also when
        reg_equiv_memory_loc[regno] and num_not_at_initial_offset
        are both nonzero.
        Include *recog_operand_loc in commutativity operand changes.
        Generate optional output reloads.
        Delete reference to n_memlocs.  Don't set *recog_operand_loc before
        processing operands.  Call make_memloc in reg_equiv_address code.
        Set *recog_operand_loc only after processing operands, and only
        if replace is true.  Return a value.
        When changing address reload types for operands that didn't get
        reloaded, use RELOAD_FOR_OPADDR_ADDRESS for
        RELOAD_FOR_INPADDR_ADDRESS / RELOAD_FOR_OUTADDR_ADDRESS reloads.
        Don't emit USEs for pseudo SUBREGs when not replacing.
        (find_reloads_address): Do make_memloc substitution also when
        reg_equiv_memory_loc[regno] and num_not_at_initial_offset
        are both nonzero.
        (find_reloads_toplev): Likewise.
        Call make_memloc in reg_equiv_address code.
        (debug_reload_to_stream): Add code to output reload_out_reg.
        (make_memloc): Delete local variable i, ifdefed out code, and
        references to memlocs and n_memlocs.
        (memlocs, n_memlocs): Delete.
        (push_secondary_reload): Clear reload_out_reg.
        (find_reloads_address_1): Provide memrefloc argument to all calls
        to find_reloads_address.
        In AUTO_INC code, handle non-directly addressable equivalences properly.
        * reload.h (reload_out_reg, num_not_at_initial_offset): Declare.
        (find_reloads): Add return type.
        (remove_address_replacements, deallocate_reload_reg): Declare.
        * reload1.c (num_not_at_initial_offset): No longer static.
        (delete_address_reloads, delete_address_reloads_1): Likewise.
        (deallocate_reload_reg): New function.
        (spill_reg_stored_to): New array.
        (eliminate_regs): Don't substitute from reg_equiv_memory_loc.
        (eliminate_regs_in_insn): Move assignments of previous_offset and
        max_offset fields, and recalculation of num_not_at_initial_offset
        into new static function:
        (update_eliminable_offsets) .
        (reload_as_needed): Call update_eliminable_offsetss after calling
        find_reloads.
        Call forget_old_reloads_1 with contents of reloaded auto_inc
        expressions if the actual addressing can't be changed to match the
        auto_inc.
        (choose_reload_regs): For inheritance, replace
        reload_reg_free_before_p test with reload_reg_ions.
        (emit_reload_insns): If reload_in is a MEM, set OLD to
        reload_in_reg[j].
        Don't reload directly from oldequiv; if it's a pseudo with a
        stack slot, use reload_in[j].
        Check that reload_in_reg[j] is a MEM before replacing reload_in
        from reg_reloaded_contents.
        Include non-spill registers in reload inheritance processing.
        Also try to use reload_out_reg to set spill_reg_store /
        reg_last_reload_reg.
        In code to set new_spill_reg_store, use single_set to find out if
        there is a single set.
        Add code that allows to delete optional output reloads.
        Add code to allow deletion of output reloads that use no spill reg.
        At the end, set reload_override_in to oldequiv.
        Also call delete_output_reload if reload_out_reg is equal to old
        in oldequiv code.
        Add code to call delete_output_reload for stores with no matching load.
        Set / use spill_reg_stored_to.
        Handle case where secondary output reload uses a temporary, but
        actual store isn't found.
        When looking for a store of a value not loaded in order to call
        delete_output_reload, count_occurences should return 0 for no
        loads; but discount inherited input reloadill_reg_stored_to.
        Do checks for extra uses of REG.  Changed all
        callers.
        Use delete_address_reloads.
        (reload): Take return value of find_reloads into account.
        If a no-op set needs more than one reload, delete it.
        (reload_reg_free_before_p): RELOAD_FOR_INPUT
        can ignore RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
        for the same operand.
        (clear_reload_reg_in_use): Check for other reloads that keep a
        register in use.
        (reload_reg_free_for_value_p): handle RELOAD_FOR_OPERAND_ADDRESS /
        RELOAD_FOR_OPADDR_ADDR.
        Take into account when an address address reload is only needed
        for the address reload we are considering.
        (count_occurrences): Use rtx_equal_p for MEMs.
        (inc_for_reload): Return instruction that stores into RELOADREG.
        New argument two, IN, and rtx.  Changed all callers.
        (calculate_needs_all_insns, reload_as_needed):
        Don't clear after_call for a CLOBBER.
        Keep track of how many hard registers need to be copied from
        after_call, and don't clear after_call before we have seen
        that much copies, or we see a different instruction.

From-SVN: r23143
1998-10-16 13:54:38 -06:00
Alexandre Petit-Bianco
c583dd46ad lex.c (setjmp.h): No longer included.
Fri Oct 16 10:59:01 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* lex.c (setjmp.h): No longer included.
	* lex.h (setjmp.h): Included.
	* parse.h (SET_TYPE_FOR_RESOLUTION): New macro.
	(duplicate_declaration_error_p): Renamed from
 	duplicate_declaration_error.
	(build_array_from_name): New function prototype.
	* parse.y (setjmp.h): No longer included.
	(variable_declarator_id): Define action.
	(build_array_from_name): New function.
	(duplicate_declaration_error_p): Renamed from
 	duplicate_declaration_error.  Fixed leading comment.
	(register_fields): Main `for' loop reorganized. Uses
 	SET_TYPE_FOR_RESOLUTION and build_array_from_name.
	(method_declarator): Uses SET_TYPE_FOR_RESOLUTION and call
 	build_array_from_name.
	(resolve_class): Set CLASS_LOADED_P on newly build array dimension
 	types.
	(read_import_dir): Don't try to skip `.' and `..'.
	(declare_local_variables): Uses SET_TYPE_FOR_RESOLUTION and
 	build_array_from_name. Main `for' loop reorganized.
	(resolve_qualified_expression_name): When building access to a
 	field, use the type where the field was found, not its own type.
	(maybe_access_field): Use field DECL_CONTEXT if the type where the
 	field was found is null.
	(qualify_ambiguous_name): Sweep through all successive array
 	dimensions.
Implements the alternate form `T a[]' of array declarations. Fixes a
bug when building access to certain fields. Fixed a compilation
warning when lex.h is included from somewhere else than parse.y

From-SVN: r23142
1998-10-16 12:36:39 -07:00
Mark Mitchell
8e52e063af decl.c (lookup_name_real): Handle template parameters for member temlates where said parameters have the...
* decl.c (lookup_name_real): Handle template parameters for member
	temlates where said parameters have the same name as the
	surrounding class.

From-SVN: r23141
1998-10-16 18:40:36 +00:00
Jeffrey A Law
96b106e5c9 flow.c (find_basic_blocks_1): Do not delete unreachable blocks after reload has completed.
* flow.c (find_basic_blocks_1): Do not delete unreachable blocks
        after reload has completed.

From-SVN: r23140
1998-10-16 11:44:05 -06:00
Dave Brolley
c55ade0244 cpplib.c (cpp_get_token): Replace whitespace that occurs between a macro name and the next token with a...
Fri Oct 16 17:26:10 1998  Dave Brolley  <brolley@cygnus.com>
        * cpplib.c (cpp_get_token): Replace whitespace that occurs between
        a macro name and the next token with a single blank if that whitespace
        is in a macro buffer and the next token is not '('.

From-SVN: r23139
1998-10-16 10:28:40 -04:00
Mark Mitchell
7cfac5953a decl.c (expand_static_init): Build cleanups before entering the anonymous function used to do them to avoid...
* decl.c (expand_static_init): Build cleanups before entering the
	anonymous function used to do them to avoid access-checking
	confusion.
	* decl.c (grokfndecl): Add back call to cplus_decl_attributes
	accidentally removed by previous change, and make DECL_RTL here.
	* class.c (add_method): Don't make DECL_RTL here.

From-SVN: r23138
1998-10-16 14:06:24 +00:00
Mark Mitchell
588c2d1c2f pt.c (for_each_template_parm): Don't examine uninstantiated default arguments.
* pt.c (for_each_template_parm): Don't examine uninstantiated
	default arguments.

From-SVN: r23137
1998-10-16 13:24:28 +00:00