+2010-05-21 Jason Merrill <jason@redhat.com>
+
+ * tree-eh.c (cleanup_is_dead_in): New.
+ (lower_try_finally): Don't generate a dead cleanup region.
+ (lower_cleanup): Likewise.
+
+2010-05-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/44223
+ * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
+ unchain each use from the cyclic next_regno_use chain first.
+
+2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
+
+ * real: Do not include gmp.h, mpfr.h, and mpc.h.
+ (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
+ (real_value_negate, real_value_abs): New prototypes.
+ (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
+ * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
+ new include file for interface between MPFR and REAL_VALUE_TYPE.
+ * real.c: Include realmpfr.h.
+ (real_arithmetic2): Remove legacy function.
+ (real_value_negate): New.
+ (real_value_abs): New.
+ (mfpr_from_real, real_from_mpfr): Move from here...
+ * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
+ * builtins.c: Include realmpfr.h.
+ * fold-const.c: Include realmpfr.h.
+ (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
+ (fold_negate_const): Likewise.
+ (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
+ * toplev.c: Include realmpfr.h.
+ * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
+ and real_value_negate.
+ * fixed-value.c (check_real_for_fixed_mode): Likewise.
+ * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
+ (vfp3_const_double_index): Likewise.
+ (arm_print_operand): Likewise.
+ * Makefile.in: Update dependencies.
+
+2010-05-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
+
+ * config/s390/s390.c (override_options): Increase the default
+ of max-completely-peel-times.
+
+2010-05-21 Julian Brown <julian@codesourcery.com>
+ Mark Mitchell <mark@codesourcery.com>
+
+ * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
+ sibling calls for Thumb-1.
+ * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
+ * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
+ Thumb-2.
+ (*call_insn, *call_value_insn): Don't use for Thumb-2.
+ (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
+ for Thumb-2.
+ (return): New expander.
+ (*arm_return): New name for ARM return insn.
+ * config/arm/thumb2.md (*thumb2_return): New insn pattern.
+
+2010-05-19 Joel Sherrill <joel.sherrill@oarcorp.com>
+
+ * config.gcc (sparc64-*-rtems*): New target.
+
+2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree.c (build_function_decl_skip_args): Fix grammar.
+ (build_function_type_list_1): Fix typos, adjust formatting.
+
+2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
+
+ * tree.h: Include real.h and fixed-value.h as basic datatypes.
+ * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
+ tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
+ tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
+ tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
+ genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
+ tree-pretty-print.c, tree-loop-distribution.c,
+ tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
+ tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
+ tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
+ tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
+ tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
+ tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
+ tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
+ tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
+ tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
+ tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
+ genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
+ tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
+ gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
+ tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
+ tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
+ store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
+ tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
+ tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
+ tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
+ tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
+ fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
+ tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
+ config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
+ config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
+ config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
+ config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
+ config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
+ config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
+ config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
+ config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
+ config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
+ config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
+ config/score/score7.c, config/score/score.c, config/arm/arm.c,
+ config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
+ config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
+ config/bfin/bfin.c:
+ Clean up redundant includes.
+ * Makefile.in: Update accordingly.
+
+2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
+
+ PR middle-end/44204
+ * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
+ statement has no arguments.
+
+2010-05-21 Kai Tietz <kai.tietz@onevision.com>
+
+ PR/44139
+ * varasm.c (emutls_decl): Merge attributes to new decl.
+
+2010-05-21 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR middle-end/44101
+ * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
+ around the uniquized constructor if its type requires a conversion.
+
+2010-05-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/44205
+ * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
+ at -O0 goto_locus of any of the incoming edges differs from
+ goto_locus of outgoing edge, or gimple_location of any of the
+ labels differs.
+
+2009-09-14 Vladimir Makarov <vmakarov@redhat.com>
+
+ * ira.c (ira_non_ordered_class_hard_regs): Define.
+ (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
+ * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
+ * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
+ cost of unaligned hard regs when allocating multi-reg pseudos.
+
+2010-05-20 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
+ * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
+ for TARGET_NO_FLOAT.
+ * config/mips/mips.c (mips_file_start): Expand conditional expression
+ into "if" statements. Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
+ (mips_override_options): Move -mno-float override -msoft-float and
+ -mhard-float.
+ * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
+ Condition(TARGET_SUPPORTS_NO_FLOAT).
+ * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
+ __mips_no_float here.
+ (SUBTARGET_OVERRIDE_OPTIONS): Delete.
+ (TARGET_SUPPORTS_NO_FLOAT): Define.
+ * config/mips/sdemtk.opt: Delete.
+
+2010-05-20 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * ipa-prop.c (compute_complex_ancestor_jump_func): Bail
+ out if !cond.
+
+2010-05-20 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/43733
+ * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+ * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
+ instead of sahf only for 64bit targets.
+
+2010-05-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/44178
+ * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
+ setup_ref_regs for DEBUG_INSNs.
+
+2010-05-20 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/44197
+ * varpool.c (varpool_remove_node): Handle in-varpool aliases.
+
+2010-05-20 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ PR bootstrap/43870
+ * df-scan.c (df_ref_compare): Stabilize sort.
+
+2010-05-20 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
+ argument. Don't use DW_OP_piece if offset is non-zero,
+ put offset into second DW_OP_bit_piece argument.
+ (dw_sra_loc_expr): Adjust callers. For memory expressions
+ compute offset.
+
+2010-05-20 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/44202
+ * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
+ settings for 16-bit-constant "addo" alternative.
+
+2010-05-19 James E. Wilson <wilson@codesourcery.com>
+
+ * config/mips/mips-dsp.md (add<DSPV:mode>3,
+ mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
+
+ PR target/43764
+ * mips.c (mips_call_expr_from_insn): New arg second_call. Set it.
+ (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
+ Use it.
+
+2010-05-19 Joseph Myers <joseph@codesourcery.com>
+
+ * diagnostic.c (FLOAT, FFS): Don't undefine.
+ * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
+ * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
+ include ordering.
+
+2010-05-19 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * combine.c (propagate_for_debug): Call make_compound_operation
+ on the source value.
+ (try_combine): When implementing a split chosen by find_split_point,
+ either copy i2src or set it to null. Assert that i2src is not null
+ before substituting into CALL_INSN_FUNCTION_USAGE.
+
+2010-05-19 Anatoly Sokolov <aesok@post.ru>
+
+ * double-int.h (double_int_ior): New function.
+ * tree.h (build_int_cst_wide_type): Remove.
+ * tree.c (build_int_cst_wide_type): Remove.
+ * fold-const.c (native_interpret_int): Use double_int_to_tree instead
+ of build_int_cst_wide_type.
+ * stor-layout.c (set_sizetype): (Ditto.).
+ * dojump.c (do_jump): Use build_int_cstu instead of
+ build_int_cst_wide_type.
+
+2010-05-19 Eric Botcazou <ebotcazou@adacore.com>
+
+ * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
+ * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
+ (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
+ * gimplify.c: (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
+ TARGET_EXPR nodes, but only once, if instructed to do so. Do not
+ propagate the 'data' argument to copy_tree_r.
+ (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
+ Propagate 'data' argument to walk_tree.
+ (copy_if_shared): New function.
+ (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
+ (unmark_visited): New function.
+ (unshare_body): Call copy_if_shared instead of doing it manually.
+ (unvisit_body): Call unmark_visited instead of doing it manually.
+
+2010-05-19 Nathan Froyd <froydnj@codesourcery.com>
+
+ * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
+ (hook_tree_tree_int_treep_bool_null): ...this. Update signature.
+ * hooks.c: Likewise.
+ * target-def.h (TARGET_FOLD_BUILTIN): Define to
+ hook_tree_tree_int_treep_bool_null.
+ * target.h: (struct gcc_target): Update signature of fold_builtin
+ field.
+ * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
+ * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
+ instead of the call expression.
+ (fold_builtin_call_array): Pass n and argarray directly.
+ (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
+ consing a list.
+ * config/alpha/alpha.c (alpha_fold_builtin): Update signature. Lift
+ MAX_ARGS check out of the loop. Delete declaration of `arity', declare
+ `i' and use it in place of `arity'.
+ * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
+ Dereference `args' directly.
+ * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
+
+2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * doc/sourcebuild.texi (Effective-Target Keywords): Document
+ 3dnow, sse3, sse2.
+ (Directives): Document optional dg-require-effective-target
+ selector.
+
+2010-05-19 Richard Guenther <rguenther@suse.de>
+
+ PR lto/44196
+ * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
+
+2010-05-19 Richard Guenther <rguenther@suse.de>
+
+ * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
+ * common.opt (fwhopr=): New.
+ * opts.c (common_handle_option): Handle OPT_fwhopr.
+ * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
+ * collect2.c (main): Match -fwhopr*.
+ * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
+ Execute ltrans stage in parallel when jobs is bigger than 1.
+
+2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
+ pentiumpro on Solaris 8/x86 with Sun as.
+ * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
+ hidden alias bug.
+ (gcc_cv_as_ix86_quad): Check for .quad directive.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+ * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
+
+2010-05-19 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
+ also for indirect edges. Actual printing moved...
+ (ipa_print_node_jump_functions_for_edge): ...here.
+ (ipa_compute_jump_functions): Renamed to
+ ipa_compute_jump_functions_for_edge and made static.
+ (ipa_compute_jump_functions): New function.
+ (make_edge_direct_to_target): Check if the number of arguments on
+ the newly direct edge is the same as the number of parametrs of
+ the callee.
+ * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
+ ipa_compute_jump_functions. Call ipa_analyze_params_uses.
+ * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
+ analysis functions unconditionally, call the new
+ ipa_analyze_params_uses on the node instead of every edge.
+
+2010-05-19 Christian Borntraeger <borntraeger@de.ibm.com>
+
+ * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
+ to tree.
+ (dump_mem_ref): Adopt debug code to handle a tree as step. This
+ also checks for a constant int vs. non-constant but
+ loop-invariant steps.
+ (find_or_create_group): Change the sort algorithm to only consider
+ steps that are constant ints.
+ (idx_analyze_ref): Adopt code to handle a tree instead of a
+ HOST_WIDE_INT for step.
+ (gather_memory_references_ref): Handle tree instead of int and be
+ prepared to see a NULL_TREE.
+ (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
+ prefetches if the step cannot be calculated at compile time.
+ (issue_prefetch_ref): Issue prefetches for non-constant but
+ loop-invariant steps.
+
+2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
+
+ Revert:
+ 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree.h (build_call_list): Remove.
+ * tree.c (build_call_list): Remove.
+
+2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree.h (build_call_list): Remove.
+ * tree.c (build_call_list): Remove.
+
+2010-05-18 Jan Hubicka <jh@suse.cz>
+
+ * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
+
+2010-05-18 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/43332
+ * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
+
+2010-05-18 Anatoly Sokolov <aesok@post.ru>
+
+ * tree.h (build_int_cstu): Implement as static inline.
+ * tree.c (build_int_cstu): Remove function.
+ (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
+ sign extended.
+
+2010-05-18 Richard Guenther <rguenther@suse.de>
+
+ PR lto/44143
+ * lto-wrapper.c (verbose): New variable. Initialize from -v.
+ (debug): Initialize from -save-temps.
+ (collect_execute): Print command-line when verbose.
+ (run_gcc): Always use COLLECT_GCC_OPTIONS. Use fork_execute
+ for ltrans invocation. Produce -dumpbase flag again.
+ (process_args): Remove.
+ (main): Simplify.
+ * collect2.c (maybe_run_lto_and_relink): Only pass object
+ files to lto-wrapper.
+ * gcc.c (LINK_COMMAND_SPEC): Likewise.
+
+2010-05-18 Jan Hubicka <jh@suse.cz>
+
+ * opts.c (decode_options): Do not disable whopr at ipa_cp.
+ * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
+
+2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR lto/44184
+ * lto-streamer-out.c (output_gimple_stmt): Output number of labels
+ in a GIMPLE_ASM.
+ * lto-streamer-in.c (input_gimple_stmt): Read number of labels
+ in a GIMPLE_ASM.
+
+2010-05-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/41371
+ * var-tracking.c (find_loc_in_1pdv): Add a few checks from
+ rtx_equal_p inline.
+
+2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
+
+ * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
+ lto-macho as lto_binary_reader.
+
+ * darwin.c (darwin_asm_named_section): Do not add assembler comment
+ after .section directive; just print it before the directive instead.
+
+2010-05-17 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (cgraph_create_virtual_clone): Only check
+ versionable_function_p when not in wpa and checking is enabled.
+ * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
+ there are no more functions to materialize.
+
+2010-05-17 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
+ * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
+ New functions.
+ (output_cgraph): Call output_cgraph_opt_summary.
+ (input_cgrpah): Call input_cgraph_opt_summary.
+ (output_cgraph_opt_summary_p, output_node_opt_summary,
+ input_node_opt_summary, input_cgraph_opt_section): New functions.
+ * lto-section-in.c (lto_section_name): Add cgraphopt.
+ * tree-inline.c (tree_function_versioning): Handle parm_num.
+ * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
+ * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
+
+2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
+
+ * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
+ * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
+ the insn to prefetch ratio heuristic to loops with known trip count.
+
+2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
+
+ * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
+ (schedule_prefetches): Do not generate a prefetch if the unroll factor
+ is far from what is required by the prefetch.
+
+2010-05-17 Jan Hubicka <jh@suse.cz>
+
+ * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
+ (ipcp_estimate_growth): Likewise.
+ (ipcp_const_param_count): Likewise.
+ (ipcp_insert_stage): Likewise.
+ * ipa-prop.c (visit_load_for_mod_analysis): New function.
+ (visit_store_addr_for_mod_analysis): Set used flag.
+ (ipa_detect_param_modifications): Set used flag for SSE params;
+ update use of walk_stmt_load_store_addr_ops.
+ (ipa_print_node_params): Print used flag.
+ (ipa_write_node_info): Stream used flag.
+ (ipa_read_node_info): Likewise.
+ * ipa-prop.h (struct ipa_param_descriptor): Add used field.
+ (ipa_is_param_used): New function.
+ (lto_ipa_fixup_call_notes): Remove unused declaration.
+
+2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR target/44074
+ * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+ * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
+ !HAVE_AS_IX86_REP_LOCK_PREFIX.
+ Don't emit whitespace.
+ * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
+ (*rep_movsi): Likewise.
+ (*rep_movsi_rex64): Likewise.
+ (*rep_movqi): Likewise.
+ (*rep_movqi_rex64): Likewise.
+ (*rep_stosdi_rex64): Likewise.
+ (*rep_stossi): Likewise.
+ (*rep_stossi_rex64): Likewise.
+ (*rep_stosqi): Likewise.
+ (*rep_stosqi_rex64): Likewise.
+ (*cmpstrnqi_nz_1): Use {%;} after repz.
+ (*cmpstrnqi_nz_rex_1): Likewise.
+ (*cmpstrnqi_1): Likewise.
+ (*cmpstrnqi_rex_1): Likewise.
+ (*strlenqi_1): Use {%;} after repnz.
+ (*strlenqi_rex_1): Likewise.
+ * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
+ (*sync_compare_and_swap<mode>): Likewise.
+ (sync_double_compare_and_swap<mode>): Likewise.
+ (*sync_double_compare_and_swapdi_pic): Likewise.
+ (sync_old_add<mode>): Likewise.
+ (sync_add<mode>): Likewise.
+ (sync_sub<mode>): Likewise.
+ (sync_<code><mode>): Likewise.
+
+2010-05-17 Martin Jambor <mjambor@suse.cz>
+
+ * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
+ otr_token and polymorphic.
+ * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
+ (cgraph_clone_edge): Copy the above fields.
+ * tree.c (get_binfo_at_offset): New function.
+ * tree.h (get_binfo_at_offset): Declare.
+ * ipa-prop.h (enum jump_func_type): Added known_type jump function
+ type, reordered items, updated comments.
+ (union jump_func_value): Added base_type field, reordered fields.
+ (enum ipa_lattice_type): Moved down in the file.
+ (struct ipa_param_descriptor): New field polymorphic.
+ (ipa_is_param_polymorphic): New function.
+ * ipa-prop.c: Include gimple.h and gimple-fold.h.
+ (ipa_print_node_jump_functions): Print known type jump functions.
+ (compute_complex_pass_through): Renamed to...
+ (compute_complex_assign_jump_func): this.
+ (compute_complex_ancestor_jump_func): New function.
+ (compute_known_type_jump_func): Likewise.
+ (compute_scalar_jump_functions): Create known type and complex ancestor
+ jump functions.
+ (ipa_note_param_call): New parameter polymorphic, set the corresponding
+ flag in the call note accordingly.
+ (ipa_analyze_call_uses): Renamed to...
+ (ipa_analyze_indirect_call_uses): this. New parameter target, define
+ variable var only in the block where it is used.
+ (ipa_analyze_virtual_call_uses): New function.
+ (ipa_analyze_call_uses): Likewise.
+ (combine_known_type_and_ancestor_jfs): Likewise.
+ (update_jump_functions_after_inlining): Implemented handling of a
+ number of new jump function types combination.
+ (print_edge_addition_message): Removed.
+ (make_edge_direct_to_target): New function.
+ (try_make_edge_direct_simple_call): Likewise.
+ (try_make_edge_direct_virtual_call): Likewise.
+ (update_call_notes_after_inlining): Renamed to...
+ (update_indirect_edges_after_inlining): this. Moved edge creation for
+ indirect calls to try_make_edge_direct_simple_call, also calls
+ try_make_edge_direct_virtual_call for virtual calls.
+ (ipa_print_node_params): Changed the header message.
+ (ipa_write_jump_function): Stream also known type jump functions.
+ (ipa_read_jump_function): Likewise.
+ (ipa_write_indirect_edge_info): Stream new fields in
+ cgraph_indirect_call_info.
+ (ipa_read_indirect_edge_info): Likewise.
+ * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
+ GIMPLE_FOLD_H.
+
+2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
+
+2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree.h (CALL_EXPR_ARGS): Delete.
+ (call_expr_arglist): Delete.
+ * tree.c (call_expr_arglist): Delete.
+ * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
+ targetm.fold_builtin.
+ * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
+ Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
+ * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
+ arglist parameter. Use CALL_EXPR_ARG.
+ (picochip_expand_builtin_3op): Likewise.
+ (picochip_expand_builtin_2opvoid): Likewise.
+ (picochip_expand_array_get): Likewise.
+ (picochip_expand_array_put): Likewise.
+ (picochip_expand_array_testport): Likewise.
+ (picochip_expand_builtin): Don't call CALL_EXPR_ARGS. Pass exp
+ rather than arglist.
+ * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
+ CALL_EXPR_ARGS.
+ * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
+ than TREE_VALUE and TREE_CHAIN.
+ * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
+ * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
+ the arglist.
+
+2010-05-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/42347
+ * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
+ to have no fallthru edge.
+
+ PR middle-end/44102
+ * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
+ bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
+ mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
+ add BARRIER after previous bb if needed.
+
+2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree.c (build_function_type_list_1): Remove bogus assert condition.
+
+2010-05-17 Alan Modra <amodra@gmail.com>
+
+ * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
+ unnecessary prototype. Replace copy_r12 and copy_r11 flag params
+ with copy_reg rtx param.
+ (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
+ Correct cases where code for ABI_V4 did not initialise the reg
+ used to access frame. Also leave frame_reg_rtx as sp for large
+ frames that save no regs.
+
+2010-05-17 Martin Jambor <mjambor@suse.cz>
+
+ PR middle-end/44133
+ * tree-sra.c (create_access_replacement): New parameter rename, mark
+ the replaement for renaming only when it is true.
+ (get_access_replacement): Pass true in the rename parameter of
+ create_access_replacement.
+ (get_unrenamed_access_replacement): New function.
+ (replace_uses_with_default_def_ssa_name): New parameter racc, get the
+ replacement declaration from it.
+
+2010-05-17 Bernd Schmidt <bernds@codesourcery.com>
+
+ * function.c (try_fit_stack_local, add_frame_space): New static
+ functions.
+ (assign_stack_local_1): Use them. Look for opportunities to use
+ space previously wasted on alignment.
+ * function.h (struct frame_space): New.
+ (struct rtl_data): Add FRAME_SPACE_LIST member.
+ * reload1.c (something_was_spilled): New static variable.
+ (alter_reg): Set it.
+ (reload): Test it in addition to testing if the frame size changed.
+
+2010-05-17 Christian Borntraeger <borntraeger@de.ibm.com>
+
+ * config/s390/s390.c: Define sane prefetch settings and activate
+ flag_prefetch_loop_arrays on -O3.
+ * config/s390/s390.h: Declare that read can use write prefetch.
+
+2010-05-17 Jakub Jelinek <jakub@redhat.com>
+
+ * lto-streamer-out.c (lto_output): Fix --enable-checking=release
+ build.
+
+2010-05-16 Jan Hubicka <jh@suse.cz>
+
+ * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
+ function body; do not check stdarg field of struct function.
+
+2010-05-16 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (dump_cgraph_node): Dump versionable flag.
+ * cgraph.h (cgraph_local_info): Add versionable flag.
+ * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
+ (ipcp_versionable_function_p): Use it.
+ * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
+ versionable flag.
+
+2010-05-16 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (cgraph_clone_node): Take decl argument and insert
+ clone into hash when it is different from orig.
+ (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
+ * cgraph.h (cgraph_clone_node): Update prototype.
+ * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
+ (lto_cgraph_encoder_delete): Delete body map.
+ (lto_cgraph_encoder_size): Move to header.
+ (lto_cgraph_encoder_encode_body_p,
+ lto_set_cgraph_encoder_encode_body): New.
+ (lto_output_node): Do not take written_decls argument; output clone_of
+ pointer.
+ (add_node_to): Add include_body_argument; call
+ lto_set_cgraph_encoder_encode_body on master of the clone.
+ (add_references): Update use of add_node_to.
+ (compute_ltrans_boundary): Likewise.
+ (output_cgraph): Do not create written_decls bitmap.
+ (input_node): Take nodes argument; stream in clone_of correctly.
+ (input_cgraph_1): Update use of input_node.
+ * lto-streamer-out.c (lto_output): Use encoder info to decide
+ what bodies to output.
+ * ipa-inline.c (cgraph_clone_inlined_nodes,
+ cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
+ * lto-streamer.h (lto_cgraph_encoder_d): Add body.
+ (lto_cgraph_encoder_size): Define here.
+ (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
+ Declare.
+
+2010-05-16 Richard Guenther <rguenther@suse.de>
+
+ * doc/invoke.texi (-fipa-struct-reorg): Do not mention
+ -fipa-type-escape.
+ * ipa-type-escape.c (gate_type_escape_vars): Run when
+ -fipa-struct-reorg runs.
+ * opts.c (decode_options): Do not unset flag_ipa_type_escape.
+ * common.opt (fipa-type-escape): Remove.
+
+2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
+ (decode_options): Likewise.
+ * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
+
+2010-05-16 Jan Hubicka <jh@suse.cz>
+
+ * ipa.c (function_and_variable_visibility): Also bring local all
+ aliases.
+
+2010-05-16 Richard Guenther <rguenther@suse.de>
+
+ * alias.c (nonoverlapping_memrefs_p): Remove use of
+ IPA type-escape information.
+
+2010-05-16 Joseph Myers <joseph@codesourcery.com>
+
+ * c-common.c (c_common_reswords): Add _Static_assert for C.
+ * c-parser.c (c_token_starts_declaration,
+ c_parser_next_token_starts_declaration,
+ c_parser_static_assert_declaration_no_semi,
+ c_parser_static_assert_declaration): New.
+ (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
+ Handle static assertions if static_assert_ok.
+ (c_parser_external_declaration, c_parser_declaration_or_fndef,
+ c_parser_compound_statement_nostart, c_parser_label,
+ c_parser_for_statement, c_parser_objc_methodprotolist,
+ c_parser_omp_for_loop): All callers of
+ c_parser_declaration_or_fndef changed.
+ (c_parser_struct_declaration): Handle static assertions.
+ (c_parser_compound_statement_nostart): Use
+ c_parser_next_token_starts_declaration and
+ c_token_starts_declaration to detect start of declarations.
+ (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
+ Likewise.
+
+2010-05-16 Anatoly Sokolov <aesok@post.ru>
+
+ * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
+ LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
+ * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
+ TARGET_FUNCTION_VALUE_REGNO_P): Define.
+ (mmix_function_outgoing_value): Rename to...
+ (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
+ (mmix_function_value_regno_p): Make static.
+ (mmix_libcall_value): New function.
+ * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
+ mmix_function_value_regno_p): Remove declaration.
+
+2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
+ BUILT_IN_ALLOCA if stack checking is enabled.
+
+2010-05-16 Richard Guenther <rguenther@suse.de>
+
+ * var-tracking.c (vars_copy_1): Inline ...
+ (vars_copy): ... here. Use FOR_EACH_HTAB_ELEMENT.
+ (variable_union): Use FOR_EACH_HTAB_ELEMENT. Merge asserts.
+ (variable_merge_over_cur): Adjust. Merge asserts.
+ (variable_merge_over_src): Likewise.
+ (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
+ (variable_post_merge_new_vals): Merge asserts.
+ (variable_post_merge_perm_vals): Likewise.
+ (find_mem_expr_in_1pdv): Likewise.
+ (dataflow_set_different_value): Remove.
+ (onepart_variable_different_p): Merge asserts.
+ (variable_different_p): Likewise.
+ (dataflow_set_different_1): Inline ...
+ (dataflow_set_different): ... here. Use FOR_EACH_HTAB_ELEMENT.
+ (emit_notes_for_differences_1): Merge asserts.
+
+2010-05-16 Richard Guenther <rguenther@suse.de>
+
+ * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
+ * optabs.c (libfunc_decl_hash): Likewise.
+ * varasm.c (emutls_decl): Likewise.
+
+2010-05-16 Steven Bosscher <steven@gcc.gnu.org>
+
+ * c-decl.c: Don't include gimple.h.
+ (merge_decls): Do not copy gimple_body.
+
+2010-05-15 Jason Merrill <jason@redhat.com>
+
+ * c.opt: Add -fnothrow-opt.
+
+2010-05-15 Jan Hubicka <jh@suse.cz>
+
+ * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
+ analyzed.
+ * passes.c (ipa_write_summaries): Write all analyzed nodes.
+
+2010-05-15 Steven Bosscher <steven@gcc.gnu.org>
+
+ * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
+ * Makefile.in: Add it.
+ Fix all other Makefile dependencies for changes below.
+ * tree.h: Include it instead of defining VEC primitives here.
+ * gimple.h: Likewise.
+ * rtl.h: Likewise.
+ * tree-inline.h: Inlclude vecir.h instead of gimple.h.
+ * except.h: Include vecir.h, break dependence on tree.h.
+
+ * gimplify.c (append_to_statement_list_1, append_to_statement_list):
+ Move from here...
+ * tree-iterator.c: ...to here.
+ * tree-iterator.h: Fix file introduction comment. Add extern markers.
+
+ * c-lex.c: Include fixed-value.h instead of rtl.h. Do not include
+ tm_p.h.
+ * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
+ * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
+ integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
+ tree-mudflap.h, and target.h.
+ * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
+ predict.h, tree-inline.h, gimple.h, and langhooks.h.
+ * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
+ Add FIXME for why gimple.h is still included (should be unnecessary
+ since GCC 4.5 gimplification unit-at-a-time).
+ * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
+ * c-pragma.c: Add FIXME for why function.h needs to be included just
+ for cfun, at front-end level.
+ Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
+ Do not include ggc.h, but include vecprim.h for VEC(char).
+ * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
+ Explain why target.h is included.
+ * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
+ Explain why gimple.h is included.
+ * c-ppoutput.c: Do not include tm.h.
+ * c-common.c: Do not include gimple.h. Explain why expr.h is included.
+ * c-parses.c: Explain why rtl.h is included, and that this (and only
+ this) is also why tm.h must be included.
+ Do not include except.h.
+ * c-lang.c: Do not include ggc.h.
+
+2010-05-15 Uros Bizjak <ubizjak@gmail.com>
+
+ * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
+
+2010-05-15 Joseph Myers <joseph@codesourcery.com>
+
+ * c-decl.c (grokfield): Allow typedefs for anonymous structs and
+ unions by default if those structs and unions have no tags. Do
+ not condition anonymous struct and unions handling on flag_iso.
+ Allow anonymous structs and unions for C1X.
+ (finish_struct): Do not diagnose lack of named fields when
+ anonymous structs and unions present for C1X. Accept flexible
+ array members in structure with anonymous structs or unions but no
+ directly named fields.
+ * doc/extend.texi (Unnamed Fields): Update.
+
+2010-05-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gimple.h (compare_field_offset): Rename into...
+ (gimple_compare_field_offset): ...this.
+ * gimple.c (compare_field_offset): Rename into...
+ (gimple_compare_field_offset): ...this. Compare the full access if
+ the offset is self-referential.
+ (gimple_types_compatible_p): Adjust for above renaming.
+ * lto-streamer-in.c (input_gimple_stmt): Likewise. Also compare the
+ DECL_NONADDRESSABLE_P flag of fields before merging them.
+
+2010-05-15 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree.h (ctor_to_list): Delete.
+ * tree.c (ctor_to_list): Delete.
+
+2010-05-15 Jan Hubicka <jh@suse.cz>
+
+ * ipa-reference.c: Include toplev.h
+ (is_proper_for_analysis): Only add to all_module_statics
+ if it is allocated.
+ (write_node_summary_p, stream_out_bitmap,
+ ipa_reference_write_optimization_summary,
+ ipa_reference_read_optimization_summary): New.
+ (struct ipa_opt_pass_d pass_ipa_reference): Add
+ optimization summary streaming.
+ * lto-cgraph.c (referenced_from_this_partition_p,
+ reachable_from_this_partition_p): New functions.
+ * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
+ call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
+ * opts.c (decode_options): Enable ipa_reference.
+ * Makefile.in (ipa-reference.o): Add toplev.h dependency.
+ * lto-streamer.h (referenced_from_this_partition_p,
+ reachable_from_this_partition_p): Declare.
+
+2010-05-15 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/44038
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
+ taking the address of a V_C_E of a constant.
+
+2010-05-14 Jan Hubicka <jh@suse.cz>
+
+ * tree.h (memory_identifier_string): Remove.
+ * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
+ (ipa_reference_global_vars_info_d): Remove statics_not_read and
+ statics_not_written.
+ (ipa_reference_optimization_summary_d): New structure.
+ (ipa_reference_optimization_summary_t): New type and vector.
+ (ipa_reference_vars_info_d): Embedd structures instead of using
+ pointers.
+ (reference_vars_to_consider): Remove out of GGC space.
+ (module_statics_escape): Remove.
+ (global_info_obstack): Rename to ...
+ (optimization_summary_obstack): ... this one.
+ (initialization_status_t): Remove.
+ (memory_identifier_string): Remove.
+ (get_reference_vars_info): Fix indenting.
+ (set_reference_vars_info): Likewise.
+ (get_reference_optimization_summary): New.
+ (set_reference_optimization_summary): New.
+ (get_global_reference_vars_info): Remove.
+ (ipa_reference_get_read_global): Remove.
+ (ipa_reference_get_written_global): Remove.
+ (ipa_reference_get_not_read_global): Update.
+ (ipa_reference_get_not_written_global): Update.
+ (is_proper_for_analysis): Outlaw addressable.
+ (propagate_bits): Update for new datastructures.
+ (analyze_variable): Remove.
+ (init_function_info): Update for new datastructures.
+ (clean_function_local_data): Remove.
+ (clean_function): Remove.
+ (copy_global_bitmap): Use optimizations_summary_obstack.
+ (duplicate_node_data): Duplicate optimization summary only.
+ (remove_node_data): Remove optimization summary only.
+ (generate_summary): Do not analyze variables; do not compute
+ module_statics_escape; do not prune solutions by it.
+ (read_write_all_from_decl): Fix typos in comments.
+ (propagate): Doscover readonly and nonaddressable first;
+ update for new datastructures; share global bitmaps.
+ * ipa-reference.h (ipa_reference_get_read_global,
+ ipa_reference_get_written_global): Remove.
+ * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
+ * Makefile.in: Remove ipa-refereference from GT files.
+
+2010-05-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/44112
+ * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
+ for all SYMBOL_REF_DECLs.
+
+2010-05-14 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
+ (varpool_all_refs_explicit_p): New inline function.
+ * ipa-reference.c: Update comment.
+ (module_statics_written): Remove.
+ (get_static_decl): Remove.
+ (ipa_init): Do not initialize module_statics_written.
+ (analyze_function): Likewise.
+ (generate_summary): Likewise; do not compute module_statics_readonly
+ and do not update variable flags.
+ (propagate): Call ipa_discover_readonly_nonaddressable_vars.
+ * ipa.c: Inlucde flags.h
+ (cgraph_local_node_p): New.
+ (cgraph_remove_unreachable_nodes): Return early when not optimizing;
+ promote functions to local.
+ (ipa_discover_readonly_nonaddressable_vars): New function.
+ (function_and_variable_visibility): Use cgraph_local_node_p.
+ * varpool.c (varpool_finalize_decl): Set force_output for
+ DECL_PRESERVE_P vars.
+
+2010-05-14 Jan Hubicka <jh@suse.cz>
+
+ * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
+
+2010-05-14 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/44119
+ * tree-ssa-pre.c (eliminate): Properly mark replacement of
+ a PHI node necessary.
+
+2010-05-14 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
+
+2010-05-14 Jason Merrill <jason@redhat.com>
+
+ PR c++/44127
+ * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
+ (gimple_call_set_nothrow): New.
+ * gimple.c (gimple_build_call_from_tree): Call it.
+ (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
+
+ PR c++/44127
+ * gimplify.c (gimplify_seq_add_stmt): No longer static.
+ * gimple.h: Declare it.
+ * gimple.c (gimple_build_eh_filter): No ops.
+
+2010-05-14 Jan Hubicka <jh@suse.cz>
+
+ * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
+ nodes already in queue.
+ (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
+ re-enqueueing node.
+
+2010-05-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/44136
+ * cfgexpand.c (expand_debug_expr): If non-memory op0
+ has BLKmode, return NULL.
+
2010-05-14 Harsha Jagasia <harsha.jagasia@amd.com>
* config.gcc: Add support for --with-cpu option for bdver1.
Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
to emit packed xor instead of packed double/packed integer
xor for SSE and AVX when moving a zero value.
- * config/i386/sse.md: Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
- to emit movaps instead of movapd/movdqa for SSE and AVX.
- Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single
- logical operations i.e and, or and xor instead of packed double logical
- operations for SSE and AVX.
- * config/i386/i386-c.c:
- (ix86_target_macros_internal): Add PROCESSOR_BDVER1.
+ * config/i386/sse.md: Add check for
+ TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
+ movapd/movdqa for SSE and AVX.
+ Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
+ single logical operations i.e and, or and xor instead of packed double
+ logical operations for SSE and AVX.
+ * config/i386/i386-c.c (ix86_target_macros_internal):
+ Add PROCESSOR_BDVER1.
* config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
(has_fma4, has_xop): New.
* config/i386/i386.c (bdver1_cost): New variable.
(m_BDVER1): New macro.
(m_AMD_MULTIPLE): Add m_BDVER1.
(x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
- x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
- x86_tune_use_simode_fiop, x86_tune_promote_qimode,
- x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
- x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
- x86_tune_sse_partial_reg_dependency, x86_tune_sse_unaligned_load_optimal,
- x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
- x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
- x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
- x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
- x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
+ x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
+ x86_tune_use_simode_fiop, x86_tune_promote_qimode,
+ x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
+ x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
+ x86_tune_sse_partial_reg_dependency,
+ x86_tune_sse_unaligned_load_optimal,
+ x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
+ x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
+ x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
+ x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
+ x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
Enable/disable for bdver1.
(processor_target_table): Add bdver1_cost.
(cpu_names): Add bdver1.
(override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
processor_alias_table.
- (ix86_expand_vector_move_misalign): Change
- TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
- Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
- Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
- of movupd/movdqu for SSE and AVX.
+ (ix86_expand_vector_move_misalign): Change.
+ TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
+ Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
+ Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
+ of movupd/movdqu for SSE and AVX.
(ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
(ix86_tune_adjust_cost): Add code for bdver1.
(standard_sse_constant_opcode): Add check for
t-mingw-w64 or t-mingw-w32 for multilib configuration.
* config/i386/t-mingw-w32: New.
* config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
-
+
2010-05-13 Martin Jambor <mjambor@suse.cz>
* gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
by SRA.
* Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
* tree-sra.c (create_access_replacement): Call unshare_expr before
- passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from
- it.
+ passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
* dwarf2out.c: Include tree-flow.h.
(struct var_loc_node): Rename var_loc_note field to loc, add comment.
(size_of_loc_descr, output_loc_operands, output_loc_operands_raw):