OSDN Git Service

* regmove.c (perhaps_ends_bb_p): Remove.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 8dfd7e9..5f9b9c1 100644 (file)
@@ -1,3 +1,198 @@
+2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * regmove.c (perhaps_ends_bb_p): Remove.
+       (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
+       from INSN and check that the main loop stays within that basic block.
+       (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
+       (regmove_forward_pass): Split out from regmove_optimize.  Use
+       FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
+       (regmove_backward_pass): Split out from regmove_optimize.  Use
+       FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
+       (regmove_optimize): Simplify.
+
+2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/39545
+       * config/i386/i386.c (classify_argument): Ignore flexible array
+       member in struct and warn ABI change.
+
+2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386-protos.h (ix86_agi_dependent): New.
+
+       * config/i386/i386.c (ix86_agi_dependent): Rewrite.
+       (ix86_adjust_cost): Updated.
+
+2009-03-29  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/28850
+       * tree-pass.h (pass_cleanup_eh): New function.
+       (remove_unreachable_regions): Break code handling RTL
+       to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
+       that can not be reached by runtime.
+       (can_be_reached_by_runtime): New function.
+       (label_to_region_map): New function.
+       (num_eh_regions): New function.
+       (rtl_remove_unreachable_regions): New function.
+       (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
+       (remove_eh_region): New function.
+       * except.h: Include sbitmap and vecprim.
+       (remove_eh_region, remove_unreachable_regions, label_to_region_map,
+       num_eh_regions): Declare.
+       * passes.c (init_optimization_passes): Schedule cleanup_eh.
+       * Makefile.in (EXCEPT_H): New; replace all uses of except.h
+       by it.
+       * tree-eh.c (tree_remove_unreachable_handlers): New function.
+       (tree_empty_eh_handler_p): New function.
+       (cleanup_empty_eh): New function.
+       (cleanup_eh): New function.
+       (pass_cleanup_eh): New function.
+
+2009-03-29  Jan Hubicka  <jh@suse.cz>
+
+       * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
+       for removed regions.
+
+2009-03-29  Jan Hubicka  <jh@suse.cz>
+
+       * except.c (dump_eh_tree): Dump all datastructures.
+
+2009-03-29  Jan Hubicka  <jh@suse.cz>
+
+       * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
+       (duplicate_eh_regions_1): Likewise.
+       (duplicate_eh_regions): Likewise; cleanup code gorwing the region
+       vector; call EH verification.
+       (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
+       Be ready for region being removed.
+
+2009-03-29  Jan Hubicka  <jh@suse.cz>
+
+       * bitmap.c (bitmap_last_set_bit): New function.
+       * bitmap.h (bitmap_last_set_bit): Declare.
+
+2009-03-29  David Ayers  <ayers@fsfe.org>
+
+       PR objc/27377
+       * c-typeck.c (build_conditional_expr): Emit ObjC warnings
+       by calling objc_compare_types and surpress warnings about
+       incompatible C pointers that are compatible ObjC pointers.
+       
+2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
+       call initialize_inline_failed.
+       (initialize_inline_failed): Move it from here ...
+       * cgraph.c (initialize_inline_failed): ... to here.
+       (cgraph_create_edge): Call initialize_inline_failed rather than
+       setting inline_failed directly.
+
+2009-03-29  Ben Elliston  <bje@au.ibm.com>
+
+       PR target/32542
+       * sysv4.opt (msdata): Improve comment.
+       * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
+       * sysv4.h (SVR4_ASM_SPEC): Likewise.
+
+2009-03-29  Ben Elliston  <bje@au.ibm.com>
+
+       PR target/30451
+       * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
+       load and store attributes.
+
+2009-03-29  Ben Elliston  <bje@au.ibm.com>
+
+       * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
+       (ix86_init_builtins): Add built-in function __builtin_huge_valq.
+       (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
+       * doc/extend.texi (X86 Built-in Functions): Add index entries for
+       __builtin_infq and __builtin_huge_valq.
+
+2009-03-28  Anatoly Sokolov  <aesok@post.ru>
+
+       * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
+       atmega8m1 devices.
+       * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
+       * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
+
+2009-03-28  Xinliang David Li  <davidxl@google.com>
+
+       * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support. 
+       (do_dbg_cnt): New function.
+
+2009-03-28  Jan Hubicka  <jh@suse.cz>
+
+       Merge from pretty-ipa:
+
+       2009-03-27  Jan Hubicka  <jh@suse.cz>
+       * cgraph.c (dump_cgraph_node): Add replace output flag by process.
+       * tree-pass.h (function_called_by_processed_nodes_p): Declare.
+       * passes.c (function_called_by_processed_nodes_p): New.
+       * ipa-pure-const.c (check_call): Fix handling of operands.
+       (analyze_function): Dump debug output for skipped bodies.
+       (local_pure_const): Use function_called_by_processed_nodes_p.
+       * dwarf2out.c (reference_to_unused): Use output.
+       * passes.c (do_per_function_toporder): Likewise.
+
+       2008-11-12  Jan Hubicka  <jh@suse.cz>
+
+       * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
+       * ipa-pure-const.c (funct_state_d): Add can throw field; make
+       state_set_in_source enum
+       (check_decl): Ignore memory tags; do not set fake looping flags;
+       dump diagnostics.
+       (check_operand, check_tree, check_rhs_var, check_lhs_var,
+       get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
+       (check_call, analyze_function): Rewrite.
+       (check_stmt): New.
+       (add_new_function): Update call of analyze_function.
+       (generate_summary): Add call of analyze_function.
+       (propagate): Propagate can_throw; handle state_set_in_source correctly.
+       (local_pure_const): New function.
+       (pass_local_pure_const): New pass.
+       * ipa-inline.c (inline_transform): Set after_inlining.
+       * tree-eh.c (stmt_can_throw_external): New.
+       * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
+       work with aliasing built.
+       * tree-flow.h (stmt_can_throw_external): New.
+       * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
+       and local pure/const pass in early and late optimization queue.
+2009-03-28  Martin Jambor  <mjambor@suse.cz>
+
+       * fold-const.c (get_pointer_modulus_and_residue): New parameter
+       allow_func_align.
+       (fold_binary): Allow function decl aligment consideration is the
+       second argument is integer constant one.
+       * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
+       (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
+       with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
+
+2009-03-28  Jan Hubicka  <jh@suse.cz>
+
+       * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
+       * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
+       * function.h (rtl_data): Add nothrow flag.
+       * except.c (set_nothrow_function_flags): Use crtl->nothrow;
+       set DECL_NOTHROW for AVAILABLE functions.
+
+2009-03-28  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
+       following vector keyword has expansion starting with pixel or bool
+       keyword, expand vector to __vector and pixel or bool to __pixel or
+       __bool.
+
+       PR c++/39554
+       * opts.c (warning_disallowed_functions, warn_disallowed_functions,
+       warn_if_disallowed_function_p): Removed.
+       (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
+       * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
+       warning_if_disallowed_function_p.
+       * flags.h (warn_if_disallowed_function_p,
+       warn_disallowed_functions): Removed.
+       * common.opt (Wdisallowed-function-list=): Removed.
+       * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
+
 2009-03-28  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/38723