OSDN Git Service

2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 17a4613..1c2ac87 100644 (file)
@@ -1,3 +1,473 @@
+2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * doc/invoke.text (-fdump-tree-*-verbose): New option.
+       * tree-dump.c (dump_options): New verbose option.
+       * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
+       Add verbose dump.
+       * tree-pass.h (TDF_VERBOSE): New dump flag.
+       * print-tree.c (print_node): Added code to be able to print
+       PHI_NODES.
+       (tree-flow.h): Added include.
+       Makefile.in (print-tree.o):  Added TREE_FLOW_H.
+
+2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
+
+       From Jie Zhang  <jie.zhang@analog.com>
+        * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
+       MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
+       mcpu=bf561-none and mcpu=bf561-0.2.
+       * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
+       MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
+       * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
+       MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
+       * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
+       BFIN_CPU_UNKNOWN.
+       * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for
+       BF561.
+       (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
+       option.
+       * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
+       (cputype_selected): Remove.
+       (bfin_handle_option): Don't use cputype_selected.
+       (override_options): When no mcpu option, enable all workarounds.
+       Don't use bfin_workarounds.
+       * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
+       processor type.
+       (DEFAULT_CPU_TYPE): Don't define.
+
+2008-05-16  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
+       on deletion of the last stmt.
+
+2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
+       V8HImode for SSE2 and V16QImode for SSE4.1.
+
+2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * cgraph.h (compute_inline_parameters): Made public.
+       * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
+       variable_generate_summary, function_write_summary,
+       variable_write_summary, variable_read_summary.  Added 
+       generate_summary, write_summary, read_summary.
+       * cgraphunit.c (cgraph_process_new_functions): Changed call from
+       pass_ipa_inline.function_generate_summary, to
+       compute_inline_parameters. 
+       * ipa-inline.c (compute_inline_parameters): Made public and added
+       node parameter.
+       (compute_inline_parameters_for_current): New function.
+       (pass_inline_param): Now calls
+       compute_inline_parameters_for_current.
+       (inline_generate_summary): Removed parameter and made to loop over
+       all cgraph nodes.
+       (pass_ipa_inline): Updated for new IPA_PASS structure.
+       * passes.c (execute_ipa_summary_passes): Now is called once per
+       pass rather than once per node*pass.
+       
+2008-05-15  Anatoly Sokolov <aesok@post.ru>
+
+       * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
+       avr_have_mul_p, avr_asm_only_p): Remove variables.
+       (avr_override_options): Remove initialization of removed variables.
+       (avr_file_start):  Convert removed variables to fields of 
+       'struct base_arch_s *avr_current_arch'. 
+       * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
+       (AVR_HAVE_MUL): (Ditto.).
+       (AVR_HAVE_MOVW): (Ditto.).
+       (AVR_HAVE_LPMX): (Ditto.). 
+       (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
+       avr_asm_only_p): Remove declaration.
+
+2008-05-15  Diego Novillo  <dnovillo@google.com>
+
+       * config/arm/arm.c (arm_return_in_memory): Fix return
+       type.
+       * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
+
+2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
+
+       PR middle-end/36194
+       * combine.c (check_conversion): Rename back to check_promoted_subreg. 
+       Don't call record_truncated_value from here. 
+       (record_truncated_value): Turn it into a for_each_rtx callback. 
+       (record_truncated_values): New function. 
+       (combine_instructions): Call note_uses with 
+       record_truncated_values.  Change name of check_conversion to 
+       check_promoted_subreg. 
+
+2008-05-15  Janis Johnson  <janis187@us.ibm.com>
+
+       * doc/sourcebuild.texi: Document support for torture tests.
+
+2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
+       to alternative 4 of operand 2.
+
+2008-05-15  Richard Guenther  <rguenther@suse.de>
+
+       * tree-pass.h (current_pass): Declare.
+       (get_pass_for_id): Likewise.
+       * passes.c (passes_by_id, passes_by_id_size): New globals.
+       (set_pass_for_id): New function.
+       (get_pass_for_id): Likewise.
+       (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
+       (execute_function_todo): Flush per function statistics.
+       * toplev.c (compile_file): Init statistics.
+       (general_init): Do early statistics initialization.
+       (finalize): Finish statistics.
+       * statistics.h (statistics_early_init): Declare.
+       (statistics_init): Likewise.
+       (statistics_fini): Likewise.
+       (statistics_fini_pass): Likewise.
+       (statistics_counter_event): Likewise.
+       (statistics_histogram_event): Likewise.
+       * statistics.c: New file.
+       * Makefile.in (OBJS-common): Add statistics.o.
+       (statistics.o): Add dependencies.
+       * doc/invoke.texi (-fdump-statistics): Document.
+
+       * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
+       (insert): Likewise.
+       (execute_pre): Use statistics_counter_event.
+       * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
+       (substitute_and_fold): Increment it.  Use statistics_counter_event.
+
+2008-05-15  Diego Novillo  <dnovillo@google.com>
+
+       http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
+
+       * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
+       * tree-ssa-alias.c (new_type_alias): Remove references to
+       sub-variables from comment.
+       * tree-ssa-operands.c (swap_tree_operands): Likewise.
+
+2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
+       attribute to 1 only for insertps alternative.
+
+2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * config/bfin/bfin.md (loadbytes): New pattern.
+       * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
+       (bfin_init_builtins): Initialize it.
+       (bdesc_1arg): Add it.
+
+2008-05-15  Sa Liu  <saliu@de.ibm.com>
+
+       * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
+       * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
+       * testsuite/lib/target-supports.exp: Add
+       check_effective_target_fortran_integer_16.
+
+2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
+       * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
+       * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
+       (TARGET_RETURN_IN_MEMORY): Define.
+
+2008-05-15  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/36244
+       * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
+       * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
+       represent unmodifiable vars.
+
+2008-05-15  Richard Guenther  <rguenther@suse.de>
+
+       * tree-dfa.c (refs_may_alias_p): Allow all kinds of
+       INDIRECT_REF and TARGET_MEM_REF.
+       * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
+       TARGET_MEM_REF.
+
+2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
+           H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
+       (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
+       for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
+       insn alternatives.  Add missing alternatives.
+       (*vec_concatv2di_rex64_sse4_1): Likewise.
+       (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
+       (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
+       Require TARGET_SSE.
+
+2008-05-15  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/36009
+       PR tree-optimization/36204
+       * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
+       (determine_invariantness_stmt): Record the loop a store is
+       always executed in.
+       * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
+       dependency.
+
+2008-05-15  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/34330
+       * tree-ssa-alias.c (get_smt_for): Only assert that accesses
+       through the pointer will alias the SMT.
+
+2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
+
+2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
+
+2008-05-14  Michael Meissner  <michael.meissner@amd.com>
+           Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
+
+       * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
+       OTI_vrotl, OTI_vrotr to support vector/vector shifts.
+       (vashl_optab): New optab for vector/vector shifts.
+       (vashr_optab): Ditto.
+       (vlshr_optab): Ditto.
+       (vrotl_optab): Ditto.
+       (vrotr_optab): Ditto.
+       (optab_subtype): New enum for optab_for_tree_code call.
+       (optab_for_tree_code): Add enum optab_subtype argument.
+
+       * optabs.c (optab_for_tree_code): Take an additional argument to
+       distinguish between a vector shift by a scalar and vector shift by
+       a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
+       shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
+       vector shift by a vector.
+       (expand_widen_pattern_expr): Pass additional argument to
+       optab_for_tree_code.
+
+       * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
+       vrotl_optab, vrotr_optab.
+
+       * expr.c (expand_expr_real_1): Update calls to
+       optab_for_tree_code to distinguish between vector shifted by a
+       scalar and vector shifted by a vector.
+       * tree-vectorizer.c (supportable_widening_operation): Ditto.
+       (supportable_narrowing_operation): Ditto.
+       * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
+       * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
+       * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
+       (vect_create_epilog_for_reduction): Ditto.
+       (vectorizable_reduction): Ditto.
+       (vectorizable_operation): Ditto.
+       (vect_strided_store_supported): Ditto.
+       (vect_strided_load_supported): Ditto.
+       * tree-vect-generic.c (expand_vector_operations_1): Ditto.
+       * expmed.c (expand_shift): Ditto.
+
+       * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
+       scalar type.
+       (ashr@var{m}3): Ditto.
+       (vashl@var{m}3): Document new vector/vector shift standard name.
+       (vashr@var{m}3): Ditto.
+       (vlshr@var{m}3): Ditto.
+       (vrotl@var{m}3): Ditto.
+       (vrotr@var{m}3): Ditto.
+
+       * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
+       (PPERM_INVERT): Ditto.
+       (PPERM_REVERSE): Ditto.
+       (PPERM_REV_INV): Ditto.
+       (PPERM_ZERO): Ditto.
+       (PPERM_ONES): Ditto.
+       (PPERM_SIGN): Ditto.
+       (PPERM_INV_SIGN): Ditto.
+       (PPERM_SRC1): Ditto.
+       (PPERM_SRC2): Ditto.
+
+       * config/i386/sse.md (mulv2di3): Add SSE5 support.
+       (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
+       allows a memory operand to be the value being added, and split it
+       to improve vectorization.
+       (sse5_pmacsdqh_mem): Ditto.
+       (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
+       (sse5_mulv2div2di3_high): Ditto.
+       (vec_pack_trunc_v8hi): Add SSE5 pperm support.
+       (vec_pack_trunc_v4si): Ditto.
+       (vec_pack_trunc_v2di): Ditto.
+       (sse5_pcmov_<mode>): Remove code that tried to use use
+       andps/andnps instead of pcmov.
+       (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
+       pmacsdqh instructions.
+       (vec_widen_smult_lo_v4si): Ditto.
+
+       * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
+       (PPERM_INVERT): Ditto.
+       (PPERM_REVERSE): Ditto.
+       (PPERM_REV_INV): Ditto.
+       (PPERM_ZERO): Ditto.
+       (PPERM_ONES): Ditto.
+       (PPERM_SIGN): Ditto.
+       (PPERM_INV_SIGN): Ditto.
+       (PPERM_SRC1): Ditto.
+       (PPERM_SRC2): Ditto.
+       (ix86_expand_sse_movcc): Move the SSE5 test after the if
+       true/false tests.
+       (ix86_expand_int_vcond): If SSE5 generate all possible integer
+       comparisons.
+       (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
+       says ignore whether the last reference is a memory operand.
+
+2008-05-14  Michael Meissner  <michael.meissner@amd.com>
+           Paolo Bonzini <bonzini at gnu dot org>
+
+       * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
+       shift patterns.
+
+       * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
+       (vlshr<mode>3): Rename from vlshr<mode>3.
+       (vashr<mode>3): Rename from vashr<mode>3.
+       (mulv4sf3): Change the names of vector shift patterns.
+       (mulv4si3): Ditto.
+       (negv4sf2): Ditt.
+
+       * config/spu/spu.c (spu_initialize_trampoline): Rename vector
+       shift insns.
+
+       * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
+       (SI_SHLHI): Ditto.
+       (SI_SHL): Ditto.
+       (SI_SHLI): Ditto.
+       (SI_ROTH): Ditto.
+       (SI_ROTHI): Ditto.
+       (SI_ROT): Ditto.
+       (SI_ROTI): Ditto.
+       (SPU_RL_0): Ditto.
+       (SPU_RL_1): Ditto.
+       (SPU_RL_2): Ditto.
+       (SPU_RL_3): Ditto.
+       (SPU_RL_4): Ditto.
+       (SPU_RL_5): Ditto.
+       (SPU_RL_6): Ditto.
+       (SPU_RL_7): Ditto.
+       (SPU_SL_0): Ditto.
+       (SPU_SL_1): Ditto.
+       (SPU_SL_2): Ditto.
+       (SPU_SL_3): Ditto.
+       (SPU_SL_4): Ditto.
+       (SPU_SL_5): Ditto.
+       (SPU_SL_6): Ditto.
+       (SPU_SL_7): Ditto.
+
+       * config/spu/spu.md (v): New iterator macro to add v for vector types.
+       (floatunssidf2_internal): Change vector/vector shift names.
+       (floatunsdidf2_internal): Ditto.
+       (mulv8hi3): Ditto.
+       (ashrdi3): Ditto.
+       (ashrti3): Ditto.
+       (cgt_df): Ditto.
+       (cgt_v2df): Ditto.
+       (dftsv): Ditto.
+       (vashl<mode>3): Rename from ashl<mode>3.
+       (vashr<mode>3): Rename from ashr<mode>3.
+       (vlshr<mode>3): Rename from lshr<mode>3.
+       (vrotl<mode>3): Rename from rotl<mode>3.
+
+2008-05-14  Michael Meissner  <michael.meissner@amd.com>
+
+       PR target/36224
+       * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
+       multiply gives the wrong value when doing widening multiplies.
+       (vec_widen_smult_lo_v4si): Ditto.
+
+2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
+       LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
+       emit_library_call_value. 
+       * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
+       * tree.h (ECF_LIBCALL_BLOCK): Removed.
+       * calls.c (initialize_argument_information, precompute_arguments, 
+       expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
+       (precompute_arguments): Removed flags parameter.
+       * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
+       
+2008-05-14  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
+       Make sure to register the store if the use is a PHI_NODE.
+
+2008-05-14  Olivier Hainque  <hainque@adacore.com>
+
+       * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
+       memory if the component is to be referenced in BLKmode according
+       to get_inner_reference.
+
+2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * calls.c (emit_library_call_value_1): Restore code clearing
+       ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
+
+2008-05-14  Olivier Hainque  <hainque@adacore.com>
+           Nicolas Roche  <roche@adacore.com>
+
+       * configure.ac: Add support for a "gcc_subdir" variable in
+       config-lang.in, to denote a subdirectory where the language/GCC
+       integration files are to be found.
+       * configure: Regenerate.
+
+2008-05-14  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-optimization/36098
+       * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
+       value for the first load in the group in case of a gap.
+       (vect_build_slp_tree): Check that there are no gaps in loads.
+
+2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
+       * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
+       expand_copysign_bit, ): Change call to emit_no_conflict_block to
+       emit_insn and remove unneeded code to construct extra args.
+       (emit_no_conflict_block): Removed.
+       * optabls.h: (emit_no_conflict_block): Removed.
+       * cse.c (cse_extended_basic_block): Remove search for
+       REG_NO_CONFLICT note.
+       * global.c: Removed incorrect comment added in revision 117.
+       * expr.c (convert_move): Change call to emit_no_conflict_block to
+       emit_insn.
+       * recog.c: Change comments so that they do not mention
+       REG_NO_CONFLICT.
+       * local_alloc.c (combine_regs): Removed last parameter.
+       (no_conflict_p): Removed.
+       (block_alloc): Removed note, no_conflict_combined_regno and set
+       local vars. Removed all code to process REG_NO_CONFLICT blocks.
+       (combine_regs): Removed already_dead and code to look for
+       REG_NO_CONFLICT notes.
+       * lower_subreg (remove_retval_note): Removed code to look for
+       REG_NO_CONFLICT block.
+       (resolve_reg_notes): Removed REG_NO_CONFLICT case.
+       (resolve_clobber): Remove code to process libcalls that have
+       REG_NO_CONFLICT notes.
+       * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
+       case.
+       * combine.c (can_combine_p, distribute_notes):  Removed
+       REG_NO_CONFLICT case.
+       * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
+       to emit_insns.
+       * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
+       * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
+       Ditto.
+       * reg-notes.def (NO_CONFLICT): Removed.
+
+2008-05-14  David S. Miller  <davem@davemloft.net>
+
+       * config/sparc/sparc.c (sparc_profile_hook): If
+       NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
+       * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
+       * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
+
+2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
+
 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
 
        PR target/36222
        tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
        * omp-low.c (expand_omp_parallel):
        * tree-flow-inline.h (redirect_edge_var_map_result):
-       * tree-ssa.c (init_tree_ssa): Add argument FN.  Use it instead of cfun.
-       Update all users.
+       * tree-ssa.c (init_tree_ssa): Add argument FN.
+       Use it instead of cfun.  Update all users.
 
 2008-05-13  Tom Tromey  <tromey@redhat.com>