X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=7cbbbfb12254a88d7dd8f027de59c01407f4fc01;hp=d048013b65857b41662e3e79bbfab25c4dcda6d4;hb=1994bf18b90ba2e1a883c62190197389f428f6b6;hpb=22add764ced7691b99368a28c7b194cd0b2e13e2 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d048013b658..7cbbbfb1225 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,915 @@ +2011-04-07 Alan Modra + + * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against + previous stack info. + +2011-04-07 Tom de Vries + + PR target/43920 + * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to + flow_find_cross_jump. Swap variables to implement backward replacement. + (try_crossjump_bb): Add argument to try_crossjump_to_edge. + +2011-04-07 Tom de Vries + + PR target/43920 + * cfgcleanup.c (walk_to_nondebug_insn): New function. + (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1 and + bb2. + (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not src1 + or src2. Redirect edges to the last basic block. Update frequency and + count on multiple basic blocks in case of fallthru. + +2011-04-07 Tom de Vries + + PR target/43920 + * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New + function. + (old_insns_match_p): Change return type. Replace return false/true with + return dir_none/dir_both. Use can_replace_by. + (flow_find_cross_jump): Add dir_p parameter. Init replacement direction + from dir_p. Register replacement direction in dir, last_dir and + afterlast_dir. Handle new return type of old_insns_match_p using + merge_dir. Return replacement direction in dir_p. + (flow_find_head_matching_sequence, outgoing_edges_match): Handle new + return type of old_insns_match_p. + (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump. + * ifcvt.c ( cond_exec_process_if_block): Add argument to call to + flow_find_cross_jump. + * basic-block.h (enum replace_direction): New type. + (flow_find_cross_jump): Add parameter to declaration. + +2011-04-06 Uros Bizjak + + * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove. + (AVXMODEDCVTPS2DQ): Ditto. + (VEC_FLOAT_MODE): Ditto. + (_andnot3): Merge with avx_andnot3. Use VF mode + iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag. + (3): Use VF mode iterator. + (*3): Merge with *avx_3. + Use VF mode iterator. + (copysign3): Use VF mode iterator. + (*andnot3): Merge with *avx_andnot3. Handle + TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag. + (*3): Merge with + *avx_3. + (sse_cvtsi2ss): Merge with *avx_cvtsi2ss. + (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq. + (avx_cvtdq2ps256): Split from avx_cvtdq2ps. + (avx_cvtdq2ps): Remove. + (sse2_cvtdq2ps): Use %v modifier. + (avx_cvtps2dq256): Split from avx_cvtps2dq. + (avx_cvtps2dq): Remove. + (sse2_cvtps2dq): Use %v modifier. + (avx_cvttps2dq256): Split from avx_cvttps2dq. + (avx_cvttps2dq): Remove. + (sse2_cvttps2dq): Use %v modifier. + (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd. + (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq. + (sse2_cvtsd2siq): Fix insn template. + (sse2_cvtsd2siq_2): Ditto. + (sse2_cvttsd2siq): Ditto. + (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss. + (sse2_cvtss2sd): Merge with *avx_cvtss2sd. + +2011-04-06 Joseph Myers + + * gcov-io.c: Use GCC Runtime Library Exception. + +2011-04-06 Jakub Jelinek + + PR debug/48466 + * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use + as base_reg whatever register reg has been eliminated to, instead + of hardcoding STACK_POINTER_REGNUM. + +2011-04-06 Joseph Myers + + * doc/tm.texi.in: Document C target hooks as separate from general + target hooks. + * doc/tm.texi: Regenerate. + * genhooks.c (struct hook_desc): Add docname field. + (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize + docname field. + (hook_array): Include c-target.def. + (emit_documentation): Use docname field in output. + (emit_init_macros): Take docname argument. Only emit definitions + for hooks matching docname. + (main): Expect additional arguments in all cases. Pass argument + to emit_init_macros. + * target.def: Move initial macro definitions and comments to + target-hooks-macros.h. + (gcc_targetcm): Move to c-family/c-target.def. + * target.h (targetcm): Move declaration to c-family/c-target.h. + * targhooks.c (default_handle_c_option): Move to + c-family/c-opts.c. + * targhooks.h (default_handle_c_option): Move declaration to + c-family/c-common.h. + * target-hooks-macros.h: New file. + * config.gcc (target_has_targetcm): Define and use to add to + c_target_objs and cxx_target_objs. + * config/default-c.c: New file. + * config/darwin-c.c: Include c-target.h and c-target-def.h instead + of target.h and target-def.h. + (TARGET_HANDLE_C_OPTION, targetcm): Define later in file. + (darwin_objc_construct_string, darwin_cfstring_ref_p, + darwin_check_cfstring_format_arg): Make static. + (TARGET_OBJC_CONSTRUCT_STRING_OBJECT, + TARGET_STRING_OBJECT_REF_TYPE_P, + TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here. + * config/darwin-protos.h (darwin_objc_construct_string, + darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't + declare. + * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT, + TARGET_STRING_OBJECT_REF_TYPE_P, + TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove. + * config/t-darwin (darwin-c.o): Update dependencies. + * system.h (TARGET_HAS_TARGETCM): Poison. + * Makefile.in (TARGET_H): Update. + (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define. + (c-family/c-format.o, c-family/c-opts.o): Update dependencies. + (default-c.o): New target. + (s-target-hooks-def-h): Pass "Target Hook" string to genhooks. + (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets. + (s-tm-texi): Pass -d option to genhooks. Also test timestamp on + c-target.def. + (build/genhooks.o): Update dependencies. + +2011-04-06 Richard Guenther + + * ipa-inline.c (enum inlining_mode): Remove. + (cgraph_flatten): Use some other token. + (cgraph_edge_early_inlinable_p): New function, split out from ... + (cgraph_perform_always_inlining): New function, split out from ... + (cgraph_decide_inlining_incrementally): ... here. + (cgraph_mark_inline_edge): Adjust. + (cgraph_early_inlining): Re-structure. + (pass_early_inline): Require SSA form. + +2011-03-06 Andrew Stubbs + Julian Brown + Mark Shinwell + + * config/arm/arm.h (arm_class_likely_spilled_p): Check against + LO_REGS only for Thumb-1. + (MODE_BASE_REG_CLASS): Restrict base registers to those which can + be used in short instructions when optimising for size on Thumb-2. + +2011-04-06 Eric Botcazou + + * gimple-low.c (lower_gimple_return): When not optimizing, force labels + associated with user returns to be preserved. + +2011-04-06 Tristan Gingold + + * dbxout.c: (debug_nesting, symbol_queue, symbol_queue_index) + (symbol_queue_size, DBXOUT_DECR_NESTING) + (DBXOUT_DECR_NESTING_AND_RETURN): Also define + if XCOFF_DEBUGGING_INFO. + +2011-04-06 Uros Bizjak + + * config/i386/i386.md (attribute isa): New. + (attribute enabled): New. + (setcc__sse): Merge from *{avx,sse}_setcc. + (*fop__comm_mixed): Merge with *fop__comm_mixed_avx. + (*fop__comm_sse): Merge with *fop__comm_avx. + (*fop__1_mixed): Merge with *fop__1_mixed_avx. + (*fop__1_sse): Merge with *fop__1_avx. + (3): Merge with *avx_3. + (*ieee_smin3): Merge with *avx_ieee_smin3. + (*ieee_smax3): Merge with *avx_ieee_smax3. + + * config/i386/sse.md (VF): New mode iterator. + (VF1): Ditto. + (VF2): Ditto. + (VF_128): Ditto. + (SSEMODEF4): Remove. + (attribute sse): Handle V8SF and V4DF modes. + (2): Use VF mode iterator. + (*absneg2): Merge from *{avx,sse}_absneg2. Use VF + mode iterator. + (3): Use VF mode iterator. + (*3): Merge with *avx_3. + Use VF mode iterator. + (_vm3): Merge with + *avx_vm3. Use VF_128 mode iterator. + (mul3): Use VF mode iterator. + (*mul3): Merge with *avx_mul3. Use VF mode iterator. + (_vmmul3): Merge with *avx_vmmul3. Use VF_128 + mode iterator. + (div3): Merge from divv2df3 and divv4df3. + (div3): Merge from divv4sf3 and divv8sf3. + (_div3): Merge with *avx_div3. Use VF mode iterator. + (_vmdiv3): Merge with *avx_vmdiv3. Use VF_128 + mode iterator. + (_rcp2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2. + Use VF1 mode iterator. + (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2. + (sqrt2): New expander. + (sqrt2): Merge from sqrtv4sf2 and sqrtv8sf2. + (_sqrt2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2 + and sqrtv2df2. Use VF mode iterator. + (_vmsqrt2): Merge with *avx_vmsqrt2. Use VF_128 + mode iterator. + (rsqrt2): Merge from rsqrtv4sf2 and rsqrtv8sf2. + (_rsqrt2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2. + Use VF1 mode iterator. + (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2. + (3): Use VF mode iterator. + (*3_finite): Merge with + *avx_3_finite. Use VF mode iterator. + (*3): Merge with *avx_3. + (_vm2): Merge with + *avx_vm2. Use VF_128 mode iterator. + (*ieee_smin3): Merge with *avx_ieee_smin3. Use VF + mode iterator. + (*ieee_smax3): Merge with *avx_ieee_smax3. Use VF + mode iterator. + (sse3_addsubv2df3): Merge with *avx_addsubv2df3. + (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3. + (sse3_hv2df3): Merge with *avx_hv2df3. + (sse3_hv4sf3): Merge with *avx_hv4sf3. + (avx_cmp3): Rename from avx_cmp3. Use + VF mode iterator. + (avx_vmcmp3): Rename from avx_cmp3. + Use VF_128 mode iterator. + (_maskcmp3): Merge with *avx_maskcmp3. Use VF + mode iterator. + (_vmmaskcmp3): Merge with *avx_vmmaskcmp3. Use + VF_128 mode iterator. + (vcond): Use VF mode iterator. + * config/i386/predicates.md (sse_comparison_operator): Merge with + avx_comparison_float_operator. Do not declare as special_predicate. + * config/i386/i386.c (struct builtin_description): Update for renamed + compare patterns. + (ix86_expand_args_builtin): Ditto. + (ix86_expand_sse_compare_mask): Ditto. + +2011-04-06 Richard Guenther + + * tree-inline.c (estimate_num_insns): For calls simply account + for all passed arguments and a used return value. + +2011-04-06 Richard Guenther + + PR tree-optimization/47663 + * cgraph.h (struct cgraph_edge): Add call_stmt_size and + call_stmt_time fields. + (cgraph_edge_inlinable_p): Declare. + (cgraph_edge_recursive_p): New inline function. + * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size. + (cgraph_clone_edge): Copy it. + * ipa-inline.c (cgraph_estimate_edge_time): New function. + Account for call stmt time. + (cgraph_estimate_time_after_inlining): Take edge argument. + (cgraph_estimate_edge_growth): Account call stmt size. + (cgraph_estimate_size_after_inlining): Take edge argument. + (cgraph_mark_inline_edge): Adjust. + (cgraph_check_inline_limits): Likewise. + (cgraph_recursive_inlining_p): Remove. + (cgraph_edge_badness): Use cgraph_edge_recursive_p. + (cgraph_decide_recursive_inlining): Take edge argument and + adjust. + (cgraph_decide_inlining_of_small_functions): Do not avoid + diags for recursive inlining here. + (cgraph_flatten): Adjust. + (cgraph_decide_inlining_incrementally): Likewise. + (estimate_function_body_sizes): Remove call cost handling. + (compute_inline_parameters): Initialize caller edge call costs. + (cgraph_estimate_edge_growth): New function. + (cgraph_estimate_growth): Use it. + (cgraph_edge_badness): Likewise. + (cgraph_check_inline_limits): Take an edge argument. + (cgraph_decide_inlining_of_small_functions): Adjust. + (cgraph_decide_inlining): Likewise. + * tree-inline.c (estimate_num_insns): Only account for call + return value if it is used. + (expand_call_inline): Avoid diagnostics on recursive inline + functions here. + * lto-cgraph.c (lto_output_edge): Output edge call costs. + (input_edge): Input edge call costs. + +2011-04-06 Rainer Orth + + * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define. + +2011-04-06 Jonathan Wakely + + * doc/invoke.texi (Spec Files): Fix typo. + +2011-04-06 Eric Botcazou + + * profile.c (branch_prob): Move declaration of local variable. Remove + obsolete ??? comment. Expand the location explicitly instead of using + the LOCATION_FILE and LOCATION_LINE macros. + +2011-04-06 Wei Guozhi + + PR target/47855 + * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length". + (arm_cond_branch): Likewise. + (arm_cond_branch_reversed): Likewise. + (arm_jump): Likewise. + (push_multi): Likewise. + * config/arm/constraints.md (Py): New constraint. + +2011-04-05 Nathan Froyd + + PR bootstrap/48471 + * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index): + Move these... + (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these... + (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under + #ifdef DBX_DEBUGGING_INFO. + +2011-04-05 Bernd Schmidt + + PR bootstrap/48403 + * haifa-sched.c (schedule_block): Increment cycle_issued_insns only + if old and new states differ. + +2011-04-05 Joseph Myers + + * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200, + OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e. + * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't + handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e. + * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, + mcfv4e): Use Alias. + * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy + ColdFire options to -mcpu= options. + +2011-04-05 Jeff Law + + * tree-ssa-threadupdate.c (determine_bb_domination_status): Always + check if BB is a successor of LOOP->header and return + NONDOMINATING if it is not, regardless of ENABLE_CHECKING. + +2011-04-05 Steven Bosscher + + * cprop.c (struct reg_use): Remove. + (reg_use_table): Make an array of RTX. + (find_used_regs, constprop_register, local_cprop_pass, + bypass_block): Simplify users of reg_use_table. + (cprop_insn): Likewise. Iterate if copy propagation succeeded + on one of the uses found by find_used_regs. + +2011-04-05 Nathan Froyd + + PR bootstrap/48469 + * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links + declaration. + +2011-04-05 Nathan Froyd + + * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links + as an rtx. + (try_combine) [AUTO_INC_DEC]: Declare a local link rtx. + +2011-04-05 Steven Bosscher + + PR middle-end/48441 + * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns. + +2011-04-05 Nathan Froyd + + * combine.c: Include obstack.h. + (struct insn_link): Define. + (uid_log_links): Adjust type. + (FOR_EACH_LOG_LINK): New macro. + (insn_link_obstack): Declare. + (alloc_insn_link): Define. + (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust + type of link variables. + (find_single_use, insn_a_feeds_b, combine_instructions): Likewise. + (try_combine, record_promoted_values, distribute_notes): Likewise. + (distribute_links): Likewise. Tweak prototype. + (clear_log_links): Delete. + (adjust_for_new_dest): Call alloc_insn_link. + * Makefile.in (combine.o): Depend on $(OBSTACK_H). + +2011-04-05 Nathan Froyd + + * gcse.c (modify_mem_list): Convert to an array of VECs. + (canon_modify_mem_list, compute_transp): Tweak formatting. + (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change. + (load_killed_in_block_p): Likewise. + (record_last_mem_set_info): Likewise. + (clear_modify_mem_tables): Likewise. + +2011-04-05 Tom de Vries + + PR middle-end/48461 + * function.c (emit_use_return_register_into_block): Only define if + HAVE_return. + +2011-04-05 Eric Botcazou + + * stor-layout.c (self_referential_size): Fix 2010-07-13 commit. + +2011-04-05 Joseph Myers + + * config/rx/rx-opts.h: New. + * config/rx/rx.c (rx_cpu_type): Remove. + (rx_handle_option): Don't assert that global structures are in + use. Access variables via opts pointer. Defer most handling of + OPT_mint_register_. Use error_at. + (rx_option_override): Handle deferred OPT_mint_register_ here. + * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h. + * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude. + (mcpu=): Use Enum and specifiy rx_cpu_type with Var. + (rx_cpu_types): New Enum and EnumValue entries. + (mint-register=): Use Defer and use Var accordingly. + +2011-04-05 Nathan Froyd + + * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete. + (debug_free_queue, debug_nesting, symbol_queue_index): Delete. + * final.c (debug_flush_symbol_queue, debug_queue_symbol): + Move these... + (debug_free_queue, debug_nesting, symbol_queue_index): + ...and these... + * dbxout.c: ...to here. Make static. + +2011-04-05 Nathan Froyd + + * gcse.c (modify_pair): Define. Define a VEC of it. + (canon_modify_mem_list): Convert to an array of VECs. + (free_insn_expr_list_list): Delete. + (clear_modify_mem_tables): Call VEC_free instead. + (record_last_mem_set_info): Don't modify canon_modify_mem_list. + (alloc_gcse_mem): Adjust for canon_modify_mem_list change. + (canon_list_insert, compute_transp): Likewise. + +2011-04-05 Tom de Vries + + PR target/43920 + * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing + for size. + +2011-04-05 Tom de Vries + + PR target/43920 + * function.c (emit_use_return_register_into_block): New function. + (thread_prologue_and_epilogue_insns): Use + emit_use_return_register_into_block. + +2011-04-05 Tom de Vries + + PR target/43920 + * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as + insn. + +2011-04-05 Tom de Vries + + * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables. + +2011-04-05 Yufeng Zhang + + * config/arm/arm.md (define_constants for unspec): Replace with + define_c_enum. + (define_constants for unspecv): Replace with define_c_enum. + * config/arm/neon.md (define_constants for unspec): Replace with + define_c_enum. + +2011-04-04 Richard Henderson + + PR bootstrap/48400 + * dwarf2out.c (output_line_info): Always emit line info from + at least one section. + (dwarf2out_init): Create text_section_line_info here ... + (set_cur_line_info_table): ... not here. + +2011-04-04 Vladimir Makarov + + PR target/48380 + * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is + not called. + + * ira-emit.c (emit_move_list): Update reg_equiv_init insn list. + +2011-04-04 Steven Bosscher + + * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'. + (expr_equiv_p): Remove. + (insert_set_in_table): Look at pair instead of expr. + (hash_scan_set): Update call to insert_set_in_table. + (dump_hash_table): Dump pair. + (lookup_set): Simplify. Lookup pair. + (compute_transp): Remove, fold heavily simplified code into... + (compute_local_properties): ...here. Expect COMP and TRANSP + unconditionally. + (find_avail_set): Take set directly from struct expr. + (find_bypass-set): Likewise. + (bypass_block): Likewise. + (cprop_insn): Likewise. Remove redundant INSN_P test. + + * cprop.c (implicit_set_cond_p): Assume nothing about COND, move + checks on form of COND from find_implicit_sets to here. + (find_implicit_sets): Cleanup control flow. Split critical edges + if it exposes implicit sets. Allocate/resize implicit_sets as + necessary. + (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass + changed something. Run df_analyze after find_implicit_sets if any + edges were split. Do not allocate implicit_sets here. + + * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse. + (gcse_obstack): Renamed to cprop_obstack. + (GNEW, GNEWVEC, GNEWVAR): Remove. + (gmalloc): Remove. + (alloc_hash_table): Use XNEWVAR instead of GNEWVAR. + (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming. + (gcse_alloc): Likewise, and rename to cprop_alloc. + (alloc_gcse_men, free_gcse_mem): Remove. + (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers. + (compute_hash_table_work): Allocate and free reg_set_bitmap here. + (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming. + + * cprop.c (oprs_not_set_p): Remove. + (mark_set, mark_clobber): Remove. + (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache. + (reg_not_set_p): New function. + (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p. + (cprop_insn): Likewise. + (cprop_jump): Use FOR_EACH_EDGE. + +2011-04-04 Bernd Schmidt + + PR bootstrap/48403 + * haifa-sched.c (nonscheduled_insns_begin): New static variable. + (rank_for_schedule): Use scheduled_insns vector instead of + last_scheduled_insn. + (ok_for_early_queue_removal): Likewise. + (queue_to_ready): Search forward in nonscheduled_insns_begin if + we have a dbg_cnt. + (choose_ready): Likewise. + (commit_schedule): Use VEC_iterate. + (schedule_block): Initialize nonscheduled_insns_begin. If we have + a dbg_cnt, use it and ensure the first insn is in the ready list. + (haifa_sched_init): Allocate scheduled_insns. + (sched_extend_ready_list): Don't allocate it; reserve space. + (haifa_sched_finish): Free it. + +2011-04-04 Joseph Myers + + * optc-gen.awk: Always remove type from Variable entry before + recording in var_seen. + +2011-04-04 Eric Botcazou + + * cfghooks.c (tidy_fallthru_edges): Add ??? comment. + * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove + call to tidy_fallthru_edges. + +2011-04-04 Joseph Myers + + * doc/options.texi (ToLower): Document. + * opt-functions.awk (switch_bit_fields): Initialize cl_tolower + field. + * opts-common.c (decode_cmdline_option): Handle cl_tolower. + * opts.h (cl_option): Add cl_tolower field. + * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu= + arguments with lowercase strings. + * config/rx/rx.opt (mcpu=): Add ToLower. + * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu= + argument. + +2011-04-04 Richard Sandiford + + * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete. + +2011-04-04 Richard Sandiford + + * config/vax/vax.c: Include reload.h. + +2011-04-04 Anatoly Sokolov + + * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove. + * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define. + (sparc_preferred_reload_class): New function. + +2011-04-04 Jakub Jelinek + + PR debug/48401 + * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment. + Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC. + +2011-04-03 Nathan Froyd + + * tree.h (struct tree_const_decl): Inherit from tree_decl_common. + * tree.c (initialize_tree_contains_struct): Adjust accordingly. + +2011-04-03 Anatoly Sokolov + + * config/avr/avr.h (ASM_OUTPUT_BSS): Remove. + (ASM_OUTPUT_ALIGNED_BSS): Define. + +2011-04-03 Michael Matz + + * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets + and next_slot members. + (lto_streamer_cache_insert, lto_streamer_cache_insert_at, + lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes. + (lto_streamer_cache_append): Declare. + * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use + unsigned index, remove offset parameter, ensure that we append + or update existing entries. + (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p + parameter, update next_slot for append. + (lto_streamer_cache_insert): Use unsigned index, remove offset_p + parameter. + (lto_streamer_cache_insert_at): Likewise. + (lto_streamer_cache_append): New function. + (lto_streamer_cache_lookup): Use unsigned index. + (lto_streamer_cache_get): Likewise. + (lto_record_common_node): Don't test tree_node_can_be_shared. + (preload_common_node): Adjust call to lto_streamer_cache_insert. + (lto_streamer_cache_delete): Don't free offsets member. + * lto-streamer-out.c (eq_string_slot_node): Use memcmp. + (lto_output_string_with_length): Use lto_output_data_stream. + (lto_output_tree_header): Remove ix parameter, don't write it. + (lto_output_builtin_tree): Likewise. + (lto_write_tree): Adjust callers to above, don't track and write + offset, write unsigned index. + (output_unreferenced_globals): Don't emit all global vars. + (write_global_references): Use unsigned indices. + (lto_output_decl_state_refs): Likewise. + (write_symbol): Likewise. + * lto-streamer-in.c (lto_input_chain): Move earlier. + (input_function): Use unsigned index. + (input_alias_pairs): Don't read and then ignore all global vars. + (lto_materialize_tree): Remove ix_p parameter, don't read index, + don't pass it back, use lto_streamer_cache_append. + (lto_register_var_decl_in_symtab): Use unsigned index. + (lto_register_function_decl_in_symtab): Likewise. + (lto_get_pickled_tree): Don't read in or handle offset, read unsigned + index. + (lto_get_builtin_tree): Don't read index, use + lto_streamer_cache_append. + (lto_read_tree): Adjust call to lto_materialize_tree. + + * ipa-inline.c (cgraph_edge_badness): Move growth calculaton, + don't use function calls in arguments to MIN. + + * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC + twice. + + * gimple.c (gimple_type_leader_entry): Mark deletable. + +2011-04-03 Alan Modra + + * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM. + +2011-04-03 Michael Matz + + * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not + an integer. + * tree.h (tree_decl_non_common.vindex): Adjust comment. + +2011-04-03 Michael Matz + + * cgraphbuild.c (record_reference): Canonicalize constructor values. + * gimple-fold.c (canonicalize_constructor_val): Accept being called + without function context. + * cgraphunit.c (cgraph_finalize_compilation_unit): Clear + current_function_decl and cfun. + +2011-04-03 Michael Matz + + * tree.c (decl_init_priority_insert): Don't create entry for + default priority. + (decl_fini_priority_insert): Ditto. + (fields_compatible_p, find_compatible_field): Remove. + * tree.h (fields_compatible_p, find_compatible_field): Remove. + * gimple.c (gimple_compare_field_offset): Adjust block comment. + +2011-04-03 Eric Botcazou + + * combine.c (try_combine): Remove useless local variable. + +2011-04-03 Richard Guenther + Ira Rosen + + * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all + non-variable offsets and compare the remaining bases of the two + accesses instead of looking for exact same data-ref. + +2011-04-02 Kai Tietz + + PR target/48416 + * i386.c (ix86_function_arg_boundary): Fix printf formatter. + + * i386.c (ix86_is_msabi_thiscall): New helper function. + (ix86_is_type_thiscall): New helper function. + (ix86_comp_type_attributes): Handle thiscall for method-functions + special. + (init_cumulative_args): Likewise. + (find_drap_reg): Likewise. + (ix86_static_chain): Likewise. + (x86_this_parameter): Likewise. + (x86_output_mi_thunk): Likewise. + +2011-04-01 Olivier Hainque + Nicolas Setton + Eric Botcazou + + * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type. + (add_gnat_descriptive_type_attribute): New function. + (gen_array_type_die): Call it. + (gen_enumeration_type_die): Likewise. + (gen_struct_or_union_type_die): Likewise. + (modified_type_die): Likewise. + * langhooks.h (lang_hooks_for_types): New descriptive_type hook. + * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL. + (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE. + +2011-04-01 Jakub Jelinek + + PR bootstrap/48148 + * dwarf2out.c (resolve_addr): Don't call force_decl_die + if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN. + + Revert: + 2011-03-17 Richard Guenther + + PR bootstrap/48148 + * lto-cgraph.c (input_overwrite_node): Clear the abstract + origin for decls in other ltrans units. + (input_varpool_node): Likewise. + +2011-04-01 Jakub Jelinek + + PR middle-end/48335 + * expr.c (expand_assignment): Handle all possibilities + if TO_RTX is CONCAT. + * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs. + (store_split_bit_field): If SUBREG_REG (op0) or + op0 itself has smaller mode than word, return it + for offset 0 and const0_rtx for out-of-bounds stores. + If word is const0_rtx, skip it. + +2011-04-01 Naveen H.S + + * config/h8300/h8300.c (print_operand_address): Rename to... + (h8300_print_operand_address): ...this. Make static. Adjust comments. + Call h8300_print_operand and h8300_print_operand_address instead of + print_operand and print_operand_address. Declare. + (print_operand): Renake to... + (h8300_print_operand): ...this. Make static. Adjust comments. + Call h8300_print_operand instead of print_operand. Declare. + (h8300_print_operand_punct_valid_p): Moved from h8300.h file. + (h8300_register_move_cost): Likewise. + (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND + TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define. + * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND + PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete. + * config/h8300/h8300-protos.h (print_operand): Delete. + (print_operand_address): Delete. + +2011-04-01 Richard Henderson + + PR 48400 + * dwarf2out.c (dwarf2out_source_line): Disable discriminators + in strict mode before dwarf4. Re-order tests to early out + before switching sections. + +2011-04-01 Nathan Froyd + + * config/h8300/constraints.md: New file. + * config/h8300/h8300.md: Include it. Use satisfies_constraint_J, + satisfies_constraint_L, and satisfies_constraint_N for peephole2s. + (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U. + * config/h8300/predicates.md (bit_operand): Likewise. + (incdec_operand): Use satisfies_constraint_M and + satisfies_constraint_O. Don't use C code block. + * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete. + * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete. + (compute_mov_length): Use satisfies_constraint_G. + (fix_bit_operand): Use satisfies_constraint_U. + * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete. + (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete. + (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete. + (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete. + (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete. + (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete. + (CONST_DOUBLE_OK_FOR_LETTER_P): Delete. + (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete. + (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete. + (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete. + (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete. + (EXTRA_MEMORY_CONSTRAINT): Delete. + +2011-04-01 Andrew Pinski + Michael Meissner + + PR target/48262 + * config/rs6000/vector.md (movmisalign): Allow for memory + operands, as per the specifications. + + * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes. + (vec_extract_evenv4sf): Ditto. + (vec_extract_evenv8hi): Ditto. + (vec_extract_evenv16qi): Ditto. + (vec_extract_oddv4si): Ditto. + +2011-03-31 Mark Wielaard + + * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or + high_pc attribute if the CU has no associated code. Only output + DW_AT_entry_pc for CU if not generating strict dwarf and + dwarf_version < 4. + +2011-04-01 Bernd Schmidt + + * dwarf2out.h (dwarf2out_frame_debug_init): Declare. + * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken + out of ... + (dwarf2out_frame_debug): ... here. Don't handle a NULL argument. + * final.c (final_start_function): Call the new function rather + than using a NULL argument for dwarf2out_frame_debug. + + * ifcvt.c (cond_exec_process_insns): Disallow converting a block + that contains the prologue. + + * haifa-sched.c (queue_insn): New arg REASON. All callers + changed. Print it in debugging output. + + * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag. + + * sched-ebb.c (begin_schedule_ready): Remove second argument. + Split most of the code into... + (begin_move_insn): ... here. New function. + (ebb_sched_info): Add a pointer to it. + * haifa-sched.c (scheduled_insns): New static variable. + (sched_extend_ready_list): Allocate it. + (schedule_block): Use it to record the order of scheduled insns. + Perform RTL changes to move insns only after all scheduling + decisions have been made. + * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the + begin_move_insn field. + * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise. + * sched-int.h (struct haifa_sched_info): Remove second argument + from begin_schedule_ready hook. Add new member begin_move_insn. + * sched-rgn.c (begin_schedule_ready): Remove second argument. + (rgn_const_sched_info): Add NULL entry for the begin_move_insn field. + + * haifa-sched.c (prune_ready_list): New function, broken out of + schedule_block. + (schedule_block): Use it. + +2011-04-01 Ulrich Weigand + + * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>. + +2011-04-01 Kai Tietz + + * config.gcc (*-*-mingw*): Allow as option the + posix threading model. + * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2): + New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT + definition. + (CPP_SPEC): Add pthread/no-pthread handling. + (LIB_SPEC): Likewise. + * config/i386/mingw-w64.h (CPP_SPEC):Likewise. + (LIB_SPEC): Likewise. + * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New + flag to pass -pthread option for shared libgcc build. + (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread + for shared libgcc build. + * config/i386/t-mingw-pthread: New file. + * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT): + New define to enable use of library pthread by default. + * config/i386/mingw.opt (pthread): New driver option. + (no-pthread): New driver option. + * config/i386/cygming.opt: Make sure trailing empty line is retained. + * config/i386/mingw-w64.opt: Likewise. + +2011-04-01 Gary Funck + + * c-decl.c (grokdeclarator): Fix formatting. + +2011-04-01 Richard Sandiford + + * expr.c (emit_block_move_via_movmem): Use n_generator_args + instead of n_operands. + (set_storage_via_setmem): Likewise. + * optabs.c (maybe_gen_insn): Likewise. + * config/arm/arm.c (arm_init_neon_builtins): Likewise. + * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise. + (mips_expand_builtin_direct): Likewise. + * config/spu/spu.c (expand_builtin_args): Likewise. + +2011-04-01 Richard Sandiford + + * recog.h (insn_data_d): Add n_generator_args. + * genoutput.c (data): Likewise. + (output_insn_data): Print it. + (max_opno, num_dups): Delete. + (scan_operands): Just fill in "d->operand[...]". + (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats. + 2011-04-01 Richard Sandiford * gensupport.h (pattern_stats): New structure. @@ -105,8 +1017,7 @@ 2011-03-31 Michael Matz - * builtins.c (build_va_arg_indirect_ref): Use - build_simple_mem_ref_loc. + * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc. 2011-03-31 Anatoly Sokolov @@ -120,7 +1031,7 @@ * reload1.c (elimination_effects): Fix typo in recent change. - * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid + * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid typo potentially leading to null pointer dereference. * caller-save.c (new_saved_hard_reg): Eliminate return value. @@ -152,8 +1063,7 @@ * collect2.c (main): Don't use TARGET_VERSION. * mips-tdump.c (main): Don't use TARGET_VERSION. * mips-tfile.c (main): Don't use TARGET_VERSION. - * config.gcc (powerpc-wrs-vxworksae): Don't use - rs6000/vxworksae.h. + * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h. * config/rs6000/vxworksae.h: Remove. * config/alpha/alpha.h (TARGET_VERSION): Remove. * config/alpha/freebsd.h (TARGET_VERSION): Remove. @@ -319,8 +1229,7 @@ * doc/options.texi (NegativeAlias): Document. (Alias): Mention NegativeAlias. * opt-functions.awk: Handle NegativeAlias. - * optc-gen.awk: Disallow NegativeAlias with multiple Alias - arguments. + * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments. * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS. * opts.h (CL_NEGATIVE_ALIAS): Define. * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove. @@ -404,8 +1313,7 @@ changes. * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes. * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes. - * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding - changes. + * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes. * m68k/m68k.c (emit_move_sequence): Corresponding changes. * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding changes. @@ -431,6 +1339,7 @@ PR driver/48208 * config/c.opt (F): Added 'Driver' to -F option. + PR driver/48260 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to handler function. @@ -441,15 +1350,14 @@ * config/rx/rx.md: Add peepholes and patterns to combine extending loads and simple arithmetic instructions. * config/rx/rx.h (ADJUST_INSN_LENGTH): Define. - * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype. - * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI + * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype. + * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI modes to use pre-decrement and post-increment addressing. - (rx_is_restricted_memory_address): Add range checking of REG+INT + (rx_is_restricted_memory_address): Add range checking of REG+INT addresses. - (rx_print_operand): Add support for %Q. - Fix handling of %Q. - (rx_memory_move_cost): Adjust cost of stores. - (rx_adjust_insn_length): New function. + (rx_print_operand): Add support for %Q. Fix handling of %Q. + (rx_memory_move_cost): Adjust cost of stores. + (rx_adjust_insn_length): New function. 2011-03-30 Jakub Jelinek