X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=2190c0fb982946c92131a08298bf7654ed7379c8;hb=ee093c13ff4f658246f1d740c165c3209617ac63;hp=894361c3b7398b437a2a9bd1216c87a2b7c6e2f1;hpb=7aa082e51268b29f6aa7863f21f944bff77caa5f;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 894361c3b73..2190c0fb982 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,1059 @@ +2009-06-04 Alexandre Oliva + + * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables + that have value exprs. + +2009-06-04 Alexandre Oliva + + * dwarf2asm.c (dw2_force_const_mem): Defer creation of + declarations for constants until... + (dw2_output_indirect_constant_1): ... this point. + +2009-06-04 Richard Earnshaw + + PR target/10242 + * arm.md (arm_addsi3): Don't try to split an add with an + eliminable register until after reload has completed. + +2009-06-03 Ian Lance Taylor + + * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST. + * genattrtab.c (write_length_unit_log): Likewise. + * genchecksum.c (dosum): Likewise. + * gengtype.c (write_rtx_next): Likewise. + (finish_root_table, write_roots): Likewise. + * gimple.c (gimple_ops_offset_): Likewise. + * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise. + * config/arc/arc.c (arc_attribute_table): Likewise. + * config/arm/arm.c (arm_attribute_table): Likewise. + * config/avr/avr.c (avr_attribute_table): Likewise. + * config/crx/crx.c (crx_attribute_table): Likewise. + * config/m32r/m32r.c (m32r_attribute_table): Likewise. + * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise. + * config/mcore/mcore.c (mcore_attribute_table): Likewise. + * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise. + * config/sh/sh.c (sh_attribute_table): Likewise. + * config/sparc/sparc.c (sparc_attribute_table): Likewise. + * config/spu/spu.c (spu_attribute_table): Likewise. + * config/v850/v850.c (v850_attribute_table): Likewise. + + * config/alpha/alpha.c (vms_attribute_table): Make static. + * config/bfin/bfin.c (bfin_attribute_table): Likewise. + * config/h8300/h8300.c (h8300_attribute_table): Likewise. + * config/mips/mips.c (mips_attribute_table): Likewise. + + * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and + $(SYSTEM_H). + (cc1-checksum.o): Likewise. + +2009-06-03 Steve Ellcey + + * config/ia64/vect.md (*movv2sf_internal): Handle big endian case. + +2009-06-03 Jakub Jelinek + + * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated + insn if it is changing sp. Use gen_add3_insn instead of + conditionally gen_addsi3 and gen_adddi3. + (offset_below_red_zone_p): New static inline function. + (rs6000_emit_epilogue): Emit needed epilogue unwind info. + Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3. + * config/rs6000/ppc-asm.h: Include auto-host.h. + (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET, + CFI_RESTORE): Define. + * config/rs6000/crtresxgpr.asm: Add unwind info. + * config/rs6000/crtresxfpr.asm: Likewise. + * config/rs6000/crtresgpr.asm: Likewise. + * config/rs6000/crtresfpr.asm: Likewise. + * config/rs6000/crtsavgpr.asm: Likewise. + * config/rs6000/crtsavfpr.asm: Likewise. + + * dwarf2out.c (output_cfi_directive): Pass 1 instead of + 0 to second argument of DWARF2_FRAME_REG_OUT macros. + +2009-06-03 Julian Brown + + * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four + words or less (including TImode) in core registers. + +2009-06-03 Richard Guenther + + PR middle-end/40328 + * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR. + +2009-06-03 Andrey Belevantsev + + * statistics.c (statistics_counter_event): Do not record event + in pass dump if its number == -1. + (curr_statistics_hash): Add assert that we never get passes + with static number == -1. + +2009-06-03 Richard Guenther + Andrey Belevantsev + + * cfgexpand.c (discover_nonconstant_array_refs_r): Make only + non-BLKmode arrays addressable. + +2009-06-03 Maxim Kuvyrkov + + * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ... + * config/m68k/m68k.h: ... here. + * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for + m68k and fido. + +2009-06-03 Martin Jambor + + PR tree-optimization/40323 + * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single + assignment. + +2009-06-03 Richard Guenther + + * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE + consistently. + +2009-06-03 Shujing Zhao + + * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, + JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and + JUMP_TABLE_DATA_P where applicable. + * config/sh/sh.c: Ditto. + * config/sh/sh.h: Ditto. + * config/sh/sh.md: Ditto. + * config/sh/symbian.c: Ditto. + +2009-06-03 Uros Bizjak + + * config/i386/driver-i386.c (describe_cache): Optimize + concatenation of strings. Use snprintf instead of sprintf. + (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native + target when not compiling with GCC. + +2009-06-02 Kaz Kojima + + * config/sh/sh.c: Revert last change. + (sh_expand_epilogue): Emit a blockage insn before the frame + pointer adjustment unconditionally. + +2009-06-02 Richard Sandiford + + * config/pa/pa-hpux.h (LINK_SPEC): Remove "% + + * collect2.c (target_system_root): New variable. + (main): Handle --sysroot=. + (ignore_library): Strip the sysroot from the library path. + +2009-06-02 Richard Sandiford + + * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o. + (collect2.o): Depend on collect2-aix.h. + (collect2-aix.o): New rule. + * collect2-aix.h: New file. + * collect2-aix.c: Likewise. + * collect2.c: Include collect2-aix.h. Don't undefine + OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined. + Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE. + Use TARGET_AIX_VERSION instead of _AIX51. + * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define. + * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise. + * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise. + * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise. + * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise. + +2009-06-02 Richard Sandiford + + * collect2.c (ignore_library): Avoid premature post-increment + and null deference. + +2009-06-02 Richard Sandiford + + * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT. + * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the + !CROSS_DIRECTORY_STRUCTURE alternative and use it for + CROSS_DIRECTORY_STRUCTURE too. + (LINK_LIBG_SPEC): Likewise. + (LIB_SPEC): Add %R to sysroot paths. + * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths. + (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise. + * config/rs6000/aix51.h: As for aix43.h. + * config/rs6000/aix52.h: Likewise. + * config/rs6000/aix53.h: Likewise. + * config/rs6000/aix61.h: Likewise. + * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT) + to the beginning of sysroot paths. + +2009-06-02 Alexandre Oliva + + * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and + INSN_LISTs that are out of the REG_NOTE range. + +2009-06-02 Alexandre Oliva + + * loop-unroll.c (struct iv_to_split): Add pointer to next. + (struct var_to_expand): Likewise. + (struct opt_info): Add head and tail for linked lists of the above. + (analyze_insn_to_expand_var): Initialize next. + (analyze_iv_to_split_insn): Likewise. + (analyze_insns_in_loop): Create linked lists. + (allocate_basic_variable): Simplify for use without hash table. + (insert_var_expansion_initialization): Likewise, make it type-safer. + (combine_var_copies_in_loop_exit): Likewise. + (apply_opt_in_copies): Walk lists rather than hash tables. + (release_var_copies): Simplified and inlined by hand into... + (free_opt_info): ... this function. + +2009-06-02 Richard Guenther + + * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE + for field decls. + +2009-06-02 Alexandre Oliva + + * cfgexpand.c (gimple_expand_cfg): Discard the source location + only for builtins that are not overridden. + +2009-06-02 Alexandre Oliva + + * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's + label string. + +2009-06-02 Alexandre Oliva + + * df-core.c (df_ref_debug): Honor -fdump-noaddr. + +2009-06-02 Alexandre Oliva + + * combine.c (move_deaths): Compare LUIDs within the same BB only. + +2009-06-02 Alexandre Oliva + + * common.opt (fdump-unnumbered-links): New. + * doc/invoke.texi (-fdump-unnumbered-links): Document it. + * print-rtl.c (flag_dump_unnumbered_links): New. + (print_rtx): Test it. + +2009-06-02 Richard Earnshaw + + * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a + push/pop multiple to 8-byte alignment. + +2009-06-01 Jakub Jelinek + + * config/i386/i386.c (queued_cfa_restores): New static variable. + (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New + functions. + (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes. + (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument. + Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note. + Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET + note unconditionally. + (ix86_emit_restore_regs_using_mov): Likewise. + (ix86_emit_restore_sse_regs_using_mov): Likewise. + (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass + it through to ix86_emit_restore_reg_using_pop. + (ix86_emit_leave): Add RED_OFFSET argument. Call + ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note + instead of adding REG_CFA_OFFSET note unconditionally. + (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to + the above functions. Call ix86_add_queued_cfa_restore_notes when + needed. + + * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true, + force output of the label even for dwarf2out_do_cfi_asm. + (add_fde_cfi): If -g2 and above and cfi might change CFA, + force creation of CFI label and chain DW_CFA_set_loc jumping to it + for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label + caller. + (dwarf2out_stack_adjust, dwarf2out_frame_debug, + dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust + dwarf2out_cfi_label callers. + * tree.h (dwarf2out_cfi_label): Adjust prototype. + * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue): + Adjust dwarf2out_cfi_label callers. + * config/vax/vax.c (vax_output_function_prologue): Likewise. + + * config/i386/i386.h (struct machine_cfa_state, + struct machine_function): Guard with ifndef USED_FOR_TARGET + instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS. + + PR other/40024 + * emutls.c (__emutls_get_address): Change arr->size to mean number + of allocated arr->data entries instead of # of slots + 1. + + PR middle-end/40316 + * recog.c (peep2_reinit_state): New function. + (peephole2_init_state): Use it at the end of a basic block and also + when seeing a RTX_FRAME_RELATED_P insn. + +2009-06-01 Steve Ellcey + + * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf, + fixuns_truncrfdi2): New. + (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts, + *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts, + *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts, + *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf, + *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts, + *recip_approx): Remove. + (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3, + moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr, + divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and + move to div.md. + * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt, + setf_exp_rf): New. + +2009-06-01 Ian Lance Taylor + + * attribs.c (register_attribute): Use CONST_CAST. + * collect2.c (main): Use CONST_CAST2. + (scan_prog_file): Likewise. + * gcc.c (process_command, main): Likewise. + * toplev.c (toplev_main): Likewise. + + * c-typeck.c (handle_warn_cast_qual): New static function, + partially broken out of build_c_cast. + (build_c_cast): Call handle_warn_cast_qual. + * doc/invoke.texi (Warning Options): Document new effect of + -Wcast-qual. + +2009-06-01 Aldy Hernandez + + * diagnostic.c (diagnostic_build_prefix): Always print columns. + (diagnostic_report_current_module): Print columns. + * common.opt (flag_show_column): Enable by default. + +2009-06-01 Luis Machado + + * alias.c (find_base_term): Check for NULL term before returning. + +2009-06-01 Maxim Kuvyrkov + + Revert due to PR40320: + 2009-06-01 Maxim Kuvyrkov + * calls.c (emit_library_call_value_1): Don't force_operand for move + and push insns. + +2009-06-01 Olivier Hainque + Eric Botcazou + + * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is + to be processed as a bitfield for constructor output purposes. + * output.h (initializer_constant_valid_for_bitfield_p): Declare + new function. + * varasm.c (oc_local_state): New type, output_constructor + local state to support communication with helpers. + (oc_outer_state): New type, output_constructor outer state of + relevance in recursive calls. + (output_constructor_array_range): New output_constructor helper, + extracted code for an array range element. + (output_constructor_regular_field): New output_constructor helper, + extracted code for an element that is not a bitfield. + (output_constructor_bitfield): New output_constructor helper, + extracted code for a bitfield element. Accept an OUTER state + argument for recursive processing. Recurse on record or array + CONSTRUCTOR values, possibly past noop conversions. + (initializer_constant_valid_for_bitfield_p): New predicate. Whether + VALUE is a valid constant-valued expression for use in a static + bit-field initializer. + (output_constructor): Rework to use helpers. Accept and honor an + OUTER state argument for recursive calls. Return total size. Be + prepared for nested constructors initializing bitfields. + (output_constant): Feed OUTER in calls to output_constructor. + +2009-06-01 Maxim Kuvyrkov + + * calls.c (emit_library_call_value_1): Don't force_operand for move + and push insns. + +2009-06-01 Nick Clifton + + * doc/invoke.texi (IA-64 Options): Fix typo. + +2009-06-01 Ira Rosen + + PR tree-optimization/39129 + * tree-vect-loop-manip.c (conservative_cost_threshold): Change the + printed message. + (vect_do_peeling_for_loop_bound): Use + LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and + LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros. + (vect_loop_versioning): Likewise. + (vect_create_cond_for_alias_checks): Fix indentation. + * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the + macros. + (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define. + (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise. + * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to + "control flow in loop". + (vect_estimate_min_profitable_iters): Use + LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and + LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros. + * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise. + (vect_create_data_ref_ptr): Don't mention array dimension in printing. + * tree-vect-stmts.c (vectorizable_store): Replace the check that the + statement belongs to a group of strided accesses with the exact code + check. + (vectorizable_load): Likewise. + * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block". + (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise. + +2009-06-01 Gerald Pfeifer + + * config/freebsd-stdint.h: New file. + * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap. + Add freebsd-stdint.h to tm_file. + +2009-06-01 Richard Earnshaw + + * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split. + (thumb2_extendhidi2): Likewise. + +2009-05-31 Ian Lance Taylor + + * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition. + +2009-05-31 Ian Lance Taylor + + * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H). + (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H). + (ipa-reference.o): Depend upon gt-ipa-reference.h. + +2009-05-31 Jason Merrill + + * tree-pretty-print.c (print_call_name): Take the callee, not the + call itself. Make non-static. Use dump_function_name for functions. + (dump_generic_node): Adjust. + * diagnostic.h: Declare print_call_name. + * gimple-pretty-print.c (dump_gimple_call): Use it. + +2009-05-31 Kaz Kojima + + * config/sh/sh.md (ashldi3_std): New define_expand. + (ashldi3): Use it. + +2009-05-31 Kaz Kojima + + PR target/40313 + * config/sh/sh.c: Include debug.h. + (sh_expand_epilogue): Emit a blockage insn before the frame + pointer adjustment also when dwarf2out_do_frame returns true. + +2009-05-31 Richard Earnshaw + + * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern. + (thumb2_extendqidi2): New pattern. + +2009-05-31 Ira Rosen + + * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't + mark phis for renaming. + * tree-vectorizer.c (vect_memsyms_to_rename): Remove. + (vectorize_loops): Don't allocate and free vect_memsyms_to_rename. + Call mark_sym_for_renaming. + * tree-vectorizer.h (vect_memsyms_to_rename): Remove. + * tree-vect-loop.c (vect_transform_loop): Remove + vect_memsyms_to_rename initialization and a call to + mark_set_for_renaming. + +2009-05-31 Jakub Jelinek + + PR middle-end/40304 + * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns + frame related even if !set_cfa && style < 0. + +2009-05-30 Kai Tietz + + * config/i386/mingw-tls.c: New file. + * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file. + * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets + defining _WIN32 but not __CYGWIN__. + +2009-05-29 Kaveh R. Ghazi + + * configure.ac: Add MPC support. + + * config.in, configure: Regenerate. + +2009-05-29 Richard Henderson + + * cfgcleanup.c (try_crossjump_to_edge): Only skip past + NOTE_INSN_BASIC_BLOCK. + * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks. + Duplicate NOTE_INSN_EPILOGUE_BEG notes. + * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG + to be deleted. + * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield, + add in_use field. + (add_cfi): Disable check redefining cfa away from drap. + (lookup_cfa_1): Add remember argument; handle remember/restore. + (lookup_cfa): Pass remember argument. + (cfa_remember): New. + (compute_barrier_args_size_1): Remove sibcall check. + (dwarf2out_frame_debug_def_cfa): New. + (dwarf2out_frame_debug_adjust_cfa): New. + (dwarf2out_frame_debug_cfa_offset): New. + (dwarf2out_frame_debug_cfa_register): New. + (dwarf2out_frame_debug_cfa_restore): New. + (dwarf2out_frame_debug): Handle REG_CFA_* notes. + (dwarf2out_begin_epilogue): New. + (dwarf2out_frame_debug_restore_state): New. + (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state, + DW_CFA_restore_state. + (output_cfi_directive): Likewise. + (convert_cfa_to_fb_loc_list): Likewise. + (dw_cfi_oprnd1_desc): Handle DW_CFA_restore. + * dwarf2out.h: Update. + * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P. + (copy_insn_1): Early out for null. + * final.c (final_scan_insn): Call dwarf2out_begin_epilogue + and dwarf2out_frame_debug_restore_state. + * function.c (prologue, epilogue, sibcall_epilogue): Remove. + (prologue_insn_hash, epilogue_insn_hash): New. + (free_after_compilation): Adjust freeing accordingly. + (record_insns): Create hash table if needed; push insns into + hash instead of array. + (maybe_copy_epilogue_insn): New. + (contains): Search hash table instead of array. + (sibcall_epilogue_contains): Remove. + (thread_prologue_and_epilogue_insns): Split eh_return insns + and mark them as epilogues. + (reposition_prologue_and_epilogue_notes): Rewrite epilogue + scanning in terms of basic blocks. + * insn-notes.def (CFA_RESTORE_STATE): New. + * jump.c (returnjump_p_1): Accept EH_RETURN. + (eh_returnjump_p_1, eh_returnjump_p): New. + * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET, + CFA_REGISTER, CFA_RESTORE): New. + * rtl.def (EH_RETURN): New. + * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare. + + * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove. + (eh_return_internal): Use eh_return rtx; split w/ epilogue. + + * config/i386/i386.c (gen_push): Update cfa state. + (pro_epilogue_adjust_stack): Add set_cfa argument. When true, + add a CFA_ADJUST_CFA note. + (ix86_dwarf_handle_frame_unspec): Remove. + (ix86_expand_prologue): Update cfa state. + (ix86_emit_restore_reg_using_pop): New. + (ix86_emit_restore_regs_using_pop): New. + (ix86_emit_leave): New. + (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes. + (ix86_expand_epilogue): Add notes for unwinding the epilogue. + * config/i386/i386.h (struct machine_cfa_state): New. + (ix86_cfa_state): New. + * config/i386/i386.md (UNSPEC_EH_RETURN): Remove. + (eh_return_internal): Merge from eh_return_, + use eh_return rtx, split w/ epilogue. + +2009-05-29 Ian Lance Taylor + + * builtins.c (validate_gimple_arglist): Don't use va_arg with + enum type. + * calls.c (emit_library_call_value_1): Likewise. + + * c-typeck.c (c_build_va_arg): New function. + * c-tree.h (c_build_va_arg): Declare. + * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg + instead of build_va_arg. + +2009-05-29 Eric Botcazou + + * tree-ssa-loop-ivopts.c (strip_offset_1) : New case. + (force_expr_to_var_cost) : Likewise. + (ptr_difference_cost): Use affine combinations to compute it. + (difference_cost): Likewise. + (get_computation_cost_at): Compute more accurate cost for addresses + if the ratio is a multiplier allowed in addresses. + For non-addresses, consider that an additional offset or symbol is + added only once. + +2009-05-29 Jakub Jelinek + + * config/i386/i386.c (ix86_decompose_address): Avoid useless + 0 displacement. Add 0 displacement if base is %[er]bp or %r13. + + * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for + TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default. + (prefix_rex): For UNIT_MMX don't imply the prefix by default + if MODE_DI. + (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and + to 1 for TYPE_SSE{IADD1,CVT1}. + (prefix_vex_imm8): Removed. + (length_vex): Only pass 1 as second argument to + ix86_attr_length_vex_default if prefix_extra is 0. + (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT. + (length): For prefix vex computation use length_immediate + attribute instead of prefix_vex_imm8. + (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64, + addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0, + *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1, + *xorqi_cc_ext_1_rex64): Override modrm attribute to 1. + (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2, + *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit + a space in between the operands. + (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1 + if one operand is 0xff and the other one si, di, bp or sp. + (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the + other one si, di, bp or sp. + (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute. + (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add + type and mode attributes. + (*bsr, *bsr_rex64, *bsrhi): Add type attribute. + (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear + prefix_rep attribute and set prefix_data16 attribute iff MODE_DF. + (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set + prefix_data16 attribute iff MODE_DF. + (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute. + (fix_truncdi_sse): Set prefix_rex attribute. + (*adddi_4_rex64, *addsi_4): Use const128_operand instead of + constm128_operand in length_immediate computation. + (*addhi_4): Likewise. Fix mode attribute to MODE_HI. + (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq. + (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set + length_immediate attribute to 1. + (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute. + (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes + for certain alternatives. + (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override + prefix_data16 attribute if MODE_V1DF. + (*avx_setcc, *sse_setcc, *sse5_setcc): Set + length_immediate to 1. + (set_got_rex64, set_rip_rex64): Remove length attribute, set + length_address to 4, set mode attribute to MODE_DI. + (set_got_offset_rex64): Likewise. Set length_immediate to 0. + (fxam2_i387): Set length attribute to 4. + (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow, + *prefetch_3dnow_rex): Override length_address attribute. + (sse4_2_crc32): Override prefix_data16 and prefix_rex + attributes. + * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate. + (constm128_operand): Removed. + * config/i386/i386.c (memory_address_length): For + disp && !index && !base in 64-bit mode account for SIB byte if + print_operand_address can't optimize disp32 into disp32(%rip) + and UNSPEC doesn't imply (%rip) addressing. Add 1 to length + for fs: or gs: segment. + (ix86_attr_length_immediate_default): When checking if shortform + is possible, truncate immediate to the length of the non-shortened + immediate. + (ix86_attr_length_address_default): Ignore MEM_P operands + with X constraint. + (ix86_attr_length_vex_default): Only check for DImode on + GENERAL_REG_P operands. + * config/i386/sse.md (_comi, _ucomi): Clear + prefix_rep attribute, set prefix_data16 attribute iff MODE_DF. + (sse_cvttps2pi): Clear prefix_rep attribute. + (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16 + attribute. + (*sse2_cvttpd2dq): Don't clear prefix_rep attribute. + (*avx_ashr3, ashr3, *avx_lshr3, lshr3, + *avx_ashl3, ashl3): Set length_immediate attribute to 1 + iff operand 2 is const_int_operand. + (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_, + sse2_shufpd_): Set length_immediate attribute to 1. + (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex + instead of vex. + (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear + prefix_data16. + (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set + prefix_data16 attribute for movlpd and movhpd instructions. + (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override + length_immediate for shufpd instruction. + (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute. + (avx_cmpp3, + avx_cmps3, *avx_maskcmp3, + _maskcmp3, _vmmaskcmp3, + avx_shufps256_1, *avx_shufps_, sse_shufps_, + *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1. + (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4. + (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1. + (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override + prefix_data16 attribute for the first alternative to 1. + (*avx_loadlps): Override length_immediate for the first alternative. + (*vec_concatv2sf_avx): Override length_immediate and prefix_extra + attributes for second alternative. + (*vec_concatv2sf_sse4_1): Override length_immediate and + prefix_data16 attributes for second alternative. + (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_, + vec_extract_hi_, vec_extract_lo_v16hi, + vec_extract_hi_v16hi, vec_extract_lo_v32qi, + vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1. + (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set + prefix_data16 and length_immediate to 1. + (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra + to 1. + (*avx_3, *avx_eq3, *avx_gt3): Set + prefix_extra attribute for variants that don't have 0f prefix alone. + (*avx_pinsr): Likewise. Set length_immediate to 1. + (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb, + *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory, + *sse4_1_pextrd): Set length_immediate to 1. + (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1. + (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate + to 1. + (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64, + *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override + length_immediate to 1 for second alternative. + (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override + prefix_extra and length_immediate attributes for the first + alternative. + (vec_concatv2si_sse4_1): Override length_immediate to 1 for the + first alternative. + (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex + to 1 for the first and third alternative. + (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second + alternative. + (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex + attribute. + (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address + attribute to 0. + (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3, + *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi, + *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3, + *avx_psign3): Set prefix_extra attribute to 1. + (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3, + ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3, + ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3, + ssse3_psign3): Override prefix_rex attribute. + (*avx_palignrti): Override prefix_extra and length_immediate to 1. + (ssse3_palignrti): Override length_immediate to 1. + (ssse3_palignrdi): Override length_immediate to 1, override + prefix_rex attribute. + (abs2): Override prefix_rep to 0, override prefix_rex attribute. + (sse4a_extrqi): Override length_immediate to 2. + (sse4a_insertqi): Likewise. Override prefix_data16 to 0. + (sse4a_insertq): Override prefix_data16 to 0. + (avx_blendp, + avx_blendvp, + avx_dpp, *avx_mpsadbw, + *avx_pblendvb, *avx_pblendw, avx_roundp256, + avx_rounds256): Override prefix_extra + and length_immediate to 1. + (sse4_1_blendp, sse4_1_dpp, + sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm, + sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri, + sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16 + and length_immediate to 1. + (sse4_1_blendvp): Override prefix_data16 to 1. + (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1. + (*avx_packusdw, avx_vtestp, + avx_ptest256): Override prefix_extra to 1. + (sse4_1_roundp, sse4_1_rounds): + Override prefix_data16 and length_immediate to 1. + (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi, + sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si, + sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di, + sse5_vrotl3, sse5_ashl3, sse5_lshl3): Override + prefix_data16 to 0 and prefix_extra to 2. + (sse5_rotl3, sse5_rotr3): Override length_immediate to 1. + (sse5_frcz2, sse5_vmfrcz2): Don't override prefix_extra + attribute. + (*sse5_vmmaskcmp3, sse5_com_tf3, + sse5_maskcmp3, sse5_maskcmp3, sse5_maskcmp_uns3): + Override prefix_data16 and prefix_rep to 0, length_immediate to 1 + and prefix_extra to 2. + (sse5_maskcmp_uns23, sse5_pcom_tf3): Override + prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2. + (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast, + avx_vpermilvar3, + avx_vbroadcasts, + avx_vbroadcastss256, avx_vbroadcastf128_p256, + avx_maskloadp, + avx_maskstorep): + Override prefix_extra to 1. + (aeskeygenassist, pclmulqdq): Override length_immediate to 1. + (*vpclmulqdq, avx_vpermil, avx_vperm2f1283, + vec_set_lo_, vec_set_hi_, vec_set_lo_v16hi, + vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override + prefix_extra and length_immediate to 1. + (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override + modrm to 0. + (*vec_concat_avx): Override prefix_extra and length_immediate + to 1 for the first alternative. + * config/i386/mmx.md (*mov_internal_rex64): Override + prefix_rep, prefix_data16 and/or prefix_rex attributes in certain + cases. + (*mov_internal_avx, *movv2sf_internal_rex64, + *movv2sf_internal_avx, *movv2sf_internal): Override + prefix_rep attribute for certain alternatives. + (*mov_internal): Override prefix_rep or prefix_data16 + attributes for certain alternatives. + (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex + attributes for certain alternatives. + (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3, + *mmx_v2sf3_finite, *mmx_v2sf3, mmx_rcpv2sf2, + mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3, + mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3, + *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw, + mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3, + mmx_pswapdv2si2): Set prefix_extra attribute to 1. + (mmx_ashr3, mmx_lshr3, mmx_ashl3): Set + length_immediate to 1 if operand 2 is const_int_operand. + (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi, + *vec_extractv2si_1): Set length_immediate attribute to 1. + (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if + using old 3DNOW insn rather than SSE/3DNOW_A. + (mmx_emms, mmx_femms): Clear modrm attribute. + +2009-05-29 Martin Jambor + + * tree-sra.c: New implementation of SRA. + + * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed. + (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed. + (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed. + * params.h (SRA_MAX_STRUCTURE_SIZE): Removed. + (SRA_MAX_STRUCTURE_COUNT): Removed. + (SRA_FIELD_STRUCTURE_RATIO): Removed. + * doc/invoke.texi (sra-max-structure-size): Removed. + (sra-field-structure-ratio): Removed. + +2009-05-29 Jakub Jelinek + + PR middle-end/40291 + * builtins.c (expand_builtin_memcmp): Convert len to sizetype + before expansion. + +2009-05-29 Andrey Belevantsev + + PR rtl-optimization/40101 + * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative + seqno. Adjust comment. + * sel-sched.c (find_seqno_for_bookkeeping): Assert that when + inserting bookkeeping before a jump, the jump is not scheduled. + When no positive seqno found, provide a value. Add comment. + +2009-05-29 Richard Guenther + + * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove + short-cutting on the first component. + +2009-05-29 Jakub Jelinek + + PR middle-end/39958 + * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE + for trees other than decls/types. + +2009-05-29 Richard Guenther + + * tree-ssa-operands.c (get_expr_operands): Do not handle + INDIRECT_REFs in the handled-component case. Remove + unused get_ref_base_and_extent case. + * tree-dfa.c (get_ref_base_and_extent): Avoid calling + tree_low_cst and host_integerp where possible. + * tree-ssa-structalias.c (equiv_class_label_eq): Check hash + codes for equivalence. + * dce.c (find_call_stack_args): Avoid redundant bitmap queries. + +2009-05-29 David Billinghurst + + * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp + to tmake_file for i[34567]86-*-cygwin*. + +2009-05-29 Jakub Jelinek + + PR target/40017 + * config/rs6000/rs6000-c.c (_Bool_keyword): New variable. + (altivec_categorize_keyword, init_vector_keywords, + rs6000_cpu_cpp_builtins): Define _Bool as conditional macro + similar to bool. + +2009-05-29 Kai Tietz + + * tree.c (handle_dll_attribute): Check if node is + of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check. + +2009-05-29 Richard Earnshaw + + * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split + component. + (thumb2_zero_extendqidi2): Likewise. + +2009-05-28 Kaz Kojima + + * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt + instead of gen_movrt. + * config/sh/sh.md (movrt): Remove. + +2009-05-28 Steve Ellcey + + * doc/invoke.texi (IA-64 Options): + Add -msdata, -mfused-madd, -mno-inline-float-divide, + -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc, + -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns, + -msched-prefer-non-control-spec-insns, + -msched-stop-bits-after-every-cycle, + -msched-count-spec-in-critical-path, + -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost + -msched-max-memory-insns-hard-limit, -msched-max-memory-insns. + Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc, + and -msched-spec-verbose. + +2009-05-28 Joseph Myers + + * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache. + * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an + error if used. + * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache. + +2009-05-28 Richard Guenther + + * tree-ssa-alias.c (ao_ref_init): New function. + (ao_ref_base): Likewise. + (ao_ref_base_alias_set): Likewise. + (ao_ref_alias_set): Likewise. + (refs_may_alias_p_1): Change signature. + (refs_may_alias_p): Adjust. + (refs_anti_dependent_p): Likewise. + (refs_output_dependent_p): Likewise. + (call_may_clobber_ref_p_1): Change signature. + (call_may_clobber_ref_p): Adjust. + (stmt_may_clobber_ref_p_1): New function split out from ... + (stmt_may_clobber_ref_p): ... here. + (maybe_skip_until): Adjust signature. + (get_continuation_for_phi): Likewise. + (walk_non_aliased_vuses): Likewise. + * tree-ssa-alias.h (struct ao_ref_s): New structure type. + (ao_ref_init): Declare. + (ao_ref_base): Likewise. + (ao_ref_alias_set): Likewise. + (stmt_may_clobber_ref_p_1): Likewise. + (walk_non_aliased_vuses): Adjust. + * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function. + (get_ref_from_reference_ops): remove. + (vn_reference_lookup_2): Adjust signature. + (vn_reference_lookup_3): Do not re-build trees. Handle unions. + (vn_reference_lookup_pieces): Adjust signature, do not re-build trees. + (vn_reference_lookup): Adjust. + (vn_reference_insert): Likewise. + (vn_reference_insert_pieces): Adjust signature. + (visit_reference_op_call): Adjust. + * tree-ssa-pre.c (get_expr_type): Simplify. + (phi_translate_1): Adjust. + (compute_avail): Likewise. + (translate_vuse_through_block): Do not re-build trees. + (value_dies_in_block_x): Likewise. + * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set + fields. + (vn_reference_lookup_pieces): Adjust declaration. + (vn_reference_insert_pieces): Likewise. + +2009-05-28 Benjamin Kosnik + + * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use + with checking disabled. + +2009-05-28 Dave Korn + + PR target/37216 + + * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and + macro definition for support of three-operand format aligned + .comm directive in assembler on cygwin/pe/mingw target OS. + * configure: Regenerate. + * config.h: Regenerate. + + * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use + aligned form of .comm directive if -mpe-aligned-commons is in effect. + * config/i386/cygming.opt (-mpe-aligned-commons): Add new option. + + * doc/invoke.texi (-mpe-aligned-commons): Document new target option. + * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons. + +2009-05-28 Ira Rosen + + PR tree-optimization/40254 + * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account + in analysis of basic blocks. + +2009-05-28 Adam Nemet + + PR middle-end/33699 + * target.h (struct gcc_target): Fix indentation. Add const_anchor. + * target-def.h (TARGET_CONST_ANCHOR): New macro. + (TARGET_INITIALIZER): Use it. + * cse.c (CHEAPER): Move it up to the other macros. + (insert): Rename this ... + (insert_with_costs): ... to this. Add cost parameters. Update + function comment. + (insert): New function. Call insert_with_costs. + (compute_const_anchors, insert_const_anchor, insert_const_anchors, + find_reg_offset_for_const, try_const_anchors): New functions. + (cse_insn): Call try_const_anchors. Adjust cost of src_related + when using a const-anchor. Call insert_const_anchors. + * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor. + * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR. + +2009-05-28 Alexandre Oliva + + * tree-inline.c (remap_decls): Enable nonlocalized variables + when not optimizing. + +2009-05-28 Alexandre Oliva + + * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing. + Simplify other tests involving optimize. + +2009-05-27 Tom Tromey + + * unwind-dw2.c (_Unwind_DebugHook): New function. + (uw_install_context): Call _Unwind_DebugHook. + +2009-05-27 Tom Tromey + + * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++ + +2009-05-27 Ian Lance Taylor + + * Makefile.in (LINKER, LINKER_FLAGS): Define. + (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define. + (ALL_LINKERFLAGS): Define. + (xgcc$(exeext)): Change $(COMPILER) to $(LINKER). + (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise. + (collect2$(exeext), mips-tfile, mips-tdump): Likewise. + (gcov$(exeext), gcov-dump$(exeext)): Likewise. + (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to + $(LINKER_FOR_BUILD). + (build/gcov-iov$(build_exeext)): Likewise. + +2009-05-27 Julian Brown + + * gcse.c (target.h): Include. + (can_assign_to_reg_without_clobbers_p): Check that the target allows + copy of argument to a pseudo register. + +2009-05-27 Diego Novillo + + * tree-ssa-live.c (dump_scope_block): Document arguments. + (dump_scope_blocks): Document. + (debug_scope_blocks): New. + * tree-flow.h (debug_scope_blocks): Declare. + +2009-05-21 Denis Chertykov + + * doc/contrib.texi (Contributors): Add myself to the list. + +2009-05-27 Olivier Hainque + + * expr.c (target_align): New function. Alignment the TARGET of an + assignment may be assume to have. + (highest_pow2_factor_for_target): Use it instead of relying on + immediate tree attributes of TARGET, not necessarily honored when + intermediate bitfields are involved. + +2009-05-27 H.J. Lu + + PR target/40266 + * config/i386/driver-i386.c (host_detect_local_cpu): Support + AVX, SSE4, AES, PCLMUL and POPCNT. + 2009-05-27 Diego Novillo * tree-pretty-print.c (dump_location): New. @@ -7,8 +1063,8 @@ 2009-05-27 Rafael Avila de Espindola - * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h with - it. + * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h + with it. * doc/plugins.texi: Document that gcc-plugin.h must be the first to be included. * gcc-plugin.h: Include config.h and system.h. @@ -41,18 +1097,12 @@ (Interacting with the GCC Garbage Collector): Added new section. (Giving information about a plugin): Added new section for PLUGIN_INFO. - * testsuite/gcc.dg/plugin/plugin.exp: Added ggcplug.c test plugin - with ggcplug-test-1.c for testing PLUGIN_GGC_MARKING etc... - * testsuite/gcc.dg/plugin/ggcplug-test-1.c: Added new file. - * testsuite/gcc.dg/plugin/ggcplug.c: Added new file. * ggc.h (ggc_register_root_tab): Added declaration. * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING) (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events. (register_callback): Improved comment in declaration. - * ggc-common.c (const_ggc_root_tab_t) Added new typedef for - vectors. - (extra_root_vec) Added static variable for dynamic roots - registration. + * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors. + (extra_root_vec) Added static variable for dynamic roots registration. (ggc_register_root_tab) Added new routine. (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke PLUGIN_GGC_MARKING event. @@ -189,8 +1239,8 @@ (cgraph_default_inline_p): Likewise. (cgraph_edge_badness): Compute badness based on benefit and size cost. (cgraph_decide_recursive_inlining): Check size. - (cgraph_decide_inlining_of_small_function): Update size; dump sizes and - times. + (cgraph_decide_inlining_of_small_function): Update size; dump sizes + and times. (cgraph_decide_inlining): Likewise. (cgraph_decide_inlining_incrementally): Likewise; honor PARAM_EARLY_INLINING_INSNS. @@ -210,8 +1260,7 @@ PR tree-optimization/36327 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker - callback for reference translation or lookup at the point - of may-defs. + callback for reference translation or lookup at the point of may-defs. * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype. * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out for union COMPONENT_REFs. @@ -288,7 +1337,8 @@ Likewise. * tree-ssa-propagate.c (substitute_and_fold): Likewise. * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise. - (dom_opt_finalize_block): Likewise, adjusting access to stmts_to_rescan. + (dom_opt_finalize_block): Likewise, adjusting access to + stmts_to_rescan. (optimize_stmt): Likewise, adjusting access to stmts_to_rescan. (stmts_to_rescan): Change item type to gimple. (tree_ssa_dominator_optimize): Change type of stmts_to_rescan. @@ -842,8 +1892,7 @@ 2009-05-20 H.J. Lu * config/i386/driver-i386.c (host_detect_local_cpu): Check - extended family and model for Intel processors. Support Intel - Atom. + extended family and model for Intel processors. Support Intel Atom. 2009-05-20 Olivier Hainque @@ -974,8 +2023,7 @@ 2009-05-19 Manuel López-Ibáñez - * c-common.c (warn_logical_operator): Remove unnecessary - conditionals. + * c-common.c (warn_logical_operator): Remove unnecessary conditionals. 2009-05-19 Kaveh R. Ghazi @@ -1355,8 +2403,8 @@ (cgraph_default_inline_p): Likewise. (cgraph_edge_badness): Compute badness based on benefit and size cost. (cgraph_decide_recursive_inlining): Check size. - (cgraph_decide_inlining_of_small_function): Update size; dump sizes and - times. + (cgraph_decide_inlining_of_small_function): Update size; dump sizes + and times. (cgraph_decide_inlining): Likewise. (cgraph_decide_inlining_incrementally): Likewise; honor PARAM_EARLY_INLINING_INSNS. @@ -1425,8 +2473,8 @@ (cgraph_default_inline_p): Likewise. (cgraph_edge_badness): Compute badness based on benefit and size cost. (cgraph_decide_recursive_inlining): Check size. - (cgraph_decide_inlining_of_small_function): Update size; dump sizes and - times. + (cgraph_decide_inlining_of_small_function): Update size; dump sizes + and times. (cgraph_decide_inlining): Likewise. (cgraph_decide_inlining_incrementally): Likewise; honor PARAM_EARLY_INLINING_INSNS. @@ -1456,16 +2504,16 @@ (is_subrange_type): Delete. (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds. (modified_type_die): Call subrange_type_for_debug_p on subtypes. - * fold-const.c (fold_truth_not_expr) : Do not strip it if - the destination type is boolean. + * fold-const.c (fold_truth_not_expr) : Do not strip it + if the destination type is boolean. (build_range_check): Do not special-case subtypes. (fold_sign_changed_comparison): Likewise. (fold_unary): Likewise. * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define. (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS. * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds. - * tree.c (subrange_type_for_debug_p): New predicate based on the former - is_subrange_type. + * tree.c (subrange_type_for_debug_p): New predicate based on the + former is_subrange_type. * tree.h (subrange_type_for_debug_p): Declare. * tree-chrec.c (avoid_arithmetics_in_type_p): Delete. (convert_affine_scev): Remove call to above function. @@ -1696,9 +2744,11 @@ (arm_legitimate_address_outer_p): ... this. * config/arm/constraints.md ("Uq"): Adjust call. * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise. - * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to... + * config/arm/arm.c (arm_legitimate_address_p): New, rename old one + to... (arm_legitimate_address_outer_p): ... this. - (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static. + (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make + static. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete. @@ -1749,9 +2799,10 @@ 2009-05-13 Taras Glek - * attribs.c (register_attribute): moved out attribute registration into - register_attribute. - * doc/plugins.texi: Documented register_attribute and PLUGIN_ATTRIBUTES. + * attribs.c (register_attribute): moved out attribute registration + into register_attribute. + * doc/plugins.texi: Documented register_attribute and + PLUGIN_ATTRIBUTES. * gcc-plugin.h: Added forward decl for register_attribute. * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES. * plugin.c (register_callback, invoke_plugin_callbacks): Added @@ -1926,8 +2977,8 @@ (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete. * ifcvt.c (find_if_header): Replace HAVE_conditional_trap with lookup of ctrap_optab. - * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, - setcc_gen_code): Delete. + * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code): + Delete. (ctrap_optab): New. * combine.c (combine_simplify_rtx, simplify_set): Do not