X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=c33ff0716eee05a44f66683f5f1f83891554f5f9;hb=b600658e8d293f533640150d81f62add096cbea1;hp=9616c2bdfdbdd9174e0e227cb0b77a764cee8a12;hpb=39ca90d51f0c4282d89cbcaa9d1153e44d048133;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9616c2bdfdb..bc8b10586f9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,1441 @@ +2012-02-21 Richard Earnshaw + + PR target/52294 + * thumb2.md (thumb2_shiftsi3_short): Split register and + immediate shifts. For register shifts tie operands 0 and 1. + (peephole2 for above): Check that register-controlled shifts + have suitably tied operands. + +2012-02-21 Quentin Neill + + PR target/52137 + * config/i386/bdver1.md (bdver1_call, bdver1_push, + bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul, + bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem, + bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov, + bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore, + bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store, + bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf, + bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load, + bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn, + bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc, + bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load, + bdver1_fcomi, bdver1_fcom_load, bdver1_fcom, + bdver1_fxch, bdver1_ssevector_avx128_unaligned_load, + bdver1_ssevector_avx256_unaligned_load, + bdver1_ssevector_sse128_unaligned_load, + bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load, + bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load, + bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load, + bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store, + bdver1_mmxsse_store_short, bdver1_ssevector_avx256, + bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256, + bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog, + bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load, + bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256, + bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd, + bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd, + bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps, + bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps, + bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd, + bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd, + bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si, + bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi, + bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq, + bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi, + bdver1_ssemuladd_load_256, bdver1_ssemuladd_256, + bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load, + bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd, + bdver1_ssediv_double_load_256, bdver1_ssediv_double_256, + bdver1_ssediv_single_load_256, bdver1_ssediv_single_256, + bdver1_ssediv_double_load, bdver1_ssediv_double, + bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins): + Add "bdver2" attribute. + +2012-02-21 Andreas Krebbel + + * config/s390/s390.c (s390_option_override): Make -mhard-dfp the + default if possible and not specified otherwise. + +2012-02-21 Richard Guenther + + PR middle-end/52314 + * gimplify.c (create_tmp_from_val): Use the main variant type + for the type of the temporary we create. + +2012-02-21 Richard Guenther + + PR tree-optimization/52324 + * gimplify.c (gimplify_expr): When re-gimplifying expressions + do not gimplify a MEM_REF address operand if it is already + in suitable form. + +2012-02-21 Andreas Krebbel + + * config/s390/s390.md ("fixuns_truncsi2"): Replace + TARGET_HARD_FLOAT with TARGET_HARD_DFP. + +2012-02-21 Richard Guenther + + * tree-vect-stmts.c (vectorizable_load): Use pre-computed + nested_in_vect_loop. + +2012-02-21 Jakub Jelinek + + PR tree-optimization/52318 + * gimple-fold.c (gimplify_and_update_call_from_tree): Add + vdef also to non-pure/const call stmts in the sequence. + +2012-02-20 David S. Miller + + * config/sparc/sparc.md (load_pcrel_sym): Explain why we + don't use the "rd %pc" instruction on v9 for PIC register loads. + +2012-02-20 Aldy Hernandez + + PR middle-end/52141 + * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's + in a transaction safe function. + +2012-02-20 Kai Tietz + + PR target/52238 + * stor-layout.c (place_field): Handle desired_align for + ms-bitfields, too. + +2012-02-20 Richard Guenther + + PR tree-optimization/52298 + * tree-vect-stmts.c (vectorizable_store): Properly use + STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing + outer loops. + (vectorizable_load): Likewise. + * tree-vect-data-refs.c (vect_analyze_data_ref_access): + Access DR_STEP after ensuring it is not NULL. + +2012-02-20 Jakub Jelinek + + PR tree-optimization/52286 + * fold-const.c (fold_binary_loc): For (X & C1) | C2 + optimization use double_int_to_tree instead of build_int_cst_wide, + rewrite to use double_int vars. + +2012-02-20 Rainer Orth + + PR target/50166 + * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION. + Define _start. + Remove -e 0 from $gcc_cv_ld invocation. + Only use __GLIBC_PREREQ if defined. + Enable on Solaris since Solaris 8 patch. + (gcc_SUN_LD_VERSION): New macro. + * configure.ac (ld_ver) <*-*-solaris2*>: Refer to + gcc_SUN_LD_VERSION for version number format. + * configure: Regenerate. + * varasm.c (get_elf_initfini_array_priority_section): Set + SECTION_NOTYPE for non-default priority. + Use get_section instead of get_unnamed_section to emit + .init_array/.fini_array with default priority. + +2012-02-19 Richard Sandiford + + * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable. + (mips_get_tp): Set it. Record that __mips16_rdhwr binds locally. + (mips_start_unique_function, mips_output_mips16_rdhwr) + (mips_code_end): New functions. + (TARGET_ASM_CODE_END): Define. + +2012-02-19 Richard Sandiford + + * config/mips/mips.c (mips16_build_call_stub): Add CFI information + to stubs with non-sibling calls. + +2012-02-18 Sandra Loosemore + + * doc/invoke.texi (-fira-* options): Copy-edit. + (ira-* parameters): Copy-edit. + +2012-02-17 Sandra Loosemore + + * doc/invoke.texi: Minor copy-edits to bring into conformance with + GCC coding conventions. + +2012-02-17 Sandra Loosemore + + * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian" + when used as adjectives. + +2012-02-16 Sandra Loosemore + + * doc/invoke.texi: Clean up "that"/"which" confusion. + +2012-02-17 Steven Bosscher + + * system.h: Poison SMALL_REGISTER_CLASSES + * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook. + * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES. + +2012-02-16 Jakub Jelinek + + PR tree-optimization/52285 + * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts + when deciding if a call is a tail call or tail recursion. + +2012-02-16 Kai Tietz + + * config/i386/i386.c (legitimate_pic_address_disp_p): Allow + interger-constant displacement for UNSPEC_PCREL. + +2012-02-16 Jakub Jelinek + + PR rtl-optimization/52208 + * ira-costs.c (scan_one_insn): Don't decrease mem_cost + for MEMs with REG_EQUIV, if the MEM isn't general_operand. + + PR tree-optimization/52255 + * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If + loop->header has virtual PHI, but exit_e->dest doesn't, add + virtual PHI to exit_e->dest and adjust all uses after the loop. + + PR debug/52260 + * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing + children with clone_tree_hash, not after it. + +2012-02-16 Iain Sandoe + + * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for + extended identifiers. + +2012-02-16 Jakub Jelinek + + PR middle-end/51929 + * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is + a same_body_alias, also test whether e->callee isn't a former + or current clone of the decl this is a same body alias of. + + PR translation/52264 + * cgraphunit.c (verify_cgraph_node): Fix a typo. + +2012-02-15 Sandra Loosemore + + * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers. + +2012-02-15 Michael Meissner + + PR target/52199 + * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use + force_reg instead of copy_to_reg for better optimization. Force + non-register or memory operands into a register. + +2012-02-15 Andrew MacLeod + + * extend.texi: Reserve upper bits of memory model for future use. + +2012-01-15 Georg-Johann Lay + Anatoly Sokolov + Eric Weddington + + PR target/52261 + * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2, + avrxmega4, avrxmega5, avrxmega6, avrxmega7. + Rewrite initializers for .macro. + * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs: + avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4 + atxmega32d4, atxmega32x1. + avrxmega4: atxmega64a3, atxmega64d3. + avrxmega5: atxmega64a1, atxmega64a1u. + avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3, + atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3. + avrxmega7: atxmega128a1, atxmega128a1u. + * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2, + ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7. + (struct base_arch_s): Rename reserved to xmega_p. + Rename reserved2 to have_rampd. + (AVR_XMEGA): New define. + (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines. + (AVR_HAVE_RAMPZ): Change definition to fit xmega. + * config/avr/predicates.md (io_address_operand): Take into + account SFR offset. + (low_io_address_operand): Ditto. + (high_io_address_operand): Ditto. + * config/avr/avr.md (isa): Add alternatives no_xmega, xmega. + (enabled, movhi_sp_r): Use them. + * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use + cpp_define_formatted to built-in define __AVR_ARCH__. + (__AVR_XMEGA__): New built-in define. + (__AVR_HAVE_RAMPD__): New built-in define. + (__AVR_HAVE_RAMPX__): New built-in define. + (__AVR_HAVE_RAMPY__): New built-in define. + (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it. + + * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy. + (avr_option_override): Initialize them. + (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx. + (avr_init_expanders): Initialize them. No more block several calls. + (emit_push_sfr): New static function. + (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed. + Handle AVR_XMEGA. + (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed. + (avr_print_operand): Print addreeses as symbols for + RAMPX, RAMPY, RAMPD, CCP. + (output_movhi): Handle AVR_XMEGA when writing to SP. + (avr_out_movhi_mr_r_xmega): New static function. + (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA. + (avr_file_start): Print symbol defines for __RAMPX__, __RAMPY__, + __RAMPD__, __CCP__ as needed. + + * config/avr/multilib.h: Regenerate. + * config/avr/t-multilib: Regenerate. + * config/avr/avr-tables.opt: Regenerate. + +2012-02-15 Tobias Grosser + + PR tree-optimization/50561 + * graphite-flattening.c (lst_project_loop): Do not + remove old scattering dimensions after flattening. + (lst_do_flatten): Likewise. + +2012-02-15 Georg-Johann Lay + + * doc/extend.texi (AVR Built-in Functions): Remove doc for + __builtin_avr_map8, __builtin_avr_map16. + Document __builtin_avr_insert_bits. + + * config/avr/avr.md (map_bitsqi, map_bitshi): Remove. + (insert_bits): New insn. + (adjust_len.map_bits): Rename to insert_bits. + (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS. + * avr-protos.h (avr_out_map_bits): Remove. + (avr_out_insert_bits, avr_has_nibble_0xf): New. + * config/avr/constraints.md (Cxf,C0f): New. + * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in + defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16. + New built-in define __BUILTIN_AVR_INSERT_BITS. + * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define. + (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS. + (avr_move_bits): Rewrite. + (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static + functions. + (avr_map_op_t): New typedef. + (avr_map_op): New static variable. + (avr_out_insert_bits, avr_has_nibble_0xf): New functions. + (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS. + (avr_init_builtins): Add definition for __builtin_avr_insert_bits. + (bdesc_3arg, avr_expand_triop_builtin): New. + (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS. + (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove. + (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove. + (avr_map_equal_p, avr_map_sig_p): Remove. + (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove. + (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16. + (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS. + (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16. + (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16. + (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16. + +2012-02-14 Bernd Schmidt + + * config/c6x/c6x.md (reserve_cycles): New attribute. + * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate + don't reserve functional units after the branch occurs. + +2012-02-14 Aldy Hernandez + + PR middle-end/52142 + * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure + functions into non-tm_pure functions. + +2012-02-14 Eric Botcazou + + PR lto/52178 + * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P. + (iterative_hash_canonical_type): Likewise. + * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all + the dead edges. + +2012-02-14 Bernd Schmidt + + * haifa-sched.c (prune_ready_list): Ensure that if there is a + sched-group insn, it either remains alone or the entire list is + pruned. + +2012-02-14 Jonathan Wakely + + * doc/install.texi (Prerequisites): Fix grammar. + (Configuration): Likewise. + +2012-02-14 Jonathan Wakely + + * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and + MPC as part of GCC before describing configuring with --with-gmp etc. + (Installing GCC: Configuration): --with-gmp etc. aren't needed if + sources are present. + +2012-02-14 Jakub Jelinek + + PR debug/51950 + * dwarf2out.c (clone_tree_hash): New function. + (copy_decls_walk): Use it instead of clone_tree. + +2012-02-14 Richard Guenther + + PR tree-optimization/52244 + PR tree-optimization/51528 + * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE + replacements for integral types. + +2012-02-14 Walter Lee + + * config.gcc: Handle tilegx and tilepro. + * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for + tilegx and tilepro. + Add HAVE_AS_TLS check for tilegx and tilepro. + * configure: Regenerate. + * doc/contrib.texi: Add Mat Hostetter and self. + * doc/extend.texi (TILE-Gx Built-in Functions): New node. + Document instruction intrinsics and network accessing intrinsics. + (TILEPro Built-in Functions): New node. Document instruction + intrinsics and network accessing intrinsics. + * doc/install.texi (Specific, tilegx-*-linux*): Document it. + (Specific, tilepro-*-linux*): Likewise. + * doc/invoke.texi (TILE-Gx Options): New section. + (TILEPro Options): New section. + * doc/md.texi (TILE-Gx): New section. + (TILEPro): New section. + * common/config/tilegx/tilegx-common.c: New file. + * common/config/tilepro/tilepro-common.c: New file. + * config/tilegx/constraints.md: New file. + * config/tilegx/linux.h: New file. + * config/tilegx/mul-tables.c: New file. + * config/tilegx/predicates.md: New file. + * config/tilegx/sync.md: New file. + * config/tilegx/t-tilegx: New file. + * config/tilegx/tilegx-builtins.h: New file. + * config/tilegx/tilegx-c.c: New file. + * config/tilegx/tilegx-generic.md: New file. + * config/tilegx/tilegx-modes.def: New file. + * config/tilegx/tilegx-multiply.h: New file. + * config/tilegx/tilegx-protos.h: New file. + * config/tilegx/tilegx.c: New file. + * config/tilegx/tilegx.h: New file. + * config/tilegx/tilegx.md: New file. + * config/tilegx/tilegx.opt: New file. + * config/tilepro/constraints.md: New file. + * config/tilepro/gen-mul-tables.cc: New file. + * config/tilepro/linux.h: New file. + * config/tilepro/mul-tables.c: New file. + * config/tilepro/predicates.md: New file. + * config/tilepro/t-tilepro: New file. + * config/tilepro/tilepro-builtins.h: New file. + * config/tilepro/tilepro-c.c: New file. + * config/tilepro/tilepro-generic.md: New file. + * config/tilepro/tilepro-modes.def: New file. + * config/tilepro/tilepro-multiply.h: New file. + * config/tilepro/tilepro-protos.h: New file. + * config/tilepro/tilepro.c: New file. + * config/tilepro/tilepro.h: New file. + * config/tilepro/tilepro.md: New file. + * config/tilepro/tilepro.opt: New file. + +2012-02-14 Jakub Jelinek + + PR tree-optimization/52210 + * tree-vect-slp.c (vect_get_and_check_slp_defs): Call + vect_model_simple_cost with two entry vect_def_type array instead + of an address of dt. + +2012-02-14 Richard Guenther + + PR lto/52178 + * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers): + Do not stream DECL_QUALIFIER. + * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise. + * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER. + (find_decls_types_r): Do not walk DECL_QUALIFIER. + +2012-02-14 Jakub Jelinek + + PR c/52181 + * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to + newdecl. + +2012-02-13 Jakub Jelinek + + PR bootstrap/52172 + * cselib.h (cselib_subst_to_values_from_insn): New prototype. + * cselib.c (cselib_subst_to_values_from_insn): New function. + * sched-deps.c (add_insn_mem_dependence, + sched_analyze_1, sched_analyze_2): Use it. + +2012-02-13 Jan Hubicka + + PR middle-end/52214 + * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch. + +2012-02-13 Eric Botcazou + + * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm. + (GTM_SELF_SPECS): Define if not already defined. + (driver_self_specs): Add GTM_SELF_SPECS. + * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm. + (GTM_SELF_SPECS): Define. + * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise. + * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise. + +2012-02-13 Jakub Jelinek + + * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right + away if seen. + + * cselib.c (dump_cselib_val): Don't assume l->setting_insn is + non-NULL. + + PR middle-end/52230 + * omp-low.c (expand_omp_for): If a static schedule without + chunk size has NULL region->cont, force fd.chunk_size to be + integer_zero_node. + +2012-02-13 Andrew MacLeod + + PR c/52190 + * doc/extend.texi : Fix another __atomic_compare_exchange typo. + +2012-02-13 Richard Guenther + + PR translation/52211 + * passes.c (enable_disable_pass): Fix typo. + +2012-02-13 Jakub Jelinek + + PR middle-end/52209 + * expr.c (expand_expr_real_2) : Only expand using + XOR for reduce_bit_field if type is unsigned. + +2012-02-12 Eric Botcazou + + * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode, + disallow changes from SFmode to mode with different size in FP regs. + +2012-02-12 Robert Millan + Gerald Pfeifer + + * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define. + Tweak comment. + +2012-02-11 Richard Sandiford + + PR rtl-optimization/52175 + * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization + to frame-related instructions. + +2012-02-10 Jason Merrill + + PR c++/51910 + * tlink.c (demangled_hash_entry): Change mangled to a VEC. + (demangle_new_symbols): Fill it. + (scan_linker_output): Walk it. + (start_tweaking): Split out from scan_linker_output. + (maybe_tweak): Update sym->chosen. + * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o + +2012-02-11 Jakub Jelinek + + PR debug/52132 + * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use + get_true_reg. + +2012-02-11 Uros Bizjak + + * compare-elim.c (find_comparisons_in_bb): Eliminate only compares + having the same mode as previous compare. + +2012-02-10 Eric Botcazou + + * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use. + * config/sparc/sparc.md (UNSPECV_GOTO): Delete. + (nonlocal_goto_internal): Likewise. + (nonlocal_goto): Emit a use and an indirect jump directly. + +2012-02-10 Andrew MacLeod + + PR c/52190 + * doc/extend.texi : Update comments for __atomic_compare_exchange and + __atomic_{is,always}_lock_free. + +2012-02-10 Uros Bizjak + + PR target/52146 + * config/i386/i386.c (ix86_legitimate_address_p): Disallow + negative constant address for x32. + +2012-02-10 Richard Henderson + + * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION. + * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands + for GIMPLE_TRANSACTION. Tidy if's into a switch. + +2012-02-10 Bill Schmidt + Ira Rosen + + PR tree-optimization/50031 + * targhooks.c (default_builtin_vectorization_cost): Handle + vec_promote_demote. + * target.h (enum vect_cost_for_stmt): Add vec_promote_demote. + * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle + all types of reduction and pattern statements. + (vect_estimate_min_profitable_iters): Likewise. + * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function. + (vect_get_load_cost): Use vec_perm for permutations; add dump logic + for explicit realigns. + (vectorizable_conversion): Call vect_model_promotion_demotion_cost. + * config/spu/spu.c (spu_builtin_vectorization_cost): Handle + vec_promote_demote. + * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise. + * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update + vec_perm for VSX and handle vec_promote_demote. + +2012-02-10 Jakub Jelinek + + PR middle-end/52177 + * builtins.c (fold_builtin_atomic_always_lock_free, + expand_builtin_atomic_always_lock_free, + fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free): + Return and/or test boolean_true_node/boolean_false_node instead of + integer_one_node/integer_zero_node. + +2012-02-10 Jan Hubicka + + PR middle-end/48600 + * predict.c (predict_paths_for_bb): Prevent looping. + (predict_paths_leading_to_edge, predict_paths_leading_to): Update. + +2012-02-10 Roman Zhuykov + + * config/arm/arm.c (output_move_double): In one case properly + count number of instructions that will be emitted. + +2012-02-10 Richard Guenther + + PR translation/52193 + * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo. + +2012-02-09 Peter Bergner + + PR middle-end/52140 + * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P. + +2012-02-09 Jakub Jelinek + + PR debug/52165 + * var-tracking.c (emit_note_insn_var_location): If + EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION, + emit it before next non-NOTE_INSN_CALL_ARG_LOCATION + non-NOTE_DURING_CALL_P insn. + +2012-02-09 Bin Cheng + + PR middle-end/51867 + * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P. + +2012-02-08 Magnus Granberg + + PR driver/48524 + * gcc.c (switch_matches) Support switches with separated form, + -D and -U. + +2012-02-08 Georg-Johann Lay + + * config/avr/avr.md (SREG_ADDR): Remove constant definition. + (SP_ADDR): Ditto. + (RAMPZ_ADDR): Ditto. + * config/avr/avr.c (avr_addr_t): New typedef. + (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG. + (avr_init_expanders): Initialize it. + (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR, + SREG_ADDR. + (expand_epilogue): Ditto. + (avr_print_operand): Ditto. + (avr_file_start): Ditto. + (avr_emit_movmemhi): Ditto. + +2012-02-08 Richard Guenther + + PR tree-optimization/46886 + * tree-flow.h (do_while_loop_p): Declare. + * tree-ssa-loop-ch.c (do_while_loop_p): Export. + * tree-parloops.c (parallelize_loops): Only parallelize do-while loops. + +2012-02-08 Andrew MacLeod + + * optabs.c (expand_atomic_load): Do not assume compare_and_swap will + always succeed for integers larger than a native word. + +2012-02-08 Richard Guenther + + PR rtl-optimization/52170 + * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to + properly handle integer vector modes. + +2012-02-08 Jakub Jelinek + + PR gcov-profile/52150 + * coverage.c: Include target.h. + (build_var): Call targetm.strip_name_encoding on the assembler name. + Change one _ into . or $ if the target allows it. + * Makefile.in (coverage.o): Depend on $(TARGET_H). + + PR rtl-optimization/52139 + * cfgrtl.c (cfg_layout_merge_blocks): If BB_END + is a BARRIER after emit_insn_after_noloc, move BB_END + to the last non-BARRIER insn before it. + +2012-02-07 Richard Sandiford + + PR middle-end/24306 + * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function. + (mips_gimplify_va_arg_expr): Call it instead of + std_gimplify_va_arg_expr. + +2012-02-07 Michael Meissner + + * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error + message for -mno-pointers-to-nested-function. + +2012-02-07 Eric Botcazou + + PR middle-end/51994 + * expr.c (get_inner_reference): If there is an offset, add a negative + bit position to it (if any). + +2012-02-07 Jakub Jelinek + + PR rtl-optimization/52060 + * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables, + copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already + before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy + and/or i0src_copy2 when needed. + +2012-02-07 Jakub Jelinek + + * gcc.c (main): Don't look for lto-wrapper or lto-wrapper + or LTOPLUGINSONAME if have_c. + + * config/freebsd-spec.h: Add comment about what macros can be defined + in this header. + (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here. + * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But + here instead. + +2012-02-07 Richard Guenther + + * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive + newline in -alias dumps. + +2012-02-07 Kai Tietz + Dave Korn + + PR target/40068 + * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): + Take care that typinfo gets dllexport-attribute. + +2012-02-07 Jakub Jelinek + + PR middle-end/52074 + * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL + if modifier < EXPAND_SUM call force_operand on the result. + +2012-02-07 Joern Rennecke + + * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine, + adding __forwarder_dst__ prefix if a forwarder_section attribute is + present. + (epiphany_function_type): Replace types for specific interrupts with + EPIPHANY_FUNCTION_INTERRUPT. + (EPIPHANY_INTERRUPT_P): Update. + * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute): + New static function. + (epiphany_attribute_table) : min_len is 0, max_len is 9. + : Affects type identity. + (epiphany_handle_interrupt_attribute): Handle variable number of + arguments. + (epiphany_compute_function_type): Update for new + epiphany_function_type definition. + (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt + handlers with a longcall forwarder. + (epiphany_start_function): Handle multiple interrupt arguments and/or + forwarder_section attribute. + + * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after + libgloss. + +2012-02-07 Alan Modra + + PR target/52107 + * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode + subregs of TFmode. + +2012-02-06 Bill Schmidt + + PR tree-optimization/50969 + * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to + use vec_perm rather than vector_stmt. + (vect_model_load_cost): Likewise. + * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of + vec_perm to be the same as other vector statements. + * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise + cost of vec_perm for TARGET_VSX. + +2012-02-06 Richard Guenther + + PR tree-optimization/52115 + * tree-sra.c (access_has_replacements_p): New function. + (sra_modify_assign): Use it to decide whether a use is uninitialized. + +2012-02-06 Patrick Marlier + + PR middle-end/52047 + * trans-mem.c (expand_call_tm): Add an assertion. + * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops' + functions. + +2012-02-06 Richard Guenther + + PR tree-optimization/50955 + * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially + raise cost of expressions that replace an address with an + expression based on a different pointer. + +2012-02-06 Jakub Jelinek + + PR target/52129 + * calls.c (mem_overlaps_already_clobbered_arg_p): If val is + CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it. + +2012-02-06 Jonathan Wakely + + PR c++/48680 + * doc/invoke.texi (C++ Dialect Options): Use @option markup for + -Weffc++ and specify guidelines come from second edition. + +2012-02-05 Richard Sandiford + + * config/mips/mips.md (sibcall_internal, sibcall_value_internal) + (sibcall_value_multiple_internal, call_split, call_internal_direct) + (call_direct_split, call_value_split, call_value_internal_direct) + (call_value_direct_split, call_value_multiple_split): Use jal and + jal_macro attributes. + +2012-02-05 Richard Sandiford + + * reload1.c (reload_regs_reach_end_p): Replace with... + (reload_reg_rtx_reaches_end_p): ...this function. + (new_spill_reg_store): Update commentary. + (emit_input_reload_insns): Don't clear new_spill_reg_store here. + (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p + before setting new_spill_reg_store. + (emit_reload_insns): Use a separate loop to clear new_spill_reg_store. + Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p. + Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store + for non-spill reload registers. + +2012-02-05 Ira Rosen + + PR tree-optimization/52091 + * tree-vectorizer.h (vect_is_simple_use): Add an argument. + (vect_is_simple_use_1): Likewise. + * tree-vect-loop.c (vectorizable_reduction): Update calls + to vect_is_simple_use_1 and vect_is_simple_use. + (vectorizable_live_operation): Likewise. + * tree-vect-patterns.c (widened_name_p, + vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise. + * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand, + vectorizable_call, vectorizable_conversion, vectorizable_assignment, + vectorizable_shift,vectorizable_operation, vectorizable_store, + vectorizable_load): Likewise. + (vect_is_simple_cond): Add an argument, pass it to + vect_is_simple_use_1. + (vectorizable_condition): Update calls to vect_is_simple_cond, + vect_is_simple_use. + (vect_is_simple_use): Add an argument, the statement in which + OPERAND is used. Check that if OPERAND's def stmt is a double + reduction phi node, the use is a phi node too. + (vect_is_simple_use_1): Add an argument, pass it to + vect_is_simple_use. + * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call + to vect_is_simple_use. + +2012-02-04 Jakub Jelinek + + PR rtl-optimization/52095 + * modulo-sched.c (dump_insn_locator): New function. + (loop_canon_p, sms_schedule): Use it. + + PR rtl-optimization/52113 + * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized + even for decomposable shift/zext insns. + +2012-02-03 Jakub Jelinek + Zdenek Dvorak + + PR rtl-optimization/52092 + * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared + on get_iv_value result. + +2012-02-02 Andrew Pinski + + PR middle-end/47982 + PR middle-end/43967 + * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo. + +2012-02-02 Jakub Jelinek + + PR middle-end/48071 + * diagnostic.c (diagnostic_finish): Remove trailing newlines. + +2012-02-02 Vladimir Makarov + + PR rtl-optimization/49800 + * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs. + (sched_finish): Call regstat_free_n_sets_and_refs. + +2012-02-02 Jia Liu + + * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather + than operand 2. + +2012-02-02 Jan Hubicka + Tom de Vries + + PR middle-end/51998 + * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases. + * varpool.c (varpool_analyze_pending_decls): Likewise. + +2012-02-02 Sumanth G + Jayant R Sonar + + * config.gcc: Add cr16-* support. + + * doc/extend.texi: Document cr16 extensions. + * doc/install.texi: Document cr16 install. + * doc/invoke.texi: Document cr16 options. + * doc/md.texi: Document cr16 constraints. + + * common/config/cr16/cr16-common.c: New file. + * config/cr16/cr16.c: New file. + * config/cr16/cr16.h: New file. + * config/cr16/cr16.md: New file. + * config/cr16/cr16.opt: New file. + * config/cr16/cr16-protos.h: New file. + * config/cr16/predicates.md: New file. + * config/cr16/constraints.md: New file. + * config/cr16/t-cr16: New file. + +2012-02-02 Jakub Jelinek + + PR target/52086 + * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check + that operands[2] is either immediate, or q_regs_operand. + + PR tree-optimization/52073 + * tree-vect-stmts.c (vect_mark_relevant): When checking uses of + a pattern stmt for pattern uses, ignore uses outside of the loop. + +2012-02-01 Georg-Johann Lay + + * config/avr/avr.c: Resolve all AS1 and AS2 macros. + * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove. + (OUT_AS1, OUT_AS2): Remove. + +2012-02-01 Georg-Johann Lay + + PR rtl-optimization/51374 + * combine.c (can_combine_p): Don't allow volatile_refs_p insns + to cross other volatile_refs_p insns. + +2012-02-01 Richard Guenther + + * doc/invoke.texi (fno-inline): Clarify documentation. + (finline-small-functions): Likewise. + (finline-functions): Likewise. + * common.opt (finline): Adjust comment and documentation. + (finline-small-functions): Clarify documentation. + (finline-functions): Likewise. + (finline-functions-called-once): Likewise. + +2012-02-01 Tristan Gingold + + * c-typeck.c (composite_type): Keep mode for pointers. + +2012-01-31 Richard Sandiford + + * function.h (regno_reg_rtx): Adjust comment. + * reginfo.c (init_reg_modes_target): Only use the previous mode + if it fits within one register. Remove MIPS comment. + +2012-01-31 Jakub Jelinek + + PR bootstrap/52058 + * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0. + +2012-01-31 Andreas Krebbel + + * config/s390/s390.md ("*ashr3_and"): Add missing z196 flag + to srak instruction. + +2012-01-31 Matthew Gretton-Dann + + * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition. + +2012-01-31 Jakub Jelinek + + PR bootstrap/52041 + PR bootstrap/52039 + PR target/51974 + * ipa-prop.c (detect_type_change_1): Call ao_ref_init. + +2012-01-31 Richard Guenther + + PR tree-optimization/51528 + * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate + assigns. + +2012-01-31 Jakub Jelinek + + PR bootstrap/52041 + PR bootstrap/52039 + PR target/51974 + * ree.c (add_removable_extension): Change def_map argument + to unsigned *, store in def_map 1 + offset into *insn_list vector + instead of pointers into the vector. + (find_removable_extensions): Adjust caller. + +2012-01-30 Georg-Johann Lay + + * config/avr/avr.md: Resolve all AS1 and AS2 macros. + Transform all "* quoted-c-code" to { c-code }. + Remove redundant test for "optimize" in combine patterns. + Move (include "avr-dimode.md") to end of file. + +2012-01-30 Bin Cheng + + PR target/51835 + * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI + for __aeabi_d2iz/__aeabi_d2uiz with hard-float. + +2012-01-30 Richard Guenther + + PR tree-optimization/52028 + * tree-loop-distribution.c (ldist_gen): Properly update + virtual SSA form. + +2012-01-30 Jakub Jelinek + + PR debug/52027 + * dwarf2out.c (dwarf2out_switch_text_section): Don't call + set_cur_line_info_table if not emitting debug info. + + PR tree-optimization/52046 + * tree-vect-patterns.c (check_bool_pattern): Give up if + a comparison could throw. + + PR debug/52048 + * tree-ssa-tail-merge.c (local_def): Ignore debug uses. + +2012-01-30 Richard Guenther + + PR tree-optimization/52045 + * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update + SSA form if cfgcleanup did anything. + +2012-01-30 Richard Guenther + + PR tree-optimization/52045 + * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg + before computing final todo. + +2012-01-30 Richard Guenther + + PR tree-optimization/51528 + * tree-sra.c (sra_modify_assign): Re-factor in preparation + for PR51528 fix. + +2012-01-30 Paolo Bonzini + + * df-problems.c (df_kill_notes): Check that the use refers + to the note under examination. + +2012-01-30 Eric Botcazou + + PR target/51920 + * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE + parameter and use short-lived pseudos. + (vector_init_faligndata): Remove INNER_MODE parameter and use loop. + (sparc_expand_vector_init): Const-ify local variables and adjust + calls to above functions. + +2012-01-30 Georg-Johann Lay + + * config/avr/avr.c (out_movqi_mr_r): Fix length computation. + +2012-01-29 Sandra Loosemore + + * doc/invoke.texi: Make usage of "compile time" and + "run time"/"runtime" consistent throughout the file. + +2012-01-29 Uros Bizjak + + * config/alpha/alpha.c (alpha_option_override): Default to + full IEEE compliance mode for Go language. + +2011-01-29 Tijl Coosemans + + * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP] + (LINK_SSP_SPEC): Define. + +2012-01-28 John David Anglin + + PR target/51871 + * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export + stubs. + +2012-01-28 Sandra Loosemore + + * doc/invoke.texi: Correct hyphenation of "floating point", + "double precision", and related terminology throughout the file. + +2012-01-28 Jakub Jelinek + + PR target/52006 + * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use + arm_general_register_operand predicate for operand 2 instead of + register_operand. + +2012-01-27 Ian Lance Taylor + + PR go/47656 + * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define. + * builtins.c (expand_builtin_init_trampoline): Add onstack + parameter. Change caller. + (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE. + * tree.c (build_common_builtin_nodes): Declare + __builtin_init_heap_trampoline. + +2012-01-27 Georg-Johann Lay + + * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx, + tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global. + * config/avr/avr.c: Ditto. + (avr_regnames): Remove because unused. + * config/avr/avr.md (*cpse.ne): New peephole. + (*cpse.eq): New peephole from former cpse peepholes. + +2012-01-27 Michael Eager + + * config/microblaze.c (microblaze_emit_compare): Correct + test after pcmp instruction. + +2012-01-27 Richard Guenther + + PR tree-optimization/52020 + * tree-sra.c (sra_modify_assign): Do not transform clobbers. + +2012-01-27 Richard Guenther + + * ipa-pure-const.c (check_stmt): Clobbers do not make a + function non-const/pure. + +2012-01-27 Richard Guenther + + PR tree-optimization/50444 + * tree-sra.c (build_ref_for_offset): Properly adjust the + MEM_REF type for unaligned accesses. + +2012-01-27 Richard Guenther + + PR tree-optimization/50444 + * expr.c (mem_ref_refers_to_non_mem_p): New function. + (expand_assignment): Use it. Properly handle misaligned + bases when expanding stores to component references. + (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and + refactor that case. + +2012-01-27 Andrey Belevantsev + + PR middle-end/51389 + * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H). + * tree-data-ref.h (find_data_references_in_loop): Remove declaration. + * tree-data-ref.c (find_data_references_in_loop): Make static. + (compute_all_dependences): Change return type to bool. Bail out + for too many datarefs in a loop. Move the hunk resetting the data + dependences vector from ... + (compute_data_dependences_for_loop): ... here. Account for + compute_all_dependences returning false. + (compute_data_dependences_for_bb): Likewise. + * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param. + * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it. + +2012-01-27 Richard Guenther + + PR middle-end/51959 + * expr.c (store_field): Use the alias-set of the scratch memory + for storing to it. + +2012-01-27 Tom de Vries + + PR tree-optimization/51990 + * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle + WITH_SIZE_EXPR. + * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same. + +2012-01-27 Jakub Jelinek + + PR debug/52001 + * var-tracking.c (reverse_op): Don't add any reverse operation + if V already has any constant locations. + +2012-01-27 Sandra Loosemore + + * doc/invoke.texi: Correct usage of "command line" (noun) + vs "command-line" (adjective) throughout. + +2012-01-27 Sandra Loosemore + + * doc/invoke.texi (Language Independent Options): Move + -Wcoverage-mismatch blurb from here.... + (Warning Options): ...to here. + +2012-01-27 Peter Bergner + + * config/rs6000/rs6000.c (rs6000_option_override_internal): + Set rs6000_always_hint to false for 476. + +2012-01-27 Matthias Klose + + * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from + system root. + * incpath.c (add_standard_paths): Likewise. + +2012-01-27 Richard Henderson + + * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New. + * config/m68k/sync.md (atomic_test_and_set): Rename from + sync_test_and_setqi and adjust the operands. + (atomic_test_and_set_1): Rename from sync_test_and_setqi_1 + and unconditionally enable. + +2012-01-27 Richard Henderson + + * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New. + * config/sparc/sync.md (atomic_test_and_set): Only handle QImode. + (ldstub): Rename from ldstubqi. + (ldstub): Remove. + +2012-01-27 Richard Henderson + + * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New. + * c-cppbuiltin.c (cpp_atomic_builtins): Define + __GCC_ATOMIC_TEST_AND_SET_TRUEVAL. + * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook. + * doc/tm.texi: Rebuild. + +2012-01-27 Richard Henderson + + * optabs.c (gen_atomic_test_and_set): Remove default. + (maybe_emit_atomic_test_and_set): Use maybe_expand_insn. + +2012-01-26 Jakub Jelinek + + PR rtl-optimization/51978 + * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx. + (combine_reaching_defs): Likewise. + (struct re_info): Remove. + (add_removable_extension): Remove x and data arguments, + add insn, insn_list and def_map. Use the arguments directly + instead of using struct re_info. + (find_removable_extensions): Don't call add_removable_extension + through note_stores, instead just call it with single_set + result if non-NULL. + (find_and_remove_re): Pass curr_cand->expr instead of + PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs. + +2012-01-26 Michael Matz + + PR tree-optimization/46590 + * cfgexpand.c: Revert last change (r183305). + * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple + regs. + * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before + checking for emptiness. + +2012-01-26 Jakub Jelinek + + PR middle-end/51895 + * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of + non-addressable non-BLKmode base correctly. + +2012-01-26 Michael Matz + + PR tree-optimization/48794 + * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove + regions referenced from RESX/EH_DISPATCH. + +2012-01-26 Andreas Krebbel + + * config/s390/s390.h: Make BRANCH_COST an option. + * config/s390/s390.opt: New option -mbranch-cost. + +2012-01-26 Richard Henderson + + Revert 2012-01-24 change: + * trans-mem.c (requires_barrier): Do not instrument thread local + variables and emit save/restore for them. + +2012-01-25 Jakub Jelinek + + PR middle-end/51986 + * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test + for pat == 0. + +2012-01-25 Richard Sandiford + + * config/mips/mips.c (mips_small_data_pattern_1): Don't process + ASM_OPERANDS. + +2012-01-25 Georg-Johann Lay + + PR target/49868 + Rename __pgm to __flash. + Rename __pgm1 to __flash1. + Rename __pgm2 to __flash2. + Rename __pgm3 to __flash3. + Rename __pgm4 to __flash4. + Rename __pgm5 to __flash5. + Rename __pgmx to __memx. + * doc/extend.texi (AVR Named Address Spaces) + Rename address space names as indicated above. + * config/avr/avr.c (avr_addrspace): Ditto. + + * config/avr/avr-protos.h + (avr_mem_pgmx_p): Rename to avr_mem_memx_p. + (avr_mem_pgm_p): Rename to avr_mem_flash_p. + * config/avr/predicates.md: Ditto. + * config/avr/avr.c Ditto, and + (avr_decl_pgmx_p): Rename to avr_decl_memx_p. + (avr_decl_pgm_p): Rename to avr_decl_flash_p. + + * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH. + (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1. + (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2. + (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3. + (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4. + (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5. + (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX. + * config/avr/avr.c: Ditto. + * config/avr/avr.md: Ditto. + +2012-01-25 Jason Merrill + + PR c++/51992 + * tree.c (find_decls_types_in_node): Walk gimple_call_fntype. + +2012-01-25 Jakub Jelinek + + PR tree-optimization/51987 + * tree-data-ref.c (get_references_in_stmt): Handle references in + non-volatile GIMPLE_ASM. + +2012-01-25 Richard Guenther + + * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both + bases are dereferenced. + +2012-01-25 Andrey Belevantsev + + PR rtl-optimization/48374 + * sel-sched-ir.h (get_all_loop_exits): Check for zero successors. + +2012-01-25 Andrey Belevantsev + + * tree-predcom.c (tree_predictive_commoning_loop): Bail out when + compute_data_dependences_for_loop returns false. + * tree-parloops.c (loop_parallel_p): Likewise. + +2012-01-25 Richard Guenther + + * tree.h (get_pointer_alignment_1): Declare. + * builtins.c (get_pointer_alignment_1): New function. + (get_pointer_alignment): Use it. + +2012-01-25 Ramana Radhakrishnan + + PR rtl-optimization/48308 + * combine.c (enum undo_kind): Add UNDO_LINKS. + (struct undo): Add member l to other_contents and where. + (do_SUBST_LINK): New. + (SUBST_LINK): New. + (try_combine): Handle LOG_LINKS for the dummy i1 case. + (undo_all): Handle UNDO_LINKS. + +2012-01-25 Richard Henderson + + * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode + mem inputs. + +2012-01-24 Richard Sandiford + + * optabs.c (gen_atomic_test_and_set): Use each argument. + +2012-01-24 Richard Sandiford + + * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf) + (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_) + (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t) + (bc1any2f, mips_rsqrt1_, mips_rsqrt2_, mips_recip1_) + (mips_recip2_): Require TARGET_MIPS3D rather than + TARGET_PAIRED_SINGLE_FLOAT. + +2012-01-24 Richard Sandiford + + * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete. + (in_struct, return_val): Remove MEM documentation. + * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val. + (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete. + (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P + and MEM_SCALAR. + * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise. + * cfgexpand.c (add_alias_set_conflicts): Likewise. + * expr.c (store_field): Likewise. + * function.c (assign_stack_temp_for_type): Likewise. + * ifcvt.c (noce_try_cmove_arith): Likewise. + * reload1.c (reload): Likewise. + * config/alpha/alpha.c (alpha_set_memflags_1): Likewise. + (alpha_set_memflags): Likewise. + * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify. + +2012-01-24 Richard Sandiford + + * rtl.h (true_dependence, canon_true_dependence): Remove varies + parameter. + * alias.c (fixed_scalar_and_varying_struct_p): Delete. + (true_dependence_1, write_dependence_p, may_alias_p): Don't call it. + (true_dependence_1, true_dependence, canon_true_dependence): Remove + varies parameter. + * cselib.c (cselib_rtx_varies_p): Delete. + (cselib_invalidate_mem): Update call to canon_true_dependence. + * dse.c (record_store, check_mem_read_rtx): Likewise. + (scan_reads_nospill): Likewise. + * cse.c (check_dependence): Likewise. + (cse_rtx_varies_p): Delete. + * expr.c (safe_from_p): Update call to true_dependence. + * ira.c (validate_equiv_mem_from_store): Likewise. + (memref_referenced_p): Likewise. + * postreload-gcse.c (find_mem_conflicts): Likewise. + * sched-deps.c (sched_analyze_2): Likewise. + * store-motion.c (load_kills_store): Likewise. + * config/frv/frv.c (frv_registers_conflict_p_1): Likewise. + * gcse.c (mems_conflict_for_gcse_p): Likewise. + (compute_transp): Update call to canon_true_dependence. + 2012-01-25 Richard Henderson * optabs.c (CODE_FOR_atomic_test_and_set): Provide default. @@ -19,6 +1457,29 @@ to effect no-op split. 2012-01-24 Aldy Hernandez + + PR lto/51698 + * builtin-types.def: (BT_CONST_DOUBLE_PTR): New. + (BT_FN_VOID_PTR_CONST_PTR_SIZE): New. + (BT_FN_VOID_PTR_INT_SIZE): New. + (BT_FN_UINT_UINT_VAR): Remove. + (BT_FN_UINT32_UINT32_VAR): New. + (BT_FN_DOUBLE_VPTR): Remove. + (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New. + + * gtm-builtins.def (_ITM_abortTransaction): Set return type to void. + (_ITM_changeTransactionMode): Same. + (_ITM_memmoveRtWt): Change return type to void. + (_ITM_memcpyRtWt): Same. + (_ITM_memsetW): Same. + (_ITM_RaRD): Change types to double. + (_ITM_RD): Same. + (_ITM_RaWD): Same. + (_ITM_RfWD): Same. + + * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true. + +2012-01-24 Aldy Hernandez Patrick Marlier * trans-mem.c (requires_barrier): Do not instrument thread local @@ -83,7 +1544,7 @@ * trans-mem.c (ipa_tm_create_version): Set externally_visible. (ipa_tm_create_version_alias): Same. -2012-01-18 Uros Bizjak +2012-01-23 Uros Bizjak PR libitm/51830 * builtin-types.def (BT_FN_UINT_UINT_VAR): New.