+2007-12-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/29978
+ * config/i386/i386.c (ix86_expand_branch): Optimize LE/LEU/GT/GTU
+ DImode comparisons against constant with all 1's in the lower word.
+
+2007-12-14 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sse.md (sse4_2_pcmpestr): Use reg_not_xmm0_operand
+ constraint for operand2. Use nonimm_not_xmm0_operand constraint
+ for operand 4. Update arguments in the call to
+ gen_sse4_2_pcmpestr_cconly.
+ (sse_4_2_pcmpestr_cconly): Renumber insn operands and update insn
+ template accordingly.
+ (sse4_2_pcmpistr): Use reg_not_xmm0_operand constraint for operand2.
+ Use nonimm_not_xmm0_operand constraint for operand 3. Update
+ arguments in the call to gen_sse4_2_pcmpistr_cconly.
+ (sse_4_2_pcmpistr_cconly): Renumber insn operands and update insn
+
+2007-12-14 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34462
+ * tree-ssa-operands.h (create_ssa_artificial_load_stmt): Add
+ parameter to say whether to unlink immediate uses.
+ * tree-ssa-operands.c (create_ssa_artificial_load_stmt): Do not
+ mark the artificial stmt as modified. Unlink immediate uses
+ only if requested.
+ * tree-ssa-dom.c (record_equivalences_from_stmt): Update caller.
+ * tree-ssa-pre.c (insert_fake_stores): Likewise.
+
+2007-12-13 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR middle-end/33088
+ * gimplify.c (gimplify_modify_expr_complex_part): Add note to comment.
+ * tree-complex.c (init_dont_simulate_again): Return true if there are
+ uninitialized loads generated by gimplify_modify_expr_complex_part.
+ * tree-gimple.c (is_gimple_reg_type): Return false for complex types
+ if not optimizing.
+ * tree-ssa.c (ssa_undefined_value_p): New predicate extracted from...
+ (warn_uninit): ...here. Use ssa_undefined_value_p.
+ * tree-ssa-pre.c (is_undefined_value): Delete.
+ (phi_translate_1): Use ssa_undefined_value_p.
+ (add_to_exp_gen): Likewise.
+ (make_values_for_stmt): Likewise.
+ * tree-flow.h (ssa_undefined_value_p): Declare.
+
+2007-12-13 Andrew Pinski <pinskia@gmail.com>
+ David Daney <ddaney@avtrex.com>
+
+ PR bootstrap/34144
+ * system.h: Make -Wuninitialized non-fatal if ASSERT_CHECKING
+ is disabled.
+
+2007-12-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/32636
+ * df-scan.c (df_get_entry_block_def_set): Set struct_value_rtx
+ regno in entry_block_defs even if HAVE_prologue && epilogue_completed.
+
+2007-12-13 Uros Bizjak <ubizjak@gmail.com>
+ Richard Guenther <rguenther@suse.de>
+
+ PR target/34435
+ * config/i386/emmintrin.h (_mm_shuffle_pd, _mm_extract_epi16,
+ _mm_insert_epi16, _mm_shufflehi_epi16, _mm_shufflelo_epi16,
+ _mm_shuffle_epi32): Cast non-constant input values to either __m64,
+ __m128, __m128i or __m128d in a macro version of the intrinsic.
+ Cast constant input values to int.
+ * config/i386/ammintrin.h (_mm_extracti_si64, _mm_inserti_si64): Ditto.
+ * config/i386/bmmintrin.h (_mm_roti_epi8, _mm_roti_epi16,
+ _mm_roti_epi32, _mm_roti_epi64): Ditto.
+ * config/i386/smmintrin.h (_mm_blend_epi16, _mm_blend_ps, _mm_blend_pd,
+ _mm_dp_ps, _mm_dp_pd, _mm_insert_ps, _mm_extract_ps, _mm_insert_epi8,
+ _mm_insert_epi32, _mm_insert_epi64, _mm_extract_epi8, mm_extract_epi32,
+ _mm_extract_epi64, _mm_mpsadbw_epu8, _mm_cmpistrm, _mm_cmpistri,
+ _mm_cmpestrm, _mm_cmpestri, _mm_cmpistra, _mm_cmpistrc, _mm_cmpistro,
+ _mm_cmpistrs, _mm_cmpistrz, _mm_cmpestra, _mm_cmpestrc, _mm_cmpestro,
+ _mm_cmpestrs, _mm_cmpestrz): Ditto.
+ * config/i386/tmmintrin.h (_mm_alignr_epi8, _mm_alignr_pi8): Ditto.
+ * config/i386/xmmintrin.h (_mm_shuffle_ps, _mm_extract_pi16, _m_pextrw,
+ _mm_insert_pi16, _m_pinsrw, _mm_shuffle_pi16, _m_pshufw): Ditto.
+ * config/i386/mmintrin-common.h (_mm_round_pd, _mm_round_sd,
+ _mm_round_ps, _mm_round_ss): Ditto.
+
+2007-12-13 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34450
+ * params.def (PARAM_SCCVN_MAX_SCC_SIZE): New param.
+ * invoke.texi (sccvn-max-scc-size): Document.
+ * Makefile.in (tree-ssa-sccvn.o): Add $(PARAMS_H) dependency.
+ * tree-ssa-sccvn.h (run_scc_vn): Return true on success, false
+ on error.
+ * tree-ssa-sccvn.c (params.h): Include.
+ (DFS): Return true if all went well, return false as soon as
+ a SCC exceeds the size of PARAM_SCCVN_MAX_SCC_SIZE.
+ (run_scc_vn): Return true if all went well, return false if
+ we aborted during DFS.
+ * tree-ssa-pre.c (execute_pre): Check if SCCVN finished
+ successfully, otherwise bail out.
+
+2007-12-13 Olga Golovanevsky <olga@il.ibm.com>
+
+ * ipa-struct-reorg.c (is_candidate): Print information to dump
+ file when the type is initialized.
+ (get_stmt_accesses): Likewise when a structure has bitfields
+ or field access is too complicate.
+ (safe_cond_expr_check): Likewise for unsafe condition expressions.
+ (exclude_cold_structs): Likewise for cold structures.
+ (collect_structures): Suppress redundant print when there are
+ no structures to transform.
+ (do_reorg): Print to dump file a number of structures that
+ will be transformed.
+ (dump_new_types): Print a number of new types to replace
+ an original structure type.
+
+2007-12-13 Olga Golovanevsky <olga@il.ibm.com>
+
+ * doc/invoke.texi (Optimiza Options): Document new -fipa-struct-reorg
+ option and struct-reorg-cold-struct-ratio parameter.
+
+2007-12-13 Torbjorn Granlund <tege@swox.com>
+
+ * config/i386/i386.c (ix86_rtx_costs) [MULT]: Check op0 for
+ ZERO_EXTEND when computing costs for widening multiplication.
+
+2007-12-13 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/30192
+ * config/arm/ieee754-df.S (floatundidf): Fix for wrong sp value on
+ exit when using hard FPA.
+ * config/arm/ieee754-df.S (floatdidf): Likewise.
+
+2007-12-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/30589
+ * doc/install.texi: Document that for MinGW only runtime 3.12 and
+ later is supported.
+
+2007-12-12 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (is_mem_ref): Ignore STACK_TIE.
+
+2007-12-12 Aldy Hernandez <aldyh@redhat.com>
+
+ PR tree-optimization/32901
+ * gimplify.c (gimplify_modify_expr_rhs): Handle the case when we
+ are assigning from a constant constructor.
+ Fix wrapping in function comment.
+
+2007-12-12 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.c (s390_O_constraint_str): Limit the range
+ for 'On' to -4G+1..-1.
+ * config/s390/constraints.md: Adjust comment accordingly.
+
+2007-12-11 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/rs6000/rs6000.c (rs6000_emit_prologue): Use frame_reg_rtx
+ for SPE saves.
+
+2007-12-11 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/cygming.h (DWARF2_UNWIND_INFO): Handle 64-bit
+ target same as 32-bit.
+
+2007-12-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/34371
+ * tree-vectorizer.h (struct _loop_vec_info): Add num_iters_unchanged
+ field.
+ (LOOP_VINFO_NITERS_UNCHANGED): Define to num_iters_unchanged field.
+ * tree-vectorizer.c (set_prologue_iterations,
+ slpeel_tree_peel_loop_to_edge): Call unshare_expr on
+ LOOP_VINFO_NITERS_UNCHANGED before using it.
+
+2007-12-10 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/34403
+ * config/i386/i386.c (ix86_expand_movmem): Punt if the count is large.
+ (ix86_expand_setmem): Likewise.
+
+2007-12-10 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ PR rtl-optimization/34302
+ * auto-inc-dec.c (attempt_change): Change place where move is
+ inserted.
+
+2007-12-10 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf2out.c (gen_array_type_die, gen_descr_array_type_die): For
+ Fortran multi-dimensional arrays use DW_AT_ordering
+ DW_ORD_col_major.
+
+2007-12-10 Paolo Bonzini <bonzini@gnu.org>
+
+ PR target/32086
+ * config/i386/i386.c (override_options): Enable -fvect-cost-model.
+
+2007-12-10 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_function_regparm): Do not check global_regs
+ array, registers that are members of global_regs are also members of
+ fixed_regs array. Use REGPARM_MAX to check that no regparm hard
+ register is taken by a fixed register variable. Check up to and
+ including DI_REG when adjusting regparm value due to fixed regs usage.
+ (rep_prefix_usable): Check fixed_regs array, not global_regs array for
+ available hard registers.
+ (ix86_expand_strlen): Ditto.
+ * config/i386/i386.md (strmov): Ditto.
+ (cmpstrnsi): Ditto.
+
+2007-12-10 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * genopinit.c: Include tm_p.h in generated file.
+
+ * config/arm/neon.md (vec_set<mode>_internal): Use INTVAL
+ to extract the integer from operands[2].
+ (vec_setv2di_internal): Likewise.
+
+ * config/arm/arm.c (arm_size_return_regs): Make return type unsigned.
+ (arm_init_neon_builtins): Move code after declarations.
+
+2007-12-10 Hans-Peter Nilsson <hp@axis.com>
+
+ * reload.c (find_reloads_address_1): To properly mark as an
+ autoincdec, pass X for non-NULL OUT in call to push_reload for
+ autoincdec which can't be trivially used as an address.
+
+2007-12-10 Pranav Bhandarkar <pranav.bhandarkar@celunite.com>
+ Hans-Peter Nilsson <hp@axis.com>
+
+ * caller-save.c (insert_one_insn): If inserting before a call_insn
+ then the registers containing the arguments of the call are
+ live_throughout in the new insn.
+
+2007-12-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR middle-end/32889
+ PR target/34091
+ * pa.md: Consolidate HImode and QImode move patterns into one pattern
+ each, eliminating floating-point alternatives.
+ * pa-protos.h (pa_cannot_change_mode_class, pa_modes_tieable_p):
+ Declare functions.
+ * pa-64.h (SECONDARY_MEMORY_NEEDED): Define here.
+ * pa.c (pa_secondary_reload): Use an intermediate general register
+ for copies to/from floating-point register classes. Simplify code
+ SHIFT_REGS class. Provide additional comments.
+ (pa_cannot_change_mode_class, pa_modes_tieable_p): New functions.
+ * pa.h (MODES_TIEABLE_P): Use pa_modes_tieable_p.
+ (SECONDARY_MEMORY_NEEDED): Delete define.
+ (INT14_OK_STRICT): Define.
+ (MODE_OK_FOR_SCALED_INDEXING_P): Allow SFmode and DFmode when using
+ soft float.
+ (MODE_OK_FOR_UNSCALED_INDEXING_P): Likewise.
+ (GO_IF_LEGITIMATE_ADDRESS): Use INT14_OK_STRICT in REG+D case for
+ SFmode and DFmode.
+ (LEGITIMIZE_RELOAD_ADDRESS): Use INT14_OK_STRICT in mask selection.
+ Align DImode offsets when generating 64-bit code.
+ * pa32-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
+ (CANNOT_CHANGE_MODE_CLASS): Define.
+ * pa64-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
+ (CANNOT_CHANGE_MODE_CLASS): Define using pa_cannot_change_mode_class.
+
+2007-12-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR fortran/22244
+ * langhooks-def.h (LANG_HOOKS_GET_ARRAY_DESCR_INFO): Define.
+ (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
+ * langhooks.h (struct array_descr_info): Forward declaration.
+ (struct lang_hooks_for_types): Add get_array_descr_info field.
+ * dwarf2.h (DW_AT_bit_stride, DW_AT_byte_stride): New.
+ (DW_AT_stride_size, DW_AT_stride): Keep around for Dwarf2
+ compatibility.
+ * dwarf2out.h (struct array_descr_info): New type.
+ * dwarf2out.c (dwarf_attr_name): Rename DW_AT_stride to
+ DW_AT_byte_stride and DW_AT_stride_size to DW_AT_bit_size.
+ (descr_info_loc, add_descr_info_field, gen_descr_array_type_die):
+ New functions.
+ (gen_type_die_with_usage): Call lang_hooks.types.get_array_descr_info
+ and gen_descr_array_type_die.
+
+2007-12-08 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34391
+ * tree-vect-transform.c (vect_setup_realignment): Mark new
+ symbols for renaming.
+
+2007-12-07 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
+ (ASM_OUTPUT_DWARF_PCREL): Define.
+
+2007-12-07 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34382
+ * opts.c (common_handle_option): Handle OPT_fforce_addr.
+
+2007-12-07 Aldy Hernandez <aldyh@redhat.com>
+
+ * m32c.h (LEGITIMIZE_ADDRESS): Use WIN instead of win.
+ (LEGITIMIZE_RELOAD_ADDRESS): Same.
+
+2007-12-07 Samuel Tardieu <sam@rfc1149.net>
+
+ PR ada/29157
+ * doc/install.texi: Explain how to check for a clean environment when
+ building GNAT.
+
+2007-12-07 Richard Guenther <rguenther@suse.de>
+
+ * tree-profile.c (gcov_type_tmp_var): New global variable.
+ (tree_gen_edge_profiler): Use a single shared variable decl per
+ function for edge counter incrementing.
+ (tree_profiling): Re-set the shared variable.
+
+2007-12-06 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.c (xtensa_va_start): Add prototype.
+
+2007-12-06 Tom Tromey <tromey@redhat.com>
+
+ PR c/29172:
+ * c-opts.c (c_common_parse_file): Call cpp_clear_file_cache.
+
+2007-12-06 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.c (mips_function_ok_for_sibcall): Check
+ targetm.binds_local_p as well as DECL_EXTERNAL.
+
+2007-12-06 Harsha Jagasia <harsha.jagasia@amd.com>
+
+ * tree-vectorizer.c (slpeel_add_loop_guard): Gimplify the condition.
+ (set_prologue_iterations): New. Set the prologue iterations to total
+ number of scalar iterations if the cost model check indicates that
+ scalar code should be generated.
+ (slpeel_tree_peel_loop_to_edge): Add a new parameter and code for
+ generating the cost condition for epilog. Call
+ set_prologue_iterations to generate cost condition for prolog.
+ (new_loop_vec_info): Initialize LOOP_VINFO_NITERS_UNCHANGED.
+ * tree-vectorizer.h (LOOP_VINFO_NITERS_UNCHANGED): New.
+ (slpeel_tree_peel_loop_to_edge): Update declaration.
+ (set_prologue_iterations): New declaration.
+ * tree-vect-analyze.c (vect_analyze_loop_form): Update
+ LOOP_VINFO_NITERS_UNCHANGED.
+ * tree-vect-transform.c
+ (vect_estimate_min_profitable_iters): Add new parameter and
+ code to check if run time cost model test is needed.
+ Remove code that adds builtin vectorization cost to scalar
+ outside cost for the run time cost model test. If run time
+ cost model test is needed add the appropriate guard cost to
+ the scalar outside cost. The guard cost depends on whether
+ the guard is generated at versioning or at prolog generation
+ or at epilog generation. Change cost model equation to include
+ scalar outside cost.
+ (conservative_cost_threshold): New. Return the less conservative
+ profitability threshold between the cost model threshold and the
+ user defined vectorization threshold.
+ (vect_do_peeling_for_loop_bound): Call conservative_cost_threshold.
+ (vect_do_peeling_for_alignment): Same.
+ (vect_loop_versioning): Same.
+ (vect_create_cond_for_align_checks): ANDs the cost model condition
+ with the alignment condition.
+ (vect_transform_loop): Call loop versioning only when there is a
+ misalignment or an aliasing problem.
+
+2007-12-06 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/20983
+ * tree-ssa-ccp.c (optimize_stdarg_builtin): New function.
+ (execute_fold_all_builtins): Call it for BUILT_IN_VA_START,
+ BUILT_IN_VA_COPY and BUILT_IN_VA_END.
+
+ * target.h (struct ggc_target): Add expand_builtin_va_start hook.
+ * target-def.h (TARGET_EXPAND_BUILTIN_VA_START): Define.
+ (TARGET_INITIALIZER): Add it.
+ * builtins.c (expand_builtin_va_start): Use
+ targetm.expand_builtin_va_start hook instead of
+ EXPAND_BUILTIN_VA_START macro.
+ * alpha/alpha.c (alpha_va_start): Made static.
+ (override_options): Clear targetm.expand_builtin_va_start if
+ TARGET_UNICOSMK.
+ (TARGET_EXPAND_BUILTIN_VA_START): Define.
+ * alpha/unicosmk.h (EXPAND_BUILTIN_VA_START): Remove.
+ * alpha/alpha.h (EXPAND_BUILTIN_VA_START): Remove.
+ * alpha/alpha-protos.h (alpha_va_start): Remove prototype.
+ * xtensa/xtensa.h (EXPAND_BUILTIN_VA_START): Remove.
+ * xtensa/xtensa.c (TARGET_EXPAND_BUILTIN_VA_START): Define.
+ (xtensa_va_start): Made static.
+ * xtensa/xtensa-protos.h (xtensa_va_start): Remove prototype.
+ * pa/pa-protos.h (hppa_va_start): Remove prototype.
+ * pa/pa.h (EXPAND_BUILTIN_VA_START): Remove.
+ * pa/pa.c (hppa_va_start): Made static, add prototype.
+ (TARGET_EXPAND_BUILTIN_VA_START): Define.
+ * frv/frv.c (frv_expand_builtin_va_start): Made static, add prototype.
+ (TARGET_EXPAND_BUILTIN_VA_START): Define.
+ * frv/frv-protos.h (frv_expand_builtin_va_start): Remove prototype.
+ * frv/frv.h (EXPAND_BUILTIN_VA_START): Remove.
+ * i386/i386.c (override_options): Clear
+ targetm.expand_builtin_va_start if -m32 or 64-bit MS ABI.
+ (ix86_va_start): Made static.
+ (TARGET_EXPAND_BUILTIN_VA_START): Define.
+ * i386/i386.h (EXPAND_BUILTIN_VA_START): Remove.
+ * i386/i386-protos.h (ix86_va_start, ix86_va_arg): Remove prototypes.
+ * iq2000/iq2000-protos.h (iq2000_va_start): Remove prototype.
+ * iq2000/iq2000.h (EXPAND_BUILTIN_VA_START): Remove.
+ * iq2000/iq2000.c (iq2000_va_start): Made static, add prototype.
+ (TARGET_EXPAND_BUILTIN_VA_START): Define.
+ * rs6000/rs6000-protos.h (rs6000_va_start): Remove prototype.
+ * rs6000/rs6000.c (rs6000_va_start): Made static, add prototype.
+ (TARGET_EXPAND_BUILTIN_VA_START): Define.
+ (rs6000_override_options): Clear targetm.expand_builtin_va_start if
+ DEFAULT_ABI != ABI_V4.
+ * rs6000/rs6000.h (EXPAND_BUILTIN_VA_START): Remove.
+ * spu/spu.c (spu_va_start): Made static, add prototype.
+ (TARGET_EXPAND_BUILTIN_VA_START): Define.
+ * spu/spu.h (EXPAND_BUILTIN_VA_START): Remove.
+ * spu/spu-protos.h spu_va_start): Remove prototype.
+ * stormy16/stormy16.h (EXPAND_BUILTIN_VA_START): Remove.
+ * stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_start):
+ Remove prototype.
+ * stormy16/stormy16.c (xstormy16_expand_builtin_va_start): Made static.
+ (TARGET_EXPAND_BUILTIN_VA_START): Define.
+ * s390/s390-protos.h (s390_va_start): Remove prototype.
+ * s390/s390.c (s390_va_start): Made static.
+ (TARGET_EXPAND_BUILTIN_VA_START): Define.
+ * s390/s390.h (EXPAND_BUILTIN_VA_START): Remove.
+ * mn10300/mn10300.h (EXPAND_BUILTIN_VA_START): Remove.
+ * mn10300/mn10300-protos.h (mn10300_va_start): Remove prototype.
+ * mn10300/mn10300.c (mn10300_va_start): Made static, add prototype.
+ (TARGET_EXPAND_BUILTIN_VA_START): Define.
+ * arc/arc.c (arc_va_start): Made static, add prototype.
+ (TARGET_EXPAND_BUILTIN_VA_START): Define.
+ * arc/arc.h (EXPAND_BUILTIN_VA_START): Remove.
+ * arc/arc-protos.h (arc_va_start): Remove prototype.
+ * mt/mt-protos.h (mt_va_start): Remove prototype.
+ * sparc/sparc.c (sparc_va_start): Made static, add prototype.
+ (TARGET_EXPAND_BUILTIN_VA_START): Define.
+ * sparc/sparc-protos.h (sparc_va_start): Remove prototype.
+ * sparc/sparc.h (EXPAND_BUILTIN_VA_START): Remove.
+ * sh/sh.c (sh_va_start): Made static, add prototype.
+ (TARGET_EXPAND_BUILTIN_VA_START): Define.
+ * sh/sh-protos.h (sh_va_start): Remove prototype.
+ * sh/sh.h (EXPAND_BUILTIN_VA_START): Remove.
+ * mips/mips-protos.h (mips_va_start): Remove prototype.
+ * mips/mips.h (EXPAND_BUILTIN_VA_START): Remove.
+ * mips/mips.c (mips_va_start): Made static.
+ (TARGET_EXPAND_BUILTIN_VA_START): Define.
+
+2007-12-06 Uros Bizjak <ubizjak@gmail.com>
+
+ * tree-ssa-loop.c (gate_tree_parallelize_loops): Return true when
+ "flag_tree_parallelize_loops > 1".
+
+2007-12-06 Zdenek Dvorak <ook@ucw.cz>
+ Dorit Nuzman <dorit@il.ibm.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/34005
+ * tree-gimple.c (is_gimple_formal_tmp_rhs): Add a case for COND_EXPR.
+ * gimplify.c (gimplify_ctx): Add a new member allow_rhs_cond_expr.
+ (gimplify_pure_cond_expr): New function.
+ (generic_expr_could_trap_p): New function.
+ (gimplify_cond_expr): Call gimplify_pure_cond_expr.
+ (force_gimple_operand): Initialize new field allow_rhs_cond_expr.
+
+2007-12-06 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.c (s390_emit_stack_tie): New function.
+ (s390_emit_prologue): Emit a stack tie when writing to the
+ f8-f15 stack slots.
+ * config/s390/s390.md ("stack_tie"): New insn definition.
+
+2007-12-06 Ben Elliston <bje@au.ibm.com>
+
+ * SERVICE: Remove.
+ * doc/sourcebuild.texi (Miscellaneous Docs): Remove SERVICE item.
+
+2007-12-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/34337
+ * fold-const.c (fold_binary) <case BIT_IOR_EXPR>: Don't minimize
+ number of bits set in C1 if a mode mask for some mode can be used
+ instead.
+
+2007-12-05 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * varasm.c (merge_weak, weak_finish, assemble_alias): Commentary typo
+ fixes.
+
+2007-12-05 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34138
+ * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
+ Do not forward propagate addresses if that changes volatileness of
+ the pointed-to type.
+
+2007-12-05 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/34312
+ * config/i386/i386.c (ix86_function_regparm): Also check for fixed
+ registers when checking that regparm registers are available.
+ Lower regparm value due to fixed registers usage in addition to
+ global regs usage.
+
+2007-12-05 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * sparseset.c: Include config.h and system.h before sparseset.h.
+ * sparseset.h: Remove inclusion of system.h.
+
+2007-12-05 Jakub Jelinek <jakub@redhat.com>
+ Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * optabs.c (init_insn_codes): New function.
+ (new_optab): Delete.
+ (init_optab, init_optabv): Don't call new_optab.
+ (init_convert_optab): Don't clear the insn codes.
+ (init_optabs): Call init_insn_codes.
+
+2007-12-04 Jakub Jelinek <jakub@redhat.com>
+
+ * omp-low.c (optimize_omp_library_calls): New function.
+ (expand_omp_parallel): Call it if optimizing.
+
+ PR middle-end/34134
+ * stmt.c (expand_stack_restore): Call expand_normal on var to get
+ rtx for it instead of assuming it will be a VAR_DECL.
+
+2007-12-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * c-parser (c_parser_statement_after_labels): Move error from here...
+ (c_parser_label): ... to here. Check that the declaration is not
+ actually just another label.
+
+2007-12-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34334
+ PR middle-end/34222
+ * tree-ssa-operands.c (get_addr_dereference_operands): If we
+ fall back to using the SMTs aliases, make sure to add virtual
+ operands for the SMT itself.
+ (create_ssa_artificial_load_stmt): Fix typo. Make sure to also
+ clear the loaded and stored symbols bitmaps.
+
+2007-12-04 Ben Elliston <bje@au.ibm.com>
+
+ * config/spu/spu.h (ASM_FORMAT_PRIVATE_NAME): Remove; use default.
+
+2007-12-04 Ben Elliston <bje@au.ibm.com>
+
+ * doc/tm.texi (Exception Handling): Mention unwind-dw2-xtensa.c.
+
+2007-12-03 Steven Bosscher <stevenb.gcc@gmail.com>
+
+ PR middle-end/33713
+ * doc/invoke.texi: Remove -fforce-addr documentation.
+ * expr.c (emit_move_insn): Remove use of flag_force_addr.
+ (expand_expr_real_1): Same.
+ (do_tablejump): Same.
+ Call memory_address instead of memory_address_noforce.
+ * expr.h (memory_address_noforce): Remove prototype.
+ * explow.c (memory_address): Remove support for flag_force_addr.
+ (validize_mem): Same.
+ (memory_address_noforce): Remove.
+ * common.opt: Add dummy documentation for -fforce-addr.
+ * combine.c (can_combine_p): Remove -fforce-addr comment.
+ * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove set of
+ flag_force_addr.
+ * config/m68k/m68k.h (PIC_CASE_VECTOR_ADDRESS): Remove comment
+ relating to memory_address_noforce.
+ * testsuite/gcc.c-torture/compile/20050802-1.c: Remove.
+ * testsuite/gcc.c-torture/compile/20011113-1.c: Remove.
+
+2007-12-03 Jakub Jelinek <jakub@redhat.com>
+
+ * omp-low.c (lookup_decl_in_outer_ctx): Allow calling this
+ with !ctx->is_nested.
+ (maybe_lookup_decl_in_outer_ctx): Look up in outer contexts
+ even if !ctx->is_nested.
+ (lower_copyprivate_clauses, lower_send_clauses,
+ lower_send_shared_vars): Call lookup_decl_in_outer_ctx
+ unconditionally.
+
+ PR middle-end/29749
+ * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Optimize
+ (X << C1) & C2 into (X << C1) & (C2 | ((1 << C1) - 1))
+ and (X >> C1) & C2 into (X >> C1) & (C2 | ~((type) -1 >> C1)).
+ (fold_binary) <case LSHIFT_EXPR, case RSHIFT_EXPR>: Optimize
+ (X & C2) << C1 into (X << C1) & (C2 << C1) and
+ (X & C2) >> C1 into (X >> C1) & (C2 >> C1) if that allows further
+ optimizations.
+
+ PR tree-optimization/33453
+ * tree-data-ref.c (split_constant_offset): Use POINTER_PLUS_EXPR
+ for pointer addition.
+ * tree-parloops.c (canonicalize_loop_ivs): Likewise.
+ (separate_decls_in_loop_name): Copy DECL_GIMPLE_REG_P from var to
+ var_copy.
+
+2007-12-03 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __FDPIC__ as
+ necessary.
+
+2007-12-03 Razya Ladelsky <razya@il.ibm.com>
+
+ * doc/invoke.texi (fipa-cp, fipa-matrix-reorg): Add documentation.
+
+2007-12-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/34317
+ * opts.c (common_handle_option): Handle OPT_ftree_store_copy_prop.
+ * common.opt (ftree-store-copy-prop): Use the same help text as for
+ other nop switches.
+
+2007-12-02 Ayal Zaks <zaks@il.ibm.com>
+ Revital Eres <eres@il.ibm.com>
+
+ * modulo-sched.c (calculate_must_precede_follow,
+ try_scheduling_node_in_cycle): New functions.
+ (sms_schedule_by_order): Call the new functions.
+ (ps_insn_find_column): Use must_follow and must_precede only if
+ they are not NULL.
+ (ps_insn_advance_column): Likewise.
+
+2007-12-02 Ayal Zaks <zaks@il.ibm.com>
+ Revital Eres <eres@il.ibm.com>
+
+ * modulo-sched.c (get_sched_window): Fix the direction of the
+ scheduling window and add dump info.
+
+2007-12-02 Samuel Tardieu <sam@rfc1149.net>
+
+ * config/sh/sh.md (cmpgeusi_t): Fix condition.
+
+2007-11-30 Jan Hubicka <jh@suse.cz>
+
+ * ggc-common.c (dump_ggc_loc_statistics): Reset ggc_force_collect flag.
+
+2007-11-30 Seongbae Park <seongbae.park@gmail.com>
+
+ PR rtl-optimization/34171
+ * cfgrtl.c (update_bb_for_insn_chain): New function,
+ refactored from update_bb_for_insn.
+ (update_bb_for_insn): Call update_bb_for_insn.
+ (rtl_merge_blocks, try_redirect_by_replacing_jump):
+ Replace a loop with update_bb_for_insn_chain call.
+ (cfg_layout_merge_blocks): Add a call to
+ update_bb_for_insn_chain. Replace the for loop
+ with a call to update_bb_for_insn_chain.
+
+2007-11-30 Ben Elliston <bje@au.ibm.com>
+
+ * config/vax/vax.h (ASM_FORMAT_PRIVATE_NAME): Remove. Use default.
+
+2007-11-29 Zdenek Dvorak <ook@ucw.cz>
+
+ PR tree-optimization/34244
+ * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
+ (record_numbers_of_iterations): New function.
+ (execute_vrp): Cache the numbers of iterations of loops.
+ * tree-scalar-evolution.c (scev_reset_except_niters): New function.
+ (scev_reset): Use scev_reset_except_niters.
+ * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
+
+2007-11-29 Jan Hubicka <jh@suse.cz>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/33434
+ * tree-inline.c (setup_one_parameter): If the value passed to
+ a parameter is never used, don't set it up.
+
+2007-11-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/32130
+ * config/rs6000/eabi-cn.asm (__DTOR_END__): Make it weak.
+ * config/rs6000/sol-cn.asm (__DTOR_END__): Likewise.
+
+2007-11-29 Andris Pavenis <andris.pavenis@iki.fi>
+
+ * Makefile.in: Use separate vpath lines for each path.
+
+2007-11-29 Ben Elliston <bje@au.ibm.com>
+
+ * SERVICE: Update URL.
+
+2007-11-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/34140
+ * tree-if-conv.c (if_convertible_phi_p): Fail if BB other than
+ loop->header has virtual phi nodes.
+
+2007-11-28 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ PR target/32406
+ * builtins.c (expand_builtin_nonlocal_goto): Also emit a use
+ of GP register, if valid and fixed.
+
+ Revert:
+ 2007-06-21 David Daney <ddaney@avtrex.com>
+
+ PR target/32406
+ * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
+ to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
+ (exception_receiver): Renamed to ...
+ (nonlocal_goto_receiver): ... this.
+
+2007-11-27 H.J. Lu <hongjiu.lu@intel.com>
+ Joey Ye <joey.ye@intel.com>
+
+ PR target/34001
+ * config/i386/i386.c (function_arg_32): Don't pass aggregate
+ arguments in ECX/EDX for fastcall.
+
+2007-11-28 Rask Ingemann Lambertsen <rask@sygehus.dk>
+
+ * config/i386/linux.h (CRT_GET_RFIB_DATA): Add Intel syntax inline
+ asm to macro.
+ * config/i386/sco5.h (CRT_GET_RFIB_DATA): Likewise.
+ * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Likewise.
+
+2007-11-28 Ben Elliston <bje@au.ibm.com>
+
+ * config/rs6000/aix64.opt (maix64): Add Negative(maix32).
+ (maix32): Add Negative(maix64).
+
+2007-11-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/34016
+ * tree-ssa-loop.c (pass_linear_transform): Add
+ TODO_update_ssa_only_virtuals to todo_flags_finish.
+
+2007-11-27 Eric B. Weddington <eric.weddington@atmel.com>
+
+ * config/avr/avr.c (avr_mcu_types): Add atmega32hvb.
+ * config/avr/avr.h (LINK_SPEC): Likewise.
+ (CRT_BINUTILS_SPECS): Likewsie.
+ * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
+
+2007-11-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/34225
+ * config/rs6000/rs6000.c (adjacent_mem_locations): Don't assume
+ MEM_SIZE is set on all MEMs.
+
+2007-11-27 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.opt (mhard-float): Add the option to be
+ overridden. That was missing in my last patch.
+
+2007-11-27 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34241
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr): Make sure
+ to only delete real conversion chains.
+
+2007-11-27 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.opt (m31, m64, mesa, mzarch, msoft-float,
+ mhard-float, mlong-double-64, mlong-double-128): Add the
+ option to be overridden.
+
+2007-11-27 Richard Guenther <rguenther@suse.de>
+
+ * builtins.c (fold_builtin_1): Verify the argument types
+ of BUILT_IN_ISNORMAL.
+ (fold_builtin_n): Verify the number of arguments to variadic
+ built-in functions.
+
+2007-11-27 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/elf.h (SUBTARGET_DRIVER_SELF_SPECS): New macro.
+ * doc/invoke.texi (Blackfin Options): Document the effects.
+
+2007-11-27 Ben Elliston <bje@au.ibm.com>
+
+ * config/rs6000/sysv4.opt (m32): Add Negative(m64).
+ (m64): Add Negative(m32).
+ * config/rs6000/darwin.opt (m32): Add Negative(m64).
+ (m64): Add Negative(m32).
+
+2007-11-26 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-ssa-propagate.c (set_rhs) <GIMPLE_MODIFY_STMT>: Fix typo.
+
+2007-11-26 Michael Meissner <michael.meissner@amd.com>
+
+ PR target/34077
+ * config/i386/i386.c (ix86_expand_movmem): If the copy size is a
+ constant, avoid calling emit_cmp_and_jump_insns. Use counter_mode
+ to get the mode for loading a pseudo register with a count rather
+ than duplicating code.
+
+2007-11-25 Eric B. Weddington <eric.weddington@atmel.com>
+
+ * config/avr/avr.c (avr_mcu_types): Add atmega1284p.
+ * config/avr/avr.h (LINK_SPEC): Likewise.
+ (CRT_BINUTILS_SPECS): Likewsie.
+ * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
+
+2007-11-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * c-common.c (conversion_warning): Use get_unwidened instead of
+ get_narrower.
+
+2007-11-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c/23722
+ * c-parser.c (struct c_parser): New bit in_if_block.
+ (c_parser_compound_statement_nostart): Handle unexpected 'else'
+ keyword.
+ (c_parser_statement_after_labels): Set in_if_block to false while
+ parsing.
+ (c_parser_if_body): Don't call c_parser_statement_after_labels if
+ a semicolon is found, just consume it. Don't call
+ c_parser_statement_after_labels if an open brace is found, call
+ c_parser_compound_statement instead.
+ (c_parser_else_body): New.
+ (c_parser_if_statement): Set in_if_block to true when parsing the
+ body of the 'if' statement. Use c_parser_else_body.
+
+2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ PR c++/34081
+ * c-decl.c (store_parm_decls): Pass 'false' for the new
+ allocate_struct_function parameter.
+ * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
+ * tree-parloops.c (create_loop_fn): Likewise.
+ * function.c (push_function_context_to, push_struct_function,
+ init_function_start): Likewise.
+ (allocate_struct_function): Add boolean parameter.
+ * tree.h (allocate_struct_function): Add boolean parameter.
+ * function.h (struct function): Move returns_struct and
+ returns_pcc_struct to the end of the structure definiton.
+
+2007-11-26 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/34215
+ * config/i386/i386.md (truncdfsf2): Select SLOT_TEMP stack slot if
+ virtual registers are already instantiated.
+ (truncxf<mode>2): Ditto.
+ (floatsi<mode>2): Ditto.
+ (floatdisf2): Ditto.
+ (floatdidf2): Ditto.
+