OSDN Git Service

2006-12-16 Andreas Tobler <a.tobler@schweiz.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 61fb81a..4dfea22 100644 (file)
@@ -1,3 +1,388 @@
+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