+2007-04-11 Sebastian Pop <sebpop@gmail.com>
+
+ PR tree-optimization/32367
+ * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side
+ of the chrec has no evolution in that loop.
+ * testsuite/gcc.dg/tree-ssa/pr32367.c: New.
+
+2007-06-19 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.c: Include "df.h".
+ (xtensa_builtin_saveregs): Use adjust_address instead of change_address.
+ (xtensa_va_start): Invoke make_tree with sizetype for
+ expand_builtin_saveregs and then convert the result to a pointer.
+ Use POINTER_PLUS_EXPR. Use size_int instead of build_int_cst.
+ (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
+ Subtract argument size from index value as integers and then use
+ POINTER_PLUS_EXPR to add the result to the array address.
+
+2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
+
+ PR target/32335
+ * config/m32c/m32c.c: Include dataflow header file.
+ (m32c_emit_prologue): Adjust for prologue insn change.
+ * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
+ once inside a PARALLEL. Assume frame size passed in operand 0
+ includes space to save the fb register.
+ (prologue_enter_24): Likewise.
+ (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
+
+2007-06-19 David Daney <ddaney@avtrex.com
+
+ PR target/32313
+ * config/mips/mips.md (cprestore): Mark $gp as used.
+
+2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
+
+ PR target/32369
+ * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
+ (frv_ifcvt_modify_insn): Likewise.
+
+2007-06-19 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (handle_ptr_arith): Make sure to
+ only handle positive offsets that fit in a HOST_WIDE_INT.
+
+2007-06-19 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_emit_swsqrtsf): Limit the result of
+ rsqrt insn to FLT_MAX to avoid NaN for zero input argument.
+
+2007-06-19 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/31950
+ * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.
+
+2007-06-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/32353
+ * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
+
+2007-06-18 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/32389
+ * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
+ * config/i386/i386.c (assign_386_stack_local): Assert that
+ SLOT_VIRTUAL is valid only before virtual regs are instantiated.
+ (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
+ Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
+ * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.
+
+2007-06-18 Steve Ellcey <sje@cup.hp.com>
+
+ * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.
+
+2007-06-18 Seongbae Park <seongbae.park@gmail.com>
+
+ PR rtl-optimization/32321
+ * gcse.c (replace_store_insn): Update the note before
+ calling emit_insn_after.
+
+2007-06-18 David Daney <ddaney@avtrex.com
+
+ Revert:
+
+ 2007-06-18 David Daney <ddaney@avtrex.com
+
+ PR target/32313
+ * config/mips/mips.c (mips_expand_call): Mark $gp as used by
+ local function call.
+
+2007-06-18 David Daney <ddaney@avtrex.com
+
+ PR target/32313
+ * config/mips/mips.c (mips_expand_call): Mark $gp as used by
+ local function call.
+
+2007-06-18 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ PR middle-end/32355
+ * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
+ cse_main.
+ * df-problems.c (df_note_bb_compute): Fix dumping info.
+
+2007-06-18 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
+ insn with emit_jump_insn.
+
+2007-06-18 Uros Bizjak <ubizjak@gmail.com>
+
+ PR tree-optimization/32383
+ * targhooks.c (default_builtin_reciprocal): Add new bool argument.
+ * targhooks.h (default_builtin_reciprocal): Update prototype.
+ * target.h (struct gcc_target): Update builtin_reciprocal.
+ * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
+ * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
+ where arg1 is not SSA_NAME. Pass true to targetm.builtin_reciprocal
+ when fndecl is in BUILT_IN_MD class.
+ (execute_convert_to_rsqrt): Ditto.
+
+ * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
+ argument. Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
+ Convert BUILT_IN_SQRTF code only when md_fn is false.
+
+2007-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * bt-load.c (move_btr_def): Fix the order of arguments
+ to validate_replace_rtx.
+
+2007-06-18 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/m68k/m68k-devices.def: Add 54450..54455.
+
+2007-06-17 Uros Bizjak <ubizjak@gmail.com>
+
+ PR rtl-optimization/32366
+ * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
+ FLOAT_EXTEND]: Prevent non-scalar modes from entering
+ significand_size.
+
+2007-06-17 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ PR middle-end/32349
+ * modulo-sched (generate_reg_moves): Added rescan parameter and if
+ this is true, rescan insn being modified.
+ (sms_schedule): Added rescan parameter.
+ (rest_of_handle_sms): Moved freeing of dominance info to before
+ getting out of cfg_layout.
+
+2007-06-17 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
+ * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
+ appropriate.
+
+ * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
+ FL_CF_EMAC from the entry for isac.
+
+ * config/m68k/predicates.md (const_call_operand): Adjust comment.
+ (const_sibcall_operand): New.
+ (sibcall_operand): Use it.
+ * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
+ (m68k_isas): ISAC does not imply FPU or EMAC.
+ (override_options): Add ISA_C logic for symbolic jump & call.
+
+2007-06-17 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
+ return mode from the builtin itself.
+ (sparc_fold_builtin): Fix cast of zero constant.
+
+2007-06-16 Uros Bizjak <ubizjak@gmail.com>
+
+ * targhooks.c (default_builtin_reciprocal): New default target hook.
+ * targhooks.h (default_builtin_reciprocal): Add prototype.
+ * hooks.c (hook_tree_tree_bool_null): Remove hook.
+ * hooks.h (hook_tree_tree_bool_null): Remove prototype.
+ * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
+ default_builtin_reciprocal.
+
+2007-06-16 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/31723
+ * hooks.c (hook_tree_tree_bool_null): New hook.
+ * hooks.h (hook_tree_tree_bool_null): Add prototype.
+ * tree-pass.h (pass_convert_to_rsqrt): Declare.
+ * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
+ * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
+ and convert it to reciprocal a*rfunc(b).
+ (execute_convert_to_rsqrt): New function.
+ (gate_convert_to_rsqrt): New function.
+ (pass_convert_to_rsqrt): New pass definition.
+ * target.h (struct gcc_target): Add builtin_reciprocal.
+ * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
+ (TARGET_INITIALIZER): Initialize builtin_reciprocal with
+ TARGET_BUILTIN_RECIPROCAL.
+ * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.
+
+ * config/i386/i386.h (TARGET_RECIP): New define.
+ * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
+ for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
+ flag_unsafe_math_optimizations are set, flag_trapping_math is unset
+ and not optimizing for size.
+ (*rcpsf2_sse): New insn pattern.
+ (*rsqrtsf2_sse): Ditto.
+ (rsqrtsf2): New expander. Expand by calling ix86_emit_swsqrtsf
+ for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
+ flag_unsafe_math_optimizations are set, flag_trapping_math is unset
+ and not optimizing for size.
+ (sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
+ for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
+ flag_unsafe_math_optimizations are set, flag_trapping_math is unset
+ and not optimizing for size.
+ * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
+ for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
+ flag_unsafe_math_optimizations are set, flag_trapping_math is unset
+ and not optimizing for size.
+ (*sse_rsqrtv4sf2): Do not export.
+ (sqrtv4sf2): Ditto.
+ (sse_rsqrtv4sf2): New expander. Expand by calling ix86_emit_swsqrtsf
+ for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
+ flag_unsafe_math_optimizations are set, flag_trapping_math is unset
+ and not optimizing for size.
+ (sqrtv4sf2): Ditto.
+ * config/i386/i386.opt (mrecip): New option.
+ * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
+ (ix86_emit_swsqrtsf): Ditto.
+ * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
+ (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
+ builtin definition.
+ (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
+ ix86_expand_unop1_builtin.
+ (ix86_emit_swdivsf): New function.
+ (ix86_emit_swsqrtsf): Ditto.
+ (ix86_builtin_reciprocal): New function.
+ (TARGET_BUILTIN_RECIPROCAL): Use it.
+ (ix86_vectorize_builtin_conversion): Rename from
+ ix86_builtin_conversion.
+ (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
+ * doc/invoke.texi (Machine Dependent Options): Add -mrecip to
+ "i386 and x86_64 Options" section.
+ (Intel 386 and AMD x86_64 Options): Document -mrecip.
+
+2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
+ Zdenek Dvorak <dvorakz@suse.cz>
+ Richard Guenther <rguenther@suse.de>
+ Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * tree-vrp.c (compare_values_warnv): Convert val2 to
+ the type of val1.
+ (extract_range_from_assert): Create
+ POINTER_PLUS_EXPR for pointer types.
+ (extract_range_from_binary_expr): Handle
+ only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
+ for pointer types.
+ * doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
+ * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
+ POINTER_PLUS_EXPR as PLUS_EXPR.
+ (number_of_iterations_lt_to_ne):
+ For pointer types, use sizetype when
+ creating MINUS_EXPR/PLUS_EXPRs.
+ (assert_loop_rolls_lt): For pointer types, use sizetype when
+ creating MINUS_EXPR/PLUS_EXPRs.
+ (number_of_iterations_le): Likewise.
+ (expand_simple_operations): POINTER_PLUS_EXPR are simple also.
+ (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
+ like PLUS_EXPR and MINUS_EXPR.
+ * tree-pretty-print.c (dump_generic_node): Handle
+ POINTER_PLUS_EXPR.
+ (op_prio): Likewise.
+ (op_symbol_1): Likewise.
+ * optabs.c (optab_for_tree_code): Likewise.
+ * tree-ssa-loop-manip.c (create_iv): Handle pointer base
+ specially.
+ * tree-tailcall.c (process_assignment): Mention
+ POINTER_PLUS_EXPR in a TODO comment.
+ * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or
+ MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
+ not used with a pointer and an integer type.
+ * tree-scalar-evolution.c (add_to_evolution_1): Convert the
+ increment using chrec_convert_rhs instead of chrec_convert.
+ (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
+ PLUS_EXPR except for the right hand side's type will be
+ sizetype.
+ (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
+ (fold_used_pointer_cast): Kill.
+ (pointer_offset_p): Kill.
+ (fold_used_pointer): Kill.
+ (pointer_used_p): Kill.
+ (analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
+ call fold_used_pointer.
+ (instantiate_parameters_1): Convert the increment
+ using chrec_convert_rhs instead of chrec_convert.
+ Handle POINTER_PLUS_EXPR as PLUS_EXPR.
+ * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
+ instead of PLUS_EXPR.
+ (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
+ PLUS_EXPR for pointers.
+ (std_gimplify_va_arg_expr): Likewise.
+ (fold_builtin_memory_op): Likewise.
+ (fold_builtin_strstr): Likewise.
+ (fold_builtin_strchr): Likewise.
+ (fold_builtin_strrchr): Likewise.
+ (fold_builtin_strpbrk): Likewise.
+ (expand_builtin_memory_chk): Likewise.
+ (fold_builtin_memory_chk): Likewise.
+ (std_expand_builtin_va_start): Use
+ sizetype for the call to make_tree and then convert
+ to the pointer type.
+ (fold_builtin_memchr): Use POINTER_PLUS_EXPR
+ instead of PLUS_EXPR for adding to a pointer.
+ (std_gimplify_va_arg_expr): Use fold_build2 for
+ the creating of POINTER_PLUS_EXPR. For the BIT_AND_EXPR, cast
+ the operands to sizetype first and then cast the BIT_AND_EXPR
+ back to the pointer type.
+ * fold-const.c (build_range_check): Handle pointer types
+ specially.
+ (extract_array_ref): Look for POINTER_PLUS_EXPR instead
+ of PLUS_EXPR's. Make sure the offset is converted to
+ sizetype.
+ (try_move_mult_to_index): Strip the NOPs from the offset.
+ Remove code argument and replace all uses with PLUS_EXPR.
+ (fold_to_nonsharp_ineq_using_bound): Handle pointer types
+ specially. Don't use a pointer type for MINUS_EXPR.
+ (fold_unary): Handle for (T1)(X op Y),
+ only p+ as that is the only as that can be handled for
+ binary operators now.
+ (fold_binary <case POINTER_PLUS_EXPR>): Add folding of
+ POINTER_PLUS_EXPR.
+ <case PLUS_EXPR>: Add folding of PTR+INT into
+ PTR p+ INT.
+ Don't call try_move_mult_to_index.
+ <case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
+ into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
+ (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
+ Don't call try_move_mult_to_index.
+ (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
+ (tree_expr_nonzero_p): Likewise.
+ (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
+ of PLUS_EXPR for the complex expression folding.
+ * tree-chrec.c (chrec_fold_plus_poly_poly): If the
+ first chrec is a pointer type, then the second should
+ be sizetype and not the first's type.
+ For POINTER_PLUS_EXPR, use a different right hand side type.
+ Handle POINTER_PLUS_EXPR like PLUS_EXPR.
+ (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
+ different right hand side type.
+ Handle POINTER_PLUS_EXPR like PLUS_EXPR.
+ (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
+ instead of PLUS_EXPR.
+ When either operand is zero, convert the other operand.
+ (chrec_apply): Use chrec_convert_rhs
+ on the argument x instead of chrec_convert.
+ (reset_evolution_in_loop): For pointer types, the new_evol
+ should be sizetype.
+ (convert_affine_scev): For POINTER_PLUS_EXPR, use a
+ different right hand side type.
+ Handle POINTER_PLUS_EXPR like PLUS_EXPR.
+ (chrec_convert_rhs): New function.
+ (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
+ different right hand side type.
+ Handle POINTER_PLUS_EXPR like PLUS_EXPR.
+ * tree-chrec.h (chrec_convert_rhs): New prototype.
+ (build_polynomial_chrec): For pointer types, the right hand
+ * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
+ POINTER_PLUS_EXPR instead of PLUS_EXPR's.
+ Remove subtraction case as it is always addition now.
+ Make sure the offset is converted to sizetype.
+ (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
+ Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
+ * tree-ssa-loop-ivopts.c (determine_base_object): Abort for
+ PLUS_EXPR in pointer type.
+ Handle POINTER_PLUS_EXPR.
+ (tree_to_aff_combination): Likewise.
+ (force_expr_to_var_cost): Likewise.
+ (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
+ instead of PLUS_EXPR for pointers.
+ * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
+ instead of PLUS_EXPR of pointer types.
+ * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
+ as PLUS_EXPR.
+ (check_va_list_escapes): Likewise.
+ (check_all_va_list_escapes): Likewise.
+ * dwarf2out.c (loc_descriptor_from_tree_1):
+ Handle POINT_PLUS_EXPR as a PLUS_EXPR.
+ * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
+ (string_constant): Likewise.
+ * tree-ssa-address.c (tree_mem_ref_addr): When adding
+ the offset to the base, use POINTER_PLUS_EXPR.
+ (add_to_parts): Convert the index to sizetype.
+ (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
+ * matrix-reorg.c (collect_data_for_malloc_call): Stmt
+ will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
+ Offset only holds something for PLUS_EXPR.
+ (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
+ a PLUS_EXPR.
+ (analyze_transpose): POINTER_PLUS_EXPR will only show up now
+ and not PLUS_EXPR.
+ (analyze_accesses_for_modify_stmt): Likewise.
+ Remove comment about the type being integral type as it is
+ wrong now.
+ (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
+ PLUS_EXPR.
+ (transform_access_sites): POINTER_PLUS_EXPR will only show up now
+ and not PLUS_EXPR.
+ Correct the type which the artimentic is done in (is now
+ sizetype).
+ Reindent one loop.
+ * tree-data-ref.c (split_constant_offset): Handle
+ POINTER_PLUS_EXPR
+ * tree-affine.c (tree_to_aff_combination): Likewise.
+ * c-typeck.c (build_unary_op): For pointers create the increment
+ as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
+ for pointers.
+ * gimplify.c (gimplify_self_mod_expr): Create a
+ POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
+ (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
+ * tree.def (POINTER_PLUS_EXPR): New tree code.
+ * tree-predcom.c (ref_at_iteration): If we have a pointer
+ type do the multiplication in sizetype.
+ * tree-mudflap.c (mf_xform_derefs_1): Create a
+ POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
+ * tree-ssa-forwprop.c
+ (forward_propagate_addr_into_variable_array_index):
+ Don't expect there to be a cast for the index as that
+ does not exist anymore.
+ (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
+ instead of PLUS_EXPR.
+ Don't check for the first operand of the POINTER_PLUS_EXPR
+ was the index as it cannot be.
+ Call forward_propagate_addr_into_variable_array_index with
+ the SSA_NAME instead of the statement.
+ * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
+ (compare_constant): Likewise.
+ (copy_constant): Likewise.
+ (compute_reloc_for_constant): Likewise.
+ (output_addressed_constants): Likewise.
+ (initializer_constant_valid_p): Likewise.
+ * tree-ssa.c (tree_ssa_useless_type_conversion_1):
+ Convert the MIN/MAX of the inner type to the outer
+ type before comparing them.
+ * tree-ssa-loop-prefetch.c (idx_analyze_ref): Handle
+ POINTER_PLUS_EXPR instead of PLUS_EXPR.
+ (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
+ of PLUS_EXPR for pointers.
+ * tree-inline.c (estimate_num_insns_1): Handle
+ POINTER_PLUS_EXPR.
+ * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
+ Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
+ (bump_vector_ptr): Create a POINTER_PLUS_EXPR
+ instead of PLUS_EXPR for the pointer increment statement.
+ (vect_update_ivs_after_vectorizer): For pointer types, create
+ POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
+ MULT_EXPR in sizetype.
+ (vect_gen_niters_for_prolog_loop): Add a cast when creating
+ byte_misalign.
+ * tree-object-size.c (plus_expr_object_size): Handle
+ POINTER_PLUS_EXPR instead of PLUS_EXPR. Removing all the extra
+ code which is trying to figure out which side is a pointer and
+ is the index.
+ (check_for_plus_in_loops_1): Likewise.
+ (check_for_plus_in_loops): Likewise.
+ * c-common.c (pointer_int_sum): Create a
+ POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
+ * tree-ssa-structalias.c (handle_ptr_arith): Handle
+ only POINTER_PLUS_EXPR. Removing all the extra
+ code which is trying to figure out which side is a pointer and
+ is the index.
+ * tree-cfg.c (verify_expr): Add extra checking for pointers and
+ PLUS_EXPR and MINUS_EXPR.
+ Also add checking to make sure the operands of POINTER_PLUS_EXPR
+ are correct.
+ * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
+ with make_tree, instead of a pointer type.
+ * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
+ for pointers instead of PLUS_EXPR.
+ (s390_gimplify_va_arg): Likewise.
+ * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
+ instead of PLUS_EXPR when doing addition on pointer
+ types. Use sizetype for the second operand.
+ (spu_gimplify_va_arg_expr): Likewise.
+ * config/sparc/sparc.c (sparc_gimplify_va_arg): Use
+ POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
+ a pointer. Don't create a BIT_AND_EXPR for pointer types.
+ * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
+ for the pointer addition and also use size_int/sizetype
+ for the offset.
+ (ix86_gimplify_va_arg): Likewise.
+ Perform BIT_AND_EXPR on sizetype arguments.
+ * config/sh/sh.c (sh_va_start): Call make_tree with sizetype
+ and convert its result to a pointer type. Use POINTER_PLUS_EXPR
+ for the pointer additions and also use size_int for the offsets.
+ (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
+ additions and also use size_int for the offsets. Perform
+ BIT_AND_EXPR on sizetype arguments.
+ * config/ia64/ia64.c (ia64_gimplify_va_arg): Use
+ POINTER_PLUS_EXPR for pointers and create the
+ BIT_AND_EXPR in sizetype.
+ * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
+ instead of PLUS_EXPR for pointer addition.
+ (rs6000_va_start): Likewise.
+ Also use sizetype for the offset.
+ * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
+ as PLUS_EXPR/MINUS_EXPR.
+ (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
+ PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
+ Don't use BIT_AND_EXPR on a pointer type, convert the
+ expression to sizetype first.
+ * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
+ for pointers.
+ (mips_gimplify_va_arg_expr): Likewise.
+ Don't create BIT_AND_EXPR in a pointer type.
+
+2007-06-15 Eric Christopher <echristo@apple.com>
+
+ * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
+ (x86_64-*-darwin*): Ditto.
+ * config/i386/darwin.h (CRTEND_SPEC): New. Add support
+ for above.
+
+2007-06-15 Matthew Wilcox <matthew@wil.cx>
+
+ * doc/extend.texi: Document behavior of __attribute__((aligned))
+ on typedefs.
+
+2007-06-15 Mark Mitchell <mark@codesourcery.com>
+
+ * rtlanal.c (note_stores): Improve documentation.
+
+2007-06-15 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
+ LOCAL_LABEL_PREFIX): Delete.
+ * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
+ (bfin_internal_label): Delete.
+
+2007-06-15 Uros Bizjak <ubizjak@gmail.com>
+
+ * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
+ define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
+ otherwise define to LIBGCC2_TF_CEXT.
+ * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
+ (LIBGCC_TF_CEXT): Ditto.
+ (TF_SIZE): Ditto.
+
+2007-06-14 Seongbae Park <seongbae.park@gmail.com>
+
+ PR rtl-optimization/32339
+ * df-scan.c (df_uses_record): Don't modify flags but just add to
+ it for df_ref_record.
+
+2007-06-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * tree-mudflap.c: Fix whitespace issues.
+
+2007-06-15 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove.
+
+2007-06-14 Eric Christopher <echristo@apple.com>
+
+ * config/i386/sse.md (movdi_to_sse): Rewrite body.
+ (movv4sf): Use gcc_unreachable instead of abort.
+
+2007-06-14 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/32268
+ * config/i386/sfp-machine.h (CMPtype): New define.
+ (mach stubs): Use CMPtype instead of int as a return type.
+
+2007-06-14 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c,
+ config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c,
+ config/soft-fp/gesf2.c, config/soft-fp/getf2.c,
+ config/soft-fp/ledf2.c, config/soft-fp/lesf2.c,
+ config/soft-fp/letf2.c, config/soft-fp/unorddf2.c,
+ config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c,
+ config/soft-fp/soft-fp.h: Update from glibc CVS.
+
+2007-06-14 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/uclinux.h (MFWRAP_SPEC): New.
+
+2007-06-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
+
+ PR target/32341
+ * config/v850/v850.c: Include dataflow header file.
+ (substitute_ep_register): Fix typo.
+
+2007-06-14 Paolo Bonzini <bonzini@gnu.org>
+
+ * configure.ac: Fix earlier checkin.
+ * configure: Regenerated.
+
+2007-06-14 Paolo Bonzini <bonzini@gnu.org>
+
+ * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
+ * aclocal.m4: Regenerate.
+ * configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
+ ACX_PROG_CC_WARNINGS_ARE_ERRORS,
+ ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
+ * configure: Regenerate.
+ * Makefile.in (LOOSE_WARN): Subst loose_warn.
+
+ * Makefile.in (quickstrap): Build libgcc too.
+
+2007-06-14 Paolo Bonzini <bonzini@gnu.org>
+
+ * configure.ac: Add --enable-checking=df. Explicitly mention that
+ the variables are initialized as for "release".
+ * df-core.c: Use it.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+
+2007-06-14 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
+ validate_replace_rtx instead of replace_rtx.
+ (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
+
+2007-06-14 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
+ (DWARF2_UNWIND_INFO): Override default if configured with
+ SJLJ EH disabled.
+ * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
+ (ENDFILE_SPEC): Add crtend.o.
+ * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
+ (ENDFILE_SPEC): Add crtend.o.
+ (TARGET_USE_JCR_SECTION): Define.
+ (MD_UNWIND_SUPPORT): Define for 32-bit target.
+
+ * config/i386/cygming-crtbegin.c: New file.
+ * config/i386/cygming-crtend.c: New file.
+
+2007-06-14 Pascal Obry Pascal Obry <obry@adacore.com>
+
+ * config/i386/w32-unwind.h: New file.
+
+2007-06-13 Eric Christopher <echristo@apple.com>
+
+ * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
+ the user set a value below STACK_BOUNDARY.
+
+2007-06-13 Thiemo Seufer <ths@networkno.de>
+
+ * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
+ imply -lpthread for -pthread.
+
+2007-06-13 Kazu Hirata <kazu@codesourcery.com>
+
+ * basic-block.h: Remove the prototype for
+ free_basic_block_vars.
+ * cfglayout.h: Remove the prototype for
+ insn_locators_initialize.
+ * tree.h: Remove the prototype for emit_line_note.
+
+ * tree-ssa-pre.c (mergephitemp): Remove.
+ (init_pre): Don't use mergephitemp.
+
+2007-06-13 Eric Christopher <echristo@apple.com>
+
+ * config/i386/i386.c (override_options): If we've specified
+ an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
+
+2007-06-13 Bob Wilson <bob.wilson@acm.org>
+
+ * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
+ is defined.
+
+2007-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
+ * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
+ (eh_store_handler): New pattern.
+ (eh_return): Emit it instead of a plain move.
+
+2007-06-13 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_init_mmx_sse_builtins)
+ [__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
+ [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
+ def_builtin_const.
+
+2007-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
+ (find_next_insn_start, find_load): New functions.
+ (bfin_reorg): Use them to deal with the fact that parallel insns are
+ no longer represented as a SEQUENCE.
+
+2007-06-13 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * config/sparc/sparc.c (sparc_override_options): Initialize
+ fpu mask correctly.
+
+2007-06-13 Dave Korn <dave.korn@artimi.com>
+
+ * config/i386/i386.c (ix86_eax_live_at_start_p): Use
+ df_get_live_out.
+
+2007-06-13 Kazu Hirata <kazu@codesourcery.com>
+
+ * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
+ config/sh/divcost-analysis, dbgcnt.def, df-core.c,
+ df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
+ tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
+ tree-vect-transform.c: Fix comment typos. Follow spelling
+ conventions.
+
+2007-06-12 Seongbae Park <seongbae.park@gmail.com>
+
+ * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
+ to the exit block use set.
+ * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
+ * config/sparc/sparc.c (sparc_check_64): Check df != NULL.
+
+2007-06-12 Seongbae Park <seongbae.park@gmail.com>
+
+ * opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
+ * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
+ to indicate an error.
+ (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters): New functions
+ (dbg_cnt_process_opt): Print an error on a bad argument.
+ * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
+ * common.opt (-fdbg-cnt-list): New.
+ * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
+
+2007-06-12 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
+ flag on ref-all pointers.
+
+2007-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/31579
+ * expr.c (expand_expr_addr_expr_1): Call expand_expr
+ for the offset with the modifier as EXPAND_INITIALIZER
+ if the modifier is EXPAND_INITIALIZER.
+ (expand_expr_real_1 <case INTEGER_CST>): Don't force to
+ a register if we had an overflow.
+
+2007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * real.c (real_isfinite): New.
+ (real_sqrt): Use it.
+ * real.h (real_isfinite): New.
+ * builtins.c: Use it.
+
+2007-06-12 Ian Lance Taylor <iant@google.com>
+ Daniel Berlin <dberlin@dberlin.org>
+
+ PR libstdc++/29286
+ * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
+ * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
+ (CHANGE_DYNAMIC_TYPE_LOCATION): Define.
+ (DECL_NO_TBAA_P): Define.
+ (struct tree_decl_common): Add no_tbaa_flag field.
+ * tree-ssa-structalias.c (struct variable_info): Add
+ no_tbaa_pruning field.
+ (new_var_info): Initialize no_tbaa_pruning field.
+ (unify_nodes): Copy no_tbaa_pruning field.
+ (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
+ (dump_solution_for_var): Print no_tbaa_pruning flag.
+ (set_uids_in_ptset): Add no_tbaa_pruning parameter. Change all
+ callers.
+ (compute_tbaa_pruning): New static function.
+ (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
+ Call compute_tbaa_pruning.
+ * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
+ * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
+ * gimple-low.c (lower_stmt): Likewise.
+ * tree-gimple.c (is_gimple_stmt): Likewise.
+ * tree-ssa-operands.c (get_expr_operands): Likewise.
+ * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
+ * tree-inline.c (estimate_num_insns_1): Likewise.
+ (copy_result_decl_to_var): Likewise.
+ * expr.c (expand_expr_real_1): Likewise.
+ * tree-pretty-print.c (dump_generic_node): Likewise.
+ * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
+ * omp-low.c (omp_copy_decl_2): Likewise.
+ * print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
+ * doc/c-tree.texi (Expression trees): Document
+ CHANGE_DYNAMIC_TYPE_EXPR.
+
+2007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
+ with !HONOR_NANS and !HONOR_INFINITIES.
+ * simplify-rtx.c (simplify_binary_operation_1): Likewise.
+
+2007-06-12 Tristan Gingold <gingold@adacore.com>
+
+ * gcov.c: Comments updated.
+ (source_info): Add file_time field.
+ (source_index): New variable.
+ (mutiple_files): New variable.
+ (generate_results): New function extracted from process_file.
+ (process_file): Save and restore chain of functions, generate
+ results and free structures only if not merging results.
+ (release_structures): File names are now freed in create_file_names
+ (create_file_names): Free previous file names.
+ (find_source): File date is now read here and modifications in
+ source files is checked here.
+ (read_graph_file): Only reverse order of functions for the current
+ object file.
+ (make_gcov_file_name): Do not generate long names if input_name is
+ NULL.
+ (output_lines): If merging results do not display graph, data and
+ runs informations.
+ Checking source file modification is done in find_source.
+
+ * doc/gcov.texi: Append an s to sourcefile.
+
+2007-06-12 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.md (UNSPEC_NOP): New constant.
+ (forced_nop): New pattern.
+ * config/bfin/bfin.c: Include "df.h".
+ (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
+ (bfin_discover_loop): Use df_get_live_in instead of
+ global_live_at_start.
+ (bfin_reorder_loops): Pass 0 to cfg_layout_initialize. Call
+ df_analyze when done.
+ (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
+ the insns. Use QImode for the final insn in a bundle. Call
+ df_insn_rescan on generated NOPs; use gen_forced_nop instead of
+ gen_nop.
+ (reorder_var_tracking_notes): New function.
+ (bfin_reorg): Pass no argument to split_all_insns. Don't call
+ update_life_info. Call df_analyze after scheduling and bundle
+ generation. Call reorder_var_tracking_notes if generating these notes.
+ Call df_finish_pass at the end.
+
+2007-06-12 Dirk Mueller <dmueller@suse.de>
+
+ * optabs.c (debug_optab_libfuncs): fix gcc_assert to
+ a comparison, not an assignment.
+
+2007-06-12 Olivier Hainque <hainque@adacore.com>
+
+ * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
+ Request walking the subtrees only, leaving the current is_lhs/val_only
+ untouched.
+ (convert_non_local_reference): Likewise.
+
+2007-06-12 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/m68k/m68k-devices.def (52221, 52223, 5253): New.
+
+2007-06-12 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/15353
+ PR tree-optimization/31657
+ * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
+ * timevar.def: Add TV_TREE_IFCOMBINE.
+ * tree-pass.h (pass_tree_ifcombine): Declare.
+ * tree-ssa-ifcombine.c: New file.
+ * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
+ * tree-flow.h (blocks_in_phiopt_order): Declare.
+ * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
+ (tree-ssa-ifcombine.o): New dependencies.
+
+2007-06-12 Uros Bizjak <ubizjak@gmail.com>
+
+ PR rtl-optimization/32293
+ * combine.c (simplify_if_then_else): Truncate return from
+ nonzero_bits() to correct mode.
+
+2007-06-12 Uros Bizjak <ubizjak@gmail.com>
+
+ * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
+ into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
+
+2007-06-11 Diego Novillo <dnovillo@google.com>
+
+ * Makefile.in (reload1.o-warn): Remove.
+
+2007-06-11 Seongbae Park <seongbae.park@gmail.com>
+
+ * combine.c (subst): Use reg_overlap_mentioned_p
+ instead of comparing register numbers directly.
+
+2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * reload1.c (mark_home_live_1): Use the mode parameter.
+
+2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
+ df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
+ word "deferred".
+ * df-core.c: Ditto.
+
+2007-06-11 Daniel Berlin <dberlin@dberlin.org>
+
+ * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
+
+2007-06-11 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md ("*movtf_internal): Penalize moves to and
+ from integer registers.
+ (FP mode splitters): Handle TFmode.
+
+2007-06-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-ssa-structalias.c (find_what_p_points_to): Return false
+ for ref-all pointers that point-to anything.
+
+2007-06-11 Joseph Myers <joseph@codesourcery.com>
+
+ * config/arm/arm.c (arm_output_dwarf_dtprel,
+ TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
+
+2007-06-11 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
+ movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
+ to memory moves.
+
+2007-06-11 Rafael Avila de Espindola <espindola@google.com>
+
+ * gcc/tree.c (signed_or_unsigned_type_for): New.
+ (unsigned_type_for): Use signed_or_unsigned_type_for.
+ (signed_type_for): Use signed_or_unsigned_type_for.
+ * gcc/tree.h (signed_or_unsigned_type_for): New.
+ (get_signed_or_unsigned_type): Remove.
+ * gcc/fold-const.c (fold_negate_expr): Use signed_type_for instead of
+ lang_hooks.types.signed_type
+ (size_diffop): Likewise.
+ (all_ones_mask_p): Likewise.
+ (build_range_check): Likewise.
+ (fold_cond_expr_with_comparison): Likewise.
+ (fold_cond_expr_with_comparison): Likewise.
+ (unextend): Likewise.
+ (extract_muldiv_1): Likewise.
+ (fold_single_bit_test_into_sign_test): Likewise.
+ (fold_binary): Likewise.
+ (fold_ternary): Likewise.
+ (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
+ instead of get_signed_or_unsigned_type.
+ * gcc/c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
+ (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
+ * gcc/expr.c (signed_or_unsigned_type_for): Use
+ signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
+ * gcc/langhooks.c (get_signed_or_unsigned_type): Remove.
+ (lhd_signed_or_unsigned_type): Remove.
+ * gcc/langhooks.h (lang_hooks_for_types): Remove signed_type and
+ signed_or_unsigned_type.
+ (lhd_signed_or_unsigned_type): Remove.
+ * gcc/expmed.c (make_tree): Use signed_type_for instead of
+ lang_hooks.types.signed_type.
+ * gcc/c-common.c (same_scalar_type_ignoring_signedness): Use
+ c_common_signed_type instead of lang_hooks.types.signed_type.
+ (c_common_unsigned_type): New.
+ (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
+ (shorten_compare): Use c_common_unsigned_type instead of
+ c_common_signed_or_unsigned_type.
+ (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
+ unsigned_type_for.
+ * gcc/convert.c (convert_to_integer): Use signed_type_for instead of
+ lang_hooks.types.signed_type.
+ * gcc/langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
+ (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
+ LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
+ * gcc/c-format.c (check_format_types): Use c_common_unsigned_type
+ instead of unsigned_type_for.
+ * gcc/c-decl.c (groakdeclarator): Likewise.
+ * gcc/c-typeck.c (convert_for_assignment): Likewise.
+ * gcc/c-common.h (c_common_unsigned_type): New.
+
+2007-06-11 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/32280
+ * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
+ * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
+
+2007-06-11 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/32279
+ * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
+ into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
+
+2007-06-10 Jan Sjodin <jan.sjodin@amd.com>
+ Sebastian Pop <sebpop@gmail.com>
+
+ * lambda-code.c (remove_iv): New.
+ (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
+
+2007-06-10 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
+ * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
+ * tree-ssa-loop-prefetch.c: Include optabs.h.
+ (FENCE_FOLLOWING_MOVNT): New macro.
+ (struct mem_ref): Add independent_p and storent_p fields.
+ (record_ref): Initalize the new fields.
+ (gather_memory_references_ref): Return true if the reference
+ could be analysed.
+ (gather_memory_references): Check whether all memory accesses
+ in loop were recorded.
+ (should_issue_prefetch_p): Return false for nontemporal stores.
+ (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
+ may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
+ (determine_loop_nest_reuse): Detect independent memory references.
+ (loop_prefetch_arrays): Call mark_nontemporal_stores.
+ * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
+ * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
+ * config/i386/i386.h (x86_mfence): Declare.
+ (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
+ * config/i386/i386.c (x86_mfence): New variable.
+ (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
+
+ * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
+ * optabs.c (init_optabs): Initialize storent_optab.
+ * optabs.h (enum optab_index): Add OTI_storent.
+ (storent_optab): Declare.
+ * genopinit.c (optabs): Add initialization for storent_optab.
+ * tree.h (MOVE_NONTEMPORAL): New macro.
+ * expr.c (expand_assignment, store_expr, store_constructor_field,
+ store_constructor, store_field, expand_expr_real_1): Propagate
+ nontemporality of the expanded store.
+ (emit_storent_insn): New function.
+ * expr.h (expand_assignment, store_expr): Declaration changed.
+ * function.c (assign_parm_setup_reg): Pass false as nontemporality
+ to expand_assignment.
+ * stmt.c (expand_asm_expr): Ditto.
+ * calls.c (initialize_argument_information): Pass false as
+ nontemporality to store_expr.
+ * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
+ storentsi): New.
+
+2007-06-09 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
+ parameter, use it.
+ (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
+
+2007-06-09 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
+ and allow DECL_P here.
+
+2007-06-09 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
+ follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
+ track of the size of the expression.
+ * cfghooks.c (merge_blocks): Remove block from loops structure only
+ after call of the merge_blocks hook.
+
+2007-06-09 Tom Tromey <tromey@redhat.com>
+
+ * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
+ (deprecated_state): Removed.
+ (start_decl): Update.
+ (enum deprecated_states): Moved earlier.
+ (groktypename): Update.
+ (push_parm_decl): Likewise.
+ (grokfield): Likewise.
+ (start_function): Likewise.
+
+2007-06-09 Ian Lance Taylor <iant@google.com>
+
+ PR tree-optimization/32169
+ * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
+ CONVERT_EXPR, check whether min and max both converted to an
+ overflow infinity representation.
+
+2007-06-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ * reload1.c (fixup_abnormal_edges): Clear bb field for insns
+ not inserted on the edge.
+
2007-06-08 Bob Wilson <bob.wilson@acm.org>
* config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
(__divsi3, __umodsi3, __modsi3): Likewise.
(__ashldi3, __ashrdi3, __lshrdi3): New.
* config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
-
+
2007-06-08 Harsha Jagasia <harsha.jagasia@amd.com>
Tony Linthicum <tony.linthicum@amd.com>
(vectorizable_load): Call vect_model_load_cost during analysis phase.
(vectorizable_store): Call vect_model_store_cost during analysis phase.
(vectorizable_call, vectorizable_assignment, vectorizable_operation,
- vectorizable_promotion, vectorizable_demotion): Call
+ vectorizable_promotion, vectorizable_demotion): Call
vect_model_simple_cost during analysis phase.
2007-06-08 Simon Baldwin <simonb@google.com>
PR target/29953
* config/sh/sh.md (doloop_end): New pattern and splitter.
* loop-iv.c (simple_rhs_p): Check for hardware registers.
-
+
2007-06-08 Zdenek Dvorak <dvorakz@suse.cz>
PR middle-end/32209
* rtl.h (push_to_sequence2): New.
* emit-rtl.c (push_to_sequence2): New.
* function.c (assign_parm_data_all): Add new fields.
- (assign_parm_setup_block): Call push_to_sequence2 instead of
+ (assign_parm_setup_block): Call push_to_sequence2 instead of
push_to_sequence.
(assign_parm_setup_reg): Ditto.
(assign_parm_setup_stack): Ditto.