OSDN Git Service

* config/rs6000/rs6000.c (rs6000_stack_info): Allocate space for the
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 4b0271c..1dd19c0 100644 (file)
@@ -1,3 +1,274 @@
+2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space for the
+       GOT pointer only if there is a constant pool.  Use the allocated space
+       for SPE also.
+
+2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Correct
+       typo for AltiVec.
+
+2007-09-04  Revital Eres  <eres@il.ibm.com>
+           Richard Guenther  <rguenther@suse.de>
+           R. Clint Whaley  <whaley@cs.utsa.edu>
+
+       * doc/invoke.texi (-fassociative-math, -freciprocal-math):
+       Document new flags.
+       * tree-tailcall.c (process_assignment): Use -fassociative-math
+       when reodering operands of floating-point type.
+       * fold-const.c (fold_comparison, fold_binary): Use
+       -fassociative-math and -freciprocal-math instead of
+       -funsafe-math-optimization flag.
+       * toplev.h (set_unsafe_math_optimizations_flags): Declare function.
+       * tree-ssa-math-opts.c (gate_cse_reciprocals): Use
+       -freciprocal-math instead of -funsafe-math-optimizations.
+       * opts.c (set_fast_math_flags): Set -freciprocal-math and
+       -fassociative-math when -ffast-math is set.
+       (set_unsafe_math_optimizations_flags): New Function
+       to set -freciprocal-math and -fassociative-math when
+       -funsafe-math-optimizations is set.
+       (common_handle_option): Call it.
+       * tree-vectorizer.c (vect_is_simple_reduction): Use
+       -fassociative-math when doing reduction on floats.
+       * loop-unroll.c (analyze_insn_to_expand_var): Use
+       -fassociative-math when expanding an accumulator of type float.
+       * simplify-rtx.c (simplify_binary_operation_1): Use
+       -fassociative-math and -freciprocal-math when reordeing operands
+       of floating-point type.
+       * combine.c (combine_simplify_rtx): Likewise.
+       * tree-ssa-reassoc.c (break_up_subtract_bb, reassociate_bb):
+       Likewise.
+       * common.opt (-fassociative-math, -freciprocal-math): New flags.
+
+2007-09-04  Paolo Carlini  <pcarlini@suse.de>
+
+       PR c++/18608
+       * doc/install.texi (--enable-__cxa_atexit): Fix typo.
+
+2007-09-04  Jan Hubicka  <jh@suse.cz>
+
+       * regrename.c(copyprop_hardreg_forward_1): Unshare when doing copyprop.
+
+2007-09-04  Jan Hubicka  <jh@suse.cz>
+
+       * regrename.c (build_def_use): Don't share RTL between MATCH_OPERATOR
+       and corresponding MATCH_DUP.
+
+2007-09-04  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR middle-end/33187
+       * combine.c (subst): Do not try to simplify X if it represents load
+       of FP constant from the constant pool via float extension.
+
+2007-09-04  Ben Elliston  <bje@au.ibm.com>
+
+       * c-opts.c: Include "tm_p.h".
+       * Makefile.in (c-opts.o): Add $(TM_P_H) as a dependency.
+
+2007-09-04  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/33291
+       * tree-pretty-print.c (dump_generic_node): Dump all
+       qualifiers for pointer types, not only first.  Dump
+       qualifiers for aggregate types as well.
+       * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Always
+       use the canonical type for building ARRAY_REFs.
+       * gimplify.c (canonicalize_addr_expr): Clean up.  The
+       correct validness check is compatibility of the pointer
+       types.  Always use the canonical type for building
+       ARRAY_REFs and ADDR_EXPRs.
+       * tree-ssa-forwprop.c (forward_propagate_addr_expr): Revert
+       change that disabled propagation of ADDR_EXPRs into statements
+       with volatile ops.
+
+2007-09-03  Zack Weinberg  <zack@codesourcery.com>
+
+       * config/arm/arm.md (mulsidi3, umulsidi3, mulsi3_highpart)
+       (umulsi3_highpart): Make into expanders; existing insns are
+       now named *[insn]_nov6.  Add stars to existing [insn]_v6
+       counterparts' names.
+
+2007-09-03  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * Makefile.in (DRIVER_DEFINES, gcc.o, gccspec.o, protoize.o)
+       (unprotoize.o): Remove SHLIB_MULTILIB.
+
+2007-09-03  Eric Weddington  <eweddington@cso.atmel.com>
+
+       * doc/extend.texi: Document progmem attribute for AVR.
+
+2007-09-03  Anatoly Sokolov <aesok@post.ru>
+
+       PR target/28902
+       * config/avr/avr.h (TARGET_VTABLE_ENTRY_ALIGN): Define.
+
+2007-09-03  Zack Weinberg  <zack@codesourcery.com>
+
+       * optabs.c (expand_ffs): Initialize val and defined_at_zero
+       to avoid warnings.
+
+       * optabs.c: Remove unnecessary forward declarations.
+       (expand_unop_direct): New, broken out of expand_unop.
+       (expand_doubleword_clz): New.
+       (expand_ctz): Move above expand_ffs.  Use
+       start_sequence, end_sequence, add_equal_note, and
+       expand_unop_direct.  Add more commentary.
+       (expand_ffs): Try both ctz optab and expand_ctz.
+       Generate a test and branch if the hardware doesn't give us
+       a useful value for input zero.  Style improvements similar to
+       expand_ctz.
+
+       * config/arm/arm.md (ffssi2, ctzsi2): Delete.
+
+2007-09-03  Zack Weinberg  <zack@codesourcery.com>
+
+       * config.gcc: Delete stanza for arm-semi-aof and
+       armel-semi-aof targets.
+       * config/arm/arm-protos.h
+       * config/arm/arm.c
+       * config/arm/arm.h: Delete all #ifdef AOF_ASSEMBLER blocks;
+       make all #ifndef AOF_ASSEMBLER blocks unconditional.  Also
+       delete aof_pic_label and remove mention of AOF in comments.
+       * config/arm/arm.md: Delete patterns used only for AOF assembly.
+       * config/arm/aof.h
+       * config/arm/semiaof.h
+       * config/arm/t-semi: Delete file.
+
+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.