+2007-09-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * system.h (CONST_CAST2, CONST_CAST_TREE, CONST_CAST_RTX,
+ CONST_CAST_BB): New macros for type-specific casts.
+ (CONST_CAST): Add a TYPE parameter and define it in terms of
+ CONST_CAST2.
+
+ * c-decl.c (c_make_fname_decl): Supply a TYPE for CONST_CAST.
+ * c-lex.c (cb_ident, lex_string): Likewise,
+ * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise,
+ * config/i386/i386.c (ix86_function_regparm,
+ ix86_function_sseregparm): Use CONST_CAST_TREE.
+ * config/mmix/mmix.c (mmix_encode_section_info): Supply a TYPE for
+ CONST_CAST.
+ * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
+ give_switch, set_multilib_dir): Likewise,
+ * gengtype-parse.c (string_seq, typedef_name): Likewise,
+ * gimple-low.c (block_may_fallthru): Use CONST_CAST_TREE.
+ * jump.c (reversed_comparison_code_parts): Use CONST_CAST_RTX.
+ * passes.c (execute_one_pass): Supply a TYPE for CONST_CAST.
+ * prefix.c (update_path): Likewise,
+ * pretty-print.c (pp_base_destroy_prefix): Likewise,
+ * rtlanal.c (keep_with_call_p): Use CONST_CAST_RTX.
+ * tree-cfg.c (tree_can_merge_blocks_p,
+ tree_block_ends_with_condjump_p): Use CONST_CAST_BB.
+ * tree-eh.c (lookup_stmt_eh_region_fn): USe CONST_CAST_TREE.
+ * tree.c (build_string): Supply a TYPE for CONST_CAST.
+ (attribute_list_contained): Use CONST_CAST_TREE.
+
+2007-09-03 Krister Walfridsson <cato@df.lth.se>
+
+ * config/netbsd-elf.h (USE_LD_AS_NEEDED): Define.
+
+2007-09-03 Richard Sandiford <richard@codesourcery.com>
+
+ PR middle-end/33290
+ * optabs.c (avoid_expensive_constant): Canonicalize CONST_INTs
+ before forcing them into a register.
+
+2007-09-03 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.md (fetchop_bit): Use define_code_iterator
+ rather than define_code_macro.
+
+2007-09-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * gcc.c (xputenv): New function.
+ (putenv_from_prefixes): Use xputenv instead of putenv.
+ (process_command): Use xputenv instead of putenv.
+ (set_collect_gcc_options): Use xputenv instead of putenv.
+ (main): Use xputenv instead of putenv.
+
+2007-09-03 Jesper Nilsson <jesper.nilsson@axis.com>
+
+ * config/cris/cris.h (TARGET_HAS_SWAP): Defined to describe
+ availability of swap instruction.
+ * config/cris/cris.md (bswapsi2): Implement using swap instruction.
+
+2007-09-03 Revital Eres <eres@il.ibm.com>
+
+ * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Update
+ Documentation.
+
+2007-09-03 Vladimir Yanovsky <yanov@il.ibm.com>
+ Ayal Zaks <zaks@il.ibm.com>
+ Revital Eres <eres@il.ibm.com>
+
+ * modulo-sched.c (ps_insert_empty_row, verify_partial_schedule,
+ compute_split_row): New functions.
+ (ps_unschedule_node): Remove.
+ (normalize_sched_times): Iterate over the already scheduled
+ insns instead of the number of nodes.
+ (MAX_SPLIT_NUM): New definition.
+ (sms_schedule_by_order): Change the scheduling heuristic to
+ avoid useless increases of initiation interval ii.
+ (get_sched_window): Add dump printouts.
+
+2007-09-02 David Daney <ddaney@avtrex.com>
+
+ * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP, UNSPEC_SYNC_OLD_OP,
+ UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE): New define_constants.
+ (optab, insn): Add more attributes.
+ (fetchop_bit): New code macro.
+ (immediate_insn): New code macro attribute.
+ (sync): Change condition to ISA_HAS_SYNC.
+ (rdhwr): Change predicate for operand 0 to register_operand.
+ (memory_barrier): New expand.
+ (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>,
+ sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
+ sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
+ sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
+ sync_new_nand<mode>, sync_lock_test_and_set<mode>): New insns.
+ * config/mips/mips.h (ISA_HAS_SYNC, ISA_HAS_LL_SC): New ISA predicates.
+ (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP,
+ MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
+ MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): New Macros.
+
+2007-09-03 Jesper Nilsson <jesper.nilsson@axis.com>
+ Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.h (TARGET_HAS_LZ, CLZ_DEFINED_VALUE_AT_ZERO):
+ Defined to describe availability and behavior of CLZ.
+ * config/cris/cris.md (clzsi2): Implement using lz instruction.
+ * config/cris/cris.opt: Tweak comment for "-metrax4".
+ * config/cris/arit.c (LZ): When defined, define as __builtin_clz.
+ * longlong.h [__CRIS__ && __CRIS_arch_version >= 3]
+ (count_leading_zeros): Define.
+
+2007-09-01 Laurynas Biveinis <laurynas.biveinis@gmail.com>
+
+ * ggc-page.c (ggc_pch_read): Call validate_free_objects.
+
+2007-09-02 Joseph Myers <joseph@codesourcery.com>
+
+ PR middle-end/33272
+ * c-decl.c (grokdeclarator): Apply qualifiers to type of parameter
+ decayed from array.
+
+2007-09-01 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/arm/arm.c, config/rs6000/ppu_intrinsics.h,
+ config/spu/spu.c, df-scan.c, fixed-value.c, fold-const.c,
+ ginclude/tgmath.h, haifa-sched.c, optabs.c, recog.c,
+ sched-deps.c, sched-int.h, system.h, target.h,
+ tree-ssa-live.c, tree-vect-transform.c, tree-vectorizer.c,
+ tree.def: Fix comment typos.
+
+2007-09-01 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove.
+ (override_options): Turn on -mstrict-align on non-ColdFire
+ targets.
+ * config/m68k/m68k.h (BIGGEST_ALIGNMENT): Update a comment.
+
+2007-09-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * c-common.c (const_strip_array_types): Delete.
+ * c-common.h (const_strip_array_types): Likewise.
+ * emit-rtl.c (const_next_insn, const_previous_insn,
+ const_next_nonnote_insn, const_prev_nonnote_insn,
+ const_next_real_insn, const_prev_real_insn,
+ const_next_active_insn, const_prev_active_insn, const_next_label,
+ const_prev_label): Delete.
+ * gimple-low.c (block_may_fallthru): Use expr_last.
+ * jump.c (reversed_comparison_code_parts): Use prev_nonnote_insn.
+ * rtl.h (const_previous_insn, const_next_insn,
+ const_prev_nonnote_insn, const_next_nonnote_insn,
+ const_prev_real_insn, const_next_real_insn,
+ const_prev_active_insn, const_next_active_insn, const_prev_label,
+ const_next_label): Delete.
+ * rtlanal.c (keep_with_call_p): Use next_nonnote_insn.
+ * system.h (CONST_CAST): Update comment.
+ * tree-cfg.c (tree_can_merge_blocks_p): Use last_stmt.
+ (const_first_stmt, const_last_stmt): Delete.
+ (tree_block_ends_with_condjump_p): Use last_stmt.
+ * tree-flow.h (const_first_stmt, const_last_stmt): Delete.
+ * tree-iterator.c (const_expr_first, const_expr_last,
+ const_expr_only): Delete.
+ * tree.c (const_lookup_attribute): Likewise.
+ (attribute_list_contained): Use lookup_attribute.
+ * tree.h (const_lookup_attribute, const_expr_first,
+ const_expr_last, const_expr_only): Delete.
+
+2007-09-01 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-alias.c (create_name_tags): Use TYPE_VOLATILE
+ instead of TREE_THIS_VOLATILE.
+ * tree-ssa-operands.c (add_virtual_operand): Do not set
+ has_volatile_ops. Do not check s_ann for NULL.
+ (get_indirect_ref_operands): Likewise.
+ (get_expr_operands): Likewise. For all reference trees
+ set has_volatile_ops based on TREE_THIS_VOLATILE. Also
+ check base of reference for TREE_THIS_VOLATILE.
+
+2007-09-01 Richard Guenther <rguenther@suse.de>
+
+ * tree-cfg.c (verify_gimple_expr): Fix check for conversions
+ between integral types. Also allow conversions between
+ pointer types.
+
+2007-08-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * optabs.c (prepare_float_lib_cmp): Use
+ libgcc_cmp_return_mode instead of word_mode.
+ * config/dfp-bit.h: Likewise.
+ * config/fp-bit.h: Likewise.
+ * config/spu/spu.c (spu_libgcc_cmp_return_mode):
+ New function.
+ (spu_libgcc_shift_count_mode): New function.
+ (TARGET_LIBGCC_CMP_RETURN_MODE): Define.
+ (TARGET_LIBGCC_SHIFT_COUNT_MODE): Define.
+
+2007-08-31 Joseph Myers <joseph@codesourcery.com>
+
+ * tree-pretty-print.c: Include output.h.
+ (dump_decl_name, dump_generic_node): Use %wd with pp_printf, not
+ HOST_WIDE_INT_PRINT_DEC.
+ * Makefile.in (tree-pretty-print.o): Add dependency on output.h.
+
+2007-08-31 Zdenek Dvorak <ook@ucw.cz>
+
+ PR rtl-optimization/33224
+ * loop-iv.c (latch_dominating_def): Check that the definition belongs
+ to the analysed region.
+
+2007-08-31 Richard Guenther <rguenther@suse.de>
+
+ * function.c (allocate_struct_function): Do not set
+ current_function_returns_pointer.
+ * function.h (struct var_refs_queue): Remove.
+ (struct simple_obstack_stack): Likewise.
+ (struct function): Remove fixup_var_refs_queue member.
+ Remove returns_pointer flag.
+ (current_function_returns_pointer): Remove define.
+
+2007-08-31 Nick Clifton <nickc@redhat.com>
+
+ * tree-ssa-coalesce.c (compare_pairs): Use the elements as
+ secondary keys in order to obtain a stable sort.
+
+2007-08-31 Nick Clifton <nickc@redhat.com>
+
+ PR target/33132
+ * config/m32r/constraints.md: Add W constraint for integer zero.
+ * config/m32r/m32r.md (get_pc): Use W and i constraints.
+ Fix length calculation by using alternatives.
+
+2007-08-31 Richard Sandiford <richard@codesourcery.com>
+
+ * optabs.c (shift_optab_p, commutative_optab_p): New functions,
+ split out from expand_binop.
+ (avoid_expensive_constant): New function.
+ (expand_binop_directly): Remove commutative_op argument and
+ (expand_binop_directly): Remove commutative_op argument and
+ call cummutative_optab_p instead. Do not change op0 or op1
+ when swapping xop0 and xop1. Apply avoid_expensive_constant
+ to each argument after potential swapping. Enforce the
+ canonical order of commutative operands.
+ (expand_binop): Use shift_optab_p and commutative_optab_p.
+ Update the calls to expand_binop_directly. Only force constants
+ into registers when widening an operation. Only swap operands
+ once a direct expansion has been rejected.
+ (expand_twoval_binop): Only force constants into registers when
+ using a direct expansion.
+
2007-08-31 Maxim Kuvyrkov <maxim@codesourcery.com>
* sched-deps.c (update_dep): Mark arguments with ATTRIBUTE_UNUSED.