OSDN Git Service

* regmove.c (perhaps_ends_bb_p): Remove.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 738c87e..5f9b9c1 100644 (file)
@@ -1,3 +1,53 @@
+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