OSDN Git Service

* system.h (CONST_CAST2, CONST_CAST_TREE, CONST_CAST_RTX,
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index efbaba0..3cd2afa 100644 (file)
@@ -1,9 +1,237 @@
+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