+2011-12-15 Anatoly Sokolov <aesok@post.ru>
+
+ * config/arm/arm.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
+ * config/arm/arm.c (arm_memory_move_cost, arm_register_move_cost):
+ New functions.
+ (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
+
+2011-12-15 Richard Guenther <rguenther@suse.de>
+
+ PR lto/51564
+ * tree.h (REGISTER_DEFS_IN_THIS_STMT, NECESSARY,
+ STMT_IN_SSA_EDGE_WORKLIST): Remove no longer existing flag
+ uses documentation.
+ (TREE_ASM_WRITTEN): Update documentation to mention its use
+ on TYPE_DECLs from debug info generation.
+ * tree-streamer-out.c (pack_ts_base_value_fields): Stream
+ TREE_ASM_WRITTEN as always zero for TYPE_DECLs, similar to
+ all other types.
+
+2011-12-15 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/51050
+ * config/avr/avr.c (expand_epilogue): Don't build SUBREG of fp.
+ (avr_prologue_setup_frame): Ditto.
+
+2011-12-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/51517
+ * tree-ssa-coalesce.c (coalesce_ssa_name): For !optimize, test
+ !DECL_IGNORED_P instead of !DECL_ARTIFICIAL.
+
+2012-12-15 Richard Guenther <rguenther@suse.de>
+
+ Revert
+ PR lto/48437
+ * lto-streamer-out.c (tree_is_indexable): Exclude block-local
+ extern declarations.
+
+ PR lto/48508
+ PR lto/48437
+ * tree-streamer-out.c (streamer_write_chain): Stream DECL_EXTERNAL
+ VAR_DECLs and FUNCTION_DECLs locally.
+
+2011-12-14 Richard Henderson <rth@redhat.com>
+
+ * config/arm/arm.md (*addsi3_compare0_scratch): Set predicable.
+ (*compare_negsi_si, *compare_addsi2_op0): Likewise.
+ (*compare_addsi2_op1, *zeroextractsi_compare0_scratch): Likewise.
+ (*compareqi_eq0, *arm_cmpsi_insn, *arm_cmpsi_negshiftsi_si): Likewise.
+
+2011-12-14 Richard Guenther <rguenther@suse.de>
+
+ * tree-cfg.c (replace_uses_by): Fixup TREE_CONSTANT for
+ propagating all kinds of constants.
+
+2011-12-14 Richard Guenther <rguenther@suse.de>
+
+ PR lto/51497
+ * lto-streamer-in.c (lto_read_body): Fixup local types
+ TYPE_CANONICAL and variant chain.
+
+2011-12-14 Richard Guenther <rguenther@suse.de>
+
+ * tree.c (free_lang_data_in_type): Do not clear fields
+ dependent on debuginfo level setting.
+ (find_decls_types_r): Use TYPE_STUB_DECL rathern than TREE_CHAIN.
+ * tree.h (TYPE_STUB_DECL): Properly check that we access a type.
+
+2011-12-14 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/50931
+ * config/avr/avr.md (mulpsi3): New expander.
+ (*umulqihipsi3, *umulhiqipsi3): New insns.
+ (*mulsqipsi3.libgcc, *mulpsi3.libgcc): New insns.
+ (mulsqipsi3, *mulpsi3): New insn-and-splits.
+ (ashlpsi3): Turn to expander. Move insn code to...
+ (*ashlpsi3): ...this new insn.
+
+2011-12-14 Richard Guenther <rguenther@suse.de>
+
+ * tree-cfg.c (replace_uses_by): Only mark blocks altered
+ that will make a difference. Only recompute ADDR_EXPR
+ invariantness if it could possibly have changed. Do so
+ before folding the statement.
+
+2011-12-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ * lto-streamer-out.c (write_symbol): Use proper 64-bit host type.
+ * lto-cgraph.c (input_cgraph_opt_section): Use 'int' for offsets.
+ * lto-streamer-in.c (lto_read_body): Likewise.
+ (lto_input_toplevel_asms): Likewise.
+ * lto-section-in.c (lto_create_simple_input_block): Likewise.
+ * ipa-inline-analysis.c (inline_read_section): Likewise.
+ * ipa-prop.c (ipa_prop_read_section): Likewise.
+
+ * df.h (DF_NOTE): Fix typo in comment.
+
+2011-12-13 Aldy Hernandez <aldyh@redhat.com>
+
+ * trans-mem.c (ipa_tm_create_version_alias): Set DECL_CONTEXT and
+ DECL_LANG_SPECIFIC.
+
+2011-12-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
+
+ * regmove.c (fixup_match_2): Only access call_used_regs with hard regs.
+
+2011-12-13 Andrew Pinski <apinski@cavium.com>
+ Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips-cpus.def: Add Octeon2.
+ * config/mips/mips-tables.opt: Regenerate.
+ * config/mips/mips.md (define_attr "cpu"): Add Octeon2.
+ * config/mips/driver-native.c (host_detect_local_cpu): Support Octeon2.
+ * config/mips/octeon.md (octeon_arith): Add Octeon2.
+ (octeon_condmove): Likewise.
+ (octeon_load): Rename to ..
+ (octeon_load_o1): this.
+ (octeon_load_o2): New reserve.
+ (octeon_cop_o2): New reserve.
+ (octeon_store): Match Octeon2 also.
+ (octeon_brj): Rename to ..
+ (octeon_brj_o1): this.
+ (octeon_brj_o2): New reserve.
+ (octeon_imul3): Rename to ...
+ (octeon_imul3_o1): this.
+ (octeon_imul3_o2): New reserve.
+ (octeon_imul): Rename to ...
+ (octeon_imul_o1): this.
+ (octeon_imul_o2): New reserve.
+ (octeon_mfhilo): Rename to ...
+ (octeon_mfhilo_o1): This.
+ (octeon_mfhilo_o2): New reserve.
+ (octeon_imadd): Rename to ...
+ (octeon_imadd_o1): this.
+ (octeon_imadd_o2): New reserve.
+ (octeon_idiv): Rename to ..
+ (octeon_idiv_o1): This.
+ (octeon_idiv_o2_si): New reserve.
+ (octeon_idiv_o2_di): Likewise.
+ (octeon_unknown): Match Octeon2 also.
+ * config/mips/mips.c (mips_rtx_cost_data): Add Octeon2 cost data.
+ (mips_issue_rate): Octeon2 can issue 2 at a time.
+ * config/mips/mips.h (TARGET_OCTEON): Match Octeon2 also.
+ (TARGET_OCTEON2): New define.
+ (TUNE_OCTEON): Match Octeon2 also.
+
+2011-12-13 Richard Henderson <rth@redhat.com>
+
+ * config/sparc/tso.h: New file.
+ * config.gcc (sparc-*-linux*, sparc*-*-solaris2*): Use it.
+ * config/sparc/sparc.c (sparc_option_override): Honor
+ SUBTARGET_DEFAULT_MEMORY_MODEL.
+ * config/sparc/sparc.h (SUBTARGET_DEFAULT_MEMORY_MODEL): New.
+
+2011-12-13 Aldy Hernandez <aldyh@redhat.com>
+
+ PR middle-end/51443
+ * trans-mem.c (struct diagnose_tm): Remove saw_unsafe.
+ (diagnose_tm_1): Same.
+ (ipa_tm_execute): Do not test tm_may_enter_irr before we set it.
+ (ipa_tm_scan_irr_function): Return gracefully when no
+ DECL_STRUCT_FUNCTION.
+ (ipa_tm_scan_irr_block): Believe the user on TM attributes.
+
+2011-12-13 Martin Jambor <mjambor@suse.cz>
+
+ PR middle-end/50628
+ * tree-sra.c (propagate_subaccesses_across_link): Do not propagate
+ sub-accesses of scalar accesses.
+
+2011-12-13 Martin Jambor <mjambor@suse.cz>
+
+ PR tree-optimization/51362
+ * ipa-cp.c (estimate_local_effects): When estimated size of a
+ specialized clone is zero, bump it to one.
+
+2011-12-13 Richard Guenther <rguenther@suse.de>
+
+ PR lto/48354
+ * tree.c (find_decls_types_r): Also walk DECL_ORIGINAL_TYPE.
+ * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
+ Stream DECL_ORIGINAL_TYPE.
+ * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers):
+ Likewise.
+
+2011-12-13 Jakub Jelinek <jakub@redhat.com>
+
+ Revert
+ 2011-12-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/51481
+ * gimple-fold.c (gimple_fold_call): Call
+ maybe_clean_or_replace_eh_stmt. Avoid optimization if stmt has EH
+ edges, but gimple_fold_builtin result can't throw.
+
+2011-12-13 Jakub Jelinek <jakub@redhat.com>
+ Michael Matz <matz@suse.de>
+
+ PR tree-optimization/51117
+ * tree-eh.c (sink_clobbers): New function.
+ (execute_lower_eh_dispatch): Call it for BBs ending with
+ internally throwing RESX.
+ * cfgexpand.c (add_scope_conflicts_1): Add all conflicts only
+ at the first real instruction.
+
+2011-12-13 Tristan Gingold <gingold@adacore.com>
+
+ * final.c (final_scan_insn): Guard the call to begin_epilogue
+ debug hook.
+
+2011-12-13 Tristan Gingold <gingold@adacore.com>
+
+ * vmsdbgout.c (vmsdbgout_write_source_line): New function.
+ (vmsdbgout_end_prologue): Call vmsdbgout_write_source_line.
+ (vmsdbgout_begin_epilogue): Likewise.
+ (vmsdbgout_end_epilogue): Likewise.
+ (vmsdbgout_source_line): Move code to vmsdbgout_write_source_line.
+
+2011-12-13 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/51481
+ * tree-cfg.c (replace_uses_by): Pass proper arguments to
+ maybe_clean_or_replace_eh_stmt.
+
+2011-12-13 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/51519
+ * ipa-inline.c (edge_badness): Use edge growth in non-guessed
+ branch probability case as well.
+
+2011-12-13 Revital Eres <revital.eres@linaro.org>
+
+ * modulo-sched.c (mark_loop_unsched): Free bbs.
+
+2011-12-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/51495
+ * function.c (thread_prologue_and_epilogue_insns): Don't add
+ to bb_tail basic blocks that have EDGE_COMPLEX predecessor edges
+ from basic blocks not needing prologue.
+
+ PR tree-optimization/51481
+ * gimple-fold.c (gimple_fold_call): Call
+ maybe_clean_or_replace_eh_stmt. Avoid optimization if stmt has EH
+ edges, but gimple_fold_builtin result can't throw.
+
+2011-12-12 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/21617
+ * ira-color.c (bucket_allocno_compare_func): Don't compare
+ allocno classes. Compare number of hard registers needed.
+
+2011-12-12 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR tree-optimization/50569
+ * tree-sra.c (build_ref_for_model): Replicate a chain of COMPONENT_REFs
+ in the expression of MODEL instead of just the last one.
+
+2011-12-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/51510
+ * calls.c (internal_arg_pointer_based_exp_scan): Don't use
+ VEC_safe_grow_cleared if idx is smaller than VEC_length.
+
+2011-12-12 Richard Sandiford <richard.sandiford@linaro.org>
+
+ PR middle-end/50873
+ * optabs.c (maybe_legitimize_operand_same_code): Use copy_to_mode_reg
+ instead of force_reg. Do nothing if the address is already a
+ non-virtual pseudo register.
+
+2011-12-12 Torvald Riegel <triegel@redhat.com>
+
+ * gimplify.c (voidify_wrapper_expr): Add default handling for
+ outermost wrapper.
+
+2011-12-12 Torvald Riegel <triegel@redhat.com>
+
+ * tree-ssa-tail-merge.c (gimple_equal_p): Don't treat transaction
+ commits as equal.
+
+2011-12-12 Iain Sandoe <iains@gcc.gnu.org>
+
+ * config/darwin-sections.def (zobj_const_data_section): Fix over-
+ length section name.
+
+2011-12-11 Richard Henderson <rth@redhat.com>
+
+ * config/rs6000/rs6000.c (rs6000_expand_interleave): Use
+ BYTES_BIG_ENDIAN, not TARGET_BIG_ENDIAN.
+
+2011-12-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/51485
+ * tree-vect-data-refs.c (vect_analyze_data_refs): Give up on
+ DRs in call stmts.
+
+2011-12-11 Patrick Marlier <patrick.marlier@gmail.com>
+
+ * trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove edge.
+
+2011-12-10 Richard Henderson <rth@redhat.com>
+
+ * config/rs6000/altivec.md (altivec_vmrghb): Rewrite pattern as
+ vec_select + vec_concat.
+ (altivec_vmrghh, altivec_vmrghw, altivec_vmrghsf, altivec_vmrglb,
+ altivec_vmrglh, altivec_vmrglw, altivec_vmrglsf): Likewise.
+ (vec_perm_constv16qi): New.
+ (vec_extract_evenv4si, vec_extract_evenv4sf, vpkuhum_nomode,
+ vpkuwum_nomode, vec_extract_oddv8hi, vec_extract_oddv16qi,
+ vec_interleave_high<VI>, vec_interleave_low<VI>): Remove.
+ * config/rs6000/paired.md (paired_merge00): Rewrite pattern as
+ vec_select + vec_concat.
+ (paired_merge10, paired_merge01, paired_merge11): Likewise.
+ (vec_perm_constv2sf): New.
+ (vec_interleave_highv2sf, vec_interleave_lowv2sf,
+ vec_extract_evenv2sf, vec_extract_oddv2sf): Remove.
+ * config/rs6000/spe.md (spe_evmergehi): Rewrite pattern as
+ vec_select + vec_concat.
+ (spe_evmergehilo, spe_evmergelo, spe_evmergelohi): New.
+ (vec_perm_constv2si): New.
+ * config/rs6000/vector.md (vec_interleave_highv4sf,
+ vec_interleave_lowv4sf, vec_interleave_high<VEC_64>,
+ vec_interleave_low<VEC_64>): Remove.
+ * config/rs6000/vsx.md (VS_double): New mode attribute.
+ (UNSPEC_VSX_XXPERMDI): Remove.
+ (vsx_xxpermdi_<VSX_L>_1): Rewrite pattern as vec_select + vec_concat.
+ (vsx_xxmrghw_<VSX_W>, vsx_xxmrglw_<VSX_W>): Likewise.
+ (vsx_xxpermdi_<VSX_L>): Change to expander.
+ (vec_perm_const<VSX_D>): New.
+ (vsx_mergel_<VSX_D>, vsx_mergeh_<VSX_D>): New.
+ * config/rs6000/predicates.md (const_0_to_1_operand): New.
+ (const_2_to_3_operand): New.
+ * config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): New.
+ (altivec_expand_vec_perm_const): New.
+ (rs6000_expand_vec_perm_const_1, rs6000_expand_vec_perm_const): New.
+ (rs6000_vectorize_vec_perm_const_ok): New.
+ (rs6000_do_expand_vec_perm): New.
+ (rs6000_expand_extract_even, rs6000_expand_interleave): New.
+ * config/rs6000/rs6000-builtin.def (VEC_MERGE*): Update rtx codes.
+ * config/rs6000/rs6000-modes.def: Add double-wide vector modes.
+ * config/rs6000/rs6000-protos.h: Update.
+
+2011-12-10 Richard Henderson <rth@redhat.com>
+
+ * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Avoid passing a
+ CONST_INT to expand_vec_perm as the selector.
+ * optabs.c (expand_vec_perm): Assert the selector is of a proper mode.
+
+2011-12-10 Richard Henderson <rth@redhat.com>
+
+ * genmodes.c (struct mode_data): Remove wider_2x member.
+ (blank_mode): Adjust initializer.
+ (calc_wider_mode): Use XALLOCAVEC.
+ (emit_move_wider): Select double-width same-element vectors for
+ 2xwider vectors.
+ * machmode.h (GET_MODE_2XWIDER_MODE): Update documentation.
+ * config/i386/i386.c (doublesize_vector_mode): Remove.
+ (expand_vselect_vconcat): Use GET_MODE_2XWIDER_MODE instead.
+
+2011-12-10 Joern Rennecke <joern.rennecke@embecosm.com>
+
+ * config/epiphany/epiphany.h (USE_LOAD_POST_INCREMENT): Define.
+ (USE_LOAD_POST_DECREMENT, USE_STORE_POST_INCREMENT): Likewise.
+ (USE_STORE_POST_DECREMENT): Likewise.
+
+ * config/epiphany/epiphany.h (EPIPHANY_RETURN_REGNO): New macro,
+ broken out of ..
+ (INCOMING_RETURN_ADDR_RTX) .. this. Use EPIPHANY_RETURN_REGNO.
+ (DWARF_FRAME_RETURN_COLUMN): New macro.
+
+ * config/epiphany/epiphany-protos.h (epiphany_start_function): Declare.
+ * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
+ Split "timer" value into "timer0" and "timer1".
+ Handle page_miss, message and wand. Don't handle static_flag.
+ Adjust warning text.
+ (epiphany_start_function): New function.
+ (epiphany_compute_function_type): Split "timer" value into "timer0"
+ and "timer1". Handle page_miss, message and wand.
+ Don't handle static_flag.
+ (epiphany_expand_epilogue): Don't use frame_insn for status / iret
+ restore.
+ * config/epiphany/epiphany.h: ASM_DECLARE_FUNCTION_NAME: Define.
+ (enum epiphany_function_type):
+ Split EPIPHANY_FUNCTION_TIMER value into EPIPHANY_FUNCTION_TIMER0
+ and EPIPHANY_FUNCTION_TIMER1.
+ Remove EPIPHANY_FUNCTION_ILINK1 and EPIPHANY_FUNCTION_ILINK2 values.
+ Add EPIPHANY_FUNCTION_PAGE_MISS and EPIPHANY_FUNCTION_MESSAGE values.
+ Rename EPIPHANY_FUNCTION_STATIC_FLAG to EPIPHANY_FUNCTION_WAND.
+
+2011-12-10 Nathan Sidwell <nathan@acm.org>
+
+ PR gcov-profile/51449
+ * coverage.c (coverage_end_function): Always process the coverage
+ variables.
+
+2011-12-09 Aldy Hernandez <aldyh@redhat.com>
+
+ PR/51291
+ * tree.c (build_common_builtin_nodes): Do not use TM_PURE
+ attribute unless language has support for TM.
+ * config/i386/i386.c (ix86_init_tm_builtins): Exit gracefully in
+ the absence of TM builtins.
+
+2011-12-09 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gimple-fold.c (gimple_fold_stmt_to_constant_1) <GIMPLE_UNARY_RHS>:
+ Also check the TYPE_MODE to recognize useless pointer conversions.
+
+2011-12-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/51117
+ * tree-eh.c (optimize_clobbers): Don't remove just one
+ clobber, but all consecutive clobbers before RESX.
+ Use gimple_clobber_p predicate.
+
+2011-12-09 Michael Meissner <meissner@the-meissners.org>
+
+ * config/rs6000/rs6000.c (altivec_expand_builtin): Call
+ expand_call to return a valid funciton instead of return
+ cosnt0_rtx/NULL_RTX if there was an error with the builtin.
+ (altivec_expand_ld_builtin): Ditto.
+ (rs6000_inner_target_options): If VSX is selected as a target
+ attribute or pragma, enable ALTIVEC also.
+ (rs6000_pragma_target_parse): Call rs6000_option_override_internal
+ to do all of the standard processing when switching options,
+ including redefining appropriate macros.
+
+ PR rtl-optimization/51469
+ * varasm.c (default_binds_local_p_1): If the symbol is a gnu
+ indirect function, mark the symbol as non-local.
+
+2011-12-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR bootstrap/51479
+ * Makefile.in (errors.o): Restored.
+
+2011-12-09 Richard Guenther <rguenther@suse.de>
+
+ PR lto/48042
+ * tree.c (free_lang_data_in_decl): Remove freeing conditional
+ on debuginfo level.
+
+2011-12-09 Joern Rennecke <joern.rennecke@embecosm.com>
+
+ PR middle-end/40154
+ * emit-rtl.c (set_dst_reg_note): New function.
+ * rtl.h (set_dst_reg_note): Declare.
+ * optabs.c (expand_binop, expand_absneg_bit): Use set_dst_reg_note.
+ (emit_libcall_block, expand_fix): Likewise.
+ * function.c (assign_parm_setup_reg, expand_function_start): Likewise.
+ * expmed.c (expand_mult_const, expand_divmod): Likewise.
+ * reload1.c (gen_reload): Likewise.
+
+ * dse.c (get_stored_val, get_call_args): Use gen_int_mode.
+ * expmed.c (expand_divmod): Likewise.
+ * combine.c (simplify_if_then_else): Likewise.
+
+2011-12-09 Kai Tietz <ktietz@redhat.com>
+
+ * ira-color.c (print_hard_regs_subforest): Use
+ HOST_WIDEST_INT_PRINT_DEC instead of %lld.
+ (allocno_hard_regs): Change type of cost member to HOST_WIDEST_INT.
+ (add_allocno_hard_regs): Change type of argument cost
+ to HOST_WIDEST_INT.
+ * ira-conflict.c (build_conflict_bit_table): Replace use
+ of long-long by HOST_WIDEST_INT.
+
+2011-12-09 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/51425
+ * config/avr/avr.md (config/avr/avr.md, *sbix_branch_tmp): Use
+ zero_extract:QIHI instead of zero_extract:HI.
+
+2011-12-09 Jakub Jelinek <jakub@redhat.com>
+ Andrew Pinski <apinski@cavium.com>
+
+ PR tree-optimization/51117
+ * tree-eh.c (optimize_clobbers): New function.
+ (execute_lower_eh_dispatch): Call it.
+
+2011-12-09 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/51482
+ * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
+ Make sure to only create REAL_TYPE and INTEGER_TYPE component vectors.
+
+2011-12-09 Kai Tietz <ktietz@redhat.com>
+
+ * implicit-zee.c (num_realized): Change type to long.
+ (num_ze_opportunities): Likewise.
+
+2011-12-08 Andrew Pinski <apinski@cavium.com>
+
+ * config/mips/mips-cpus.def (octeon+): New CPU.
+ * config/mips/mips-tables.opt: Regenerate.
+ * config/mips/mips.h (MIPS_CPP_SET_PROCESSOR): Emit '+' as 'P'.
+
+2011-12-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ PR middle-end/39976
+ * tree-ssa-dom.c (enum expr_kind): Add EXPR_PHI.
+ (struct hashable_expr): Add struct phi field.
+ (initialize_hash_element): Handle phis; change to use XCNEWVEC.
+ (hashable_expr_equal_p): Handle phis.
+ (iterative_hash_hashable_expr): Likewise.
+ (print_expr_hash_elt): Likewise.
+ (free_expr_hash_elt): Likewise.
+ (dom_opt_enter_block): Create equivalences from redundant phis.
+ (eliminate_redundant_computations): Handle redundant phis.
+ (lookup_avail_expr): Handle phis.
+
2011-12-08 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/51466
2011-12-08 Richard Guenther <rguenther@suse.de>
PR tree-optimization/49772
- * tree-inline.c (optimize_inline_calls): Remove bail out
- on errors.
+ * tree-inline.c (optimize_inline_calls): Remove bail out on errors.
2011-12-08 Richard Guenther <rguenther@suse.de>
* config/avr/avr.c (avr_addrspace): New variable.
(avr_out_lpm, avr_pgm_check_var_decl, avr_insert_attributes,
avr_asm_named_section, avr_section_type_flags,
- avr_asm_select_section, avr_addr_space_address_mode,
+ avr_asm_select_section, avr_addr_space_address_mode,
avr_addr_space_convert, avr_emit_movmemhi): Use it.
(avr_addr_space_pointer_mode): Forward to avr_addr_space_address_mode.
(avr_pgm_segment): Remove.
2011-12-06 Richard Guenther <rguenther@suse.de>
PR middle-end/51436
- * gimple-fold.c (gimplify_and_update_call_from_tree): Guard
- vdef check for the fact we do not have virtual operands when
- not optimizing.
+ * gimple-fold.c (gimplify_and_update_call_from_tree): Guard vdef check
+ for the fact we do not have virtual operands when not optimizing.
2011-12-06 Richard Guenther <rguenther@suse.de>
PR tree-optimization/51245
* tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
New function.
- (vn_reference_lookup_3): Use it. Properly valueize all refs
- we create.
+ (vn_reference_lookup_3): Use it. Properly valueize all refs we create.
2011-12-06 Iain Sandoe <iains@gcc.gnu.org>
(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.
+ (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.
(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.
+ 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.
+ 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.
+ (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
+ (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.
+ (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.
+ (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
(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.
+ (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.
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.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.
(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.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
(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.
+ (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 ...
(process_file): Call find_exception_blocks if necessary.
(read_graph_file): Adjust. Note if an exceptional edge is seen.
(find_exception_blocks): New.
- (add_line_counts): Set line's unexceptional flag if not
- exceptional.
+ (add_line_counts): Set line's unexceptional flag if not exceptional.
(output_branch_count): Note exceptional arcs, lines and blocks.
* gcov-dump.c (tag_arcs): Decode arc flags.
* doc/gcov.texi: Document '=====' lines.