OSDN Git Service

Force the creation of a CONST_VECTOR for expand_vec_perm.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 5028c5f..885f535 100644 (file)
@@ -1,3 +1,241 @@
+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
+       * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also copy
+       TREE_SIDE_EFFECTS.
+
+2011-12-08  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-operands.c (add_stmt_operand): Do not mark stmts
+       volatile when processing operands of an ADDR_EXPR.
+       (get_indirect_ref_operands): Likewise.
+       (get_tmr_operands): Likewise.
+       (get_expr_operands): Likewise.
+
+2011-12-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       PR target/50395
+       * config/s390/s390.c (s390_mainpool_finish): Emit the jump over
+       the literal pool as jump insn.
+
+2011-12-08  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/49772
+       * tree-inline.c (optimize_inline_calls): Remove bail out
+       on errors.
+
+2011-12-08  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/50747
+       * lto-streamer-out.c (produce_symtab): Remove asserts.
+
+2011-12-08  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/49945
+       * lto-streamer-out.c (tree_is_indexable): Localize variably
+       modified types and their FIELD_DECLs.
+
+2011-12-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR tree-optimization/51315
+       * tree.h (get_object_or_type_alignment): Declare.
+       * expr.c (get_object_or_type_alignment): Move to...
+       * builtins.c (get_object_or_type_alignment): ...here.  Add assertion.
+       * tree-sra.c (tree_non_mode_aligned_mem_p): Rename to...
+       (tree_non_aligned_mem_p): ...this.  Add ALIGN parameter.  Look into
+       MEM_REFs and use get_object_or_type_alignment for them.
+       (build_accesses_from_assign): Adjust for above change.
+       (access_precludes_ipa_sra_p): Likewise.
+
+2011-12-08  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/48437
+       * lto-streamer-out.c (tree_is_indexable): Exclude block-local
+       extern declarations.
+
+2011-12-07  Andrew Pinski  <apinski@cavium.com>
+
+       PR middle-end/45416
+       * expr.c (do_store_flag): Rewrite code that looks for BIT_AND_EXPR for
+       SSA-expand.
+
+2011-12-07  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/50823
+       * ipa-inline.c (edge_badness): Do not account for the number of
+       remaining calls.
+
 2011-12-07  Martin Jambor  <mjambor@suse.cz>
 
        PR tree-optimization/50744