OSDN Git Service

contrib:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 215f0b2..444f342 100644 (file)
@@ -1,3 +1,317 @@
+2008-04-01  Joseph Myers  <joseph@codesourcery.com>
+
+       * doc/include/gpl_v3.texi: Update for manpage generation.
+       * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
+       gpl.texi.
+       * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
+       * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
+       gpl_v3.texi instead of gpl.texi.
+       (gpl.pod): New.
+
+2008-04-01  Jakub Jelinek  <jakub@redhat.com>
+
+       PR pch/13675
+       * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
+
+2008-04-01  Rafael Espindola  <espindola@google.com>
+
+       * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
+       (extract_code_and_val_from_cond): Use
+       extract_code_and_val_from_cond_with_ops.
+
+2008-04-01  Jan Hubicka  <jh@suse.cz>
+
+       * function.c (free_after_compilation): Free epilogue_delay_list.
+       (prepare_function_start): Assert that previous compilation was freed.
+
+2008-04-01  Jan Hubicka  <jh@suse.cz>
+           Jim Wilson  <wilson@tuliptree.org>
+           Andreas Tobler <andreast@gcc.gnu.org>
+
+       PR middle-end/35781
+       * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
+       rtl.emit instead cfun->emit.
+       * sparc/sparc.h (INIT_EXPANDERS): Likewise.
+       * ia64/ia64.h (INIT_EXPANDERS): Likewise.
+
+2008-04-01  Ben Elliston  <bje@au.ibm.com>
+
+       * doc/c-tree.texi (Function Basics): Fix grammatical error.
+
+2008-03-31  Seongbae Park <seongbae.park@gmail.com>
+
+       * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
+       New options
+       (fprofile-use): Add var flag_profile_use
+       * coverage.c (coverage_begin_output): Do not open a gcno file for output
+       only if -ftest-coverage is set.
+       Do not add getpwd() to gcda file path.
+       (build_gcov_info): Check the new flag 
+       flag_profile_datafile_relative_path.
+       (coverage_init): Use profile_data_prefix.
+       Read profile counter only if flag_profile_use is set.
+       * opts.c (common_handle_option): New option fprofile-use=,
+       fprofile-dir=, fprofile-generate=.
+       * toplev.c (profile_data_prefix): New variable definition.
+       * toplev.h (profile_data_prefix): New declaration.
+       * doc/invoke.tex (Option Summary, Optimization Options):
+       Add new options.
+
+2008-03-31  James E. Wilson  <wilson@tuliptree.org>
+
+       * varasm.c (output_constant_pool_1): In LABEL_REF check, use tmp
+       consistently.
+
+       PR target/35695
+       * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
+       * config/ia64/ia64.c (rtx_needs_barrier): Handle
+       UNSPEC_FR_RECIP_APPROX_RES.
+       * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
+
+2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
+
+       PR c/35750
+       * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
+
+2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR middle-end/30186
+       * fold-const.c (fold_indirect_ref_1): Support accessing non first
+       element of the vector via a pointer.
+
+2008-03-31  Ian Lance Taylor  <iant@google.com>
+
+       * tlink.c (scan_linker_output): Look for symbol name in single
+       quotes.
+
+2008-03-31  Jan Hubicka  <jh@suse.cz>
+
+       * builtins.c (expand_builtin_setjmp_receiver): Update call of
+       get_arg_pointer_save_area.
+       * expr.c (init_expr): Just clear out rtl.expr.
+       * function.c (free_after_compilation): Clear out whole RTL structure.
+       (get_func_frame_size): Merge into ...
+       (get_frame_size): ... this one.
+       (assign_stack_local_1): Merge into ...
+       (assign_stack_local): ... this one.
+       (expand_function_end): Update call of get_arg_pointer_save_area.
+       (get_art_pointer_save_area): Remove cfun argument.
+       * function.h (emit_status): regno_pointer_align does not need length
+       attribute. Move x_regno_reg_rtx to ...
+       (regno_reg_rtx): ... new global array.
+       (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
+       (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
+       apply_args_value, forced_labels, stack_pointer_delta): Update accestors.
+       (struct varasm_status): Move here from varasm.c
+       (struct rtl_data): New. Move here some fields from struct function.
+       (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
+       frame_offset, stack_check_probe_note, arg_pointer_save_area,
+       used_temp_slots avail_temp_slots, temp_slot_level,
+       nonlocal_goto_handler_labels): Update accesstors.
+       (rtl): New global variable.
+       (struct function): Move some fileds to rtl_data.
+       (get_arg_pointer_save_area): Update prototype.
+       * emit-rtl.c (rtl): Declare.
+       (regno_reg_rtx): Declare.
+       (first_insn, last_insn, cur_insn_uid, last_location, first_label_num): Update.
+       (gen_reg_rtx): Update.
+       (init_virtual_regs): Do not tate emit_status argument.
+       (init_emit): Do not allocate emit.
+       * varasm.c (varasm_statuc): Move to function.h.
+       (n_deferred_constatns): Update accestor.
+       (init_varasm_status): Do not allocate varasm_status.
+       (force_const_mem, get_pool_size, output_constant_pool): Update.
+       * stmt.c (force_label_rtx): Do not use x_ prefixes.
+       (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
+
+2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
+
+       PR rtl-optimization/35729
+       * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
+       references.
+
+2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/32000
+       * config/i386/i386.md (*movti_internal): Emit unaligned SSE
+       load/store if memory is unaligned.
+       (*movti_rex64): Likewise.
+
+       * config/i386/predicates.md (misaligned_operand): New.
+
+2008-03-31  Andrew Pinski  <pinskia@gmail.com>
+
+       PR tree-opt/35431
+       * tree-ssa-phiopt.c (conditional_replacement): Return early for
+       complex types.
+
+2008-03-31  Jan Beulich  <jbeulich@novell.com>
+
+       * config/ia64/constraints.md: Add 'j' constraint.
+       * config/ia64/ia64.md (movsi_internal): Add addp4 case.
+       (movdi_internal): Likewise.
+
+2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
+
+       PR c/35748
+       * c-typeck.c (build_c_cast): Skip invalid fields in unions.
+
+2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/35757
+       * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
+       proper error message for the third argument on blendpd and
+       blendps.
+
+       * config/i386/sse.md (blendbits): New.
+       (sse4_1_blendp<ssemodesuffixf2c>): Use it.
+
+2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
+
+2008-03-30  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/31023
+       * fold-const.c (fold_sign_changed_comparison): Do leave
+       conversions to base-types alone.
+
+2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
+       the link register if one altivec register is be saved.
+
+2008-03-30  Ben Elliston  <bje@au.ibm.com>
+
+       * final.c (final_scan_insn): Remove if (0) code.
+
+2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
+
+       * c-parser.c (c_parser_next_token_is_keyword): Simplify.
+
+2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
+       of V4SFmode to ix86_binary_operator_ok.
+
+2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (override_options): Initialize
+       ix86_veclib_handler to ix86_veclibabi_svml when
+       -mveclibabi=svml is used.
+       (ix86_veclibabi_svml): New function for SVML ABI style
+       vectorization support.
+       * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
+
+2008-03-28  Rafael Espindola  <espindola@google.com>
+
+       * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
+       (tree_binary_nonnegative_warnv_p): Make it public.
+       (tree_single_nonnegative_warnv_p): Make it public.
+       (tree_invalid_nonnegative_warnv_p): Make it public.
+       (tree_unary_nonzero_warnv_p): Make it public.
+       (tree_binary_nonzero_warnv_p): Make it public
+       (tree_single_nonzero_warnv_p): Make it public.
+       * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
+       (extract_range_from_binary_expr): Split the expr argument.
+       (extract_range_from_unary_expr): Split the expr argument.
+       (extract_range_from_comparison): Split the expr argument.
+       (extract_range_from_expr): Use the new aux functions.
+       (vrp_evaluate_conditional_warnv): Use
+       vrp_evaluate_conditional_warnv_with_ops.
+       * tree.h (tree_unary_nonzero_warnv_p): Declare.
+       (tree_binary_nonzero_warnv_p): Declare.
+       (tree_single_nonzero_warnv_p): Declare.
+       (tree_expr_nonzero_warnv_p): Declare.
+       (tree_unary_nonnegative_warnv_p): Declare.
+       (tree_binary_nonnegative_warnv_p): Declare.
+       (tree_single_nonnegative_warnv_p): Declare.
+       (tree_invalid_nonnegative_warnv_p): Declare.
+
+2008-03-28  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/30317
+       PR tree-optimization/30911
+       PR tree-optimization/34793
+       * tree-vrp.c (set_and_canonicalize_value_range): New function.
+       (struct assert_locus_d): New member EXPR.
+       (register_new_assert_for): Add EXPR parameter to support
+       ASSERT_EXPR <name, expr OP limit>.
+       (register_edge_assert_for_1): Adjust callers.
+       (find_assert_locations): Likewise.
+       (process_assert_insertions_for): Build condition from expression.
+       (extract_range_from_assert): Handle ASSERT_EXPRs
+       of the form ASSERT_EXPR <name, expr OP limit>.
+       (register_edge_assert_for_2): New helper registering
+       asserts for comparisons.  Recognize range tests of the form
+       (unsigned)i - CST1 OP CST2.
+       (register_edge_assert_for_1): Use it.
+       (register_edge_assert_for): Likewise.
+       (needs_overflow_infinity): Integer sub-types
+       do not need overflow infinities.
+       (vrp_val_is_max): The extreme values of integer sub-types
+       are those of the base type.
+       (vrp_val_is_min): Likewise.
+       * tree.def (ASSERT_EXPR): Document extra allowed conditional
+       expressions.
+
+2008-03-28  Nick Clifton  <nickc@redhat.com>
+
+       * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
+       Return GENERAL_REGS for stack adjustment reloads.
+
+2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR target/31334
+       * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
+       const_vector when all the vectors are constant.
+
+2008-03-27  Bob Wilson  <bob.wilson@acm.org>
+
+       * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
+       comparisons.
+       * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
+       (any_scc_sf): Add uneq, unlt, unle and unordered operators.
+       (scc_sf): New.
+       (s<code>_sf): Use new scc_sf attribute for opcode names.
+
+2008-03-27  Tom Tromey  <tromey@redhat.com>
+
+       * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
+       configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
+       config/spu/t-spu-elf, config/i386/t-interix,
+       config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
+       config/i386/x-darwin, config/i386/x-mingw32,
+       config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
+       config/sh/t-sh, config/sh/t-symbian, config/x-linux,
+       config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
+       config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
+       config/rs6000/x-rs6000, config/rs6000/x-darwin64,
+       config/rs6000/x-darwin, config/rs6000/t-rs6000,
+       config/score/t-score-elf, config/arm/t-strongarm-pe,
+       config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
+       config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
+       Revert automatic dependency patch.
+
+2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/35657
+       * config/i386/i386.c (ix86_function_arg_boundary): Align
+       decimal floating point to its natural boundary.
+
+2008-03-27  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/35716
+       * fold-const.c (fold_comparison): Restrict distinct decl
+       comparison folding to VAR_DECLs and PARM_DECLs.  Do not
+       solely rely on operand_equal_p.
+
+2008-03-27  Richard Guenther  <rguenther@suse.de>
+
+       PR c/32511
+       * c-common.c (handle_weak_attribute): Reject combination of
+       weak and inline.
+
 2008-03-27  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/32810
        tree_to_aff_combination_expand.
        (get_inner_reference_aff): New function.
        * tree-parloops.c (loop_parallel_p): Free vectorizer info.
-        * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
-        (struct lim_aux_data): sm_done field removed.
-        (mem_ref_loc_p, mem_ref_locs_p): New types.
-        (struct mem_ref): Added id, stored, accesses_in_loop,
-        indep_loop, dep_loop, indep_ref, dep_ref fields.
-        Removed is_stored, locs and next fields.
-        (memory_accesses): New variable.
-        (movement_possibility): Do not allow moving statements
-        that store to memory.
-        (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
-        New functions.
-        (determine_max_movement): For statements with memory references,
-        find the outermost loop in that the reference is independent.
-        (move_computations_stmt): Mark the virtual operands for
-        renaming.
-        (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
-        gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
-        vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
-        add_vop_ref_mapping, create_vop_ref_mapping_loop,
-        create_vop_ref_mapping, analyze_memory_references,
-        cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
-        get_all_locs_in_loop, ref_always_accessed_p,
-        refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
-        ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
-        store_motion_loop, store_motion): New functions.
-        (struct vop_to_refs_elt): New type.
-        (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
-        memref_hash, memref_eq, hoist_memory_references): Rewritten.
-        (schedule_sm): Replaced by...
-        (execute_sm): ... this.
-        (determine_lsm_ref, hoist_memory_references,
-        loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
-        find_more_ref_vops, free_mem_ref, free_mem_refs,
-        determine_lsm_loop, determine_lsm): Removed.
-        (tree_ssa_lim_finalize): Free data structures used by store
-        motion.
-        (tree_ssa_lim): Call analyze_memory_references.  Use
-        store_motion instead of determine_lsm.
+       * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
+       (struct lim_aux_data): sm_done field removed.
+       (mem_ref_loc_p, mem_ref_locs_p): New types.
+       (struct mem_ref): Added id, stored, accesses_in_loop,
+       indep_loop, dep_loop, indep_ref, dep_ref fields.
+       Removed is_stored, locs and next fields.
+       (memory_accesses): New variable.
+       (movement_possibility): Do not allow moving statements
+       that store to memory.
+       (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
+       New functions.
+       (determine_max_movement): For statements with memory references,
+       find the outermost loop in that the reference is independent.
+       (move_computations_stmt): Mark the virtual operands for renaming.
+       (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
+       gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
+       vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
+       add_vop_ref_mapping, create_vop_ref_mapping_loop,
+       create_vop_ref_mapping, analyze_memory_references,
+       cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
+       get_all_locs_in_loop, ref_always_accessed_p,
+       refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
+       ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
+       store_motion_loop, store_motion): New functions.
+       (struct vop_to_refs_elt): New type.
+       (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
+       memref_hash, memref_eq, hoist_memory_references): Rewritten.
+       (schedule_sm): Replaced by...
+       (execute_sm): ... this.
+       (determine_lsm_ref, hoist_memory_references,
+       loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
+       find_more_ref_vops, free_mem_ref, free_mem_refs,
+       determine_lsm_loop, determine_lsm): Removed.
+       (tree_ssa_lim_finalize): Free data structures used by store motion.
+       (tree_ssa_lim): Call analyze_memory_references.  Use
+       store_motion instead of determine_lsm.
 
 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
 
 
 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
 
-       * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and
-       CX_REG.
+       * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
 
 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>