aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimplify.c
AgeCommit message (Collapse)AuthorFilesLines
2004-09-29re PR tree-optimization/17739 (tree-optimizers extend the lifetime of a hard ↵Richard Henderson1-1/+1
register variable) PR 17739 * tree-gimple.c (is_gimple_reg): Reject hard registers. (is_gimple_asm_val): New. * tree-gimple.h (is_gimple_asm_val): Declare. * gimplify.c (gimplify_asm_expr): Use it. * tree-pretty-print.c (print_declaration): Dump hard regs. * tree-outof-ssa.c (check_replaceable): Don't check for hard regs. * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise. * tree-ssa-pre.c (is_undefined_value): Likewise. * tree-ssa-copy.c (may_propagate_copy): Likewise. (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER. * tree-ssa.c (warn_uninit): Likewise. * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL. From-SVN: r88321
2004-09-23tree.def (ALIGN_INDIRECT_REF, [...]): New tree-codes.Dorit Naishlos1-0/+3
2004-09-23 Dorit Naishlos <dorit@il.ibm.com> * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF): New tree-codes. * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and MISALIGNED_INDIRECT_REF. * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise. * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos): Likewise. * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base) (find_interesting_uses_address): Likewise. * fold-const.c (non_lvalue, operand_equal_p): Likewise. (build_fold_addr_expr_with_type): Likewise. * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise. * print-rtl.c (print_mem_expr): Likewise. * tree-dump.c (dequeue_and_dump): Likewise. * tree-eh.c (tree_could_trap_p): Likewise. * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise. * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise. * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by): Likewise. * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise. * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise. * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise. (add_address_candidates, rewrite_address_base): Likewise. * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands): Likewise. * tree.c (staticp, build1_stat): Likewise. * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes. * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR. * tree-ssa-operands.c (get_expr_operands): Likewise. * expr.c (expand_expr_real_1): Likewise. * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New optabs. (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values for the new optabs. (expand_ternary_op): New function. * genopinit.c (optabs): Handle the new optabs. * optabs.c (optab_for_tree_code): Add cases for the new tree-codes. (init_optabs): Initialize vec_realign_load_optab. (expand_ternary_op): New functions. * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target. (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize. (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise. (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise. * target.h (struct vectorize): New member for struct gcc_target. (misaligned_mem_ok): New member for targetm.vectorize. (builtin_mask_for_load): Likewise. (builtin_mask_for_store): Likewise. * targethooks.c (default_vect_misaligned_mem_ok): New function. * targethooks.h (default_vect_misaligned_mem_ok): New function. * config/rs6000/altivec.md (build_vector_mask_for_load): New define_expand. (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi) (vec_realign_load_v16qi): New define_insn. * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD): (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins. * config/rs6000/rs6000.c (altivec_builtin_mask_for_load): (altivec_builtin_mask_for_store): New variables. (rs6000_builtin_mask_for_load): New function. Implements TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD. (rs6000_builtin_mask_for_store): New function. Implements TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE. (rs6000_expand_builtin): Expand the target builtins builtin_mask_for_load and builtin_mask_for_store. (altivec_init_builtins): Initialize the new target builtins. * config/i386/i386.c (ix86_misaligned_mem_ok): New function. Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK. * tree-vectorizer.c (vect_create_data_ref): Renamed to vect_create_data_ref_ptr. Returns a pointer instead of an array-ref. (vect_create_addr_base_for_vector_ref): Additional argument (offset). (vectorizable_store): Call vect_create_data_ref_ptr with additional arguments, and create an indirect_ref with its return value data_ref. Check aligned_access_p. (vectorizable_load): Handle misaligned loads, using software-pipelined scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if vec_realign_load_optab is supported, or using a scheme without software-pipelining with MISALIGNED_INDIRECT_REF if the target hook misaligned_mem_ok is supported. (vect_finish_stmt_generation): Typo. (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info. (vect_analyze_data_refs_alignment): Don't fail vectorization in the presence of misaligned loads. (vect_analyze_data_ref_access): Add check for constant init. (vect_get_symbl_and_dr): Remove duplicate line. * tree-vectorizer.h (DR_MISALIGNMENT): Add comment. From-SVN: r87948
2004-09-23builtins.c (simplify_builtin_va_start): Remove.Eric Christopher1-24/+24
2004-09-22 Eric Christopher <echristo@redhat.com> * builtins.c (simplify_builtin_va_start): Remove. (simplify_builtin): Ditto. (fold_builtin_strchr): Ditto. (simplify_builtin_*): Rename remainders to fold_builtin_*. (expand_builtin): Fix up for above changes. (fold_builtin_1): Add new folders. Change for above. (expand_builtin_va_start): Call fold_builtin_next_arg. * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin. * tree.h: Remove prototype for simplify_builtin. From-SVN: r87921
2004-09-17alias.c (find_base_decl): Remove unreachable case '3' block.Jeffrey D. Oldham1-15/+13
2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com> Zack Weinberg <zack@codesourcery.com> * alias.c (find_base_decl): Remove unreachable case '3' block. * expr.c (safe_from_p): Abort if passed a type. * tree-gimple.c (recalculate_side_effects): Abort if passed anything other than an expression. * tree-ssa-pre.c (phi_translate): Return expr immediately if is_gimple_min_invariant is true for it. Reorder cases for clarity. Abort on un-handled tree classes. (valid_in_set): Likewise. * tree.c (tree_code_class_strings): New static data. * tree.h (enum tree_code_class): New. (tree_code_class_strings): Declare. (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P) (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P) (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros. (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS) (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update. * tree.def, c-common.def, objc/objc-tree.def: Use tree_code_class enumeration constants instead of code letters. * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c Update to match. * LANGUAGES: Add note about change. ada: * ada-tree.def: Use tree_code_class enumeration constants instead of code letters. * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c: Update for new tree-class enumeration constants. cp: * cp-tree.def: Use tree_code_class enumeration constants instead of code letters. * call.c, class.c, cp-gimplify.c, cp-lang.c, cxx-pretty-print.c * mangle.c, pt.c, semantics.c, tree.c, typeck.c: Update for new tree-class enumeration constants. fortran: * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class enumeration constants. java: * java-tree.def: Use tree_code_class enumeration constants instead of code letters. * java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for new tree-class enumeration constants. treelang: * treetree.c: Update for new tree-class enumeration constants. From-SVN: r87675
2004-09-17basic-block.h, [...]: Fix comment typos.Kazu Hirata1-1/+1
* basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c, gimplify.c, lambda-code.c, optabs.c, predict.c, tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c, tree-ssa.c, vec.h: Fix comment typos. Follow spelling conventions. From-SVN: r87637
2004-09-14re PR middle-end/17397 (gimplify ICE)Richard Henderson1-10/+33
PR middle-end/17397 * gimplify.c (gimplify_addr_expr): Don't inadvertently change types while folding <ADDR_EXPR <INDIRECT_REF X>>. From-SVN: r87528
2004-09-11gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless temporary ↵Geoffrey Keating1-1/+2
variables. * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless temporary variables. From-SVN: r87335
2004-09-09gcse.c (INSN_CUID, [...]): Use gcc_assert and gcc_unreachable.Nathan Sidwell1-170/+130
* gcse.c (INSN_CUID, insert_set_in_table, find_avail_set, cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set, process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn, hoist_code, extract_mentioned_regs_helper, compute_store_table, insert_store): Use gcc_assert and gcc_unreachable. * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free, gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs, ggc_record_overhead): Likewise. * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p, init_ggc, ggc_push_context, ggc_recalculate_in_use_p, ggc_pop_context, clear_marks, validate_free_objects, ggc_pch_read): Likewise. * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark, ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone, ggc_push_context, check_cookies, ggc_collect, ggc_print_statistics): Likewise. * gimple-low.c (lower_function_body, lower_stmt, lower_bind_expr): Likewise. * gimplify.c (gimple_tree_eq, push_gimplify_context, pop_gimplify_context, gimple_pop_condition, create_tmp_var, declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus, mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr, gimplify_case_label_expr, gimplify_exit_block_expr, canonicalize_component_ref, gimplify_compound_lval, gimplify_self_mod_expr, gimplify_call_expr, gimplify_init_ctor_eval, gimplify_init_constructor, gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr, gimplify_expr, check_pointer_types_r, force_gimple_operand): Likewise. * global.c (global_alloc, build_insn_chain): Likewise. * graph.c (clean_graph_dump_file, finish_graph_dump_file): Likewise. gcov-io.c (gcov_open): Use GCOV_CHECK. From-SVN: r87240
2004-09-05c-common.c, [...]: Fix comment formatting.Kazu Hirata1-1/+1
* c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c, gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c, stor-layout.c, target.h, tree-cfg.c, tree-chrec.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c, tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c, tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c, tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h, vec.h: Fix comment formatting. From-SVN: r87105
2004-09-05c-common.c, [...]: Fix comment typos.Kazu Hirata1-2/+2
* c-common.c, cfgexpand.c, cgraphunit.c, defaults.h, et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h, hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c, tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c, tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-niter.c, tree-ssa-operands.c, tree-ssa-operands.h, tree-ssa-propagate.c, tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c, vec.c, vec.h: Fix comment typos. Follow spelling conventions. From-SVN: r87104
2004-09-05tree-ssa-loop-ivopts.c: New file.Zdenek Dvorak1-3/+60
* tree-ssa-loop-ivopts.c: New file. * Makefile.in (tree-ssa-loop-ivopts.c): Add. * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost, target_pres_cost, target_spill_cost): Declare. * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost, spill_cost): Renamed to ... (target_avail_regs, target_res_regs, target_small_cost, target_pres_cost, target_spill_cost): ... and exported. (init_set_costs, global_cost_for_size): Work with renamed variables. * common.opt (flag_ivopts): New flag. * expr.c (expand_expr_real_1): Handle SSA_NAME case. Handle REF_ORIGINAL. * gimplify.c (struct gimplify_ctx): Add into_ssa field. (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support generating SSA form. (force_gimple_operand): New function. * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar. * tree-cfg.c (stmt_bsi): New function. * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND, PARAM_IV_MAX_CONSIDERED_USES): New. * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge, bsi_insert_on_edge_immediate_loop. standard_iv_increment_position, ip_end_pos, ip_normal_pos, force_gimple_operand): Declare. * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names. * tree-nested.c (build_addr): Export. * tree-optimize.c (init_tree_optimization_passes): Add pass_iv_optimize. * tree-pass.h (pass_iv_optimize): Declare. * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and IMAGPART_EXPR. * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable as a phi node argument. (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop, ip_end_pos, ip_normal_pos, standard_iv_increment_position): New functions. * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export. * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts, pass_iv_optimize): New pass. * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL. * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL. * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions. * tree.h (REF_ORIGINAL): New macro. (build_int_cst_type, unsigned_type_for, zero_p, cst_and_fits_in_hwi, build_addr): Declare. * doc/invoke.texi (-fivopts): Document. (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND, PARAM_IV_MAX_CONSIDERED_USES): Document. * doc/passes.texi: Document induction variable optimizations pass. * gcc.dg/tree-ssa/loop-2.c: New test. * gcc.dg/tree-ssa/loop-3.c: New test. * gcc.dg/tree-ssa/loop-4.c: New test. * gcc.dg/tree-ssa/loop-5.c: New test. From-SVN: r87100
2004-09-04* gimplify.c (internal_get_tmp_var): Remove unused var CLASS.Richard Kenner1-2/+0
From-SVN: r87088
2004-09-02gimplify.c (gimplify_compound_lval): Move "stack" varray out of GGC.Jan Hubicka1-4/+9
* gimplify.c (gimplify_compound_lval): Move "stack" varray out of GGC. * ggc-page.c: include tree-flow.h. (extra_order_size_table): Add stmt_ann_d. (STAT_LABEL): Rename from .... (LABEL): ... this one. * Makefile.in (ggc-page.o): Add dependency. * ggc-common.c (ggc_force_collect): New global variable. (loc_description): Add fields "freed", "collected" (ptr_hash): New static hash (ptr_hash_entry): New structure. (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions. (ggc_record_overhead): Take ptr argument, record it (ggc_prune_overhead_list, ggc_free_overhead): New functions. (cmp_statistics): Imrove sorting. (dump_ggc_loc_statistics): Output newly collected statistics * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead (ggc_free): Call ggc_free_overhead. (ggc_collect): Force collection when asked to be forced. (ggc_collect): Call ggc_prune_overhead_list. * ggc.h (ggc_force_collect): Declare (ggc_record_overhead): Update prototype. (ggc_free_overhead, ggc_prune_overhead_list): Declare. From-SVN: r86974
2004-08-31c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.Richard Kenner1-3/+2
* c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT. (c_sizeof_of_alignof_type): Likewise. * expr.c (array_ref_element_size): Likewise. (highest_pow2_factor_for_target): Likewise. * gimplify.c (canonicalize_addr_expr): Likewise. (gimplify_compound_lval): Likewise. * stor-layout.c (finalize_record_size, finalize_type_size): Likewise. * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise. * varasm.c (assemble_variable): Likewise. (output_constant_def_contents): Alignments are unsigned. From-SVN: r86848
2004-08-27re PR c++/13684 (local static object variable constructed once but ctors and ↵Jason Merrill1-3/+11
dtors called multiple times on same memory when called in multiple threads) PR c++/13684 * cp/decl.c (expand_static_init): Use thread-safety API. (register_dtor_fn): Return the call, don't expand it. * cp/tree.c (add_stmt_to_compound): New fn. (stabilize_call): Use it. * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY. (gimple_push_cleanup): Add eh_only parm. (gimplify_target_expr): Pass it. * c.opt (-fno-threadsafe-statics): New option. * c-opts.c (c_common_handle_option): Handle it. * c-common.h (flag_threadsafe_statics): Declare it. * c-common.c (flag_threadsafe_statics): Record it. * doc/invoke.texi: Document it. * tsystem.h (_GNU_SOURCE): Define. * gthr-posix.h (__gthread_recursive_mutex_t): New typedef. (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro. (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro. (__gthread_recursive_mutex_init_function): New fn. (__gthread_recursive_mutex_lock): New fn. (__gthread_recursive_mutex_trylock): New fn. (__gthread_recursive_mutex_unlock): New fn. * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise. * gthr-win32.h, gthr-vxworks.h: Likewise. * gthr.h: Document. * libsupc++/guard.cc (static_mutex): Internal class implementing a recursive mutex which controls initialization of local statics. (__gnu_cxx::recursive_init): New exception class. (__cxa_guard_acquire): Deal with locking and recursion detection. (acquire_1, __cxa_guard_abort, __cxa_guard_release): Likewise. From-SVN: r86687
2004-08-25gimplify.c (lookup_tmp_var): Separate temporaries when not optimizing.Geoffrey Keating1-5/+14
* gimplify.c (lookup_tmp_var): Separate temporaries when not optimizing. From-SVN: r86563
2004-08-24gimplify.c (gimplify_array_ref_to_plus): Delete.Richard Henderson1-62/+0
2004-08-24 Richard Henderson <rth@redhat.com> Andrew Pinski <apinski@apple.com> * gimplify.c (gimplify_array_ref_to_plus): Delete. (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus for ARRAY_REF. * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed ARRAY_REF also to get to the STRING_CST. Co-Authored-By: Andrew Pinski <apinski@apple.com> From-SVN: r86487
2004-08-22tree.h (SAVE_EXPR_RESOLVED_P): New.Richard Henderson1-18/+19
* tree.h (SAVE_EXPR_RESOLVED_P): New. * gimplify.c (gimplify_save_expr): Use it. * expr.c (expand_expr_real_1): Likewise. Also set DECL_IGNORED_P on the temporary variable. From-SVN: r86387
2004-08-19gimplify.c (gimplify_minimax_expr): Remove.Paolo Bonzini1-33/+0
2004-08-19 Paolo Bonzini <bonzini@gnu.org> * gimplify.c (gimplify_minimax_expr): Remove. (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling. From-SVN: r86245
2004-08-18tree.h (struct tree_decl): Add gimple_formal_temp.Richard Henderson1-24/+36
* tree.h (struct tree_decl): Add gimple_formal_temp. (DECL_GIMPLE_FORMAL_TEMP_P): New. * gimplify.c (pop_gimplify_context): Clear it. (lookup_tmp_var): Set it, if is_formal. (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX. Use is_gimple_val for VECTOR. Simplify return value. (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P. (gimplify_expr): Likewise. * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from is_gimple_tmp_rhs for clarity. Update all callers. (is_gimple_reg_rhs): Simplify logic. (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for clarity; use DECL_GIMPLE_FORMAL_TEMP_P. (is_gimple_formal_tmp_reg): Similarly. * tree-gimple.h: Update decls. * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use DECL_IGNORED_P, not DECL_ARTIFICIAL. Tidy formatting. * tree-ssa-live.c (var_union, type_var_init): Likewise. java/ * java-gimplify.c (java_gimplify_expr): Move '2' handling into default case. Treat '<' similarly. Update for is_gimple_formal_tmp_var name change. testsuite/ * gcc.dg/20040206-1.c: XFAIL. From-SVN: r86176
2004-08-11gimplify.c (struct gimplify_init_ctor_preeval_data): New.Richard Henderson1-53/+190
* gimplify.c (struct gimplify_init_ctor_preeval_data): New. (gimplify_init_ctor_preeval_1): New. (gimplify_init_ctor_preeval): New. (gimplify_init_ctor_eval): New. (gimplify_init_constructor): Use them. Always gimplify the LHS object first. From-SVN: r85845
2004-08-10builtins.def (BUILT_IN_STACK_ALLOC): Remove.Richard Henderson1-21/+32
* builtins.def (BUILT_IN_STACK_ALLOC): Remove. * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove. * dwarf2out.c (loc_descriptor): Handle PARALLEL here ... (add_location_or_const_value_attribute): ... not here. Use loc_descriptor_from_tree if possible. (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree. Simplify address handling. Handle DECL_VALUE_EXPR. Handle register values specially. (loc_descriptor_from_tree): New. Update callers. * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables. * gimplify.c (gimplify_decl_expr): Lower variable sized types to pointer plus dereference. Set DECL_VALUE_EXPR. Set save_stack. (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC and BUILT_IN_STACK_RESTORE. (gimplify_expr): Lower DECL_VALUE_EXPR decls. * stmt.c (expand_stack_alloc): Remove. * tree-mudflap.c (mx_register_decls): Don't look for BUILT_IN_STACK_ALLOC. * tree-nested.c (convert_local_reference): Likewise. * tree.h (DECL_VALUE_EXPR): New. ada/ * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc, add __builtin_alloca. fortran/ * f95-lang.c (gfc_init_builtin_functions): Remove __builtin_stack_alloc, add __builtin_alloca. * trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR. * trans-decl.c (gfc_trans_auto_character_variable): Likewise. From-SVN: r85794
2004-08-07revert: gimplify.c (gimplify_call_expr): Make return in memory explicit.Jason Merrill1-63/+0
Revert: * gimplify.c (gimplify_call_expr): Make return in memory explicit. (gimplify_modify_expr_rhs): Likewise. From-SVN: r85676
2004-08-07Make return in memory explicit.Jason Merrill1-0/+3
* function.c (aggregate_value_p): Check DECL_BY_REFERENCE. (assign_parm_find_data_types): Remove code for old front end invisible reference handling. (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL. (expand_function_end): Likewise. * gimplify.c (gimplify_return_expr): Handle a dereferenced RESULT_DECL. * tree-inline.c (copy_body_r): Don't bother looking for &* anymore. (declare_return_variable): Handle DECL_BY_REFERENCE. * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL. (cp_genericize_r): Use convert_from_reference. Don't dereference a RESULT_DECL directly inside a RETURN_EXPR. (cp_genericize): Handle the RESULT_DECL. Unset TREE_ADDRESSABLE. From-SVN: r85675
2004-08-07gimplify.c (gimplify_call_expr): Make return in memory explicit.Jason Merrill1-2/+67
* gimplify.c (gimplify_call_expr): Make return in memory explicit. (gimplify_modify_expr_rhs): Likewise. * c-common.c (c_warn_unused_result): Check TREE_USED before warning about a CALL_EXPR with an unused value. From-SVN: r85671
2004-07-30gimplify.c (gimplify_expr): Don't replace with DECL_INITIAL if fb_lvalue.Richard Henderson1-1/+8
* gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace with DECL_INITIAL if fb_lvalue. * tree-gimple.c (is_gimple_id): Add CONST_DECL. * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL with <Cxxx>. * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL. fortran/ * trans-expr.c (gfc_conv_expr_reference): Create a CONST_DECL for TREE_CONSTANTs. testsuite/ * gfortran.fortran-torture/execute/intrinsic_rrspacing.f90: Fix write to constant argument. * gfortran.fortran-torture/execute/intrinsic_scale.f90: Likewise. From-SVN: r85365
2004-07-27gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR, don't ↵Richard Kenner1-10/+15
make another one. * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR, don't make another one. From-SVN: r85249
2004-07-27gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.Richard Henderson1-12/+3
* gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove. (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use is_gimple_addressable. * tree-gimple.c (is_gimple_addressable): Rename from is_gimple_addr_expr_arg; accept INDIRECT_REF. (is_gimple_lvalue): Don't test INDIRECT_REF directly. * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for rename to is_gimple_addressable. From-SVN: r85243
2004-07-23gimplify.c (gimplify_compound_lval): Check for no handled operations, rather ↵Richard Kenner1-50/+25
than checking for explicit list of nodes. * gimplify.c (gimplify_compound_lval): Check for no handled operations, rather than checking for explicit list of nodes. (is_gimple_addr_expr_arg_or_indirect): New function. (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove redundant setting of TREE_INVARIANT. (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval. * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p. From-SVN: r85110
2004-07-23re PR c++/16277 (Wrong code with conditionals in initializers)Richard Henderson1-10/+15
PR c++/16277 * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval; unshare it properly. (gimplify_modify_expr_rhs): Push assignment from a conditional into the conditional for all non-register types. From-SVN: r85100
2004-07-20gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.Richard Henderson1-14/+4
* gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c. (gimplify_compound_lval): Use is_gimple_tmp_reg. * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c. (is_gimple_tmp_reg): New. * tree-gimple.h (is_gimple_tmp_reg): Declare. From-SVN: r84975
2004-07-17cfgcleanup.c (try_simplify_condjump): Don't remove line notes to avoid ↵Steven Bosscher1-1/+1
unreachable code warnings. * cfgcleanup.c (try_simplify_condjump): Don't remove line notes to avoid unreachable code warnings. * toplev.c (backend_init): Don't emit line notes for unreachable code warnings. * combine.c (distribute_notes): Don't distribute a REG_VTABLE_REF note. * final.c (final_scan_insn): Don't handle it. * rtl.c (reg_note_name): Remove it. * rtl.h (enum reg_node): Dito. * emit-rtl.c (force_line_numbers, restore_line_number_status): Remove. * rtl.h (force_line_numbers, restore_line_number_status): Remove prototypes. * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move... * tree-eh.c (using_eh_for_cleanups_p): ...here. Make static. (using_eh_for_cleanups): Also moved here. * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one. <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY. Update calls to expand_start_case and add_case_node. * stmt.c (struct nesting): Cleanup unused fields condition_code, last_unconditional_cleanup, nominal_type, printname, and line_number_status. (struct fixup_goto): Remove. (struct stmt_status): Remove x_goto_fixup_chain field. (goto_fixup_chain): Remove. (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable, pushcase, pushcase_range): Remove. (expand_start_bindings_and_block): Don't set unused fields in the nesting stack. (expand_start_case, add_case_node): Cleanup unused formal arguments. (expand_end_case_type): Don't simplify the case-list. Use emit_jump instead of emit_jump_if_reachable. (emit_case_nodes): Likewise. * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer static. (update_eh_label): Work around left-over exception handing regions. * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos. * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function. (pass_cleanup_cfg_post_optimizing): New pass. (init_tree_optimization_passes): Run the new pass after all optimizations. * tree.h (pushcase, pushcase_range): Remove prototypes. (expand_start_case, add_case_node): Update prototypes. cp/ * cp-tree.h (struct lang_type): Don't have three GTY options on a single bit GTY desc. java/ * parse.y (java_complete_expand_methods, java_expand_classes): Don't abuse restore_line_number_status. From-SVN: r84849
2004-07-16builtins.c (std_expand_builtin_va_arg): Remove.Richard Henderson1-31/+1
* builtins.c (std_expand_builtin_va_arg): Remove. (expand_builtin_va_arg): Remove. * expr.h: Don't declare them. * gimplify.c (mark_decls_volatile_r): Remove. (copy_if_shared_r): Don't call it. * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG. * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR. * gimple-low.c (lower_stmt): Likewise. * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise. * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise. * tree-ssa-operands.c (get_expr_operands): Likewise. * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention EXPAND_BUILTIN_VA_ARG. * system.h (EXPAND_BUILTIN_VA_ARG): Poison. * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h, config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h, config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove. From-SVN: r84842
2004-07-16tree-def (WITH_SIZE_EXPR): New.Richard Henderson1-31/+63
* tree-def (WITH_SIZE_EXPR): New. * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR. * expr.c (expand_expr_real_1): Likewise. * gimplify.c (maybe_with_size_expr): New. (gimplify_arg, gimplify_modify_expr): Use it. (gimplify_modify_expr_to_memcpy): Take size parameter. (gimplify_modify_expr_to_memset): Likewise. (gimplify_expr): Handle WITH_SIZE_EXPR. * tree-alias-common.c (find_func_aliases): Likewise. * tree-eh.c (tree_could_trap_p): Likewise. (tree_could_throw_p): Likewise. * tree-gimple.c (is_gimple_lvalue): Likewise. (get_call_expr_in): Likewise. * tree-inline.c (estimate_num_insns_1): Likewise. (expand_calls_inline): Likewise. * tree-nested.c (convert_call_expr): Likewise. * tree-pretty-print.c (dump_generic_node): Likewise. * tree-sra.c (sra_walk_expr): Likewise. * tree-ssa-alias.c (add_pointed_to_expr): Likewise. * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise. * tree-ssa-operands.c (get_expr_operands): Likewise. * tree-tailcall.c (find_tail_calls): Likewise. * calls.c (expand_call): Reset old_stack_allocated after calling emit_stack_restore. * gcc.c-torture/compile/20020210-1.c: Remove XFAIL. From-SVN: r84833
2004-07-15re PR middle-end/15885 (wrong va_start warning (and code))Jason Merrill1-17/+31
* cp-lang.c (cxx_types_compatible_p): To the middle-end, references and pointers are compatible. PR middle-end/15885 * gimplify.c (gimplify_arg): New fn, split out from... (gimplify_call_expr): Here. Special-case BUILT_IN_VA_START. From-SVN: r84782
2004-07-14tree-gimple.c (is_gimple_reg_rhs, [...]): New fns.Jason Merrill1-29/+7
* tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns. (rhs_test_for): New fn. (is_gimple_tmp_rhs): Rename from is_gimple_rhs. * tree-gimple.h: Declare them. * gimplify.c (gimplify_modify_expr): Use the new fns. From-SVN: r84696
2004-07-12target.h (struct gcc_target): Move gimplify_va_arg_expr next to ↵Richard Henderson1-1/+1
build_builtin_va_list. * target.h (struct gcc_target): Move gimplify_va_arg_expr next to build_builtin_va_list. * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match. * builtins.c (gimplify_va_arg_expr): Likewise. * gimplify.c (copy_if_shared_r): Likewise. From-SVN: r84578
2004-07-12re PR tree-optimization/14107 (Return warnings don't work without ↵Paolo Bonzini1-4/+2
optimizations enabled) gcc/ChangeLog: 2004-06-29 Paolo Bonzini <bonzini@gnu.org> PR tree-optimization/14107 * gimplify.c (gimplify_return_expr): Accept a RETURN_EXPR with an error argument. * tree-optimize.c (init_tree_optimization_passes): Run pass_warn_function_return at -O0. gcc/cp/ChangeLog: 2004-06-29 Paolo Bonzini <bonzini@gnu.org> PR tree-optimization/14107 * decl.c (finish_function): Remove temporary band-aid. From-SVN: r84550
2004-07-11re PR tree-optimization/16422 (gcc.c-torture/execute/980223.c fails)Richard Henderson1-0/+5
PR tree-opt/16422 * tree-sra.c (generate_one_element_init): New. (generate_element_init): Use it. (scalarize_init): Push/pop gimplify context around it. (find_new_referenced_vars_1, find_new_referenced_vars): New. * gimplify.c (gimplify_expr): Allow SSA_NAME. From-SVN: r84523
2004-07-08except.c (expand_eh_region_start, [...]): Remove.Richard Henderson1-8/+6
* except.c (expand_eh_region_start, expand_eh_region_end, expand_eh_handler, expand_eh_region_end_cleanup, expand_start_all_catch, expand_start_catch, expand_end_catch, expand_end_all_catch, expand_eh_region_end_allowed, expand_eh_region_end_must_not_throw, expand_eh_region_end_throw, expand_eh_region_end_fixup): Remove. * stmt.c (struct nesting): Remove stack_level, innermost_stack_block, cleanups, outer_cleanups, label_chain, exception_region. (struct goto_fixup): Remove stack_level, cleanup_list_list. (struct label_chain): Remove. (struct stmt_status): Remove x_stack_block_stack. (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups, fixup_gotos, save_stack_pointer, expand_decl_cleanup, expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral, end_cleanup_deferral, last_cleanup_this_contour, containing_blocks_have_cleanups_or_stack_level, any_pending_cleanups): Remove. (expand_null_return_1): Take no arguments. (expand_label, expand_naked_return, expand_return, expand_start_bindings_and_block, expand_end_bindings, expand_decl, expand_anon_union_decl, expand_start_case, pushcase, pushcase_range, expand_end_case_type): Don't use any of them. * calls.c (expand_call): Likewise. * dojump.c (do_jump): Likewise. * function.c (expand_function_end): Likewise. * expr.c (store_expr, expand_expr_real_1): Likewise. (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR. (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR, EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR. * fold-const.c (fold_checksum_tree): Use first_rtl_op. * gengtype.c (adjust_field_tree_exp): Remove rtl op handling. * gimplify.c (gimplify_cleanup_point_expr): Renumber operands for WITH_CLEANUP_EXPR. (gimple_push_cleanup): Likewise. * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE. * print-tree.c (print_node): Likewise. * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR. * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH. (has_cleanups): Remove GOTO_SUBROUTINE_EXPR. * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2. (GOTO_SUBROUTINE_EXPR): Remove. * tree.h (WITH_CLEANUP_EXPR_RTL): Remove. (DECL_TOO_LATE): Remove. * except.h, tree.h: Update decls. ada/ * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update commentary. cp/ * cp-tree.h (expand_eh_spec_block): Remove. java/ * expr.c (case_identity, get_primitive_array_vtable, java_expand_expr, emit_init_test_initialization): Remove. * java-tree.h (java_expand_expr): Remove. * lang.c (LANG_HOOKS_EXPAND_EXPR): Remove. From-SVN: r84275
2004-07-05langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.Richard Kenner1-7/+3
* langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg. * langhooks.h (var_mod_type_p): Likewise. * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p. * expr.c (count_type_elements): Properly handle return from array_type_nelts and properly test for overflow. * gimplify.c (gimplify_init_constructor): Properly handle return from array_type_nelts. (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS. * integrate.c (copy_decl_for_inlining): Correct comments. * tree-inline.c (remap_decl): Update comments, remove dead code, and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist. (remap_type): Only remap if variably modified by vars in function being inlined. (copy_body_r): Use compatible_type langhooks to see when can fold. (setup_one_parameter): Don't remap type. (inline_forbidden_p_1): Add arg to variably_modified_type_p. * tree.c (recompute_tree_invarant_for_addr_expr): Properly compute TREE_INVARIANT for decl case. (find_var_from_fn): New function. (variably_modified_type_p): Add arg and call new function. * tree.h (variably_modified_type_p): Add extra arg. * cp/cp-lang.c (cp_var_mod_type_p): Add extra arg. * cp/decl.c (grokdeclarator): Extra arg to variably_modified_type_p. * cp/pt.c (check_instantiated_args, unify): Likewise. From-SVN: r84144
2004-07-05tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.Richard Kenner1-35/+44
* tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro. * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it. (gimplify_target_expr, gimplify_expr): Likewise. (copy_if_shared_r): No longer need special case for BIND_EXPR. (unshare_body, unvisit_body): Only look at nested if BODY_P is whole function. (gimplify_compound_lval): See if we can strip any useless conversion. (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size from RHS, not LHS. (gimplify_modify_expr_to_memset): Likewise. (gimplify_expr, case CONSTRUCTOR): Handle use as statement. * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P. (declare_inline_vars): Likewise. (walk_type_fields): New function. (walk_tree): Use it. * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR. From-SVN: r84121
2004-07-03gimplify.c (gimplify_conversion): Remove stripping useless conversions from ↵Richard Kenner1-14/+14
here. * gimplify.c (gimplify_conversion): Remove stripping useless conversions from here. (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS. (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare): Unshare before substituting PLACEHOLDER_EXPR. (gimplify_modify_expr_to_memset): Likewise. Pass address of TO to memset, not TO itself. (gimplify_init_constructor): Make copy of OBJECT so we have it each time we make an expression (to match a PLACEHOLDER_EXPR). From-SVN: r84056
2004-07-01* gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.Richard Kenner1-1/+5
From-SVN: r83998
2004-06-30gimplify.c (gimplify_compound_lval): Take fallback argument instead of ↵Richard Henderson1-26/+27
want_lvalue. * gimplify.c (gimplify_compound_lval): Take fallback argument instead of want_lvalue. (gimplify_call_expr): Take want_value argument instead of test function. Gimplify arguments to val only if reg_type; otherwise allow lvalue forms. (gimplify_expr): Update gimplify_compound_lval and gimplify_call_expr calls. * tree-gimple.c: Update GIMPLE grammer. Use true/false not 1/0. Tidy commentary globally. (get_call_expr_in): Remove RETURN_EXPR handling. Tidy. * tree-gimple.h (is_gimple_call_addr): Mark extern. * gimplify.c (gimplify_modify_expr_to_memcpy): Fix typo. From-SVN: r83941
2004-06-30Conditionally compile support for --enable-mapped_location.Per Bothner1-12/+8
* tree-mudflap.c (mf_file_function_line_tree): Take a location_t rather than a pointer to one. Use expand_location. (mf_varname_tree): Use expand_location. * tree-dump.c: Use expand_location on DECL_SOURCE_LOCATION. * coverage.c: Likewise. * print-tree.c: Likewise. * c-aux-info.c (gen_aux_info_record): Likewise. * c-parse.in: Use SET_EXPR_LOCATION macro. * gimple-low.c: Likewise. * tree-mudflap.c: Likewise. * gimplify.c: Likewise. Also use EXPR_LOCATION and EXPR_HAS_LOCATION. * c-ppoutput.c: Use new source_location typedef instead of fileline. * c-semantics.c: Use new macros. * c-typeck.c: Likewise. From-SVN: r83920
2004-06-29gimplify.c (gimplify_modify_expr_rhs): Move immediately before ↵Richard Henderson1-367/+424
gimplify_modify_expr. * gimplify.c (gimplify_modify_expr_rhs): Move immediately before gimplify_modify_expr. (gimplify_init_constructor): Likewise. Gimplify the null CONSTRUCTOR assignment. (gimplify_modify_expr_to_memcpy): New. (gimplify_modify_expr_to_memset): New. (gimplify_modify_expr): Use them. From-SVN: r83888
2004-06-26c-common.c (c_safe_from_p, [...]): Deleted.Richard Kenner1-1/+71
2004-06-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * c-common.c (c_safe_from_p, c_walk_subtrees): Deleted. * c-common.def (DECL_STMT): Remove. * c-common.h (DECL_STMT_DECL): Deleted. (COMPOUNT_LITERAL_EXPR_DECL): Use DECL_EXPR_DECL. (c_safe_from_p, c_walk_subtrees): Deleted. * c-decl.c, c-parse.in, c-pretty-print.c: DECL_STMT now DECL_EXPR. * c-dump.c (c_dump_tree, case DECL_STMT): Deleted. * c-gimplify.c (gimplify_decl_stmt): Deleted. (gimplify_compound_literal_expr): Use DECL_EXPR_DECL and gimplify_and_add. (c_gimplify_expr, case DECL_EXPR): New case. (c_gimplify_expr, case DECL_STMT): Deleted. * c-lang.c (LANG_HOOKS_SAFE_FROM_P): Likewise. (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise. * expr.c (safe_from_p, case 's'): New case. * gimplify.c (gimplify_decl_expr): New function. (gimplify_expr, case DECL_EXPR): New case. * tree-inline.c (walk_tree): Walk into all fields of a type and decl only if they are in a DECL_EXPR. (mark_local_for_remap_r): Minor code cleanup. * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Add else. * tree.c (has_cleanups, case DECL_EXPR): New case. * tree.def (DECL_EXPR): New code. * tree.h (DECL_EXPR_DECL): New macro. * objc/objc-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted. From-SVN: r83721
2004-06-26c-typeck.c, [...]: Fix comment typos.Kazu Hirata1-1/+1
* c-typeck.c, cfgexpand.c, ddg.c, ddg.h, df.c, fold-const.c, gcov.c, gimplify.c, modulo-sched.c, passes.c, tree-cfg.c, tree-mudflap.c, tree-nrv.c, tree-outof-ssa.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-operands.c, tree-ssa-pre.c, tree-tailcall.c: Fix comment typos. Follow spelling conventions. From-SVN: r83703
2004-06-25gimplify.c (lookup_tmp_var): Set TREE_READONLY in is_formal case.Richard Kenner1-90/+68
* gimplify.c (lookup_tmp_var): Set TREE_READONLY in is_formal case. (build_addr_expr_with_type): Deleted. (build_addr_expr): Deleted; callers changed to build_fold_addr_expr. (gimplify_compound_lval): Make two passes over reference nest. From-SVN: r83678