+2011-12-05 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * resource.c (init_resource_info): Only consider EXIT_IGNORE_STACK
+ if there is in epilogue.
+
+2011-12-05 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * optabs.c (maybe_emit_sync_lock_test_and_set): Pass a null target
+ to emit_library_call_value.
+ (expand_atomic_compare_and_swap): Likewise.
+
+2011-12-05 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR other/50775
+ * ira-int.h (struct ira_object): Remove add_data.
+ (OBJECT_ADD_DATA): Remove.
+
+ * ira-build.c (ira_create_object): Remove OBJECT_ADD_DATA
+ initialization.
+
+ * ira-color.c (object_hard_regs_t, object_hard_regs): Rename to
+ allocno_hard_regs_t, allocno_hard_regs.
+ (object_hard_regs_node_t, object_hard_regs_node): Rename to
+ allocno_hard_regs_node_t and allocno_hard_regs_node.
+ (struct allocno_color_data): Add new member last_process. Move
+ profitable_hard_regs, hard_regs_node, and hard_regs_subnodes_start
+ from object_color_data.
+ (object_color_data_t, object_color_data, OBJECT_COLOR_DATA):
+ Remove.
+ (curr_allocno_process): New static variable.
+ (object_hard_regs_eq, object_hard_regs_htab): Rename to
+ allocno_hard_regs_eq and allocno_hard_regs_htab.
+ (init_object_hard_regs, finish_object_hard_regs): Rename to
+ init_allocno_hard_regs and finish_allocno_hard_regs.
+ (object_hard_regs_compare, object_hard_regs_node_t): Rename to
+ allocno_hard_regs_compare and allocno_hard_regs_node_t.
+ (create_new_object_hard_regs_node): Rename to
+ create_new_allocno_hard_regs_node.
+ (add_new_object_hard_regs_node_to_forest): Rename to
+ add_new_allocno_hard_regs_node_to_forest.
+ (add_object_hard_regs_to_forest, collect_object_hard_regs_cover):
+ Rename to add_allocno_hard_regs_to_forest and collect_allocno_hard_regs_cover.
+ (setup_object_hard_regs_nodes_parent): Rename to setup_allocno_hard_regs_nodes_parent.
+ (remove_unused_object_hard_regs_nodes): Rename to remove_unused_allocno_hard_regs_nodes.
+ (enumerate_object_hard_regs_nodes, object_hard_regs_nodes_num):
+ Rename to enumerate_allocno_hard_regs_nodes and allocno_hard_regs_nodes_num.
+ (object_hard_regs_nodes, object_hard_regs_subnode_t): Rename to
+ allocno_hard_regs_nodes and allocno_hard_regs_subnode_t.
+ (object_hard_regs_subnode, object_hard_regs_subnodes): Rename to
+ allocno_hard_regs_subnode and allocno_hard_regs_subnodes.
+ (object_hard_regs_subnode_index): Rename to allocno_hard_regs_subnode_index.
+ (setup_object_hard_regs_subnode_index): Rename to
+ setup_allocno_hard_regs_subnode_index.
+ (get_object_hard_regs_subnodes_num): Rename to get_allocno_hard_regs_subnodes_num.
+ (form_object_hard_regs_nodes_forest): Rename to form_allocno_hard_regs_nodes_forest.
+ (finish_object_hard_regs_nodes_tree): Rename to form_allocno_hard_regs_nodes_forest
+ (finish_object_hard_regs_nodes_forest): Rename to
+ finish_allocno_hard_regs_nodes_forest.
+ (setup_left_conflict_sizes_p): Use allocno data instead of object
+ ones. Process conflict allocnos once.
+ (update_left_conflict_sizes_p): Use allocno data instead of object
+ ones. Change prototype signature.
+ (empty_profitable_hard_regs): Use allocno data instead of object
+ ones.
+ (setup_profitable_hard_regs): Ditto.
+ (get_conflict_profitable_regs): Rename to
+ get_conflict_and_start_profitable_regs. Use allocno data for
+ profitable regs calculation.
+ (check_hard_reg_p): Change prototype signature. Check profitable
+ regs for allocno not the objects.
+ (assign_hard_reg): Process conflict allocnos only once for
+ updating conflict costs.
+ (setup_allocno_available_regs_num): Use allocno data instead of
+ object ones. Modify debug output.
+ (color_pass): Remove initialization and finalization of object
+ color data.
+
+2011-12-05 Kazu Hirata <kazu@codesourcery.com>
+
+ PR target/51408
+ * config/arm/arm.md (*minmax_arithsi): Always require the else
+ clause in the MINUS case.
+
+2011-12-05 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/50904
+ * tree-ssa-loop-im.c (struct mem_ref): Remove vops member.
+ (MEM_ANALYZABLE): New.
+ (memory_references): Remove clobbered_vops and vop_ref_map
+ members, add all_refs_stored_in_loop member.
+ (memref_free): Adjust.
+ (mem_ref_alloc): Likewise.
+ (gather_mem_refs_stmt): Do not record clobbers, instead
+ record refs for unanalyzable stmts.
+ (gather_mem_refs_in_loops): Do not propagate clobbers.
+ (struct vop_to_refs_elt, vtoe_hash, vtoe_eq, vtoe_free,
+ record_vop_access, get_vop_accesses, get_vop_stores,
+ add_vop_ref_mapping): Remove.
+ (create_vop_ref_mapping_loop): Adjust to simply record all
+ stores.
+ (analyze_memory_references): Adjust.
+ (refs_independent_p): Check for not analyzable refs.
+ (can_sm_ref_p): Likewise.
+ (ref_indep_loop_p_1): Simplify.
+ (tree_ssa_lim_finalize): Adjust.
+
+ * tree-ssa-loop-im.c (stmt_cost): Simplify, use LIM_EXPENSIVE
+ rather than magic constants. Assign zero cost to PAREN_EXPR
+ and SSA_NAME copies. Assign cost proportional to the vector
+ size for vector constructors.
+
+2011-12-05 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-alias.h (struct ao_ref_s): Add volatile_p field.
+ * tree-ssa-alias.c (ao_ref_init): Initialize it.
+ (ao_ref_init_from_ptr_and_size): Likewise.
+ (refs_may_alias_p_1): Two volatile accesses conflict.
+ (ref_maybe_used_by_call_p_1): Likewise.
+ (call_may_clobber_ref_p_1): Likewise.
+ * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Initialize
+ volatile_p field.
+
+2011-12-05 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa.c (verify_ssa): Verify SSA names in the loop
+ over all SSA names. Remove SSA operand checking, call
+ verify_ssa_operands.
+ * tree-ssa-operands.h (verify_ssa_operands): Declare.
+ * tree-ssa-operands.c (verify_ssa_operands): New function.
+
+2011-12-05 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
+
+ * config/arm/arm.c (vfp3_const_double_for_fract_bits): Define.
+ * config/arm/arm-protos.h (vfp3_const_double_for_fract_bits): Declare.
+ * config/arm/constraints.md ("Dt"): New constraint.
+ * config/arm/predicates.md
+ (const_double_vcvt_power_of_two_reciprocal): New.
+ * config/arm/vfp.md (*arm_combine_vcvt_f32_s32): New.
+ (*arm_combine_vcvt_f32_u32): New.
+
+2011-12-05 Richard Guenther <rguenther@suse.de>
+
+ * cgraph.c (cgraph_create_edge_1): Initialize
+ call_stmt_cannot_inline_p from the stmt if possible.
+ (cgraph_make_edge_direct): Likewise.
+ * gimple-streamer-in.c (input_gimple_stmt): Do not
+ call gimple_call_set_cannot_inline.
+ * gimple.h (enum gf_mask): Remove GF_CALL_CANNOT_INLINE, shift
+ values.
+ (gimple_call_set_cannot_inline): Remove.
+ (gimple_call_cannot_inline_p): Likewise.
+ * ipa-inline-analysis.c (initialize_inline_failed): Look
+ at the edge call_stmt_cannot_inline_p flag.
+ * ipa-inline.c (can_inline_edge_p): Likewise.
+ (early_inliner): Only update the edge flag.
+ * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
+ (ipa_modify_call_arguments): Do not call gimple_call_set_cannot_inline.
+ * cgraphunit.c (assemble_thunk): Likewise.
+ * gimple-fold.c (gimple_fold_call): Likewise.
+
+ * tree.h (CALL_CANNOT_INLINE_P): Remove.
+ * tree-mudflap.c (mf_xform_statements): Do not modify alloca calls.
+ * builtins.c (expand_builtin_alloca): With -fmudflap do not expand
+ alloca calls inline.
+ * cfgexpand.c (expand_call_stmt): Do not set CALL_CANNOT_INLINE_P.
+ * gimple.c (gimple_build_call_from_tree): Do not read
+ CALL_CANNOT_INLINE_P.
+ * gimplify.c (gimplify_call_expr): Do not copy CALL_CANNOT_INLINE_P.
+
+2011-12-05 Jakub Jelinek <jakub@redhat.com>
+ Eric Botcazou <ebotcazou@adacore.com>
+
+ PR middle-end/51323
+ PR middle-end/50074
+ * calls.c (internal_arg_pointer_exp_state): New variable.
+ (internal_arg_pointer_based_exp_1,
+ internal_arg_pointer_exp_scan): New functions.
+ (internal_arg_pointer_based_exp): New function.
+ (mem_overlaps_already_clobbered_arg_p): Use it.
+ (expand_call): Free internal_arg_pointer_exp_state.cache vector
+ and clear internal_arg_pointer_exp_state.scan_start.
+
+2011-12-04 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/linux.h (TARGET_DEFAULT): Add MASK_SOFT_ATOMIC.
+ * config/sh/sync.md: New file.
+ * config/sh/sh.md: Include sync.md.
+ * config/sh/sh.opt (msoft-atomic): New option.
+ * doc/invoke.texi (SH Options): Document it.
+
+2011-12-04 Nathan Sidwell <nathan@acm.org>
+
+ * gcov-io.h (struct gcov_info): Replace trailing array with
+ pointer to array.
+ * profile.c (branch_prob): Only call renamed
+ coverage_begin_function once.
+ * coverage.h (coverage_begin_output): Rename to ...
+ (coverage_begin_function): ... here.
+ * coverage.c (struct function_list): Rename to ...
+ (struct coverage_data): ... this. Update all uses.
+ (gcov_info_var, gcov_fn_info_type, gcov_fn_info_ptr_type): New
+ globals.
+ (bbg_file_opened, bbg_function_announced): Remove.
+ (get_coverage_counts): Adjust message.
+ (coverage_begin_ouput): Rename to ...
+ (coverage_begin_function): ... here. Move file opening to
+ coverage_init. Adjust for being called only once.
+ (coverage_end_function): Remove bbg file and inhibit further
+ output here on error.
+ (build_info_type): Adjust for change to pointer to array.
+ (build_info): Receive array of function pointers and adjust.
+ (create_coverage): Break into ...
+ (coverage_obj_init, coverage_obj_fn, coverage_obj_finish):
+ ... these, and adjust.
+ (coverage_init): Open the notes file here. Tidy.
+ (coverage_finish): Call coverage_obj_init etc.
+
+2011-12-04 Ira Rosen <ira.rosen@linaro.org>
+
+ PR middle-end/51285
+ * tree-vect-loop.c (vect_create_epilog_for_reduction): Create exit
+ phi nodes for outer loop in case of double reduction.
+
+2011-12-04 Jérémie Detrey <Jeremie.Detrey@loria.fr>
+
+ PR target/51393
+ * config/i386/avxintrin.h (_mm256_insert_epi64): Declare second
+ parameter as long long.
+
+2011-12-04 Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR middle-end/51351
+ * optabs.c (init_sync_libfuncs): Use "or" rather than "ior"
+ in the external names.
+
+2011-12-03 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Pass -no_pie for
+ non-PIC code when targeting 10.7 or later.
+
+2011-12-03 Iain Sandoe <iains@gcc.gnu.org>
+
+ * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
+ Darwin >= 10.
+ (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
+ (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.
+
+2011-12-03 Jakub Jelinek <jakub@redhat.com>
+
+ * fold-const.c (fold_unary_loc): Fold VEC_UNPACK_LO_EXPR,
+ VEC_UNPACK_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
+ VEC_UNPACK_FLOAT_HI_EXPR with VECTOR_CST argument.
+ (fold_binary_loc): Fold VEC_PACK_TRUNC_EXPR,
+ VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR
+ and VEC_WIDEN_MULT_HI_EXPR with VECTOR_CST arguments.
+
+ PR debug/50317
+ * tree-ssa.c (target_for_debug_bind): Also allow is_gimple_reg_type
+ vars that aren't referenced.
+ (tree-ssa-live.c (remove_unused_locals): Don't clear TREE_ADDRESSABLE
+ of unreferenced local vars.
+ * cfgexpand.c (expand_debug_expr): For DEBUG_IMPLICIT_PTR allow also
+ TREE_ADDRESSABLE vars that satisfy target_for_debug_bind.
+
+2011-12-03 Anatoly Sokolov <aesok@post.ru>
+
+ * config/arm/arm.h (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove.
+ * config/arm/arm-protos.h (aapcs_libcall_value): Remove.
+ * config/arm/arm.c (TARGET_FUNCTION_VALUE_REGNO_P): Define.
+ (arm_libcall_value_1, arm_function_value_regno_p): New function.
+ (arm_function_value, arm_libcall_value): Use arm_libcall_value_1.
+ (aapcs_libcall_value): Make static.
+ (arm_libcall_value): Add static qualifier.
+
2011-12-02 Jakub Jelinek <jakub@redhat.com>
PR target/51387
TARGET_SH3.
(shl_sext_kind): Likewise.
* config/sh/sh.h (SH_DYNAMIC_SHIFT_COST): Likewise.
- * config/sh/sh.md (ashlsi3_sh2a, ashrsi3_sh2a, lshrsi3_sh2a):
- Remove.
+ * config/sh/sh.md (ashlsi3_sh2a, ashrsi3_sh2a, lshrsi3_sh2a): Remove.
(ashlsi3_std): Handle TARGET_SH2A same as TARGET_SH3.
(ashlsi3): Likewise.
(ashrsi3_d): Likewise.
(lshrsi3_d): Likewise.
(lshrsi3): Likewise.
-2011-12-01 Diego Novillo <dnovillo@google.com>
+2011-12-01 Diego Novillo <dnovillo@google.com>
PR bootstrap/51346
- * ipa-inline.c (can_inline_edge_p): If the edge E has a
- statement, use the statement's inline indicator instead
- of E's.
+ * ipa-inline.c (can_inline_edge_p): If the edge E has a statement,
+ use the statement's inline indicator instead of E's.
Remove consistency check.
-2011-12-01 Diego Novillo <dnovillo@google.com>
+2011-12-01 Diego Novillo <dnovillo@google.com>
PR bootstrap/51346
Revert
- 2011-11-29 Diego Novillo <dnovillo@google.com>
+ 2011-11-29 Diego Novillo <dnovillo@google.com>
- * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
- Update field call_stmt_cannot_inline_p from call
- graph edge, if needed.
- * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.
+ * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
+ Update field call_stmt_cannot_inline_p from call
+ graph edge, if needed.
+ * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.
2011-12-01 Nathan Sidwell <nathan@acm.org>
PR middle-end/51273
* cgraph.h (cgraph_call_node_duplication_hooks): Declare.
- * cgraph.c (cgraph_call_node_duplication_hooks): Make global.
+ * cgraph.c (cgraph_call_node_duplication_hooks): Make global.
* cgraphunit.c (cgraph_copy_node_for_versioning): Call it.
2011-12-01 Andrew Pinski <apinski@cavium.com>
2011-12-01 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/51246
- * tree-predcom.c (replace_ref_with): Handle also clobber on the
- rhs.
+ * tree-predcom.c (replace_ref_with): Handle also clobber on the rhs.
PR rtl-optimization/51014
* loop-unroll.c (apply_opt_in_copies): Ignore label DEBUG_INSNs
code checking for a clobber of a condition register when deciding
whether to predicate.
-2011-11-29 Diego Novillo <dnovillo@google.com>
+2011-11-29 Diego Novillo <dnovillo@google.com>
* gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
Update field call_stmt_cannot_inline_p from call graph edge, if needed.
(duplicate_insns_of_cycles): Use register indices directly,
rather than finding instructions using PREV_INSN. Use ps_reg_move.
(sms_schedule): Call schedule_reg_moves before committing to
- a partial schedule. Try the next ii if the schedule fails.
+ a partial schedule. Try the next ii if the schedule fails.
Use apply_reg_moves instead of generate_reg_moves. Adjust
call to print_node_sched_params. Free node_sched_param_vec
instead of node_sched_params.
(remove_duplicate_close_phi): Detect and repair creation of
duplicate close-phis for a containing loop.
-2011-09-27 Andi Kleen <ak@linux.intel.com>
+2011-09-27 Andi Kleen <ak@linux.intel.com>
* gcc.c (get_local_tick). Rename to get_random_number. Read from
/dev/urandom. Add getpid call.
(compare_debug_dump_opt_spec_function): Drop getpid call.
-2011-09-26 Andi Kleen <ak@linux.intel.com>
+2011-09-26 Andi Kleen <ak@linux.intel.com>
* toplev.c (init_local_tick): Try reading random seed
from /dev/urandom.
-2011-09-26 Andi Kleen <ak@linux.intel.com>
+2011-09-26 Andi Kleen <ak@linux.intel.com>
* hwint.h (HOST_WIDE_INT_PRINT_HEX_PURE): Add.
* lto-streamer.c (lto_get_section_name): Remove crc32_string.
HImode by 1 in the case of multiplying with a CONST_INT.
Record cost of *ashiftqihi2.signx.1 in case ASHIFT:QI.
-2011-09-15 Jan Hubicka <jh@suse.cz>
+2011-09-15 Jan Hubicka <jh@suse.cz>
PR lto/50430
* gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on
error_mark_node in the DECL_INITIAL of vtable.
-2011-09-15 Diego Novillo <dnovillo@google.com>
+2011-09-15 Diego Novillo <dnovillo@google.com>
* Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from
@SYSROOT_CFLAGS_FOR_TARGET@.
separately.
* tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
-2011-08-11 Kazuhiro Inaoka <kazuhiro.inaoka.ud@renesas.com>
+2011-08-11 Kazuhiro Inaoka <kazuhiro.inaoka.ud@renesas.com>
* config/rx/rx.md (movsicc): Allow register to register transfers.
(*movsicc): Likewise.
(*stcc_reg): New pattern. Works for any comparison but only for
register transfers.
-2011-08-11 Diego Novillo <dnovillo@google.com>
+2011-08-11 Diego Novillo <dnovillo@google.com>
* tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
Call stream_write_tree instead of output_record_start.
* tree-sra.c (access_precludes_ipa_sra_p): Also check access
memory alignment.
-2011-08-08 Diego Novillo <dnovillo@google.com>
+2011-08-08 Diego Novillo <dnovillo@google.com>
* Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
(DATA_STREAMER_H): New.
(TARGET_INSTANTIATE_DECLS): New define.
2011-08-06 Paolo Bonzini <bonzini@gnu.org>
- Mikael Morin <mikael.morin@sfr.fr>
+ Mikael Morin <mikael.morin@sfr.fr>
* Makefile.in (INCLUDES_FOR_TARGET): New.
(LIBGCC2_CFLAGS): Use it.
* config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
maybe_suffix.
-2011-08-03 David Li <davidxl@google.com>
+2011-08-03 David Li <davidxl@google.com>
* tree-optimize.c (execute_fixup_cfg): Fix up entry
outgoing edge counts after inlining.
-2011-08-03 David Li <davidxl@google.com>
+2011-08-03 David Li <davidxl@google.com>
* profile.c (compute_branch_probabilities): Compute
function frequency after profile annotation.
* config/arm/neon.md (vec_pack_trunc): Set the lengths
correctly for the case with Quad vectors.
-2011-06-13 Jakub Jelinek <jakub@redhat.com>
- Ira Rosen <ira.rosen@linaro.org>
+2011-06-13 Jakub Jelinek <jakub@redhat.com>
+ Ira Rosen <ira.rosen@linaro.org>
PR tree-optimization/49352
* tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
* calls.c (emit_call_1): Prefer the __builtin declaration of
builtin functions.
-2011-06-03 Diego Novillo <dnovillo@google.com>
+2011-06-03 Diego Novillo <dnovillo@google.com>
* lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
(lto_input_tree_pointers): Likewise.
* config/m68k/m68k.c (m68k_expand_prologue): Set
current_function_static_stack_size.
-2011-05-02 Jan Hubicka <jh@suse.cz>
+2011-05-02 Jan Hubicka <jh@suse.cz>
* lto-streamer.c (lto_streamer_cache_insert_1,
lto_streamer_cache_lookup, lto_streamer_cache_create,