OSDN Git Service

2010-05-06 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 4c9263d..5051ece 100644 (file)
@@ -1,5 +1,118 @@
+2010-05-06  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/43934
+       * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
+       (stmt_cost): Likewise.
+       (extract_true_false_args_from_phi): New helper.
+       (determine_max_movement): For PHI nodes verify we can hoist them
+       and compute their cost.
+       (determine_invariantness_stmt): Handle PHI nodes.
+       (move_computations_stmt): Likewise.  Hoist PHI nodes in
+       if-converted form using COND_EXPRs.
+       (move_computations): Return TODO_cleanup_cfg if we hoisted PHI
+       nodes.
+       (tree_ssa_lim): Likewise.
+       * tree-flow.h (tree_ssa_lim): Adjust prototype.
+       * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
+
+2010-05-06  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/43987
+       * tree-ssa-structalias.c (could_have_pointers): For possibly
+       address-taken variables force pointers to be recorded.
+       (create_variable_info_for_1): Likewise.
+       (push_fields_onto_fieldstack): Pass in wheter all fields
+       must have pointers.
+       (find_func_aliases): Query types instead of vars whether
+       they contain pointers where appropriate.
+
+2010-05-06  Jan Hubicka  <jh@suse.cz>
+
+       * cgraphbuild.c (record_reference_ctx): Add varpool_node.
+       (record_reference, mark_address, mark_load, mark_store): Record
+       references.
+       (record_references_in_initializer): Update call of record_references.
+       (rebuild_cgraph_edges): Remove all references before rebuiding.
+       * cgraph.c (cgraph_create_node): Clear ref list.
+       (cgraph_remove_node): Remove references.
+       (dump_cgraph_node): Dump references.
+       (cgraph_clone_node): Clone references.
+       * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
+       (struct cgraph_node, varpool_node): Add ref_lst.
+       * ipa-ref.c: New file.
+       * ipa-ref.h: New file.
+       * ipa-ref-inline.h: New file.
+       * lto-cgraph.c (output_varpool): Take cgrag node set argument.
+       (referenced_from_other_partition_p): New function.
+       (lto_output_varpool_node): Take set arugment; call
+       referenced_from_other_partition.
+       (lto_output_ref): New.
+       (add_references): New.
+       (output_refs): New.
+       (output_cgraph): Compute boundary based on references;
+       output refs.
+       (output_varpool): Accept cgraph_node_set argument.
+       (input_ref): New.
+       (input_refs): New.
+       (input_cgraph): Call input_refs.
+       * lto-section-in.c (lto_section_name): Add refs.
+       * Makefile.in: (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
+       (ipa-ref.o): New file.
+       * varpool.c (varpool_node): Clear ipa ref list.
+       (varpool_remove_node): Remove references.
+       (dump_varpool_node): Dump references.
+       (varpool_assemble_decl): Only compile finalized ones.
+       (varpool_extra_name_alias): Initialize ref list.
+       * lto-streamer.c (lto-get_section_name): Add .refs section.
+       * lto-streamer.h (lto_section_type): Add LTO_section_refs.
+       (referenced_from_other_partition_p): Declared.
+
+2010-05-06  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-optimization/43901
+       * tree-vect-stmts.c (vectorizable_call): Assert that vector
+       type is not NULL if it's transformation phase, and return
+       FALSE if it's analysis.
+       (vectorizable_conversion, vectorizable_operation, 
+       vectorizable_type_demotion, vectorizable_type_promotion):
+       Likewise.
+
+2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
+
+       * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
+       Delete.
+       * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
+       New define.
+       * config/mips/mips-protos.h
+       (mips_small_register_classes_for_mode_p): Delete prototype.
+
+2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
+       * config/arm/arm.c (multiple_operation_profitable_p,
+       compute_offset_order): New static functions.
+       (load_multiple_sequence, store_multiple_sequence): Use them.
+       Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
+       memory offsets, not register numbers.
+       (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
+
+2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * stor-layout.c (pending_sizes): Change the type to
+       VEC(tree,gc) *.
+       (get_pending_sizes, put_pending_size, put_pending_sizes):
+       Update the uses of pending_sizes.
+       * c-decl.c (store_parm_decls): Likewise.
+       * c-tree.h (struct c_arg_info): Likewise.
+       * tree.h: Update the prototype for get_pending_sizes and
+       put_pending_sizes.
+
 2010-05-05  Jason Merrill  <jason@redhat.com>
 
+       PR debug/43370
+       * c-common.c (handle_aligned_attribute): Respect
+       ATTR_FLAG_TYPE_IN_PLACE.
+
        PR testsuite/43758
        * target.h (struct gcc_target): Add attribute_takes_identifier_p.
        * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.