OSDN Git Service

2007-05-14 Dave Korn <dave.korn@artimi.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index a5b1469..3e70d98 100644 (file)
@@ -1,3 +1,281 @@
+2007-05-14  Dave Korn  <dave.korn@artimi.com>
+
+       * genautomata.c (gen_regexp_el):  Allocate correct size for regexp.
+
+2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
+
+       * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for
+       instead of c_common_unsigned_type.
+       (c_common_unsigned_type): Remove.
+       (shorten_compare): Use c_common_signed_or_unsigned_type instead of
+       c_common_unsigned_type.
+       (c_common_nodes_and_builtins): Use unsigned_type_for instead of
+       c_common_unsigned_type.
+       * c-common.h (c_common_unsigned_type): Remove.
+       * c-decl.c (grokdeclarator): Use unsigned_type_for instead of
+       c_common_unsigned_type.
+       * c-format.c (check_format_types): Use unsigned_type_for instead of
+       c_common_unsigned_type.
+       * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
+       * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead of
+       c_common_unsigned_type.
+       * convert.c (convert_to_integer): Use unsigned_type_for instead of
+       lang_hooks.types.unsigned_type.
+       * expmed.c (make_tree): Use unsigned_type_for instead of
+       lang_hooks.types.unsigned_type.
+       * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of
+       lang_hooks.types.unsigned_type.
+       (build_range_check): Likewise.
+       (fold_unary): Likewise.
+       (fold_binary): Likewise.
+       (fold_ternary): Likewise.
+       * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
+       * langhooks.h (lang_hooks_for_types): Remove unsigned_type.
+       * tree.c (get_unsigned_type): New.
+       (unsigned_type_for): Use get_unsigned_type instead of
+       lang_hooks.types.unsigned_type.
+
+2007-05-14  Kazu Hirata  <kazu@codesourcery.com>
+
+       * config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p
+       to m68k_get_function_kind.  Update its prototype.
+       * config/m68k/m68k.c (m68k_attribute_table): Add an entry for
+       interrupt_thread.
+       (m68k_interrupt_function_p): Return enum m68k_function_type
+       instead of bool.  Rename to m68k_get_function_kind.
+       (m68k_handle_fndecl_attribute): Reject interrupt_thread if the
+       target is not fido.
+       (m68k_compute_frame_layout): Don't mark any register for save
+       if an interrupt_thread attribute is specified.
+       (m68k_hard_regno_rename_ok): Update a use of
+       m68k_interrupt_function_p.
+       * config/m68k/m68k.h (EPILOGUE_USES): Update a use of
+       m68k_interrupt_function_p.
+       (m68k_function_type): New.
+       * config/m68k/m68k.md (*return): Output a 'sleep' instruction
+       for a function with an interrupt_thread attribute.
+       * doc/extend.texi: Document the interrupt_thread attribute.
+
+2007-05-13  Daniel Berlin  <dberlin@dberlin.org>
+
+       Fix PR tree-optimization/31911
+       * tree-ssa-pre.c (phi_translate): Make sure to cache results even
+       if they didn't change the expression.
+
+2007-05-13  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * tree-scalar-evolution.c (resolve_mixers): Exported.
+       * tree-scalar-evolution.h (resolve_mixers): Declare.
+       * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p,
+       ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
+       record_record_differ_p, record_array_differ_p, array_ptr_differ_p,
+       base_object_differ_p, base_addr_differ_p, analyze_array_indexes,
+       init_array_ref, init_pointer_ref, analyze_indirect_ref,
+       strip_conversion, analyze_offset_expr, address_analysis,
+       object_analysis, analyze_offset): Removed.
+       (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias,
+       split_constant_offset, canonicalize_base_object_address,
+       object_address_invariant_in_loop_p, disjoint_objects_p,
+       dr_may_alias_p, dr_address_invariant_p): New functions.
+       (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices
+       and dr_analyze_alias.
+       (initialize_data_dependence_relation): Use dr_may_alias_p
+       and object_address_invariant_in_loop_p.
+       (compute_self_dependence): Handle the case when DDR_ARE_DEPENDENT (ddr)
+       is chrec_dont_know.
+       (find_data_references_in_stmt): Restrict the analysis of data references
+       to the given loop nest.
+       (find_data_references_in_loop): Made static.  Pass loop nest to
+       find_data_references_in_stmt.
+       (compute_data_dependences_for_loop): Use DR_VOPS.
+       (free_data_ref): Free DR_VOPS.
+       * tree-data-ref.h (struct first_location_in_loop): Replaced by ...
+       (struct innermost_loop_behavior): ... new.
+       (struct base_object_info): Replaced by ...
+       (struct indices): ... new.
+       (struct dr_alias): New.
+       (enum data_ref_type): Removed.
+       (struct data_reference): Consist of struct innermost_loop_behavior,
+       struct indices and struct dr_alias.
+       (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed.
+       (DR_MEMTAG): Renamed to ...
+       (DR_SYMBOL_TAG): ... this.
+       (find_data_references_in_loop): Declaration removed.
+       * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT
+       instead of DR_OFFSET_MISALIGNMENT.  DR_ALIGNED_TO is never NULL.
+       (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG.
+       * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
+
+2007-05-13  Revital Eres  <eres@il.ibm.com>
+
+       * tree-ssa-dse.c (get_use_of_stmt_lhs): New function
+       which walks virtual def-use chains to find redundant stores.
+       (dse_optimize_stmt): Call it.
+
+2007-05-12  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * gcse.c (gcse_main): Do jump bypassing in CPROP2.
+       * passes.c (init_optimization_passes): Move pass_jump_bypass
+       after loop2.
+
+       * basic-block.h (bb_has_eh_pred): Fix style issue.
+
+2007-05-12  Steven Bosscher  <steven@gcc.gnu.org>
+
+       PR rtl-optimization/31848
+       * loop-invariant.c (move_invariant_reg): If we move an insn
+       with a REG_EQUAL note, and that insn is not always executed,
+       remove the REG_EQUAL note.
+
+2007-05-12  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/31797
+       * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
+       propagate into a stmt that has volatile ops.
+
+2007-05-12  Richard Sandiford  <richard@codesourcery.com>
+
+       * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
+       (gcc_tooldir): Likewise.
+       * configure: Regenerate.
+       * Makefile.in (libsubdir_to_prefix): New variable, based on the
+       old configure.ac gcc_tooldir setting.
+       (prefix_to_exec_prefix): New variable.
+       (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
+       rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
+
+2007-05-11  Silvius Rus  <rus@google.com>
+
+       * Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o.
+       * c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic.
+       * c-common.h (strict_aliasing_warning): Change return type.
+       * c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing.
+       * c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning.
+       (build_c_cast): Condition call to strict_aliasing_warning.
+       * doc/invoke.texi: Update description of -Wstrict-aliasing[=n].
+       * flags.h (set_Wstrict_aliasing): Declare.
+       * opts.c (set_Wstrict_alising): Define, add call to.
+       * tree-flow.h (strict_aliasing_warning_backend): Declare.
+       * tree-ssa-alias-warnings.c: New file.
+       * tree-ssa-alias.c (compute_may_aliases): Add call to
+       strict_aliasing_warning_backend. 
+
+2007-05-11  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
+       Use loop_depth and loop_outer accessor functions.
+       * tree-ssa-loop-im.c (outermost_invariant_loop, set_level,
+       determine_invariantness_stmt, move_computations_stmt): Ditto.
+       * cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path,
+       add_loop, loopify, unloop, fix_loop_structure): Ditto.
+       * tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto.
+       * tree-scalar-evolution.c (interpret_loop_phi,
+       compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop,
+       instantiate_parameters_1, scev_const_prop): Ditto.
+       * cfghooks.c (make_forwarder_block): Ditto.
+       * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
+       * modulo-sched.c (loop_canon_p): Ditto.
+       * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
+       slpeel_can_duplicate_loop_p): Ditto.
+       * lambda-code.c (invariant_in_loop_and_outer_loops): Ditto.
+       * tree-cfg.c (tree_duplicate_sese_region): Ditto.
+       * cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit,
+       cancel_loop, verify_loop_structure): Ditto.
+       (flow_loop_nested_p, superloop_at_depth, flow_loop_free,
+       add_bb_to_loop, remove_bb_from_loops, find_common_loop): Use the
+       superloops vector instead of "pred" array.
+       (establish_preds): Take father loop as an argument.  Initialize the
+       superloops vector.
+       (flow_loop_tree_node_add): Pass father loop to establish_preds.  Do not
+       initialize loop->outer.
+       (flow_loop_tree_node_remove): Truncate the superloops vector.
+       * cfgloop.h (struct loop): Removed field "outer", fields "depth" and
+       "pred" merged to "superloops" vector.
+       (loop_depth, loop_outer): New.
+       (fel_init): Use loop_outer.
+
+2007-05-11  Jan Hubicka  <jh@suse.cz>
+
+       * cgraphunit.c: Include gt-cgraphunit.h
+       (static_ctors, static_dtors): New static vars.
+       (record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions,
+       based on implementation in c-common.c
+       (cgraph_finalize_function): Call record_cdtor_fn.
+       (cgraph_optimize): Call cgraph_build_cdtor_fns.
+       * decl.c (finish_function): Do not call c_record_cdtor_fn.
+       (c_write_global_declarations): Do not call c_build_cdtor_fns.
+       * c-common.c (static_ctors, static_dtors, c_record_cdtor_fn,
+       build_cdtor, c_build_cdtor_fns): Remove.
+       * c-common.h (static_ctors, static_dtors, c_record_cdtor_fn,
+       c_build_cdtor_fns): Remove prototype.
+
+2007-05-11  Paolo Carlini  <pcarlini@suse.de>
+
+       PR other/31852
+       * builtin-types.def: Add BT_FN_PTR_CONST_PTR_INT_SIZE.
+       * builtins.def: Add BUILT_IN_MEMCHR, use the latter.
+       * builtins.c (fold_builtin_memchr): New.
+       (expand_builtin_memchr): Call the latter.
+       (expand_builtin, fold_builtin_3): Deal with BUILT_IN_MEMCHR.
+       * doc/extend.texi ([Other built-in functions provided by GCC]):
+       Document memchr.
+
+2007-05-11  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * config/s390/s390.md (GPR0_REGNUM, FPR0_REGNUM, FPR2_REGNUM,
+       PFPO_CONVERT, PFPO_OP_TYPE_SF, PFPO_OP_TYPE_DF, PFPO_OP_TYPE_TF,
+       PFPO_OP_TYPE_SD, PFPO_OP_TYPE_DD, PFPO_OP_TYPE_TD, PFPO_OP0_TYPE_SHIFT,
+       PFPO_OP1_TYPE_SHIFT): Constants added.
+       (DFP_ALL): Mode macro defined.
+       ("*trunc<BFP:mode><DFP_ALL:mode>2", "*trunc<DFP_ALL:mode><BFP:mode>2",
+       "*extend<BFP:mode><DFP_ALL:mode>2", "*extend<DFP_ALL:mode><BFP:mode>2"):
+       Insn definitions added.
+       ("trunc<BFP:mode><DFP_ALL:mode>2", "trunc<DFP_ALL:mode><BFP:mode>2",
+       "extend<BFP:mode><DFP_ALL:mode>2", "extend<DFP_ALL:mode><BFP:mode>2"):
+       Expanders added.
+
+2007-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       PR tree-optimization/31885
+       * tree-chrec.c (chrec_contains_undetermined): Do not consider NULL_TREE
+       to be undetermined.
+       (automatically_generated_chrec_p): Return false for NULL.
+
+2007-05-08  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * config/bfin/bfin.h (MOVE_RATIO): Define.
+
+2007-05-10  Richard Sandiford  <richard@codesourcery.com>
+
+       * config.gcc (sparc-wrs-vxworks): New target.
+       * config/sparc/vxworks.h, config/sparc/t-vxworks: New files.
+       * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare.
+       * config/sparc/sparc.h: Include vxworks-dummy.h.
+       (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to
+       include LABEL_REFs too.
+       * config/sparc/sparc.c (sparc_expand_move): Don't assume that
+       _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on
+       VxWorks.
+       (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs
+       on VxWorks.
+       (load_pic_register): Use gen_vxworks_load_got for VxWorks.
+       (sparc_emit_call_insn): New function.
+       (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding
+       functions when generating VxWorks PIC.
+       * config/sparc/sparc.md (vxworks_load_got): New pattern.
+       (call, call_value): Use sparc_emit_call_insn instead of
+       emit_call_insn.
+
+2007-05-09  Bob Wilson  <bob.wilson@acm.org>
+       
+       * config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if.
+       
+2007-05-09  Bob Wilson  <bob.wilson@acm.org>
+
+       * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits
+       for floating-point values if HOST_BITS_PER_LONG > 32.  Use split_double
+       instead of operand_subword.
+
 2007-05-08  Bernd Schmidt  <bernd.schmidt@analog.com>
 
        * config/bfin/bfin.h (LOCAL_ALIGNMENT): Define.