aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2004-06-17c-common.c (flag_objc_sjlj_exceptions): New.Richard Henderson18-621/+717
* c-common.c (flag_objc_sjlj_exceptions): New. * c-common.h (flag_objc_sjlj_exceptions): Declare. * c-opts.c (c_common_handle_option): Set it. (c_common_post_options): Handle interation of different objective-c exception and runtime switches. * c-decl.c (c_eh_initialized_p): New. (finish_decl): Use it instead of local eh_initialized_p. * c-parse.in (nested_function, notype_nested_function): Record the result of compstmt. (compstmt_or_error): Likewise. (compstmt): Don't add_stmt the result. (stmt): Don't return anything. Rewrite objc try and sync rules. (objc_try_stmt, objc_catch_list): Remove. (objc_catch_block, objc_finally_block): Remove. (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New. (objc_try_catch_clause, objc_finally_clause): New. (objc_try_catch_stmt): Rewrite. * c-tree.h (c_eh_initialized_p): Declare. * c-opt (fobjc-sjlj-exceptions): New. * except.c (output_function_exception_table): Don't call cgraph on non-decls. * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR, UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack, catch_count_stack, exc_binding_stack, if_nesting_count, blk_nesting_count, objc_enter_block, objc_exit_block, objc_declare_variable, val_stack_push, val_stack_pop, objc_build_try_enter_fragment, objc_build_extract_expr, objc_build_try_exit_fragment, objc_build_extract_fragment, objc_build_try_prologue, objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue, objc_build_finally_prologue, objc_build_finally_epilogue, objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue, objc_build_synchronized_epilogue): Remove. (objc_create_temporary_var, struct objc_try_context, cur_try_context, objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr, next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp, next_sjlj_build_exc_extract, next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally, objc_begin_try_stmt, objc_begin_catch_clause, objc_finish_catch_clause, objc_build_finally_clause, objc_finish_try_stmt, objc_build_synchronized): New. (objc_is_object_id, objc_is_class_id): New. (objc_comptypes): Use them. (build_next_objc_exception_stuff): Break NeXT sjlj out from build_objc_exception_stuff. (synth_module_prologue): Update to match. (objc_build_throw_stmt): Use cur_try_context to decide if we're in a @catch. * objc/objc-act.h: Update prototypes. (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove. testsuite/ * objc.dg/sync-1.m: New. * objc.dg/try-catch-1.m: Don't force next runtime. * objc.dg/try-catch-3.m, objc.dg/try-catch-4.m: Likewise. * objc.dg/try-catch-2.m: Likewise. Enable everywhere. Remove shadowed catch clause. * objc.dg/try-catch-5.m: New. From-SVN: r83332
2004-06-18Daily bump.GCC Administrator1-1/+1
[[Split portion of a mixed commit.]] From-SVN: r83326.2
2004-06-17c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>): Use TYPE_FIELDS ↵Andrew Pinski2-1/+6
instead of TYPE_VALUES. 2004-06-17 Andrew Pinski <apinski@apple.com> * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>): Use TYPE_FIELDS instead of TYPE_VALUES. From-SVN: r83321
2004-06-17re PR c++/16015 (xfailed g++.dg/ext/stmtexpr1.C)Jason Merrill9-44/+80
PR c++/16015 * gimplify.c (gimplify_target_expr): Handle void initializer. * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise. * doc/c-tree.texi (Expression trees): Update TARGET_EXPR and AGGR_INIT_EXPR. * cp/semantics.c (simplify_aggr_init_expr): Don't return the slot. (finish_stmt_expr_expr): Update type after conversions. (finish_stmt_expr): Wrap initializer in CLEANUP_POINT_EXPR. Handle void initializer. * cp/tree.c (build_cplus_new): Make AGGR_INIT_EXPRs void. From-SVN: r83320
2004-06-17remove xfailsJason Merrill1-4/+4
From-SVN: r83317
2004-06-17re PR tree-optimization/14107 (Return warnings don't work without ↵Jason Merrill2-10/+9
optimizations enabled) PR tree-optimization/14107 * decl.c (finish_function): Warn about no return in all functions. From-SVN: r83316
2004-06-17class.c (build_clone): Don't call defer_fn, let mark_used do it.Geoffrey Keating4-38/+29
* 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. From-SVN: r83310
2004-06-17* fold-const.c (fold_relational_const): Use constant_boolean_node.Roger Sayle2-25/+21
From-SVN: r83307
2004-06-17re PR target/15433 (ICE, cannot split insn)Jan Hubicka3-4/+20
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. From-SVN: r83305
2004-06-17cfgbuild.c (make_edges): Do not use label_value_list.Jan Hubicka2-44/+13
* 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. From-SVN: r83304
2004-06-17tree-cfg.c (tree_make_forwarder_block): Use SET_PHI_RESULT.Andrew MacLeod19-272/+434
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-17re PR tree-optimization/15991 (phi nodes with identical arguments still ↵Zdenek Dvorak7-23/+149
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* c-parse.in: Unify Objective-C token names.David Ayers2-33/+38
From-SVN: r83296
2004-06-17Bug 14610Zack Weinberg6-39/+166
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-17expmed.c (expand_mult_const): In sanity check...Zack Weinberg2-1/+11
* 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-17re PR java/13948 (GCJ segmentation fault while compiling GL4Java .class files)Ranjit Mathew3-14/+48
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-17tree-ssa-pre.c: Update comments.Daniel Berlin2-70/+165
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-17s390-modes.def (CCL3mode): New machine mode.Ulrich Weigand6-2/+384
* 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-17tree-alias-common.c: Add whitespace.Ben Elliston5-3/+11
* 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-17tree-alias-ander.h: Add standard top-of-file comment.Ben Elliston4-4/+83
* 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-17tree-ssa-pre.c (compute_avail): Value number uses as well.Daniel Berlin2-2/+41
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-16c-common.def (COMPOUND_STMT): Remove.Richard Henderson18-145/+93
* 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-16c-common.h (c_begin_if_stmt, [...]): Remove decls.Richard Henderson6-42/+49
* 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-17Daily bump.GCC Administrator1-1/+1
[[Split portion of a mixed commit.]] From-SVN: r83277.2
2004-06-16s390.c (struct machine_function): New member last_restore_gpr.Ulrich Weigand2-126/+121
* 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-16c-parse.in (if_stmt_locus): Remove.Richard Henderson6-89/+96
* 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-16tree.h (PHI_CHAIN): New.Steven Bosscher22-81/+103
* 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-16i386-ssetype-1.c: Remove XFAIL.Richard Henderson3-4/+7
* gcc.dg/i386-ssetype-1.c: Remove XFAIL. * gcc.dg/i386-ssetype-3.c: Remove XFAIL. From-SVN: r83270
2004-06-17re PR target/13292 (-msoft-float seems to corrupt builtin defines)Bernardo Innocenti3-4/+14
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-16* pt.c (mark_decl_instantiated): Don't call defer_fn.Geoffrey Keating2-5/+4
From-SVN: r83267
2004-06-16m68k.md (movsi_cfv4): New pattern to allow mov3q.Peter Barada4-25/+143
* 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-16c-common.def (CASE_LABEL): Remove.Richard Henderson13-66/+32
* 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-16c-common.def (ASM_STMT): Remove.Richard Henderson12-67/+25
* 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-16c-common.def (GOTO_STMT, LABEL_STMT): Remove.Richard Henderson16-78/+53
* 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-16cfgcleanup.c (try_simplify_condjump): Update test to make sure we have a ↵J"orn Rennecke2-1/+7
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-16re PR c++/16012 (trouble with scope in for statements in templates)Richard Henderson3-0/+24
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-16tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.Daniel Berlin2-2/+6
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-16loop.c (loop_givs_reduce): Avoid miscompilation of loops entered at bottom.Dale Johannesen2-1/+17
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-16cfglayout.c (fixup_reorder_chain): Handle case where the destination of ↵Joern Rennecke1-2/+4
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-16cfglayout.c (fixup_reorder_chain): Handle case where the destination of ↵Joern Rennecke1-0/+5
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-16re PR target/15653 (Gcc 3.4 ICE on valid code)Vladimir Makarov2-1/+9
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-16re PR tree-optimization/15993 ([lno] Compiler hangs at -O3)Zdenek Dvorak1-1/+1
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-16re PR tree-optimization/15993 ([lno] Compiler hangs at -O3)Zdenek Dvorak1-0/+6
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-16install.texi (Configuration): Update description for ↵Andreas Jaeger2-6/+11
--enable-version-specific-runtime-libs. * doc/install.texi (Configuration): Update description for --enable-version-specific-runtime-libs. From-SVN: r83240
2004-06-16configure.ac: New name of configure.in.Paolo Bonzini2-2/+6
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-16toplev.h (rest_of_compilation): Adjust prototype.Paolo Bonzini2-1/+38
2004-06-16 Paolo Bonzini <bonzini@gnu.org> * toplev.h (rest_of_compilation): Adjust prototype. From-SVN: r83226
2004-06-16coverage.c: Remove argument to rest_of_compilation.Paolo Bonzini7-98/+234
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-15fold-const.c (swap_tree_comparison): No longer static.Jeff Law8-7/+92
* 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-16* g++.dg/abi/bitfield3.C: Add comment..Danny Smith2-0/+6
From-SVN: r83223
2004-06-15c-common.c (lang_gimplify_stmt): Remove next_p argument.Richard Henderson48-1650/+1513
* 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