| 2006-12-31 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/30137 |
| * fold-const.c (fold_comparison): Fold comparison of addresses |
| of components. |
| |
| 2006-12-31 Roger Sayle <roger@eyesopen.com> |
| |
| PR middle-end/30322 |
| * fold-const.c (fold_binary): Fold X + ~X and ~X + X into -1 when |
| we don't care about trapping overflow. Only convert -A - 1 into ~A |
| when we don't care about trapping overflow. |
| |
| 2006-12-31 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/30338 |
| * fold-const.c (fold_binary): Fix type-mismatch in folding |
| of -1 - A to ~A. |
| |
| 2006-12-30 Kazu Hirata <kazu@codesourcery.com> |
| |
| * tree-inline.c: Fix a comment typo. |
| |
| 2006-12-30 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-pure-const.c (check_operand): SSA_NAME is safe. |
| * ipa-type-escape.c (scan_for_refs): Look into SSA_NAMEs. |
| |
| 2006-12-30 Jan Hubicka <jh@suse.cz> |
| |
| * tree.h (DECL_CALL_CLOBBERED): Remove. |
| (tree_decl_common): Remove call_clobbered flag. |
| * tree-flow.h (struct var_ann_d): Add call_clobbered flag. |
| * tree-ssa-alias.c (mark_non_addressable, reset_cc_flags): Update. |
| * tree-flow-inline.h (is_call_clobbered, mark_call_clobbered, |
| clear_call_clobbered): Update. |
| * tree-ssa.c (verify_call_clobbering): Update. |
| |
| 2006-12-30 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-alias.c (create_structure_vars): When in SSA, update operand |
| caches. |
| * tree-ssa-operands.c (build_ssa_operands): Recompute addresses_taken |
| bitmap. |
| |
| 2006-12-30 Jan Hubicka <jh@suse.cz> |
| Vladimir Yanovsky <volodyan@gmail.com> |
| |
| * emit-rt.c (emit_copy_of_insn_after): Fix bug causing exponential |
| amount of copies of INSN_NOTEs list. |
| |
| 2006-12-29 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.c (cgraph_expand_queue): Rename to... |
| (cgraph_new_nodes): ... this one. |
| (cgraph_state): New global variable. |
| (cgraph_add_new_function): Work in more cases. |
| * cgraph.h (cgraph_expand_queue): Rename to ... |
| (cgraph_new_nodes): ... this one. |
| (cgraph_state): New enum and static variable. |
| (cgraph_add_new_function): Update prototype. |
| (cgraph_process_new_functions): New. |
| * omp-low.c (expand_omp_parallel): Update. |
| * cgraphunit.c (initialize_inline_failed): Declare early. |
| (cgraph_process_new_functions): New function. |
| (cgraph_assemble_pending_functions): Use it. |
| (cgraph_expand_all_functions): Use it. |
| (cgraph_optimize): Use it; set cgraph_state. |
| * passes.c (execute_one_pass, execute_ipa_pass_list): Process new |
| functions |
| |
| 2006-12-29 Kazu Hirata <kazu@codesourcery.com> |
| |
| * tree-cfg.c (last_stmt_ptr): Remove. |
| * tree-flow.h: Remove the prototype for last_stmt_ptr. |
| |
| * config/i386/i386.h (NON_QI_REG_P): Remove. |
| * config/i386/predicates.md (non_q_regs_operand): Remove. |
| |
| 2006-12-29 Ian Lance Taylor <iant@google.com> |
| |
| * c-common.c (c_define_builtins): New static function broken out |
| of c_common_nodes_and_builtins. |
| (c_common_nodes_and_builtins): Call c_define_builtins unless only |
| doing preprocessing. |
| |
| 2006-12-29 Jan Hubicka <jh@suse.cz> |
| |
| * tree-inline.c (remap_ssa_name): New function. |
| (remap_decl): Update SSA datastructures for DECLs. |
| (copy_body_r): Deal with SSA_NAMEs; add referenced global vars. |
| (copy_bb): Set SSA_NAME def stmts. |
| (update_ssa_acorss_eh_edges): New function. |
| (copy_edge_for_bb): Call it; mark new vars for renaming. |
| (copy_phis_for_bb): New function. |
| (initialize_cfun): Break out from ... |
| (copy_cfg_body): ... here; maintain AUX map for both directions; |
| call SSA updating workers; do not produce copy of cfun to be copied. |
| (setup_one_parameter): Do propagation across SSA form. |
| (declare_return_variable): Work on SSA; use return_slot instead of |
| address of return slot of argument to avoid folding back and forth. |
| (expand_call_inline): Update SSA from on return values. |
| (optimize_inline_calls): Do sanity checking, dead blocks removal, |
| update SSA form. |
| (tree_function_verioning): Update initialize_cfun. |
| |
| 2006-12-29 Marcin Dalecki <martin@dalecki.de> |
| |
| * doc/invoke.texi: Replace no longer supported -fno-strength-reduce |
| with -fmerge-constants in sample code. |
| |
| 2006-12-28 Kazu Hirata <kazu@codesourcery.com> |
| |
| * Makefile.in (OBJS-common): Remove conflict.o |
| (conflict.o): Remove. |
| * basic-block.h: Remove the prototypes for conflict.c. |
| * conflict.c: Remove. |
| |
| 2006-12-27 Daniel Berlin <dberlin@dberlin.org> |
| |
| * sbitmap.c (BITMAP_DEBUGGING): New macro. |
| (do_popcount): Ditto. |
| (sbitmap_verify_popcount): New function. |
| (sbitmap_alloc): Set popcount to NULL, remove set of bytes |
| member. |
| (sbitmap_alloc_with_popcount): New function. |
| (sbitmap_resize): Remove uses of bytes member and update |
| popcount. |
| (sbitmap_realloc): Remove uses of bytes member. |
| (sbitmap_copy): Copy popcount. |
| (sbitmap_copy_n): New function. |
| (sbitmap_zero): Update popcount cache. |
| (sbitmap_ones): Ditto. |
| (sbitmap_a_and_b): Ditto. |
| (sbitmap_a_or_b): Ditto. |
| (sbitmap_a_xor_b): Ditto. |
| (sbitmap_union_of_diff_cg): Assert non-existence of popcount |
| cache. |
| (sbitmap_union_of_diff): Ditto. |
| (sbitmap_not): Ditto. |
| (sbitmap_difference): Ditto. |
| (sbitmap_a_and_b_cg): Ditto. |
| (sbitmap_a_xor_b_cg): Ditto. |
| (sbitmap_a_or_b_cg): Ditto. |
| (sbitmap_a_or_b_and_c_cg): Ditto. |
| (sbitmap_a_and_b_or_c_cg): Ditto. |
| (sbitmap_intersection_of_succs): Ditto. |
| (sbitmap_intersection_of_preds): Ditto. |
| (sbitmap_union_of_succs): Ditto. |
| (sbitmap_union_of_preds): Ditto. |
| (popcount_table): New. |
| (sbitmap_elt_popcount): New function. |
| (sbitmap_popcount): Ditto. |
| |
| * sbitmap.h (sbitmap): Remove bytes member. |
| Add popcount member. |
| (SET_BIT): Macro turned into function. |
| (RESET_BIT): Ditto. |
| (SBITMAP_SIZE_BYTES): New macro. |
| (sbitmap_free): Free popcount too. |
| (sbitmap_alloc_with_popcount): New prototype. |
| (sbitmap_copy_n): Ditto. |
| (sbitmap_verify_popcount): Ditto. |
| |
| 2006-12-27 Ian Lance Taylor <iant@google.com> |
| |
| PR debug/26964 |
| * dwarf2out.c (gen_type_die): Don't write out a DIE for |
| ENUMERAL_TYPE if it was already written out. |
| |
| 2006-12-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| PR middle-end/29335 |
| * builtins.c (do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3, |
| do_mpfr_sincos): Ensure target base equals two. |
| |
| 2006-12-26 Kazu Hirata <kazu@codesourcery.com> |
| |
| * tree-ssa-operands.c: Fix a comment typo. |
| |
| 2006-12-25 Kazu Hirata <kazu@codesourcery.com> |
| |
| * tree-vectorizer.h (VECT_SMODULO): Remove. |
| |
| 2006-12-24 Andreas Tobler <a.tobler@schweiz.org> |
| |
| * config/pa/pa.c: Remove heap vector type defines. |
| |
| 2006-12-24 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-operands.h (struct ssa_operand_memory_d): |
| add ssa_operand_mem_size. |
| * tree-ssa-operands.c (operands_bitmap_obstack): New. |
| (ssa_operand_mem_size): Remove. |
| (init_ssa_operands): Initialize obstack; use it. |
| (fini_ssa_operands): Release obstack. |
| (ssa_operand_alloc): Update. |
| (finalize_ssa_vdefs, finalize_ssa_vuse_ops, copy_virtual_operands, |
| get_mpt_for): Use obstack. |
| * tree-ssa.c (delete_tree_ssa): Call fini_ssa_operands. |
| * tree-outof-ssa.c: (remove_ssa_form): Don't call it here. |
| |
| 2006-12-24 Jan Hubicka <jh@suse.cz> |
| |
| * tree-mudflap.c (ml_decl_cache_locals, md_build_check_statement_for): |
| add newly referenced vars. |
| |
| 2006-12-24 Kazu Hirata <kazu@codesourcery.com> |
| |
| * basic-block.h: Remove the prototype for |
| expected_value_to_br_prob. |
| * rtl.h: Remove the prototypes for expand_builtin_expect_jump |
| and purge_line_number_notes. |
| |
| 2006-12-23 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne, |
| assert_no_overflow_lt, assert_loop_rolls_lt, |
| number_of_iterations_lt, number_of_iterations_le, |
| number_of_iterations_cond, number_of_iterations_exit): |
| Use integer_zerop/integer_nonzerop instead of |
| null_or_integer_zerop/nonnull_and_integer_nonzerop. |
| * tree.h (null_or_integer_zerop, nonnull_and_integer_nonzerop): |
| Removed. |
| * tree-scalar-evolution.c (simple_iv): Return zero for step of |
| an invariant. |
| * tree-ssa-loop-ivopts.c (alloc_iv): Do not set step of invariants |
| to zero. |
| (get_iv): Return NULL for non-scalar types. Use zero as a step |
| of an invariant. |
| (determine_biv_step, find_interesting_uses_op, |
| find_interesting_uses_cond, find_interesting_uses_stmt, |
| add_old_ivs_candidates, determine_use_iv_cost_condition, |
| rewrite_use_compare, remove_unused_ivs): |
| Use integer_zerop instead of null_or_integer_zerop. |
| (struct ifs_ivopts_data): Replace step_p field with step field. |
| (idx_find_step): Use zero as a step of an invariant. Modify |
| step instead of *step_p. |
| (find_interesting_uses_address): Use zero as a step of an invariant. |
| Use integer_zerop instead of null_or_integer_zerop. |
| (find_interesting_uses_outside): Call find_interesting_uses_op only |
| for phi nodes for real operands. |
| (add_candidate_1): Expect step to be non-NULL. |
| * tree-ssa-loop-prefetch.c (idx_analyze_ref): Expect step to be |
| non-NULL. |
| |
| 2006-12-23 Andrew Pinski <pinskia@gmail.com> |
| |
| * vec.c: Don't include tree.h. |
| * Makefile.in (vec.o): Update dependencies. |
| (build/vec.o): Likewise. |
| |
| 2006-12-23 Kazu Hirata <kazu@codesourcery.com> |
| |
| * common.opt (flag_force_mem): Remove. |
| * doc/invoke.texi (-fforce-mem): Remove. |
| * opts.c (common_handle_option): Don't handle OPT_fforce_mem. |
| |
| * Makefile.in (final.o): Depend on vecprim.h. |
| * final.c: Include vecprim.h. |
| (insn_addresses_): Change the type to VEC(int,heap)*. |
| * insn-addr.h (INSN_ADDRESSES_DEFN): Remove. |
| (INSN_ADDRESSES, INSN_ADDRESSES_ALLOC, INSN_ADDRESSES_SIZE, |
| INSN_ADDRESSES_NEW): Use VEC instead of VARRAY. |
| |
| 2006-12-23 Marcin Dalecki <martin@dalecki.de> |
| |
| * cgraphunit.c (cgraph_optimize): Fixed obvious thinko in memory |
| consumption reporting. |
| |
| 2006-12-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| PR middle-end/7651 |
| * c.opt (Wmissing-parameter-type): New. |
| * doc/invoke.texi (Wmissing-parameter-type): Document it. |
| (Wextra): Enabled by -Wextra. |
| * c-opts.c (c_common_post_options): Enabled by -Wextra. |
| * c-decl.c (store_parm_decls_oldstyle): Replace Wextra with |
| Wmissing-parameter-type. |
| |
| 2006-12-23 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2out.c (dbx_reg_number): Do leaf register remapping |
| only if the function is leaf. |
| (multiple_reg_loc_descriptor): Likewise. |
| |
| 2006-12-23 Kazu Hirata <kazu@codesourcery.com> |
| |
| * rtl.h (NOTE_EXPECTED_VALUE): Remove. |
| |
| 2006-12-23 Jan Hubicka <jh@suse.cz> |
| |
| * toplev.c (dump_memory_report): Break out from... |
| (finalize): Here. |
| * toplev.h (dump_memory_report): Declare. |
| (cmp_statistic): Rename to ... |
| (final_cmp_statistic): ... this one |
| (cmp_statistic): New. |
| (dump_ggc_loc_staitsitcs): New FINAL parpameter. |
| * common.opt (-fpre-ipa-mem-report, -fpost-ipa-mem-report): Declare. |
| * varray.c (dump_varray_staitiscs): Do not segfault when no varray was |
| allocated so far. |
| * cgraphunit.c (cgraph_optimize): Dump the memory reports. |
| |
| 2006-12-22 Mike Stump <mrs@apple.com> |
| |
| * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Add |
| -mmacosx-version-min=10.4. |
| (crt2.o): Add $(DARWIN_EXTRA_CRT_BUILD_CFLAGS). |
| |
| 2006-12-23 Jan Hubicka <jh@suse.cz> |
| |
| * tree-flow-inline.h (var_ann): External variable annotations are |
| unshared too. |
| (tree_common_ann): Handle correctly unshared variables annotations. |
| * tree-dfa.c (create_var_ann): External variable annotations are |
| unshared too. |
| |
| 2006-12-22 Kazu Hirata <kazu@codesourcery.com> |
| |
| * basic-block.h: Remove the prototype for |
| commit_edge_insertions_watch_calls. |
| * cfgrtl.c (commit_edge_insertion): Drop the last argument. |
| Simplify. |
| (commit_edge_insertions_watch_calls): Remove. |
| (commit_edge_insertions): Adjust the call to |
| commit_one_edge_insertion. |
| |
| 2006-12-22 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * tree-ssa-loop-niter.c (zero_p, nonzero_p): Removed. |
| (number_of_iterations_ne, number_of_iterations_lt_to_ne, |
| assert_no_overflow_lt, assert_loop_rolls_lt, |
| number_of_iterations_lt, number_of_iterations_le, |
| number_of_iterations_cond, tree_simplify_using_condition_1, |
| number_of_iterations_exit, find_loop_niter, loop_niter_by_eval, |
| implies_nonnegative_p, implies_ge_p, record_nonwrapping_iv, |
| idx_infer_loop_bounds, n_of_executions_at_most, scev_probably_wraps_p): |
| Do not use zero_p/nonzero_p. |
| * tree-ssa-loop-manip.c (determine_exit_conditions): Ditto. |
| * tree-ssa-loop-ivopts.c (niter_for_exit, determine_biv_step, |
| find_interesting_uses_op, find_interesting_uses_cond, |
| find_interesting_uses_address, find_interesting_uses_stmt, |
| strip_offset_1, add_candidate_1, add_old_ivs_candidates, |
| difference_cost, determine_use_iv_cost_condition, |
| rewrite_use_compare, remove_unused_ivs): Ditto. |
| * tree-ssa-address.c (tree_mem_ref_addr, create_mem_ref_raw): Ditto. |
| * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto. |
| * tree-cfg.c (find_taken_edge_cond_expr): Ditto. |
| * tree.h (zero_p): Declaration removed. |
| (null_or_integer_zerop, nonnull_and_integer_nonzerop): New. |
| |
| 2006-12-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| PR middle-end/7651 |
| * c.opt (Wclobbered): New. |
| * doc/invoke.texi (Wclobbered): Document it. |
| (Wextra): Enabled by -Wextra. |
| * c-opts.c (c_common_post_options): Enabled by -Wextra. |
| * flow.c (rest_of_handle_life): Replace Wextra with Wclobbered. |
| * function.c (setjmp_vars_warning): Only warn for Wclobbered. |
| (setjmp_args_warning): Likewise. |
| |
| 2006-12-22 Kazu Hirata <kazu@codesourcery.com> |
| |
| * config/elfos.h, config/spu/spu.c, tree-ssa-operands.h, |
| tree-ssa-ter.c: Fix comment typos. |
| |
| 2006-12-22 Paolo Bonzini <bonzini@gnu.org> |
| |
| PR rtl-optimization/29840 |
| |
| * fwprop.c (forward_propagate_into): Reject artificial uses/defs. |
| (fwprop_init): Add DF_HARD_REGS to df_init call. |
| |
| 2006-12-21 Andrew Pinski <pinskia@gmail.com> |
| |
| * tree-nested.c (create_tmp_var_for): Check for vector type |
| when setting DECL_GIMPLE_REG_P. |
| |
| 2006-12-21 Roger Sayle <roger@eyesopen.com> |
| |
| * tree-pretty-print.c (dump_generic_node): Avoid outputing "(void) 0;" |
| as the else branch of a COND_EXPR. |
| |
| 2006-12-22 Kazu Hirata <kazu@codesourcery.com> |
| |
| * cgraphunit.c, config/i386/i386.c, config/ia64/ia64.c, cse.c, |
| output.h, toplev.c, tree-affine.h, tree-flow.h, |
| tree-ssa-alias.c, tree-ssa-coalesce.c, tree-ssa-live.c, |
| tree-ssa-live.h, tree-ssa-operands.c, tree-ssa-ter.c, |
| tree-vrp.c, varpool.c: Fix comment typos. |
| |
| * cgraphunit.c, varpool.c: Fix comment typos. |
| |
| 2006-12-22 Ulrich Weigand <uweigand@de.ibm.com> |
| |
| * config/spu/spu.h (ARG_POINTER_CFA_OFFSET): Define. |
| * config/spu/spu.c (spu_expand_prologue): Set RTX_FRAME_RELATED_P |
| for insn setting up the frame pointer. Do not set it for insns |
| setting up scratch registers or storing the backchain. |
| |
| 2006-12-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR other/29639 |
| * configure.ac (HAVE_LD_EH_GC_SECTIONS): Check that exception tables |
| are kept for .gnu.linkonce.t sections if COMDAT groups are disabled. |
| * configure: Regenerate. |
| |
| 2006-12-21 Joseph Myers <joseph@codesourcery.com> |
| |
| * rtlanal.c (subreg_get_info): Do not make register size |
| computations for mode sizes not divisible by the number of |
| registers. |
| |
| 2006-12-21 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-structalias.c (build_constraint_graph): Insert complex |
| offsetted constraints into rhsvar, not lhsvar. |
| |
| 2006-12-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/30262 |
| PR middle-end/30263 |
| * tree-nested.c (walk_asm_expr): New function. |
| (walk_stmts): Use it for ASM_EXPR. |
| |
| PR target/30230 |
| * config/ia64/ia64.c (ia64_add_bundle_selector_before): New function. |
| (bundling): Use it. |
| |
| 2006-12-21 Nathan Sidwell <nathan@codesourcery.com> |
| |
| PR target/28966 |
| PR target/29248 |
| * reload1.c (reload): Realign stack after it changes size. |
| |
| 2006-12-20 Roger Sayle <roger@eyesopen.com> |
| |
| * simplify-rtx.c (simplify_subreg): Use the correct mode when |
| determining whether a SUBREG of a CONCAT refers to the first or |
| second component. |
| |
| 2006-12-21 Ben Elliston <bje@au.ibm.com> |
| |
| * config/spu/spu.c (spu_builtin_mul_widen_even): Remove unused |
| local variable `d'. |
| |
| 2006-12-20 Jan Hubicka <jh@suse.cz> |
| |
| * tree-dfa.c (add_referenced_var): Walk initializers of |
| non-constant/readonly static vars. |
| |
| 2006-12-20 Jan Hubicka <jh@suse.cz> |
| |
| * tree-flow-inline.h (gimple_var_anns): New function. |
| (var_ann): Use hashtable for static functions. |
| * tree-dfa.c (create_var_ann): Likewise. |
| * tree-ssa.c (var_ann_eq, var_ann_hash): New functions. |
| (init_tree_ssa): Initialize var anns. |
| (delete_tree_ssa): Delete var anns; also clear out gimple_df. |
| * tree-flow.h (struct static_var_ann_d): New structure. |
| (gimple_df): Add var_anns. |
| |
| 2006-12-20 Carlos O'Donell <carlos@codesourcery.com> |
| |
| PR bootstrap/30242 |
| * gcc/c-incpath.c (add_standard_paths): Only relocate paths that |
| begin with the configured prefix. |
| |
| 2006-12-20 Jan Hubicka <jh@suse.cz> |
| |
| PR target/30213 |
| * i386.c (expand_setmem_epilogue): Fix formating. |
| (dsmalest_pow2_greater_than): New function. |
| (ix86_expand_movmem): Improve comments; avoid re-computing of |
| epilogue size. |
| (promote_duplicated_reg_to_size): Break out from ... |
| (expand_setmem): ... this one; reorganize promotion code; |
| improve comments; avoid recomputation of epilogue size. |
| |
| 2006-12-20 Andrew Pinski <pinskia@gmail.com> |
| |
| PR middle-end/30143 |
| * omp-low.c (init_tmp_var): New function. |
| (save_tmp_var): New function. |
| (lower_omp_1): Use them for VAR_DECL. |
| |
| 2006-12-20 Andrew Pinski <pinskia@gmail.com> |
| |
| * tree-gimple.c (is_gimple_min_invariant): Treat constant vector |
| CONSTRUCTORs as min invariants. |
| |
| 2006-12-20 Joseph Myers <joseph@codesourcery.com> |
| |
| * rtlanal.c (struct subreg_info, subreg_get_info, subreg_nregs): |
| New. |
| (subreg_regno_offset, subreg_offset_representable_p): Change to |
| wrappers about subreg_get_info. |
| (refers_to_regno_p, reg_overlap_mentioned_p): Use subreg_nregs. |
| * rtl.h (subreg_nregs): Declare. |
| * doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING): Update to refer to |
| subreg_get_info. |
| * caller-save.c (mark_set_regs, add_stored_regs): Use |
| subreg_nregs. |
| * df-scan.c (df_ref_record): Use subreg_nregs. |
| * flow.c (mark_set_1): Use subreg_nregs. |
| * postreload.c (move2add_note_store): Use subreg_nregs. |
| * reload.c (decompose, refers_to_regno_for_reload_p, |
| reg_overlap_mentioned_for_reload_p): Use subreg_nregs. |
| * resource.c (update_live_status, mark_referenced_resources, |
| mark_set_resources): Use subreg_nregs. |
| |
| 2006-12-20 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * loop-unswitch.c (unswitch_loop): Update arguments of |
| duplicate_loop_to_header_edge call. |
| * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Ditto. |
| * loop-unroll.c (peel_loop_completely, unroll_loop_constant_iterations, |
| unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid): |
| Ditto. |
| * cfgloopmanip.c (loop_version): Ditto. |
| (duplicate_loop_to_header_edge): Change |
| type of to_remove to VEC(edge), remove n_to_remove argument. |
| * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge): |
| Change type of to_remove to VEC(edge), remove n_to_remove argument. |
| (tree_unroll_loop): Update arguments of |
| tree_duplicate_loop_to_header_edge call. |
| * cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): |
| Change type of to_remove to VEC(edge), remove n_to_remove argument. |
| * cfghooks.h (struct cfg_hooks): Type of |
| cfg_hook_duplicate_loop_to_header_edge changed. |
| (cfg_hook_duplicate_loop_to_header_edge): Declaration changed. |
| * cfgloop.h (duplicate_loop_to_header_edge): Ditto. |
| * tree-flow.h (tree_duplicate_loop_to_header_edge): Ditto. |
| |
| 2006-12-20 Dorit Nuzman <dorit@il.ibm.com> |
| |
| * config/spu/spu.md (vec_widen_umult_hi_v8hi): New. |
| (vec_widen_umult_lo_v8hi, vec_widen_smult_hi_v8hi): New. |
| (vec_widen_smult_lo_v8hi): New. |
| * config/spu/spu.c (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined. |
| (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined. |
| (spu_builtin_mul_widen_even, spu_builtin_mul_widen_odd): New. |
| |
| 2006-12-20 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.c: Update overall comment; fix vertical spacing. |
| * ipa-inline.c (cgraph_decide_inlining): Remove now redundant check. |
| |
| 2006-12-20 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.h (FOR_EACH_STATIC_VARIABLE, FOR_EACH_STATIC_INITIALIZER): New |
| macros. |
| (varpool_first_static_initializer, varpol_next_static_initializer): New |
| inline functions. |
| * ipa-reference.c (analyze_variable): Simplify. |
| (static_execute): Use FOR_EACH_STATIC_INITIALIZER. |
| * ipa-type-escape.c (type_escape_execute): Use FOR_EACH_STATIC_VARIABLE. |
| |
| 2006-12-19 Andrew Pinski <pinskia@gmail.com> |
| |
| PR tree-opt/30045 |
| * tree-vrp.c (nonnull_arg_p): Treat the static decl as always |
| non null. |
| |
| 2006-12-20 Ben Elliston <bje@au.ibm.com> |
| |
| * doc/invoke.texi (Optimize Options): Typo fix. |
| |
| 2006-12-19 Eric Christopher <echristo@apple.com> |
| |
| * config/darwin.c (machopic_select_section): Rewrite. |
| (darwin_text_section): New. |
| (darwin_rodata_section): Ditto. |
| (darwin_mergeable_string_section): Ditto. |
| (darwin_mergeable_constant_section): Ditto. |
| * config/darwin-sections.def: Add SECTION_STRINGS for cstring_section. |
| |
| 2006-12-19 Steve Ellcey <sje@cup.hp.com> |
| |
| * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL): Add undef. |
| |
| 2006-12-19 Paolo Bonzini <bonzini@gnu.org> |
| |
| PR bootstrap/29544 |
| * gcc/Makefile.in (STAGE1_CHECKING): Rename to... |
| (STAGE1_CHECKING_CFLAGS): ... this. |
| |
| 2006-12-18 Andrew Pinski <pinskia@gmail.com> |
| |
| PR target/29779 |
| * config/rs6000/rs6000.c (altivec_init_builtins): Change to set |
| READONLY on __builtin_altivec_mask_for_load instead of adding |
| the attribute. |
| |
| 2006-12-18 Roger Sayle <roger@eyesopen.com> |
| Eric Christopher <echristo@apple.com> |
| |
| PR target/29302 |
| * real.c (real_maxval): Correctly handle IBM extended double format. |
| |
| 2006-12-19 Jan Hubicka <jh@suse.cz> |
| |
| * expmed.c (expand_mult_const): Force operand to constant. |
| * rs6000.c (rs6000_emit_set_const, rs6000_emit_set_long_const): Add |
| copy_rtx to arguments. |
| |
| 2006-12-19 Ben Elliston <bje@au.ibm.com> |
| |
| * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. |
| |
| 2006-12-19 Ben Elliston <bje@au.ibm.com> |
| |
| * cse.c (cse_insn): Fix formatting. |
| |
| 2006-12-18 Geoffrey Keating <geoffk@apple.com> |
| |
| * doc/invoke.texi (Debugging Options): Document -g0. |
| * config/darwin.h (LINK_COMMAND_SPEC): Replace -gnone with -g0. |
| * config/darwin9.h (LINK_COMMAND_SPEC): Likewise. |
| |
| 2006-12-18 Ian Lance Taylor <iant@google.com> |
| |
| * c.opt (Wmissing-declarations): Add C++ and ObjC++. |
| * doc/invoke.texi (Warning Options): -Wmissing-declarations now |
| works for C++. |
| |
| 2006-12-18 Andrew MacLeod <amacleod@redhat.com> |
| |
| * tree-ssa-operands.h (struct vdef_optype_d): Rename to voptype_d. |
| (struct vuse_optype_d): Delete. |
| (SSA_OPERAND_MEMORY_SIZE): Delete. |
| (struct ssa_operand_memory_d): Change mem array to size one. |
| (NUM_VOP_FREE_BUCKETS): Define. |
| (free_vuses, free_vdefs): Replace with vop_free_buckets array. |
| (vdef_ops, vuse_ops, struct ssa_operand_iterator_d): Use voptype_d type. |
| * tree-pretty-print.c (dump_vops): Use voptype_d type. |
| * tree-ssa-operands.c (vop_free_bucket_size): New. Number of operands |
| which fit into a chunk of memory from a specific bucket. |
| (vop_free_bucket_index): New. Find correct size memory bucket. |
| (init_vop_buckets): New. Initialize VOP free memory buckets. |
| (add_vop_to_freelist): New. Add a VOP to the correct free list. |
| (ssa_operand_mem_size): New. Current size of an operand memory chunk. |
| (init_ssa_operands): Initialize operand memory and free lists. |
| (fini_ssa_operands): Remove references to free_vuses and free_vdefs. |
| (ssa_operand_alloc): Use graduated size memory allocation. |
| (APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST, |
| INITIALIZE_USE): Remove. |
| (alloc_vop): New. Allocate a virtual operand. |
| (alloc_vdef, alloc_vuse): Delete. |
| (add_def_op, add_use_op): Directly setup pointers. |
| (add_vop): New. Add a virtual operand. |
| (add_vuse_op, add_vdef_op): Call add_vop. |
| (realloc_vop): New. Reallocate a virtual operand. |
| (realloc_vdef, realloc_vuse): Call realloc_vop. |
| (finalize_ssa_def_ops): Delete. Move content to finalize_ssa_defs. |
| (finalize_ssa_defs): Optimize for common case, remove code based on |
| sorted pointers which was a waste of time. |
| (finalize_ssa_use_ops): Delete. Move content to finalize_ssa_uses. |
| (finalize_ssa_uses): Update last pointer. |
| (finalize_ssa_vdef_ops): Delete. Move content to finalize_ssa_vdefs. |
| (finalize_ssa_vdefs, finalize_ssa_vuse_ops): Use voptype_d and |
| directly manipulate pointers. |
| (copy_virtual_operands): Use voptype_d, and no need to update pointers. |
| |
| 2006-12-18 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/rs6000/rs6000.md (*movdf_hardfloat32): Use %X format to |
| determine if memory operand is an indexed address or not. |
| |
| 2006-12-17 Steven Bosscher <steven@gcc.gnu.org> |
| |
| * cselib.c (struct cselib_val_struct): Make val_rtx its |
| own field, remove the union that contained it. |
| * cselib.c: Update accordingly where necessary. |
| |
| 2006-12-17 Steven Bosscher <steven@gcc.gnu.org> |
| |
| * cse.c (have_eh_succ_edges): New function. |
| (cse_insn): Don't remove dead EH edges here |
| (cse_extended_basic_block): Do it here. |
| (rest_of_handle_cse, rest_of_handle_cse2): Don't assert |
| that we have removed all dead edges. |
| |
| 2006-12-17 Matthias Klose <doko@debian.org> |
| |
| PR libstdc++/11953 |
| * gcc/config/mips/linux.h (SUBTARGET_CPP_SPEC): Extend. |
| |
| 2006-12-17 Steven Bosscher <steven@gcc.gnu.org> |
| |
| * cse.c (cse_find_path): Don't wrap a gcc_assert in ENABLE_CHECKING. |
| (cse_extended_basic_block): When truncating a path while processing |
| it, make sure to clear the visited bit on the basic blocks in the |
| truncated part of the path. |
| (cse_main): Use reverse completion order, not DFS order, to walk |
| the CFG. |
| (gate_handle_cse): Revert erroneous commit of a counter. |
| |
| 2006-12-17 Steven Bosscher <steven@gcc.gnu.org> |
| |
| * cse.c (this_insn_cc0, this_insn_cc0_mode): New global |
| variables, moved out from cse_insn. |
| (prev_insn): Remove this global variable). |
| (new_basic_block): Don't set it. |
| (cse_insn): Idem. Also, move code to delete unused CC0-setter |
| insns and code to set prev_insn_cc0 and prev_insn_cc0_mode |
| from here... |
| (cse_extended_basic_block): ...to here. Do not clear |
| prev_insn_cc0 until after recording equivalences from jumps. |
| |
| 2006-12-16 Jan Hubicka <jh@suse.cz> |
| |
| * cgraphunit.c (ipa_passes): Clear current_function_decl. |
| |
| 2006-12-16 Andreas Tobler <a.tobler@schweiz.org> |
| |
| * passes.c (verify_curr_properties): Define only for ENABLE_CHECKING. |
| |
| 2006-12-16 Jan Hubicka <jh@suse.cz> |
| |
| * omp-low.c (expand_omp_parallel): Set function properties. |
| * function.h (struct function): Add curr_properties and last_verified. |
| * passes.c (register_dump_files): Do not set TODO_set_props for the |
| first pass |
| (init_optimization_passes): Set it here; reorder initialization so the |
| dump files appear in more logical order. |
| (last_verified, curr_properties): Kill. |
| (do_per_function): New function. |
| (execute_function_todo): Break out from ... |
| (execute_todo): ... here; handle per-function flags. |
| (clear_last_verified, verify_curr_properties, |
| update_properties_after_pass): New functions. |
| (execute_one_pass): Handle per-function properties. |
| (execute_ipa_pass_list): Use do_per_function; sanity check that cfun |
| and current_function_decls are cleared out. |
| * ipa-cp.c (constant_val_insert): Clear cfun/current_function_decl |
| after use. |
| |
| 2006-12-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| PR middle-end/7651 |
| * c.opt (Wempty-body): New. |
| * doc/invoke.texi (Wempty-body): Document it. |
| (Wextra): Enabled by -Wextra. |
| * c-opts.c (c_common_post_options): Enabled by -Wextra. |
| * c-common.c (empty_body_warning): Replace Wextra with Wempty-body. |
| * c-parser.c (c_parser_c99_block_statement): Likewise. |
| |
| 2006-12-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/30185 |
| * config/rs6000/rs6000.md (div<mode>3): Use correct mode in |
| force_reg call. |
| |
| 2006-12-15 Andrew Pinski <pinski@gmail.com> |
| |
| PR tree-opt/30140 |
| * tree-inline.c (setup_one_parameter): Gimplify the statement if |
| the variable is not a gimple register variable. |
| |
| 2006-12-15 Uros Bizjak <ubizjak@gmail.com> |
| |
| * invoke.texi (mstringop-strategy): Add missing "byte_loop" value. |
| |
| 2006-12-14 Jan Hubicka <jh@suse.cz> |
| |
| * tree-flow.h (struct stmt_ann_d): Move bitfield references_memory |
| to proper place. |
| |
| 2006-12-14 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/30197 |
| * builtins.c (fold_builtin_cexp): New function to fold cexp |
| to cexpi and exp parts. |
| * tree-ssa-pre.c (try_combine_conversion): Also handle |
| REALPART_EXPR and IMAGPART_EXPR. |
| |
| 2006-12-14 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/30172 |
| * fold-const.c (fold_binary): Fold __complex__ ( x, 0 ) |
| + __complex__ ( 0, y ) to __complex__ ( x, y ). |
| Fold __complex__ (x, y) * +-I to __complex__ (-+y, +-x). |
| |
| 2006-12-14 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/30198 |
| * fold-const.c (fold_unary): Fold REALPART_EXPR of cexpi to cos. |
| Fold IMAGPART_EXPR of cexpi to sin. |
| |
| 2006-12-14 Dorit Nuzman <dorit@il.ibm.com> |
| Trevor Smigiel <trevor_smigiel@playstation.sony.com> |
| |
| * spu.c (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Defined. |
| (spu_init_builtins): Mark the SPU_MASK_FOR_LOAD builtin decl as read |
| only. |
| (spu_expand_builtin_1): Handle the SPU_MASK_FOR_LOAD builtin. |
| (spu_builtin_mask_for_load): New. |
| * spu-builtins.def (SPU_MASK_FOR_LOAD): Define new builtin. |
| * spu.md (UNSPEC_SPU_REALIGN_LOAD, UNSPEC_SPU_MASK_FOR_LOAD):New. |
| (vec_realign_load_<mode>, spu_lvsr): New. |
| |
| 2006-12-13 Ian Lance Taylor <iant@google.com> |
| |
| PR c++/19564 |
| PR c++/19756 |
| * c-typeck.c (parser_build_binary_op): Move parentheses warnings |
| to warn_about_parentheses in c-common.c. |
| * c-common.c (warn_about_parentheses): New function. |
| * c-common.h (warn_about_parentheses): Declare. |
| * doc/invoke.texi (Warning Options): Update -Wparentheses |
| description. |
| |
| 2006-12-13 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * tree-ssa-loop-ivopts.c: Include tree-affine.h. |
| (divide): Removed. |
| (constant_multiple_of): Fix order of operators for division. |
| (aff_combination_const, aff_combination_elt, aff_combination_scale, |
| aff_combination_add_elt, aff_combination_add, aff_combination_convert, |
| tree_to_aff_combination, add_elt_to_tree, unshare_aff_combination, |
| aff_combination_to_tree): Moved to tree-affine.c and made to work with |
| double_int coefficients. |
| (get_computation_aff, get_computation_at): Work with double_int |
| coefficients. |
| (get_computation_cost_at): Do not use divide. |
| (rewrite_use_nonlinear_expr, rewrite_use_address, rewrite_use_compare): |
| Assert that expressing the computation did not fail. |
| * tree-ssa-address.c: Include tree-affine.h. |
| (add_to_parts, most_expensive_mult_to_index, addr_to_parts, |
| create_mem_ref): Work with double_int coefficients. |
| * tree-affine.c: New file. |
| * tree-affine.h: New file. |
| * tree-flow.h (struct affine_tree_combination): Removed. |
| * Makefile.in (tree-affine.o): Add. |
| (tree-ssa-address.o, tree-ssa-loop-ivopts.o): Add tree-affine.h |
| dependency. |
| |
| 2006-12-13 Peter Bergner <bergner@vnet.ibm.com> |
| |
| PR middle-end/30191 |
| Revert: |
| * reload1.c (eliminate_regs_in_insn): Merge the plus_src "else" and |
| the offset == 0 "then" clauses. |
| * config/rs6000/predicates.md (gpc_reg_operand): Check for |
| reload_in_progress. |
| |
| 2006-12-13 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 53. |
| (FIXED_REGISTERS, CALL_USED_REGISTERS): Remove dir register. |
| (REG_ALLOC_ORDER): Remove one element due to removal of dir register. |
| (FRAME_POINTER_REGNUM): Update register number to 20. |
| (REG_CLASS_CONTENTS): Update contents due to removed dir register. |
| (HI_REGISTER_NAMES): Remove "dirflag". |
| |
| * config/i386/i386.c (regclass_map): Remove dirflag entry. |
| (dbx_register_map, dbx64_register_map, svr4_dbx_register_map): |
| Remove "dir" entry. |
| (ix86_md_asm_clobbers): Remove "dirflag" default asm clobber. |
| |
| * config/i386/i386.md (R10_REG, R11_REG): Renumber. |
| (sse_prologue_save, *sse_prologue_save_insn): Renumber |
| hardcoded SSE register numbers. |
| |
| * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber |
| hardcoded MMX register numbers. |
| |
| |
| 2006-12-13 Mark Shinwell <shinwell@codesourcery.com> |
| |
| * config/arm/arm.c (arm_output_fldmx): Output FLDMD instead of |
| FLDMX. Rename function to... |
| (vfp_output_fldmd): ...this. |
| (vfp_output_fstmx): Output FSTMD instead of FSTMX. Rename |
| function to... |
| (vfp_output_fstmd): ...this. |
| (vfp_emit_fstmx): Don't leave space in the frame layout for the |
| FSTMX format word. Rename function to... |
| (vfp_emit_fstmd): ...this. |
| (arm_get_vfp_saved_size): Don't add in space for the FSTMX format |
| word. |
| (arm_output_epilogue): Adjust comment to reflect use of FSTMD. |
| (arm_unwind_emit_sequence): Don't compensate for the FSTMX format |
| word. Also emit "vsave" assembler directives in such cases rather |
| than "save". |
| * config/arm/libunwind.S (gnu_Unwind_Restore_VFP, |
| gnu_Unwind_Save_VFP): Adjust comments. |
| (gnu_Unwind_Restore_VFP_D, gnu_Unwind_Save_VFP_D): New functions |
| for saving and restoring using FSTMD and FLDMD rather than |
| FSTMX and FLDMX. |
| (gnu_Unwind_Restore_VFP_D_16_to_31, gnu_Unwind_Restore_VFP_D_16_to_31): |
| New functions for saving and restoring the VFPv3 registers 16 .. 31. |
| * config/arm/pr-support.c (gnu_unwind_execute): Add conditional |
| compilation case to correctly handle unwind opcode 0xc8 when using |
| VFP. |
| * config/arm/unwind-arm.c (struct vfpv3_regs): New. |
| (DEMAND_SAVE_VFP_D, DEMAND_SAVE_VFP_V3): New flags. |
| (__gnu_Unwind_Save_VFP_D, __gnu_Unwind_Restore_VFP_D, |
| __gnu_Unwind_Save_VFP_D_16_to_31, __gnu_Unwind_Restore_VFP_D_16_to_31): |
| Declare. |
| (restore_non_core_regs): Restore registers using FLDMD rather than |
| FLDMX if required. Also handle restoration of VFPv3 registers. |
| (_Unwind_VRS_Pop): Handle saving and restoring of registers using |
| FSTMD and FLDMD if required; also handle VFPv3 registers 16 .. 31, |
| including cases where the caller specifies a range of registers |
| that overlaps the d15/d16 boundary. |
| |
| 2006-12-13 Diego Novillo <dnovillo@redhat.com> |
| |
| PR 30089 |
| * tree-ssa-operands.h (SSA_OPERAND_MEMORY_SIZE): Add space to |
| accomodate 511 operands. |
| |
| 2006-12-13 Richard Guenther <rguenther@suse.de> |
| |
| * builtins.c (expand_builtin_cexpi): Fix typo. |
| |
| 2006-12-13 Jan Hubicka <jh@suse.cz> |
| |
| * Makefile.in: Add dependencies. |
| * tree-pretty-print.c: Include value-prof.h |
| (dump_generic_bb_buff): Dump histograms |
| * value-prof.c: Include pointer-set.h |
| (gimple_alloc_histogram_value, histogram_hash, histogram_eq, |
| set_histogram_value, gimple_histogram_value, |
| gimple_add_histogram_value, gimple_remove_histogram_value, |
| gimple_histogram_value_of_type, dump_histogram_value, |
| dump_histograms_for_stmt, gimple_remove_stmt_histograms, |
| gimple_duplicate_stmt_histograms, visit_hist, |
| verify_histograms): New functions. |
| (tree_value_profile_transformations): Update for new histogram API. |
| (tree_divmod_fixed_value): Update for new histogram API. |
| (tree_divmod_fixed_value_transform): Update for new histogram API. |
| (tree_mod_pow2): Update for new histogram API. |
| (tree_mod_pow2_value_transform): Update for new histogram API. |
| (tree_mod_subtract): Update for new histogram API. |
| (tree_mod_subtract_transform): Update for new histogram API. |
| (tree_stringops_transform): Update for new histogram API. |
| (tree_divmod_values_to_profile): Update for new histogram API. |
| (tree_stringops_values_to_profile): Update for new histogram API. |
| (tree_find_values_to_profile): Update for new histogram API. |
| * value-prof.h (gimple_histogram_value): Declare. |
| (gimple_histogram_value_of_type): Declare. |
| (gimple_add_histogram_value): Declare. |
| (gimple_remove_histogram_value): Declare. |
| (dump_histograms_for_stmt): Declare. |
| (gimple_remove_histogram_value): Declare. |
| (gimple_remove_stmt_histograms): Declare. |
| (gimple_duplicate_stmt_histograms): Declare. |
| (verify_histograms): Declare. |
| * function.h |
| (struct funrction): Add value_histograms hash. |
| (VALUE_HISTOGRAMS): New macro. |
| * profile.c (compute_value_histograms): update for new API. |
| * tree-inline.c: Include value-prof.h |
| (copy_bb): Update histograms. |
| * tree-flow.h (struct stmt_ann_d): Do not contain pointer to histograms; |
| reorder to get smaller memory layout. |
| * tree-cfg.c: Include value-prof.h |
| (bsi_remove): Update histograms. |
| (bsi_replace): Update histograms. |
| (verify_stmts): Call histogram verifier. |
| (tree_duplicate_bb): Update histograms. |
| (move_block_to_fn): Update histograms. |
| |
| 2006-12-13 Richard Guenther <rguenther@suse.de> |
| |
| * ipa-inline.c (cgraph_flatten_node): Replace leafify with |
| flatten. |
| (cgraph_decide_inlining): Likewise. |
| |
| 2006-12-13 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/17687 |
| * builtins.def (BUILT_IN_CEXPI, BUILT_IN_CEXPIF, BUILT_IN_CEXPIL): |
| New builtins for imaginary argument cexp. |
| * builtin-types.def (BT_FN_COMPLEX_FLOAT_FLOAT, |
| BT_FN_COMPLEX_DOUBLE_DOUBLE, BT_FN_COMPLEX_LONGDOUBLE_LONGDOUBLE): |
| New required builtin types. |
| * builtins.c (expand_builtin_cexpi): Declare. |
| (mathfn_built_in): Handle BUILT_IN_CEXPI. |
| (expand_builtin_cexpi): New static helper. |
| (expand_builtin): Call it. |
| (do_mpfr_sincos): Adjust for CEXPI evaluation. |
| (fold_builtin_sincos): New function to fold sincos to cepxi. |
| |
| 2006-12-13 Richard Guenther <rguenther@suse.de> |
| |
| * ipa-reference.c (scan_for_static_refs): Also scan |
| tcc_comparison class trees. |
| |
| 2006-12-12 David Daney <ddaney@avtrex.com> |
| |
| * config/mips/mips.h (ASM_OUTPUT_EXTERNAL): Undefine it before |
| define. |
| |
| 2006-12-12 Andrew Pinski <pinskia@gmail.com> |
| |
| * tree-vect-transform.c (vect_permute_load_chain): |
| Set DECL_GIMPLE_REG_P to true for the vect_perm_* |
| temp variables. |
| |
| 2006-12-13 Sa Liu <saliu@de.ibm.com> |
| Ben Elliston <bje@au.ibm.com> |
| |
| * config/spu/spu.h (C_COMMON_OVERRIDE_OPTIONS): Define. |
| (REGISTER_TARGET_PRAGMAS): Don't zero warn_main flag. |
| * config/spu/spu-protos.h (spu_c_common_override_options): |
| Declare. |
| * config/spu/spu-c.c (spu_c_common_override_options): New. |
| * config/spu/spu.c (spu_override_options): Whitespace fix. |
| |
| 2006-12-12 Trevor Smigiel <trevor_smigiel@playstation.sony.com> |
| |
| * config/spu/spu.c (cpat_info): Fix an incorrectly identified case. |
| |
| 2006-12-12 Geoffrey Keating <geoffk@apple.com> |
| |
| * mips-tdump.c: Replace CROSS_COMPILE with |
| CROSS_DIRECTORY_STRUCTURE. |
| * mips-tfile.c: Likewise. |
| * gcc.c: Likewise. |
| * configure.ac: Likewise. |
| * cppdefault.c: Likewise. |
| * Makefile.in: Likewise. |
| * config/alpha/osf.h: Likewise. |
| * config/i386/cygwin.h: Likewise. |
| * config/i386/beos-elf.h: Likewise. |
| * config/i386/nto.h: Likewise. |
| * config/fr30/fr30.h: Likewise. |
| * config/svr4.h: Likewise. |
| * config/rs6000/aix.h: Likewise. |
| * config/rs6000/sysv4.h: Likewise. |
| * config/pa/pa64-hpux.h: Likewise. |
| * config/pa/pa-hpux10.h: Likewise. |
| * config/pa/pa-hpux11.h: Likewise. |
| * collect2.c: Likewise. |
| * configure: Regenerate. |
| |
| * doc/tm.texi (Alignment Output): Document that ASM_OUTPUT_SKIP |
| actually takes an unsigned HOST_WIDE_INT for its second parameter. |
| |
| 2006-12-13 Ulrich Weigand <uweigand@de.ibm.com> |
| |
| * config/spu/spu.c (TARGET_ENCODE_SECTION_INFO): Define. |
| (spu_encode_section_info): New. |
| * config/spu/spu.h (ALIGNED_SYMBOL_REF_P): Adjust. |
| (SYMBOL_FLAG_ALIGN1): New. |
| |
| 2006-12-12 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR tree-opt/28624 |
| * tree-ssa-dom.c (eliminate_degenerate_phis): Use a temporary |
| bitmap for EXECUTE_IF_SET_IN_BITMAP. |
| |
| 2006-12-12 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR tree-opt/28436 |
| * tree.h (DECL_COMPLEX_GIMPLE_REG_P): Rename to ... |
| (DECL_GIMPLE_REG_P): This. |
| * fold-const.c (fold_indirect_ref_1): Fold *(foo *)&vectorfoo into |
| using BIT_FIELD_REF. |
| * omp-low.c (omp_copy_decl_2): Use the renamed DECL_GIMPLE_REG_P. |
| * tree-gimple.c (is_gimple_reg): Use the renamed DECL_GIMPLE_REG_P |
| and check for VECTOR_TYPE. |
| * expr.c (get_inner_reference): Set the mode for BIT_FIELD_REF with |
| vector types. |
| * tree-flow-inline.h (var_can_have_subvars): Use the renamed |
| DECL_GIMPLE_REG_P. |
| * gimplify.c (internal_get_tmp_var): Use the renamed DECL_GIMPLE_REG_P |
| and check for VECTOR_TYPE. |
| (gimplify_bind_expr): Likewise. |
| (gimplify_function_tree): Likewise. |
| * expmed.c: Include target.h. |
| (extract_bit_field): For vector mode, try find a better mode first. |
| If that fails use gen_lowpart (for vectors only). |
| * tree-dfa.c (make_rename_temp): Use the renamed DECL_GIMPLE_REG_P |
| and check for VECTOR_TYPE. |
| * tree-ssa-pre.c (create_expressions_by_pieces): Likewise. |
| (insert_into_preds_of_block): Likewise. |
| (insert_fake_stores): Create gimple register store_tmps for |
| vector types. |
| * tree-sra.c (sra_elt): New field, is_vector_lhs. |
| (sra_walk_expr <case BIT_FIELD_REF>): For vector types that |
| are the left hand side, set the element's is_vector_lhs to true. |
| (instantiate_element): For vector types which were on the left |
| hand size, set DECL_GIMPLE_REG_P to false. |
| * tree-nested.c (create_tmp_var_for): Use the renamed |
| DECL_GIMPLE_REG_P. |
| * tree-inline.c (declare_return_variable): Use the renamed |
| DECL_GIMPLE_REG_P and check for VECTOR_TYPE. |
| (copy_decl_to_var): Use the renamed DECL_GIMPLE_REG_P. |
| (copy_result_decl_to_var): Likewise. |
| * tree-vect-transform.c (vect_get_new_vect_var): For vector types, |
| create a gimple register variable. |
| (vect_permute_store_chain): Set DECL_GIMPLE_REG_P to true for the |
| vect_inter_* temp variables. |
| * Makefile.in (expmed.o): Update dependencies. |
| |
| 2006-12-12 Peter Bergner <bergner@vnet.ibm.com> |
| |
| * reload1.c (eliminate_regs_in_insn): Merge the plus_src "else" and |
| the offset == 0 "then" clauses. |
| * config/rs6000/predicates.md (gpc_reg_operand): Check for |
| reload_in_progress. |
| |
| 2006-12-12 Marcin Dalecki <martin@dalecki.de> |
| |
| * doc/passes.texi: remove docs about "redundant PHI removal". |
| * tree-pass.h: remove orphaned declaration of pass_redundant_phi, |
| remove redundant pass_partition_blocks declaration. |
| |
| 2006-12-12 Andrew Macleod <amacleod@redhat.com> |
| |
| PR tree-optimization/30159 |
| * tree-ssa-coalesce.c (coalesce_ssa_name): Process single ssa_name |
| functions in case a default_def coalesce is required. |
| |
| 2006-12-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR libstdc++/11953 |
| * gthr-posix.h (_REENTRANT): Only define if __osf__ is defined. |
| |
| * config/ia64/linux.h (CPP_SPEC): Define. |
| * config/s390/linux.h (CPP_SPEC): Define. |
| |
| 2006-12-12 Jim Wilson <wilson@specifix.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/27761 |
| * combine.c (try_combine): Don't create a useless garbage SET |
| if PATTERN (i2) is a PARALLEL. If added_sets_1, save |
| PATTERN (i1) resp. SET from i1src to i1dest in i1pat |
| and use it to prevent accidental modification of i1src. |
| |
| 2006-12-12 Ira Rosen <irar@il.ibm.com> |
| |
| * tree-vect-analyze.c (vect_analyze_data_ref_access): Add another check |
| for stores with gaps. |
| * tree-vect-transform.c (vect_permute_store_chain): Create |
| interleave_high or interleave_low according to the endianess. |
| |
| 2006-12-12 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/30147 |
| * fold-const.c (fold_read_from_constant_string): Only fold read |
| from constant string if the result type is integer. |
| |
| 2006-12-12 Olivier Hainque <hainque@adacore.com> |
| |
| * config/rs6000/t-vxworks: Remove assignment to LIB2FUNCS_EXTRA. |
| |
| 2006-12-12 Olivier Hainque <hainque@adacore.com> |
| |
| * config/vxlib.c: Extract tls related routines into ... |
| * config/vxlib-tls.c: New file. |
| * config/t-vxworks: Add vxlib-tls.c to LIB2FUNCS_EXTRA. |
| |
| 2006-12-12 Sa Liu <saliu@de.ibm.com> |
| Ben Elliston <bje@au.ibm.com> |
| |
| * config/spu/spu.opt (mfixed-range): New option. |
| * config/spu/spu.h (spu_fixed_range_string): Declare. |
| * config/spu/spu.c (spu_override_options): Handle -mfixed-range. |
| (fix_range): New function. |
| * doc/invoke.texi (SPU Options): Document -mfixed-range. |
| * testsuite/gcc.target/spu/fixed-range.c: New. |
| * testsuite/gcc.target/spu/fixed-range-bad.c: Ditto. |
| |
| 2006-12-11 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR middle-end/17982 |
| PR middle-end/20218 |
| * cgraphunit.c (cgraph_optimize): Remove call to |
| process_pending_assemble_externals. |
| |
| * config/elfos.h (ASM_OUTPUT_EXTERNAL): New. |
| |
| * config/ia64/hpux.h (TARGET_ASM_FILE_END): Removed. |
| |
| * config/ia64/ia64.c (ia64_asm_output_external): Rewritten. |
| (ia64_hpux_add_extern_decl): Removed. |
| (ia64_hpux_file_end): Likewise. |
| (extern_func_list): Likewise. |
| (extern_func_head): Likewise. |
| |
| * output.h (assemble_external): Update comments. |
| (default_elf_asm_output_external): New. |
| (maybe_assemble_visibility): New. |
| |
| * toplev.c (compile_file): Update comment. |
| |
| * varasm.c (assemble_external): Always put it on |
| pending_assemble_externals. |
| (maybe_assemble_visibility): Make it extern and return int. |
| (default_elf_asm_output_external): New. |
| |
| 2006-12-11 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-structalias.c (handle_ptr_arith): Return false when we |
| can't handle the pointer arithmetic. |
| |
| 2006-12-11 Diego Novillo <dnovillo@redhat.com> |
| |
| * doc/tree-ssa.texi: Update documentation for virtual operands |
| and the use of push_stmt_changes/pop_stmt_changes. |
| * doc/invoke.texi: Remove documentation for params |
| global-var-threshold. |
| Update documentation on max-aliased-vops. |
| |
| * tree-into-ssa.c: Cleanup comments, variables and |
| spacing in various functions. |
| (regs_to_rename): Declare. |
| (mem_syms_to_rename): Declare. |
| (dump_update_ssa): Declare. |
| (debug_update_ssa): Declare. |
| (dump_names_replaced_by): Declare. |
| (debug_names_replaced_by): Declare. |
| (dump_def_blocks): Declare. |
| (debug_def_blocks): Declare. |
| (dump_defs_stack): Declare. |
| (debug_defs_stack): Declare. |
| (dump_currdefs): Declare. |
| (debug_currdefs): Declare. |
| (mark_def_sites): Do not handle virtual operands. |
| (compute_idf): Rename from find_idf. Update users. |
| (register_new_def): Make local. Convert second argument |
| to 'tree'. |
| Use BLOCK_DEFS_STACK directly. |
| If pushing a non-register, also push the underlying |
| symbol. |
| (rewrite_stmt): Do not handle virtual operands. |
| (dump_tree_ssa): Call dump_def_blocks, dump_defs_stack, |
| dump_currdefs and dump_tree_ssa_stats. |
| (dump_tree_ssa_stats): Also dump REPL_TBL. |
| (replace_use): Remove. Update all users to call SET_USE |
| instead. |
| (rewrite_blocks): Move code to free memory to |
| fini_ssa_renamer. |
| (mark_def_site_blocks): Move initialization code to |
| init_ssa_renamer. |
| (init_ssa_renamer): New. |
| (fini_ssa_renamer): New. |
| (rewrite_into_ssa): Call them. |
| (prepare_block_for_update): Process SSA_OP_ALL_USES first |
| and SSA_OP_ALL_DEFS later. Do not process virtual |
| operands separately. |
| (dump_update_ssa): Call dump_decl_set. |
| (init_update_ssa): Initialize regs_to_rename and |
| mem_syms_to_rename. |
| Call init_ssa_renamer. |
| (delete_update_ssa): Call fini_ssa_renamer. |
| Free blocks_with_phis_to_rewrite. |
| (mark_sym_for_renaming): If the variable has |
| sub-variables, also mark them. |
| If the variable belongs to a partition, also mark it. |
| (mark_set_for_renaming): Call mark_sym_for_renaming on |
| every symbol in the set. |
| (switch_virtuals_to_full_rewrite): Call |
| mark_set_for_renaming. |
| (update_ssa): Separate syms_to_rename into regs_to_rename |
| and mem_syms_to_rename. |
| |
| * tree-dump.c (dump_options): Add TDF_MEMSYMS. |
| * tree-pretty-print.c (debug_generic_expr): Add TDF_MEMSYMS. |
| (debug_generic_stmt): Likewise. |
| (debug_tree_chain): Likewise. |
| (dump_symbols): New. |
| (dump_generic_node): Check for TDF_MEMSYMS. |
| Handle MEMORY_PARTITION_TAG. |
| If the statement references memory and TDF_MEMSYMS is |
| given, call dump_symbols. |
| Indicate default names with (D). |
| (dump_vops): Update for new virtual operator format. |
| |
| * tree.c (init_ttree): Add MEMORY_PARTITION_TAG to |
| tree_contains_struct. |
| (tree_code_size): Handle MEMORY_PARTITION_TAG. |
| (tree_node_structure): Likewise. |
| (needs_to_live_in_memory): Handle SSA names. |
| * tree.h (MTAG_P): Likewise. |
| (struct tree_memory_partition_tag): Declare. |
| (MPT_SYMBOLS): Define. |
| (union tree_node): Add field 'mpt'. |
| * treestruct.def (TS_MEMORY_PARTITION_TAG): Define. |
| * tree.def (MEMORY_PARTITION_TAG): Define. |
| |
| * tree-pass.h (TDF_MEMSYMS): Define. |
| |
| * params.h (GLOBAL_VAR_THRESHOLD): Remove. |
| |
| * tree-ssa-alias.c: Include pointer-set.h |
| (struct alias_map_d): Remove fields total_alias_vops, |
| grouped_p and may_aliases. Update all users. |
| (struct mp_info_def): Declare. |
| (mp_info_t): New type. |
| (get_smt_for): Rename from get_tmt_for. Update all |
| users. |
| (add_may_alias): Add argument ALREADY_ADDED. If given, |
| use it to avoid adding duplicate entries to alias sets. |
| (replace_may_alias): Remove. Update all users. |
| (total_alias_vops_cmp): Remove. Update all users. |
| (group_aliases_into): Remove. Update all users. |
| (tree_pointer_compare): Remove. Update all users. |
| (compact_name_tags): Remove. Update all users. |
| (group_aliases): Remove. Update all users. |
| (mark_non_addressable): Move from tree-flow-inline.h. |
| Remove the symbol from the partition holding it, if |
| needed. |
| (dump_mp_info): New. |
| (debug_mp_info): New. |
| (sort_mp_info): New. |
| (create_partition_for): New. |
| (rewrite_alias_set_for): New. |
| (compute_memory_partitions): New. |
| (compute_may_aliases): Call it. |
| (init_alias_info): If computing aliases for the first |
| time, mark every memory symbol for renaming. |
| (have_common_aliases_p): New. |
| (compute_flow_insensitive_aliasing): Call it. |
| (setup_pointers_and_addressables): Do not cache |
| num_referenced_vars. |
| For register promoted symbols, mark their former |
| partition for renaming. |
| (maybe_create_global_var): Only create .GLOBAL_VAR if |
| there are no call-clobbered variables and a mix of pure |
| and non-pure functions were found. |
| (may_alias_p): Tidy comments. |
| (create_tag_raw): Remove unused variable new_type. |
| (dump_alias_info): call dump_memory_partitions. |
| (dump_points_to_info_for): Call dump_decl_set. |
| (may_be_aliased): Tidy comments and formatting. |
| |
| * timevar.def (TV_MEMORY_PARTITIONING): Define. |
| * tree-vectorizer.c (vect_memsyms_to_rename): Rename from |
| vect_vnames_to_rename. Set DECL_UIDs instead of SSA name |
| versions in it. |
| (slpeel_update_phi_nodes_for_guard1): Ignore memory PHIs. |
| * tree-vect-transform.c (vect_transform_loop): Call |
| mark_set_for_renaming with vect_memsyms_to_rename. |
| * tree-flow-inline.h (zero_imm_uses_p): New. |
| (memory_partition): New. |
| (set_memory_partition): New. |
| (factoring_name_p): New. |
| (symbol_mem_tag): New. Update every function that used |
| to access the annotation directly. |
| (set_symbol_mem_tag): Likewise. |
| |
| * tree-ssa-copy.c (may_propagate_copy): Allow copies |
| between a partition and a symbol as long as the symbol |
| belongs to the partition. |
| (merge_alias_info): Ignore merge requests when memory |
| partitions are involved. |
| |
| * tree-ssa.c (verify_ssa_name): Check that default |
| definitions have empty defining statements. |
| (verify_use): Remove argument IS_VIRTUAL. |
| Don't call verify_ssa_name. |
| (verify_phi_args): Call verify_ssa_name. |
| (verify_flow_insensitive_alias_info): Handle MPTs. |
| (verify_flow_sensitive_alias_info): Likewise. |
| (verify_name_tags): Likewise. |
| (verify_call_clobbering): Likewise. |
| (verify_ssa): Check for VOPs only after aliasing |
| information is available. |
| Check virtuals and real operands separately. |
| Call verify_ssa_name on every operand. |
| (stmt_references_memory_p): Move to tree-ssa-operands.c. |
| (walk_use_def_chains_1): Guard against NULL PHI |
| arguments. |
| |
| * tree-ssa-operands.c (stmt_references_memory_p): Move from |
| tree-ssa.c. |
| (get_mpt_for): New. |
| (dump_memory_partitions): New. |
| (debug_memory_partitions): New. |
| |
| * tree-flow.h (struct var_ann_d): Add field mpt. |
| (struct stmt_ann_d): Add bitfield references_memory. |
| * Makefile.in (tree-ssa-structalias.o): Include |
| pointer-set.h |
| (tree-ssa-alias.o): Likewise. |
| * tree-ssa-structalias.c: (update_alias_info): Use |
| STORED_SYMS to determine which variables are being |
| written to by the store operation. |
| * tree-ssa-structalias.h (struct alias_info) |
| <total_alias_vops>: Remove. Update all users. |
| <written_vars>: Change to a pointer set. Update all |
| users. |
| <dereferenced_ptrs_store>: Likewise. |
| <dereferenced_ptrs_load>: Likewise. |
| (NUM_REFERENCES): Remove. Update all users. |
| (NUM_REFERENCES_CLEAR): Remove. Update all users. |
| (NUM_REFERENCES_INC): Remove. Update all users. |
| (NUM_REFERENCES_SET): Remove. Update all users. |
| |
| * params.def (PARAM_GLOBAL_VAR_THRESHOLD): Remove. |
| Update all users. |
| (PARAM_MAX_ALIASED_VOPS): Set to 10. |
| * tree-ssanames.c (make_ssa_name): Initialize |
| SSA_NAME_IS_DEFAULT_DEF to 0. |
| |
| 2006-12-11 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-dse.c (aggregate_vardecl_d): New. |
| (dse_global_data): Add aggregate_vardecl field. |
| (dse_possible_dead_store_p): New. |
| Add prev_defvar variable. |
| Allow immediate uses and previous immediate uses to differ |
| if they are setting different parts of the whole. |
| (get_aggregate_vardecl): New. |
| (dse_record_partial_aggregate_store): New. |
| (dse_whole_aggregate_clobbered_p): New. |
| (dse_partial_kill_p): New. |
| (dse_optimize_stmt): Abstract code checking a possible dead store |
| into new function dse_possible_dead_store_p(). |
| Call dse_maybe_record_aggregate_store(). |
| When checking whether a STMT and its USE_STMT refer to the |
| same memory address, check also for partial kills that clobber |
| the whole. |
| Move some variable definitions to the block where they are used. |
| (aggregate_vardecl_hash): New. |
| (aggregate_vardecl_eq): New. |
| (aggregate_vardecl_free): New. |
| (aggregate_whole_store_p): New. |
| (tree_ssa_dse): Initialize and free aggregate_vardecl. |
| Mark which aggregate stores we care about. |
| |
| 2006-12-11 Andrew Macleod <amacleod@redhat.com> |
| |
| * tree-ssa-operands.h (struct vuse_element_d): Declare. |
| (vuse_element_t): Declare. |
| (struct vuse_vec_d): Declare. |
| (vuse_vec_p): Declare. |
| (VUSE_VECT_NUM_ELEM): Define. |
| (VUSE_VECT_ELEMENT_NC): Define. |
| (VUSE_ELEMENT_PTR_NC): Define. |
| (VUSE_ELEMENT_VAR_NC): Define. |
| (VUSE_VECT_ELEMENT): Define. |
| (VUSE_ELEMENT_PTR): Define. |
| (VUSE_ELEMENT_VAR): Define. |
| (struct maydef_optype_d) <use_var>: Remove. |
| <use_ptr>: Remove. |
| <usev>: Add. |
| (struct vuse_optype_d) <kill_var>: Remove. |
| <use_ptr>: Remove. |
| <usev>: Add. |
| (struct mustdef_optype_d) <kill_var>: Remove. |
| <use_ptr>: Remove. |
| <usev>: Add. |
| (VUSE_OP_PTR): Add argument. Use VUSE_ELEMENT_PTR. |
| (VUSE_OP): Add argument. Use VUSE_ELEMENT_PTR. |
| (VUSE_NUM): Define. |
| (VUSE_VECT): Define. |
| (MAYDEF_OP_PTR): Add argument. Use VUSE_OP_PTR. |
| (MAYDEF_OP): Add argument. Use VUSE_OP. |
| (MAYDEF_NUM): Define. |
| (MAYDEF_VECT): Define. |
| (MUSTDEF_KILL_PTR): Use VUSE_OP_PTR. |
| (MUSTDEF_KILL): Use VUSE_OP. |
| (MUSTDEF_NUM): Define. |
| (MUSTDEF_VECT): Define. |
| (realloc_maydef): Declare. |
| (realloc_vuse): Declare. |
| (struct ssa_operand_iterator_d) <vuse_index>: Add. |
| <mayuse_index>: Add. |
| (LOADED_SYMS): Define. |
| (STORED_SYMS): Define. |
| (FOR_EACH_SSA_MUSTDEF_OPERAND): Call op_iter_next_mustdef. |
| * tree-into-ssa.c: Adapt for multi-operand V_MAY_DEF and VUSE |
| operators. |
| * tree-pretty-print.c: Likewise. |
| * tree-ssa-dse.c: Likewise. |
| * tree-flow-inline.h: Likewise. |
| (op_iter_next_mustdef): New. |
| * tree-ssa-operands.c: Likewise. |
| (ALLOC_OPTYPE): Remove. |
| Update all users. |
| (alloc_def): New. |
| (alloc_use): New. |
| (alloc_maydef): New. |
| (alloc_vuse): New. |
| (alloc_mustdef): New. |
| (realloc_maydef): New. |
| (realloc_vuse): New. |
| |
| 2006-12-11 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-operands.c: Remove build_v_must_defs. |
| (init_ssa_operands): Delete build_v_must_defs. |
| (finalize_ssa_v_must_def_ops): Remove. |
| (finalize_ssa_v_must_defs): Remove. |
| (finalize_ssa_stmt_operands): Do not call |
| finalize_ssa_v_must_defs. |
| (start_ssa_stmt_operands): Do not check build_v_must_defs. |
| (append_v_must_def): Delete. |
| (copy_virtual_operands): Do not copy V_MUST_DEFs. |
| (get_modify_expr_operands): Remove reference to V_MUST_DEF from |
| comment. Remove opf_kill_def. |
| (build_ssa_operands): Remove references to v_must_defs. |
| (copy_virtual_operands): Same. |
| (copy_virtual_operands): Same. |
| (fini_ssa_operands): Same. |
| (free_ssa_operands): Same. |
| (add_mustdef_op): Remove. |
| Remove mustdef_optype_p. |
| (alloc_mustdef): Remove. |
| Remove references to V_MUST_DEFs in comment at top of file. |
| (get_expr_operands): Remove opf_kill_def. |
| (opf_kill_def): Remove. |
| (add_virtual_operand): Remove opf_kill_def. |
| (get_indirect_ref_operands): Same. |
| (get_tmr_operands): Same. |
| |
| * tree-vectorizer.c (rename_variables_in_bb): Remove |
| SSA_OP_ALL_KILLS. |
| |
| * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Remove |
| SSA_OP_ALL_KILLS. |
| (check_loop_closed_ssa_stmt): Same. |
| |
| * tree-ssa.c (verify_def): Remove V_MUST_DEF from comment. |
| (verify_use): Same. |
| (verify_ssa): Remove V_MUST_DEFs traces. |
| (verify_ssa): Remove SSA_OP_ALL_KILLS. |
| |
| * tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTDEF to |
| SSA_OP_VMAYDEF. |
| (rewrite_update_stmt): Remove SSA_OP_VIRTUAL_KILLS. |
| (rewrite_stmt): Remove SSA_OP_ALL_KILLS. |
| |
| * tree-ssa-operands.h (struct stmt_operands_d): Remove V_MUST_DEF |
| references. |
| (MUSTDEF_OPS): Remove. |
| (SSA_OP_VMUSTDEF): Remove. |
| (FOR_EACH_SSA_MUSTDEF_OPERAND): Remove. |
| (struct mustdef_optype_d): Remove. |
| Remove mustdef_optype_p. |
| (struct stmt_operands_d): Remove mustdef_ops. |
| (ssa_operand_iterator_d): Remove mustdefs and mustkills. |
| (SSA_OP_VIRTUAL_DEFS): Remove SSA_OP_VMUSTDEF. |
| (MUSTDEF_RESULT_PTR): Remove. |
| (MUSTDEF_RESULT): Remove. |
| (MUSTDEF_KILL_PTR): Remove. |
| (MUSTDEF_KILL): Remove. |
| (MUSTDEF_NUM): Remove. |
| (MUSTDEF_VECT): Remove. |
| (SSA_OP_VIRTUAL_KILLS): Remove. |
| (SSA_OP_ALL_VIRTUALS): Remove SSA_OP_VIRTUAL_KILLS. |
| (SSA_OP_VMUSTKILL): Remove. |
| (SSA_OP_ALL_KILLS): Remove. |
| (SSA_OP_ALL_OPERANDS): Remove SSA_OP_ALL_KILLS. |
| |
| * tree-flow-inline.h (op_iter_init_def): Remove |
| SSA_OP_VIRTUAL_KILLS. |
| (delink_stmt_imm_use): Remove SSA_OP_ALL_KILLS. |
| |
| * tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove |
| SSA_OP_VIRTUAL_KILLS. |
| |
| * tree-ssa-loop-im.c (determine_max_movement): Remove |
| SSA_OP_VIRTUAL_KILLS. |
| (gather_mem_refs_stmt): Same. |
| (gather_mem_refs_stmt): Same. |
| |
| * tree-ssa-dce.c (mark_really_necessary_kill_operand_phis): Delete. |
| (perform_tree_ssa_dce): Remove call to |
| mark_really_necessary_kill_operand_phis. |
| |
| * tree-flow-inline.h (op_iter_init): Remove setting of mustdefs |
| and mustkills. |
| (op_iter_next_use): Do not check mustkills. |
| (op_iter_next_def): Do not check mustdefs. |
| (op_iter_next_tree): Do not check mustkills or mustdefs. |
| (clear_and_done_ssa_iter): Do not set mustdefs or mustkills. |
| (op_iter_next_maymustdef): Do not check mustkills. |
| (op_iter_init_must_and_may_def): Remove SSA_OP_VMUSTKILL. |
| (op_iter_init_mustdef): Remove. |
| |
| * tree-ssa-live.c (create_ssa_var_map): Change SSA_OP_VMUSTDEF to |
| SSA_OP_VMAYDEF. |
| |
| * tree-ssa-dse.c (dse_optimize_stmt): Remove SSA_OP_VMUSTDEF. |
| |
| * tree-ssa-ccp.c: Remove V_MUST_DEF traces from comments. |
| (visit_assignment): Same. |
| |
| * tree-ssa-copy.c (copy_prop_visit_assignment): Same. |
| |
| * tree-sra.c (mark_all_v_defs_1): Remove V_MUST_DEF from comment. |
| |
| * tree-outof-ssa.c (check_replaceable): Remove SSA_OP_VMUSTDEF. |
| |
| * tree-pretty-print.c (dump_vops): Remove printing of V_MUST_DEF. |
| Remove kill_p variable. |
| |
| * tree-dfa.c (struct dfa_stats_d): Remove num_v_must_defs. |
| (dump_dfa_stats): Remove code related to V_MUST_DEFs. |
| (collect_dfa_stats_r): Do not set num_v_must_defs. |
| (mark_new_vars_to_rename): Remove v_must_defs_{before,after} |
| code. |
| |
| * tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTKILL to |
| SSA_OP_VMAYUSE. |
| |
| * tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove |
| SSA_OP_VMUSTDEF and SSA_OP_VMUSTKILL. |
| |
| * tree-ssa-propagate.c (stmt_makes_single_store): Remove |
| SSA_OP_VMUSTDEF. |
| |
| 2006-12-11 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| PR rtl-optimization/30113 |
| * loop-iv.c (implies_p): Require the mode of the operands to be |
| scalar. |
| |
| 2006-12-11 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-ssa-operands.h (create_ssa_artificial_load_stmt): |
| Rename from create_ssa_artficial_load_stmt. Update all users. |
| * tree-into-ssa.c (register_new_def): Make static. |
| * tree.c (is_global_var): Handle SSA_NAMEs. |
| * tree.h (SSA_NAME_IS_DEFAULT_DEF): Define. Update all users |
| that used to call gimple_default_def. |
| * tree-ssa-operands.c (push_stmt_changes): New. |
| (pop_stmt_changes): New. Update every pass that modifies |
| statements to bracket modifications with |
| push_stmt_changes/pop_stmt_changes. |
| (discard_stmt_changes): New. |
| * tree-ssa-dom.c (stmts_to_rescan): Change to stack of |
| 'tree *' instead of 'tree'. Update all users. |
| * tree-flow-inline.h (zero_imm_uses_p): New. |
| (symbol_mem_tag): New. Update every function that used |
| to access the annotation directly. |
| (set_symbol_mem_tag): Likewise. |
| * tree-dfa.c (dump_variable): Always show the escape mask. |
| (mark_symbols_for_renaming): Rename from |
| mark_new_vars_to_rename. Update all users. |
| Only mark to rename naked symbols in real and virtual |
| operands. |
| |
| 2006-12-11 Andreas Schwab <schwab@suse.de> |
| |
| * varasm.c (elf_record_gcc_switches): Cast second argument of |
| ASM_OUTPUT_SKIP to unsigned HOST_WIDE_INT. |
| |
| 2006-12-11 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-scalar-evolution.c (scev_const_prop): |
| * tree-phinodes.c (remove_phi_node): Add argument |
| RELEASE_LHS_P. If given, release the SSA name on the LHS of |
| the PHI node. |
| Update all users. |
| * tree-ssa-dce.c: Remove forward declarations for static |
| functions. Re-arrange functions bodies as needed. |
| (find_obviously_necessary_stmts): Never mark PHI nodes as |
| obviously necessary. |
| |
| 2006-12-11 Carlos O'Donell <carlos@codesourcery.com> |
| |
| * config/arm/elf.h (MAX_OFILE_ALIGNMENT): Remove definition. |
| |
| 2006-12-11 Jan Hubicka <jh@suse.cz> |
| |
| * value-prof.c (tree_stringops_transform): New. |
| (tree_value_profile_transformations): Require count to be non-zero; |
| call stringop transform; reset stmt BSI after BB changed. |
| (tree_divmod_fixed_value, tree_mod_pow2): Don't emit unnecesary label. |
| (interesting_stringop_to_profile_p, tree_stringop_fixed_value): New. |
| (tree_stringops_values_to_profile): New. |
| (tree_values_to_profile): Call tree_stringops_values_to_profile. |
| * tree.h (build_string_literal): Tidy prototype. |
| (validate_arglist, builtin_memset_read_str, get_pointer_alignment): |
| Declare. |
| * builtins.c (validate_arglist, builtin_memset_read_str, |
| get_pointer_alignment): Export. |
| |
| 2006-12-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/30120 |
| Revert: |
| 2006-11-15 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.opt: New target option -mx87regparm. |
| |
| * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno, |
| float_in_x87: Add new variables. mmx_words, sse_words: Remove. |
| (X87_REGPARM_MAX): Define. |
| |
| * config/i386/i386.c (override_options): Error out for |
| -mx87regparm but no 80387 support. |
| (ix86_attribute_table): Add x87regparm. |
| (ix86_handle_cconv_attribute): Update comments for x87regparm. |
| (ix86_comp_type_attributes): Check for mismatched x87regparm types. |
| (ix86_function_x87regparm): New function. |
| (ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating |
| point registers. |
| (init_cumulative_args): Initialize x87_nregs and float_in_x87 |
| variables. |
| (function_arg_advance): Process x87_nregs and x87_regno when |
| floating point argument is to be passed in 80387 register. |
| (function_arg): Pass XFmode arguments in 80387 registers for local |
| functions. Pass SFmode and DFmode arguments to local functions |
| in 80387 registers when flag_unsafe_math_optimizations is set. |
| |
| * reg-stack.c (convert_regs_entry): Disable NaN load for |
| stack registers that are used for argument passing. |
| |
| * doc/extend.texi: Document x87regparm function attribute. |
| * doc/invoke.texi: Document -mx87regparm. |
| |
| 2006-12-11 Jan Hubicka <jh@suse.cz> |
| |
| Move all varpool routines out of cgraph/cgraphunit to varpool.c |
| * cgraph.c: Update comments. |
| (cgraph_varpool_hash, |
| cgraph_varpool_nodes, cgraph_varpool_last_needed_node |
| cgraph_varpool_node_name, cgraph_varpool_node, |
| cgraph_varpol_mode_for_asm, cgraph_varpool_mark_needed_node, |
| cgraph_variable_initializer_availability): Move to |
| varpool.c and drop cgraph_ prefixes. |
| (cgraph_varpool_enqueue_needed_node, cgraph_varpool_reset_queue, |
| cgraph_varpool_first_unanalyzed_node, cgraph_varpool_finalize_decl): |
| move to varpool.c; drop cgraph_ prefix; make static. |
| (dump_cgraph_varpool_node): Move to varpool.c under name |
| dump_varpool_node. |
| (dump_varpool, hash_varpool_node, eq_varpool_node, |
| decide_is_variable_needed): Move to varpool.c |
| (decl_assembler_name_equal): Move to tree.c. |
| (availability_names): Rename to ... |
| (cgraph_availability_names): ... this one. |
| (dump_cgraph_node): Update. |
| * cgraph.h: Reorder declarations now in varpool.c |
| (cgraph_vailablity_names): Declare. |
| (struct cgraph_varpool_node): Rename to ... |
| (struct varpool_node): ... this one. |
| (cgraph_varpool_first_unanalyzed_node, cgraph_varpool_nodes_queue, |
| cgraph_varpool_first_unanalyzed_node, cgraph_varpool_node, |
| cgraph_varpool_node_for_asm, cgraph_varpool_mark_needed_node, |
| cgraph_varpool_finalize_decl, cgraph_varpool_enqueue_needed_node, |
| cgraph_varpool_reset_queue, cgraph_varpool_assemble_pending_decls, |
| cgraph_variable_initializer_availability): Rename to ... |
| (varpool_first_unanalyzed_node, varpool_nodes_queue, |
| varpool_first_unanalyzed_node, varpool_node, |
| varpool_node_for_asm, varpool_mark_needed_node, |
| varpool_finalize_decl, varpool_enqueue_needed_node, |
| varpool_assemble_pending_decls, variable_initializer_availability): |
| Rename to ... |
| * tree.c (decl_assembler_name_equal): Move here from cgraph.c. |
| * tree.h (decl_assembler_name_equal): Declare. |
| * omp-low.c (lower_omp_critical): Update. |
| * ipa-reference (analyze_variable, static_execute): Likewise. |
| * toplev.c (wrapup_global_declaration_2, compile_file): Update. |
| * cgraphunit.c: Update comments. |
| (cgraph_varpool_assembled_nodes_queue): Move to varpool.c under name |
| varpool_assembled_nodes_queue. |
| (cgraph_varpool_analyze_pending_decls): Move to varpool.c under name |
| varpool_analyze_pending_decls. |
| (cgraph_varpool_remove_unreferenced_decls): Move to varpool.c under name |
| varpool_remove_unreferenced_decls. |
| (record_reference): Update. |
| (cgraph_create_edges): Update. |
| (record_referneces_in_initializer): New function. |
| (cgraph_varpool_assemble_decl): Move to varpool.c under name |
| varpool_assemble_decl; make global. |
| (cgraph_varpool_assemble_pending_decls): Move to varpool.c under name |
| varpool_assemble_pending_decls. |
| (process_function_and_variable_attributes, cgraph_finalize_compilation_unit, |
| struct cgraph_order_sort, cgraph_output_in_order, |
| cgraph_function_and_variable_invisibility, cgraph_optimize, |
| cgraph_increase_alignment): Update. |
| * dwarf2out.c (decls_for_scope): Likewise. |
| * ipa-type-escape.c (analyze_variable, type_escape_execute): Likewise. |
| * except.c (output_ttype): Likewise. |
| * varasm.c (mark_decl_referenced): Likewise. |
| (find_decl_and_mark_referenced, assemble_alias): update. |
| * Makefile.in: Add varpool.c, gt-varpool.c and remove gt-cgraphunit.c |
| * passes.c (rest_of_decl_compilation): Update. |
| |
| 2006-12-11 Ira Rosen <irar@il.ibm.com> |
| |
| * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Use |
| GIMPLE_STMT_OPERAND. |
| * tree-vect-transform.c (vect_permute_store_chain): Likewise. |
| (vect_setup_realignment): Likewise. |
| |
| 2006-12-11 Sa Liu <saliu@de.ibm.com> |
| Ben Elliston <bje@au.ibm.com> |
| |
| * config/spu/spu-elf.h (STARTFILE_SPEC): Update. |
| (ENDFILE_SPEC): Likewise. |
| * config/spu/spu.opt (mstdmain): New option. |
| * config/spu/crti.asm: Remove. |
| * config/spu/crtn.asm: Likewise. |
| * config/spu/crt0.c: Likewise. |
| * config/spu/crtend.c: Likewise. |
| * config/spu/t-spu-elf (EXTRA_MULTILIB_PARTS): Remove crt0 files |
| listed above. |
| ($(T)crti.o, $(T)crtn.o, $(T)crt1.o, $(T)crtend1.o): Remove. |
| * doc/invoke.texi (SPU Options): Document -mstdmain. |
| |
| 2006-12-10 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * doc/loop.texi: Document number_of_latch_executions and |
| number_of_cond_exit_executions. |
| * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop, |
| chrec_is_positive, number_of_iterations_for_all_loops, |
| scev_const_prop): Use number_of_latch_executions. |
| (set_nb_iterations_in_loop): Do not increase the value of the |
| number of iterations. |
| (number_of_iterations_in_loop): Renamed to ... |
| (number_of_latch_executions): ... this. |
| (number_of_exit_cond_executions): New function. |
| * tree-scalar-evolution.h (number_of_iterations_in_loop): Declaration |
| removed. |
| (number_of_latch_executions, number_of_exit_cond_executions): Declare. |
| * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): Use |
| number_of_latch_executions. |
| * tree-data-ref.c (get_number_of_iters_for_loop): Use |
| number_of_exit_cond_executions. |
| * tree-vect-analyze.c (vect_get_loop_niters): Ditto. |
| * cfgloop.h (struct loop): Improve description of the nb_iterations |
| field. |
| |
| 2006-12-10 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-alias.c (compact_name_tags): Use sort_tags_by_id. |
| (tree_pointer_compare): Remove. |
| |
| 2006-12-10 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * tree-vrp.c (adjust_range_with_scev): Use get_chrec_loop. |
| * loop-unswitch.c (unswitch_loops): Use FOR_EACH_LOOP. |
| * tree-loop-linear.c (linear_transform_loops): Ditto. |
| * tree-ssa-loop-im.c (determine_lsm): Ditto. |
| * tree-ssa-loop-niter.c (estimate_numbers_of_iterations, |
| free_numbers_of_iterations_estimates): Ditto. |
| * tree_ssa_unswitch_loops (tree_ssa_unswitch_loops): Ditto. |
| * tree-ssa-loop-ch.c (copy_loop_headers): Ditto. |
| * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto. |
| * modulo-sched.c (sms_schedule): Ditto. |
| * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables, |
| tree_unroll_loops_completely): Ditto. |
| * predict.c (predict_loops): Ditto. |
| * tree-if-conv.c (main_tree_if_conversion): Ditto. |
| * loop-unroll.c (unroll_and_peel_loops, peel_loops_completely, |
| decide_unrolling_and_peeling): Ditto. |
| * cfgloopmanip.c (unloop): Use delete_loop. |
| (place_new_loop): Access larray vector instead of parray. |
| (create_preheaders, force_single_succ_latches, |
| fix_loop_structure): Use FOR_EACH_LOOP and delete_loop.. |
| * loop-doloop.c (doloop_optimize_loops): Ditto. |
| * loop-invariant.c (move_loop_invariants): Ditto. |
| * tree-cfg.c (replace_uses_by): Ditto. |
| * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Ditto. |
| * tree-chrec.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): |
| Moved to ... |
| * tree.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): |
| ... here. |
| * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop, |
| compute_overall_effect_of_inner_loop, chrec_is_positive): Use |
| get_loop and get_chrec_loop. |
| (number_of_iterations_for_all_loops): Use number_of_loops. |
| (scev_initialize, scev_reset, scev_const_prop): Use FOR_EACH_LOOP. |
| * tree-scalar-evolution.h (get_chrec_loop): New inline function. |
| * cfgloopanal.c (mark_irreducible_loops): Use number_of_loops, |
| and FOR_EACH_LOOP. |
| * tree-chrec.c (evolution_function_is_invariant_rec_p, |
| chrec_convert_1): Use get_loop and get_chrec_loop. |
| * loop-init.c (loop_optimizer_init): Use number_of_loops. |
| (loop_optimizer_init): Use FOR_EACH_LOOP. |
| * tree-vectorizer.c (vect_loops_num): Removed. |
| (vectorize_loops): Store number of loops locally. Use |
| FOR_EACH_LOOP and get_loop. |
| * tree-vectorizer.h (vect_loops_num): Removed. |
| * tree-data-ref.c (get_number_of_iters_for_loop): Use get_loop. |
| (find_data_references_in_loop): Do not set parallel_p. |
| * tree-data-ref.h: Do not declare VEC(loop_p). |
| * cfgloop.c (flow_loops_dump, mark_single_exit_loops, |
| verify_loop_structure): Use FOR_EACH_LOOP. |
| (flow_loops_free): Use FOR_EACH_LOOP, free larray vector. |
| (initialize_loops_parallel_p): Removed. |
| (flow_loops_find): Push the loops into a vector. |
| (delete_loop): New function. |
| (cancel_loop): Use delete_loop. |
| * cfgloop.h: Declare VEC(loop_p). |
| (struct loop): Remove parallel_p field. |
| (struct loops): Replace num and parray field by larray vector. |
| Remove shared_headers field. |
| (delete_loop): Declare. |
| (get_loop, get_loops, number_of_loops, fel_next, fel_init, |
| FOR_EACH_LOOP): New. |
| * doc/loop.tex: Document new accessor functions. |
| |
| 2006-12-10 Andrew MacLeod <amacleod@redhat.com> |
| |
| * common.opt (-ftree-lrs): Remove live range splitting option. |
| * makefile.in: Add tree-ssa-coalesce.o and reduce header dependancies. |
| * opts.c (decode_options): Remove flag_tree_live_range_split. |
| * tree-flow.h (struct var_ann_d): Rename fields from root_ to base_. |
| * tree-flow-inline.h (single_imm_use_p): New. Check for single use. |
| * tree-outof-ssa.c: Remove header files which aren't needed. |
| (SSANORM_*): Remove flags. |
| (print_exprs_edge, coalesce_abnormal_edges, coalesce_phi_operands, |
| coalesce_result_decls_and_copies, coalesce_asm_operands): Remove. |
| (coalesce_ssa_name): Move to tree-ssa-coalesce.c. |
| (assign_vars): Use Basevar instead of root_var structure. |
| (replace_def_variable): Dont do anything if def is replaceable. |
| (remove_ssa_form): Integrate functional changes. |
| (rewrite_out_of_ssa): Remove live-range_split option. |
| * tree-ssa-coalesce.c: New File for ssa-name coalescing. |
| (coalesce_cost): Calculate the cost of a coalesce. |
| (coalesce_cost_bb): Calculate the coalesce cost within a BB. |
| (coalesce_cost_edge): Calculate the coalesce cost on an edge. |
| (pop_cost_one_pair): Remove the best coalesce with cost 1 from the list. |
| (pop_best_coalesce): Remove the best coalesce from the list. |
| (coalesce_pair_map_hash): Calculate coalesce pair hash. |
| (coalesce_pair_map_eq): Compare 2 coalesce pairs for hash function. |
| (create_coalesce_list): Create a coalesce list object. |
| (delete_coalesce_list): Free a coalesce list object. |
| (find_coalesce_pair): Find matching pair in the coalesce list. |
| (add_cost_one_coalesce): Add a coalesce to the "cost one" list. |
| (add_coalesce): Add a coalesce to the coalesce list. |
| (compare_pairs): Comparision function to determine pair sorted order. |
| (num_coalesce_pairs): Number of coalesced pairs. |
| (first_coalesce_pair, end_coalesce_pair_p, next_coalesce_pair): |
| Coalesce pair iterator functions. |
| (sort_coalesce_list): Sort coalesce pairs in order of expense. |
| (dump_coalesce_list): Show coalesce list. |
| (ssa_conflicts_new): Create an SSA conflict graph. |
| (ssa_conflicts_delete): Delete an SSA conflict graph. |
| (ssa_conflicts_test_p): Test for conflicts. |
| (ssa_conflicts_add_one): Add a single conflict. |
| (ssa_conflicts_add): Add a conflict pair. |
| (ssa_conflicts_merge): Merge conflicts. |
| (struct live_track_d): Struct for tracking live partitions. |
| (new_live_track): Create new live_track object. |
| (delete_live_track): Delete a live_track object. |
| (live_track_remove_partition): Remove a partition from the live list. |
| (live_track_add_partition): Add a partition from the live list. |
| (live_track_clear_var): Take VAR from the live list. |
| (live_track_live_p): Is var live? |
| (live_track_process_use): Make var come alive. |
| (live_track_process_def): Make var go dead, add conflicts. |
| (live_track_init): Initialize to a live on exit set. |
| (live_track_clear_base_vars): Clear live partitions. |
| (build_ssa_conflict_graph): Build a conflict graph. |
| (print_exprs): Common debug output routine. |
| (abnormal_corrupt): Output info about a failed coalesce across an |
| abnormal edge. |
| (fail_abnormal_edge_coalesce): Output info about a failed MUST_COALESCE. |
| (create_outofssa_var_map): Create a var map and coalesce list. |
| (attempt_coalesce): Coalesce a pair. |
| (coalesce_partitions): Coalesce all pairs in a coalesce list. |
| (coalesce_ssa_name): Entry point. Determine what ssa_names to coalesce. |
| * tree-ssa-live.c: Remove header files which aren't needed. |
| (var_map_base_init): New. Initialize a basevar list. |
| (var_map_base_fini): New. Finish a basevar list. |
| (init_var_map): Initialize new fields. |
| (delete_var_map): Free new fields. |
| (var_union): Use renamed fields. |
| (compact_var_map): Remove. |
| (partition_to_view_init): Use renamed fields, change order of an if. |
| (partition_view_fini): Use renamed fields. |
| (partition_view_normal): Create basevar list if requested. |
| (partition_view_bitmap): Create a view based on a bitmap of partitions. |
| (change_partition_var): Use renamed fields. |
| (create_ssa_var_map): Remove. |
| (tpa_init, tpa_remove_partition, tpa_delete, tpa_compact, |
| root_var_init): Remove. |
| (partition_pair_map_hash, partition_pair_map_eq, create_coalesce_list, |
| delete_coalesce_list, find_partition_pair, coalesce_cost, add_coalesce, |
| compare_pairs, num_coalesce_pairs, first_partition_pair, |
| end_partition_pair_p, next_partition_pair, sort_coalesce_list, |
| pop_best_coalesce, add_conflicts_if_valid, set_if_valid, |
| build_tree_conflict_graph, coalesce_tpa_members, dump_coalesce_list, |
| tpa_dump): Moved to tree-ssa-coalesce.c and/or renamed there. |
| (dump_var_map): Use renamed fields. |
| * tree-ssa-live.h (struct _var_map): Modify fields. |
| (partition_to_var, version_to_var, var_to_partition): Use renamed |
| fields. |
| (basevar_index): New. Index of the base variable of a partition. |
| (num_basevars): New. Number of unique base variables in partition map. |
| (register_ssa_partition): Use renamed fields. |
| (struct tree_partition_associator_d): Remove. |
| (tpa_num_trees, tpa_tree, tpa_first_partition, tpa_next_partition, |
| tpa_find_tree, tpa_decompact, root_var_init, root_var_num, |
| root_var, root_var_first_partition, root_var_next_partition, |
| root_var_dump, root_var_delete, root_var_remove_partition, |
| root_var_find, root_var_compact, root_var_decompact): Remove. |
| (struct partition_pair, struct coalesce_list_d): Moved to |
| tree-ssa-coalesce.c |
| * tree-ssa-ter.c: Remove header files which aren't needed. |
| |
| 2006-12-10 Steven Bosscher <steven@gcc.gnu.org> |
| |
| * cse.c: (struct cse_basic_block_data): Remove LAST field. |
| (struct branch_path): Remove BRANCH and TAKEN fields. Add new |
| BB field. |
| (cse_visited_basic_blocks): New static bitmap. |
| (cse_end_of_basic_block, cse_basic_block): Remove. |
| (cse_find_path, cse_dump_path, cse_prescan_path, |
| cse_extended_basic_block): New static functions. |
| (cse_insn): Don't CSE over setjmp calls. Use the CFG to find |
| basic block boundaries. Don't record jump equivalences here. |
| Update the CFG after doing in-place replacement of the SET_SRC. |
| (cse_main): Rewrite. Look for extended basic block headers |
| and call cse_extended_basic_block on them until all paths that |
| start at this header are exhausted. |
| (rest_of_handle_cse): Verify that the CFG is incrementally updated |
| and correct after cse_main. |
| Don't call delete_trivially_dead_insns, let cfgcleanup do that. |
| (rest_of_handle_cse2): Verify the CFG here, too, after cse_main. |
| (pass_cse): Add TODO_verify_flow. |
| (pass_cse2): Likewise. |
| |
| 2006-12-10 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| * reload1.c (choose_reload_regs): Don't set byte offset when |
| resolving subregs of hard regs. |
| |
| 2006-12-09 Zack Weinberg <zackw@panix.com> |
| |
| * c-opts.c (c_common_parse_file): Unconditionally give a warning, |
| suitable for the language, if set_yydebug is true. |
| * c-pragma.h: Define enum pragma_omp_clause here. Don't define |
| YYDEBUG or declare yydebug. |
| * c-parser.c (yydebug, enum pragma_omp_clause): Delete. |
| |
| 2006-12-09 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.c: Update copyright. |
| * cgraph.h: Likewise |
| (cgraph_update_pending_function): Remove prototype. |
| * cgraphunit.c: Update copyright; update overall comment. |
| (cgraph_assemble_pending_functions): Make local. |
| |
| 2006-12-09 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> |
| |
| * haifa-sched.c (schedule_block): Remove excessive sanity check. |
| |
| 2006-12-08 Trevor Smigiel <trevor_smigiel@playstation.sony.com> |
| |
| * config/spu/spu-protos.h (spu_split_immediate): Renamed from |
| spu_split_address. |
| (cpat_const_p, gen_cpat_const): Add. |
| * config/spu/spu.c (immediate_class): New enum. |
| (cpat_info, classify_immediate): New. |
| (print_operand): Use S, D, T instead of F, G, H. Use |
| classify_immediate. Handle cpat cases. |
| (spu_split_immediate): Renamed from spu_split_address. Split all |
| immediates that can be split. |
| (immediate_load_p): Use classify_immediate. |
| (spu_legitimate_constant_p): Accept everything except some cases of |
| CONST_VECTOR. |
| (spu_expand_move): Use spu_split_immedate. |
| (fsmbi_const_p): Use classify_immediate. |
| (cpat_const_p): New. |
| (gen_cpat_const: New. |
| * config/spu/constraints.md (j,k,l): New constraints for cpat |
| instructions. |
| * config/spu/spu.md (unnamed splitter): Change address splitter to |
| handle all immediates. |
| (_mov<mode>, _movdi, _movti): Handle i, j, k constraints for cpat |
| instructions. |
| (cpat, _cpat, splitter): Generate a TImode constant for cpat patterns |
| when possible. |
| |
| 2006-12-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR target/30039 |
| * pa.md (high:DI and lo_sum:DI): Handle 64-bit CONST_INTs in 32-bit |
| patterns. Correct length of high:DI instruction sequence. |
| |
| 2006-12-08 Mike Stump <mrs@apple.com> |
| |
| * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Build |
| libgcc with -mmacosx-version-min=10.4. |
| * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Default to |
| G4 for 10.5+ unless doing kernel builds. |
| |
| 2006-12-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/30120 |
| * reg-stack.c (convert_regs_entry): Mark current argument passing |
| registers as live. |
| |
| * config/i386/i386.h (X87_REGPARM_MAX): Set to 0 to disable passing |
| of float arguments in x87 registers. |
| |
| 2006-12-08 John David Anglin <dave.anglin.@nrc-cnrc.gc.ca> |
| |
| * pa.h (LEGITIMATE_CONSTANT_P): Simplify. |
| |
| 2006-12-08 Mark Shinwell <shinwell@codesourcery.com> |
| |
| * recog.c (mode_dependent_address_p): Identify pre-increment, |
| pre-decrement, post-increment and post-decrement addressing as always |
| being mode-dependent. |
| * config/m32c/m32c.c (m32c_mode_dependent_address): Delete. |
| * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. |
| * config/m32c/m32c-protos.h (m32c_mode_dependent_address): Delete. |
| * config/m32r/m32r.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC, |
| PRE_INC and POST_INC checks. |
| * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. |
| * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. |
| * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. |
| * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. |
| * config/c4x/c4x.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC, |
| PRE_INC, POST_DEC and POST_INC cases. |
| * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p): |
| Delete POST_INC and PRE_DEC cases. |
| * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to |
| no-op. |
| * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. |
| * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to |
| no-op. |
| * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. |
| * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. |
| * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Delete |
| PRE_INC and PRE_DEC cases. |
| * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. |
| * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. |
| * config/arm/arm.h (ARM_GO_IF_MODE_DEPENDENT_ADDRESS): Delete. |
| (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. |
| * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. |
| * config/vax/vax.c (vax_mode_dependent_address_p): Delete |
| auto-increment cases. |
| * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete |
| auto-increment cases. |
| * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. |
| |
| 2006-12-08 Andrew MacLeod <amacleod@redhat.com> |
| |
| * Makefile.in: Add new file tree-ssa-ter.c. |
| * tree-outof-ssa.c (struct temp_expr_table_d, new_temp_expr_table, |
| free_temp_expr_table, add_value_to_version_list, |
| add_value_to_partition_list, remove_value_from_partition_list, |
| add_dependence, check_replaceable, finish_expr, mark_replaceable, |
| kill_expr, kill_virtual_exprs, find_replaceable_in_bb, |
| find_replaceable_exprs, dump_replaceable_exprs): Move to tree-ssa-ter.c. |
| * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs): Add |
| prototypes. |
| * tree-ssa-ter.c: New file using code moved from tree-outof-ssa.c. |
| (struct value_expr_d): Remove. |
| (struct temp_expr_table_d): Rename fields, add explicit vector of |
| replaceable expressions instead of sharing. Change value_expr_p's to |
| bitmap. Delete free_list. |
| (new_temp_expr_table): Rename fields, count number of ssa_names in |
| each partition. |
| (free_temp_expr_table): Rename field, free new fields. |
| (new_value_expr, free_value_expr, find_value_in_list, add_value_to_list, |
| add_info_to_list, remove_value_from_list): Delete. |
| (version_to_be_replaced_p): New. Is an ssa-name replaceable? |
| (make_dependent_on_partition): New. Set bit in version list, allocating |
| a bitmap if need be. |
| (add_to_partition_kill_list): New. Set bit in the partition list, |
| allocating a bitmap if need be. |
| (remove_from_partition_kill_list): New. Remove a bit from the |
| partition list, free the bitmap if it is empty. |
| (add_dependence): Use renamed field, cleanup. Don't add a dependence |
| on partitions with only one member. |
| (is_replaceable_p): New. Split out replaceability check from |
| check_replaceable. |
| (process_replaceable): New. Code split from check_replaceable. |
| (check_replaceable): Removed. |
| (finished_with_expr): Renamed from finish_expr. |
| (kill_expr): Use renamed fields and less parameters. |
| (kill_virtual_exprs): Less parameters. |
| (mark_replaceable): Use renamed fields. |
| (find_replaceable_in_bb): Use renamed fields, cleanup. |
| (find_replaceable_exprs): Use renamed routines, cleanup. |
| (dump_replaceable_exprs): Don't go past end of ssa_names list. |
| (debug_ter): New. Debug routine to dump state. |
| |
| 2006-12-08 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin.c (effective_address_32bit_p): Return true for |
| anything involving the GOT. |
| (bfin_adjust_cost): Don't take the REGNO of a MEM. |
| (trapping_loads_p): Look inside the pattern of an insn to find the |
| SET. |
| * config/bfin/bfin.md (attr "type"): Add movcc. |
| (insn_reservation "alu"): Likewise. |
| (movsicc_insn1, movsicc_insn2): Change type to movcc. |
| |
| 2006-12-07 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| * config/spu/spu-c.c (spu_build_overload_builtin): Delete. |
| (spu_resolve_overloaded_builtin): Check for non scalar instead |
| of vector type and check the function call argument type also for |
| non scalar. |
| Call build_function_call instead of spu_build_overload_builtin. |
| |
| 2006-12-07 Trevor Smigiel <trevor_smigiel@playstation.sony.com> |
| |
| * config/spu/spu.c (array_to_constant): Correct the order of arguments |
| to the calls of hwint_to_const_double. |
| |
| 2006-12-07 Nick Clifton <nickc@redhat.com> |
| |
| * config/elfos.h (TARGET_ASM_RECORD_GCC_SWITCHES): Set to |
| elf_record_gcc_switches. |
| |
| 2006-12-07 Andrew Macleod <amacleod@redhat.com> |
| |
| * expr.c (string_constant): Account for non-zero lower bound arrays. |
| |
| 2006-12-07 Richard Guenther <rguenther@suse.de> |
| |
| * builtins.c (expand_builtin_pow): Adjust predicates for |
| pow to cbrt expansion to unsafe math and !HONOR_NANS for |
| negative base. |
| |
| 2006-12-07 Jan Hubicka <jh@suse.cz> |
| |
| * i386.c (nocona_cost, pentium4_cost): Update preffered memcpy/memset |
| codegen. |
| |
| 2006-12-07 Jan Hubicka <jh@suse.cz> |
| |
| * tree-vrp.c (compare_values): Short circuit INTEGER_CST; |
| use fold_constant_to_binary; tolerate wrong type constants. |
| (value_intersect_p): Do just two tests. |
| |
| 2006-12-07 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin.c (print_operand): New modifier 'N' for constants. |
| * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, |
| lshifthi3): Use it, and fix the order of alternatives. |
| |
| 2006-12-07 Nick Clifton <nickc@redhat.com> |
| |
| * common.opt (record-gcc-switches): New command line switch. |
| * target.h (print_switch_type): New enum. |
| (print_switch_fn_type): New typedef for a function pointer. |
| (struct gcc_target): Add record_gcc_switches and |
| record_gcc_switches_section fields. |
| * target-def.h (TARGET_ASM_RECORD_GCC_SWITCHES): Provide a |
| default definition. |
| (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Provide a default |
| definition. |
| * toplev.c (print_single_switch): Simplify by providing a |
| pointer to function that will format and output the switch |
| appropriately. |
| (print_switch_values): Likewise. |
| (print_to_asm_out_file): New function. |
| (print_to_stderr): New function. |
| (init_asm_output): If flag_record_gcc_switches is set then if |
| the target supports recording the switches then emit them into |
| the assembler output file, otherwise tell the user that the |
| switch is not supported. |
| * varasm.c (eld_record_gcc_switches): New function. Example |
| handler for the record_gcc_switches target hook. |
| * doc/tm.texi (TARGET_ASM_RECORD_GCC_SWITCHES): Document the new |
| target hook. |
| (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Likewise. |
| * doc/invoke.texi (-frecord-gcc-switches): Document. |
| |
| 2006-12-07 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> |
| |
| PR target/29794 |
| * sched-rgn.c (add_block1): Use correct initializer. |
| |
| 2006-12-07 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vect-transform.c (vectorizable_call): Fix leftover of |
| TREE_OPERAND to GIMPLE_STMT_OPERAND conversion. |
| |
| 2006-12-06 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR/30079 |
| * config/pa/pa.c (hppa_gimplify_va_arg_expr): Build MODIFY_EXPR |
| not GIMPLE_MODIFY_STMT. |
| |
| 2006-12-06 Jan Hubicka <jh@suse.cz> |
| |
| * tree-vrp.c (operand_less_p): New. |
| (compare_values, value_inside_range): Rewrite in terms of |
| operand_less_p. |
| |
| 2006-12-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (DIRFLAG_REG): Remove constant. |
| (type): Remove cld. |
| (length_immediate): Do not depend on cld type attribute. |
| (length_address): Ditto. |
| (modrm): Ditto. |
| (memory): Ditto. |
| (cld): Remove insn pattern. |
| (strmov_singleop): Do not use DIRFLAG_REG. |
| (*strmovdi_rex_1): Ditto. |
| (*strmovsi_1): Ditto. |
| (*strmovsi_rex_1): Ditto. |
| (*strmovhi_1): Ditto. |
| (*strmovhi_rex_1): Ditto. |
| (*strmovqi_1): Ditto. |
| (*strmovqi_rex_1): Ditto. |
| (rep_mov): Ditto. |
| (*rep_movdi_rex64): Ditto. |
| (*rep_movsi): Ditto. |
| (*rep_movsi_rex64): Ditto. |
| (*rep_movqi): Ditto. |
| (*rep_movqi_rex64): Ditto. |
| (strset_singleop): Ditto. |
| (*strsetdi_rex_1): Ditto. |
| (*strsetsi_1): Ditto. |
| (*strsetsi_rex_1): Ditto. |
| (*strsethi_1): Ditto. |
| (*strsethi_rex_1): Ditto. |
| (*strsetqi_1): Ditto. |
| (*strsetqi_rex_1): Ditto. |
| (rep_stos): Ditto. |
| (*rep_stosdi_rex64): Ditto. |
| (*rep_stossi): Ditto. |
| (*rep_stossi_rex64): Ditto. |
| (*rep_stosqi): Ditto. |
| (*rep_stosqi_rex64): Ditto. |
| (cmpstrnsi): Do not generate cld insn. |
| (cmpstrnqi_nz_1): Do not use DIRFLAG_REG. |
| (*cmpstrnqi_nz_1): Ditto. |
| (*cmpstrnqi_nz_rex_1): Ditto. |
| (cmpstrnqi_1): Ditto. |
| (*cmpstrnqi_1): Ditto. |
| (*cmpstrnqi_rex_1): Ditto. |
| (strlenqi_1): Ditto. |
| (*strlenqi_1): Ditto. |
| (*strlenqi_rex_1): Ditto. |
| |
| * config/i386/geode.md (shift): Do not depend on cld type attribute. |
| * config/i386/pentium.md (pent_cld): Remove insn reservation. |
| * config/i386/athlon.md (athlon_decode): Do not depend on cld |
| type attribute. |
| * config/i386/ppro.md (ppro_cld): Remove insn reservation. |
| * config/i386/k6.md (k6_alux_only): Do not depend on cld type |
| attribute. |
| (k6_alux_only_load): Ditto. |
| (k6_alux_only_store): Ditto. |
| |
| * config/i386/i386.c (ix86_expand_movmem): Remove cld_done boolean. |
| Do not emit cld instruction. |
| (ix86_expand_setmem): Ditto. |
| (ix86_expand_strlen): Do not emit cld instruction. |
| |
| 2006-12-06 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin.c (bfin_rtx_costs): Add a number of new cases, tweak |
| old ones. |
| |
| 2006-12-06 Diego Novillo <dnovillo@redhat.com> |
| |
| * gdbinit.in: Set complaints to 0. |
| |
| 2006-12-06 Jan Hubicka <jh@suse.cz> |
| |
| * statistics.h (ALONE_PASS_MEM_STAT, ALONE_MEM_STAT_INFO, |
| ALONE_MEM_STAT_DECL): New macros. |
| * bitmap.h: Include statistics.h |
| (struct bitmap_head_def): Add variant with pointer to bitmap descriptor. |
| (bitmap_initialize_stat): Rename from bitmap_initialize; add statistics. |
| (bitmap_obstack_alloc_stat, bitmap_gc_alloc_stat): Declare. |
| * bitmap.c: Include hashtab.h |
| (bitmap_descriptor): New. |
| (bitmap_hash): New static variable |
| (hash_descriptor, eq_descriptor, bitmap_descriptor, register_overhead): |
| New static functions. |
| (bitmap_register): New. |
| (bitmap_element_free, bitmap_element_allocate, bitmap_elt_clear_from, |
| bitmap_obstack_release): Do accounting. |
| (bitmap_obstack_alloc_stat): Rename from bitmap_obstack_alloc ; do |
| accounting. |
| (bitmap_gc_alloc_stat): Likewise. |
| (bitmap_obstack_free, bitmap_find_bit): Do statictics. |
| (print_statistics, dump_bitmap_statistics): New functions. |
| * toplev.c (finalize): Dump bitmap statistics. |
| |
| 2006-12-06 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * reload1.c (delete_output_reload): Count occurrences in |
| CALL_INSN_FUNCTION_USAGE. |
| * rtlanal.c (count_occurrences): Handle EXPR_LIST nodes without |
| crashing at the end of the list. |
| |
| 2006-12-05 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-structalias.c (set_used_smts): Re-fix pr29156. |
| Optimize to avoid marking more SMT's as used when they aren't. |
| |
| 2006-12-05 Eric Christopher <echristo@apple.com> |
| |
| * config/i386/i386.c (x86_output_aligned_bss): Move out |
| of COMMON_ASM_OP ifdef. |
| |
| 2006-12-05 Eric Christopher <echristo@apple.com> |
| |
| * config/darwin.h (DARWIN_EXTRA_SPECS): New. |
| (STARTFILE_SPEC): Use. |
| (DARWIN_DYLIB1_SPEC): New. |
| (DARWIN_CRT1_SPEC): New. |
| * config/i386/darwin64.h (SUBTARGET_EXTRA_SPECS): Use |
| DARWIN_EXTRA_SPECS. |
| * config/i386/darwin.h: Ditto. |
| * config/rs6000/darwin.h: Ditto. |
| |
| 2006-12-05 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-vrp.c (pass_vrp): Remove PROP_smt_usage. |
| * tree-complex.c (pass_lower_complex): Ditto. |
| * tree-ssa-ccp.c (pass_ccp): Ditto. |
| (pass_store_ccp): Ditto. |
| * tree-ssa-dom.c (pass_dominator): Ditto. |
| (pass_phi_only_cprop): Ditto. |
| * tree-sra.c (pass_sra): Ditto. |
| * tree-ssa-forwprop.c (pass_forwprop): Ditto. |
| * tree-flow.h (updating_used_alone): Remove. |
| (updating_used_alone): Ditto. |
| * tree-ssa-alias.c (updating_used_alone): Remove variable. |
| (lhs_may_store_to): Remove function. |
| (recalculate_used_alone): Ditto. |
| (compute_may_aliases): Remove used_alone calculation. |
| * tree.h (struct tree_memory_tag): Remove is_used_alone and |
| old_used_alone. Remove SMT_USED_ALONE and SMT_OLD_USED_ALONE. |
| * tree-pass.h (PROP_smt_usage): Remove. |
| * passes.c (execute_todo): Remove used alone recalculation. |
| (execute_one_pass): Ditto. |
| * tree-ssa-operands.c (add_virtual_operand): Remove used_alone |
| stuff. |
| |
| 2006-12-05 Brooks Moses <brooks.moses@codesourcery.com> |
| |
| * doc/include/texinfo.tex: Update to version 2006-11-08.17. |
| |
| 2006-12-05 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| PR tree-optimization/14784 |
| * tree-ssa-operands.c (access_can_touch_variable): Unrevert the fix. |
| |
| 2006-12-05 Aldy Hernandez <aldyh@redhat.com> |
| |
| Merge from gimple-tuples-branch. |
| |
| 2006-12-04 Aldy Hernandez <aldyh@redhat.com> |
| |
| * config/s390/s390.c (s390_va_start): Replace MODIFY_EXPR with |
| GIMPLE_MODIFY_STMT. |
| (s390_gimplify_va_arg): Same. |
| * config/sparc/sparc.c (sparc_gimplify_va_arg): Same. |
| * config/sh/sh.c (sh_va_start): Same. |
| (sh_gimplify_va_arg_expr): Same. |
| * config/xtensa/xtensa.c (xtensa_va_start): Same. |
| (xtensa_gimplify_va_arg_expr): Same. |
| * config/ia64/ia64.c (ia64_gimplify_va_arg): Same. |
| * config/pa/pa.c (hppa_gimplify_va_arg_expr): Same. |
| * config/mips/mips.c (mips_va_start): Same. |
| (mips_gimplify_va_arg_expr): Same. |
| |
| 2006-12-04 Aldy Hernandez <aldyh@redhat.com> |
| |
| * Merge from mainline at revision 119445. |
| |
| 2006-12-04 Aldy Hernandez <aldyh@redhat.com> |
| |
| * config/spu/spu.c (spu_va_start): Change MODIFY_EXPR to |
| GIMPLE_MODIFY_STMT. |
| (spu_gimplify_va_arg_expr): Same. |
| |
| 2006-12-04 Aldy Hernandez <aldyh@redhat.com> |
| |
| * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): |
| Change uses of MODIFY_EXPR to GIMPLE_MODIFY_STMT. |
| (xstormy16_expand_builtin_va_arg): Same. |
| |
| 2006-12-04 Aldy Hernandez <aldyh@redhat.com> |
| |
| * config/frv/frv.c (frv_expand_builtin_va_start): Change MODIFY_EXPR |
| to GIMPLE_MODIFY_STMT. |
| |
| 2006-12-04 Aldy Hernandez <aldyh@redhat.com> |
| |
| * config/alpha/alpha.c (va_list_skip_additions): Change all |
| occurrences of MODIFY_EXPR to GIMPLE_MODIFY_STMT. |
| (alpha_va_start): Same. |
| (alpha_gimplify_va_arg_1): Same. |
| (alpha_gimplify_va_arg): Same. |
| |
| 2006-12-01 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimplify.c (gimplify_modify_expr): Remove FIXME comment. |
| |
| 2006-12-01 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-loop-im.c: Rename all PROTECTED_TREE_OPERAND to |
| GENERIC_TREE_OPERAND, and all PROTECTED_TREE_TYPE to |
| GENERIC_TREE_TYPE. |
| * tree-complex.c: Same. |
| * tree-pretty-print.c: Same. |
| * tree.c: Same. |
| * tree.h: Same. |
| * builtins.c: Same. |
| * fold-const.c: Same. |
| * tree-ssa-dom.c: Same. |
| * tree-ssa-propagate.c: Same. |
| * tree-ssa-alias.c: Same. |
| * gimple-low.c: Same. |
| * dwarf2out.c: Same. |
| * c-pretty-print.c: Same. |
| * gimplify.c: Same. |
| * tree-inline.c: Same. |
| * tree-outof-ssa.c: Same. |
| * tree-ssa-structalias.c: Same. |
| * tree-ssa-reassoc.c: Same. |
| * stmt.c: Same. |
| |
| 2006-11-16 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree.c (build2_stat): Fix comment. |
| |
| 2006-11-13 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-propagate.c (get_rhs): Use GIMPLE_MODIFY_STMT and |
| TREE_OPERAND when appropriate. |
| |
| 2006-11-04 Aldy Hernandez <aldyh@redhat.com> |
| |
| * java/java-tree.h (lang_tree_node): Handle gimple tuples. |
| (EXPR_WFL_EMIT_LINE_NOTE): Look inside base. |
| (EXPR_WFL_LINECOL): Use EXPR_LOCUS macro instead of exp.locus. |
| * java/java-gimplify.c (java_gimplify_expr): Comment on why we do |
| not handle GIMPLE_MODIFY_STMT in the switch statement. |
| (java_gimplify_modify_expr): Call build2 with GIMPLE_MODIFY_STMT. |
| (java_gimplify_new_array_init): Same. |
| |
| 2006-11-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimplify.c (gimplify_omp_for): Allow gimple statements. |
| * tree-outof-ssa.c (check_replaceable): Use PROTECTED_TREE_OPERAND. |
| * fold-const.c (fold_binary): Allow gimple statements. |
| (fold): Same. |
| * fortran/trans-array.c (gfc_conv_descriptor_data_set_internal): |
| Rename from gfc_conv_descriptor_data_set. |
| Call gfc_add_modify instead of gfc_add_modify_expr. |
| * fortran/trans-array.h (gfc_conv_descriptor_data_set_internal): |
| Rename from gfc_conv_descriptor_data_set. |
| (gfc_conv_descriptor_data_set): New macro. |
| (gfc_conv_descriptor_data_set_tuples): New macros. |
| * fortran/trans-openmp.c (gfc_omp_clause_default_ctor): Call |
| gfc_conv_descriptor_data_set_tuples. |
| * fortran/trans.c (gfc_add_modify): Rename from gfc_add_modify_expr. |
| Generate GIMPLE_MODIFY_STMT when appropriate. |
| * fortran/trans.h (gfc_add_modify): Rename from gfc_add_modify_expr. |
| (gfc_add_modify_expr): New macro. |
| (gfc_add_modify_stmt): New macro. |
| * fortran/f95-lang.c (lang_tree_node): Handle gimple statements. |
| |
| 2006-11-01 Aldy Hernandez <aldyh@redhat.com> |
| |
| * Merge from mainline at revision 118200. |
| |
| 2006-10-09 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-inline.c (copy_bb): Check for GIMPLE_MODIFY_STMT, and adjust |
| accordingly. |
| |
| 2006-10-09 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree.h (TREE_CHAIN, TREE_TYPE): Add versions for non GCC or not |
| enable checking. |
| Also, add __extension__ to GCC versions. |
| * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE. |
| * tree-inline.c (copy_tree_r): Initialize chain to assuage the warning |
| patrol. |
| |
| 2006-10-05 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-complex.c (expand_complex_libcall): Adjust for |
| GIMPLE_MODIFY_STMT. |
| (expand_complex_comparison): Same. |
| * tree-pretty-print.c (dump_generic_node): Is_expr should include |
| GIMPLE_STMT_P statements. |
| * value-prof.c (tree_divmod_fixed_value_transform): Adjust for |
| GIMPLE_MODIFY_STMT. |
| (tree_mod_pow2_value_transform): Same. |
| (tree_mod_subtract_transform): Same. |
| * tree.c (build2_stat): Check for gimplified function in cfun. |
| * tree.h (DECL_GIMPLIFIED): Delete. |
| (struct tree_function_decl): Remove gimplified_flag. |
| * omp-low.c (lower_omp_for): Adjust for GIMPLE_MODIFY_STMT. |
| * cp/cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT. |
| (cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT. |
| (cxx_omp_clause_copy_ctor): Same. |
| (cxx_omp_clause_assign_op): Same. |
| * c-pretty-print.c (pp_c_conditional_expression): Same. |
| (pp_c_expression): Same. |
| * langhooks.c (lhd_omp_predetermined_sharing): Same. |
| * function.h (struct function): Add gimplified field. |
| * tree-if-conv.c (add_to_dst_predicate_list): Adjust for |
| GIMPLE_MODIFY_STMT. |
| (find_phi_replacement_condition): Same. |
| * gimplify.c (gimplify_modify_expr_to_memcpy): Same. |
| (gimplify_modify_expr_to_memset): Same. |
| (gimplify_init_ctor_eval_range): Same. |
| (gimplify_modify_expr_complex_part): Same. |
| (tree_to_gimple_tuple): Same. |
| (gimplify_modify_expr): Same. |
| (gimple_push_cleanup): Same. |
| (gimplify_omp_for): Same. |
| (gimplify_omp_atomic_pipeline): Same. |
| (gimplify_omp_atomic_mutex): Same. |
| (gimplify_expr): Same. |
| (gimplify_one_sizepos): Same. |
| (gimplify_function_tree): Same. |
| * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Same. |
| (vect_recog_widen_sum_pattern): Same. |
| * tree-vect-transform.c (get_initial_def_for_reduction): Same. |
| (vect_create_epilog_for_reduction): Same. |
| (vectorizable_reduction): Same. |
| |
| 2006-09-28 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-math-opts.c (replace_reciprocal): Use GIMPLE_STMT_OPERAND. |
| * tree-if-conv.c (if_convertible_gimple_modify_stmt_p): Same. |
| (ifc_temp_var): Same. |
| * tree-vect-analyze.c (vect_determine_vectorization_factor): Check |
| for gimple statements. |
| (vect_analyze_operations): Same. |
| (exist_non_indexing_operands_for_use_p): Use GIMPLE_STMT_OPERAND. |
| * gimplify.c (gimplify_return_expr): Handle gimple statements. |
| * lambda-code.c (can_put_in_inner_loop): Same. |
| (can_put_after_inner_loop): Same. |
| * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Same. |
| (vect_create_data_ref_ptr): Same. |
| (vect_init_vector): Same. |
| (vect_get_vec_def_for_operand): Same. |
| (vect_create_epilog_for_reduction): Same. |
| (vectorizable_reduction): Same. |
| (vectorizable_assignment): Same. |
| (vectorizable_operation): Same. |
| (vectorizable_load): Same. |
| (vectorizable_condition): Same. |
| * config/rs6000/rs6000.c (rs6000_va_start): Do not create MODIFY_EXPRs. |
| (rs6000_gimplify_va_arg): Same. |
| |
| 2006-09-25 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-vrp.c (simplify_div_or_mod_using_ranges): Use |
| GIMPLE_STMT_OPERAND. |
| (simplify_abs_using_ranges): Same. |
| * tree-complex.c (expand_complex_operations_1): Use |
| PROTECTED_TREE_OPERAND. |
| * tree-ssa-loop-niter.c (simplify_replace_tree): Check for gimple |
| stmt. |
| (get_val_for): Use GIMPLE_STMT_OPERAND. |
| * tree-tailcall.c (adjust_accumulator_values): Same. |
| (adjust_return_value): Same. |
| * tree.c (walk_tree): Use IS_GIMPLE_STMT_CODE_CLASS on default |
| case. Remove special case for tcc_gimple_stmt. |
| * tree.h (CAN_HAVE_LOCATION_P): New. |
| * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Check for |
| GIMPLE_STMT_P. |
| * tree-stdarg.c (va_list_counter_bump): Use GIMPLE_STMT_OPERAND. |
| * tree-ssa-dom.c (propagate_rhs_into_lhs): Same. |
| * tree-nrv.c (execute_return_slot_opt): Same. |
| * tree-ssa-alias.c (count_uses_and_derefs): Check for GIMPLE_STMT_P. |
| * tree-vn.c (set_value_handle): Same. |
| (get_value_handle): Same. |
| * c-decl.c (add_stmt): Use CAN_HAVE_LOCATION_P. |
| * tree-vectorizer.c (find_loop_location): Same. |
| * c-typeck.c (c_process_expr_stmt): Same. |
| (c_finish_stmt_expr): Same. |
| * gimplify.c (should_carry_locus_p): Same. |
| (tree_to_gimple_tuple): Delete definition and use of unecessary |
| variable save_tree_block. |
| * tree-ssa-pre.c (phi_translate): Check for GIMPLE_STMT_P. |
| (create_expression_by_pieces): Use GIMPLE_STMT_OPERAND. |
| (realify_fake_stores): Same. |
| * tree-ssa-forwprop.c (forward_propagate_addr_into_variable_arr): |
| Use TREE_OPERAND. |
| * tree-inline.c (copy_body_r): Check for EXPR_P and GIMPLE_STMT_P. |
| (copy_tree_r): Check for IS_GIMPLE_STMT_CODE_CLASS. |
| * tree-cfg.c (move_stmt_r): Use EXPR_P. Check for GIMPLE_STMT_P. |
| * c-parser.c (c_parser_typeof_specifier): Use CAN_HAVE_LOCATION_P. |
| (c_parser_statement_after_labels): Same. |
| (c_parser_paren_condition): Same. |
| (c_parser_for_statement): Same. |
| (c_parser_omp_for_loop): Same. |
| * tree-ssa-reassoc.c (linearize_expr): Use GIMPLE_STMT_OPERAND. |
| (linearize_expr_tree): Same. |
| * dwarf2out.c (reference_to_unused): Check for GIMPLE_STMT_P. |
| * function.c (instantiate_expr): Same. |
| |
| 2006-09-22 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree.c (expr_location): Use GIMPLE_STMT_LOCUS. |
| (set_expr_location): Same. |
| (expr_locus): Same. |
| (set_expr_locus): Same. |
| (expr_filename): Same. |
| (expr_lineno): Same. |
| (tree_block): Use GIMPLE_STMT_BLOCK. |
| (protected_tree_operand): Use GIMPLE_STMT_OPERAND. |
| * tree.h (struct gimple_stmt): Remove prev and next. |
| (GIMPLE_STMT_OPERAND_CHECK): New. |
| (TREE_TO_GIMPLE_STMT): Delete. |
| (GIMPLE_STMT_TO_TREE): Delete. |
| (GIMPLE_STMT_OPERAND): Use union, not cast. |
| (GIMPLE_STMT_LOCUS): New. |
| (GIMPLE_STMT_BLOCK): New. |
| * gimplify.c (tree_to_gimple_tuple): Use union. Do not cast |
| to tree_base. |
| * tree-cfg.c (verify_gimple_tuples_1): Call gcc_unreachable. |
| |
| 2006-09-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-into-ssa.c (REGISTER_DEFS_IN_STMT): Change common.base |
| to base. |
| * tree-tailcall.c (adjust_return_value): Same. |
| * tree.c (tree_code_size): Remove GIMPLE_STATEMENT_LIST case. |
| (copy_node_stat): Change common.base to base. |
| (tree_node_structure): Return TS_GIMPLE_STATEMENT for tcc_gimple_stmt. |
| Remove GIMPLE_STATEMENT_LIST case. |
| * tree.h (struct gimple_stmt): Make operands of type tree. |
| (TREE_CODE, TREE_SET_CODE, TREE_ADDRESSABLE, CALL_EXPR_TAILCALL, |
| CASE_LOW_SEEN, TREE_STATIC, CLEANUP_EH_ONLY, CASE_HIGH_SEEN, |
| TREE_NO_WARNING, TREE_CONSTANT_OVERFLOW, TREE_SYMBOL_REFERENCED, |
| TYPE_REF_CAN_ALIAS_ALL, TREE_OVERFLOW, TREE_PUBLIC, |
| TYPE_CACHED_VALUES_P, TREE_SIDE_EFFECTS, FORCED_LABEL, |
| TREE_THIS_VOLATILE, TREE_THIS_NOTRAP, TREE_READONLY, |
| TREE_CONSTANT, TYPE_SIZES_GIMPLIFIED, DECL_UNSIGNED, |
| BIT_FIELD_REF_UNSIGNED, TYPE_UNSIGNED, TREE_ASM_WRITTEN, TREE_USED, |
| TREE_NOTHROW, CALL_EXPR_RETURN_SLOT_OPT, DECL_BY_REFERENCE, |
| CALL_FROM_THUNK_P, TYPE_ALIGN_OK, TREE_PRIVATE, TREE_PROTECTED, |
| TREE_DEPRECATED, IDENTIFIER_TRANSPARENT_ALIAS, TREE_INVARIANT, |
| TREE_LANG_FLAG_*, SSA_NAME_OCCURS_IN_ABNORMAL_PHI, |
| SSA_NAME_IN_FREE_LIST, TYPE_VOLATILE, TYPE_READONLY, BINFO_VIRTUAL_P): |
| Change common.base to base. |
| (GIMPLE_STATEMENT_LIST*): Remove. |
| (union tree_node): Add base. Remove gimple_statement_list. |
| Remove pointer from gstmt. |
| * tree-ssa-propagate.c (set_rhs): Change common.base to base. |
| * treestruct.def: Add TS_BASE. Remove TS_GIMPLE_STATEMENT_LIST. |
| * tree-vn.c (vn_compute): Change common.base to base. |
| * tree-eh.c (verify_eh_throw_stmt_node): Same. |
| * tree-flow-inline.h (var_ann): Same. |
| (function_ann): Same. |
| (stmt_ann): Same. |
| (mark_non_addressable): Same. |
| * gimplify.c (tree_to_gimple_tuple): Same. |
| * tree.def (DEFTREECODE): Remove GIMPLE_STATEMENT_LIST. |
| * tree-dfa.c (create_var_ann): Change common.base to base. |
| (create_function_ann): Same. |
| (create_stmt_ann): Same. |
| (create_tree_ann): Same. |
| (collect_dfa_stats_r): Same. |
| * tree-ssa-pre.c (NECESSARY): Change common.base to base. |
| * tree-ssa-dce.c (NECESSARY): Same. |
| * tree-ssa.c (delete_tree_ssa): Same. |
| * tree-optimize.c (execute_free_cfg_annotations): Same. |
| * tree-flow.h: Same. |
| |
| 2006-09-19 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree.c (tree_code_size): Handle GIMPLE_STATEMENT_LIST. |
| (tree_node_structure): Handle GIMPLE_STATEMENT_LIST and |
| GIMPLE_MODIFY_STMT. |
| * tree.h (struct gimple_stmt): Add prev and next fields. |
| (GIMPLE_STMT_TO_TREE): Cast, do not call GIMPLE_STMT_CHECK. |
| (GIMPLE_STATEMENT_LIST_HEAD): New. |
| (GIMPLE_STATEMENT_LIST_TAIL): New. |
| (struct gimple_statement_list): New. |
| (union tree_node): Add gimple_stmt_list and gstmt. |
| * treestruct.def: Add TS_GIMPLE_STATEMENT_LIST, TS_GIMPLE_STATEMENT. |
| * tree.def: Add GIMPLE_STATEMENT_LIST. |
| |
| 2006-09-06 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-dump.c (dequeue_and_dump): Handle GIMPLE_MODIFY_STMT. |
| * tree-vrp.c (build_assert_expr_for): Change uses of |
| MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly. |
| (find_assert_locations): Same. |
| (remove_range_assertions): Same. |
| (stmt_interesting_for_vrp): Same. |
| (vrp_visit_assignment): Same. |
| (vrp_visit_stmt): Same. |
| (simplify_cond_using_ranges): Same. |
| * tree-into-ssa.c (REGISTER_DEFS_IN_THIS_STMT): Adjust for new |
| tree structure. |
| * tree-ssa-loop-im.c (movement_possibility): Change uses of |
| MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly. |
| (stmt_cost): Same. |
| (determine_invariantness_stmt): Same. |
| (schedule_sm): Same. |
| (gather_mem_refs_stmt): Same. |
| * tree-complex.c (init_dont_simulate_again): Same. |
| (complex_visit_stmt): Same. |
| (set_component_ssa_name): Same. |
| (expand_complex_move): Same. |
| (expand_complex_div_wide): Same. |
| (expand_complex_comparison): Same. |
| (expand_complex_operations_1): Same. |
| * tree-ssa-loop-niter.c (expand_simple_operations): Same. |
| (chain_of_csts_start): Same. |
| (infer_loop_bounds_from_undefined): Same. |
| * tree-pretty-print.c (dump_generic_node): Same. |
| (op_prio): Same. |
| (op_symbol_1): Same. |
| * tree-ssa-loop-manip.c (create_iv): Same. |
| * value-prof.c (tree_divmod_fixed_value): Same. |
| (tree_divmod_fixed_value_transform): Same. |
| (tree_mod_pow2): Same. |
| (tree_mod_pow2_value_transform): Same. |
| (tree_mod_subtract): Same. |
| (tree_mod_subtract_transform): Same. |
| (tree_divmod_values_to_profile): Same. |
| * tree-tailcall.c (process_assignment): Same. |
| (find_tail_calls): Same. |
| (adjust_accumulator_values): Same. |
| (adjust_return_value): Same. |
| (eliminate_tail_call): Same. |
| * tree.c (tree_code_size): Handle tcc_gimple_stmt. |
| (make_node_stat): Same. |
| (copy_node_stat): Handle gimple tuples. |
| (expr_align): Handle GIMPLE_MODIFY_STMT. Abort on MODIFY_EXPR. |
| (tree_node_structure): Handle tcc_gimple_stmt. |
| (build2_stat): Abort on MODIFY_EXPR after gimplification. Handle |
| tcc_gimple_stmt. |
| (build2_gimple_stat): New. |
| (expr_location): New. |
| (set_expr_location): New. |
| (expr_has_location): New. |
| (expr_locus): New. |
| (set_expr_locus): New. |
| (expr_filename): New. |
| (expr_lineno): New. |
| (walk_tree): Handle tcc_gimple_stmt. |
| (tree_block): New. |
| (protected_tree_operand): New. |
| (protected_tree_type): New. |
| (tree_code_kind): Add gimple statements. |
| * tree.h (tree_code_class): Add tcc_gimple_stmt. |
| (IS_GIMPLE_STMT_CODE_CLASS): New. |
| (struct tree_base): New. |
| (struct tree_common): Shrink. |
| (struct gimple_stmt): New. |
| (struct gimple_expr): New. |
| (TREE_SET_CODE, TREE_ADDRESSABLE, CALL_EXPR_TAILCALL, |
| CASE_LOW_SEEN, TREE_STATIC, CLEANUP_EH_ONLY, CASE_HIGH_SEEN, |
| TREE_NO_WARNING, TREE_CONSTANT_OVERFLOW, TREE_SYMBOL_REFERENCED, |
| TYPE_REF_CAN_ALIAS_ALL, TREE_OVERFLOW, TREE_PUBLIC, |
| TYPE_CACHED_VALUES_P, SAVE_EXPR_RESOLVED_P, TREE_SIDE_EFFECTS, |
| FORCED_LABEL, TREE_THIS_VOLATILE, TREE_THIS_NOTRAP, TREE_READONLY, |
| TREE_CONSTANT, TYPE_SIZES_GIMPLIFIED, DECL_UNSIGNED, |
| BIT_FIELD_REF_UNSIGNED, TYPE_UNSIGNED, TREE_ASM_WRITTEN, |
| TREE_USED, TREE_NOTHROW, CALL_EXPR_RETURN_SLOT_OPT, |
| DECL_BY_REFERENCE, CALL_FROM_THUNK_P, TYPE_ALIGN_OK, |
| TREE_PRIVATE, TREE_PROTECTED, TREE_DEPRECATED, |
| IDENTIFIER_TRANSPARENT_ALIAS, TREE_INVARIANT, |
| TREE_LANG_FLAG_[0-6], SSA_NAME_CHECK, SSA_NAME_IN_FREE_LIST, |
| TYPE_VOLATILE, TYPE_READONLY, TREE_VISITED, BINFO_VIRTUAL_P): |
| Adjust for new `common' layout. |
| (struct tree_function_decl): Add gimplified_flag. |
| (DECL_GIMPLIFIED): NEW. |
| (EXPR_LOCATION, SET_EXPR_LOCUS, EXPR_FILENAME, EXPR_LOCUS, |
| SET_EXPR_LOCUS, SET_EXPR_LOCATION, EXPR_LINENO, |
| EXPR_HAS_LOCATION): Call corresponding function. |
| (GIMPLE_STMT_CHECK): New. |
| (TREE_OPERAND_CHECK, TREE_TYPE, TREE_CHAIN): Abort on gimple tuples. |
| (TREE_BLOCK): Call tree_block. |
| (GIMPLE_STMT_P): New. |
| (GIMPLE_TUPLE_P): New. |
| (TREE_TO_GIMPLE_STMT): New. |
| (GIMPLE_STMT_TO_TREE): New. |
| (GIMPLE_STMT_OPERAND): New. |
| (GIMPLE_TUPLE_HAS_LOCUS_P): New. |
| (PROTECTED_TREE_OPERAND): New. |
| (PROTECTED_TREE_TYPE): New. |
| (build2_gimple_stat): Protoize. |
| (build2_gimple): New. |
| (expr_location): Protoize. |
| (set_expr_location): Protoize. |
| (expr_has_location): Protoize. |
| (expr_locus): Protoize. |
| (set_expr_locus): Protoize. |
| (expr_filename): Protoize. |
| (expr_lineno): Protoize. |
| (tree_block): Protoize. |
| (protected_tree_operand): Protoize. |
| (protected_tree_type): Protoize. |
| (enum tree_node_kind): Add gimple_stmt_kind. |
| * c-decl.c (union lang_tree_node): Tuples do not have a |
| TREE_CHAIN. |
| * ipa-cp.c (constant_val_insert): Change uses of MODIFY_EXPR to |
| GIMPLE_MODIFY_STMT and adjust accordingly. |
| * tree-scalar-evolution.c (follow_ssa_edge): Same. |
| (interpret_condition_phi): Same. |
| (pointer_used_p): Same. |
| (analyze_scalar_evolution_1): Same. |
| (scev_const_prop): Same. |
| (interpret_rhs_modify_stmt): Rename from |
| interpret_rhs_modify_expr. |
| * builtins.c (std_expand_builtin_va_start): Change uses of |
| MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly. |
| (std_gimplify_va_arg_expr): Same. |
| (expand_builtin_va_copy): Same. |
| (integer_valued_real_p): Same. |
| * fold-const.c (maybe_lvalue_p): Same. |
| (fold_unary): Same. |
| (tree_expr_nonnegative_p): Same. |
| (tree_expr_nonzero_p): Same. |
| * omp-low.c (extract_omp_for_data): Same. |
| (lower_rec_input_clauses): Same. |
| (lower_reduction_clauses): Same. |
| (lower_copyprivate_clauses): Same. |
| (lower_send_clauses): Same. |
| (lower_send_shared_vars): Same. |
| (expand_parallel_call): Same. |
| (expand_omp_parallel): Same. |
| (expand_omp_for_generic): Same. |
| (expand_omp_for_static_nochunk): Same. |
| (expand_omp_for_static_chunk): Same. |
| (expand_omp_sections): Same. |
| (lower_omp_single_copy): Same. |
| (lower_omp_parallel): Same. |
| * tree-ssa-dse.c (memory_address_same): Same. |
| (dse_optimize_stmt): Same. |
| * ipa-reference.c (scan_for_static_refs): Same. |
| * tree-gimple.c (is_gimple_reg_rhs): Same. |
| (get_call_expr_in): Same. |
| (recalculate_side_effects): Same. |
| * cgraphunit.c (cgraph_create_edges): Same. |
| * tree-ssa-copyrename.c (rename_ssa_copies): Same. |
| * tree-ssa-ccp.c (get_default_value): Same. |
| (likely_value): Same. |
| (visit_assignment): Same. |
| (ccp_visit_stmt): Same. |
| (get_maxval_strlen): Same. |
| (ccp_fold_builtin): Same. |
| * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Same. |
| (find_givs_in_stmt): Same. |
| (find_interesting_uses_op): Same. |
| (find_interesting_uses_stmt): Same. |
| (rewrite_use_nonlinear_expr): Same. |
| * ipa-pure-const.c (scan_function): Same. |
| * tree-stdarg.c (va_list_counter_bump): Same. |
| (check_all_va_list_escapes): Same. |
| (execute_optimize_stdarg): Same. |
| * tree-ssa-math-opts.c (compute_merit): Same. |
| (insert_reciprocals): Same. |
| (execute_cse_reciprocals): Same. |
| * tree-ssa-dom.c (initialize_hash_element): Same. |
| (simple_iv_increment_p): Same. |
| (record_equivalences_from_stmt): Same. |
| (optimize_stmt): Same. |
| (remove_stmt_or_phi): Same. |
| (get_rhs_or_phi_arg): Same. |
| (get_lhs_or_phi_result): Same. |
| (propagate_rhs_into_lhs): Same. |
| * tree-nrv.c (tree_nrv): Same. |
| (execute_return_slot_opt): Same. |
| * tree-ssa-propagate.c (get_rhs): Same. |
| (set_rhs): Same. |
| (stmt_makes_single_load): Same. |
| (stmt_makes_single_store): Same. |
| (replace_vuses_in): Same. |
| (fold_predicate_in): Same. |
| (substitute_and_fold): Same. |
| * tree-ssa-alias.c (compute_call_clobbered): Same. |
| (recalculate_used_alone): Same. |
| (count_uses_and_derefs): Same. |
| (is_escape_site): Same. |
| (find_used_portions): Same. |
| * gimple-low.c (lower_stmt): Same. |
| (block_may_fallthru): Same. |
| (lower_return_expr): Same. |
| * tree-ssa-sink.c (is_hidden_global_store): Same. |
| (statement_sink_location): Same. |
| * dwarf2out.c (loc_descriptor_from_tree_1): Same. |
| * expr.c (safe_from_p): Same. |
| (expand_expr_real): Same. |
| (expand_expr_real_1): Same. |
| * tree-ssa-loop-ivcanon.c (empty_loop_p): Same. |
| * predict.c (expr_expected_value): Same. |
| (strip_builtin_expect): Same. |
| (apply_return_prediction): Same. |
| (tree_bb_level_predictions): Same. |
| (tree_estimate_probability): Same. |
| * tree-vn.c (vn_compute): Same. |
| * tree-eh.c (add_stmt_to_eh_region_fn): Same. |
| (remove_stmt_from_eh_region_fn): Same. |
| (do_return_redirection): Same. |
| (honor_protect_cleanup_actions): Same. |
| (lower_try_finally_switch): Same. |
| (lower_eh_constructs_1): Same. |
| (tree_could_throw_p): Same. |
| (verify_eh_throw_stmt_node): Same. |
| * function.c (gimplify_parameters): Same. |
| * tree-vectorizer.c (vect_is_simple_use): Same. |
| (vect_is_simple_reduction): Same. |
| * ipa-type-escape.c (scan_for_refs): Same. |
| * tree-if-conv.c (tree_if_conversion): Same. |
| (tree_if_convert_stmt): Same. |
| (if_convertible_gimplify_modify_stmt_p): Rename from |
| if_convertible_modify_expr_p. |
| (if_convertible_stmt_p): Adjust for GIMPLE_MODIFY_STMT. |
| (ifc_temp_var): Same. |
| (replace_phi_with_cond_modify_stmt): Rename from |
| replace_phi_with_cond_modify_expr. |
| (process_phi_nodes): Call replace_phi_with_cond_modify_stmt. |
| * tree.def (DEFTREECODE): Add GIMPLE_MODIFY_STMT. |
| * tree-data-ref.c (find_data_references_in_loop): Adjust for |
| GIMPLE_MODIFY_STMT. |
| * tree-flow-inline.h (var_ann): Same. |
| (function_ann): Same. |
| (stmt_ann): Same. |
| (mark_non_addressable): Same. |
| * tree-vect-analyze.c (vect_determine_vectorization_factor): Same. |
| * gimplify.c (tree_to_gimple_tuple): New. |
| (build_stack_save_restore): Adjust for GIMPLE_MODIFY_STMT. |
| (gimplify_return_expr): Same. |
| (gimplify_decl_expr): Same. |
| (gimplify_self_mod_expr): Same. |
| (gimplify_cond_expr): Same. |
| (gimplify_init_constructor): Same. |
| (gimplify_modify_expr): Same. |
| (gimplify_expr): Same. |
| (gimplify_function_tree): Same. |
| (force_gimple_operand): Same. |
| * tree-ssa-phiopt.c (conditional_replacement): Same. |
| (minmax_replacement): Same. |
| (abs_replacement): Same. |
| * tree-dfa.c (create_var_ann): Same. |
| (create_function_ann): Same. |
| (create_stmt_ann): Same. |
| (create_tree_ann): Same. |
| (collect_dfa_stats_r): Same. |
| * tree-ssa-pre.c (find_or_generate_expression): Same. |
| (create_expression_by_pieces): Same. |
| (try_look_through_load): Same. |
| (insert_fake_stores): Same. |
| (realify_fake_stores): Same. |
| (compute_avail): Same. |
| (eliminate): Same. |
| (init_pre): Same. |
| (poolify_modify_stmt): Rename from poolify_modify_stmt. |
| Adjust for GIMPLE_MODIFY_STMT. |
| (NECESSARY): Adjust for new `common' layout. |
| * tree-ssa-live.c (build_tree_conflict_graph): Adjust for |
| GIMPLE_MODIFY_STMT. |
| * tree-sra.c (sra_walk_modify_stmt): Rename from |
| sra_walk_modify_expr. |
| (sra_walk_function): Adjust for GIMPLE_MODIFY_STMT. |
| (generate_copy_inout): Same. |
| (generate_element_copy): Same. |
| (generate_element_zero): Same. |
| (scalarize_copy): Same. |
| * tree-mudflap.c (mf_decl_cache_locals): Same. |
| (mf_build_check_statement_for): Same. |
| (mf_xform_derefs): Same. |
| * ipa-prop.c (ipa_method_modify_stmt): Same. |
| * print-tree.c (print_node): Handle gimple tuples. |
| Add case for tcc_gimple_stmt. |
| * tree-ssa-copy.c (stmt_may_generate_copy): Adjust for |
| GIMPLE_MODIFY_STMT. |
| (copy_prop_visit_assignment): Same. |
| (copy_prop_visit_stmt): Same. |
| (init_copy_prop): Same. |
| * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): Same. |
| (forward_propagate_into_cond_1): Same. |
| (find_equivalent_equality_comparison): Same. |
| (tidy_after_forward_propagate_addr): Same. |
| (forward_propagate_addr_expr_1): Same. |
| (simplify_not_neg_expr): Same. |
| (simplify_switch_expr): Same. |
| * tree-ssa-dce.c (find_pdom): Same. |
| (mark_stmt_if_obviously_necessary): Same. |
| (NECESSARY): Adjust for new `common' layout. |
| * tree-flow.h: Same. |
| * tree-vect-patterns.c (widened_name_p): Adjust for |
| GIMPLE_MODIFY_STMT. |
| (vect_recog_dot_prod_pattern): Same. |
| (vect_recog_widen_sum_pattern): Same. |
| (vect_pattern_recog_1): Same. |
| * tree-nested.c (init_tmp_var): Same. |
| (save_tmp_var): Same. |
| (walk_stmts): Same. |
| (convert_call_expr): Same. |
| (finalize_nesting_tree_1): Same. |
| * tree-ssa.c (verify_ssa): Same. |
| (delete_tree_ssa): Same. |
| * lambda-code.c (lbv_to_gcc_expression): Same. |
| (lle_to_gcc_expression): Same. |
| (lambda_loopnest_to_gcc_loopnest): Same. |
| (can_put_in_inner_loop): Same. |
| (can_convert_to_perfect_nest): Same. |
| (perfect_nestify): Same. |
| * tree-ssa-loop-prefetch.c (gather_memory_references): Same. |
| * tree-inline.c (copy_body_r): Same. |
| (setup_one_parameter): Same. |
| (initialize_inlined_parameters): Same. |
| (estimate_num_insns_1): Same. |
| (expand_call_inline): Same. |
| (gimple_expand_calls_inline): Same. |
| (copy_tree_r): Same. |
| * tree-optimize.c (execute_free_cfg_annotations): Same. |
| * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Same. |
| (vect_align_data_ref): Same. |
| (vect_create_data_ref_ptr): Same. |
| (vect_init_vector): Same. |
| (vect_create_epilog_for_reduction): Same. |
| (vectorizable_reduction): Same. |
| (vectorizable_assignment): Same. |
| (vectorizable_operation): Same. |
| (vectorizable_store): Same. |
| (vectorizable_load): Same. |
| (vectorizable_live_operation): Same. |
| (vectorizable_condition): Same. |
| (vect_generate_tmps_on_preheader): Same. |
| (vect_create_cond_for_align_checks): Same. |
| * tree-object-size.c (collect_object_sizes_for): Same. |
| (check_for_plus_in_loops_1): Same. |
| (check_for_plus_in_loops): Same. |
| * tree-outof-ssa.c (insert_copy_on_edge): Same. |
| (replace_use_variable): Same. |
| (check_replaceable): Same. |
| (rewrite_trees): Same. |
| (identical_copies_p): Same. |
| (insert_backedge_copies): Same. |
| * tree-profile.c (tree_gen_edge_profiler): Same. |
| * tree-vect-generic.c (expand_vector_operations_1): Same. |
| * tree-ssa-structalias.c (update_alias_info): Same. |
| (find_func_aliases): Same. |
| * tree-cfg.c (factor_computed_gotos): Same. |
| (make_edges): Same. |
| (make_goto_expr_edges): Same. |
| (tree_merge_blocks): Same. |
| (remove_useless_stmts_cond): Same. |
| (remove_useless_stmts_1): Same. |
| (tree_find_edge_insert_loc): Same. |
| (verify_expr): Same. |
| (gimplify_val): Same. |
| (verify_gimple_tuples_1): New. |
| (verify_gimple_tuples): New. |
| (verify_stmts): Call verify_gimple_tuples. |
| * tree-ssa-reassoc.c (get_rank): Adjust for GIMPLE_MODIFY_STMT. |
| (get_unary_op): Same. |
| (linearize_expr): Same. |
| (get_single_immediate_use): Same. |
| (negate_value): Same. |
| (should_break_up_subtract): Same. |
| (break_up_subtract): Same. |
| (repropagate_negates): Same. |
| (break_up_subtract_bb): Same. |
| (reassociate_bb): Same. |
| * config/i386/i386.c (ix86_va_start): Same. |
| (ix86_gimplify_va_arg): Same. |
| * stmt.c (expand_expr_stmt): Same. |
| (warn_if_unused_value): Same. |
| (expand_return): Same. |
| * tree-ssanames.c (make_ssa_name): Same. |
| * tree-ssa-threadedge.c (lhs_of_dominating_assert): Same. |
| * tree-ssa-operands.c (finalize_ssa_defs): Same. |
| (add_virtual_operand): Same. |
| (get_expr_operands): Same. |
| (parse_ssa_operands): Same. |
| (get_modify_stmt_operands): Rename from get_modify_expr_operands. |
| |
| 2006-12-05 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config.host: Remove extra blank line. |
| |
| 2006-12-05 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config.host (i[34567]86-*-*, x86-64-*-*): Use driver-i386.o only if |
| target is also an x86 variant. |
| |
| 2006-12-05 Richard Guenther <rguenther@suse.de> |
| |
| * config/i386/i386.c (ix86_builtin_vectorized_function): Declare. |
| (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define. |
| (ix86_builtin_vectorized_function): New function to vectorize |
| sqrt. |
| |
| 2006-12-05 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin.c (output_file_start): Fix comment which referred to |
| ia64_override_options. |
| |
| 2006-12-04 Jan Hubicka <jh@suse.cz> |
| |
| * cfgexpand.c (expand_one_var): Guard expand_one_stack_var by |
| really_expand. |
| |
| 2006-12-04 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * rtlanal.c (note_uses): Deal with SEQUENCEs. |
| * config/bfin/bfin.c: Include "timevar.h". |
| (bfin_flag_schedule_insns2, splitting_for_sched, |
| bfin_flag_var_tracking): New variables. |
| (print_operand): Handle '%!'. |
| (override_options): Disable normal sched2 pass, instead set |
| bfin_flag_schedule_insns2 for reorg to handle it. |
| (output_file_start): Likewise for var-tracking. |
| (bfin_optimize_loop): Take some care not to stumble over SEQUENCEs. |
| (gen_one_bundle, bfin_gen_bundles, type_for_anomaly, trapping_loads_p): |
| New functions. |
| (bfin_reorg): Do second scheduling pass here, and call |
| bfin_gen_bundles. Use type_for_anomaly and trapping_loads_p instead |
| of examining insns directly. If bfin_flag_var_tracking, call |
| var-tracking pass when done with everything else. |
| * config/bfin/bfin.h (PRINT_OPERAND_PUNCT_VALID_P): '!' is valid. |
| * config/bfin/bfin.md (UNSPEC_32BIT): New constant. |
| (movsi_insn32): New pattern, with two new splits to create it |
| before the final scheduling pass. |
| (neghi2): Not a dsp32 insn, rather alu0. |
| (movbi, pushsi_insn, popsi_insn, movsi_insn, movv2hi_insn, movhi_insn, |
| movqi_insn, movsf_insn, movsi_insv, extendhisi2, zero_extendhisi2, |
| extendqihi2, extendqisi2, zero_extendqihi2, zero_extendqisi2, |
| mulhisi3, umulhisi3, ssadsi3, sssubsi3, smaxsi3, sminsi3, abssi2, |
| ssnegsi2, signbitssi2, smaxhi3, sminhi3, abshi2, ssneghi2, signbitshi2, |
| movhi_low2high, movhi_high2high, movhi_low2low, movhi_high2low, |
| movhiv2hi_low, movhiv2hi_high, composev2hi, packv2hi, movv2hi_hi, |
| ssaddhi3, sssubhi3, addv2hi3, ssaddv2hi3, subv2hi3, sssubv2hi3, |
| addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3, sublohiv2hi3, |
| subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3, addlohiv2hi3, |
| addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3, sminv2hi3, smaxv2hi3, |
| flag_mulhi, flag_mulhisi, flag_mulhisi_parts, flag_machi, |
| flag_machi_acconly, flag_macinithi, flag_macinit1hi, mulv2hi3, |
| flag_mulv2hi, flag_mulv2hi_parts, flag_macv2hi_parts, |
| flag_macv2hi_parts_acconly, flag_macinitv2hi_parts, |
| flag_macinit1v2hi_parts, mulhisi_ll, mulhisi_lh, mulhisi_hl, |
| mulhisi_hh, ssnegv2hi2, absv2hi2, ssashiftv2hi3, ssashifthi3, |
| lshiftv2hi3, lshifthi3): Use '%!' to terminate all dsp32/load/store |
| variants instead of ';'. |
| (ror_one, rol_one): Likewise. Make them dsp32 insns. |
| (ashlsi3_insn, ashrsi3, lshrsi3): Add dsp32 variants. |
| (align8, align16, align24): Now named patterns; also using '%!'. |
| (mnop): New insn. |
| |
| 2006-12-05 Kazu Hirata <kazu@codesourcery.com> |
| |
| * config/i386/darwin.h, config/spu/spu.c, tree-ssa-live.c, |
| tree-vect-generic.c, tree-vect-transform.c: Fix comment typos. |
| |
| 2006-12-04 Trevor Smigiel <trevor_smigiel@playstation.sony.com> |
| |
| * config/spu/spu-protos.c (spu_split_address): Add. |
| * config/spu/spu.c (spu_split_address): Add. |
| (print_operand): Handle HIGH. |
| (spu_legitimate_address): Don't test for aligned CONST. |
| (spu_expand_mov): Don't split addresses here. |
| * config/spu/constraints.md (A): Don't test legitimate_const. |
| * config/spu/spu.md: Add split of movsi patterns for PIC mode. |
| (ceq_di): Use correct predicates. |
| |
| 2006-12-04 Eric Christopher <echristo@apple.com> |
| |
| * config/darwin.h: Update copyright notice. |
| * config/i386/darwin.h: Ditto. |
| |
| 2006-12-04 Jan Hubicka <jh@suse.cz> |
| |
| * builtins.c (fold_builtin_memory_op): Check that expr_size match. |
| * explow.c (expr_size, int_expr_size): Assert that size is non_NULL. |
| |
| 2006-12-04 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Call |
| set_used_smts. |
| * tree-ssa-structalias.c (set_used_smts): Export. |
| (find_what_p_points_to): Don't call set_used_smts here. |
| * tree-ssa-structalias.h (set_used_smts): Add prototype. |
| |
| 2006-12-04 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-alias.c (compute_may_aliases): |
| Compute flow sensitive before flow insensitive. |
| (compute_flow_sensitive_aliasing): Don't try to add |
| a symbol memory tag to itself. |
| |
| * alias.h (alias_set_subset_of): New prototype. |
| |
| * alias.c (alias_set_subset_of): New function. |
| |
| * tree-ssa-structalias.c: Update comments. |
| (struct variable_info): Add finished_solution. |
| (new_varinfo): Set finished solution to NULL. |
| (var_escaped_vars): Remove. |
| (escaped_vars_tree): Remove. |
| (escaped_vars_id): Remove. |
| (nonlocal_vars_id): Remove. |
| (constraint_expr_type): Add INCLUDES. |
| (graph_size): Removed. |
| (dump_constraint): Support INCLUDES. |
| (build_constraint_graph): Ditto. |
| (collapse_nodes): Add merge_solutions argument. |
| Don't merge attributes. |
| (process_unification_queue): Just use collapse_nodes. |
| (perform_var_substitution): Update call to collapse_nodes. |
| (get_constraint_exp_from_ssa_var): Use INCLUDES. |
| (process_constraint): Fix non-field sensitive handling |
| Handle includes. |
| (get_constraint_for): Use INCLUDES. |
| (make_constraint_from_anything): Renamed from |
| make_constraint_from_escaped. |
| (make_constraint_to_escaped): Removed. |
| (find_global_initializers): Removed. |
| (create_variable_info_for): Do not make constraints to escaped |
| vars anymore. |
| (dump_solution_for_var): Don't print out the equivalent points-to |
| sets, just use the name of the variable it shares it with. |
| (intra_create_variable_infos): Use INCLUDES. |
| Change nonlocal variable sets to anything sets. |
| (init_base_vars): Remove escaped_vars and nonlocal_var |
| initialization. |
| (find_escape_constraints): Removed. |
| (delete_points_to_sets): Remove dead code. |
| (used_smt_calculated): New variable. |
| (set_used_smts): New function. |
| (merge_smts_into): New function. |
| (find_what_p_points_to): Modify to use SMTs. |
| (create_nonlocal_var): Remove. |
| |
| * tree-ssa-operands.c (access_can_touch_variable): Remove |
| reference to nonlocal_all. |
| |
| * tree-ssa.c (verify_name_tags): Remove. |
| |
| 2006-12-04 Carlos O'Donell <carlos@codesourcery.com> |
| |
| * config/arm/unwind-arm.c: Adjust __cxa_type_match declaration. |
| (__gnu_unwind_pr_common): Pass is_reference to __cxa_type_match. |
| |
| 2006-12-04 Andrew MacLeod <amacleod@redhat.com> |
| |
| * tree-outof-ssa.c (coalesce_ssa_name): Use calculate_live_ranges. |
| * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info): Update. |
| (add_livein_if_notdef): Delete. |
| (loe_visit_block): New. Propogate live on entry info for a block into |
| each predecessor. If it changes, make sure it is visited again. |
| (live_worklist): Visit every block and update the live on entry info |
| for preds. Iterate over any that changed. |
| (set_var_live_on_entry): Populate the live on entry blocks with bits |
| based on the immediate uses of a var. |
| (calculate_live_on_entry): Remove. |
| (calculate_live_on_exit): Calculate live on exit based on the newly |
| oriented live on entry bits. |
| (calculate_live_ranges): Build live on entry and exit vectors. |
| (dump_live_info): Use new orientation of live on entry bitmaps. |
| (verify_live_on_entry): New. Split out verification code from old |
| calculate_live_on_entry routine. |
| * tree-ssa-live.h (struct tree_live_info_d): Add Working stack. |
| (live_entry_blocks): Rename to live_on_entry and return bitmap for a |
| basic_block instead of for a partition. |
| (live_merge_and_clear): Add asserts. |
| (make_live_on_entry): Set partition bit in basic block vector. |
| |
| 2006-12-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR libgomp/29947 |
| * omp-low.c (expand_omp_for_static_nochunk, |
| expand_omp_for_static_chunk): Do all arithmetics in signed rather than |
| unsigned type. |
| |
| PR middle-end/29965 |
| * omp-low.c (determine_parallel_type): Don't try to optimize combined |
| parallels if region->exit or region->inner->exit is NULL. |
| (expand_omp_parallel): Handle NULL region->exit even if cfg is already |
| built. |
| (expand_omp_for_generic): Handle NULL region->cond and region->exit. |
| (expand_omp_for): Use expand_omp_for_generic if either region->cond |
| or region->exit is NULL. |
| (expand_omp_sections): Handle NULL region->cond or region->exit. |
| (expand_omp_synch): |
| |
| 2006-12-04 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| * config/sparc/sp64-elf.h (JUMP_TABLES_IN_TEXT_SECTION): Delete. |
| * config/sparc/sysv4.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise. |
| |
| 2006-12-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree.c (walk_type_fields): Do not handle TYPE_MIN_VALUE and |
| TYPE_MAX_VALUE for scalar types here but... |
| (walk_tree): ...there instead. Return NULL_TREE if the TYPE_DECL |
| is attached an error mark, and the return value of the callback |
| if it is not NULL_TREE. |
| |
| 2006-12-04 Ben Elliston <bje@au.ibm.com> |
| |
| * config/spu/spu.md (_mulv4si3): Remove unused local variables. |
| |
| 2006-12-03 Eric Christopher <echristo@apple.com> |
| |
| PR target/24598 |
| * config/t-slibgcc-darwin: Pass -install_name. |
| * config/darwin.h (LINK_COMMAND_SPEC): Remove use of |
| libtool. Only pass through options that the linker recognizes. |
| (LINK_SPEC): Update comment. Translate options. |
| (STARTFILE_SPEC): Add dylib1.o for shared libraries. |
| * config/darwin9.h (LINK_COMMAND_SPEC): Ditto above. |
| |
| 2006-12-03 Dorit Nuzman <dorit@il.ibm.com> |
| |
| * config/spu/spu.md (smaxv4sf3, sminv4sf3): New. |
| |
| 2006-12-03 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/30041 |
| * config/i386/sse.md ("*sse3_movddup"): Use operands[0] and |
| operands[1] in insn constraint. Correct type attribute to sselog1. |
| |
| 2006-12-02 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/30040 |
| * config/i386/driver-i386.c: Include "coretypes.h" and "tm.h". |
| (bit_SSSE3): New. |
| (host_detect_local_cpu): Check -mtune= vs. -march=. Rewrite |
| processor detection. |
| |
| * config/i386/i386.h (CC1_CPU_SPEC): Add -mtune=native for |
| -march=native if there is no -mtune=*. |
| |
| * config/i386/x-i386 (driver-i386.o): Also depend on $(TM_H) |
| coretypes.h. |
| |
| 2006-12-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * doc/install.texi: Update recommended MPFR version. Remove |
| obsolete reference to cumulative patch. |
| |
| 2006-12-02 Lee Millward <lee.millward@codesourcery.com> |
| |
| PR c/27953 |
| * c-decl.c (store_parm_decls_oldstyle): Robustify. |
| |
| 2006-11-30 Jan Hubicka <jh@suse.cz> |
| Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (pentium4_cost, nocona_cost): Update |
| 32bit memcpy/memset decriptors. |
| (decide_alg): With -minline-all-stringops and sizes that are best |
| to be copied via libcall still work hard enough to pick non-libcall |
| strategy. |
| |
| 2006-12-02 Kazu Hirata <kazu@codesourcery.com> |
| |
| * doc/extend.texi, doc/invoke.texi, doc/md.texi: Fix typos. |
| |
| * builtins.c, cfgloop.h, cgraph.h, config/arm/arm.c, |
| config/i386/i386.c, config/i386/i386.h, config/mips/mips.h, |
| config/rs6000/cell.md, config/rs6000/rs6000.c, config/sh/sh.c, |
| config/sh/sh4-300.md, config/spu/spu-builtins.def, |
| config/spu/spu-c.c, config/spu/spu-modes.def, |
| config/spu/spu.c, config/spu/spu.md, |
| config/spu/spu_internals.h, config/spu/vmx2spu.h, |
| fold-const.c, fwprop.c, predict.c, tree-data-ref.h, |
| tree-flow.h, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c, |
| tree-ssa-pre.c, tree-vect-analyze.c, tree-vect-transform.c, |
| tree-vectorizer.c, tree-vrp.c: Fix comment typos. Follow |
| spelling conventions. |
| |
| * config/i386/i386.c: Fix a comment typo. |
| |
| 2006-12-01 Trevor Smigiel <trevor_smigiel@playstation.sony.com> |
| |
| * config/spu/spu.c (spu_immediate): Remove trailing comma. |
| (reloc_diagnostic): Call warning when -mwarn-reloc is specified. |
| * config/spu/spu.md: (zero_extendhisi2): Expand instead of split for |
| better optimization. |
| (floatv4siv4sf2): New. |
| (fix_truncv4sfv4si2): New. |
| (floatunsv4siv4sf2): New. |
| (fixuns_truncv4sfv4si2): New. |
| (addv16qi3): New. |
| (subv16qi3): New. |
| (negv16qi2): New. |
| (mulv8hi3): New. |
| (mulsi3): Remove. |
| (mul<mode>3): New. |
| (_mulv4si3): New. |
| (cmp<mode>): Don't accept constant arguments for DI, TI and SF. |
| * config/spu/spu_internals.h: Handle overloaded intrinsics in C++ with |
| spu_resolve_overloaded_builtin instead of static inline functions. |
| |
| 2006-12-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * fold-const.c (fold_binary) <LT_EXPR>: Use the precision of the |
| type instead of the size of its mode to compute the highest and |
| lowest possible values. Still check the size of the mode before |
| flipping the signedness of the comparison. |
| |
| 2006-12-01 Trevor Smigiel <trevor_smigiel@playstation.sony.com> |
| |
| * config/spu/predicates.md (spu_mov_operand): Add. |
| * config/spu/spu.c (spu_expand_extv): Remove unused code. |
| (print_operand_address, print_operand): Handle addresses containing AND. |
| (spu_split_load, spu_split_store): Use updated movti pattern. |
| * config/spu/spu.md: (_mov<mode>, _movdi, _movti): Handle loads and |
| stores in mov patterns for correct operation of reload. |
| (lq, lq_<mode>, stq, stq_<mode>): Remove. |
| |
| 2006-12-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de> |
| |
| PR c++/30021 |
| * c-common.c (check_main_parameter_types): Check for error_mark_node. |
| |
| 2006-12-01 Andrew MacLeod <amacleod@redhat.com> |
| |
| * common.opt (ftree-combine-temps): Remove. |
| * tree-outof-ssa.c (SSANORM_COMBINE_TEMPS): Remove. |
| (coalesce_ssa_name): Don't check for combine-temps. |
| (coalesce_vars): Remove. |
| (check_replaceable): Use num_imm_uses. |
| (remove_ssa_form, insert_backedge_copies, rewrite_out_of_ssa): Don't |
| check for combine-temps. |
| (rewrite_out_of_ssa): Never create a ref_count in the var_map. |
| * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Change parms |
| to register_ssa_partition calls. |
| * tree-ssa-live.c (register_ssa_partition): Remove prototype. |
| (init_var_map, delete_var_map): remove refernces to ref_count. |
| (create_ssa_var_map): Never calculate a ref count. |
| (type_var_init): Remove. |
| * tree-ssa-live.h (typedef struct _var_map): Remove ref_count. |
| (SSA_VAR_MAP_REF_COUNT): Delete. |
| (create_ssa_var_map): Change Prototype to have no parameters. |
| (version_ref_count): Delete. |
| (register_ssa_partition): Remove 'is_use' paramater and don't set the |
| ref_count vector. |
| (type_var_num, type_var, type_var_first_partition, |
| type_var_next_partition, type_var_dump, type_var_delete, |
| type_var_remove_partition, type_var_find, type_var_compact, |
| type_var_decompact): Remove. |
| |
| 2006-12-01 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin.md (pushsi_insn, popsi_insn): Set correct addrtype |
| attribute. |
| |
| 2006-12-01 Richard Guenther <rguenther@suse.de> |
| |
| PR c++/29433 |
| * dwarf2out.c (struct pubname_struct): Make name const. |
| (add_pubtype): Do not xstrdup identifiers. |
| |
| 2006-12-01 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin.c (bfin_valid_add): Fix the logic that ensures |
| multiword accesses are in range. |
| |
| 2006-12-01 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| PR tree-optimization/29921 |
| * tree-ssa-ccp.c (canonicalize_float_value): New function. |
| (set_lattice_value): Use canonicalize_float_value. |
| |
| 2006-11-30 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| * config/spu/spu.c (spu_builtin_range): Move from spu-c.c |
| (TARGET_RESOLVE_OVERLOADED_BUILTIN): Delete. |
| (spu_cpu_cpp_builtins): Remove. |
| (spu_override_options): Don't set warn_main. |
| (spu_force_reg): Move from spu-c.c. |
| (spu_check_builtin_parm): Likewise. |
| (expand_builtin_args): Likewise. |
| (spu_expand_builtin_1): Likewise. |
| (spu_expand_builtin): Likewise. |
| * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Define, set |
| warn_main and targetm.resolve_overloaded_builtin. |
| * config/spu/spu-c.c (spu_builtin_range): Remove. |
| (spu_check_builtin_parm): Remove. |
| (expand_builtin_args): Remove. |
| (spu_expand_builtin_1): Remove. |
| (spu_expand_builtin): Remove. |
| (spu_cpu_cpp_builtins): Moved from spu.c |
| (spu_force_reg): Remove. |
| |
| 2006-12-01 Joseph Myers <joseph@codesourcery.com> |
| David Edelsohn <edelsohn@gnu.org> |
| |
| PR target/24036 |
| * doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING, |
| HARD_REGNO_NREGS_WITH_PADDING): Document new target macros. |
| * defaults.h (HARD_REGNO_NREGS_HAS_PADDING, |
| HARD_REGNO_NREGS_WITH_PADDING): Define. |
| * config/i386/i386.h (HARD_REGNO_NREGS_HAS_PADDING, |
| HARD_REGNO_NREGS_WITH_PADDING): Define. |
| * rtlanal.c (subreg_regno_offset, subreg_offset_representable_p): |
| Use new macros to detect modes with holes; do not look at integer |
| units. |
| (subreg_offset_representable_p): Check for and disallow cases |
| where the modes use different numbers of bits from registers. |
| * config/rs6000/rs6000.c (rs6000_emit_move): Handle TFmode |
| constant for soft-float. |
| (rs6000_hard_regno_nregs): Use UNITS_PER_FP_WORD for e500 GPRs |
| containing doubles. |
| (rs6000_split_multireg_move): Use DFmode reg_mode for TFmode moves |
| in E500 double case. |
| * config/rs6000/rs6000.md (movtf): Allow soft-float. |
| (movtf_softfloat): New. |
| |
| 2006-11-30 Richard Sandiford <richard@codesourcery.com> |
| |
| * simplify-rtx.c (simplify_rtx): Use simplify_subreg rather than |
| simplify_gen_subreg. |
| |
| 2006-11-30 Andrew Macleod <amacleod@redhat.com> |
| |
| * tree-ssa-live.c (create_coalesce_list): Create a hash table. |
| (COALESCE_HASH_FN): New. Define hash function. |
| (partition_pair_map_hash): New. Hash value for a partition pair. |
| (partition_pair_map_eq): New. Equality for hash pairs. |
| (create_coalesce_list): Create hash table. |
| (delete_coalesce_list): Free hash table. |
| (find_partition_pair): Find/create pairs in hash table. |
| (compare_pairs): Sort pairs in ascending order now. |
| (num_coalesce_pairs): New. Number of pairs in hash table. |
| (struct partition_pair_iterator): Iterator struct for pair table. |
| (first_partition_pair): Iterator function for first pair. |
| (end_partition_pair_p): Iterator function for end of iteration. |
| (next_partition_pair): Iterator function for next pair. |
| (FOR_EACH_PARTITION_PAIR): Macro for iterating over pairs. |
| (sort_coalesce_list): Sort pairs from hash table into an array. |
| (pop_best_coalesce): Take pairs from the array. |
| (dump_coalesce_list): Update to use hash table or sorted array. |
| * tree-ssa-live.h (struct partition_pair_d): Remove next field. |
| (struct coalesce_list_d): Add hash table related fields. |
| |
| 2006-11-30 Jan Hubicka <jh@suse.cz> |
| |
| PR middle-end/30028 |
| * builtins.c (fold_builtin_memory_op): Fix typo in the check for |
| memmove/bcopy->memcpy conversion. |
| |
| 2006-11-30 Carlos O'Donell <carlos@codesourcery.com> |
| |
| * doc/tm.texi (MAX_OFILE_ALIGNMENT): Document default. |
| * config/elfos.h [!MAX_OFILE_ALIGNMENT] (MAX_OFILE_ALIGNMENT): |
| Default is the largest alignment supported for 32-bit ELF and |
| representable on a 32-bit host. |
| |
| 2006-11-30 Janis Johnson <janis187@us.ibm.com> |
| |
| * config/dfp-bit.c (DFP_TO_INT): Use wider precision. |
| |
| 2006-11-30 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-operands.h (struct ssa_operands): New. |
| * tree-flow-inline.h (gimple_ssa_operands): New function. |
| * tree-flow.h: (struct gimple_df): Add ssa_operands. |
| * Makefile.in: Remove gt-tree-ssa-operands.h |
| * tree-ssa-operands.c: Do not include gt-tree-ssa-operands.h |
| (free_defs, free_uses, free_vuses, free_maydefs, free_mustdefs, |
| operand_memory, operand_memory_index, ops_active): Remove statics. |
| (ALLOC_OPTYPE): Update. |
| (operand_build_sort_virtual): Update. |
| (ssa_operands_active): Update. |
| (init_ssa_operands): Update. |
| (fini_ssa_operands): Update. |
| (ssa_operand_alloc): Update. |
| (INITIALIZE_USE): Update. |
| (finalize_ssa_use_ops): Update. |
| (finalize_ssa_v_may_def_ops): Update. |
| (finalize_ssa_vuse_ops): Update. |
| (finalize_ssa_v_must_def_ops): Update. |
| |
| 2006-11-30 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vectorizable_function): Export. |
| * tree-vect-transform.c (vectorizable_function): Likewise. |
| * tree-vect-patterns.c (vect_recog_pow_pattern): Set |
| type_in to scalar type in recognition of squaring. |
| Make sure the target can vectorize sqrt in recognition |
| of sqrt, set type_in to vector type in this case. |
| |
| 2006-11-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (R10_REG): New constant. |
| * config/i386/i386.c (pro_epilogue_adjust_stack): Use R11_REG. |
| (ix86_emit_restore_regs_using_mov): Ditto. |
| (ix86_expand_call): Ditto. |
| (x86_output_mi_thunk): Ditto. Also use R10_REG. |
| |
| 2006-11-30 Steven Bosscher <steven@gcc.gnu.org> |
| |
| * cselib.c (cselib_init): Use special MEM rtx form for callmem. |
| * alias.c (canon_true_dependence): Update comment. |
| |
| 2006-11-30 Steven Bosscher <steven@gcc.gnu.org> |
| |
| * cgraphunit.c (cgraph_finalize_compilation_unit): Add a newline |
| at the end of a diagnostics message. |
| |
| * alloc-pool.c (pool_free): Postpone clearing the pool entry |
| until after asserting that it was allocated in the right pool. |
| |
| * cfgrtl.c (print_rtl_with_bb): Print predecessor and |
| successor edge information as well. Make output of live regs |
| on exit consistent with live regs on entry. |
| |
| 2006-11-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/29852 |
| * config/i386/i386.md (*truncxfsf2_mixed, *truncxfdf2_mixed): Enable |
| insn patterns for TARGET_80387. |
| (*truncxfsf2_i387, *truncxfdf2_i387): Remove. |
| (*truncxfsf2_i387_1): Rename to *truncxfsf2_i387. |
| (*truncxfdf2_i387_1): Rename to *truncxfdf2_i387. |
| (fmod<mode>3, remainder<mode>3): Enable expaders for SSE math. |
| Generate truncxf<mode>2 insn patterns for strict SSE math. |
| |
| 2006-11-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (movsf_1): Enable pattern for standard |
| 80387 constants before reload when optimizing for size. |
| (*movdf_nointeger, *movdf_integer): Ditto. |
| (*movxf_nointeger, *movxf_integer): Disable patterns for standard |
| 80387 constants before reload when not optimizing for size. |
| |
| (*fop_xf_4_i387, *fop_xf_5_i387, *fop_xf_6_i387): Avoid float |
| extension of XFmode input operands. |
| |
| 2006-11-29 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| * config/spu/crt0.c (__dso_handle): Define. |
| |
| 2006-11-30 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * emit-rtl.c (verify_rtl_sharing): Handle SEQUENCE specially |
| when clearing the used flags. |
| |
| 2006-11-29 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| * config/spu/spu.md (extend_compare): Fix whitespace formatting. |
| |
| 2006-11-29 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR target/29945 |
| * config/spu/spu.md (extend_compare<mode>): New pattern. |
| (extend_compare): Change to expand and use the above pattern. |
| |
| 2006-11-29 Janis Johnson <janis187@us.ibm.com> |
| |
| * config/dfp-bit.c (DFP_TO_INT): Fix rounding mode. |
| |
| * config/dfp-bit.h (CONTEXT_ROUND): Delete. |
| (DFP_INIT_ROUNDMODE): Define. |
| * config/dfp-bit.c: Replace CONTEXT_ROUND with DFP_INIT_ROUNDMODE. |
| * mklibgcc.in: Fix dependencies for dfp-bit.c. |
| |
| 2006-11-29 Tehila Meyzels <tehila@il.ibm.com> |
| |
| * haifa-sched.c: Remove define LINE_NOTE(INSN). Remove line_note_head. |
| Update documentation. |
| (associate_line_notes_with_blocks): Kill. |
| (extend_bb): Remove basic block argument, put void instead. |
| Remove line number handling for each bb. |
| (save_line_notes): Kill. |
| (restore_line_notes): Kill. |
| (sched_init): Remove line_note_head initialization. |
| Change extend_bb call. |
| (sched_finish): Remove free of line_note_head. |
| (add_block): Change extend_bb call. |
| * sched-ebb.c (schedule_ebb): Remove save_line_notes, |
| rm_line_notes and restore_line_notes calls. |
| (schedule_ebbs): Remove rm_redundant_line_notes. |
| * sched-int.h (struct haifa_insn_data): Remove line_note. |
| (save_line_notes): Remove declaration. |
| (restore_line_notes): Remove declaration. |
| * modulo-sched.c (loop_canon_p): Update debug info printing |
| by using insn locators instead of line note. |
| (sms_schedule): Update debug info printing, by using insn |
| locators instead of line note. |
| * sched-rgn.c (debug_dependencies): Remove handling of case |
| n>0 (line number), since it's a dead code. |
| (schedule_region): Remove save_line_notes and |
| restore_line_notes calls. |
| |
| 2006-11-29 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rs6000/predicates.md (gpc_reg_operand): Check |
| invalid_e500_subreg. |
| * config/rs6000/rs6000.c (invalid_e500_subreg): Don't allow any |
| SImode subregs of SPE vectors. |
| * config/rs6000/rs6000.md (insv): Fail for invalid E500 subregs. |
| * jump.c (true_regnum): Require subregs to satisfy |
| subreg_offset_representable_p. |
| |
| 2006-11-29 Daniel Berlin <dberlin@dberlin.org> |
| Steven Bosscher <stevenb.gcc@gmail.com> |
| |
| * Makefile.in (tree-ssanames.o): Remove gt-tree-ssanames.h, |
| since it no longer exists. |
| |
| 2006-11-29 Duncan Sands <baldrick@free.fr> |
| |
| PR tree-optimization/23744 |
| * tree-vrp.c (vrp_meet): do not require ranges to intersect. |
| |
| 2006-11-29 Duncan Sands <baldrick@free.fr> |
| |
| PR tree-optimization/23744 |
| * testsuite/gcc.dg/tree-ssa/pr23744.c: new test. |
| |
| 2006-11-29 Duncan Sands <baldrick@free.fr> |
| |
| PR tree-optimization/23744 |
| * testsuite/gcc.dg/tree-ssa/update-threading.c: xfail. |
| |
| 2006-11-29 Jie Zhang <jie.zhang@analog.com> |
| |
| * doc/tm.texi (NO_PROFILE_COUNTERS): Document more accurately. |
| |
| 2006-11-29 J"orn Rennecke <joern.rennecke@st.com> |
| |
| * sh.opt (minline-ic_invalidate): New option. |
| (musermode): Adjust comment. |
| * sh.c (sh_initialize_trampoline): Emit library call unless |
| is set; if it is set, don't emit library call if we can use icbi |
| instead. |
| * sh.md (ic_invalidate_line, ic_invalidate_line_sh4a): Also use |
| icbi for TARGET_SH4_300. |
| * t-sh (LIB1ASMFUNCS_CACHE): Set. |
| * doc/invoke.texi: Document -minline-ic_invalidate; Update |
| -musermode documentation. |
| |
| 2006-11-29 Jim Tison <jtison@us.ibm.com> |
| |
| * gthr-tpf.h (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION, |
| __gthread_recursive_mutex_init): Define. |
| |
| 2006-11-29 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): If |
| STRICT_ALIGNMENT and the type is more aligned than the saved |
| registers, copy via a temporary. |
| |
| 2006-11-28 Andrew Pinski <pinskia@gmail.com> |
| |
| PR tree-opt/29984 |
| * tree-ssa-reassoc.c (eliminate_duplicate_pair): Handle MAX_EXPR |
| and MIN_EXRP. |
| |
| 2006-11-28 Bob Wilson <bob.wilson@acm.org> |
| |
| * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a12-a15 on exit. |
| |
| 2006-11-28 Jan Hubicka <jh@suse.cz> |
| |
| Privatize SSA variables into gimple_df. |
| * tree-flow-inline.h |
| (gimple_in_ssa_p, gimple_aliases_computed_p, gimple_addressable_vars, |
| gimple_call_clobbered_vars, gimple_referenced_vars, gimple_global_var, |
| gimple_nonlocal_all): New accessors. |
| (first_referenced_var): Update. |
| (mark_stmt_modified): Update. |
| (is_call_clobbered): Update. |
| (mark_call_clobbered): Update. |
| (clear_call_clobbered): Update. |
| (mark_non_addressable): Update. |
| * tree-vrp.c (get_value_range): Update. |
| * tree-into-ssa.c (in_ssa_p): Kill. |
| (get_default_def_for): Update. |
| (rewrite_into_ssa): Update. |
| * tree-complex.c (init_parameter_lattice_values): Update. |
| (update_complex_assignment): Update. |
| (update_parameter_components): Update. |
| (expand_complex_libcall): Update. |
| (expand_complex_operations_1): Update. |
| * tree-tailcall.c (arg_needs_copy_p): Update. |
| (add_virtual_phis): Update. |
| (tree_optimize_tail_calls_1): Update. |
| * tree-ssa-dse.c (memory_ssa_name_same): Update. |
| * tree-ssa-copyrename.c |
| (copy_rename_partition_coalesce): Update. |
| * tree-ssa-math-opts.c (execute_cse_reciprocals): Update. |
| * tree-ssa-propagate.c (set_rhs): Update. |
| * tree-ssa-alias.c (aliases_computed_p, call_clobbered_vars, |
| addressable_vars, global_var):Kill. |
| (set_initial_properties): Update. |
| (init_alias_info): Update. |
| (finalize_ref_all_pointers): Update. |
| (setup_pointers_and_addressables): Update. |
| (maybe_create_global_var): Update. |
| (create_global_var): Update. |
| (dump_points_to_info): Update. |
| * function.h (struct gimple_df): Forward declare. |
| (struct function): Add GIMPLE_DF field. |
| * gimplify.c (force_gimple_operand): Update. |
| * tree-dfa.c (referenced_vars, default_defs): KIll. |
| (make_rename_temp): Update. |
| (dump_variable): Update. |
| (referenced_var_lookup): Update. |
| (referenced_var_check_and_insert): Update. |
| (default_def): Rename to ... |
| (gimple_default_def): ... this one; accept cfun argument. |
| (set_default_def): Update. |
| * tree-cfgcleanup.c (modified_noreturn_calls): Kill. |
| (cleanup_control_flow): Update. |
| * tree-ssa-pre.c (compute_avail): Update |
| * tree-ssa-live.c (calculate_live_on_entry): Update. |
| * tree-ssa.c (verify_use): Update. |
| (verify_call_clobbering): Update. |
| (verify_call_clobbering): Update. |
| (init_tree_ssa): Update. |
| (delete_tree_ssa): Update. |
| * tree-outof-ssa.c (coalesce_ssa_name): Update. |
| (rewrite_out_of_ssa): Update. |
| * tree-flow.h (gimple_df): New structure collecting dataflow variables. |
| (FREE_SSANAMES, SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS): New |
| private accessors. |
| (in_ssa_p, modified_noreturn_calls, referenced_vars, default_defs, |
| ssa_names, global_var, nonlocal_all, call_clobbered_vars, |
| addressable_vars, aliases_computed_p): Kill. |
| (default_def): Rename to... |
| (gimple_default_def): ... this one. |
| (defaule_def_fn): Kill. |
| (num_referenced_vars, ssa_names, num_ssa_names): Update. |
| * tree-ssa-structalias.c (nonlocal_all): Kill. |
| (get_constraint_exp_from_ssa_var): Update. |
| (create_nonlocal_var): Update. |
| (get_constraint_for): Update. |
| (update_alias_info): Update. |
| (find_global_initializers): Update. |
| (intra_create_variable_infos): Update. |
| (intra_create_variable_infos): |
| (find_what_p_points_to): Update. |
| (init_alias_heapvars): Update. |
| * tree-cfg.c (remove_bb): Update. |
| (gimplify_val): Update. |
| * tree-ssa-reassoc.c (get_rank): Update. |
| (init_reassoc): Update. |
| * tree-ssanames.c: Do not include gt-tree-ssanames.h |
| (ssa_names, free_ssanames): Kill. |
| (init_ssanames): Update. |
| (make_ssa_name): Update. |
| (release_ssa_name): Update. |
| (release_defs): Update. |
| (replace_ssa_name_symbol): Update. |
| * tree-ssa-operands.c (access_can_touch_variable): Update. |
| (add_virtual_operand): Update. |
| (add_call_clobber_ops): Update. |
| (add_call_read_ops): Update. |
| (get_call_expr_operands): Update. |
| (get_asm_expr_operands): Update. |
| |
| 2006-11-28 Jan Hubicka <jh@suse.cz> |
| |
| * builtins.c: Include tree-flow.h. |
| (fold_builtin_memory_op): Be more aggressive on converting memcpy to |
| assignment; convert memmove to memcpy for sizes greater than 1 where |
| alignment of operands prohibit the partial overlap. |
| |
| 2006-11-28 Jan Hubicka <jh@suse.cz> |
| |
| * invoke.texi (large-stack-frame, large-stack-frame-growth): New params. |
| * cgraph.c (dump_cgraph_node): Dump stack usage. |
| * cgraph.h (cgraph_local_info): Add estimated_self_stack_size. |
| (cgraph_global_info): Add estimated_stack_size and stack_frame_offset. |
| * cgraphunit.c (cgraph_analyze_function): Analyze stack sizes. |
| * ipa-inline.c (cgraph_clone_inlined_nodes): Propagate stack usage. |
| (cgraph_check_inline_limits): Limit stack growth. |
| * cfgexpand.c: Include tree-inline.h. |
| (account_stack_vars): New function. |
| (expand_one_var): New param to just account the stack; return estimated |
| size. |
| (expand_used_vars_for_block): Update call of expand_one_var. |
| (account_used_vars_for_block): New function. |
| (estimated_stack_frame_size): Likewise. |
| (init_vars_expansion, fini_vars_expansion): Break out from.. |
| (expand_used_vars): ... here. |
| * tree-inline.h (estimated_stack_frame_size): Declare. |
| * params.def (PARAM_LARGE_STACK_FRAME, PARAM_STACK_FRAME_GROWTH): New. |
| |
| 2006-11-28 Richard Guenther <rguenther@suse.de> |
| |
| * ggc-page.c (ggc_print_statistics): Use %ul and a cast to |
| unsigned long for printing OBJECT_SIZE. |
| |
| 2006-11-27 Steven Bosscher <steven@gcc.gnu.org> |
| |
| * alias.c (init_alias_analysis): Remove simplification loop |
| after propagating pointers. |
| |
| 2006-11-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (x86_ext_80387_constants): Add m_K8, m_CORE2 |
| and m_GENERIC64. |
| |
| 2006-11-27 Bob Wilson <bob.wilson@acm.org> |
| |
| * config/xtensa/xtensa.h (XCHAL_HAVE_MUL32_HIGH): Provide default. |
| |
| 2006-11-27 Roger Sayle <roger@eyesopen.com> |
| Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| * c-common.c (constant_fits_type_p): Delete. |
| (unsigned_conversion_warning): Delete. |
| (conversion_warning): Integrate Wconversion warning from |
| unsigned_conversion_warning. |
| (convert_and_check): Integrate Woverflow warning from |
| unsigned_conversion_warning. Reorganize and simplify to avoid |
| dependence upon the middle-end setting TREE_OVERFLOW on integral |
| conversions, by using int_fits_type_p directly. |
| |
| 2006-11-27 Tobias Burnus <burnus@net-b.de> |
| |
| * doc/invoke.texi: Fixed typo. |
| |
| 2006-11-27 Michael Matz <matz@suse.de> |
| Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| PR target/29319 |
| * config/s390/predicates.md (larl_operand): Check addend of larl |
| operand to be in range of -/+2GB. |
| * config/s390/s390.c (legitimize_pic_address): Likewise. |
| Changed type of variable even to HOST_WIDE_INT. |
| |
| 2006-11-27 Jan Hubicka <jh@suse.cz> |
| |
| * expr.c (emit_block_move_via_libcall): Export. |
| (clear_storage_via_libcall): Rename to ... |
| (set_storage_via_libcall): ... this one; handle arbitrary value to set. |
| (clear_storage): Update to set_storage_via_libcall. |
| * expr.h (emit_block_move_via_libcall): Declare |
| * config/i386/i386.h (stringop_alg): New enum. |
| (MAX_STRINGOP_ALGS): New constant. |
| (stringop_algs): New struct. |
| (processor_costs): Add memcpy/memset descriptors. |
| (TARGET_REP_MOVEL_OPTIMAL): Remove. |
| * config/i386/i386.md (movsi_insv_1_rex64): New pattern. |
| (strmovsi, strmovdi, strsetsi, strsetdi): Update; accept all operands |
| for memset. |
| * config/i386/i386.opt (minline-stringops-dynamically, |
| mstringop-strategy): New |
| parameters. |
| * config/i386/i386-prostos.h (ix86_expand_movmem): Update prototype. |
| (ix86_expand-clrmem): Rename to ... |
| (ix86_expand_setmem): ... this one; update prototype. |
| * config/i386/i386.c (DUMMY_STRINGOP_ALGS): New constant. |
| (size_cost, i386_cost, i486_cost, pentium_cost, pentiumpro_cost, |
| geode_cost, k6_cost, athlon_cost, k8_cost, pentium4_cost, |
| nocona_cost, core2_cost, generic_cost, generic64_cost, |
| generic32_cost): Add memcpy/memset descriptors. |
| (x86_rep_movl_optimal): Remove. |
| (stringop_alg): New static variable. |
| (ix86_expand_aligntest): Handle predictions. |
| (override_options): Add strgop_alg handling. |
| (predict_jump): New function. |
| (scale_counter): New function. |
| (expand_set_or_movmem_via_loop): New function. |
| (expand_movmem_via_rep_mov): New function. |
| (expand_setmem_via_rep_stots): New function. |
| (emit_strmov): New function. |
| (expand_movmem_epilogue): New function. |
| (expand_setmem_epilogue_via_loop): New function. |
| (expand_setmem_epilogue): New function. |
| (expand_movmem_prologue): New function. |
| (expand_setmem_prologue): New function. |
| (decide_alg): New function. |
| (decide_alignment): New function. |
| (ix86_exand_movmem): Rewrite. |
| (promote_duplicated_reg): New function. |
| (ix86_expand_clrmem): Rename to ... |
| (ix86_expand_setmem): ... this one. Rewrite. |
| |
| * invoke.texi (minline-stringops-dynamically): New command line option. |
| (mstringop-strategy): Likewise. |
| |
| 2006-11-27 Jan Hubicka <jh@suse.cz> |
| |
| * cfgexpand.c (construct_exit_block): Don't disturb end of last BB. |
| * rtl.texi (NOTE_INSN_FUNCTION_END): Remove. |
| * final.c (final_scan_insn): Don't scan NOTE_INSN_FUNCTION_END. |
| * insn-notes.def (FUNCTION_END): Remove. |
| * jump.c (delete_related_insns): Don't worry about FUNCTION_END. |
| (redicect_jump_2): Don't accept -1 parameter to remove FUNCTION_END |
| note. |
| * ifcvt.c (dead_or_predictable): Update call of redirect_jump_2. |
| * function.c (expand_function_end): Don't emit NOTE_INSN_FUNCTION_END |
| * cfglayout.c (duplicate_insn_chain): Don't worry about |
| NOTE_FUNCTION_END. |
| |
| 2006-11-27 Richard Guenther <rguenther@suse.de> |
| Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * target.h (struct gcc_target): Add builtin_vectorized_function |
| target hook. |
| * target-def.h (TARGET_VECTORIZE): Likewise. |
| * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): |
| Document new target hook. |
| * targhooks.h (default_builtin_vectorized_function): Declare. |
| * targhooks.c (default_builtin_vectorized_function): Define. |
| * tree-vectorizer.h (stmt_vec_info_type): Add call_vec_info_type. |
| (vectorizable_call): Declare. |
| * tree-vect-analyze.c (vect_analyze_operations): Call |
| vectorizable_call. |
| * tree-vect-transform.c (vectorizable_function): New static function. |
| (build_vectorized_function_call): Likewise. |
| (vectorizable_call): New function. |
| (vect_transform_stmt): Handle vectorizable calls. |
| |
| 2006-11-27 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/25620 |
| * builtins.c (expand_builtin_pow): Optimize non integer valued |
| constant exponents using sqrt or cbrt if possible. Always fall back |
| to expanding via optabs. |
| |
| 2006-11-27 Ira Rosen <irar@il.ibm.com> |
| |
| PR tree-optimization/22372 |
| * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Convert |
| the type of the base address. |
| (vect_create_data_ref_ptr): Add an argument, type of the data-ref. Use |
| it in the data-ref pointer creation. |
| (vect_init_vector): Add an argument, type of the init vector. Use it in |
| the stmt creation. |
| (vect_get_vec_def_for_operand): Fix calls to vect_init_vector. |
| (get_initial_def_for_reduction): Likewise. |
| (vect_create_epilog_for_reduction): Change type of MODIFY_EXPR to |
| void_type_node. |
| (vectorizable_assignment, vect_permute_store_chain): Likewise. |
| (vectorizable_store): Fix call to vect_create_data_ref_ptr. Use the |
| correct type in stmt creation. |
| (vect_setup_realignment): Use the correct type in stmt creation. |
| (vect_permute_load_chain): Change type of MODIFY_EXPR to |
| void_type_node. |
| (vectorizable_load): Fix calls to vect_create_data_ref_ptr. Change type |
| of MODIFY_EXPR to void_type_node. |
| (vectorizable_condition): Change type of MODIFY_EXPR to |
| void_type_node. |
| (vect_update_ivs_after_vectorizer): Use the correct type in stmt |
| creation. |
| |
| 2006-11-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| Revert: |
| 2006-05-08 Uros Bizjak <uros@kss-loka.si> |
| * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For |
| standard 80387 constants, raise the cost to prevent |
| compress_float_constant() to generate load from memory. |
| |
| * config/i386/i386.md: Add new splitter pattern to split |
| float_extended load of constant from constant pool into |
| pure constant load. |
| |
| 2006-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * doc/install.texi: Move GMP/MPFR configure options from Fortran |
| section to general section. Remove documentation for |
| --with-mpfr-dir and --with-gmp-dir, add documentation for |
| --with-mpfr-include, --with-mpfr-lib, --with-gmp-include and |
| --with-gmp-lib. |
| |
| * builtins.c (fold_builtin_fmin_fmax): Handle NaN arguments. |
| |
| 2006-11-26 Razya Ladklesky <razya@il.ibm.com> |
| |
| * testsuite/gcc.dg/ipa/ipa-6.c: New. |
| |
| 2006-11-26 Razya Ladklesky <razya@il.ibm.com> |
| |
| PR tree-optimization/29122 |
| * tree-inline.c (tree_function_versioning): Update DECL_ASSEMBLER_NAME |
| for the new version. Assign NULL to DECL_RTL of the new version. |
| |
| 2006-11-25 Uros Bizjak <ubizjak@gmail.com> |
| |
| * reg-stack.c (get_true_reg): Fix UNSPEC_TRUNC_NOOP handling. |
| |
| 2006-11-25 Steven Bosscher <steven@gcc.gnu.org> |
| |
| * cse.c (cse_altered): Remove. |
| (record_jump_equiv): Make true/false argument a bool instead |
| of an int. |
| (cse_insn): Don't set cse_altered. Use delete_insn_and_edges |
| where appropriate. Emit a new jump before the existing one |
| instead of after so that delete_insn_and_edges removes the |
| dead edges properly. Check any_condjump_p before calling |
| record_jump_equiv. |
| (cse_basic_block): Check any_condjump_p before calling |
| record_jump_equiv. |
| (cse_main): Don't set/check cse_altered. Remove USE_C_ALLOCA. |
| |
| 2006-11-25 Brooks Moses <brooks.moses@codesourcery.com> |
| |
| * c.opt: Remove -ffixed-form, -ffixed-line-length-none, and |
| -ffixed-line-length-* options. |
| |
| 2006-11-25 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (fpremxf4): Rename to fpremxf4_i387. |
| (fprem1xf4): Rename to fprem1xf4_i387. |
| |
| (fmodsf3, fmoddf3): Macroize patterns using X87MODEF12 mode macro. |
| Rename patterns to fmod<mode>3. Use general_operand operand |
| constraint for operands 1 and 2. Use SSE_FLOAT_MODE_P to disable |
| patterns for SSE math. |
| (remaindersf3, remainderdf3): Ditto. |
| |
| 2006-11-25 Joseph Myers <joseph@codesourcery.com> |
| |
| * function.c (instantiate_virtual_regs_in_insn): Call force_reg |
| inside start_sequence / end_sequence pair. |
| |
| 2006-11-25 Steven Bosscher <steven@gcc.gnu.org> |
| |
| * jump.c (mark_all_labels): Work in cfglayout mode. |
| * cfgcleanup.c (cleanup_cfg): Do not call delete_dead_jumptables |
| when in cfglayout mode, because there are no dead jumptables |
| visible. |
| * cfgrtl.c (commit_one_edge_insertion): Don't set bb->aux when |
| in cfglayout mode. |
| (commit_edge_insertions): Do not allow insertion of instructions |
| with control flow insns when in cfglayout mode. |
| |
| 2006-11-25 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * tree-vrp.c (execute_vrp): Do not pass loops structure through |
| arguments. |
| * loop-unswitch.c (unswitch_loops, unswitch_single_loop, |
| unswitch_loop): Ditto. |
| * tree-loop-linear.c (linear_transform_loops): Ditto. |
| * tree-ssa-loop-im.c (determine_lsm, tree_ssa_lim_initialize, |
| tree_ssa_lim): Ditto. |
| * tree-ssa-loop-niter.c (estimate_numbers_of_iterations, |
| free_numbers_of_iterations_estimates): Ditto. |
| * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops, |
| tree_unsw
|