Andrew Haley [Mon, 22 Nov 1999 14:20:35 +0000 (14:20 +0000)]
varasm.c (function_defined): Remove.
1999-11-22 Andrew Haley <aph@cygnus.com>
* varasm.c (function_defined): Remove.
(make_function_rtl): Don't set function_defined.
(make_decl_rtl): Remove global register warning.
* regclass.c (no_global_reg_vars): New variable.
(globalize_reg): Warn if function has already been defined.
(regclass_init): Set no_global_reg_vars.
Jan Hubicka [Mon, 22 Nov 1999 13:43:39 +0000 (14:43 +0100)]
regclass.c (reg_pref): New structure and static variable
* regclass.c (reg_pref): New structure and static variable
(prefclass): Delete.
(altclass): Delete.
(all uses of prefclass and altclass): Use reg_pref instead.
Anthony Green [Sun, 21 Nov 1999 23:37:58 +0000 (23:37 +0000)]
constants.c (find_methodref_index): Unwrap method names before inserting them in the constant pool.
* constants.c (find_methodref_index): Unwrap method names before
inserting them in the constant pool.
* jcf-parse.c (jcf_parse): Display `interface' when appropriate.
* class.c (assume_compiled_node): New typedef.
(assume_compiled_tree): New static data.
(find_assume_compiled_node): New function.
(add_assume_compiled): New function.
(assume_compiled): New function.
* class.c (make_class_data): Use assume_compiled.
(is_compiled_class): Use assume_compiled.
Jan Hubicka [Sun, 21 Nov 1999 12:40:47 +0000 (12:40 +0000)]
regclass.c (may_move_in_cost): Rename from may_move_cost, all references updated.
* regclass.c (may_move_in_cost): Rename from may_move_cost, all
references updated.
(may_move_out_cost): New variable.
(init_reg_sets_1): Initialize may_move_out_cost.
(record_reg_classes): Use may_move_out_cost.
Jan Hubicka [Sun, 21 Nov 1999 01:34:22 +0000 (02:34 +0100)]
i386.md (neg, [...]): Revmap to use ix86_expand_unary_operator and ix86_unary_operator_ok.
* i386.md (neg, not and abs patterns): Revmap to use
ix86_expand_unary_operator and ix86_unary_operator_ok.
(add?f and sub?f expanders): Force operand 1 to register.
* i386.c (ix86_expand_unary_operator): Rewrite.
(ix86_unary_operator_ok): Ensure that memory operands
match real opcode.
(ix86_binary_operator_ok): Do not allow operand 1 to
come into memory and operand 0 not.
(ix86_expand_binary_operator): Ensure that
src1 is not non-matching memory.
Mark Mitchell [Thu, 18 Nov 1999 17:50:56 +0000 (17:50 +0000)]
except.h (struct eh_entry): Add goto_entry_p.
* except.h (struct eh_entry): Add goto_entry_p.
(eh_region_from_symbol): Remove prototype.
* except.c (find_func_region_from_symbol): New function.
(emit_cleanup_handler): Likewise.
(eh_region_from_symbol): Make it static.
(add_new_handler): Verify the argument.
(find_func_region): Update comment.
(expand_eh_region_end): Expand handlers here, rater than waiting
until expand_leftover_cleanups or start_all_catch.
(expand_leftover_cleanups): Don't expand here.
(expand_start_all_catch): Or here.
(expand_rethrow): Check the return value from find_func_region.
* function.c (expand_function_end): Emit the catch_clauses.
* varasm.c (output_constructor) Solved problem with long long
bitfields. Corrected calculating this_time and shift. Also
corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
Diego Novillo [Thu, 18 Nov 1999 00:41:13 +0000 (00:41 +0000)]
invoke.texi: Add documentation for -muninit-const-in-rodata.
* invoke.texi: Add documentation for -muninit-const-in-rodata.
* config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
(TARGET_UNINIT_CONST_IN_RODATA): Define.
(text_section): Add switches -munint-const-in-rodata and
-mno-uninit-const-in-rodata.
(ASM_OUTPUT_COMMON): Remove.
(ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
const objects should be placed in read-only data. Otherwise declare
them in common.
Jan Hubicka [Wed, 17 Nov 1999 17:39:18 +0000 (18:39 +0100)]
i386.md (divmodsi4): Rewrite to expander.
Mon Nov 15 22:45:39 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
* i386.md (divmodsi4): Rewrite to expander.
(*divmodsi4_nocltd): New.
(*divmodsi4_cltd): New.
(divmodsi4 splitter): Handle the case when input comes in edx.
(udivmodhi4): Do not use constraints in exander.
(ashrsi3_31): Conditionize by TARGET_USE_CLTD.
Geoff Keating [Wed, 17 Nov 1999 02:34:15 +0000 (02:34 +0000)]
u77-test.f (wd): Allow for longer working directory pathnames.
* gcc/testsuite/g77.f-torture/execute/u77-test.f (wd): Allow for longer
working directory pathnames.
* libf2c/libU77/u77-test.f (wd): Allow for longer working directory
pathnames.
ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long for printing.
* ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
for printing.
* ggc.h (struct ggc_statistics): Rearrange elements for better
packing on 64-bit hosts.
* lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
(compute_nearerout): Likewise.
Mark Mitchell [Tue, 16 Nov 1999 03:42:28 +0000 (03:42 +0000)]
cp-tree.h (build_enumerator): Change prototype.
* cp-tree.h (build_enumerator): Change prototype.
* decl.c (enum_next_value): Remove.
(enum_overflow): Likewise.
(init_decl_processing): Don't register enum_next_value as a root.
(start_enum): Clear TYPE_VALUES for a redefined enum.
(finish_enum): Reset the type of enumeration constants.
(build_enumerator): Fix indentation. Don't copy CONST_DECLs when
we don't need to. Maintain the TYPE_VALUES list and look there
for the previously defined enumeration constant. Let enumeration
constants have the type of their values until the enumeration type
is complete.
* parse.y (enumlist_opt, enumlist, enumerator): Don't return a value.
(structsp): Adjust.
* parse.c: Regenerated.
* pt.c (tsubst_enum): Adjust according to build_enumerator changes.
Jason Merrill [Tue, 16 Nov 1999 01:37:39 +0000 (01:37 +0000)]
class.c (finish_struct): If we're a local class in a template function, add a TAG_DEFN.
* class.c (finish_struct): If we're a local class in a template
function, add a TAG_DEFN.
* pt.c (lookup_template_class): If this is a local class in a
template function, call pushtag.
(tsubst_expr, case TAG_DEFN): Handle classes, too.
Emit debug info with the vtable.
* search.c (maybe_suppress_debug_info): New function...
* class.c (finish_struct_1): ...split out from here.
* cp-tree.h: Declare it.
* decl2.c (finish_vtable_vardecl): Override TYPE_DECL_SUPPRESS_DEBUG
if we're writing out the vtable.
* decl.c, search.c (dfs_debug_mark, dfs_debug_unmarked_p,
note_debug_info_needed): #if 0 out.
Jason Merrill [Tue, 16 Nov 1999 00:13:51 +0000 (00:13 +0000)]
dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table notion of nesting to find the DIE for a type...
* dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
notion of nesting to find the DIE for a type or function.
DIEs can go in limbo even if we got a context_die.
(push_decl_scope): Our context doesn't need to be in decl_scope_table.
(gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
for local type.
(gen_decl_die): Ignore NAMESPACE_DECLs for now.
(gen_type_die): Writing out the context doesn't cause member class
template instantiations to be written out as well.
Jeffrey A Law [Mon, 15 Nov 1999 08:12:29 +0000 (08:12 +0000)]
basic-block.h: Remove all #defines and prototypes related to integer lists.
* basic-block.h: Remove all #defines and prototypes related to
integer lists.
(free_bb_mem, compute_preds_succs): Remove prototype.
* rtl.h (free_bb_mem): Remove prototype.
* flow.c (alloc_int_list_node); Remove function.
(add_inst_list_node, free_int_list, add_pred_succ): Likewise.
(compute_preds_succs, free_bb_mem): Likewise.
* gcse.c (gcse_main): Do not call free_bb_mem anymore.
* toplev.c (rest_of_compilation): Likewise.
* haifa-sched.c (build_control_flow): Use flow generated edge
list to build the haifa specific edge list.
(find_rgns): Use new CFG data structures instead of pred/succ lists.
(schedule_insns): Do not build pred/succ lists anymore. Instead
build the edge table.
* gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
argument. All callers changed.
(delete_null_pointer_checks_1): No longer need to compute the
pred/succ lists.
Mark Mitchell [Sun, 14 Nov 1999 20:29:06 +0000 (20:29 +0000)]
cp-tree.h (DECL_LOCAL_FUCNTION_P): New macro.
* cp-tree.h (DECL_LOCAL_FUCNTION_P): New macro.
* call.c (equal_functions): Use DECL_LOCAL_FUCNTION_P, not
TREE_PERMANENT.
* decl.c (pushdecl): Set DECL_LOCAL_FUNCTION_P.
* decl2.c (lookup_arg_dependent): Use it.
Mark Mitchell [Sun, 14 Nov 1999 05:04:19 +0000 (05:04 +0000)]
call.c (build_conditional_expr): Use build_target_expr_with_type.
* call.c (build_conditional_expr): Use build_target_expr_with_type.
(convert_like): Likewise.
(build_over_call): Likewise.
* cp-tree.h (build_target_expr): Remove.
(build_target_expr_with_type): New function.
* cvt.c (build_up_reference): Use get_target_expr.
* decl.c (build_target_expr): Move to ...
* tree.c (build_target_expr): Here. Make it static.
(build_target_expr_with_type): New function. Set DECL_CONTEXT on
the temporary VAR_DECLs.
(get_target_expr): Use it.
* decl.c (duplicate_decls): Propagate DECL_DEFER_OUTPUT.
* decl2.c (comdat_linkage): Set DECL_DEFER_OUTPUT.
* rtti.c (get_tinfo_fn_unused): Split out from get_tinfo_fn.
* class.c (set_rtti_entry): Use it.