OSDN Git Service

* configure.ac: Fix sparc GOTDATA_OP bug check.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index bd07364..0b2de21 100644 (file)
@@ -1,3 +1,614 @@
+2010-03-26  David S. Miller  <davem@davemloft.net>
+
+       * configure.ac: Fix sparc GOTDATA_OP bug check.
+       * configure: Rebuild.
+
+2010-03-26  Alan Modra  <amodra@gmail.com>
+
+       * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
+
+2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
+       TLS_SECTION_ASM_FLAG.
+
+2010-03-25  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/43511
+       * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
+       Clear first_function_block_is_cold.
+
+       PR c/43385
+       * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
+       argument if the argument is truth_value_p.
+
+2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       * config/rs6000/constraints.md: Update copyright year for my
+       changes.
+
+       PR target/43484
+       * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
+       used in reg+reg addressing, swap registers.
+
+2010-03-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/43293
+       * target.h (struct gcc_target): Add code_end hook.
+       * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
+       if not yet defined.
+       (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
+       * toplev.c (compile_file): Call targetm.asm_out.code_end
+       hook before unwind info/debug info output.
+       * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
+       * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
+       (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
+       * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
+       (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
+       * config/i386/i386.c (ix86_file_end): Renamed to...
+       (ix86_code_end): ... this.  Make static.  Don't call
+       file_end_indicate_exec_stack.  Emit unwind info using
+       final_start_function/final_end_function.
+       (darwin_x86_file_end): Remove.
+       (TARGET_ASM_CODE_END): Define.
+       * config/i386/i386.h (TARGET_ASM_FILE_END,
+       NEED_INDICATE_EXEC_STACK): Don't define.
+       * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
+       (TARGET_ASM_FILE_END): Define to darwin_file_end.
+       * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
+       * doc/tm.texi (TARGET_ASM_CODE_END): Document.
+
+       PR target/43498
+       * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
+       at the beginning and final_end_function at the end.
+       * config/s390/s390.c (s390_output_mi_thunk): Likewise.
+
+2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
+       and Sun as TLS syntax.
+       (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+       * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
+       (default_elf_asm_named_section): Use it.
+       * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
+       (i386_output_dwarf_dtprel): Likewise.
+       (output_addr_const_extra): Likewise.
+       (output_pic_addr_const): Lowercase @GOTTPOFF.
+       (output_addr_const_extra): Likewise.
+       (output_pic_addr_const): Lowercase @GOTNTPOFF.
+       (output_addr_const_extra): Likewise.
+       (output_pic_addr_const): Lowercase @INDNTPOFF.
+       (output_addr_const_extra): Likewise.
+       (output_pic_addr_const): Lowercase @NTPOFF.
+       (output_addr_const_extra): Likewise.
+       (output_pic_addr_const): Lowercase @TPOFF.
+       (output_addr_const_extra): Likewise.
+       * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase
+       @TLSGD.
+       (*tls_global_dynamic_64): Likewise.
+       (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
+       (*tls_local_dynamic_base_64): Lowercase @TLSLD.
+
+       * defaults.h (TLS_COMMON_ASM_OP): Provide default.
+       (ASM_OUTPUT_TLS_COMMON): Use it.
+       * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
+
+       PR target/38118
+       * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to
+       tm_file.
+       * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
+       * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
+       * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
+       * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
+       (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
+
+2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config/i386/i386.c (override_options): Don't accept
+       -mtls-dialect=sun any longer.
+       * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
+       * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
+       (*tls_local_dynamic_base_32_sun): Likewise.
+       * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
+
+2010-03-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/43508
+       * dwarf2out.c (mem_loc_descriptor): Don't ICE on
+       VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
+
+       PR debug/43479
+       * ira.c (adjust_cleared_regs): New function.
+       (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
+
+       PR debug/19192
+       PR debug/43479
+       * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
+       from gimple_block.
+       * expr.c (expand_expr_real): Restore previous
+       curr_insn_source_location and curr_insn_block after
+       expand_expr_real_1 call.
+       (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
+       instead of expand_expr_real_1.
+
+2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-optimization/43413
+       * ira-color.c (setup_allocno_available_regs_num): Count prohibited
+       hard regs too.
+
+2010-03-22  James E. Wilson  <wilson@codesourcery.com>
+
+       PR target/43348
+       * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
+       call_value_gp,sibcall_gp): Use 's' constraint not 'i'.
+
+2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (ix86_target_string): Fix a typo in comments.
+       Add -mfma.
+
+2010-03-22  Mike Stump  <mikestump@comcast.net>
+
+       PR target/23071
+       * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
+       Don't overly align based upon packed packed fields.
+
+2010-03-22  Jason Merrill  <jason@redhat.com>
+
+       * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
+       Use () rather than [], and move before the element type.
+
+2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * doc/configfiles.texi (Configuration Files): Removed
+       fixinc/Makefile*, intl/Makefile.*.
+       * doc/makefile.texi: Fixed markup.
+       Abstract from version control system used.
+       (Makefile): Removed obsolete gcc/java/parse.y example.
+       * doc/sourcebuild.texi: Likewise.
+       (Top Level): Added config, gnattools, libdecnumber, libgcc,
+       libgomp, libssp.
+       Removed fastjar.
+       (Miscellaneous Docs): Clarify location.
+       Added COPYING3, COPYING3.LIB.
+       (Front End Directory): Moved Make-lang.in entry to new
+       subsubsection.
+
+2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       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  <janis187@us.ibm.com>
+           Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * 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  <matz@suse.de>
+
+       PR middle-end/43475
+       * recog.c (validate_replace_rtx_group): Replace also in
+       REG_EQUAL and REG_EQUIV notes.
+
+2010-03-22  Richard Guenther  <rguenther@suse.de>
+
+       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  <rguenther@suse.de>
+
+       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  <jakub@redhat.com>
+
+       * 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  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR middle-end/42718
+       * pa.md (movmemsi): Set align to one if zero.
+       (movmemdi): Likewise.
+
+2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
+
+       PR target/42321
+       * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
+       with their corresponding prologue pushes.
+
+2010-03-20  Andrew Pinski  <pinskia@gmail.com>
+
+       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  <rguenther@suse.de>
+
+       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  <mikestump@comcast.net>
+
+       * 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  <andrew_pinski@caviumnetworks.com>
+
+       PR c/43211
+       * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was an
+       error.
+
+2010-03-19  Bernd Schmidt  <bernd.schmidt@codesourcery.com>
+
+       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) <case CONST_INT>: 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  <matz@suse.de>
+
+       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  <mjambor@suse.cz>
+
+       * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
+       and is_gimple_ip_invariant_address.
+
+2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+       Revert
+       2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+       * config/arm/arm.c (arm_override_options): Turn off
+       flag_dwarf2_cfi_asm for AAPCS variants.
+
+2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+       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  <matz@suse.de>
+
+       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  <rguenther@suse.de>
+
+       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  <davem@davemloft.net>
+
+       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 <fxcoudert@gcc.gnu.org>
+           Jack Howarth <howarth@bromo.med.uc.edu>
+
+       PR target/36399
+       * config/i386/i386.h: Fix ABI on darwin x86-32.
+
+2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
+
+       * 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  <jakub@redhat.com>
+
+       PR bootstrap/43399
+       * var-tracking.c (adjust_mems) <case POST_MODIFY>: 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  <aoliva@redhat.com>
+
+       PR debug/42873
+       * var-tracking.c (canonicalize_vars_star): New.
+       (dataflow_post_merge_adjust): Use it.
+
+2010-03-18  Jakub Jelinek  <jakub@redhat.com>
+
+       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) <case MO_VAL_LOC>: 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  <mjambor@suse.cz>
+
+       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  <hongjiu.lu@intel.com>
+
+       * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
+
+2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/43383
+       * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
+       for 32bit.
+
+2010-03-18  Michael Matz  <matz@suse.de>
+
+       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  <steven@gcc.gnu.org>
+           Eric Botcazou  <ebotcazou@adacore.com>
+
+       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  <matz@suse.de>
+
+       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  <bergner@vnet.ibm.com>
+
+       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  <pearly.zhao@oracle.com>
+
+       * common.opt (dumpdir): Remove redundant tab.
+
+2010-03-17  Martin Jambor  <mjambor@suse.cz>
+
+       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  <bernd.schmidt@analog.com>
+
+       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  <Ralf.Wildenhues@gmx.de>
+
+       * doc/extend.texi (Function Attributes): Rewrite unfinished
+       sentence in ms_abi documentation.
+
+2010-03-17  Alan Modra  <amodra@gmail.com>
+
+       * 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  <rth@redhat.com>
+
+       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  <aldyh@redhat.com>
+
+       * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
+       statements before splitting block.
+
+2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * 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  <rguenther@suse.de>
+
+       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  <aldyh@redhat.com>
+           Alexandre Oliva  <aoliva@redhat.com>
+
+       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  <jakub@redhat.com>
+
+       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  <aldyh@redhat.com>
+
+       * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
+       debug statements.
+
+2010-03-15  Jakub Jelinek  <jakub@redhat.com>
+
+       * 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  <matz@suse.de>
+
+       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  <rguenther@suse.de>
+
+       PR tree-optimization/43367
+       * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
+       elimination check.
+
 2010-03-15  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/43317