X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;ds=sidebyside;f=gcc%2FChangeLog;h=bfca2171be22b9da53153156c6d5e23e5cd86e59;hb=4dcd7ab324cb52d2d0ef482173ea8284300944eb;hp=528ca321a56d08dd193522987ab3556dce4a05e6;hpb=12e7ff4ffdd6f9d092f5208879cea88fe277089d;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 528ca321a56..bfca2171be2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,920 @@ +2010-03-22 Rainer Orth + + PR target/38085 + * config/i386/i386.c (x86_function_profiler) + [!NO_PROFILE_COUNTERS]: Fix typo. + * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call + instead of callq. + +2010-03-22 Janis Johnson + Rainer Orth + + * doc/sourcebuild.texi (Test Directives): Split into six + subsections, with most of the current text in new subsections + Directives, Selectors, and Final Actions. + (Directives): Split list of test directives into multiple + subsubsections. + (Selectors): Describe use and syntax of selectors. + (Effective-Target Keywords): Describe all existing keywords. + (Add Options): Describe features for dg-add-options. + (Require Support): Describe variants of dg-require-support. + (Final Actions): Describe commands to use in dg-final. + +2010-03-22 Michael Matz + + PR middle-end/43475 + * recog.c (validate_replace_rtx_group): Replace also in + REG_EQUAL and REG_EQUIV notes. + +2010-03-22 Richard Guenther + + PR tree-optimization/43390 + * tree-vect-stmts.c (get_vectype_for_scalar_type): Make + sure vector extracts are type correct. + +2010-03-22 Richard Guenther + + PR middle-end/40106 + * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as + x * sqrt (x) even when optimizing for size if the target + has native support for sqrt. + +2010-03-22 Jakub Jelinek + + * varasm.c (make_decl_rtl_for_debug): Also clear + flag_mudflap for the duration of make_decl_rtl call. + + PR debug/43443 + * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS + locs from preserved VALUEs. + +2010-03-21 John David Anglin + + PR middle-end/42718 + * pa.md (movmemsi): Set align to one if zero. + (movmemdi): Likewise. + +2010-03-21 Richard Earnshaw + + PR target/42321 + * arm.c (arm_output_epilogue): Correctly match VFP pop instructions + with their corresponding prologue pushes. + +2010-03-20 Andrew Pinski + + PR target/43156 + * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED + at the begining or end. + (spu_expand_epilogue): Likewise. + +2010-03-20 Richard Guenther + + PR rtl-optimization/43438 + * combine.c (make_extraction): Properly zero-/sign-extend an + extraction of the low part of a CONST_INT. Also handle + CONST_DOUBLE. + +2010-03-19 Mike Stump + + * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add. + * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add. + (override_options): Use SUBTARGET32_DEFAULT_CPU. + +2010-03-19 Andrew Pinski + + PR C/43211 + * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was an error. + +2010-03-19 Bernd Schmidt + + PR rtl-optimization/42258 + * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a + use that may match DEF. + + PR target/40697 + * optabs.c (avoid_expensive_constant): Use rtx_cost to find out + the cost of loading the constant rather than assuming + COSTS_N_INSNS (1). + * config/arm/arm.c (thumb1_rtx_costs) : If the + outer code is AND, do the same tests as the andsi3 expander and + return COSTS_N_INSNS (1) if and is cheap. + + * optabs.c (avoid_expensive_constant): Fix formatting. + +2010-03-19 Michael Matz + + PR c++/43116 + * attribs.c (decl_attributes): When rebuilding a function pointer + type use the same qualifiers as the original pointer type. + +2010-03-19 Martin Jambor + + * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant + and is_gimple_ip_invariant_address. + +2010-03-19 Ramana Radhakrishnan + + Revert + 2009-10-01 Ramana Radhakrishnan + + * config/arm/arm.c (arm_override_options): Turn off + flag_dwarf2_cfi_asm for AAPCS variants. + +2010-03-19 Ramana Radhakrishnan + + PR target/43399 + * config/arm/arm.c (emit_multi_reg_push): Update comments. + Use PRE_MODIFY instead of PRE_DEC. + (emit_sfm): Use PRE_MODIFY instead of PRE_DEC. + (vfp_emit_fstmd): Likewise. + +2010-03-19 Michael Matz + + PR target/43305 + * builtins.c (expand_builtin_interclass_mathfn, + expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls + if that fails. + +2010-03-19 Richard Guenther + + PR tree-optimization/43415 + * tree-ssa-pre.c (phi_translate): Split out worker to ... + (phi_translate_1): ... this. + (phi_translate): Move all caching here. Cache all NARY + and REFERENCE translations. + +2010-03-19 David S. Miller + + With help from Eric Botcazou. + * config/sparc/sparc.c: Include dwarf2out.h. + (emit_pic_helper): Delete. + (pic_helper_symbol_name): Delete. + (pic_helper_emitted_p): Delete. + (pic_helper_needed): New. + (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'. + (get_pc_thunk_name): New. + (load_pic_register): Remove 'delay_pic_helper' arg. Use + get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol. + Set pic_helper_needed to true. Don't call emit_pic_helper. + (sparc_expand_prologue): Update load_pic_register call. + (sparc_output_mi_thunk): Likewise. + (sparc_file_end): Emit a hidden comdat symbol for the PIC + thunk if possible. Output CFI information as needed. + +2010-03-18 Francois-Xavier Coudert + Jack Howarth + + PR target/36399 + * config/i386/i386.h: Fix ABI on darwin x86-32. + +2010-03-18 Aldy Hernandez + + * tree.h: Declare make_decl_rtl_for_debug. + * varasm.c (make_decl_rtl_for_debug): New. + * dwarf2out.c (rtl_for_decl_location): Call it. + * cfgexpand.c (expand_debug_expr): Call it. + +2010-03-18 Jakub Jelinek + + PR bootstrap/43399 + * var-tracking.c (adjust_mems) : Allow BLKmode + mem_mode. + + PR bootstrap/43403 + * var-tracking.c (vt_init_cfa_base): Do nothing if + cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed + register. + +2010-03-18 Alexandre Oliva + + PR debug/42873 + * var-tracking.c (canonicalize_vars_star): New. + (dataflow_post_merge_adjust): Use it. + +2010-03-18 Jakub Jelinek + + PR debug/43058 + * var-tracking.c (non_suitable_const): New function. + (add_uses): For DEBUG_INSNs with constants, don't record any + value, instead just the constant value itself. + (compute_bb_dataflow) : If PAT_VAR_LOCATION_LOC + is not VAR_LOC_UNKNOWN_P, set var to the constant. + (emit_notes_in_bb): Likewise. + (emit_note_insn_var_location): For onepart variables if + cur_loc is a VOIDmode constant, use DECL_MODE. + +2010-03-18 Martin Jambor + + PR middle-end/42450 + * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare. + * cgraphunit.c (cgraph_materialize_all_clones): Update calls in + all non-clones. Moved call redirection... + (cgraph_redirect_edge_call_stmt_to_callee): ...to this new + function. + (cgraph_materialize_all_clones): Dispose of all + combined_args_to_skip bitmaps. + (verify_cgraph_node): Do not check for edges pointing to wrong + nodes in inline clones. + * tree-inline.c (copy_bb): Call + cgraph_redirect_edge_call_stmt_to_callee. + * ipa.c (cgraph_remove_unreachable_nodes): Call + cgraph_node_remove_callees even when there are used clones. + +2010-03-18 H.J. Lu + + * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0. + +2010-03-18 H.J. Lu + + PR target/43383 + * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0 + for 32bit. + +2010-03-18 Michael Matz + + PR middle-end/43419 + * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5) + into sqrt(x) if we need to preserve signed zeros. + +2010-03-18 Steven Bosscher + Eric Botcazou + + PR rtl-optimization/43360 + * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL + note if we don't know its invariant status. + +2010-03-18 Michael Matz + + PR tree-optimization/43402 + * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow + PHI chains of ssa names registered for update. + +2010-03-17 Peter Bergner + + PR target/42427 + * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for + non-offsettable and pre_modify update addressing. + * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1" + and "2" alternatives "#". + (*movdd_softfloat32): Make all alternatives "#"; + * config/rs6000/rs6000.md (DIFD): New define_mode_iterator. + (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#". + (*movdf_softfloat32): Make all alternatives "#"; + (movdi): Use the new DIFD mode iterator to create a common splitter + for movdi, movdf and movdd patterns. + +2010-03-18 Shujing Zhao + + * common.opt (dumpdir): Remove redundant tab. + +2010-03-17 Martin Jambor + + PR tree-optimization/43347 + * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the + original base is DECL_ARTIFICIAL or DECL_IGNORED_P. + +2010-03-17 Bernd Schmidt + + PR rtl-optimization/42216 + * regrename.c (create_new_chain): New function, broken out from... + (scan_rtx_reg): ... here. Call it. Handle the case where we are + appending a use to an empty chain. + (build_def_use): Remove previous changes that convert OP_INOUT to + OP_OUT operands; instead detect the case where an OP_INOUT operand + uses a previously untracked register and create an empty chain for + it. + +2010-03-17 Ralf Wildenhues + + * doc/extend.texi (Function Attributes): Rewrite unfinished + sentence in ms_abi documentation. + +2010-03-17 Alan Modra + + * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var. + * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define. + (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL. + * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define. + +2010-03-16 Richard Henderson + + PR middle-end/43365 + * tree-eh.c (replace_goto_queue): Also replace in the eh_seq. + (lower_try_finally): Save and restore eh_seq around the expansion + of the try-finally. + +2010-03-16 Aldy Hernandez + + * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug + statements before splitting block. + +2010-03-16 Rainer Orth + + * doc/sourcebuild.texi (Testsuites): Fix markup. + Use pathnames relative to gcc/testsuite. + (Test Directives): Move description of how timeout is determined. + (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc. + (C Tests): Correct gcc.misc-tests directory. + Framework tests now live in gcc.test-framework. + +2010-03-16 Richard Guenther + + PR middle-end/43379 + * tree-cfg.c (gimple_merge_blocks): When propagating virtual + PHI operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI + properly. + +2010-03-16 Aldy Hernandez + Alexandre Oliva + + PR tree-optimization/42917 + * lambda-code.c (remove_iv): Skip debug statements. + (lambda_loopnest_to_gcc_loopnest): Likewise. + (not_interesting_stmt): Debug statements are not interesting. + +2010-03-16 Jakub Jelinek + + PR debug/43051 + PR debug/43092 + * cselib.c (cselib_preserve_constants, + cfa_base_preserved_val): New static variables. + (preserve_only_constants): New function. + (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't + clear its REG_VALUES. If cselib_preserve_constants, don't + empty the whole hash table, but preserve there VALUEs with constants, + cfa_base_preserved_val and cfa_base_preserved_val plus constant. + (cselib_preserve_cfa_base_value): New function. + (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val. + (cselib_init): Change argument to int bitfield. Set + cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS + is in it. + (cselib_finish): Clear cselib_preserve_constants and + cfa_base_preserved_val. + * cselib.h (enum cselib_record_what): New enum. + (cselib_init): Change argument to int. + (cselib_preserve_cfa_base_value): New prototype. + * postreload.c (reload_cse_regs_1): Adjust cselib_init caller. + * dse.c (dse_step1): Likewise. + * cfgcleanup.c (thread_jump): Likewise. + * sched-deps.c (sched_analyze): Likewise. + * gcse.c (local_cprop_pass): Likewise. + * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback. + If FN is non-NULL, call the callback always and whenever it returns + non-NULL just return that. Only do rtx_equal_p if FN is NULL. + * rtl.h (simplify_replace_fn_rtx): Add argument to callback. + * combine.c (propagate_for_debug_subst): Add old_rtx argument, + compare from with old_rtx and if it isn't rtx_equal_p, return NULL. + * Makefile.in (var-tracking.o): Depend on $(RECOG_H). + * var-tracking.c: Include recog.h. + (bb_stack_adjust_offset): Remove. + (vt_stack_adjustments): Don't call it, instead just gather the + adjustments using insn_stack_adjust_offset_pre_post on each bb insn. + (adjust_stack_reference): Remove. + (compute_cfa_pointer): New function. + (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables. + (struct adjust_mem_data): New type. + (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New + functions. + (get_address_mode): New function. + (replace_expr_with_values): Use it. + (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P. + Use get_address_mode. For cfa_base_rtx return MO_CLOBBER. + (adjust_sets): Remove. + (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant. + Use get_address_mode. + (get_adjusted_src): Remove. + (add_stores): Don't call it. Never reuse expr SET. Don't add extra + MO_VAL_USE for cfa_base_rtx plus constant. Use get_address_mode. + (add_with_sets): Don't call adjust_sets. + (fp_setter, vt_init_cfa_base): New functions. + (vt_initialize): Change return type to bool. Move most of pool etc. + initialization to the beginning of the function from end. Pass + CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init. + If !frame_pointer_needed, call vt_stack_adjustment before mos + vector is filled, call vt_init_cfa_base if argp/framep has been + eliminated to sp. If frame_pointer_needed and argp/framep has + been eliminated to hard frame pointer, set + hard_frame_pointer_adjustment and call vt_init_cfa_base after + encountering fp setter in the prologue. For MO_ADJUST, call + log_op_type before pusing the op into mos vector, not afterwards. + Call adjust_insn before cselib_process_insn/add_with_sets, + call cancel_changes (0) afterwards. + (variable_tracking_main_1): Adjust for vt_initialize calling + vt_stack_adjustments and returning whether it succeeded or not. + +2010-03-15 Aldy Hernandez + + * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip + debug statements. + +2010-03-15 Jakub Jelinek + + * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg + has been set. + (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when + drap_reg has not been set. + +2010-03-15 Michael Matz + + PR middle-end/43300 + * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp, + use it to expand block copies. + (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge, + insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy. + (insert_value_copy_on_edge): Use store_expr for BLKmode values. + +2010-03-15 Richard Guenther + + PR tree-optimization/43367 + * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI + elimination check. + +2010-03-15 Richard Guenther + + PR tree-optimization/43317 + * ipa-struct-reorg.c (create_new_general_access): Update stmt. + +2010-03-15 Martin Jambor + + PR tree-optimization/43141 + * tree-sra.c (create_abstract_origin): New function. + (modify_function): Call create_abstract_origin. + +2010-03-15 Chris Demetriou + + * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it + wasn't copied. + +2010-03-13 Sebastian Pop + + PR middle-end/43354 + * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not + call insert_out_of_ssa_copy for default definitions. + +2010-03-13 Sebastian Pop + + * graphite-clast-to-gimple.c (my_long_long): Defined. + (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node. + * graphite-sese-to-poly.c (my_long_long): Defined. + (scop_ivs_can_be_represented): Use it. + +2010-03-13 Sebastian Pop + + * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params, + graphite-max-bbs-per-function, and loop-block-tile-size. + * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal" + with "maximum". + (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same. + +2010-03-13 Sebastian Pop + + * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove + forward declaration. + * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment. + (add_upper_bounds_from_estimated_nit): New. + (build_loop_iteration_domains): Use it. + +2010-03-13 Sebastian Pop + + * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document. + +2010-03-13 Sebastian Pop + + PR middle-end/43306 + * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT + should be an INTEGER_CST. Also handle CASE_CONVERT. + +2010-03-13 Sebastian Pop + + * graphite.c (graphite_initialize): To bound the number of bbs per + function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION. + * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared. + * doc/invoke.texi: Document it. + +2010-03-13 Sebastian Pop + + * graphite-sese-to-poly.c (build_poly_scop): Do not return bool. + * graphite-sese-to-poly.h (build_poly_scop): Same. + +2010-03-13 Sebastian Pop + + * graphite-sese-to-poly.c (build_poly_scop): Limit scops following + the number of parameters in the scop. Use as an upper bound + PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS. + * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared. + * doc/invoke.texi: Document it. + +2010-03-13 Jerry Quinn + + * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi. + * doc/c-tree.texi: Remove. + * doc/generic.texi: Merge c-tree.texi here. + * doc/gccint.texi (Trees): Remove menu entry. + (c-tree.texi): Remove @include. + * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC. + * doc/languages.texi (Reading RTL): Ditto. + +2010-03-12 Steve Ellcey + + PR target/42869 + * config/ia64/sync.md (sync_compare_and_swap): Move memory fence. + +2010-03-12 Michael Meissner + + PR middle-end/42431 + * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid + code added to work around reload clobbering CONST insns. + +2010-03-12 Jakub Jelinek + + * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove. + (cselib_preserve_definitely, cselib_clear_preserve): Remove. + (cselib_preserve_only_values): Remove retain argument, don't + traverse hash table with cselib_{preserve_definitely,clear_preserve}. + * cselib.h (cselib_preserve_only_values): Remove retain argument. + * var-tracking.c (micro_operation): Move insn field before union. + Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type. + (struct variable_tracking_info_def): Remove n_mos field, change + mos into a vector of micro_operations. + (count_uses, count_uses_1, count_stores, count_with_sets): Remove. + (bb_stack_adjust_offset, log_op_type, add_uses, add_stores, + compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos + changing into a vector. + (add_with_sets): Likewise. Ensure MO_VAL_USE uops from add_stores + come before all other uops generated by add_stores. + (vt_add_function_parameters): Adjust for cselib_preserve_only_values + argument removal. + (vt_initialize): Likewise. Adjust for VTI (bb)->mos changing into + a vector. Run just one pass over the bbs instead of separate counting + and computation phase. + (vt_finalize): Free VTI (bb)->mos vector instead of array. + + PR debug/43329 + * tree-inline.c (remap_decls): Put old_var rather than origin_var + into *nonlocalized_list vector. + * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin + even if origin is non-NULL. + (gen_variable_die): Likewise. + (process_scope_var): Don't change origin. + (gen_decl_die): Likewise. + * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p + before adding new edges instead of after it, fix moving over + debug stmts. + +2010-03-11 David S. Miller + + * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple + of four. + * configure: Rebuild. + +2010-03-11 Martin Jambor + + PR tree-optimization/43257 + * tree.c (assign_assembler_name_if_neeeded): New function. + (free_lang_data_in_cgraph): Assembler name assignment moved to the + above new function. + * tree.h (assign_assembler_name_if_neeeded): Declare. + * cgraphunit.c (cgraph_analyze_function): Create an assembler name for + the function if needed. + +2010-03-11 Chris Demetriou + + * Makefile.in (stmp-int-hdrs): Make include/unwind.h, + include/stdint-gcc.h, and include/stdint.h world-readable. + +2010-03-11 Richard Guenther + + PR tree-optimization/43255 + * tree-vrp.c (process_assert_insertions_for): Do not insert + asserts for trivial conditions. + +2010-03-11 Andreas Krebbel + + PR tree-optimization/43280 + * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number + generation. Move calculation of size out of the if branch. + (find_bswap): Modify compare number generation. + +2010-03-11 Richard Guenther + + PR lto/43200 + * lto-streamer-in.c (maybe_fixup_decls): Simplify. + (input_gimple_stmt): Fixup handled component types during + operand read. Also fix up decls in ADDR_EXPRs. + +2010-03-10 Eric Botcazou + + * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32. + * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus. + +2010-03-10 Jan Hubicka + + PR c/43288 + * ipa.c (function_and_variable_visibility) Normalize COMMON bits. + * varasm.c (get_variable_section): Don't do that here... + (make_decl_rtl): ... and here. + (do_assemble_alias): Produce decl RTL. + (assemble_alias): Likewise. + +2010-03-10 Jakub Jelinek + + PR debug/43290 + * reg-notes.def (REG_CFA_SET_VDRAP): New note. + * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting + of fde->vdrap_reg. + (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note. + (based_loc_descr): Only express drap or vdrap regno based expressions + using DW_OP_fbreg when not optimizing. + * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing, + make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add + REG_CFA_SET_VDRAP note. + +2010-03-10 Alexander Monakov + + PR tree-optimization/43236 + * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one + error in calculation of base address in reverse iteration case. + (generate_builtin): Take number of latch executions if the statement + is in the latch. + +2010-03-10 Andrey Belevantsev + + PR middle-end/42859 + * tree-eh.c: Include pointer-set.h. + (lower_eh_dispatch): Filter out duplicate case labels and + remove the unneeded edge when the label is unused. Return + true when some edges are removed. + (execute_lower_eh_dispatch): When any lowering resulted in + removing an edge, also delete unreachable blocks. + +2010-03-10 Jakub Jelinek + + PR bootstrap/43287 + * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle + UNSPEC_MACHOPIC_OFFSET. + +2010-03-09 Andreas Schwab + + PR target/43294 + * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define. + (m68k_delegitimize_address): New function. + +2010-03-09 Jakub Jelinek + + PR debug/43299 + * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs. + + PR debug/43299 + * var-tracking.c (adjust_sets): New function. + (count_with_sets, add_with_sets): Use it. + (get_adjusted_src): New inline function. + (add_stores): Use it. + + PR debug/43304 + * var-tracking.c (vt_expand_loc_callback) : If dummy, + call cselib_dummy_expand_value_rtx_cb instead of + cselib_expand_value_rtx_cb. + + PR debug/43293 + * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h. + * config/i386/i386.c: Include debug.h and dwarf2out.h. + (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc + and .cfi_endproc around the pic thunks. + (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure + all queued unwind info register saves are saved before the call. + For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is + considered as sp-=4 for unwind info and the pop as sp+=4 which + also clobbers dest, but doesn't actually restore it. + + PR debug/43290 + * config/i386/i386.c (ix86_get_drap_rtx): Don't set + RTX_FRAME_RELATED_P. + +2010-03-09 Jie Zhang + + * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing + whitespaces in output template. + +2010-03-09 Jie Zhang + + * ira-lives.c (check_and_make_def_use_conflict): Don't fall + out array boundary. + +2010-03-08 Jakub Jelinek + + * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and + builtins.exp in a separate job. + +2010-03-08 Sebastian Pop + + * graphite-sese-to-poly.c (add_param_constraints): Use + lower_bound_in_type and upper_bound_in_type. + +2010-03-08 Sebastian Pop + + * graphite-sese-to-poly.c (add_param_constraints): Use sizetype + instead of unsigned_type_node. + +2010-03-08 Sebastian Pop + Reza Yazdani + + PR middle-end/43065 + * graphite-sese-to-poly.c (add_param_constraints): Insert bounds + on pointer type parameters. + +2010-03-08 Tobias Grosser + + PR middle-end/42644 + PR middle-end/42130 + * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also + handle conversions from pointer to integers. + (gcc_type_for_cloog_iv): Choose the smalles signed integer as an + induction variable, to be able to work with code generated by CLooG. + * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New. + (build_poly_scop): Bail out if we cannot codegen a loop. + +2010-03-08 Tobias Grosser + + * graphite-clast-to-gimple.c (translate_clast): Do not short-cut + code generation with gloog_error. + +2010-03-08 Sebastian Pop + + * sese.c (expand_scalar_variables_ssa_name): Add new argument for type. + Call fold_convert on all the returned values. + (expand_scalar_variables_expr): Pass to + expand_scalar_variables_ssa_name the type of the resulting expression. + +2010-03-08 Sebastian Pop + + * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed + ppl_min_for_le_pointset. + Use ppl_Pointset_Powerset_C_Polyhedron_minimize. + * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration. + +2010-03-08 Sebastian Pop + + * graphite-dependences.c (map_into_dep_poly): Removed. + (dependence_polyhedron_1): Use combine_context_id_scat. + +2010-03-08 Sebastian Pop + + * graphite-poly.h (struct poly_scattering): Add layout documentation. + (struct poly_bb): Same. + (combine_context_id_scat): New. + +2010-03-08 Sebastian Pop + + PR middle-end/42326 + * sese.c (name_defined_in_loop_p): Return false for default + definitions. + +2010-03-08 Sebastian Pop + + * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify + and clean up the logic. + +2010-03-08 Sebastian Pop + + * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove + early return. + +2010-03-08 Jakub Jelinek + + * var-tracking.c (remove_cselib_value_chains): Define only for + ENABLE_CHECKING. + (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs, + delete_slot_part, emit_notes_for_differences_1): Don't call + remove_cselib_value_chains here. + (set_slot_part, emit_notes_for_differences_2): Don't call + add_cselib_value_chains here. + (preserved_values): New vector. + (preserve_value): New function. + (add_uses, add_stores, vt_add_function_parameters): Use it + instead of cselib_preserve_value. + (changed_values_stack): New vector. + (check_changed_vars_0): New function. + (check_changed_vars_1, check_changed_vars_2): Use it. + (emit_notes_for_changes): Call set_dv_changed (*, false) on all + changed_values_stack VALUEs. + (vt_emit_notes): For all preserved_values call + add_cselib_value_chains. If ENABLE_CHECKING call + remove_cselib_value_chains before verifying value_chains is empty. + Initialize and free changed_values_stack. + (vt_initialize): Initialize preserved_values. + (vt_finalize): Free preserved_values. + +2010-03-08 Richard Guenther + + PR tree-optimization/43269 + * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom + region detection. + +2010-03-08 Martin Jambor + + * ipa-prop.h (struct ipa_param_descriptor): Removed the called field. + (ipa_is_param_called): Removed. + * ipa-prop.c (ipa_note_param_call): Do not set the called flag. + (ipa_print_node_params): Do not print the called flag. + (ipa_write_node_info): Do not stream the called flag. + (ipa_read_node_info): Likewise. + +2010-03-07 Jakub Jelinek + + PR debug/43176 + * Makefile.in (var-tracking.o): Depend on pointer-set.h. + * cselib.c (struct expand_value_data): Add dummy field. + (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize + dummy to false. + (cselib_dummy_expand_value_rtx_cb): New function. + (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate + any rtl. + * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype. + * var-tracking.c: Include pointer-set.h. + (variable): Change n_var_parts to char from int. Add + cur_loc_changed and in_changed_variables fields. + (variable_canonicalize): Remove. + (shared_var_p): New inline function. + (unshare_variable): Maintain cur_loc_changed and + in_changed_variables fields. If var was in changed_variables, + replace it there with new_var. Just copy cur_loc instead of + resetting it to something else. + (variable_union): Don't recompute cur_loc. Use shared_var_p. + (dataflow_set_union): Don't call variable_canonicalize. + (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids + of their DEBUG_EXPR_TREE_DECLs. + (canonicalize_loc_order_check): Verify that cur_loc is NULL + and in_changed_variables and cur_loc_changed is false. + (variable_merge_over_cur): Clear cur_loc, in_changed_variables + and cur_loc_changed. Don't update cur_loc here. + (variable_merge_over_src): Don't call variable_canonicalize. + (dataflow_set_preserve_mem_locs): Use shared_var_p. When + removing loc that is equal to cur_loc, clear cur_loc, + set cur_loc_changed and ensure variable_was_changed is called. + (dataflow_set_remove_mem_locs): Use shared_var_p. Only + compare pointers in cur_loc check, if it is equal to loc, + clear cur_loc and set cur_loc_changed. Don't recompute cur_loc here. + (variable_different_p): Remove compare_current_location argument, + don't compare cur_loc. + (dataflow_set_different_1): Adjust variable_different_p caller. + (variable_was_changed): If dv had some var in changed_variables + already, reset in_changed_variables flag for it and propagate + cur_loc_changed over to the new variable. On empty var + always set cur_loc_changed. Set in_changed_variables on whatever + var is added to changed_variables. + (set_slot_part): Clear cur_loc_changed and in_changed_variables. + Use shared_var_p. When removing loc that is equal to cur_loc, + clear cur_loc and set cur_loc_changed. If cur_loc is NULL at the + end, don't set it to something else, just call variable_was_changed. + (delete_slot_part): Use shared_var_p. When cur_loc equals to + loc being removed, clear cur_loc and set cur_loc_changed. + Set cur_loc_changed if all locations have been removed. + (struct expand_loc_callback_data): New type. + (vt_expand_loc_callback): Add dummy mode in which no rtxes are + allocated. Always create SUBREGs if simplify_subreg failed. + Prefer to use cur_loc, when that fails and still in + changed_variables (and seen first time) recompute it. Set + cur_loc_changed of variables which had to change cur_loc and + compute elcd->cur_loc_changed if any of the subexpressions used + had to change cur_loc. + (vt_expand_loc): Adjust to pass arguments in + expand_loc_callback_data structure. + (vt_expand_loc_dummy): New function. + (emitted_notes): New variable. + (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs + that weren't used for any other decl in current + emit_notes_for_changes call call vt_expand_loc_dummy to update + cur_loc. For -fno-var-tracking-assignments, set cur_loc to + first loc_chain location if NULL before. Always use just + cur_loc instead of first loc_chain location. When cur_loc_changed + is false, when not --enable-checking=rtl just don't emit any note. + When rtl checking, compute the note and assert it is the same + as previous note. Clear cur_loc_changed and in_changed_variables + at the end before removing from changed_variables. + (check_changed_vars_3): New function. + (emit_notes_for_changes): Traverse changed_vars to call + check_changed_vars_3 on each changed var. + (emit_notes_for_differences_1): Clear cur_loc_changed and + in_changed_variables. Recompute cur_loc of new_var. + (emit_notes_for_differences_2): Clear cur_loc if new variable appears. + (vt_emit_notes): Initialize and destroy emitted_notes. + +2010-03-07 Bernd Schmidt + + PR rtl-optimization/42220 + * regrename.c (scan_rtx) : + Use verify_reg_tracked to determine if we should use OP_OUT rather + than OP_INOUT. + (build_def_use): If we see an in-out operand for a register that we + know nothing about, treat is an output if possible, fail the block if + not. + +2010-03-06 Alexandre Oliva + + PR debug/42897 + * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed + permanently. + 2010-03-06 Alexandre Oliva PR debug/42897