+2007-02-23 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.md (doloop_end): Fail for loops that can iterate
+ 2^32-1 or more times unless flag_unsafe_loop_optimizations.
+
+ * loop-iv.c (determine_max_iter): Moved in front of its sole user.
+
+2007-02-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (fold_builtin_logb, fold_builtin_significand): New.
+ (fold_builtin_1): Use them.
+ * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
+ BUILT_IN_SIGNIFICAND.
+
+2007-02-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (bdesc_1arg): Initialize
+ IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with
+ "__builtin_ia32_movshdup" and "__builtin_ia32_movsldup".
+ (ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP
+ and IX86_BUILTIN_MOVSLDUP.
+
+2007-02-22 Paolo Bonzini <bonzini@gnu.org>
+
+ PR rtl-optimization/30841
+ * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address.
+
+2007-02-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (fold_builtin_frexp): New.
+ (fold_builtin_2): Use it.
+
+2007-02-22 Mark Mitchell <mark@codesourcery.com>
+
+ * doc/invoke.texi (Spec Files): Document getenv spec function.
+
+ * gcc.c (getenv_spec_function): New function.
+ (static_spec_functions): Add it.
+ * config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
+ (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
+ header files.
+
+2007-02-22 Michael Matz <matz@suse.de
+
+ PR c++/29433
+ * dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
+ (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME.
+
+2007-02-22 Ian Lance Taylor <iant@google.com>
+
+ PR debug/30898
+ * dwarf2out.c (concatn_mem_loc_descriptor): New static function.
+ (mem_loc_descriptor): Call it.
+
+2007-02-22 Zdenek Dvorak <dvorakz@suse.cz>
+ Ira Rosen <irar@il.ibm.com>
+
+ * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account.
+
+2007-02-22 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/30843
+ * tree-vect-transform.c (vect_transform_loop): Remove strided scalar
+ stores only after all the group is vectorized.
+
+2007-02-22 Dorit Nuzman <dorit@il.ibm.com>
+
+ PR tree-optimization/30858
+ * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts
+ in the reduction cycle have a single use in the loop.
+ * tree-vectorizer.h (relevant): Add documentation.
+
+2007-02-20 Mike Stump <mrs@apple.com>
+
+ * configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>.
+ * configure: Regenerate.
+
+2007-02-21 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
+
+ Change the defaults of some parameters and options.
+ * config/spu/spu-protos.h (spu_optimization_options): Declare.
+ * config/spu/spu.c (spu_optimization_options): Add.
+ (spu_override_options): Change params in spu_optimization_options.
+ * config/spu/spu.h (OPTIMIZATION_OPTIONS): Define.
+
+ Register 127 is only 16 byte aligned when used as a frame pointer.
+ * config/spu/spu-protos.h (spu_init_expanders): Declare.
+ * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
+ HARD_FRAME_POINTER_REGNUM.
+ (spu_legitimate_address): Use regno_aligned_for_reload.
+ (regno_aligned_for_load): HARD_FRAME_POINTER_REGNUM is only 16 byte
+ aligned when frame_pointer_needed is true.
+ (spu_init_expanders): New. Set alignment of HARD_FRAME_POINTER_REGNUM
+ to 8 bits.
+ * config/spu/spu.h (INIT_EXPANDERS): Define.
+
+ Make sure shift and rotate instructions have valid immediate operands.
+ * config/spu/predicates.md (spu_shift_operand): Remove.
+ * config/spu/spu.c (print_operand): Add [efghEFGH] modifiers.
+ * config/spu/constraints.md (W, O): Extend range.
+ * config/spu/spu.md (umask, nmask): Define.
+ (ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti,
+ lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>,
+ rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
+ rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
+ spu_nonmem_operand instead of spu_shift_operands. Use new modifiers.
+ (lshr<mode>3_reg): Fix rtl description.
+
+ Make sure mulhisi immediate operands are valid.
+ * config/spu/predicates.md (imm_K_operand): Add.
+ * config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand.
+
+ Generate constants using fsmbi and andi.
+ * config/spu/spu.c (enum immediate_class): Add IC_FSMBI2.
+ (print_operand, spu_split_immediate, classify_immediate,
+ fsmbi_const_p): Handle IC_FSMBI2.
+
+ Correctly handle a CONST_VECTOR containing symbols.
+ * config/spu/spu.c (print_operand): Handle HIGH correctly.
+ (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
+ (immediate_load_p): Allow symbols that use 2 instructions to create.
+ (classify_immediate, spu_builtin_splats): Don't accept a CONST_VECTOR
+ with symbols when flag_pic is set.
+ (const_vector_immediate_p): New.
+ (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
+ accept a CONST_VECTOR with symbols.
+ (spu_legitimate_constant_p): Use const_vector_immediate_p. Don't
+ accept a CONST_VECTOR with symbols when flag_pic is set. Handle HIGH
+ correctly.
+ * config/spu/spu.md (high, low): Delete.
+ (low_<mode>): Define.
+
+ Remove INTRmode and INTR_REGNUM, which didn't work.
+ * config/spu/spu.c (spu_conditional_register_usage): Remove reference
+ of INTR_REGNUM.
+ * config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr,
+ set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed
+ peephole2 pattern): Don't use INTR or 131.
+ (movintrcc): Delete.
+ * config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS,
+ CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM.
+ * config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove.
+ (UNSPEC_SET_INTR): Add.
+ * config/spu/spu-modes.def (INTR): Remove.
+
+ More accurate warnings about run-time relocations.
+ * config/spu/spu.c (reloc_diagnostic): Test in_section.
+
+ Correctly warn about immediate arguments to specific intrinsics.
+ * config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs.
+ (spu_expand_builtin_1): Call spu_check_builtin_parm before checking
+ the instruction predicate.
+
+ Fix tree check errors with latest update.
+ * config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use
+ CALL_EXPR_ARG.
+ (spu_expand_builtin): Use CALL_EXPR_FN.
+
+ Add missing specific intrinsics.
+ * config/spu/spu-builtins.def: Add si_bisled, si_bisledd and
+ si_bislede.
+ * config/spu/spu_internals.h: Ditto.
+
+ Fix incorrect operand modifiers.
+ * config/spu/spu-builtins.md (spu_mpy, spu_mpyu): Remove use of %H.
+ * config/spu/spu.md (xor<mode>3): Change %S to %J.
+
+ Optimize one case of zero_extend of a vec_select.
+ * config/spu/spu.md (_vec_extractv8hi_ze): Add.
+
+ Accept any immediate for hbr.
+ * config/spu/spu.md (hbr): Change s constraints to i.
+
+2007-02-21 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt
+ condexec_count when skipping USE and CLOBBER.
+
+2007-02-21 Nick Clifton <nickc@redhat.com>
+
+ * common.opt (Warray-bounds): Add Warning attribute.
+ (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch):
+ Likewise.
+ (fsized-zeroes): Add Optimization attribute.
+ (fsplit-wide-types, ftree-scev-cprop): Likewise.
+ * c.opt (Wc++0x-compat): Add Warning attribute.
+
+2007-02-21 Ulrich Weigand <uweigand@de.ibm.com>
+
+ PR middle-end/30761
+ * reload1.c (eliminate_regs_in_insn): In the single_set special
+ case, attempt to re-recognize the insn before falling back to
+ having reload fix it up.
+
+2007-02-20 Eric Christopher <echristo@gmail.com>
+
+ * config/frv/frv.c (frv_read_argument): Take a tree and int argument.
+ Rewrite accordingly.
+ (frv_read_iacc_argument): Ditto.
+ (frv_expand_set_builtin): Take a call instead of arglist, update for
+ above changes.
+ (frv_expand_unop_builtin): Ditto.
+ (frv_expand_binop_builtin): Ditto.
+ (frv_expand_cut_builtin): Ditto.
+ (frv_expand_binopimm_builtin): Ditto.
+ (frv_expand_voidbinop_builtin): Ditto.
+ (frv_expand_int_void2arg): Ditto.
+ (frv_expand_prefetches): Ditto.
+ (frv_expand_voidtriop_builtin): Ditto.
+ (frv_expand_voidaccop_builtin): Ditto.
+ (frv_expand_load_builtin): Ditto.
+ (frv_expand_store_builtin): Ditto.
+ (frv_expand_mdpackh_builtin): Ditto.
+ (frv_expand_mclracc_builtin): Ditto.
+ (frv_expand_mrdacc_builtin): Ditto.
+ (frv_expand_mwtacc_builtin): Ditto.
+ (frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update
+ calls for above.
+
+2007-02-20 Janis Johnson <janis187@us.ibm.com>
+
+ * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
+ * configure.ac (HAVE_GAS_CMPB): Check for assembler support of the
+ cmpb instruction.
+ (HAVE_GAS_DFP): Check for assembler support of decimal floating
+ point instructions.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+ * config/rs6000/rs6000.opt (mcmpb, mdfp): New.
+ * config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP
+ masks to power6 and power6x and to POWERPC_MASKS.
+ * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
+ _ARCH_PWR6.
+ * config/rs6000/rs6000.h: Check assembler support for CMPB and DFP.
+ * config/rs6000/sysv4.opt (mprototype): Use variable, not mask.
+ * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
+ Access PROTOTYPE as variable, not mask.
+
+2007-02-20 Steven Bosscher <steven@gcc.gnu.org>
+
+ * rtl.h (remove_reg_equal_equiv_notes): New prototype.
+ * rtlanal.c (remove_reg_equal_equiv_notes): New function.
+ * combine.c (adjust_for_new_dest): Use it.
+ * postreload.c (reload_combine): Likewise.
+
+2007-02-20 Steven Bosscher <steven@gcc.gnu.org>
+
+ * rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ*
+ notes on an insn with multiple sets, even if single_set returns
+ non-NULL for that insn.
+
+2007-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
+ scalbn and scalbln.
+
+2007-02-20 Geoffrey Keating <geoffk@apple.com>
+
+ * config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
+ if user didn't pass it.
+ * config/i386/darwin.h (CC1_SPEC): Likewise.
+ * config/rs6000/darwin.h (CC1_SPEC): Likewise.
+ (DARWIN_MINVERSION_SPEC): Don't depend on user's setting of
+ -mmacosx-version-min.
+
+2007-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+ Uros Bizjak <ubizjak@gmail.com>
+
+ * optabs.h (enum optab_index): Add new OTI_scalb.
+ (scalb_optab): Define corresponding macro.
+ * optabs.c (init_optabs): Initialize scalb_optab.
+ * genopinit.c (optabs): Implement scalb_optab using scalb?f3
+ patterns.
+ * builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle
+ BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}.
+ (expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L}
+ and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if
+ flag_unsafe_math_optimizations is set.
+
+ * config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders
+ to implement scalbf, scalb and scalbl built-ins as inline x87
+ intrinsics.
+
+2007-02-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+ DJ Delorie <dj@redhat.com>
+
+ PR other/30824
+ * diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to...
+ (diagnostic_report_diagnostic): ... here, and turn them into real
+ errors. If warnings are inhibited, no need to do anything.
+
+2007-02-20 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (expm1xf2): Reorder insn sequence for
+ better code generation.
+
+2007-02-20 Ben Elliston <bje@au.ibm.com>
+
+ * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;.
+
+2007-02-20 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/alpha/alpha.c, config/alpha/alpha.md,
+ config/alpha/lib1funcs.asm, config/alpha/vms-crt0-64.c,
+ config/alpha/vms-psxcrt0-64.c, config/arc/arc.c,
+ config/arc/arc.h, config/arm/arm.c, config/arm/arm.md,
+ config/arm/lib1funcs.asm: Follow spelling conventions.
+
+ * config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c,
+ config/fr30/fr30.md, config/i386/i386.h,
+ config/iq2000/iq2000.h, config/iq2000/predicates.md,
+ config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h,
+ config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
+ config/pdp11/pdp11.c, config/pdp11/pdp11.h,
+ config/rs6000/altivec.md, config/rs6000/rs6000.c,
+ config/s390/s390-modes.def, config/sparc/netbsd-elf.h,
+ config/sparc/sparc.c, config/sparc/sparc.h,
+ config/sparc/sparc.md, config/spu/constraints.md,
+ config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling
+ conventions.
+
+2007-02-20 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/29943
+ * varasm.c (use_blocks_for_decl_p): Return false for decls with
+ alias attribute.
+
+2007-02-19 Kazu Hirata <kazu@codesourcery.com>
+
+ * doc/invoke.texi (-ftree-lrs): Remove.
+
+2007-02-19 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-ssa-pre.c (create_value_expr_from): Initialize POOL to
+ NULL.
+
+2007-02-19 Lee Millward <lee.millward@codesourcery.com>
+
+ * config/ia64/ia64.c (ia64_expand_builtin): Use the
+ new CALL_EXPR_FN macro for retrieving the function
+ declaration of the input expression.
+
+2007-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * c.opt (Waddress): New.
+ * common.opt (Walways-true): Delete.
+ (Wstring-literal-comparison): Delete.
+ * doc/invoke.texi (Warning Options): Delete -Walways-true and
+ -Wstring-literal-comparison. Add -Waddress.
+ (Waddress): New.
+ (Walways-true): Delete.
+ (Wstring-literal-comparison): Delete.
+ * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
+ consistently instead of -Walways-true in example.
+ * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
+ * c-typeck.c (parser_build_binary_op): Replace
+ -Wstring-literal-comparison and -Walways-true with -Waddress.
+ * c-common.c (c_common_truthvalue_conversion): Replace -Walways-true
+ with -Waddress.
+
+2007-02-19 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-cfg.c (dump_function_to_file): Be prepared for functions
+ without DECL_STRUCT_FUNCTION initialized.
+
+2007-02-19 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
+ due to calls to functions taking pointers as parameters.
+
+2007-02-19 Richard Henderson <rth@redhat.com>
+
+ PR debug/29558
+ * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
+ in memory.
+
+2007-02-19 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.c (s390_call_saved_register_used,
+ s390_function_ok_for_sibcall): Adjust the way CALL_EXPR arguments are
+ accessed to the new scheme.
+
+2007-02-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
+
+ * config/cris/cris.c (cris_movem_load_rest_p, cris_store_multiple_op_p)
+ (cris_print_index, cris_print_operand, cris_print_operand_address)
+ (cris_reload_address_legitimized, cris_rtx_costs, cris_address_cost)
+ (cris_side_effect_mode_ok, cris_valid_pic_const, cris_split_movdx)
+ (cris_expand_pic_call_address): Use xxx_P predicate macros instead of
+ GET_CODE () == xxx.
+ * config/cris/cris.h (SECONDARY_RELOAD_CLASS, EXTRA_CONSTRAINT_Q,
+ EXTRA_CONSTRAINT_T, BDAP_INDEX_P, BIAP_INDEX_P, SIMPLE_ADDRESS_P,
+ GO_IF_LEGITIMATE_ADDRESS): Ditto.
+ * config/cris/cris.md (define_insns: *btst, movdi, *mov_side<mode>)
+ (*mov_sidesisf, *mov_side<mode>_mem, *mov_sidesisf_mem)
+ (*clear_side<mode>, movsi, *movsi_internal, *ext_sideqihi)
+ (*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>, addsi3)
+ (*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side)
+ (*extop<mode>si_swap_side, addi_mul, *addi,andsi3, andhi3, ashl<mode>3)
+ (uminsi3, call, call_value): Ditto.
+ (define_split: indir_to_reg_split, unnamed): Ditto.
+
+2007-02-19 Dorit Nuzman <dorit@il.ibm.com>
+
+ PR tree-optimization/30975
+ * tree-vect-trasnform.c (vect_get_vec_def_for_stmt_copy): Remove
+ wrong assert.
+
+2007-02-18 Eric Christopher <echristo@gmail.com>
+
+ * mips.c (mips_prepare_builtin_arg): Add argnum parameter.
+ Remove use of arglist.
+ (mips_expand_builtin): Remove use of arglist, pass in expr.
+ (mips_expand_builtin_direct): Rewrite handling for arglist removal.
+ (mips_expand_builtin_movtf): Ditto.
+ (mips_expand_builtin_compare): Ditto.
+
+2007-02-19 Alexandre Oliva <aoliva@redhat.com>
+
+ * tree-sra.c (sra_build_assignment): Replace assertion
+ checking with a comment explaining why it can't be done.
+
+2007-02-18 Sandra Loosemore <sandra@codesourcery.com>
+
+ PR middle-end/30833
+ * tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed
+ during CALL_EXPR representation conversion.
+ * tree-ssa-propagate.c (set_rhs): Likewise.
+
+2007-02-19 Alexandre Oliva <aoliva@redhat.com>
+
+ * tree-sra.c (sra_build_assignment): Disable assertion checking
+ for now.
+
+2007-02-18 Roger Sayle <roger@eyesopen.com>
+
+ * function.c (gimplify_parameters): Call build_gimple_modify_stmt
+ instead of calling build2 with a GIMPLE_MODIFY_STMT.
+ * gimple-low.c (lower_function_body, lower_builtin_setjmp):
+ Likewise.
+ * gimplify.c (build_stack_save_restore, gimplify_return_expr,
+ gimplify_decl_expr, gimplify_self_mod_expr, gimplify_cond_expr,
+ gimplify_init_ctor_eval_range, gimple_push_cleanup,
+ gimplify_omp_for, gimplify_omp_atomic_pipeline,
+ gimplify_omp_atomic_mutex, gimplify_expr, gimplify_one_sizepos,
+ force_gimple_operand): Likewise.
+ * ipa-cp.c (constant_val_insert): Likewise.
+ * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
+ lambda_loopnest_to_gcc_loopnest, replace_uses_equiv_to_x_with_y,
+ perfect_nestify): Likewise.
+ * langhooks.c (lhd_omp_assignment): Likewise.
+ * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses,
+ lower_copyprivate_clauses, lower_send_clauses,
+ lower_send_shared_vars, expand_parallel_call,
+ expand_omp_for_generic, expand_omp_for_static_nochunk,
+ expand_omp_for_static_chunk, expand_omp_sections,
+ lower_omp_single_copy, lower_omp_for_lastprivate,
+ lower_omp_parallel, init_tmp_var, save_tmp_var): Likewise.
+ * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
+ tree_mod_subtract, tree_ic, tree_stringop_fixed_value):
+ Likewise.
+
+2007-02-19 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/sh/divtab.c, config/sh/sh.c, config/sh/sh.h,
+ config/sh/sh.md: Follow spelling conventions.
+
+ * config/frv/frv.c, config/frv/frv.h, config/frv/frv.md,
+ config/frv/predicates.md: Follow spelling conventions.
+
+ * config/m68k/linux-unwind.h: Fix a comment typo.
+ * target.h: Follow spelling conventions.
+
+2007-02-18 Roger Sayle <roger@eyesopen.com>
+
+ PR rtl-optimization/28173
+ * simplify-rtx.c (simplify_binary_operation_1) <IOR>: Optimize
+ (X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects.
+ Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0.
+ Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2.
+ <AND>: Canonicalize (X | C1) & C2 as (X & C2) | (C1 & C2).
+
+2007-02-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (fold_builtin_load_exponent): New.
+ (fold_builtin_2): Use it.
+
+2007-02-18 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR rtl-optimization/30773
+ * local-alloc.c (update_equiv_regs): Do not set reg_equiv_init
+ if we fail to attach a REG_EQUIV note.
+
+2007-02-18 David Edelsohn <edelsohn@gnu.org>
+ Roger Sayle <roger@eyesopen.com>
+
+ * config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter.
+
+2007-02-18 Sandra Loosemore <sandra@codesourcery.com>
+
+ * calls.c (initialize_argument_information): Pass original EXP
+ and STRUCT_VALUE_ADDR_VALUE instead of a list of arguments. Move
+ code to split complex arguments here, as part of initializing the
+ ARGS array.
+ (expand_call): Remove code that builds a list of arguments and
+ inserts implicit arguments into it. Instead, just count how many
+ implicit arguments there will be so we can determine the size of
+ the ARGS array, and let initialize_argument_information do the work.
+ (split_complex_values): Delete unused function.
+
+2007-02-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.
+
+2007-02-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * calls.c (mem_overlaps_already_clobbered_arg_p): Return true
+ for arg pointer based indexed addressing.
+
+2007-02-18 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/ia64/ia64.h, config/ia64/ia64.md,
+ config/ia64/predicates.md, config/ia64/sysv4.h: Follow
+ spelling conventions.
+
+2007-02-18 Roman Zippel <zippel@linux-m68k.org>
+
+ * config/m68k/m68k.c (split_di): New.
+ * config/m68k/m68k-protos.h: Declare split_di.
+ * config/m68k/m68k.md (extendsidi2*,ashldi3*,ashrdi3*,lshrdi3*):
+ Improve predicate handling and split constant shifts.
+
+2007-02-18 Roman Zippel <zippel@linux-m68k.org>
+
+ * config/m68k/m68k.md (extv,extzv,insv): disable dynamic
+ parameter for register bitfield operations, general predicates
+ cleanup
+
+2007-02-18 Roman Zippel <zippel@linux-m68k.org>
+
+ * config/m68k/linux.h (MD_UNWIND_SUPPORT): Define.
+ * config/m68k/linux-unwind.h: New file.
+
+2007-02-18 Kazu Hirata <kazu@codesourcery.com>
+
+ * cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c,
+ config/i386/athlon.md, config/ia64/ia64.md,
+ config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md,
+ df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c,
+ ipa-prop.h, see.c, struct-equiv.c, tree-inline.c,
+ tree-ssa-loop-niter.c, tree-vect-analyze.c,
+ tree-vect-transform.c: Fix comment typos.
+
+2007-02-17 Kazu Hirata <kazu@codesourcery.com>
+
+ * sched-deps.c (find_insn_list): Remove.
+ * sched-int.h: Remove the prototype for find_insn_list.
+
+2007-02-16 Geoffrey Keating <geoffk@apple.com>
+
+ * config/darwin.h (LINK_SPEC): Always pass -macosx_version_min
+ to linker.
+ (DARWIN_EXTRA_SPECS): Add %(darwin_minversion).
+ * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Just call
+ darwin_rs6000_override_options.
+ (C_COMMON_OVERRIDE_OPTIONS): Expect
+ darwin_macosx_version_min to be non-NULL always.
+ (TARGET_C99_FUNCTIONS): Likewise.
+ (CC1_SPEC): Always pass -mmacosx-version-min to cc1*.
+ (DARWIN_MINVERSION_SPEC): New.
+ * config/rs6000/rs6000.c (darwin_rs6000_override_options): New.
+ * config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min
+ to cc1*.
+ (DARWIN_MINVERSION_SPEC): New.
+ * config/darwin.opt (mmacosx-version-min): Initialize to non-NULL
+ value.
+ * config/darwin-c.c (darwin_cpp_builtins): Expect
+ darwin_macosx_version_min to be non-NULL always.
+
+ * config/rs6000/rs6000.c: Clean up trailing whitespace.
+
+2007-02-16 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.h (x86_use_xchgb): New.
+ (TARGET_USE_XCHGB): New macro.
+ * config/i386/i386.c (x86_use_xchgb): Set for PENT4.
+ * config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter):
+ Split after reload into bswaphi for shifts of 8.
+ (bswaphi_lowpart): Generate rolw insn for HImode byte swaps.
+ (*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB
+ or when optimizing for size.
+
+2007-02-16 Richard Guenther <rguenther@suse.de>
+ Christian Bruel <christian.bruel@st.com>
+
+ * fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like
+ DECLs but prefer SSA_NAMEs over DECLs.
+
+2007-02-16 Richard Guenther <rguenther@suse.de>
+
+ * tree-flow-inline.h (single_imm_use_p): Remove.
+ (zero_imm_uses_p): Likewise.
+ * tree-ssa-coalesce.c (create_outofssa_var_map): Use has_single_use
+ instead of single_imm_use_p.
+ * tree-cfg.c (replace_uses_by): Use has_zero_use instead of
+ zero_imm_uses_p.
+
+2007-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR other/27843
+ * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
+ nested double- and backquotes.
+
2007-02-15 Roger Sayle <roger@eyesopen.com>
PR middle-end/30391
(expand_call): Likewise.
* except.c (expand_builtin_eh_return_data_regno): Pass entire
- CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR
- accessors.
+ CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR
+ accessors.
* coverage.c (create_coverage): Use build_call_expr.
* tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR
accessors and constructor.
- (convert_tramp_reference): Likewise.
+ (convert_tramp_reference): Likewise.
(convert_call_expr): Likewise.
(finalize_nesting_tree_1): Likewise.
2007-02-15 Paolo Bonzini <bonzini@gnu.org>
* caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
-
+
2007-02-15 Nick Clifton <nickc@redhat.com>
* varasm.c (default_asm_output_anchor): Prepend * to . symbol in
2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* alias.c (find_symbolic_term): Delete unused function.
-
+
2007-02-12 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (paritydi2, paritysi2): New expanders.
(c_finish_stmt_expr): Don't check extra_warnings.
(emit_side_effect_warnings): The caller is responsible to check
warn_unused_value.
-
+
2007-02-11 Roger Sayle <roger@eyesopen.com>
Matt Thomas <matt@3am-software.com>
2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* doc/invoke.texi (Wextra): Delete outdated paragraph.
-
+
2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* dwarf2out.c (root_type): Delete unused function.
-
+
2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* genattrtab.c (contained_in_p): Delete unused function.
(struct state): Delete unused longest_path_length.
(UNDEFINED_LONGEST_PATH_LENGTH): Delete unused macro.
(get_free_state): Delete unused.
-
+
2007-02-09 Jan Hubicka <jh@suse.cz>
* params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30.
(extendsfdf2_mixed, extendsfdf2_sse, truncdfsf_fast_mixed,
truncdfsf_fast_sse, truncdfsf_mixed, fix_truncdfdi_sse,
fix_truncdfsi_sse, floatsidf2_mixed, floatsidf2_sse,
- floatdidf2_mixed, floatdidf2_sse, absnegdf2_mixed,
+ floatdidf2_mixed, floatdidf2_sse, absnegdf2_mixed,
absnegdf2_sse, sse_setccdf, fop_df_comm_mixed, fop_df_comm_sse,
fop_df_1_mixed, fop_df_1_sse): Change Y constraints to x.
* config/i386/mmx.md (mov<MMXMODEI>_internal_rex64,
(create_nesting_tree): Create outside GGC space. Create bitmap on
the new obstack. Create field_map and var_map as pointer_maps.
(free_nesting_tree): Adjust for changes to create_nesting_tree.
- (root): Delete.
+ (root): Delete.
(lower_nested_functions): Move root here, no need to NULL it.
Initialize and release the obstack.
(vect_is_simple_reduction): Support reduction with induction as
one of the operands.
(vect_is_simple_iv_evolution): Fix formatting.
- * tree-vect-analyze.c (vect_mark_stmts_to_be_vectorized): Fix
+ * tree-vect-analyze.c (vect_mark_stmts_to_be_vectorized): Fix
formatting. Don't mark induction phis for vectorization.
(vect_analyze_scalar_cycles): Analyze all inductions, then reductions.
* tree-vect-transform.c (get_initial_def_for_induction): New function.
(vect_get_vec_def_for_operand): Support induction.
(vect_get_vec_def_for_stmt_copy): Fix formatting and add check for
induction case.
- (vectorizable_reduction): Support reduction with induction as one of
- the operands.
+ (vectorizable_reduction): Support reduction with induction as one of
+ the operands.
(vectorizable_type_demotion): Use def-type of stmt argument rather
than dummy def-type.
2007-02-06 Ira Rosen <irar@il.ibm.com>
- * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that
+ * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that
vectype is not NULL.
(vect_pattern_recog_1): Likewise.
sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387,
sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387,
sqrtextenddfxf2_i387): Added amdfam10_decode.
-
+
* config/i386/athlon.md (athlon_idirect_amdfam10,
athlon_ivector_amdfam10, athlon_idirect_load_amdfam10,
athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10,
cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10,
cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10,
cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10,
- cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New
+ cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New
define_insn_reservation.
* config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si,
* config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro.
(x86_sse_unaligned_move_optimal): New variable.
-
- * config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for
+
+ * config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for
m_AMDFAM10.
(ix86_expand_vector_move_misalign): Add code to generate movupd/movups
for unaligned vector SSE double/single precision loads for AMDFAM10.
(TARGET_CPU_CPP_BUILTINS): Add code for amdfam10.
Define TARGET_CPU_DEFAULT_amdfam10.
(TARGET_CPU_DEFAULT_NAMES): Add amdfam10.
- (processor_type): Add PROCESSOR_AMDFAM10.
-
+ (processor_type): Add PROCESSOR_AMDFAM10.
+
* config/i386/i386.md: Add amdfam10 as a new cpu attribute to match
processor_type in config/i386/i386.h.
Enable imul peepholes for TARGET_AMDFAM10.
-
+
* config.gcc: Add support for --with-cpu option for amdfam10.
-
+
* config/i386/i386.c (amdfam10_cost): New variable.
(m_AMDFAM10): New macro.
(m_ATHLON_K8_AMDFAM10): New macro.
(x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop,
x86_promote_QImode, x86_integer_DFmode_moves,
- x86_partial_reg_dependency, x86_memory_mismatch_stall,
+ x86_partial_reg_dependency, x86_memory_mismatch_stall,
x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
x86_sse_partial_reg_dependency, x86_sse_typeless_stores,
x86_use_ffreep, x86_use_incdec, x86_four_jump_limit,
x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns):
Enable/disable for amdfam10.
(override_options): Add amdfam10_cost to processor_target_table.
- Set up PROCESSOR_AMDFAM10 for amdfam10 entry in
+ Set up PROCESSOR_AMDFAM10 for amdfam10 entry in
processor_alias_table.
(ix86_issue_rate): Add PROCESSOR_AMDFAM10.
(ix86_adjust_cost): Add code for amdfam10.
2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
-
+
* config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm)
- instruction set feature flag. Add new (-mpopcnt) flag for popcnt
+ instruction set feature flag. Add new (-mpopcnt) flag for popcnt
instruction. Add new SSE4A (-msse4a) instruction set feature flag.
* config/i386/i386.h: Add builtin definition for SSE4A.
- * config/i386/i386.md: Add support for ABM instructions
+ * config/i386/i386.md: Add support for ABM instructions
(popcnt and lzcnt).
* config/i386/sse.md: Add support for SSE4A instructions
(movntss, movntsd, extrq, insertq).
* ipa-inline.c (try_inline): Improve debug output; work on already
inline edges too.
(cgraph_decide_inlining_incrementally): Indent; improve debug output;
- call try_inline for already inlined edges too when flattening;
+ call try_inline for already inlined edges too when flattening;
inline also functions that make callee growth but overall unit size
reduce.
2007-02-03 Douglas Gregor <doug.gregor@gmail.com>
- * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't
- warn about C++0x compatibility.
-
+ * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't
+ warn about C++0x compatibility.
+
2007-02-04 Kazu Hirata <kazu@codesourcery.com>
* config/h8300/h8300.c, config/h8300/h8300.h,
Revert for x86 darwin:
2005-06-19 Uros Bizjak <uros@kss-loka.si>
-
+
* config/i386/i386.c (ix86_function_arg_regno_p): Put back the
code before the following patch under TARGET_MACHO.
(ix86_function_value_regno_p): Likewise.
2007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
* sched-int.h (ds_to_dk, dk_to_ds): Declare functions.
-
+
(struct _dep): New type.
(dep_t): New typedef.
(DEP_PRO, DEP_CON, DEP_KIND): New access macros.
(RESOLVED_DEPS): Rename to INSN_RESOLVED_BACK_DEPS.
(INSN_COST): Move to haifa-sched.c. Use insn_cost () instead.
-
+
(DEP_STATUS): Rename to DEP_LINK_STATUS. Fix typo in the comment.
(add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration and
all callers.
(dep_cost): Declare.
-
+
* sched-deps.c (CHECK): New macro to (en/dis)able sanity checks.
(ds_to_dk, dk_to_ds): New functions.
-
+
(init_dep_1): New static function.
(init_dep): New function.
(copy_dep): New static function.
-
+
(dep_link_consistent_p, attach_dep_link, add_to_deps_list): New static
functions.
(detach_dep_link): New static function.
(move_dep_link): New function.
-
+
(dep_links_consistent_p, dump_dep_links): New static functions.
(debug_dep_links): New debugging function.
-
+
(deps_obstack, dl_obstack, dn_obstack): New static variables.
-
+
(alloc_deps_list, init_deps_list): New static functions.
(create_deps_list): New function.
(clear_deps_list): New static function.
(sched_analyze): Ditto. Initialize dependencies lists.
(add_forw_dep, compute_forward_dependences): Update to use new
scheduler dependencies lists.
-
+
(init_dependency_caches): Init deps_obstack.
(free_dependency_caches): Free deps_obstack.
-
+
(adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Update to use
new scheduler dependencies lists.
(delete_forw_dep, add_or_update_back_forw_dep): Ditto.
(is_conditionally_protected, is_prisky, add_branch_dependences): Ditto.
(debug_dependencies): Ditto.
(schedule_region): Update comments.
-
+
* sched-ebb.c (earliest_block_with_similiar_load): Update to use new
scheduler dependencies lists.
(schedule_ebb): Update comments.
-
+
* rtl.def (DEPS_LIST): Remove.
-
+
* lists.c (unused_deps_list): Remove.
(free_list): Update assertions.
-
+
(alloc_DEPS_LIST, free_DEPS_LIST_list, free_DEPS_LIST_node): Remove.
(remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
* rtl.h (free_DEPS_LIST_list, alloc_DEPS_LIST): Remove declarations.
(remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
-
+
* haifa-sched.c (comments): Update.
(insn_cost1): Remove. Inline the code into insn_cost ().
(insn_cost): Update to use new scheduler dependencies lists. Move
from resolve_dep () - see PR28071.
(ok_for_early_queue_removal): Update to use new scheduler dependencies
lists. Update call to targetm.sched.is_costly_dependence hook.
-
+
(fix_inter_tick, try_ready, fix_tick_ready): Update to use new
scheduler dependencies lists.
-
+
(resolve_dep): Remove. Move the logic to schedule_insn ().
(init_h_i_d): Initialize dependencies lists.
-
+
(process_insn_depend_be_in_spec): Rename to
process_insn_forw_deps_be_in_spec. Update to use new scheduler
dependencies lists.
(add_to_speculative_block, create_check_block_twin, fix_recovery_deps):
Update to use new scheduler dependencies lists.
(clear_priorities, calc_priorities, add_jump_dependencies): Ditto.
-
+
* ddg.c (create_ddg_dependence, create_ddg_dep_no_link): Update to use
new scheduler dependencies lists.
(build_intra_loop_deps): Ditto.
-
+
* target.h (struct _dep): Declare to use in
gcc_target.sched.is_costly_dependence.
(struct gcc_target.sched.adjust_cost): Fix typo.
* doc/rtl.texi (LOG_LINKS): Remove part about instruction scheduler.
(REG_DEP_TRUE): Document.
-
+
* config/ia64/ia64.c (ia64_adjust_cost_2): Rename to ia64_adjust_cost.
- Change signature to correspond to the targetm.sched.adjust_cost hook.
+ Change signature to correspond to the targetm.sched.adjust_cost hook.
Update use in TARGET_SCHED_ADJUST_COST_2.
(TARGET_SCHED_ADJUST_COST_2): Rename to TARGET_SCHED_ADJUST_COST.
(ia64_dependencies_evaluation_hook, ia64_dfa_new_cycle): Update to use
* config/mips/mips.c (vr4130_swap_insns_p): Update to use new scheduler
dependencies lists.
-
+
* config/rs6000/rs6000.c (rs6000_is_costly_dependence): Change
signature to correspond to the targetm.sched.is_costly_dependence hook.
(is_costly_group): Update to use new scheduler dependencies lists.