Geoffrey Keating [Thu, 17 Jun 2004 21:11:38 +0000 (21:11 +0000)]
class.c (build_clone): Don't call defer_fn, let mark_used do it.
* class.c (build_clone): Don't call defer_fn, let mark_used do it.
* cp-tree.h (defer_fn): Delete.
* decl2.c (defer_fn): Delete.
(finish_file): Simplify deferred_fns loops; check that
only used inline functions get into deferred_fns.
(mark_used): Inline previous contents of defer_fn.
Jan Hubicka [Thu, 17 Jun 2004 19:53:56 +0000 (21:53 +0200)]
re PR target/15433 (ICE, cannot split insn)
PR target/15433
* i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
operand numbering in the output template.
(SSE DF cmov 0 splitter): The conditional is VOIDmode.
Jan Hubicka [Thu, 17 Jun 2004 19:50:45 +0000 (21:50 +0200)]
cfgbuild.c (make_edges): Do not use label_value_list.
* cfgbuild.c (make_edges): Do not use label_value_list.
(find_basic_blocks_1): Do not collect label_value_list.
(find_sub_basic_blocks): Update call of make_edges.
Andrew MacLeod [Thu, 17 Jun 2004 18:13:20 +0000 (18:13 +0000)]
tree-cfg.c (tree_make_forwarder_block): Use SET_PHI_RESULT.
2004-06-16 Andrew MacLeod <amacleod@redhat.com>
* tree-cfg.c (tree_make_forwarder_block): Use SET_PHI_RESULT.
* tree-flow-inline.h (get_use_op_ptr): Return a use_operand_p.
(get_use_from_ptr, get_def_from_ptr): New. Return operand pointers.
(get_def_op_ptr): Return a def_operand_p instead of a 'tree *'.
(get_v_may_def_result_ptr): Return a def_operand_p.
(get_v_may_def_op_ptr, get_vuse_op_ptr): Return a use_operand_p.
(get_v_must_def_op_ptr): Return a def_operand_p.
(get_phi_result_ptr): New. Return a pointer to the result of a PHI.
(get_phi_arg_def_ptr): New. Return a pointer to an argument of a PHI.
(phi_element_for_edge): Remove.
* tree-flow.h (propagate_value, replace_exp): Change prototype.
(propagate_tree_value): Add new prototype.
(phi_element_for_edge): Remove prototype.
* tree-into-ssa.c (mark_def_sites): Use new operand types.
(prepare_operand_for_rename): Split into two functions.
(prepare_use_operand_for_rename): Prepare use operands.
(prepare_def_operand_for_rename): Prepare def operands.
(rewrite_stmt): Use new operand types.
(rewrite_operand): Use new operand types, change parameter type.
* tree-outof-ssa.c (replace_variable): Split into two functions.
(replace_use_variable): Rewrite uses.
(replace_def_variable): Rewrite defs.
(rewrite_trees, rewrite_vars_out_of_ssa): Use new operand types.
* tree-phinodes.c (make_phi_node, resize_phi_node): Use new types.
(add_phi_arg, remove_phi_arg_num): Use new operand types.
* tree-ssa-ccp.c (substitute_and_fold): Use new operand types.
(ccp_fold, replace_uses_in): Use new operand types.
* tree-ssa-copy.c (replace_ssa_names): Rename to replace_ssa_names_ann
and no longer set the value, change parameter type.
(replace_exp_1): Use new operand types.
(propagate_value): Change parameter type, use new operand types.
(propagate_tree_value): Propagate_value without SSA operands.
(replace_exp, cprop_operand, cprop_into_stmt): Use new operand types.
(cprop_into_successor_phis): Use new operand types.
* tree-ssa-dom.c (thread_across_edge): Use new operand types.
(eliminate_redundant_computations): Use new operand types.
* tree-ssa-dse.c (fix_phi_uses): Use new operand_types.
(fix_stmt_v_may_defs): Use new operand_types.
* tree-ssa-live.c (create_ssa_var_map): Use new operand_types.
(build_tree_conflict_graph): Use new operand_types.
* tree-ssa-loop.c (duplicate_blocks): Use PHI_ARG_DEF_FROM_EDGE.
* tree-ssa-operands.c (struct freelist_d): Remove.
(check_optype_freelist, add_optype_freelist): Remove.
(allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
allocate_vuse_optype, allocate_v_must_def_optype): Call ggc_alloc.
(free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
Call ggc_free instead of add_optype_freelist.
(init_ssa_operands, fini_ssa_operands): Remove free list code.
(finalize_ssa_defs, finalize_ssa_uses): Set new use/def operands.
* tree-ssa-operands.h (struct def_optype_d): Change underlying type.
(struct use_optype_d): Change underlying type.
(def_operand_p, use_operand_p): New types for pointers to operands.
(USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
V_MUST_DEF_OP): Use new pointer type instead of dereferencing directly.
(USE_FROM_PTR, DEF_FROM_PTR): New macros to "dereference" operand
pointer types.
(SET_USE, SET_DEF): New macros to set operands from their pointer.
(SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
(PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT): Macros to manage the
PHI result as an operand.
(PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
PHI_ARG_DEF_PTR_FROM_EDGE): Macros to manage the PHI arguments.
* tree-ssa-pre.c (eliminate): Call propagate_tree_value.
* tree-tailcall.c (independent_of_stmt_p, propagate_through_phis): Use
PHI_ARG_DEF_FROM_EDGE.
* tree.h (PHI_RESULT): Renamed to PHI_RESULT_TREE.
(PHI_ARG_DEF): Renamed to PHI_ARG_DEF_TREE.
Ranjit Mathew [Thu, 17 Jun 2004 13:45:23 +0000 (13:45 +0000)]
re PR java/13948 (GCJ segmentation fault while compiling GL4Java .class files)
Fixes PR java/13948
* parse.y (java_layout_seen_class_methods): Ensure class is loaded
before trying to lay out its methods.
* jcf-parse.c (read_class): Track parsed files using canonical paths
obtained via lrealpath from libiberty.
(java_parse_file): Likewise.
(parse_source_file_1): Rename formal parameter to reflect its
modified purpose. Minor formatting fix.
* config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
* config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
Handle SIGN_EXTEND and ZERO_EXTEND.
* config/s390/s390-protos.h (s390_expand_addcc): New prototype.
* config/s390/s390.c (s390_expand_addcc): New function.
* config/s390/s390.md ("adddicc", "addsicc"): New expanders.
("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
("sltu", "sgtu", "sleu", "sgeu"): New expanders.
Daniel Berlin [Thu, 17 Jun 2004 02:46:43 +0000 (02:46 +0000)]
tree-ssa-pre.c (compute_avail): Value number uses as well.
2004-06-16 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-pre.c (compute_avail): Value number uses as well.
Strip useless type conversions.
Casts have to be treated slightly different than normal unaries.
Ulrich Weigand [Wed, 16 Jun 2004 23:11:33 +0000 (23:11 +0000)]
s390.c (struct machine_function): New member last_restore_gpr.
* config/s390/s390.c (struct machine_function): New member
last_restore_gpr.
(s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
Do not modify machine->save_return_addr_p or regs_ever_live.
Fill in machine->last_restore_gpr.
(s390_optimize_prolog): Use s390_frame_info to compute registers
to save/restore, remove duplicated code.
(s390_arg_frame_offset): Use s390_frame_info to compute frame
size, remove duplicated code.
(s390_emit_prologue): Adapt s390_frame_info call. Update
machine->save_return_addr_p and regs_ever_live.
(s390_emit_epilogue): Use machine->last_restore_gpr instead of
machine->last_save_gpr.
* c-parse.in (if_stmt_locus): Remove.
(if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
(select_or_iter_stmt): Move empty if warnings to c-typeck.c.
* c-typeck.c (if_elt): Sort by expected size. Rename locus to
empty_locus. Add stmt_count, saw_else.
(c_begin_if_stmt): Push if_stack here.
(c_finish_if_cond): Rename from c_expand_end_cond. Record stmt_count.
(c_finish_then, c_finish_else): Record empty_locus.
(c_begin_else): Rename from c_expand_start_else. Record stmt_count.
(c_finish_if_stmt): Rename from c_expand_end_cond. Warn for empty
if or else body.
* c-tree.h: Update prototypes.
testsuite/
* gcc.dg/20001116-1.c: Move expected warning line.
Peter Barada [Wed, 16 Jun 2004 21:53:46 +0000 (21:53 +0000)]
m68k.md (movsi_cfv4): New pattern to allow mov3q.
* config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
(movsi_cf): Make named, don't match TARGET_CFV4.
(pushexthisi_const): Use mov3q if possible.
(extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
to special case mvz.w for ColdFire V4.
(extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
to special case mvz.b for ColdFire V4.
(udivmodhi4, divmodhi4): Use mvz to zero extend arg for
divide.
(iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
* config/m68k/m68k.c(valid_mov3q_const): New function.
(const_method): SWAP is valid for ColdFire.
(MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
* config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
Paolo Bonzini [Wed, 16 Jun 2004 07:35:00 +0000 (07:35 +0000)]
configure.ac: New name of configure.in.
boehm-gc/ChangeLog:
2005-06-16 Paolo Bonzini <bonzini@gnu.org>
* boehm-gc/configure.ac: New name of configure.in.
Remove useless multilib stuff. Change uses of
INCLUDES and CXXINCLUDES to AM_CPPFLAGS.
* boehm-gc/configure.in: New name of configure.in.
* boehm-gc/Makefile.am: Update for automake 1.8.5.
* boehm-gc/acinclude.m4: Include ../config/acx.m4.
* boehm-gc/aclocal.m4: Regenerate.
* boehm-gc/configure: Regenerate.
contrib/ChangeLog:
2004-06-16 Paolo Bonzini <bonzini@gnu.org>
* gcc_update (boehm-gc/configure): Depend on
boehm-gc/configure.ac instead of boehm-gc/configure.in
gcc/ChangeLog:
2004-06-16 Paolo Bonzini <bonzini@gnu.org>
* doc/install.texi: boehm-gc now uses automake 1.8.5.
Paolo Bonzini [Wed, 16 Jun 2004 07:25:53 +0000 (07:25 +0000)]
coverage.c: Remove argument to rest_of_compilation.
gcc/ChangeLog:
2004-06-16 Paolo Bonzini <bonzini@gnu.org>
* coverage.c: Remove argument to rest_of_compilation.
* expr.c (execute_expand, set_save_expr_context, pass_expand): New.
* passes.c (rest_of_compilation): Remove argument.
(pass_rest_of_compilation): New.
(rest_of_handle_final, rest_of_handle_delay_slots,
rest_of_handle_stack_regs, rest_of_handle_variable_tracking
rest_of_handle_machine_reorg, rest_of_handle_regrename
rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
rest_of_handle_regmove, rest_of_handle_tracer
rest_of_handle_if_conversion, rest_of_handle_if_after_combine
rest_of_handle_web, rest_of_handle_branch_prob
rest_of_handle_value_profile_transformations, rest_of_handle_cfg
rest_of_handle_addressof, rest_of_handle_jump_bypass
rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
Check that the two arguments are actually superfluous.
* toplev.h (rest_of_compilation): Adjust prototype.
* tree-optimize.c (register_dump_files): Add properties argument.
Track validity of passes. Only initialize dump files for
tree-based passes. Store the full set of provided passes in
the pass.
(init_tree_optimization_passes): Register pass_expand and
pass_rest_of_compilation.
(execute_one_pass): Do not track the presence of required properties
here. Set in_gimple_form. Do not update current_properties.
(current_properties): Remove.
(set_save_expr_context): Remove.
(tree_rest_of_compilation): Do not set in_gimple_form. Do not
expand to RTL here, and do not call rest_of_compilation. Push
GGC context even before gimplification.
* tree-pass.h (PROP_rtl, PROP_trees): New flags.
(pass_expand, pass_rest_of_compilation): Declare.
gcc/java/ChangeLog:
2004-06-16 Paolo Bonzini <bonzini@gnu.org>
Jeff Law [Wed, 16 Jun 2004 05:09:41 +0000 (23:09 -0600)]
fold-const.c (swap_tree_comparison): No longer static.
* fold-const.c (swap_tree_comparison): No longer static.
(tree_swap_operands_p): Similarly. Return true if both operands
are SSA_NAMEs and the first operand has a higher version number than
the second operand.
* tree.h (swap_tree_comparison): Prototype.
(tree_swap_operands_p): Prototype.
* tree-ssa-operands.c (get_expr_operands): For commutative
operators and relational comparisons, canonicalize the
order of the operands.
* gcc.dg/tree-ssa/20040615-1.c: New test.
* gcc.dg/tree-ssa/20030824-1.c: Update expected output to
be less sensitive to operand ordering.
* gcc.dg/tree-ssa/20030824-2.c: Likewise.
Zdenek Dvorak [Tue, 15 Jun 2004 22:15:21 +0000 (00:15 +0200)]
df.c (df_reg_clobber_gen): Removed.
* df.c (df_reg_clobber_gen): Removed.
(df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
Make more effective for hard regs.
* ra-build.c (livethrough_conflicts_bb): Check contains_call.
Tobias Schlüter [Tue, 15 Jun 2004 21:50:50 +0000 (23:50 +0200)]
re PR fortran/15962 (constant expression not recognized as such)
fortran/
PR fortran/15962
* match.c (match_case_selector): Call gfc_match_init_expr
instead of gfc_match_expr.
* resolve.c (validate_case_label_expr): No need to check for
constant, since it wouldn't have been matched with the fix to
match.c.
testsuite/
PR fortran/15962
* gfortran.fortran-torture/execute/select_1.f90: New test.
Alexandre Oliva [Tue, 15 Jun 2004 21:43:21 +0000 (21:43 +0000)]
c-pragma.h (c_lex_string_translate): Change type to int.
gcc/ChangeLog:
* c-pragma.h (c_lex_string_translate): Change type to int.
* c-parse.in: Change all assignments of c_lex_string_translate
to true and false to 1 and 0.
* c-lex.c (c_lex_string_translate): Likewise.
(lex_string): Convert string without translation in the -1
case.
gcc/cp/ChangeLog:
* parser.c: Change all assignments of c_lex_string_translate
to true and false to 1 and 0.
(cp_lexer_read_token): Convert type of the translated string.
(cp_parser_skip_to_closing_parentheses): Preserve original
value of c_lex_string_translate, and set it to -1 while
running.
(cp_parser_cache_group): Likewise.
(cp_parser_cache_group_1): Renamed.
(cp_parser_asm_operand_list): Remove redundant setting of
c_lex_string_translate.
(cp_parser_primary_expression) [CPP_STRING, CPP_WSTRING]:
Handle chained strings.
Roger Sayle [Tue, 15 Jun 2004 15:06:14 +0000 (15:06 +0000)]
expmed.c (synth_mult): Mask bits of the multiplier to the machine mode of the multiplication.
* expmed.c (synth_mult): Mask bits of the multiplier to the
machine mode of the multiplication. Don't consider shifts
by more than (or equal to) the width of the operation's mode.
Paolo Bonzini [Tue, 15 Jun 2004 14:47:55 +0000 (14:47 +0000)]
configure.ac: New name of configure.in.
libmudflap/ChangeLog:
2005-06-15 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: New name of configure.in. Update
AC_INIT, AC_CONFIG_SRCDIR, AC_CONFIG_HEADERS, AC_CONFIG_FILES,
AC_OUTPUT, AM_INIT_AUTOMAKE to the preferred style for
Autoconf 2.5x and Automake 1.7 or later.
* configure.in: Remove.
* configure: Regenerate.
zlib/ChangeLog.gcj:
2005-06-15 Paolo Bonzini <bonzini@gnu.org>
* Makefile.am: Remove useless multilib rules.
* configure.ac: Rewrite multilib support to use
features of recent automakes.
* aclocal.m4: Regenerate with Automake 1.8.5.
* Makefile.in: Regenerate with Automake 1.8.5.
* configure: Regenerate.
libffi/ChangeLog:
2005-06-15 Paolo Bonzini <bonzini@gnu.org>
gcc/ChangeLog:
2004-06-15 Paolo Bonzini <bonzini@gnu.org>
* function.h (struct function): Remove cannot_inline field.
(current_function_cannot_inline): Remove.
* passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
Simplify conditionals to ignore warn_return_type.
* tree-optimize.c (tree_rest_of_compilation): Do not reset
DECL_DEFER_OUTPUT.
* objc/objc-act.c (build_module_descriptor, finish_method_def):
Do not set current_function_cannot_inline.
gcc/java/ChangeLog:
2004-06-15 Paolo Bonzini <bonzini@gnu.org>
* class.c (emit_register_classes): Make the function uninlinable,
do not set current_function_cannot_inline.
* resource.c (write_resource_constructor): Do not reset
flag_inline_functions around rest_of_compilation.
gcc/cp/ChangeLog:
2004-06-15 Paolo Bonzini <bonzini@gnu.org>
* cp-tree.h (struct language_function): Remove cannot_inline.
* decl.c (save_function_data): cannot_inline is no more.
(cxx_push_function_context): Likewise.
* decl2.c (start_objects, start_static_storage_duration_function):
Reset DECL_INLINE, set DECL_UNINLINABLE.
Jeff Law [Mon, 14 Jun 2004 20:41:41 +0000 (14:41 -0600)]
tree-ssa.c (kill_redundant_phi_nodes): More correctly handle PHIs where the destination or an argument is marked with...
* tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
PHIs where the destination or an argument is marked with
SSA_NAME_OCCURS_IN_ABNORMAL_PHI.