OSDN Git Service

2008-05-09 H.J. Lu <hongjiu.lu@intel.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index e62a91a..d9cb326 100644 (file)
+2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * calls.c (expand_call): Don't use callgraph to increase
+       preferred_stack_boundary.
+
+       * cgraph.h (cgraph_rtl_info): Use unsigned on
+       preferred_incoming_stack_boundary.
+
+       * final.c (rest_of_clean_state): Use unsigned on
+       preferred_stack_boundary.
+
+2008-05-09  Tom Tromey  <tromey@redhat.com>
+
+       PR preprocessor/22231:
+       * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
+       proceeding.
+
+2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR tree-optimization/36129
+       * tree-ssa-cpp.c: Include value-prof.h.
+       (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
+       built-in function was folded to a constant.
+       * Makefile.in (tree-ssa-cpp.c): Depend on value-prof.h
+
+2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
+           Sebastian Pop  <sebastian.pop@amd.com>
+
+       * tree-scalar-evolution.c: Document instantiate_scev.
+       (instantiate_parameters_1): Renamed instantiate_scev_1.
+       Don't use the same loop for instantiation_loop and evolution_loop.
+       (instantiate_scev): New.
+       (instantiate_parameters): Moved...
+       (resolve_mixers): Update call to instantiate_scev_1 to pass the
+       same loop twice.  Maintains the semantics for this function.
+       * tree-scalar-evolution.h (instantiate_scev): Declare.
+       (instantiate_parameters): ...here.  Now static inline.
+       * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
+       instead of resolve_mixers.
+
+2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * rtl-factoring.c (collect_pattern_seqs): Fix typo.
+
+2008-05-09  Tomas Bily  <tbily@suse.cz>
+
+       * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
+       * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
+       * tree-ssa-structalias.c (get_constraint_for): Likewise.
+       * c-common.c (c_common_truthvalue_conversion): Likewise.
+       * tree-object-size.c (compute_object_offset): Likewise.
+       * tree-inline.c (estimate_num_insns_1): Likewise.
+       * varasm.c (const_hash_1, compare_constant, copy_constant)
+       (compute_reloc_for_constant, output_addressed_constants)
+       (initializer_constant_valid_p): Likewise.
+       * c-omp.c (check_omp_for_incr_expr): Likewise.
+       * gimplify.c (gimplify_expr): Likewise.
+       * c-typeck.c (c_finish_return): Likewise.
+       * tree-vectorizer.c (supportable_widening_operation)
+       (supportable_narrowing_operation): Likewise.
+       * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
+       * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
+       * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
+       * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
+       (descr_info_loc): Likewise.
+       * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
+       * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
+       (fold_unary): Likewise.
+       * builtins.c (get_pointer_alignment): Likewise.
+       * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
+       (instantiate_parameters_1): Likewise.
+       * tree.c (expr_align, stabilize_reference): Likewise.
+       * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
+       * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
+       * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
+       * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
+       * config/alpha/alpha.c (va_list_skip_additions): Likewise.
+       * c-common.c (c_alignof_expr, check_function_arguments_recurse): Likewise.
+       * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
+       * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
+       * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
+       (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
+       (forward_propagate_comparison)
+       (tree_ssa_forward_propagate_single_use_vars): Likewise.
+       * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
+       * emit-rtl.c (component_ref_for_mem_expr)
+       (set_mem_attributes_minus_bitpos): Likewise.
+       * tree-ssa-phiopt.c (conditional_replacement): Likewise.
+       * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr): Likewise.
+       * c-typeck.c (default_function_array_conversion, build_indirect_ref)
+       (build_function_call, pointer_diff, build_compound_expr)
+       (c_finish_return): Likewise.
+       * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
+       * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1): Likewise.
+       * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
+       * expr.c (is_aligning_offset): Likewise.
+       * tree-ssa-alias.c (is_escape_site): Likewise.
+       * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
+       (check_all_va_list_escapes): Likewise.
+       * tree-ssa-loop-ivopts.c (determine_base_object)
+       (determine_common_wider_type): Likewise.
+       * dojump.c (do_jump): Likewise.
+       * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
+       * tree-gimple.c (is_gimple_cast): Likewise.
+       * fold-const.c (decode_field_reference, )
+       (fold_sign_changed_comparison, fold_unary, fold_comparison)
+       (fold_binary): Likewise.
+       * tree-ssa-alias-warnings.c (find_alias_site_helper)
+       (already_warned_in_frontend_p): Likewise.
+       * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
+       * tree.c (really_constant_p, get_unwidened): Likewise.
+       * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
+       * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
+       * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1): Likewise.
+       * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use CONVERT_EXPR_P.
+       (CONVERT_EXPR_P): Define.
+       (CASE_CONVERT): Define.
+       
+2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
+
+       PR middle-end/36117
+       * dce.c (deletable_insn_p): Do not delete calls if 
+       df_in_progress.
+       (delete_unmarked_insns): When deleting a call, call 
+       delete_unreachable_blocks.
+       * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
+       RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed
+       doc.
+       
+2008-05-08  Richard Guenther  <rguenther@suse.de>
+
+       * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
+       (-ftree-salias): Likewise.
+       (salias-max-implicit-fields): Remove param documentation.
+       (salias-max-array-elements): Likewise.
+       * tree-pass.h (pass_create_structure_vars): Remove.
+       * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
+       (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
+       * tree-ssa-alias.c (create_structure_vars): Remove.
+       (gate_structure_vars): Likewise.
+       (pass_create_structure_vars): Likewise.
+       (gate_build_alias): Likewise.
+       (pass_build_alias): Adjust to run always and dump the function.
+       * common.opt (ftree-salias): Hide.
+       * passes.c (init_optimization_passes): Remove
+       pass_create_structure_vars, adjust comment.
+       * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
+       (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
+       * opts.c (decode_options): Do not set flag_tree_salias.
+       (common_handle_option): Add OPT_ftree_salias to the backward
+       compatibility section.
+
+2008-05-08  Richard Guenther  <rguenther@suse.de>
+
+       * tree-flow-inline.h (var_can_have_subvars): Move ...
+       * tree-ssa-structalias.c (var_can_have_subvars): ... here.
+       * tree-flow.h (var_can_have_subvars): Remove.
+       (push_fields_onto_fieldstack): Remove.
+       (sort_fieldstack): Likewise.
+       (struct fieldoff): Move ...
+       * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
+       alias_set and base_for_components fields.
+       (sort_fieldstack): Make static.
+       (push_fields_onto_fieldstack): Likewise.  Remove code that
+       handles anything but RECORD_TYPEs.  Remove alias_set and
+       base_for_components handling.
+       (create_variable_info_for): Adjust.
+
+2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
+
+       * common.opt (Wframe-larger-than=): Shorten the help message
+       to one line.
+       * doc/invoke.texi (Wframe-larger-than=): Add more description.
+
+2008-05-08  Rafael Espindola  <espindola@google.com>
+
+       * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
+       trap.
+       * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
+       trap and that both operands are gimple values.
+       (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
+       * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
+       is a fp operation.
+
+2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * read-rtl.c (join_c_conditions): Return the first string if the
+       two strings are equal.
+
+2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * gensupport.h (pred_data): Add a "num_codes" field.
+       (add_predicate_code): Declare.
+       * gensupport.c (add_predicate_code): New function.
+       (std_pred_table): Add an "allows_const_p" field.
+       (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
+       Remove the (incomplete) list of such codes from the codes field.
+       (init_predicate_table): Use add_predicate_code.  Add all
+       RTX_CONST_OBJs if allows_const_p is true.
+       * genrecog.c (process_define_predicate): Use add_predicate_code.
+
+2008-05-08  David Daney  <ddaney@avtrex.com>
+           Richard Sandiford  <rsandifo@nildram.co.uk>
+       
+       * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
+       special case of constant zero operands.
+       * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
+       old and new values.  Special case constant zero values.
+       * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
+       fails.
+       (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
+       (MIPS_COMPARE_AND_SWAP_12_0): New macro.
+
+2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR target/36090
+       * simplify-rtx.c (simplify_plus_minus): Create CONST of
+       similar RTX_CONST_OBJ before CONST_INT.
+
+2008-05-08  Steve Ellcey  <sje@cup.hp.com>
+
+       * stmt.c (expand_stack_restore): Change sa mode if needed.
+
+2008-05-08  Richard Guenther  <rguenther@suse.de>
+
+       * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
+       return type to bool.
+       (ix86_sol10_return_in_memory): Likewise.
+       (ix86_i386elf_return_in_memory): Likewise.
+       (ix86_i386interix_return_in_memory): Likewise.
+       * config/i386/i386.c (ix86_return_in_memory): Likewise.
+       (ix86_sol10_return_in_memory): Likewise.
+       (ix86_i386elf_return_in_memory): Likewise.
+       (ix86_i386interix_return_in_memory): Likewise.
+
+2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
+
+       PR bootstrap/36180
+       * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
+       fndecl argument.
+       (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
+       * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
+       declared in front.
+
+2008-05-08  Richard Guenther  <rguenther@suse.de>
+
+       * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
+       * tree-data-ref.h (struct dr_alias): Remove subvars field.
+       (DR_SUBVARS): Remove.
+       * tree-dfa.c (dump_subvars_for): Remove.
+       (debug_subvars_for): Likewise.
+       (dump_variable): Do not dump subvars.
+       (remove_referenced_var): Do not remove subvars.
+       * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
+       (lookup_subvars_for_var): Remove.
+       (get_subvars_for_var): Likewise.
+       (get_subvars_at): Likewise.
+       (get_first_overlapping_subvar): Likewise.
+       (overlap_subvar): Likewise.
+       * tree-flow.h (subvar_t): Remove.
+       (struct var_ann_d): Remove subvars field.
+       * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
+       argument.  Remove special handling of SFTs.
+       (compute_tag_properties): Likewise.
+       (set_initial_properties): Likewise.
+       (compute_call_clobbered): Likewise.
+       (count_mem_refs): Likewise.
+       (compute_memory_partitions): Likewise.
+       (compute_flow_insensitive_aliasing): Likewise.
+       (setup_pointers_and_addressables): Likewise.
+       (new_type_alias): Likewise.
+       (struct used_part): Remove.
+       (used_portions): Likewise.
+       (struct used_part_map): Likewise.
+       (used_part_map_eq): Likewise.
+       (used_part_map_hash): Likewise.
+       (free_used_part_map): Likewise.
+       (up_lookup): Likewise.
+       (up_insert): Likewise.
+       (get_or_create_used_part_for): Likewise.
+       (create_sft): Likewise.
+       (create_overlap_variables_for): Likewise.
+       (find_used_portions): Likewise.
+       (create_structure_vars): Likewise.
+       * tree.def (STRUCT_FIELD_TAG): Remove.
+       * tree.h (MTAG_P): Adjust.
+       (struct tree_memory_tag): Remove base_for_components and
+       unpartitionable flags.
+       (struct tree_struct_field_tag): Remove.
+       (SFT_PARENT_VAR): Likewise.
+       (SFT_OFFSET): Likewise.
+       (SFT_SIZE): Likewise.
+       (SFT_NONADDRESSABLE_P): Likewise.
+       (SFT_ALIAS_SET): Likewise.
+       (SFT_UNPARTITIONABLE_P): Likewise.
+       (SFT_BASE_FOR_COMPONENTS_P): Likewise.
+       (union tree_node): Remove sft field.
+       * alias.c (get_alias_set): Remove special handling of SFTs.
+       * print-tree.c (print_node): Remove handling of SFTs.
+       * tree-dump.c (dequeue_and_dump): Likewise.
+       * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
+       * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
+       * tree-predcom.c (set_alias_info): Do not set subvars.
+       * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
+       * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
+       * tree-ssa-operands.c (access_can_touch_variable): Likewise.
+       (add_vars_for_offset): Remove.
+       (add_virtual_operand): Remove special handling of SFTs.
+       (add_call_clobber_ops): Likewise.
+       (add_call_read_ops): Likewise.
+       (get_asm_expr_operands): Likewise.
+       (get_modify_stmt_operands): Likewise.
+       (get_expr_operands): Likewise.
+       (add_to_addressable_set): Likewise.
+       * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
+       * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
+       * tree-vect-transform.c (vect_create_data_ref_ptr): Do not
+       set subvars.
+       * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
+       (tree_code_size): Remove STRUCT_FIELD_TAG handling.
+       (tree_node_structure): Likewise.
+       * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
+       handling of SFTs.
+       (find_what_p_points_to): Likewise.
+
+2008-05-08  Sa Liu  <saliu@de.ibm.com>
+
+       * config/spu/spu.md: Fixed subti3 pattern.
+
+2008-05-08  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/36154
+       * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
+       sure to create a representative for trailing arrays for PTA.
+
+2008-05-08  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/36172
+       * fold-const.c (operand_equal_p): Two objects which types
+       differ in pointerness are not equal.
+
+2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
+
+       * calls.c (compute_argument_block_size): Add argument tree fndecl.
+       (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
+       (emit_library_call_value_1): Add new variable fndecl initialized by
+       NULL_TREE. It should be the decl type of orgfun, but this information
+       seems not to be available here, so it uses the default calling abi.
+       * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
+       * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
+       by TARGET_RETURN_IN_MEMORY.
+       * config/i386/i386-interix.h: Likewise.
+       * config/i386/i386.h: Likewise.
+       * config/i386/i386elf.h: Likewise.
+       * config/i386/ptx4-i.h: Likewise.
+       * config/i386/sol2-10.h: Likewise.
+       * config/i386/sysv4.h: Likewise.
+       * config/i386/vx-common.h: Likewise.
+       * config/cris/cris.h: Removed #if 0 clause.
+       * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
+       * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
+       argument.
+       (ix86_sol10_return_in_memory): Likewise.
+       (ix86_i386elf_return_in_memory): New.
+       (ix86_i386interix_return_in_memory): New.
+       * config/mt/mt-protos.h (mt_return_in_memory): New.
+       * config/mt/mt.c: Likewise.
+       * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
+       (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
+       * config/bfin/bfin.h: Likewise.
+       * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
+       argument.
+       * config/bfin/bfin.c: Likewise.
+       * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
+       * config/alpha/unicosmk.h: Likewise.
+       * config/i386/cygming.h: Likewise.
+       * config/iq2000/iq2000.h: Likewise.
+       * config/mips/mips.h: Likewise.
+       * config/mn10300/mn10300.h: Likewise.
+       * config/rs6000/rs6000.h: Likewise.
+       * config/score/score.h: Likewise.
+       * config/spu/spu.h: Likewise.
+       * config/v850/v850.h: Likewise.
+       * defaults.h: Likewise.
+       * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
+       * expr.c (emit_block_move): Adjust use of
+       OUTGOING_REG_PARM_STACK_SPACE.
+       * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
+       OUTGOING_REG_PARM_STACK_SPACE.
+       * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
+
+2008-05-08  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
+       on OMP_RETURN for OMP_FOR.
+
+       PR debug/35896
+       * dwarf2out.c (dw_expand_expr, common_check): Removed.
+       (fortran_common): New function.
+       (gen_variable_die): Call fortran_common instead of common_check,
+       adjust for it returning tree instead of rtx.  Formatting.
+
+2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
+
+       PR rtl/7335
+       PR rtl/33826
+       * see.c (see_copy_insn): Copy new pure const attributes for new call.
+       * c-decl.c (merge_decls): Ditto.
+       * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
+       to RTL_CONST_OR_PURE_CALL_P.
+       * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
+       Initialized DECL_LOOPING_CONST_PURE.
+       (process_call_operands): Set tree_side_effects properly.
+       * tree.h (TREE_READONLY_DECL_P): Removed.
+       (DECL_IS_PURE): Renamed to DECL_PURE_P.
+       (DECL_LOOPING_OR_CONST_P): New macro.
+       (struct tree_function_decl): Added looping_const_or_pure_p.
+       (ECF_*) Renumbered.
+       (ECF_LOOPING_OR_CONST_P): New macro.
+       * rtlanal.c (pure_const_p): Removed.
+       * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
+       * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
+       to RTL_CONST_CALL_P.
+       * ipa-pure-const.c (pure_const_state_e): Added looping field.
+       (check_decl, check_tree, check_call, scan_function): Initialize
+       looping.
+       (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
+       (static_execute): Set looping true for recursive functions.
+       Undo setting state to IPA_NEITHER for recursive functions.
+       * cse.c (cse_insn): 
+       * ifcvt.c (noce_can_store_speculate_p): Changed
+       CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
+       RTL_CONST_OR_PURE_CALL_P.
+       * dse.c (scan_insn): Ditto.
+       * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
+       * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
+       RTL_CONST_OR_PURE_CALL_P.
+       (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
+       pure_call_p to RTL_CONST_CALL_P.
+       * gimplify.c (gimplify_call_expr): Clear side effects for
+       non-looping pure and constant calls.
+       * calls.c (emit_call_1): Set rtl flags from ecf flags.
+       (flags_from_decl_or_type): Set ecf flags from decl flags.
+       (initialize_argument_information): Turn off
+       ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
+       Change const to pure if callee_copies is true rather than just
+       turning off const.
+       (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
+       way of marking pure calls.
+       (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
+       Remove hack that was supposed to fix pr7335 and remove old
+       way of marking pure calls.
+       * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
+       RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
+       * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
+       RTL_CONST_OR_PURE_CALL_P.
+       * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
+       * loop-invariant.c (find_exits, find_invariant_bb): Changed
+       CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
+       * sched-deps.c (schedule_analyze): Ditto.
+       * rtl.h (struct rtx_def): Use call field, unchanging field, and
+       return_val field of calls to represent pure and const function info.
+       (CONST_OR_PURE_CALL_P): Deleted macro.
+       (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
+       RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
+       * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
+       TREE_READONLY.
+       * tree-optimize.c (execute_fixup_cfg): Added test for
+       ECF_LOOPING_CONST_OR_PURE.
+       * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
+       DECL_PURE_P.
+       * tree-cfg.c (update_call_expr_flags): Do not clear tree side
+       effects for looping pure or const calls.
+       (verify_gimple_expr): Added verification code. 
+       * config/alpha/alpha.c (alpha_legitimize_address,
+       alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
+       RTL_CONST_CALL_P.
+       * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
+       * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
+       * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
+       * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
+       RTL_CONST_OR_PURE_CALL_P.
+       * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
+       and const calls to be deleted.
+
+2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/35714
+       * config/i386/mmx.md (mmx_subv2sf3): New expander.
+       (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
+       (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
+       (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
+       to handle nonimmediate operands.
+       (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
+       (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
+       to handle nonimmediate operands.
+       (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
+       (mmx_pmulhrwv4hi3): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
+       (sse2_umulv1siv1di3): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
+       (mmx_eq<mode>3): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
+       (mmx_uavgv8qi3): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
+       (mmx_uavgv4hi3): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+
+       * config/i386/sse.md
+       (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
+       to handle nonimmediate operands.
+       (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
+       to handle nonimmediate operands.
+       (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
+       to handle nonimmediate operands.
+       (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
+       to handle nonimmediate operands.
+       (sse2_unpckhpd_exp): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (sse2_unpcklpd_exp): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
+       to handle nonimmediate operands.
+       (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
+       to handle nonimmediate operands.
+       (*sse2_<plusminus_insn><mode>3): Rename from
+       sse2_<plusminus_insn><mode>3 insn pattern.
+       (sse2_<plusminus_insn><mode>3): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
+       (sse2_umulv2siv2di3): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
+       (sse4_1_mulv2siv2di3): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
+       (sse2_pmaddwd): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
+       (sse2_eq<mode>3): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
+       (sse4_1_eqv2di3): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
+       (sse2_uavgv16qi3): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
+       (sse2_uavgv16qi3): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
+       (sse2_uavgv8hi3): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
+       (ssse3_pmulhrswv8hi3): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
+       (ssse3_pmulhrswv4hi3): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+
+       (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
+       (<sse>_vmmul<mode>3): Ditto.
+       (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
+       (divv2df3): Ditto.
+       (ssse3_pmaddubsw128): Use register_operand for operand 1.
+       (ssse3_pmaddubsw): Ditto.
+
+       * config/i386/i386.c (struct_builtin_description)
+       [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
+       [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
+       [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
+       [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
+       [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
+       [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
+       [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
+       [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
+       (ix86_fixup_binary_operands): Assert that src1
+       and src2 must have the same mode when swapped.
+       (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
+       and ix86_binary_operator_ok.  Do not force operands in registers
+       when optimizing.
+
+2008-05-07  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (dump_cgraph_node): Update.
+       * cgraph.h (cgraph_local_info): Break out inline summary.
+       * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
+       hook.
+       * ipa-inline (inline_summary): New accestor function.
+       (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
+       cgraph_decide_inlining, compute_inline_parameters): Update.
+       * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
+
+2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       Cleanup ColdFire scheduling support and add V4 pipeline model.
+
+       * config/m68k/m68k.md (UNSPEC_TIE): New constant.
+       (define_attr cpu): Add cfv4 value.
+       (define_attr type, define_attr type1): Merge into a single 'type'
+       attribute.  Update all uses.
+       (define_attr opx_type, define_attr opy_type, define_attr opx_access):
+       Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
+       Update all uses.
+       (define_attr opx_mem, define_attr opy_mem): Remove.
+       (define_attr op_mem): Clean up, update comment.
+       (define_attr size): Use specific values instead of general int.
+       (define_attr guess, define_attr split): Remove.  Update all uses.
+       (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
+       tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
+       movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
+       zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
+       68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
+       floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
+       fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
+       adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
+       add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
+       add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
+       sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
+       sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
+       mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
+       umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
+       mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
+       div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
+       one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
+       bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
+       beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
+       bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
+       symbolic_call_value_jsr, symbolic_call_value_bsr, link):
+       Update or set attributes.
+       (stack_tie): New fake instruction.
+
+       * config/m68k/m68k.h (TUNE_CFV4): New macro.
+       (m68k_sched_attr_size): Update declaration.
+       (m68k_sched_attr_type2): Remove.
+       (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
+       Declare new bypass predicates.
+
+       * config/m68k/m68k.c (m68k_sched_issue_rate,
+       m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
+       implementations.
+       (TARGET_SCHED_ISSUE_RATE,
+       TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
+       (override_options): Handle scheduling for ColdFire V4 core.
+       (m68k_expand_prologue): Emit stack_tie.
+       (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
+       'OP_TYPE_FPN'.  Update all uses.
+       (sched_guess_p): Remove.
+       (sched_address_type): Handle symbolic addresses.
+       (sched_get_operand): New static function.
+       (sched_operand_type): Merge into sched_attr_op_type.
+       (sched_attr_op_type): Handle FP registers, handle quick constants,
+       update.
+       (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
+       (m68k_sched_attr_size): Update.  Move logic to ...
+       (sched_get_attr_size_int): New static function.
+       (sched_get_opxy_mem_type): New static function.
+       (m68k_sched_attr_op_mem): Update.
+       (m68k_sched_attr_type2): Remove.
+       (sched_cfv4_bypass_data): New static variable.
+       (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
+       (m68k_sched_issue_rate): Implement scheduler hook.
+       (struct _sched_ib: enabled_p): New field.
+       (m68k_sched_variable_issue): Update.  Handle V4.
+       (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
+       sched_dump_class_func_t, sched_dump_split_class,
+       sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
+       sched_dump_dfa_class, m68k_sched_dump): Remove.
+       (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
+       hook.
+       (m68k_sched_init_global): Remove statisctics dumping, introduce
+       sanity check that all instructions have pipeline reservations.  Handle
+       ColdFire V4 core.
+       (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
+       Handle ColdFire V4 core.
+       (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
+       New static functions.
+       (m68k_sched_address_bypass_p): New bypass predicate.
+       (sched_get_indexed_address_scale): New static function.
+       (m68k_sched_indexed_address_bypass_p): New bypass predicate.
+
+       * cf.md: Update comments.
+       (define_attr type2): Remove.  Use 'type' attribute instead.
+       Update all uses.
+       (cf_ib): Rename to cfv123_ib.  Update all uses.
+       (cf_oep): Rename to cfv123_oep.  Update all uses.
+       (cf_chr): Rename to cfv123_chr.  Update all uses.
+       (cf_mem): Rename to cfv123_mem.  Update all uses.
+       (cf_mac): Move to more appropriate place.
+       (cfv123_guess): New automaton and cpu_unit.
+       (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
+       Update uses of 'size' attribute.  Handle before reload scheduling.
+       (cfv123_guess): New dummy reservation for unhandled instructions.
+       (cfv4_*): Pipeline description of ColdFire V4 core.
+       (ignore): New reservation to handle 'ignore' type.
+
+2008-05-07  Ian Lance Taylor  <iant@google.com>
+
+       PR middle-end/36013
+       * gimplify.c (find_single_pointer_decl_1): Don't look through
+       indirections.
+       (find_single_pointer_decl): Adjust comments.
+
+2008-05-07  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/36137
+       * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
+       STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
+
+       PR middle-end/36106
+       * omp-low.c (expand_omp_atomic_pipeline): Load value using the
+       integral type rather than floating point, then VIEW_CONVERT_EXPR
+       to the floating point type.
+
+2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
+       TFmode op0 to register.
+
+2008-05-07  Alan Modra  <amodra@bigpond.net.au>
+
+       * c-decl.c (grokdeclarator): Comment typo.
+
+2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
+
+       * tree-flow.h: Remove prototype for computed_goto_p.
+       * tree-cfg.c (computed_goto_p): Make static.
+
+2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/35657
+       * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
+       (contains_aligned_value_p): This.  Handle _Decimal128.
+       (ix86_function_arg_boundary): Only align _Decimal128 to its
+       natural boundary and handle it properly.
+
+2008-05-06  Martin Jambor  <mjambor@suse.cz>
+
+       * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
+       (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
+       (ipcp_method_set_orig_node): Removed.
+       (ipcp_cval_get_cvalue_type): Removed.
+       (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
+       (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
+       (ipcp_cval_set_cvalue_type): Removed.
+       (ipcp_cval_get_cvalue): Removed.
+       (ipcp_cval_set_cvalue): Removed.
+       (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
+       (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
+       (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
+       (ipcp_cval_meet): Renamed to ipa_lattice_meet
+       (ipcp_cval_changed): Changed to use ipcp_lat_is_const
+       (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
+       (ipcp_get_ith_lattice): Changed parameters.
+       (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
+       (ipcp_lattice_from_jfunc): Changed parameters.
+       (ipcp_redirect): Local lattice pointer instead of lattice type variable.
+       (ipcp_method_cval_print): Added temporary variable info.
+       (ipcp_redirect): Removed already unused local variable caller.
+       (ipcp_redirect): New temporary variable orig_callee_info
+       (ipcp_redirect): Removed newly unused local variable callee.
+       (ipcp_redirect): Removed (a bit confusing) local variable type.
+       (ipcp_insert_stage): Added local variable info.
+       (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
+       renamed too
+       (ipcp_formal_create): Removed.
+       (ipcp_method_cval_set): Removed.
+       (ipcp_propagate_stage): Renamed lattice variables.
+       (ipcp_method_cval_set_cvalue_type): Removed.
+       (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
+       (ipcp_print_all_lattices): Changed printed strings to refer to 
+       lattices rather than cvals.
+       (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
+       (ipcp_propagate_const): Changed formal parameters.
+       (build_const_val): Changed formal parameters.
+       (ipcp_insert_stage): Removed useless variable cvalue
+       (build_const_val): Changed formal parameters.
+       (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
+       (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
+       (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
+       (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
+       (ipcp_print_func_profile_counts): Changed string from "method" to 
+       "function"
+       (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
+       (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
+       (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
+       (ipcp_structures_print): Renamed to ipcp_print_all_structures
+       (ipcp_profile_print): Renamed to ipcp_print_profile_data
+       (ipcp_lat_is_const): Changed parameters and made inline.
+       (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
+       (ipcp_redirect): Renamed to ipcp_need_redirect_p
+       (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
+       the predicate condition directly
+       (ipcp_propagate_stage): Added local variable args. Removed local
+       variable callee.  (Both are mere code simplifications.)
+       (ipcp_method_dont_insert_const): Renamed to
+       ipcp_node_not_modifiable_p.
+       (ipcp_node_not_modifiable_p): Made inline.
+       (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
+       (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
+       (ipcp_print_all_lattices): Removed variable cvalue
+       (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
+       Updated comments.
+
+2008-05-06  Olivier Hainque  <hainque@adacore.com>
+
+       * tree-sra.c (try_instantiate_multiple_fields): Early return
+       if field has POINTER_TYPE.
+
+2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
+
+       * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
+       by using 'q' specifier for instruction.
+       (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
+
+2008-05-06  Anatoly Sokolov <aesok@post.ru>
+
+       * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
+       Change mode of zero_extract from QImode to HImode.
+       (sign bit tests peepholes): (Ditto.).
+
+2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/mmx.md: Remove double backslashes from asm templates.
+       (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
+       (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
+       to handle nonimmediate operands.
+       (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
+       (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
+       to handle nonimmediate operands.
+       (*mmx_<code>v2sf3_finite): New insn pattern.
+       (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
+       (mmx_<code>v2sf3): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (mmx_<plusminus_insn><mode>3): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (*mmx_<plusminus_insn><mode>3): New insn pattern.
+       (mmx_add<mode>3): Removed.
+       (mmx_ssadd<mode>3): Ditto.
+       (mmx_usadd<mode>3): Ditto.
+       (mmx_sub<mode>3): Ditto.
+       (mmx_sssub<mode>3): Ditto.
+       (mmx_ussub<mode>3): Ditto.
+       (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
+       (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
+       to handle nonimmediate operands.
+       (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
+       insn pattern.
+       (mmx_smulv4hi3_highpart): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
+       insn pattern.
+       (mmx_umulv4hi3_highpart): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
+       (mmx_<code>v4hi3): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
+       (mmx_<code>v8qi3): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+       (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
+       (mmx_<code><mode>3): New expander.  Use
+       ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
+
+2008-05-05  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimization/36118
+       * passes.c (pass_init_dump_file): Fix dump header.
+
+2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR middle-end/36141
+       * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
+       VCE for function decls.
+
+2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
+
+2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.md (sat_plusminus): New.
+       (plusminus_insn): Likewise.
+       (plusminus_mnemonic): Likewise.
+       (addsub): Removed.
+       (comm): Add ss_plus, us_plus, ss_minus and us_minus.
+       (*<addsub><mode>3_cc_overflow): Renamed to ...
+       (*<plusminus_insn><mode>3_cc_overflow): This.
+       (*<addsub>si3_zext_cc_overflow): Renamed to ...
+       (*<plusminus_insn>si3_zext_cc_overflow): This.
+
+       * config/i386/sse.md (<addsub><mode>3): Renamed to ...
+       (<plusminus_insn><mode>3): This.
+       (*<addsub><mode>3): Renamed to ...
+       (*<plusminus_insn><mode>3): This.
+       (<sse>_vm<addsub><mode>3): Renamed to ...
+       (<sse>_vm<plusminus_insn><mode>3): This.
+       (sse3_h<addsub>v4sf3): Renamed to ...
+       (sse3_h<plusminus_insn>v4sf3): This.
+       (sse3_h<addsub>v2df3): Renamed to ...
+       (sse3_h<plusminus_insn>v2df3): This.
+       (<plusminus_insn><mode>3): New.
+       (*<plusminus_insn><mode>3): Likewise.
+       (sse2_<plusminus_insn><mode>3): Likewise.
+       (add<mode>): Removed.
+       (*add<mode>3): Likewise.
+       (sse2_ssadd<mode>3): Likewise.
+       (sse2_usadd<mode>3): Likewise.
+       (sub<mode>3): Likewise.
+       (*sub<mode>3): Likewise.
+       (sse2_sssub<mode>3): Likewise.
+       (sse2_ussub<mode>3): Likewise.
+
+2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
+
+       * gthr-single.h: Add in required interface elements as per gthr.h.
+       Add stub types for __gthread_key_t, __gthread_once_t. Add defines
+       for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
+       Generalize UNUSED macro. 
+       (__gthread_once): Add.
+       (__gthread_key_create): Add.
+       (__gthread_key_delete): Add.
+       (__gthread_getspecific): Add.
+       (__gthread_setspecific): Add.
+       
+2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
+
+       * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
+       the same size types for the indirect reference on the rhs, then
+       create a VCE.
+
+2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md
+       (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
+       one insn template instead of template series.
+       (*xordi_1_rex64): Ditto.
+       (*xordi_2_rex64): Ditto.
+
+2008-05-05  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-optimization/36119
+       * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
+       in case of SLP.
+
+2008-06-04  Jan Hubicka  <jh@suse.cz>
+
+       tree-optimization/36100
+       * tree-pass.h (pass_O0_always_inline): Declare.
+       * ipa-inline.c (inline_transform): Remove dead code.
+       (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
+       pass_O0_always_inline): New.
+       * passes.c (init_optimization_passes): Add pass_O0_always_inline.
+
+2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
+
+       * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
+       mnemonic in this_param move for TARGET_64BIT.
+
+2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
+       (*strmovsi_rex_1): Ditto.
+       (*strsetsi_1): Ditto.
+       (*strsetsi_rex_1): Ditto.
+
+       (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
+       adddicc expanders using SWI mode iterator.
+
+2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/36121
+       * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
+       argument handling.
+
+2008-05-04  David S. Miller  <davem@davemloft.net>
+
+       * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
+       (sparc*-*-linux*): Use linux.h in tm_file.
+       (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
+       compiler defaulting to 32-bit.
+       (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
+       no longer needed.
+       * config/sparc/linux.h: Remove definitions now obtained
+       properly from linux.h
+       * config/sparc/linux64.h: Likewise.
+       (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
+       don't want this setting for 32-bit builds in a biarch compiler.
+       * doc/install.texi: Add sparc-linux to list of targets
+       supporting --enable-targets=all.
+
+2008-05-03  Andrew Pinski  <pinskia@gmail.com>
+
+       * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
+
+2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
+       after V4SI_FTYPE_V8HI.
+       (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
+       case V4SI_FTYPE_V2DF.
+
+2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
+
+       * doc/invoke.texi (max-flow-memory-locations): Removed.
+       * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
+       
+2008-05-03  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/34973
+       * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
+
+2008-05-02  David S. Miller  <davem@davemloft.net>
+
+       * config.gcc (need_64bit_hwint): Document libcpp dependency.
+
+2008-05-02  Simon Baldwin <simonb@google.com>
+
+       PR bootstrap/36108
+       * c-common.h (warn_array_subscript_range): Removed.
+       * c-common.c (warn_array_subscript_range): Ditto.
+       * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
+       * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
+
+2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (ix86_special_builtin_type): New.
+       (bdesc_special_args): Likewise.
+       (ix86_expand_special_args_builtin): Likewise.
+       (ix86_init_mmx_sse_builtins): Updated.
+       (ix86_expand_builtin): Updated.
+       (ix86_expand_store_builtin): Removed.
+       (ix86_expand_unop_builtin): Likewise.
+
+       * config/i386/mm3dnow.h (__v2sf): Moved to ...
+       * config/i386/mmintrin.h (__v2sf): Here.
+
+       * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
+       const __v2sf.
+       (_mm_loadl_pi): Likewise.
+       (_mm_storeh_pi): Replace __v2si with __v2sf.
+       (_mm_storel_pi): Likewise.
+
+       * doc/extend.texi: Correct __builtin_ia32_loadhps,
+       __builtin_ia32_loadlps, __builtin_ia32_storehps,
+       __builtin_ia32_storelps, __builtin_ia32_loadhpd and
+       __builtin_ia32_loadlpd.
+
+2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
+       V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
+       (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
+       (ix86_init_mmx_sse_builtins): Updated.
+       (ix86_expand_args_builtin): Likewise.
+       (ix86_expand_builtin): Likewise.
+       (ix86_expand_unop1_builtin): Renamed to ...
+       (ix86_expand_unop_vec_merge_builtin): This.
+
+2008-05-01  Jan Hubicka  <jh@suse.cz>
+
+       PR bootstrap/36100
+       * ipa-inline.c (inline_generate_summary): Make static.
+       (inline_transform): Do not call inlining at -O0; make static.
+       * passes.c (execute_todo): Add sanity check.
+       (execute_one_ipa_transform_pass): Execute proper flags.
+
+2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
+       (DECL_NONADDRESSABLE_P): Likewise.
+       * alias.c (record_component_aliases): Fix comment.
+
+2008-05-01  Simon Baldwin <simonb@google.com>
+
+       * c-common.h (warn_array_subscript_range): New function.
+       * c-common.c (warn_array_subscript_range): Ditto.
+       * tree-vrp.c (check_array_ref): Corrected code to agree with
+       comment, ignoring only arrays of size 0 or size 1.
+       * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
+
+2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (ix86_builtin_type): Replace
+       DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
+       (bdesc_args): Updated.
+       (ix86_init_mmx_sse_builtins): Likewise.
+       (ix86_expand_args_builtin): Likewise.
+
+       * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
+       with __v1di.
+
+       * doc/extend.texi: Correct __builtin_ia32_palignr.
+
+2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/36095
+       * config/i386/i386.c (bdesc_crc32): Removed.
+       (ix86_expand_crc32): Likewise.
+       (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
+       V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
+       V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
+       UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
+       UINT_FTYPE_UINT_UCHAR.
+       (bdesc_args): Updated. Add crc32 builtins.
+       (ix86_init_mmx_sse_builtins): Updated.
+       (ix86_expand_args_builtin): Updated to support subreg.
+
+       * doc/extend.texi: Correct __builtin_ia32_crc32di.
+
+2008-05-01  Jan Hubicka  <jh@suse.cz>
+
+       * tree-pass.h (opt_pass): Add IPA_PASS.
+       (varpool_node, cgraph_node): Forward declare.
+       (ipa_opt_pass): Define.
+       (pass_ipa_inline): Turn into ipa_opt_pass.
+       (pass_apply_inline): Remove.
+       * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
+       (apply_inline): Turn into ....
+       (inline_transform): ... this one.
+       (inline_generate_summary): New function.
+       (pass_apply_inline): Remove.
+       * function.h (ipa_opt_pass): Forward declare structure; typedef;
+       vector.
+       (struct function): Add ipa_transforms_to_apply.
+       * passes.c (register_one_dump_file): Work on IPA_PASS.
+       (init_optimization_passes): Remove pass_inline_parameters and
+       pass_apply_inline.
+       (pass_init_dump_file, pass_fini_dump_file): Break out from ....
+       (execute_one_pass) ... here; apply transforms when possible.
+       (add_ipa_transform_pass, execute_ipa_summary_asses,
+       execute_one_ipa_transform_pass): New.
+       (execute_ipa_pass_list): Update for IPA_PASS type.
+
+2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (ix86_builtin_type): Add
+       V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
+       V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
+       (bdesc_args): Add SSE4a builtins.
+       (ix86_init_mmx_sse_builtins): Updated.
+       (ix86_expand_args_builtin): Likewise.
+       (ix86_expand_builtin): Likewise.
+
+2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (ix86_builtin_type): Add
+       V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
+       V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
+       V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
+       V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
+       V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
+       V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
+       V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
+       V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
+       and DI_FTYPE_DI_DI_INT.
+       (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
+       (ix86_init_mmx_sse_builtins): Updated.
+       (ix86_expand_args_builtin): Likewise.
+       (ix86_expand_builtin): Likewise.
+       (ix86_expand_binop_imm_builtin): Removed.
+
+       * doc/extend.texi: Correct __builtin_ia32_palignr128.
+
+2008-04-30  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/32921
+       * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
+
+2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * config/arm/arm.c (arm_unwind_emit): Use
+       crtl->all_throwers_are_sibcalls instead of
+       cfun->all_throwers_are_sibcalls.
+       (arm_output_fn_unwind): Likewise.
+       * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
+       instead of cfun->uses_pic_offset_table.
+       (frv_expand_prologue): Likewise.
+       (frv_frame_pointer_required): Likewise.
+       (frv_expand_fdpic_call): Likewise.
+       (frv_emit_movsi): Likewise.
+       * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
+       cfun->returns_pcc_struct instead of
+       current_function_returns_pcc_struct.
+       * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
+       instead of cfun->calls_eh_return.
+       (m32c_pushm_popm): Likewise.
+       * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
+       "extern" declaration.
+
+2008-04-30  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/21636
+       * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
+       constant address.
+       (evaluate_stmt): Print the likely value.
+       (ccp_visit_stmt): Avoid excessive vertical spacing.
+
+2008-04-30  Rafael Espindola  <espindola@google.com>
+
+       * builtins.c (fold_call_expr): Return realret.
+       * tree-ssa-threadedge.c
+       (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
+       __builtin_object_size.
+
+2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
+
+       * gcc.c (wrapper_string): New variable.
+       (insert_wrapper): New function.
+       (execute): New option -wrapper.
+       * doc/invoke.texi (Overall Options): New driver option -wrapper.
+
+2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
+       config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
+       config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
+       from...
+       * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
+       * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
+       config/rs6000/e500crtres64gprctr.asm,
+       config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
+       config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
+       config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
+       config/rs6000/e500crtsav64gprctr.asm,
+       config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
+       config/rs6000/e500crtsavg64gprctr.asm: New files.
+       * config/rs6000/t-ppccomm: Add build rules for new files.
+       (LIB2FUNCS_STATIC_EXTRA): Add new files.
+       * config/rs6000/t-netbsd: Add build rules for new files.
+       (LIB2FUNCS_STATIC_EXTRA): New variable.
+       * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
+       (CRTSAVRES_DEFAULT_SPEC): Likewise.
+       * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
+
+2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (ix86_builtin_type): Add
+       FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
+       V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
+       V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
+       V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
+       V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
+       V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
+       V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
+       V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
+       V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
+       V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
+       V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
+       V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
+       V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
+       V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
+       V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
+       V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
+       V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
+       V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
+       V1DI_FTYPE_V2SI_V2SI.
+       (bdesc_2arg): Moved to ...
+       (bdesc_args): Here.
+       (ix86_init_mmx_sse_builtins): Updated.
+       (ix86_expand_args_builtin): Updated.  Take a pointer
+       to const struct builtin_description.  Handle comparison
+       builtin functions.
+       (ix86_expand_sse_compare): Take a new argument for swapping operands.
+       (ix86_expand_builtin): Updated.
+
+       * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
+       (ssse3_pmaddubsw128): This.
+       (ssse3_pmaddubswv4hi3): Renamed to ...
+       (ssse3_pmaddubsw): This.
+
+       * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
+       (__builtin_ia32_packssdw128): Likewise.
+       (__builtin_ia32_packuswb128): Likewise.
+       (__builtin_ia32_pmaddubsw): Likewise.
+       (__builtin_ia32_pmaddubsw128): Likewise.
+
+2008-04-30  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/14847
+       * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
+       (recognize_bits_test): Use it.
+       (recognize_single_bit_test): Likewise.
+
+2008-04-30  Martin Jambor  <mjambor@suse.cz>
+
+       * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
+       instead of setting number of formal parameters to zero.
+       (ipcp_init_stage): Do not set the number of actual parameters to zero 
+       either.
+       (ipcp_propagate_stage): Explicitly skipping all calls to nodes
+       which are called with variable number of arguments.
+       (ipcp_insert_stage): Explicitely skipping all nodes which are
+       called with variable number of arguments.
+       (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
+       number of parameters.
+
+       * ipa-prop.h (struct ipa_node_params): Added flag
+       called_with_var_arguments
+       (ipa_set_param_count): Added.  Changed sole setter to use it.
+       (ipa_get_param_count): Added.  All readers of param_count
+       converted to use it instead.
+       (ipa_set_called_with_variable_arg): Added.
+       (ipa_is_called_with_var_arguments): Added.
+       (ipa_get_ith_param): Added.  All readers of param_decls converted
+       to use it instead.
+       (ipa_set_cs_argument_count): Added, sole writer to argument_count 
+       changed to use it. 
+       (ipa_get_cs_argument_count): Added, all readers of argument_count
+       changed to cal it.
+       (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
+       to use it.
+       
+       * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
+       (struct ipcp_lattice): Renamed cval_type to type
+       (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
+
+       * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
+       (ipcp_cval_set_cvalue): Changed type of parameter value to tree
+       (ipcp_insert_stage): Changed the type of variable cvalue to tree
+       (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
+       (build_const_val): Changed the type of parameter cvalue to tree
+       (ipcp_propagate_const): Changed the type of parameter cvalue to tree
+       (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
+       
+       * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
+       constant 
+
+       * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
+       (ipa_methodlist_not_empty): Removed, the sole user now checks directly
+       (ipa_add_method): Renamed to ipa_push_func_to_list
+       (ipa_remove_method): Renamed to ipa_pop_func_from_list
+       (ipa_callsite_param_count): Removed.
+       (ipa_callsite_param_count_set): Removed.
+       (ipa_callsite_param): Removed.
+       (ipa_callsite_callee): Removed.
+       (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
+       (ipa_callsite_compute_count): Renamed to ipa_count_arguments
+       (ipa_method_formal_count): Removed.
+       (ipa_method_formal_count_set): Removed.
+       (ipa_method_get_tree): Removed.
+       (ipa_method_tree_map_create): Removed.
+       (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
+       (ipa_create_param_decls_array): Creates the array itself
+       (ipa_create_param_decls_array): Temporary variable info instead of 
+       a few dereferences.
+       (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
+       (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
+       (get_type): Removed.
+       (ipa_jf_get_info_type): Removed.
+       (ipa_node_create): Renamed to ipa_create_node_params
+       (ipa_free): Renamed to ipa_free_all_node_params
+       (ipa_nodes_create): Renamed to ipa_create_all_node_params
+       (ipa_edges_create): Renamed to ipa_create_all_edge_args
+       (ipa_edges_free): Renamed to ipa_free_all_edge_args
+       (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
+       (ipa_free_all_node_params): Deallocation to jump_functions moved to 
+       ipa_free_all_edge_args
+       (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
+       (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
+       (ipa_create_methodlist_node): Removed.
+       (ipa_methodlist_method): Removed.
+       (ipa_methodlist_method_set): Removed.
+       (ipa_methodlist_next_method): Removed.
+       (ipa_methodlist_next_method_set): Removed.
+       (ipa_method_is_modified): Removed.
+       (ipa_method_modify_create): Removed.
+       (ipa_method_modify_init): Temporary variable info instead of a few 
+       dereferences.
+       (ipa_detect_param_modifications): Temporary variable info instead of 
+       a few dereferences.
+       (ipa_compute_jump_functions): Temporary variable info instead of 
+       a few dereferences.
+       (ipa_method_modify_set): Removed.
+       (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
+       (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
+       than craph_node as the first parameter.
+       (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
+       (ipa_method_modify_init): Removed.
+       (ipa_compute_jump_functions): Added a temp variable instead of 
+       repeatadly dereferencing the cgraph_edge.aux pointer
+       (ipa_callsite_param_set_type): Removed.
+       (ipa_compute_jump_functions): i renamed to index and moved to 
+       an inner block
+       (ipa_callsite_param_set_info_type_formal): Removed.
+       (ipa_callsite_param_set_info_type): Removed.
+       (ipa_callsite_param_map_create): Removed.
+       (ipa_callsite_tree): Removed.
+       (ipa_callsite_caller): Removed.
+       (ipa_pop_func_from_list): return_method removed to return_func
+
+       * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
+       prefixed all values with IPA_. Changed all users.
+       (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
+       CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
+       and FORMAL_IPATYPE IPA_PASS_THROUGH. 
+       (union parameter_info): Renamed to jump_func_value.
+       (union jump_func_value): Renamed value to constant
+       (struct ipa_jump_func): Renamed info_type to value
+       (struct ipa_node): Renamed to ipa_node_params
+       (struct ipa_node_params): Renamed ipa_arg_num to param_count
+       (struct ipa_node_params): Renamed ipa_param_tree to param_decls
+       (struct ipa_node_params): Renamed ipa_mod to modified_flags
+       (struct ipa_edge): Renamed to ipa_edge_args
+       (struct ipa_edge_args): Renamed ipa_param_num to argument_count
+       (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
+       (struct ipa_methodlist): Renamed to ipa_func_list
+       (struct ipa_func_list): method_p renamed to node, next_method
+       renamed to next
+       (ipa_methodlist_p): Removed, switched all users to struct pointer
+       (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
+
 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
 
        * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
        
 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
 
-       * config/i386/sse.md (mov<mode>): Replace SSEMODEI with
-       SSEMODE.
+       * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
        (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
        (mov<mode>): Removed.
        (*movv4sf_internal): Likewise.
        * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
        of LR/CTR moves for Power6.
 
-2008-04-22  Kenneth Zadeck <zadeck@naturalbridge.com>
+2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
 
        PR middle-end/36003
        * passes.c (init_optimization_passes): Remove
        * coverage.c: Include tree-pass.h.
        (coverage_counter_alloc): Print da_file_name to the dump file.
 
-2008-04-21  Kenneth Zadeck <zadeck@naturalbridge.com>
+2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
 
        * sbitmap.c (sbitmap_range_empty_p): New function.
        * sbitmap.h (sbitmap_range_empty_p): New function.
        * bitmap.h: Now includes obstack.h.
 
 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
-           Kenneth Zadeck <zadeck@naturalbridge.com>
+           Kenneth Zadeck  <zadeck@naturalbridge.com>
 
        * dbgcnt.def (ra_byte_scan): Added.
        * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
        * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
        control string instead of quoted.
 
-2008-04-07  Kenneth Zadeck <zadeck@naturalbridge.com>
+2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
 
        * doc/rtl.texi: Rewrite of subreg section.
 
 
        * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
 
-2008-03-05  Kenneth Zadeck <zadeck@naturalbridge.com>
+2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
 
        * fwprop.c (update_df): Support width and offset parameters of
        df_ref_create.
        * common.opt (Wstrict-aliasing): Specify Var and Init.
        (Wstrict-overflow): Likewise.
 
-2008-01-22  Kenneth Zadeck <zadeck@naturalbridge.com>
+2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
 
        PR rtl-optimization/26854
        PR rtl-optimization/34400
        * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
        when the structure size is not a power of 2.
 
-2008-01-20  Kenneth Zadeck <zadeck@naturalbridge.com>
+2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
 
        * doc/install.texi: Add doc for --enable-checking=df.
        
        * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
        input.
 
-2008-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
+2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
 
        PR rtl-optimization/26854
        PR rtl-optimization/34400