+2008-09-18 Simon Baldwin <simonb@google.com>
+
+ * c-opts.c (c_common_handle_option): Add handling for
+ -Wbuiltin-macro-redefined command line option.
+ * c.opt: Added builtin-macro-redefined option.
+ * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
+ documentation.
+
+2008-09-18 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37258
+ * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
+ and signedness for integral types.
+ (vn_phi_eq): Require compatible types.
+
+2008-09-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/34037
+ * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
+ TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
+ VAR_DECL.
+ * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
+ !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
+ ggc_free other TREE_LIST nodes from that chain.
+ * function.c (instantiate_decls): Instantiate also DECL_RTL
+ of vars in cfun->local_decls, free that list afterwards.
+
+2008-09-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
+ * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
+
+2008-09-18 Andrew MacLeod <amacleod@redhat.com>
+
+ * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
+ * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
+
+2008-09-18 Andrew MacLeod <amacleod@redhat.com>
+
+ PR tree-optimization/37102
+ * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
+ from a node. Check to see if another PHI is dead.
+ (eliminate_useless_phis): Rename from eliminate_virtual_phis and
+ remove real PHIs which have no uses.
+ (rewrite_out_of_ssa): Call eliminate_useless_phis.
+
+2008-09-18 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37284
+ * tree-cfg.c (remove_useless_stmts_1): Remove
+ GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
+
+2008-09-18 Nick Clifton <nickc@redhat.com>
+
+ * config/frv/frv.h (IRA_COVER_CLASSES): Define.
+ (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
+ to frv_secondary_reload_class.
+ (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
+ * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
+ (frv_secondary_reload_class): Omit unused parameter.
+ (frv_secondary_reload): New function. Handle the case when
+ secondary_reload_class() is called before the reload_(in|out)
+ _optabs have been initialised.
+ * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
+ unused parameter.
+ * config/frv/frv.md: Define an exclusion set between fr550_m0
+ and fr550_f0.
+
+2008-09-18 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37456
+ * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
+ want to insert after ends a BB insert on the single fallthru
+ outgoing edge.
+
+2008-09-18 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
+ Mention -march=z9-109, z9-ec and z10.
+
+2008-09-18 Uros Bizjak <ubizjak@gmail.com>
+
+ PR rtl-optimization/37544
+ * regrename.c (maybe_mode_change): Exit early when copy_mode
+ is narrower than orig_mode and narrower than new_mode.
+
+2008-09-18 Alexander Monakov <amonakov@ispras.ru>
+
+ PR middle-end/37499
+ * sched-int.h (struct _haifa_insn_data): Remove unused field
+ ref_count.
+
+ * sched-rgn.c (ref_counts): Remove.
+ (insn_referenced): New static variable.
+ (INSN_REF_COUNT): Remove.
+ (sched_run_compute_dependencies): Use insn_referenced instead of
+ INSN_REF_COUNT.
+ (add_branch_dependences): Likewise. Delete dead assignment.
+
+2008-09-17 Adam Nemet <anemet@caviumnetworks.com>
+
+ * haifa-sched.c (dep_cost_1): Recognize the producer even if the
+ consumer is an asm. Add comment why this is important.
+ (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
+ recog_memoized (insn) < 0" assert. Put ENABLE_CHECKING around
+ it.
+
+2008-09-17 Joseph Myers <joseph@codesourcery.com>
+
+ * expr.c (emit_group_store): Do not shift before moving via a
+ stack slot.
+
+2008-09-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * varasm.c (initializer_constant_valid_p): Forbid view-conversions
+ from aggregate to non-aggregate type if the bit pattern is not fully
+ preserved afterwards.
+
+2008-09-17 Richard Guenther <rguenther@suse.de>
+
+ * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
+ (verify_gimple_assign): ... this. Split into ...
+ (verify_gimple_assign_unary): ... this,
+ (verify_gimple_assign_binary): ... that,
+ (verify_gimple_assign_single): ... and this.
+ (verify_types_in_gimple_stmt): Call verify_gimple_assign.
+ Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
+ (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
+ (verify_types_in_gimple_reference): Be forgiving with
+ VIEW_CONVERT_EXPRs.
+ (verify_gimple_phi): Deal with virtual operands.
+
+ * tree.def (PREDICT_EXPR): Change to tcc_expression.
+
+2008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * tree.c (get_callee_fndecl): Don't call the language hook.
+ * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
+ * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
+ (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
+
+2008-09-17 Jakub Jelinek <jakub@redhat.com>
+
+ * tree.c (protected_set_expr_location): Don't unnecessarily
+ check for error_mark_node.
+
+2008-09-17 Art Haas <ahaas@impactweather.com>
+
+ * ipa-reference.c (analyze_function): Declare step only if
+ ENABLE_CHECKING is defined.
+
+2008-09-17 Jan Hubicka <jh@suse.cz>
+
+ PR c++/18071
+ * tree.h (DECL_INLINE): remove.
+ (DECL_DECLARED_INLINE_P): Update docs.
+ (DECL_NO_INLINE_WARNING_P): new.
+ (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
+ * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
+
+2008-09-17 Jakub Jelinek <jakub@redhat.com>
+ Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ PR bootstrap/37441
+ * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
+ false.
+
+2008-09-17 Jan Hubicka <jh@suse.cz>
+
+ * ipa-reference.c (ipa_obstack): Remove.
+ (local_info_obstack, global_info_obstack): New.
+ (add_static_var): We now handle variables only.
+ (mark_address_taken, mark_load, mark_store): New functions based on ...
+ (check_operand): ... remove.
+ (get_asm_stmt_operands): Rename to ...
+ (check_asm_memory_clobber): ... this. Look only for memory clobber.
+ (scan_stmt_for_static_refs): Rewrite.
+ (scan_op_for_static_refs): Rename to ...
+ (scan_initializer_for_static_refs): do not look for VAR_DECL
+ initializers; stop recursion on types and decls.
+ (ipa_init): Use proper obstacks.
+ (analyze_variable): Use scan_initializer_for_static_refs.
+ (init_function_info): Use local obstack.
+ (analyze_function): Simplify.
+ (add_new_function): We don't need visited_nodes obstack.
+ (generate_summary): Use proper obstacks; cleanup after propagation.
+
+2008-09-17 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37385
+ PR tree-optimization/37491
+ * alias.c (get_alias_set): Use the canonical type.
+ * tree-vect-transform.c (vectorizable_store): Use the type of
+ the lhs for the vector type. Adjust checking.
+ (vectorizable_load): Adjust checking.
+
+2008-09-16 Jakub Jelinek <jakub@redhat.com>
+ Adam Nemet <anemet@caviumnetworks.com>
+
+ PR rtl-optimization/37483
+ * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
+ if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
+ Rearrange code to better match the original comment. Check
+ t_unconditional first. Improve comment.
+
+2008-09-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/37529
+ * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
+ GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
+
+ PR c++/37530
+ * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
+ GIMPLE_TRY if cleanup sequence is empty.
+
+2008-09-16 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/37263
+ * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
+ eliminate IV if the cost are the same.
+
+2008-09-16 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37380
+ * tree-sra.c (sra_build_assignment): Do not call the gimplifier
+ if not necessary.
+
+2008-09-16 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37508
+ * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
+
+2008-09-15 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
+
+2008-09-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
+ use gen_floatdidf2 directly.
+ (floatunssidf2): Likewise.
+ (floatsidf_ppc64_mfpgpr): Remove.
+ (floatsidf_ppc64): Remove.
+ (floatunssidf_ppc64): Remove.
+
+2008-09-15 Jakub Jelinek <jakub@redhat.com>
+
+ * ira-color.c (finish_cost_update): Free update_cost_queue_elems
+ rather than update_cost_queue.
+
+ * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
+ in every call starting with the second one, instead of only when
+ alias_bitmap_obstack.elements != NULL.
+
+ * tree-predcom.c (filter_suitable_components): Free all refs in
+ act->refs vector before calling release_component.
+ (add_ref_to_chain): Free ref if not adding it to chain->refs.
+
+ * tree-data-ref.c (free_subscripts): Free all subscript objects.
+
+ * tree-loop-linear.c (linear_transform_loops): Initialize
+ lambda_obstack only after calling perfect_loop_nest_depth.
+ Goto free_and_continue instead of just continue for later failures.
+
+ PR middle-end/37479
+ * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
+
+ PR libmudflap/36397
+ * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
+
+2008-09-14 Andreas Schwab <schwab@suse.de>
+
+ * tree-call-cdce.c (check_target_format): Accept Motorola formats.
+
+2008-09-14 Jan Hubicka <jh@suse.cz>
+
+ * invoke.texi (-fconserve-stack): Document.
+ * opts.c (decode_options): Handle conserve_stack.
+ * common.opt (fconvserve_stack): New.
+
+2008-09-14 David Edelsohn <edelsohn@gnu.org>
+
+ * config.host: Add x-aix to host_xmake_file.
+ * config/rs6000/t-aix52: Do not override LDFLAGS.
+ * config/rs6000/x-aix: New file.
+
+2008-09-14 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR target/19636
+ PR target/24894
+ PR target/31644
+ PR target/31786
+ * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
+ is not recognized as a valid register usage. Allow REG_X to be used
+ as a base pointer.
+ * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
+ forces a reload when using a base register.
+
+2008-09-14 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * config/i386/cygming-crtend.c (register_frame_ctor): If
+ DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
+ directly with atexit.
+ (deregister_frame_ctor): Rename to ...
+ (deregister_frame_dtor): Use to call __gcc_deregister_frame
+ if !DEFAULT_USE_CXA_ATEXIT.
+
+2008-09-13 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c: Include value-prof.h
+ * Makefile.in (cgraph.o): Add value-prof.h dependency.
+
+2008-09-13 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/32581
+ * tree-profile.c (add_abnormal_goto_call_edges): New function.
+ (tree_gen_interval_profiler, tree_gen_pow2_profiler,
+ tree_gen_one_value_profiler, tree_gen_average_profiler,
+ tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
+
+2008-09-13 Jan Hubicka <jh@suse.cz>
+
+ * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
+ too many bytes on misalligned blocks.
+
+2008-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/cfg.texi: Fix some typos.
+ * doc/extend.texi: Likewise.
+ * doc/install.texi: Likewise.
+ * doc/invoke.texi: Likewise.
+ * doc/rtl.texi: Likewise.
+ * doc/tree-ssa.texi: Likewise.
+
+2008-09-13 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/30141
+ * tree-nested.c (finalize_nesting_tree_1): Generate valid
+ gimple stores for memory rhs.
+
+2008-09-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR rtl-optimization/37489
+ * cse.c (fold_rtx): Don't return const_true_rtx for float
+ compare if FLOAT_STORE_FLAG_VALUE is undefined.
+
+2008-09-13 Jan Hubicka <jh@suse.cz>
+
+ PR tree-optimization/37392
+ * tree-inline.c (remap_gimple_stmt): Do not remap return value.
+
+2008-09-13 Martin Jambor <mjambor@suse.cz>
+ Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (free_edges): New variable.
+ (NEXT_FREE_EDGE): New macro.
+ (cgraph_free_edge): New function.
+ (cgraph_remove_edge): Call cgraph_remove_edge_1.
+ (cgraph_node_remove_callees): Likewise.
+ (cgraph_node_remove_callers): Likewise.
+ (cgraph_create_edge): Reuse edges from the free list. Do not
+ update uid if doing so.
+ (cgraph_remove_*_hook): Add free call.
+
+2008-09-13 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * ira-color.c (conflict_allocno_vec): Delete.
+ (update_cost_queue_elem): New structure.
+ (update_cost_queue): New variable.
+ (update_cost_queue_tail): Likewise.
+ (update_cost_queue_elems): Likewise.
+ (allocno_update_cost_check): Delete.
+ (initiate_cost_update): Allocate update_cost_queue_elems
+ instead of allocno_update_cost_check.
+ (finish_cost_update): Update the free()s accordingly.
+ (start_update_cost): New function.
+ (queue_update_cost): Likewise.
+ (get_next_update_cost): Likewise.
+ (update_copy_costs_1): Inline into...
+ (update_copy_costs): ...here. Use a queue instead of recursive calls.
+ Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
+ once we've established they are equal. Don't allocate update
+ costs if there is nothing to add to them.
+ (update_conflict_hard_regno_costs): Remove ALLOCNO and
+ DIVISOR arguments. Use a queue instead of recursive calls;
+ process all the allocnos in the initial queue, rather than
+ a single allocno.
+ (assign_hard_reg): Use queue_update_cost instead of
+ conflict_allocno_vec. Queue coalesced allocnos instead
+ of calling update_conflict_hard_regno_costs for each one.
+ Just call update_conflict_hard_regno_costs once for the
+ entire queue.
+ (ira_color): Remove conflict_allocno_vec handling.
+
+2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/37484
+ * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
+ (save_var_name): Same.
+ (initialize_cloog_names): Same.
+ (initialize_cloog_names): Same.
+
+2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
+
+ * tree-scalar-evolution.c (set_instantiated_value): Set
+ instantiated_below.
+
+2008-09-12 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-opt/37377
+
+ * ira-build.c (common_loop_tree_node_dominator): Remove.
+ (copy_live_ranges_to_removed_store_destinations): New function.
+ (regno_top_level_allocno_map): Move to top level from ...
+ (ira_flattening): ... here. Use
+ copy_live_ranges_to_removed_store_destinations.
+
+ * ira-emit.c (generate_edge_moves): Fix a comment.
+
+2008-09-12 Anatoly Sokolov <aesok@post.ru>
+
+ PR target/37466
+ * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
+ scratch register after 'set' pattern.
+
+2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
+ information passed to mark_reg_pointer.
+ * explow.c (force_reg): Likewise.
+
+2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
+ when building for the celledp architecture.
+
+2008-09-12 Richard Guenther <rguenther@suse.de>
+
+ * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
+
+2008-09-12 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR rtl-optimization/37424
+ * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
+ the regnos instead of the addresses.
+
+2008-09-11 Janis Johnson <janis187@us.ibm.com>
+
+ * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
+
+2008-09-11 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
+ entering the weaker equivalence recording.
+
+ * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
+
+2008-09-11 Jeff Law <law@redhat.com>
+
+ * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
+ by assign_stack_local on the IRA path for stack slot sharing
+ as well as the non-IRA path.
+
+2008-09-11 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.h: Fix whitespace issues.
+
+2008-09-11 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-prop.h (struct ipa_param_flags): Removed.
+ (struct ipa_param_descriptor): New structure.
+ (struct ipa_node_params): ipcp_lattices, param_decls and
+ param_flags moved to ipa_param_description.
+ (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
+ descriptors. Renamed all users.
+ (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
+ changed to access descriptors. Renamed all users.
+ (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
+ to access descriptors. Renamed all users.
+ * ipa-cp.c (ipcp_init_cloned_node): Call
+ ipa_initialize_node_params instead of ipa_count_formal_params and
+ ipa_create_param_decls_array.
+ (ipcp_analyze_node): Likewise.
+ (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
+ descriptors. Renamed all users.
+ (ipcp_initialize_node_lattices): Remove allocation.
+ * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
+ ipa_initialize_node_params instead of ipa_count_formal_params and
+ ipa_create_param_decls_array.
+ * ipa-prop.c (ipa_create_param_decls_array): Renamed to
+ ipa_populate_param_decls, made static, added parameter info,
+ renamed mt to node, removed allocation, changed to use
+ descriptors.
+ (ipa_count_formal_params): Made static, added parameter info,
+ renamed mt to node.
+ (ipa_initialize_node_params): New function.
+ (ipa_check_stmt_modifications): Changed to use descriptors.
+ (ipa_detect_param_modifications): Removed allocation, changed to
+ use descriptors.
+ (ipa_note_param_call): Changed to use descriptors.
+ (ipa_analyze_params_uses): Removed allocation.
+ (ipa_free_node_params_substructures): Changed to use descriptors.
+ (ipa_edge_duplication_hook): Use the unused attribute.
+ (ipa_node_duplication_hook): Use the unused attribute, changed to
+ use descriptors, changed to duplicate descriptors.
+
+ * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
+ changed all callers. Call ipa_propagate_indirect_call_infos if doing
+ indirect inlining. Made static.
+ (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
+ functions called only once.
+ (cgraph_decide_recursive_inlining): Don't call
+ ipa_propagate_indirect_call_infos, pass new_edges to
+ cgraph_mark_inline_edge instead.
+ (cgraph_decide_inlining_of_small_functions): Don't call
+ ipa_propagate_indirect_call_infos, pass new_edges to
+ cgraph_mark_inline_edge instead.
+ (cgraph_decide_inlining): Don't call
+ ipa_propagate_indirect_call_infos.
+ * ipa-prop.c: Check that vectors are allocated.
+
+ * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
+ iff a new cgraph edges have been created.
+ (cgraph_decide_inlining): New variable redo_always_inline.
+ Flattening and always_inlining loop until callgraph stabilizes.
+ * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
+ true iff new cgraph edges have been created.
+ (propagate_info_to_inlined_callees): Likewise.
+ (ipa_propagate_indirect_call_infos): Likewise.
+
+2008-09-11 Richard Guenther <rguenther@suse.de>
+
+ * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
+ (set_prologue_iterations): Likewise.
+ * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
+ Likewise.
+ (vect_update_init_of_dr): Likewise.
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
+ type verification.
+ * fold-const.c (fold_unary): Do not generate calculations
+ in sub-types.
+
+2008-09-11 Paolo Bonzini <bonzini@gnu.org>
+
+ * dojump.c (do_jump) [BIT_AND_EXPR]: Move below. Fall through to
+ TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
+ (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
+
+ * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
+ a bool.
+ * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
+ VRP's simplify_stmt_using_ranges. Do simplify_stmt_using_ranges
+ before finalizing the changes.
+ * tree-vrp.c (extract_range_from_binary_expr): Add limited support
+ for BIT_IOR_EXPR.
+ (simplify_truth_ops_using_ranges): New.
+ (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
+ simplify_cond_using_ranges, simplify_switch_using_ranges): Return
+ whether a simplification was made.
+ (simplify_stmt_using_ranges): Ditto, and accept a GSI. For GS_ASSIGN,
+ use a switch statement and also call simplify_truth_ops_using_ranges.
+
+2008-09-11 Jan Hubicka <jh@suse.cz>
+
+ * ggc-common.c (loc_array): Make static.
+ * dce.c (rest_of_handle_ud_dce): Free worklist.
+
+2008-09-11 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (cgraph_release_function_body): Plug memory leak on
+ ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
+ function so we are sure we do not dangle it forever.
+ * function.c (outer_function_chain, find_function_data): Remove.
+ (function_context_stack): New.
+ (push_function_context, pop_function_context): Update.
+ * function.h (struct function): Remove pointer outer.
+ (outer_function_chain, find_function_data): Remove.
+ * stmt.c (force_label_rtx): Remove dead call of find_function_data.
+
+2008-09-11 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/37448
+ * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
+
+2008-09-11 Jan Hubicka <jh@suse.cz>
+
+ * tree-ssa-pre.c (phi_translate_1): Fix memory leak
+
+2008-09-11 Jan Hubicka <jh@suse.cz>
+
+ * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
+ (free_var_map_entry): New function.
+ (redirect_edge_var_map_destroy): Use it.
+
+2008-09-11 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/37448
+ * tree-inline.c (add_lexical_block): Replace with ...
+ (prepend_lexical_block): ... prepend at begginig.
+ (remap_blocks): Use it and reverse later.
+ (expand_call_inline): Use prepend_lexical_block.
+
+2008-09-11 Jan Hubicka <jh@suse.cz>
+
+ * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
+
+2008-09-11 Jan Hubicka <jh@suse.cz>
+
+ * function.c (free_after_compilation): Call insn_locators_free.
+ * cfglayout.c (insn_locators_free): New function.
+ * rtl.h (insn_locators_free): Declare.
+
+2008-09-11 Jan Hubicka <jh@suse.cz>
+
+ * ifcvt.c (check_cond_move_block): Make regs argument pointer to
+ vector pointer.
+ (cond_move_process_if_block): Update call.
+
+2008-09-11 Jan Hubicka <jh@suse.cz>
+
+ * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
+ * vec.c: Include hashtab.h
+ (vec_descriptor, ptr_hash_entry): New structures.
+ (vec_desc_hash, vec_ptr_map): New static variables.
+ (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
+ register_overhead, free_overhead, vec_heap_free): New functions.
+ (vec_gc_o_reserve_1): ggc_free when resizing to 0.
+ (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
+ (cmp_statistic, add_statistics, dump_vec_loc_statistics):
+ New functions.
+
+2008-09-11 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/37474
+ * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
+ length of load permutation.
+
+2008-09-11 Andreas Schwab <schwab@suse.de>
+
+ * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
+
+2008-09-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/37382
+ * expmed.c (extract_low_bits): Avoid creating invalid subregs.
+ * dse.c (find_shift_sequence): Use extract_low_bits instead of
+ simplify_gen_subreg.
+
+2008-09-11 Ira Rosen <irar@il.ibm.com>
+
+ * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
+ for alias check.
+
+2008-09-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37338
+ * gimplify.c (gimplify_body): Call default_rtl_profile.
+
+ PR target/36904
+ * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
+ instead of tok->val.node if not expanding to something else. Handle
+ intervening CPP_PADDING tokens.
+ (altivec_categorize_keyword): Remove unneeded comparisons.
+
+2008-09-10 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
+
+2008-09-10 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/37432
+ * tree-inline.c (insert_init_stmt): Make sure to not
+ insert invalid gimple stores.
+
+2008-09-10 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/37388
+ * toplev.c (process_options): Fail and warn when graphite
+ flags are used, but the compiler has not been configured
+ with graphite libraries.
+ * graphite.c (graphite_transform_loops): Remove printfs
+ to dump_file for the case when graphite is not available.
+
+2008-09-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/37434:
+ * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
+ the even element into register.
+ (ix86_expand_vector_init_general): Don't use
+ ix86_expand_vector_init_interleave on V16QImode and V8HImode
+ if we can't move from GPR to SSE register directly.
+
+2008-09-10 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
+ not lose track of the number of NOPs needed. Number of NOPs needed
+ for sync vs. loads workaround was switched; corrected. Run second
+ pass for all workarounds. No NOPs needed after call insns. Change
+ second pass to use find_next_insn_start and find_load helpers in order
+ to properly detect parallel insns.
+ * config/bfin/bfin.md (cbranch_with_nops): Increase length.
+
+2008-09-10 Jan Hubicka <jh@suse.cz>
+
+ * value-prof.c (gimple_ic): Fix tuplification bug.
+ * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
+ var warning.
+
+2008-09-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/37353
+ * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
+ (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
+ calls instead of cond_dead_built_in_calls.
+ (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
+ initalize the vector only before adding first entry. Use VEC_safe_push
+ instead of VEC_quick_push. Pass cond_dead_built_in_calls to
+ shrink_wrap_conditional_dead_built_in_calls call.
+
2008-09-10 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/37385
* tree-vect-transform.c (vect_create_data_ref_ptr): Add a new argument,
and use it as a vector type if not NULL.
- (vectorizable_store): Call vect_create_data_ref_ptr with the type of
+ (vectorizable_store): Call vect_create_data_ref_ptr with the type of
vectorized rhs.
(vect_setup_realignment): Call vect_create_data_ref_ptr with additional
argument.
2008-09-09 Sandra Loosemore <sandra@codesourcery.com>
- * doc/invoke.texi (ARM Options): Correct errors in discussion
+ * doc/invoke.texi (ARM Options): Correct errors in discussion
of -mfloat-abi, -mhard-float, and -msoft-float.
2008-09-09 Jakub Jelinek <jakub@redhat.com>
calls.
PR target/37438
- * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when optimizing
- for size, not speed.
+ * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
+ optimizing for size, not speed.
PR rtl-optimization/37408
* function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
2008-09-09 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/37375
- * tree-scalar-evolution.c (scev_info_str): Add field instantiated_below.
+ * tree-scalar-evolution.c (scev_info_str): Add field
+ instantiated_below.
(new_scev_info_str, eq_scev_info, find_var_scev_info,
set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
set_instantiated_value): Pass instantiated_below.
- (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls to
- above functions.
- (instantiate_scev_1, instantiate_scev): Pass a basic block above which the
- definitions are not instantiated.
+ (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
+ to above functions.
+ (instantiate_scev_1, instantiate_scev): Pass a basic block above which
+ the definitions are not instantiated.
* tree-scalar-evolution.h (instantiate_scev): Update declaration.
(block_before_loop): New.
- * tree-data-ref.c (dr_analyze_indices): Update uses of instantiate_scev.
+ * tree-data-ref.c (dr_analyze_indices): Update uses of
+ instantiate_scev.
* graphite.c (block_before_scop): New.
- (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
+ (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
basic block, not a loop for determining the parameters.
(scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
scop.
(idx_record_params, find_params_in_bb, find_scop_parameters,
- build_loop_iteration_domains, add_conditions_to_domain): Update calls
+ build_loop_iteration_domains, add_conditions_to_domain): Update calls
to instantiate_scev.
* Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-opt/37333
-
+
* ira-build.c (ira_create_allocno): Setup frequency to 0.
* ira-color.c (update_conflict_hard_regno_costs): Remove assert.
2008-09-09 Jan Hubicka <jh@suse.cz>
- * profile.c (is_edge_inconsistent): Add debug output; ignore negative count
- on fake edges.
+ * profile.c (is_edge_inconsistent): Add debug output; ignore
+ negative count on fake edges.
(is_inconsistent): Add debug output.
2008-09-09 Andrey Belevantsev <abel@ispras.ru>
2008-09-09 Andrey Belevantsev <abel@ispras.ru>
- PR rtl-optimization/37360
+ PR rtl-optimization/37360
* haifa-sched.c (max_issue): Do not assert that we never issue more
insns than issue_rate. Add comment.
-
+
2008-09-09 Richard Guenther <rguenther@suse.de>
* tree-cfg.c (verify_types_in_gimple_op): Remove.
2008-09-07 Helge Deller <deller@gmx.de>
- * pa/linux-atomic.c: New file.
+ * pa/linux-atomic.c: New file.
* pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
* pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
2008-09-07 Richard Guenther <rguenther@suse.de>
- Ira Rosen <irar@il.ibm.com>
+ Ira Rosen <irar@il.ibm.com>
PR tree-optimization/36630
* tree-vect-transform.c (vect_update_ivs_after_vectorizer):
Call STRIP_NOPS before calling evolution_part_in_loop_num.
2008-09-07 Dorit Nuzman <dorit@il.ibm.com>
- Ira Rosen <irar@il.ibm.com>
+ Ira Rosen <irar@il.ibm.com>
PR tree-optimization/35642
* config/rs6000/altivec.md (mulv8hi3): Implement.
2008-09-06 Jan Hubicka <jh@suse.cz>
PR tree-optimization/14703
- * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored declarations.
+ * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
+ declarations.
* passes.c (init_optimization_passes): Recompute inline parameters.
2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
2008-09-05 Vladimir Makarov <vmakarov@redhat.com>
- * ira-color.c (ira_fast_allocation): Permit global allocno
- allocation.
-
+ * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
+
2008-09-05 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
Improved branch hints, safe hints, and scheduling.
(move_operand): Disallow sub-word modes for the constant pool.
* config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
(xtensa_secondary_reload_class): Replace with....
- (xtensa_secondary_reload): this function. Remove SIGN_EXTEND check.
+ (xtensa_secondary_reload): this function. Remove SIGN_EXTEND check.
Set icode for sub-word reloads from the constant pool.
* config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
(SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
* config/xtensa/xtensa.md (reload<mode>_literal): New.
* config/xtensa/xtensa-protos.h: Update prototypes.
-
+
2008-09-05 Joseph Myers <joseph@codesourcery.com>
* config/mips/mips.h (enum reg_class): Add FRAME_REGS.
* ira-build.c (print_copy, print_copies, ira_debug_copy,
ira_debug_copies): New.
(ira_bulid): Call print_copies.
-
+
* doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
-
+
2008-09-04 Samuel Tardieu <sam@rfc1149.net>
PR target/32783
* config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
pointer check lost in the recent no-unit-at-a-time patch.
-
+
2008-09-04 Jan Hubicka <jh@suse.cz>
PR middle-end/37343
2008-09-04 Nick Clifton <nickc@redhat.com>
- * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler
- check.
+ * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
* configure: Regenerate.
* config.in: Regenerate.
* config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
(remove_unnecessary_allocnos): Use all_allocnos.
(check_allocno_creation): Check that allocnos are in the
corresponding bitmap all_allocnos.
-
+
2008-09-03 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-opt/37243
-
+
* ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
(process_regs_for_copy): Process subregs. Refine check when cost
is taken into account in ira-costs.c.
(update_conflict_hard_regno_costs): New function.
(assign_hard_reg): Use it.
(ira_color): Allocate and free conflict_allocno_vec.
-
+
2008-09-03 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-opt/37296
2008-09-03 Danny Smith <dannysmith@usrs.sourceforge.net>
- * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is
- defined.
+ * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
(__gthread_setspecific): Revert 2008-08-31 change to
- __GTHREAD_HIDE_W32API case. Apply it to !__GTHREAD_HIDE_W32API
- case.
+ __GTHREAD_HIDE_W32API case. Apply it to !__GTHREAD_HIDE_W32API case.
2008-09-02 Aldy Hernandez <aldyh@redhat.com>
2008-09-02 Jan Hubicka <jh@suse.cz>
* predict.c (pass_strip_predict_hints): Avoid bugs dump file.
- * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and sdiv_pow2_cheap
+ * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
+ sdiv_pow2_cheap
2008-09-02 H.J. Lu <hongjiu.lu@intel.com>
(graphite.o): Add rule.
* gimple.h (gimple_vec): ... here.
* tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
- * passes.c (init_optimization_passes): Schedule
+ * passes.c (init_optimization_passes): Schedule
pass_graphite_transforms.
2008-09-02 Samuel Tardieu <sam@rfc1149.net>
openmp applications.
* pa-hpux11.h (LIB_SPEC): Likewise.
- * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS is
- defined.
+ * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS
+ is defined.
2008-09-01 Jan Hubicka <jh@suse.cz>
error.
* c-omp.c (c_finish_omp_atomic): Pass location when calling
build_indirect_ref.
- * c-common.c (finish_label_address_expr): Handle new location
- argument.
+ * c-common.c (finish_label_address_expr): Handle new location argument.
* c-common.h (build_indirect_ref): Add argument.
(finish_label_address_expr): Same.
* c-parser.c (c_parser_unary_expression): Pass location to build
* config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
fconsts, fconstd, fcmps and fcmpd. Use them in insn patterns.
* config/arm/arm.c (arm_issue_rate): Add cortexr4f.
- * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn
- types.
+ * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types.
* config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
cortex_a8_vfp_farith: Ditto.
* config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
* config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
- * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P): Pass speed operand.
+ * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P):
+ Pass speed operand.
* expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
* gimplify.c (gimplify_init_constructor): Add speed operand.
* tree-sra.c (decide_block_copy): Likewise.
* config/arm/arm.h (MOVE_RATIO): Update.
* config/pa/pa.md: Update uses of MOVE_RATIO
* config/pa/pa.h (MOVE_RATIO): Update.
- * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES, CLEAR_RATIO, SET_RATIO): Update.
+ * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES,
+ CLEAR_RATIO, SET_RATIO): Update.
* config/h8300/h8300.h (MOVE_RATIO): Update.
* config/v850/v850.h (MOVE_RATIO): Update.
* config/bfin/bfin.h (MOVE_RATIO): Update.
2008-08-31 Andrey Belevantsev <abel@ispras.ru>
- Dmitry Melnik <dm@ispras.ru>
- Dmitry Zhurikhin <zhur@ispras.ru>
- Alexander Monakov <amonakov@ispras.ru>
- Maxim Kuvyrkov <maxim@codesourcery.com>
+ Dmitry Melnik <dm@ispras.ru>
+ Dmitry Zhurikhin <zhur@ispras.ru>
+ Alexander Monakov <amonakov@ispras.ru>
+ Maxim Kuvyrkov <maxim@codesourcery.com>
* sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
sel-sched-dump.c, sel-sched-ir.c: New files.
- * Makefile.in (OBJS-common): Add selective scheduling object
- files.
+ * Makefile.in (OBJS-common): Add selective scheduling object files.
(sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
(SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
(sched-vis.o): Add dependency on $(INSN_ATTR_H).
* common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
fsel-sched-substitution, fselective-scheduling): New flags.
- * cse.c (hash_rtx_cb): New.
+ * cse.c (hash_rtx_cb): New.
(hash_rtx): Use it.
* dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
sel_sched_insn_cnt): New counters.
- * final.c (compute_alignments): Export. Free dominance info after loop_optimizer_finalize.
+ * final.c (compute_alignments): Export. Free dominance
+ info after loop_optimizer_finalize.
* genattr.c (main): Output maximal_insn_latency prototype.
- * genautomata.c (output_default_latencies): New. Factor its code from ...
+ * genautomata.c (output_default_latencies): New.
+ Factor its code from ...
(output_internal_insn_latency_func): ... here.
(output_internal_maximal_insn_latency_func): New.
(output_maximal_insn_latency_func): New.
(EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
* lists.c (remove_free_INSN_LIST_node,
remove_free_EXPR_LIST_node): New functions.
- * loop-init.c (loop_optimizer_init): When LOOPS_HAVE_FALLTHRU_PREHEADERS,
- set CP_FALLTHRU_PREHEADERS when calling create_preheaders.
+ * loop-init.c (loop_optimizer_init): When
+ LOOPS_HAVE_FALLTHRU_PREHEADERS, set CP_FALLTHRU_PREHEADERS when
+ calling create_preheaders.
(loop_optimizer_finalize): Do not verify flow info after reload.
* recog.c (validate_replace_rtx_1): New parameter simplify.
Default it to true. Update all uses. Factor out simplifying
(setup_sched_dump): New function.
(haifa_init_only_bb): New static function.
(haifa_speculate_insn): New static function.
- (try_ready): Use haifa_* instead of speculate_insn and
- change_pattern.
+ (try_ready): Use haifa_* instead of speculate_insn and change_pattern.
(extend_ready, extend_all): Remove.
(sched_extend_ready_list, sched_finish_ready_list): New functions.
(create_check_block_twin, add_to_speculative_block): Use
(current_sched_info_var): Remove.
(move_block_after_check): Use common_sched_info.
(haifa_luid_for_non_insn): New static function.
- (init_before_recovery): Use haifa_init_only_bb instead of
- add_block.
+ (init_before_recovery): Use haifa_init_only_bb instead of add_block.
(increase_insn_priority): New.
* modulo-sched.c: (issue_rate): Remove static declaration.
(sms_sched_info): Change type to haifa_sched_info.
(deps_t): New.
(struct sched_info): Rename to haifa_sched_info. Use const_rtx for
print_insn field. Move add_block and fix_recovery_cfg to
- common_sched_info_def. Move compute_jump_reg_dependencies, use_cselib ...
+ common_sched_info_def. Move compute_jump_reg_dependencies,
+ use_cselib ...
(struct sched_deps_info_def): ... this new structure.
(sched_deps_info): Declare.
(struct spec_info_def): Remove weakness_cutoff, add
(find_single_block_region): Add new argument to indicate that EBB
regions should be constructed.
(debug_live): Delete declaration.
- (current_nr_blocks, current_blocks, target_bb): Remove static qualifiers.
+ (current_nr_blocks, current_blocks, target_bb):
+ Remove static qualifiers.
(compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
declaration.
(init_regions): Delete declaration.
(debug_rgn_dependencies): Delete static qualifier.
(new_ready): Use sched_deps_info. Simplify.
(rgn_common_sched_info, rgn_const_sched_deps_info,
- rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info): New.
+ rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info):
+ New.
(region_sched_info): Rename to rgn_const_sched_info.
(deps_join): New, extracted from ...
(propagate_deps): ... here.
requested from command line.
* doc/invoke.texi: Document new flags and parameters.
* doc/tm.texi: Document new target hooks.
- * config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to ia64_gen_check.
+ * config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to
+ ia64_gen_check.
(dfa_state_size): Do not declare locally.
* config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
* config/rs6000/rs6000.c (rs6000_init_sched_context,
2008-08-31 Jan Hubicka <jh@suse.cz>
- * postreload-gcse.c (eliminate_partially_redundant_loads): Use optimize_bb_for_size_p.
+ * postreload-gcse.c (eliminate_partially_redundant_loads):
+ Use optimize_bb_for_size_p.
* predict.c (maybe_hot_frequency_p): Make inline.
(maybe_hot_count_p): Break out from ...
(maybe_hot_bb_p): ... this one.
(noce_try_cmove_arith): Likewise.
(noce_try_sign_mask): LIkewise.
* expr.c (compress_float_constant): Update rtx_cost calls.
- * tree-ssa-address.c (most_expensive_mult_to_index): Add speed argument.
+ * tree-ssa-address.c (most_expensive_mult_to_index): Add speed
+ argument.
(addr_to_parts): Likewise.
(create_mem_ref): Likewise.
* dse.c (find_shift_sequence): Add speed argument.
(expand_mult_highpart): Use profile.
(expand_smod_pow2): Use profile.
(expand_divmod): Use profile.
- * simplify-rtx.c (simplify_binary_operation_1): Update call of rtx_cost.
+ * simplify-rtx.c (simplify_binary_operation_1): Update call of
+ rtx_cost.
* loop-invariant.c (create_new_invariant): Use profile.
(gain_for_invariant): Add speed parameter.
(best_gain_for_invariant): Likewise.
* config/m68hc11/m68hc11.c
(m68hc11_address_cost, m68hc11_rtx_costs): Update.
* config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
- * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost): Update.
- * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs): Update
+ * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost):
+ Update.
+ * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs):
+ Update
* config/ia64/ia64.c (ia64_rtx_costs): Update.
* config/m68k/m68k.c (m68k_rtx_costs): Update.
* config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
* dojump.c (do_jump): Likewise.
* ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
(note-if_info): Add BRANCH_COST.
- (noce_try_store_flag_constants, noce_try_addcc, noce_try_store_flag_mask,
- noce_try_cmove_arith, noce_try_cmove_arith, noce_try_cmove_arith,
- noce_find_if_block, find_if_case_1, find_if_case_2): Use compuated
- branch cost.
+ (noce_try_store_flag_constants, noce_try_addcc,
+ noce_try_store_flag_mask, noce_try_cmove_arith, noce_try_cmove_arith,
+ noce_try_cmove_arith, noce_find_if_block, find_if_case_1,
+ find_if_case_2): Use computed branch cost.
* expr.h (BRANCH_COST): Update default.
* predict.c (predictable_edge_p): New function.
* expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
* config/sparc/sparc.h (BRANCH_COST): Update.
* config/m32r/m32r.h (BRANCH_COST): Update.
* config/i386/i386.h (BRANCH_COST): Update.
- * config/i386/i386.c (ix86_expand_int_movcc): Update use of BRANCH_COST.
+ * config/i386/i386.c (ix86_expand_int_movcc): Update use of
+ BRANCH_COST.
* config/sh/sh.h (BRANCH_COST): Update.
* config/pdp11/pdp11.h (BRANCH_COST): Update.
* config/avr/avr.h (BRANCH_COST): Update.
* tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
* tree-predcom.c (tree_predictive_commoning): Use
optimize_loop_for_speed_p.
- * varasm.c (assemble_start_function): Use optimize_function_for_speed_p.
+ * varasm.c (assemble_start_function): Use
+ optimize_function_for_speed_p.
* bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
* predict.c (optimize_loop_for_speed_p): Fix walk.
2008-08-29 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-opt/37251
-
* ira-color.c (push_allocnos_to_stack): Truncate
removed_splay_allocno_vec.
2008-08-29 Jan Hubicka <jh@suse.cz>
- * tree.c (build_function_type_skip_args, build_function_decl_skip_args):
- New functions.
- * tree.h (build_function_type_skip_args, build_function_decl_skip_args):
- Declare.
+ * tree.c (build_function_type_skip_args,
+ build_function_decl_skip_args): New functions.
+ * tree.h (build_function_type_skip_args,
+ build_function_decl_skip_args): Declare.
* gimple.c (giple_copy_call_skip_args): New function.
(giple_copy_call_skip_args): Declare.
* cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
* ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
- (ipcp_node_modifiable_p): ... this one; use tree_versionable_function_p.
+ (ipcp_node_modifiable_p): ... this one; use
+ tree_versionable_function_p.
(ipcp_create_replace_map): Improve debug output.
(ipcp_need_redirect_p): Return false when not clonning.
(ipcp_update_callgraph): Skip args.
* cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
(save_inline_function_body): Update call of tree_function_versioning.
* ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
- * tree-inline.c (copy_arguments_for_versioning): Add skip_args argument.
+ * tree-inline.c (copy_arguments_for_versioning): Add skip_args
+ argument.
(tree_function_versioning): Likewise.
* tree-inline.h (tree_function_versioning): Update prototype.
2008-08-29 Jan Hubicka <jh@suse.cz>
- * loop-unswitch.c (unswitch_single_loop): Use optimize_loop_for_speed_p.
- * tree-ssa-threadupdate.c (mark_threaded_blocks): Use optimize_function_for_size_p.
+ * loop-unswitch.c (unswitch_single_loop): Use
+ optimize_loop_for_speed_p.
+ * tree-ssa-threadupdate.c (mark_threaded_blocks):
+ Use optimize_function_for_size_p.
* tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
- * postreload-gcse.c (eliminate_partially_redundant_load): Use optimize_bb_for_size_p.
+ * postreload-gcse.c (eliminate_partially_redundant_load):
+ Use optimize_bb_for_size_p.
* value-prof.c (gimple_divmod_fixed_value_transform,
gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
gimple_stringops_transform): Use optimize_bb_for_size_p.
* builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
(fold_builtin_strcpy, fold_builtin_fputs): Use
optimize_function_for_size_p.
- * fold-const.c (tree_swap_operands_p): Use optimize_function_for_size_p.
+ * fold-const.c (tree_swap_operands_p): Use
+ optimize_function_for_size_p.
* recog.c (relax_delay_slots): Likewise.
- * tree-ssa-math-opts.c (replace_reciprocal): Use optimize_bb_for_speed_p.
+ * tree-ssa-math-opts.c (replace_reciprocal):
+ Use optimize_bb_for_speed_p.
(execute_cse_reciprocals): Use optimize_bb_for_size_p.
* ipa-inline.c (cgraph_decide_recursive_inlining): Use
optimize_function_for_size_p.
(cgraph_decide_inlining_of_small_function): Use
optimize_function_for_size_p.
* global.c (find_reg): Use optimize_function_for_size_p.
- * opts.c (decode_options): Do not clear flag_tree_ch, flag_inline_functions,
- flag_unswitch_loops, flag_unroll_loops, flag_unroll_all_loops and
- flag_prefetch_loop_arrays. Those can work it out from profile.
+ * opts.c (decode_options): Do not clear flag_tree_ch,
+ flag_inline_functions, flag_unswitch_loops, flag_unroll_loops,
+ flag_unroll_all_loops and flag_prefetch_loop_arrays. Those can
+ work it out from profile.
* tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
optimize_loop_for_speed_p.
- * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p): Constify
- argument.
+ * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
+ Constify argument.
(optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
* tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
- * tree-eh.c (decide_copy_try_finally): Use optimize_function_for_size_p.
+ * tree-eh.c (decide_copy_try_finally): Use
+ optimize_function_for_size_p.
* local-alloc.c (block_alloc): Pass BB pointer.
(find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
* gcse.c (gcse_main): Use optimize_function_for_size_p.
- * loop-unroll.c (decide_unrolling_and_peeling): Use optimize_loop_for_size_p.
+ * loop-unroll.c (decide_unrolling_and_peeling):
+ Use optimize_loop_for_size_p.
(decide_peel_completely): Likewise.
* tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
optimize_loop_for_size_p.
(vect_enhance_data_refs_alignment): Likewise.
* tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
- (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map): Update call.
+ (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map):
+ Update call.
* cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
(try_crossjump_bb): Use optimize_bb_for_size_p.
* tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
(tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
(tree_estimate_probability): Do not strip builtin_expect.
(pass_strip_predict_hints): New pass.
- * tree-inline.c (expand_call_inline): When inlining cold function, predict
- it as unlikely.
+ * tree-inline.c (expand_call_inline): When inlining cold function,
+ predict it as unlikely.
* passes.c (init_optimization_passes): Add pass_strip_predict_hints.
2008-08-29 Richard Guenther <rguenther@suse.de>
* config/mips/mips.h (ISA_HAS_DMUL3): New macro.
* config/mips/mips.md (D): New mode attribute.
(mulsi3, muldi3): Merge it into ...
- (mul<mode>3): ... new template. Use _mul3 ending for 3-op
- patterns.
+ (mul<mode>3): ... new template. Use _mul3 ending for 3-op patterns.
(muldi3_mul3): New pattern.
(mulsi3_mult3): Rename to mulsi3_mul3.
* config/arm/arm1020e.md: Remove out of date duplicate comment.
(v10_cvt): Use new fmul types.
-2008-08-26 Paul Brook <paul@codesourcery.com>
+2008-08-26 Paul Brook <paul@codesourcery.com>
* config/arm/vfp.md: Move pipeline description for VFP11 to...
* config/arm/vfp11.md: ...here. New.
(ipcp_create_replace_map): Reformat.
(ipcp_need_redirect_p): Simplify.
(ipcp_insert_stage): Check that argument is used before clonning.
- * ipa-prop.c (ipa_print_node_jump_functions): Do not handle IPA_CONST_REF.
+ * ipa-prop.c (ipa_print_node_jump_functions): Do not handle
+ IPA_CONST_REF.
(compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
(determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
(update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
* ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
(jump_func_type): Remove IPA_CONST_VALUE_REF.
- * tree-inline.c (tree_function_versioning): Add variables referenced by
- replacing trees.
+ * tree-inline.c (tree_function_versioning): Add variables referenced
+ by replacing trees.
2008-08-23 Jan Hubicka <jh@suse.cz>
* c-tree.h (grokfield): New argument.
* c-decl.c (grokfield): Handle new location argument.
- * c-parser.c (c_parser_struct_declaration): Pass location to
- grokfield.
+ * c-parser.c (c_parser_struct_declaration): Pass location to grokfield.
2008-08-21 Richard Guenther <rguenther@suse.de>
(vect_get_and_check_slp_defs): Detect patterns.
(vect_build_slp_tree): Add an argument, don't fail in case of multiple
types.
- (vect_analyze_slp_instance): Don't fail in case of multiple types. Call
- vect_build_slp_tree with correct arguments. Calculate unrolling factor
- according to the smallest type in the loop.
+ (vect_analyze_slp_instance): Don't fail in case of multiple types.
+ Call vect_build_slp_tree with correct arguments. Calculate unrolling
+ factor according to the smallest type in the loop.
(vect_detect_hybrid_slp_stmts): Include statements from patterns.
* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
supportable_widening_operation with correct arguments.
("type" attribute): Removed itof and added ftrunctf,ftruncdf,
ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
- fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible
- values.
+ fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible values.
("bfp" mode attribute): Removed. Every occurence replaced
with <mode>.
* config/s390/s390.c (struct "z10_cost"): Updated entries.
* config/s390/2084.md (insn_reservation "x_itof"): Updated
- type attribute.
+ type attribute.
2008-08-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
handled. -pedantic also enables Wmain.
(c_common_post_options): Handle all logic for Wmain here.
* c-common.c (warn_main): Delete.
- (check_main_parameter_types): Make pedwarns conditional on
- OPT_Wmain.
+ (check_main_parameter_types): Make pedwarns conditional on OPT_Wmain.
* c-common.h (warn_main): Delete.
2008-08-13 H.J. Lu <hongjiu.lu@intel.com>
2008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
- * config/mips/mips.c (mips_unspec_address_offset): Move earlier in file.
+ * config/mips/mips.c (mips_unspec_address_offset): Move earlier
+ in file.
(mips_unspec_address, mips_unspec_offset_high): Likewise.
(mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
(mips16_cfun_returns_in_fpr_p): Likewise.
* c-typeck.c (digest_init): Call verify_sequence_points from here.
(c_finish_return): Likewise.
(c_start_case): Likewise.
- * c-common.c (warn_for_collisions_1): Use explicit location in
- warning.
+ * c-common.c (warn_for_collisions_1): Use explicit location in warning.
* c-parser.c (c_parser_condition): New. Call
verify_sequence_points.
(c_parser_paren_condition): Call c_parser_condition.
2008-08-07 H.J. Lu <hongjiu.lu@intel.com>
PR target/36992
- * config/i386/emmintrin.h (_mm_move_epi64): Use
- __builtin_ia32_movq128.
+ * config/i386/emmintrin.h (_mm_move_epi64): Use __builtin_ia32_movq128.
* config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
(bdesc_args): Add IX86_BUILTIN_MOVQ128.
* config/sh/sh.c (prepare_move_operands, output_far_jump,
output_branchy_insn, add_constant, gen_block_redirect,
sh_insn_length_adjustment, sh_cannot_change_mode_class,
- sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload):
- Likewise.
+ sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): Likewise.
* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
* config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
* configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
* config.in, configure: Rebuild.
* dwarf2asm.c (dw2_asm_output_data_raw): New.
- (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw): New.
+ (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw):
+ New.
(dw2_force_const_mem): Externalize.
* dwarf2asm.h: Update.
* dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
(MFC_MIN_DMA_LIST_ELEMENTS): New define.
(MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
- (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of MFC_MIN_DMA_LIST_ELEMENTS.
- (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of MFC_MAX_DMA_LIST_ELEMENTS.
+ (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of
+ MFC_MIN_DMA_LIST_ELEMENTS.
+ (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of
+ MFC_MAX_DMA_LIST_ELEMENTS.
(MFC_START_ENABLE): Remove PPU-only define.
(MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
* configure.ac: Use the m4_do macro to concatenate the warnings into
one string in ACX_PROG_CC_WARNING_OPTS,
- ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and ACX_PROG_CC_WARNINGS_ARE_ERRORS.
+ ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and
+ ACX_PROG_CC_WARNINGS_ARE_ERRORS.
* configure: Regenerate.
2008-07-28 Richard Guenther <rguenther@suse.de>
(ipa_analyze_params_uses): New function.
(ipa_free_node_params_substructures): Also free the param_calls linked
list.
- (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
+ (ipa_node_duplication_hook): Also duplicate the param_calls
+ linked list.
(ipa_print_node_param_flags): New function.
(ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
(ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
not optimizing so unused user vars remains visible.
* common.opt (flag_tree_ter): Always enable by default.
* tree-ssa-ter.c: Include flags.h
- (is_replaceable_p): Check that locations match; when aliasing is missing
- be conservative about loads.
+ (is_replaceable_p): Check that locations match; when aliasing
+ is missing be conservative about loads.
* tree-optimize.c (gate_init_datastructures): Remove.
(pass_init_datastructures): New.
* passes.c: Reorder passes so we always go into SSA.
2008-07-19 Jan Hubicka <jh@suse.cz>
- * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
+ * doc/extend.texi (flatten attribute): Remove note about
+ unit-at-a-time.
* doc/invoke.texi (--combine): Likewise.
(-finline-functions-called-once): Update levels when enabled.
(-funit-at-a-time): Document new behaviour.