Commit graph

59022 commits

Author SHA1 Message Date
Andrew MacLeod
d00ad49ba1 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.

From-SVN: r83298
2004-06-17 18:13:20 +00:00
Zdenek Dvorak
d7621d3c74 re PR tree-optimization/15991 (phi nodes with identical arguments still remain at t50.tailc)
PR tree-optimization/15991
	* tree-cfg.c (tree_block_label): Export.
	* tree-flow-inline.h (bsi_after_labels): New function.
	* tree-flow.h (bsi_after_labels, tree_block_label): Declare.
	* tree-ssa.c (propagate_into_addr): New function.
	(replace_immediate_uses): Handle propagation of pointer constants.
	(raise_value): Do not restrict propagation of pointer constants.
	* tree-ssanames.c (duplicate_ssa_name): New function.
	* tree.h (duplicate_ssa_name): Declare.

From-SVN: r83297
2004-06-17 17:47:47 +00:00
David Ayers
f2b5cf977e * c-parse.in: Unify Objective-C token names.
From-SVN: r83296
2004-06-17 10:41:40 -07:00
Zack Weinberg
c50a01163c Bug 14610
Bug 14610
	* Makefile.in (min-insn-modes.o): Correct dependencies.
	* real.c (encode_ieee_extended, decode_ieee_extended): Always
	produce/consume 12-byte little-endian Intel format.
	(encode_ieee_extended_128, decode_ieee_extended_128): Delete.
	(encode_ieee_extended_motorola, decode_ieee_extended_motorola)
	(encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
	(encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
	New functions which convert between 12-byte little-endian Intel
	format and the desired format.
	(ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
	(ieee_extended_intel_96_format, ieee_extended_intel_128_format):
	Update.
testsuite:
	* gcc.dg/ia64-float80-1.c, gcc.dg/ia64-float80-2.c: New testcases.

From-SVN: r83295
2004-06-17 17:05:48 +00:00
Zack Weinberg
42eb30b557 expmed.c (expand_mult_const): In sanity check...
* expmed.c (expand_mult_const): In sanity check, compare only
	the bits of val and val_so_far that are significant in the
	result mode.

From-SVN: r83294
2004-06-17 17:03:11 +00:00
Anthony Green
1616280e70 ZipFile.getInputStream returns null if entry not found.
From-SVN: r83293
2004-06-17 13:53:11 +00:00
Ranjit Mathew
cfb6b4b8c3 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.

From-SVN: r83292
2004-06-17 13:45:23 +00:00
Anthony Green
794c3bee30 Add extension directory contents to the class path.
From-SVN: r83291
2004-06-17 13:30:32 +00:00
Daniel Berlin
ca072a31b7 tree-ssa-pre.c: Update comments.
2004-06-17  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-pre.c:  Update comments.
	(val_expr_pair_eq): Factor code from here.
	(expr_pred_trans_eq): and here.
	(expressions_equal_p): To here.
	(print_value_set): Print value for expression.
	(phi_trans_lookup): Rename some variables.
	(lookup): Ditto.
	(value_exists_in_set_bitmap): Ditto.
	(value_remove_from_set_bitmap): Ditto.
	(value_insert_into_set_bitmap): Ditto.

From-SVN: r83290
2004-06-17 12:53:33 +00:00
Diego Novillo
5bed280967 * tree-ssa.doxy: Update for doxygen 1.3.5.
From-SVN: r83289
2004-06-17 07:40:27 -04:00
Ulrich Weigand
5d880bd24b s390-modes.def (CCL3mode): New machine mode.
* config/s390/s390-modes.def (CCL3mode): New machine mode.
	* config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
	(s390_alc_comparison, s390_slb_comparison): Likewise.
	(s390_branch_condition_mask): Likewise.
	* config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
	("*subsi3_cc2", "*subsi3_cconly2"): New.

	* 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.

From-SVN: r83287
2004-06-17 10:32:14 +00:00
Ben Elliston
ac5347368c tree-alias-common.c: Add whitespace.
* tree-alias-common.c: Add whitespace.
	* tree-inline.c: Correct comment about this file's purpose.
	* tree-optimize.c: Likewise.
	* tree-tailcall.c: Likewise.

From-SVN: r83286
2004-06-17 15:13:30 +10:00
Ben Elliston
d96f6b597e tree-alias-ander.h: Add standard top-of-file comment.
* tree-alias-ander.h: Add standard top-of-file comment.
	* tree-alias-common.h: Likewise.
	* tree-alias-type.h: Likewise.

From-SVN: r83285
2004-06-17 14:49:59 +10:00
Daniel Berlin
f44272eef7 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.

From-SVN: r83283
2004-06-17 02:46:43 +00:00
Richard Henderson
5882f0f31a c-common.def (COMPOUND_STMT): Remove.
* c-common.def (COMPOUND_STMT): Remove.
        * c-common.c (finish_fname_decls): Don't look through it.
        * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
        * c-common.h (COMPOUND_BODY): Remove.
        (c_common_stmt_codes): Remove COMPOUND_STMT.
        * c-dump.c (c_dump_tree): Likewise.
        * c-gimplify.c (c_gimplify_stmt): Likewise.
        * c-pretty-print.c (pp_c_statement): Likewise.
        * tree.h (DECL_SAVED_TREE): Update commentary.
        * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
        (CASE_LABEL_EXPR): Rename from CASE_LABEL.
        (GOTO_EXPR): Rename from GOTO_STMT.
        (GOTO_FAKE_P): Remove.
        (COMPOUND_STMT): Remove.
        (HANDLER): Update wrt COMPOUND_STMT.
        (STMT_EXPR): Likewise.
        (LABEL_EXPR): Rename from LABEL_STMT.
        (SCOPE_STMT): Remove.
        * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
        through COMPOUND_STMT.
cp/
        * cp-tree.h (COMPOUND_STMT_TRY_BLOCK, COMPOUND_STMT_BODY_BLOCK): Kill.
        (BIND_EXPR_TRY_BLOCK, BIND_EXPR_BODY_BLOCK): New.
        * cxx-pretty-print.c (pp_cxx_function_definition): Move handling
        of CTOR_INITIALIZER ...
        (pp_cxx_statement): ... here.
        * decl.c (begin_function_body): Don't set COMPOUND_STMT_BODY_BLOCK.
        (finish_function): Use alloc_stmt_list to zap entire function.
        * parser.c (cp_parser_compound_statement): Update commentary.
        * pt.c (tsubst_expr): Use BIND_EXPR instead of COMPOUND_STMT.
        * semantics.c (begin_compound_stmt, finish_compound_stmt): Likewise.
        (finish_stmt_expr): Don't look through COMPOUND_STMT.

From-SVN: r83281
2004-06-16 18:24:06 -07:00
Richard Henderson
9e51cf9da4 c-common.h (c_begin_if_stmt, [...]): Remove decls.
* c-common.h (c_begin_if_stmt, c_begin_while_stmt,
        c_finish_while_stmt_cond): Remove decls.
        * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
        * c-typeck.c (c_begin_if_stmt): Return void.
        (c_begin_else): Tidy.  Save stmt_count.
        * c-tree.h (c_begin_if_stmt): Update decl.
        * objc/objc-act.c (objc_build_try_enter_fragment,
        objc_build_extract_fragment, objc_build_try_epilogue,
        objc_build_catch_stmt, objc_build_catch_epilogue,
        objc_build_finally_prologue, objc_build_finally_epilogue): Update
        for if builder function changes.

From-SVN: r83280
2004-06-16 18:06:04 -07:00
GCC Administrator
902fd62ceb Daily bump.
[[Split portion of a mixed commit.]]

From-SVN: r83278.2
2004-06-17 00:16:16 +00:00
GCC Administrator
71da1d1913 Daily bump.
[[Split portion of a mixed commit.]]

From-SVN: r83277.2
2004-06-17 00:16:11 +00:00
Ulrich Weigand
b767fc11d8 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.

From-SVN: r83275
2004-06-16 23:11:33 +00:00
Richard Henderson
16865eaaa8 c-parse.in (if_stmt_locus): Remove.
* 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.

From-SVN: r83274
2004-06-16 16:05:37 -07:00
Steven Bosscher
1719288464 tree.h (PHI_CHAIN): New.
* tree.h (PHI_CHAIN): New.
	* (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
	tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
	tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
	tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
	tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
	when traversing a list of PHI_NODEs.

From-SVN: r83273
2004-06-16 23:03:34 +00:00
Richard Henderson
bf83cc10ca i386-ssetype-1.c: Remove XFAIL.
* gcc.dg/i386-ssetype-1.c: Remove XFAIL.
        * gcc.dg/i386-ssetype-3.c: Remove XFAIL.

From-SVN: r83270
2004-06-16 15:57:02 -07:00
Bernardo Innocenti
a7d840c7b5 re PR target/13292 (-msoft-float seems to corrupt builtin defines)
PR target/13292
	* config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
	on -msoft-float.
	(TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
	68040 and soft-float.
	* config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
	in the TARGET_68040_ONLY case.

From-SVN: r83268
2004-06-17 00:10:39 +02:00
Geoffrey Keating
18cf0da278 * pt.c (mark_decl_instantiated): Don't call defer_fn.
From-SVN: r83267
2004-06-16 22:07:03 +00:00
Peter Barada
5e04daf317 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.

From-SVN: r83266
2004-06-16 23:53:46 +02:00
Richard Henderson
8c16199578 c-common.def (CASE_LABEL): Remove.
* c-common.def (CASE_LABEL): Remove.
        * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
        (match_case_to_enum_1): Likewise.
        * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
        * c-dump.c (c_dump_tree): Likewise.
        * c-gimplify.c (c_gimplify_stmt): Likewise.
        * c-pretty-print.c (pp_c_statement): Likewise.
        * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
        * tree.h (CASE_LOW): Update commentary.
cp/
        * parser.c (cp_parser_labeled_statement): Update commentary.
        * pt.c (tsubst_expr): Use CASE_LABEL_EXPR.
        * tree.c (mark_local_for_remap_r): Likewise.

From-SVN: r83261
2004-06-16 13:51:46 -07:00
Richard Henderson
e130a54b78 c-common.def (ASM_STMT): Remove.
* c-common.def (ASM_STMT): Remove.
        * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
        * c-dump.c (c_dump_tree): Likewise.
        * c-gimplify.c (c_gimplify_stmt): Likewise.
        * c-pretty-print.c (pp_c_statement): Likewise.
        * c-typeck.c (build_asm_expr): Use ASM_EXPR.
        * tree.h: Fix commentary.
cp/
        * parser.c (cp_parser_asm_definition): Update commentary.
        * pt.c (tsubst_expr): Use ASM_EXPR.
        * semantics.c (finish_asm_stmt): Likewise.

From-SVN: r83260
2004-06-16 13:23:02 -07:00
Richard Henderson
9e14e18fd1 c-common.def (GOTO_STMT, LABEL_STMT): Remove.
* c-common.def (GOTO_STMT, LABEL_STMT): Remove.
        * c-common.c (c_add_case_label): Use LABEL_EXPR.
        * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
        (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
        * c-dump.c (c_dump_tree): Likewise.
        * c-gimplify.c (c_gimplify_stmt): Likewise.
        * c-pretty-print.c (pp_c_statement): Likewise.
        * c-parse.in (stmt): Use GOTO_EXPR.
        (label): Use LABEL_EXPR.
        * c-semantics.c (build_stmt): Set TREE_TYPE to void.
        * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
cp/
        * decl.c (finish_destructor_body): Use LABEL_EXPR.
        * parser.c (cp_parser_statement): Update commentary.
        * pt.c (tsubst_expr): Use LABEL_EXPR, GOTO_EXPR.
        * semantics.c (finish_goto_stmt, finish_label_stmt): Likewise.
        * tree.c (mark_local_for_remap_r): Likewise.

From-SVN: r83255
2004-06-16 11:21:20 -07:00
J"orn Rennecke
2f52c5316a cfgcleanup.c (try_simplify_condjump): Update test to make sure we have a conditional branch around am unconditional...
* cfgcleanup.c (try_simplify_condjump): Update test to make
	sure we have a conditional branch around am unconditional branch.

From-SVN: r83254
2004-06-16 19:03:11 +01:00
Richard Henderson
894ca2c9ff re PR c++/16012 (trouble with scope in for statements in templates)
PR c++/16012
        * semantics.c (begin_for_stmt, begin_for_stmt): Do put the init
        statement in FOR_INIT_STMT for templates.

From-SVN: r83253
2004-06-16 10:59:07 -07:00
Paolo Carlini
e751adc3b1 rope (rope(_CharT, const allocator_type&)): Fix to use _Data_allocate.
2004-06-16  Paolo Carlini  <pcarlini@suse.de>

	* include/ext/rope (rope(_CharT, const allocator_type&)): Fix
	to use _Data_allocate.
	* include/ext/ropeimpl.h (rope<>::_S_leaf_concat_char_iter): Likewise.
	(rope<>::_S_substring): Likewise.
	(rope<>::rope(size_t, _CharT, const allocator_type&)): Likewise.
	(rope<>::c_str()): Likewise.
	(rope<>::replace_with_c_str()): Likewise.

	* include/ext/ropeimpl.h (_Rope_iterator_base<>::_S_setbuf):
	Correctly qualify _S_leaf, _S_function, etc., with _Rope_constants::,
	not _RopeRep.
	(_Rope_iterator_base<>::_S_setcache): Likewise.
	(_Rope_iterator_base<>::_S_setcache_for_incr): Likewise.
	(rope<>::_S_substring): Likewise.
	(rope<>::_S_dump): Likewise.
	(rope<>::_S_fetch_ptr): Likewise.
	(rope<>::_S_compare): Likewise.
	(rope<>::replace_with_c_str()): Likewise.

	* testsuite/ext/rope.cc: Rename to testsuite/ext/rope/1.cc.
	* testsuite/ext/rope/2.cc: New.

2004-06-16  Paolo Carlini  <pcarlini@suse.de>
	    Matt Austern  <austern@apple.com>

	* testsuite/ext/rope/3.cc: New.

Co-Authored-By: Matt Austern <austern@apple.com>

From-SVN: r83251
2004-06-16 17:29:16 +00:00
Daniel Berlin
5d44aeed9a tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
2004-06-16  Daniel Berlin  <dberlin@dberlin.org>

	* tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.

From-SVN: r83250
2004-06-16 17:17:17 +00:00
Dale Johannesen
d85428e234 loop.c (loop_givs_reduce): Avoid miscompilation of loops entered at bottom.
2004-06-16  Dale Johannesen  <dalej@apple.com>

        * loop.c (loop_givs_reduce): Avoid miscompilation of
        loops entered at bottom.

From-SVN: r83248
2004-06-16 17:13:34 +00:00
Joern Rennecke
e370de6e30 cfglayout.c (fixup_reorder_chain): Handle case where the destination of E_FALL is EXIT_BLOCK_PTR.
* cfglayout.c (fixup_reorder_chain): Handle case where the
	destination of E_FALL is EXIT_BLOCK_PTR.

From-SVN: r83247
2004-06-16 17:49:22 +01:00
Joern Rennecke
d9c75fe042 cfglayout.c (fixup_reorder_chain): Handle case where the destination of E_FALL is EXIT_BLOCK_PTR.
* cfglayout.c (fixup_reorder_chain): Handle case where the
	destination of E_FALL is EXIT_BLOCK_PTR.

From-SVN: r83245
2004-06-16 17:00:40 +01:00
Vladimir Makarov
f75ce96a7c re PR target/15653 (Gcc 3.4 ICE on valid code)
2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/15653
	* config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
	after shifts before asm.

From-SVN: r83243
2004-06-16 15:47:29 +00:00
Zdenek Dvorak
8a78744fcf re PR tree-optimization/15993 ([lno] Compiler hangs at -O3)
PR tree-optimization/15993
	* tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
	destination is unchanged.

From-SVN: r83242
2004-06-16 13:39:49 +00:00
Zdenek Dvorak
f11e087ed6 re PR tree-optimization/15993 ([lno] Compiler hangs at -O3)
PR tree-optimization/15993
	* tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
	destination is unchanged.

[[Split portion of a mixed commit.]]

From-SVN: r83241.2
2004-06-16 13:39:04 +00:00
Andreas Jaeger
b9034bbd6d install.texi (Configuration): Update description for --enable-version-specific-runtime-libs.
* doc/install.texi (Configuration): Update description for
	--enable-version-specific-runtime-libs.

From-SVN: r83240
2004-06-16 14:34:24 +02:00
Andreas Jaeger
cc605afe38 * gcc_update: boehm-gc/configure.in -> configure.ac.
From-SVN: r83238
2004-06-16 13:58:44 +02:00
Andreas Schwab
58b9accaeb Remove conflict marker.
From-SVN: r83234
2004-06-16 10:45:58 +00:00
Paolo Bonzini
bf9a420e62 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.

From-SVN: r83227
2004-06-16 07:35:00 +00:00
Paolo Bonzini
6bbba4c73c toplev.h (rest_of_compilation): Adjust prototype.
2004-06-16  Paolo Bonzini  <bonzini@gnu.org>

	* toplev.h (rest_of_compilation): Adjust prototype.

From-SVN: r83226
2004-06-16 07:27:32 +00:00
Paolo Bonzini
2f8e398bf4 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>

	* java/class.c (emit_register_classes): Remove argument to
	rest_of_compilation.
	* java/resource.c (write_resource_constructor): Likewise.

From-SVN: r83225
2004-06-16 07:25:53 +00:00
Jeff Law
fd660b1bee 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.

From-SVN: r83224
2004-06-15 23:09:41 -06:00
Danny Smith
3e97fe67e3 * g++.dg/abi/bitfield3.C: Add comment..
From-SVN: r83223
2004-06-16 04:00:31 +00:00
Richard Henderson
325c369115 c-common.c (lang_gimplify_stmt): Remove next_p argument.
* c-common.c (lang_gimplify_stmt): Remove next_p argument.
	(if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
	c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
	c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
	(finish_fname_decls, fname_decl): Use statement_lists.
	(c_expand_expr_stmt): Don't set last_expr_type.
	(c_type_hash): Fix indentation.
	(c_safe_from_p): Don't follow TREE_CHAIN.
	(c_tree_chain_matters_p): Remove.
	* c-common.def (SCOPE_STMT): Remove.
	(CLEANUP_STMT): Redefine to contain its own body.
	* c-common.h (struct stmt_tree_s): Remove x_last_stmt,
	x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
	Add x_cur_stmt_list.
	(last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
	(cur_stmt_list): New.
	(STATEMENT_LIST_STMT_EXPR): New.
	(SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
	SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
	(CLEANUP_BODY): New.
	(CLEANUP_DECL): Move to operand 2.
	(c_common_stmt_codes): Remove SCOPE_STMT.
	(COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
	* c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
	(c_push_function_context, c_pop_function_context): Don't save it.
	(finish_decl): Set TREE_USED on the decl for a cleanup.
	Use push_cleanup.
	(store_parm_decls): Use statement lists.
	(finish_function): Remove compstmt rule workaround.  Use statement
	lists.  Call finish_fname_decls after finalizing the body.
	(c_begin_compound_stmt): Move to c-typeck.c.
	* c-dump.c (c_dump_tree): Remove SCOPE_STMT.
	* c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
	(c_genericize): Invoke them.
	(c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
	(c_build_bind_expr): Export.
	(gimplify_block, gimplify_cleanup): Remove.
	(gimplify_condition): Use gimplify_stmt.
	(gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
	(gimplify_if_stmt): Remove recursion hack.
	(c_gimplify_expr): Remove STMT_EXPR handling.
	(stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
	(is_last_stmt_of_scope): Remove.
	* c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
	* c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
	c_end_compound_stmt.
	* c-objc-common.c (build_cdtor): Likewise.
	* c-parse.in (primary): Use c_finish_stmt_expr.
	(push_scope, pop_scope): Remove.
	(c99_block_start, compstmt_start): Use c_begin_compound_stmt.
	(c99_block_end, compstmt): Use c_end_compound_stmt.
	(c99_block_lineno_labeled_stmt): Likewise.
	(compstmt_primary_start): Use c_begin_stmt_expr.
	(simple_if, select_or_iter_stmt): Update calls to stmt builders.
	(do_stmt_start): Fill in body directly.
	(lineno_stmt): Avoid setting lineno on constants.
	* c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
	Remove SCOPE_STMT.
	* c-semantics.c (begin_stmt_tree): Remove.
	(push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
	(add_stmt): Use statement lists.
	(add_scope_stmt, finish_stmt_tree): Remove.
	(push_cleanup): New.
	* c-tree.h: Move some decls from c-common.h.
	* c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
	(do_case, c_finish_case): Likewise.
	(c_finish_then): Take body for then as argument.
	(c_finish_else): Similarly.
	(c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
	c_finish_for_stmt_incr, c_finish_for_stmt): New.
	(c_begin_stmt_expr, c_finish_stmt_expr): New.
	(c_begin_compound_stmt): Do scope management.
	(c_end_compound_stmt): New.
	* fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
	* gimplify.c (voidify_wrapper_expr): Accept temporary argument.
	Look through exception handling constructs.
	(gimplify_bind_expr): Accept temporary argument.
	(gimplify_target_expr): Special case BIND_EXPR bodies.
	(gimplify_expr): Handle fallback == fb_none like a statement.
	* langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
	* langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
	* langhooks.h (tree_chain_matters_p): Remove.
	* stub-objc.c (objc_clear_super_receiver): New.
	* tree-gimple.h (voidify_wrapper_expr): Update decl.
	(append_to_statement_list, append_to_statement_list_force): Move
	to tree-iterator.h.
	* tree-inline.c (expand_call_inline): Update call.
	(clone_body): Use statement lists.
	(walk_tree): Don't check tree_chain_matters_p.
	(copy_tree_r): Likewise.
	* tree-iterator.c (alloc_stmt_list): Clear lang bits.
	(tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
	* tree-iterator.h (append_to_statement_list,
	append_to_statement_list_force): Moved from tree-gimple.h.
	* tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
	* objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
	(objc_enter_block): Likewise.
	(objc_exit_block): Use c_end_compound_stmt.
	(objc_build_try_enter_fragment): Add #error and comment for
	rewriting for OBJCPLUS.
	(objc_build_extract_fragment, objc_build_try_epilogue,
	objc_build_catch_stmt, objc_build_finally_prologue,
	objc_build_finally_epilogue): Update for C statement builders.
	* objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
	Remove.
cp/
	* call.c (initialize_reference): Don't build CLEANUP_STMT here.
	* cp-gimplify.c (cp_gimplify_stmt): Remove next_p argument.
	(genericize_try_block): Use gimplify_stmt.
	(genericize_catch_block, genericize_eh_spec_block): Likewise.
	(cp_gimplify_init_expr): Remove STMT_EXPR special case.
	(gimplify_must_not_throw_expr): Update voidify_wrapper_expr call.
	* cp-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
	(cp_tree_chain_matters_p): Remove.
	* cp-tree.h (COMPOUND_STMT_TRY_BLOCK): New.
	(COMPOUND_STMT_BODY_BLOCK): New.
	(STATEMENT_LIST_NO_SCOPE, STATEMENT_LIST_TRY_BLOCK): New.
	(EXPR_STMT_STMT_EXPR_RESULT): New.
	(building_stmt_tree): Check cur_stmt_list.
	(tf_stmt_expr_cmpd, tf_stmt_expr_body): Remove.
	(BCS_NO_SCOPE, BCS_TRY_BLOCK, BCS_FN_BODY): New.
	* decl.c (poplevel): Use pop_stmt_list for minding cleanups.
	(cp_finish_decl): Use push_cleanup.
	(start_function, finish_function): Use statement lists.
	(finish_stmt): Do nothing.
	* except.c (begin_eh_spec_block): Use statement lists.
	(check_handlers_1, check_handlers): Likewise.
	* init.c (construct_virtual_base): Don't add extra compound stmts.
	(build_vec_init): Likewise.
	* name-lookup.c (maybe_push_cleanup_level): Use statement lists.
	* name-lookup.h (struct cp_binding_level): Add statement_list.
	* parser.c (cp_parser_statement): Take the STMT_EXPR node, not a bool.
	(cp_parser_labeled_statement, cp_parser_expression_statement,
	cp_parser_statement_seq_opt): Likewise.
	(cp_parser_compound_statement): Likewise.  Take bool for try block.
	(cp_parser_selection_statement): Tidy if processing.
	(cp_parser_already_scoped_statement): Rewrite to do what it says.
	* pt.c (tsubst_copy): Move STMT_EXPR to tsubst_expr.
	(tsubst_expr): Rewrite STMT_EXPR processing.  Handle STATEMENT_LIST.
	Mind COMPOUND_STMT_TRY_BLOCK, EXPR_STMT_STMT_EXPR_RESULT.
	* semantics.c (do_poplevel, do_pushlevel): Use statement lists.
	(finish_cond): New, rewritten from FINISH_COND.
	(simplify_loop_decl_cond): New.
	(finish_expr_stmt): Avoid nested EXPR_STMTs.
	(begin_if_stmt, finish_if_stmt_cond, finish_then_clause,
	begin_else_clause, finish_else_clause, finish_if_stmt,
	begin_while_stmt, finish_while_stmt_cond, finish_while_stmt,
	begin_do_stmt, finish_do_body, begin_for_stmt, finish_for_init_stmt,
	finish_for_cond, finish_for_stmt, begin_switch_stmt,
	finish_switch_cond, finish_switch_stmt, begin_try_block,
	finish_try_block, finish_cleanup_try_block, finish_function_try_block,
	finish_handler_sequence, finish_function_handler_sequence,
	begin_handler, finish_handler_parms, finish_handler,
	begin_stmt_expr, finish_stmt_expr_expr, finish_stmt_expr): Rewrite
	using statement lists.
	(begin_compound_stmt): Replace has_no_scope argument with flags.
	Update all callers.  Use statement lists.
	(finish_compound_stmt): Likewise.
	(finish_decl_cleanup, finish_eh_cleanup): Use push_cleanup.
	(current_scope_stmt_stack): Remove.
	(simplify_aggr_init_expr): Don't muck with TREE_CHAIN.
	* typeck2.c (split_nonconstant_init_1, split_nonconstant_init):
	Rewrite with statement lists.
testsuite/
	* g++.dg/ext/stmtexpr1.C: XFAIL.
	* gcc.dg/20030612-1.c: XFAIL.

From-SVN: r83221
2004-06-15 18:21:38 -07:00
GCC Administrator
aaab7bb6d7 Daily bump.
[[Split portion of a mixed commit.]]

From-SVN: r83219.2
2004-06-16 00:16:15 +00:00
GCC Administrator
a0543ff31c Daily bump.
[[Split portion of a mixed commit.]]

From-SVN: r83217.2
2004-06-16 00:16:11 +00:00
Eric Christopher
6bf3d92c78 asm5.c: New.
2004-06-15  Eric Christopher  <echristo@redhat.com>

        * g++.dg/charset/asm5.c: New.
        * gcc.dg/charset/asm6.c: New.

From-SVN: r83215
2004-06-15 23:09:24 +00:00