OSDN Git Service

2008-05-23 Rafael Espindola <espindola@google.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 6763695..2eda8f4 100644 (file)
@@ -1,3 +1,316 @@
+2008-05-23  Rafael Espindola  <espindola@google.com>
+
+       * see.c (see_get_extension_data): Don't use SUBREG_REG to test
+       if a node is a SUBREG.
+       (see_analyze_one_def): Don't use SUBREG_REG to test if a node
+       is a SUBREG.
+
+2008-05-23  Paul Brook  <paul@codesourcery.com>
+           Carlos O'Donell  <carlos@codesourcery.com>
+
+       * doc/extend.texi: Clarify use of __attribute__((naked)).
+       * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
+       * target.h (gcc_target): Add allocate_stack_slots_for_args.
+       * function.c (use_register_for_decl): Use
+       targetm.calls.allocate_stack_slots_for_args.
+       * target-def.h (TARGET_CALLS): Add 
+       TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
+       * config/arm/arm.c (arm_allocate_stack_slots_for_args): 
+       New function.
+       (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
+
+2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
+
+2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
+
+       * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
+       PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
+       is only rounded once.
+
+2008-05-23  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-operands.c (mark_difference_for_renaming): Use
+       bitmap_xor.
+
+2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/36079
+       * configure.ac: Handle --enable-cld.
+       * configure: Regenerated.
+       * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
+       * config/i386/i386.h (struct machine_function): Add needs_cld field.
+       (ix86_current_function_needs_cld): New define.
+       * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
+       (cld): New isns pattern.
+       (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
+       cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
+       * config/i386/i386.opt (mcld): New option.
+       * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
+       TARGET_CLD and ix86_current_function_needs_cld.
+       (override_options): Use -mcld by default for 32-bit code if
+       USE_IX86_CLD.
+
+       * doc/install.texi (Options specification): Document --enable-cld.
+       * doc/invoke.texi (Machine Dependent Options)
+        [i386 and x86-64 Options]: Add -mcld option.
+        (Intel 386 and AMD x86-64 Options): Document -mcld option.
+
+2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
+       * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
+       (return_in_memory_64): Likewise.
+       (return_in_memory_ms_64): Likewise.
+
+2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
+       * builtins.c (fold_builtin_fpclassify): New.
+       (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
+       * builtins.def (BUILT_IN_FPCLASSIFY): New.
+       * c-common.c (handle_type_generic_attribute): Adjust to accept
+       fixed arguments before an elipsis.
+       (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
+       * doc/extend.texi: Document __builtin_fpclassify.
+
+2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
+
+       * omp-low.c (gate_expand_omp_ssa): Remove.
+       (pass_expand_omp_ssa): Remove.
+       (gate_expand_omp): Do not check for flag_openmp_ssa.
+       * common.opt (-fopenmp-ssa): Remove.
+       * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
+
+2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.opt (mfixed-range): New option.
+       * config/sh/sh-protos.h (sh_fix_range): Declare.
+       * config/sh/sh.c (sh_fix_range): New function.
+       * config/sh/sh.h (sh_fixed_range_str): Declare.
+       (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
+       is not empty.
+       * doc/invoke.texi (SH Options): Document -mfixed-range.
+
+2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
+
+       * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
+       it before the redeclaration.
+
+2008-05-22  Anatoly Sokolov <aesok@post.ru>
+
+       * config/avr/avr.c (get_sequence_length): Add new function.
+       (expand_prologue, expand_epilogue): Remove duplicate code.
+
+2008-05-22  Rafael Espindola  <espindola@google.com>
+
+       * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
+       sharing.
+
+2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
+       * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
+
+       * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
+       UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
+       (vect_update_misalignment_for_peel): Likewise.
+       (vector_alignment_reachable_p): Likewise.
+       * tree-vect-transform.c (vectorizable_load): Likewise.
+       * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
+       (get_vectype_for_scalar_type): Pass mode of scalar_type
+       to UNITS_PER_SIMD_WORD.
+
+       * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
+       * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
+       * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
+       * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
+       * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
+
+2008-05-22  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-optimization/36293
+       * tree-vect-transform.c (vect_transform_strided_load): Don't check
+       if the first load must be skipped because of a gap.
+
+2008-05-22  Richard Guenther  <rguenther@suse.de>
+
+       * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
+       more cases of offset disambiguation that is possible if
+       strict-aliasing rules apply.
+       * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
+       for basic offset and type-based disambiguation.
+
+2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
+       ix86_expand_vector_set on V16QImode for SSE4.1.
+
+2008-05-21  Tom Tromey  <tromey@redhat.com>
+
+       * c.opt (Wimport): Mark as undocumented.
+       * doc/invoke.texi (Option Summary): Don't mention -Wimport or
+       -Wno-import.
+       (Warning Options): Likewise.
+       * doc/cppopts.texi: Don't mention -Wimport.
+
+2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
+
+       PR tree-optimization/36287
+       PR tree-optimization/36286
+       * lambda-code.c (build_access_matrix): Do not use the loop->num
+       for computing the number of induction variables: use the loop depth
+       instead.
+
+2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
+
+       PR/36280
+       * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
+       option -f(no-)leading-underscore.
+
+2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (ix86_expand_vector_init_general): Use
+       GET_MODE_NUNITS (mode).
+
+2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
+
+       * doc/invoke.texi: Add cpu_type's 464 and 464fp.
+       (-mmulhw): Add 464 to description.
+       (-mdlmzb): Likewise.
+       * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
+       * config/rs6000/rs6000.c (processor_target_table): Add 464 and
+       464fp entries.
+       * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
+       * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
+       * config/rs6000/rs6000.md: Update comments for 464.
+
+2008-05-21  Janis Johnson  <janis187@us.ibm.com>
+
+       * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
+
+2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/sse.md (vec_extractv4sf): Removed.
+       (vec_extractv2df): Likewise.
+       (vec_extractv2di): Likewise.
+       (vec_extractv4si): Likewise.
+       (vec_extractv8hi): Likewise.
+       (vec_extractv16qi): Likewise.
+       (vec_extract<mode>): New.
+
+2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/sse.md (vec_setv4sf): Removed.
+       (vec_setv2df): Likewise.
+       (vec_setv2di): Likewise.
+       (vec_setv4si): Likewise.
+       (vec_setv8hi): Likewise.
+       (vec_setv16qi): Likewise.
+       (vec_set<mode>): New.
+
+2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (ix86_expand_vector_init_general): Remove
+       goto for vec_concat and vec_interleave.
+
+2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/sse.md (vec_initv4sf): Removed.
+       (vec_initv2df): Likewise.
+       (vec_initv2di): Likewise.
+       (vec_initv4si): Likewise.
+       (vec_initv8hi): Likewise.
+       (vec_initv16qi): Likewise.
+       (vec_init<mode>): New.
+
+2008-05-21  Joseph Myers  <joseph@codesourcery.com>
+
+       * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
+
+2008-05-21  Tom Tromey  <tromey@redhat.com>
+
+       * ggc-zone.c (lookup_page_table_if_allocated): New function.
+       (zone_find_object_offset): Likewise.
+       (gt_ggc_m_S): Likewise.
+       (highest_bit): Likewise.
+       * ggc-page.c (gt_ggc_m_S): New function.
+       * stringpool.c (string_stack): Remove.
+       (init_stringpool): Update.
+       (ggc_alloc_string): Use ggc_alloc.
+       (maybe_delete_ident): New function.
+       (ggc_purge_stringpool): Likewise.
+       (gt_ggc_m_S): Remove.
+       * ggc-common.c (ggc_protect_identifiers): New global.
+       (ggc_mark_roots): Call ggc_purge_stringpool.  Use
+       ggc_protect_identifiers.
+       * ggc.h (ggc_protect_identifiers): Declare.
+       (gt_ggc_m_S): Update.
+       (ggc_purge_stringpool): Declare.
+       * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
+       * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
+       special case.
+       (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
+
+2008-05-21  David S. Miller  <davem@davemloft.net>
+
+       * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
+       tmake_file.
+
+2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
+       once finished.
+
+2008-05-20  David Daney  <ddaney@avtrex.com>
+
+       * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
+       UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
+       (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
+       UNSPEC_UPDATE_GOT_VERSION): Renumber.
+       (optab, insn): Add 'plus' and 'minus' to define_code_attr.
+       (atomic_hiqi_op): New define_code_iterator.
+       (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
+       mips_expand_compare_and_swap_12.
+       (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
+       MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
+       (sync_<optab><mode>, sync_old_<optab><mode>,
+       sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
+       sync_new_nand<mode>): New define_expands for HI and QI mode operands.
+       (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
+       sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
+       (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
+       (test_and_set_12): New insn.
+       (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
+       sync_new_<optab><mode>, sync_old_nand<mode>,
+       sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
+       clobber to operand 0 for SI and DI mode insns.
+       * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
+       mips_gen_fn_4): New typedefs.
+       (mips_gen_fn_ptrs): Define new union type.
+       (mips_expand_compare_and_swap_12): Remove declaration.
+       (mips_expand_atomic_qihi): Declare function.
+       * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
+       (mips_expand_atomic_qihi): ... this.  Use new generator function
+       parameter.
+       * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
+       (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
+       (MIPS_COMPARE_AND_SWAP_12_ZERO_OP,
+       MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
+       MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
+       MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
+       MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
+       MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
+       MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
+       MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
+       MIPS_SYNC_EXCHANGE_12_ZERO_OP,
+       MIPS_SYNC_EXCHANGE_12_NONZERO_OP): New macros.
+
+2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
+       the missing break.
+
 2008-05-20  Anatoly Sokolov <aesok@post.ru>
 
        * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
            Sebastian Pop  <sebastian.pop@amd.com>
 
-       * tree-loop-linear.c (gather_interchange_stats): Look in the access matrix,
-       and never look at the tree representation of the memory accesses.
+       * tree-loop-linear.c (gather_interchange_stats): Look in the access
+       matrix, and never look at the tree representation of the memory
+       accesses.
        (linear_transform_loops): Computes parameters and access matrices.
-       * tree-data-ref.c (compute_data_dependences_for_loop): Returns false when fails.
+       * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
+       when fails.
        (access_matrix_get_index_for_parameter): New.
        * tree-data-ref.h (struct access_matrix): New.
        (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
 
        PR tree-optimization/36206
        * tree-chrec.h (chrec_fold_op): New.
-       * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR, and
-       other trees.
+       * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
+       and other trees.
 
 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
 
        * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
        (DIRS_EQ): New.
-       (remove_duplicates): Do not set inode on non-inode systems.  Use
-       DIRS_EQ.
+       (remove_duplicates): Do not set inode on non-inode systems.
+       Use DIRS_EQ.
 
 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
 
 
 2008-05-20  Richard Guenther  <rguenther@suse.de>
 
-       * tree-ssa-reassoc.c (fini_reassoc): Use the statistics
-       infrastructure.
+       * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
        * tree-ssa-sccvn.c (process_scc): Likewise.
        * tree-ssa-sink.c (execute_sink_code): Likewise.
        * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.