+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