re PR middle-end/50325 (76 new fails with rev. 177691)
[gcc.git] / gcc / ChangeLog
index 4d6d129312868fc6a1938bfff1165f28501042b1..6def41fee76b7b8fdf0130f551556cd51765aa4f 100644 (file)
@@ -1,3 +1,215 @@
+2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+           Richard Sandiford  <rdsandiford@googlemail.com>
+
+       PR middle-end/50325
+       PR middle-end/51192
+       * optabs.h (simplify_expand_binop): Declare.
+       * optabs.c (simplify_expand_binop): Make global.
+       * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
+       endian targets if the source cannot be exactly covered by word
+       mode chunks.
+
+2012-01-17  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/51872
+       * hard-reg-set.h (struct hard_reg_set_container): New type.
+       * target.h (struct hard_reg_set_container): Forward declare.
+       * target.def (set_up_by_prologue): New target hook.
+       * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
+       * doc/tm.texi: Regenerated.
+       * function.c (thread_prologue_and_epilogue_insns): Change
+       set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
+       Call targetm.set_up_by_prologue on it.
+       * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
+       (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
+
+2012-01-17  Nick Clifton  <nickc@redhat.com>
+
+       * config/rx/rx.c (rx_can_use_simple_return): New function.
+       * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
+       * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
+
+2012-01-17  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/51782
+       * expr.c (expand_assignment): Take address-space information
+       from the address operand of MEM_REF and TARGET_MEM_REF.
+       (expand_expr_real_1): Likewise.
+
+2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * ira.c (do_reload): Make sure ira_dump_file is re-set if no
+       reload dump is requested.
+
+2012-01-17  Aldy Hernandez  <aldyh@redhat.com>
+
+       PR other/51165
+       * trans-mem.c (requires_barrier): Call may_be_aliased.
+
+2012-01-17  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/51877
+       * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
+       call arguments and fndecls compare equal, instead return false if they
+       don't.  Return true only if lhs1 and lhs2 are either both NULL, or
+       both SSA_NAMEs that are valueized the same, or they satisfy
+       operand_equal_p.
+
+2012-01-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
+       Solaris 11+.
+       * configure: Regenerate.
+
+2012-01-16  Jan Hubicka  <jh@suse.cz>
+
+       PR c/12245
+       PR c++/14179
+       * convert.c (convert_to_integer): Use fold_convert for
+       converting an INTEGER_CST to integer type.
+
+2012-01-16  Jason Merrill  <jason@redhat.com>
+
+       PR c++/14179
+       * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
+
+2012-01-16  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/51860
+       * config/s390/s390.c (s390_chunkify_start): Don't skip
+       call insns followed by NOTE_INSN_CALL_ARG_LOCATION note.  Skip
+       NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
+       If insn is followed by NOTE_INSN_VAR_LOCATION or
+       NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
+       Don't use location of note insns.
+
+       PR tree-optimization/51865
+       * tree-inline.c (tree_function_versioning): Call remap_decl
+       on DECL_RESULT whenever it has VOID_TYPE_P type.
+
+2012-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
+       for calls to locally-binding MIPS16 functions if only the return
+       type uses float regs.
+
+2012-01-15  Chung-Lin Tang  <cltang@codesourcery.com>
+           Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
+       (SYMBOL_32_HIGH): Likewise.
+       (mips_output_tls_reloc_directive): Declare.
+       * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
+       (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
+       * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
+       (mips_lo_relocs, mips_hi_relocs): Make extern.
+       (mips16_stub_function): Move up file.
+       (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
+       (mips_symbolic_constant_p): Likewise.  Remove SYMBOL_32_HIGH too.
+       (mips_symbol_insns_1): Likewise.  Check mips_use_pcrel_pool_p.
+       (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead
+       of SYMBOL_FORCE_TO_MEM.  Only check mips_tls_symbol_ref_1
+       if it's false.
+       (mips_get_tp): Add MIPS16 support.
+       (mips_legitimize_tls_address): Remove MIPS16 sorry().
+       Generalize DTPREL and TPREL handling.
+       (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
+       Add MIPS16 TLS support.
+       (mips_output_tls_reloc_directive): New function.
+       (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
+       * config/mips/predicates.md (symbolic_operand_with_high)
+       (tls_reloc_operand): New predicates.
+       (force_to_mem_operand): Use mips_use_pcrel_pool_p.
+       * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
+       (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
+       (*unshifted_high): New instruction.  Use it for MIPS16
+       high splitter.
+       (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
+       (*tls_get_tp_mips16_call_<mode>): Likewise.
+
+2012-01-15  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR rtl-optimization/51821
+       * recog.c (peep2_find_free_register): Determine clobbered registers
+       from insn pattern.
+
+2012-01-14  Denis Chertykov  <chertykov@gmail.com>
+
+       PR target/50925
+       * config/avr/avr-protos.h: Revert change of 2012-01-09.
+       * config/avr/avr.c: Likewise.
+       * config/avr/avr.h: Likewise.
+
+2012-01-13  Ian Lance Taylor  <iant@google.com>
+
+       PR c++/50012
+       * tree.h (TYPE_QUALS): Add cast to int.
+       (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
+
+2012-01-13  Ian Lance Taylor  <iant@google.com>
+
+       * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
+       comparing param_index to VEC_length result.
+
+2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * c-decl.c: Do not include tree-mudflap.h
+       * tree-optimize.c: Likewise.
+       * Makefile.in: Update dependencies.
+
+2012-01-13  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/8081
+       * gimplify.c (gimplify_modify_expr_rhs): For calls with a
+       variable-sized result always use RSO.
+
+2012-01-12  DJ Delorie  <dj@redhat.com>
+
+       * cfgexpand.c (convert_debug_memory_address): Allow any valid
+       pointer type, not just the default pointer type.
+
+2012-01-09  Richard Henderson  <rth@redhat.com>
+           Denis Chertykov  <chertykov@gmail.com>
+
+       PR target/50925
+       * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
+       * config/avr/avr.c (avr_can_eliminate): Simplify.
+       (avr_initial_elimination_offset): Likewise.
+       (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
+       (expand_epilogue): Likewise.
+       (avr_legitimize_address): Gut.
+       (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
+       (avr_hard_regno_nregs): New.
+       (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
+       (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
+       * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
+       add soft frame pointer.
+       (CALL_USED_REGISTERS): Likewise.
+       (REG_CLASS_CONTENTS): Likewise.
+       (REGISTER_NAMES): Likewise.
+       (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
+       (HARD_FRAME_POINTER_REGNUM): New.
+       (FRAME_POINTER_REGNUM): Use soft frame pointer.
+       (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
+       remove the HARD_FRAME_POINTER self-elimination.
+
+2012-01-12  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/51756
+       * config/avr/avr.c (avr_encode_section_info): Test for absence of
+       DECL_EXTERNAL when checking for initializers of progmem variables.
+
+2012-01-12  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-optimization/51799
+       * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
+       that the last operation is a type demotion.
+
+2012-01-12  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
+       (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
+
 2012-01-11  Jakub Jelinek  <jakub@redhat.com>
 
        PR bootstrap/51796