+2008-08-22 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37078
+ * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
+ [+INF, +INF] ranges.
+
+2008-08-22 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37143
+ * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
+ a conversion statement instead of a copy.
+
+2008-08-22 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/37184
+ * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
+ CCCmode, CCOmode and CCSmode destination modes.
+
+ PR target/37191
+ * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
+ from different units in a single alternative.
+ (*vec_extractv2sf_1): Ditto.
+ (*vec_extractv2si_0): Ditto.
+ (*vec_extractv2si_1): Ditto.
+ * config/i386/sse.md (sse2_storehpd): Ditto.
+ (sse2_storelpd): Ditto.
+ (sse2_loadhpd): Ditto.
+ (sse2_loadlpd): Ditto.
+
+ PR target/37197
+ * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
+ (popcountsi2): Ditto.
+ (clzdi2_abm): Ditto.
+ (popcountdi2): Ditto.
+ (clzhi2_abm): Ditto.
+ (popcounthi2): Ditto.
+
+2008-08-22 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36548
+ PR middle-end/37125
+ * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
+ if the multiplication does not overflow.
+
+2008-08-21 Nathan Sidwell <nathan@codesourcery.com>
+
+ * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
+
+2008-08-21 Richard Henderson <rth@redhat.com>
+
+ * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
+ spurrious comma from test.
+ * configure: Rebuild.
+
+2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 30457
+ * builtins.c (fold_builtin_next_arg): Add warning about undefined
+ behaviour.
+
+2008-08-21 Aldy Hernandez <aldyh@redhat.com>
+
+ * 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.
+
+2008-08-21 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
+
+2008-08-21 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (first_cgraph_function_insertion_hook): New variable.
+ (cgraph_add_function_insertion_hook,
+ cgraph_remove_function_insertion_hook,
+ cgraph_call_function_insertion_hooks): New functions.
+ * cgraph.h (cgraph_add_function_insertion_hook,
+ cgraph_remove_function_insertion_hook,
+ cgraph_call_function_insertion_hooks): Declare.
+ * ipa-reference.c (function_insertion_hook_holder): New variable.
+ (check_operand, look_for_address_of): When checking late, do not care
+ about module bitmaps.
+ (add_new_function): New function.
+ (generate_summary): Register hooks; zero module bitmaps.
+ (propagate): Unregister hooks.
+ * ipa-pure-const.c (function_insertion_hook_holder): New variable.
+ (add_new_function): New function.
+ (generate_summary): Register hook.
+ (propagate): Remove hook.
+
+ * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
+
+ * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
+ * ipa-cp.c (ipcp_update_cloned_node): New function.
+ (build_const_val): Handle functions correctly; bring type logic
+ into sync with tree-inline.c
+ (ipcp_init_stage): Take care of computing stuff needed by
+ indirect inlining; update clones.
+ (ipcp_generate_summary): Break out of ipcp_driver.
+ (ipcp_driver): Do only execution and transformation.
+ (pass_ipa_cp): Make IPA_PASS.
+ * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
+ offset to address.
+ * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
+ ipcp, some info is already available.
+ * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
+ * tree-inline.c (remap_ssa_name): Unshare expression.
+
+2008-08-21 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
+ a PHI ask VN if it is already available.
+ * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
+ * tree-ssa-sccvn.c (vn_phi_lookup): Export.
+
+2008-08-21 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36817
+ * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
+ makes sure to produce a result of the correct type.
+
+2008-08-21 Jan Hubicka <jh@suse.cz>
+ Backport from LTO branch:
+
+ 2008-05-05 Kenneth Zadeck <zadeck@naturalbridge.com>
+ Jan Hubicka <jh@suse.cz>
+
+ * ipa-pure-const.c
+ (init_state, finish_state, set_function_state, generate_summary):
+ New functions.
+ (scan_stmt): Renamed from scan_function. Changed to keep state in
+ local static vars rather than cgraph aux field.
+ (propagate): Renamed from static_execute. Changed to keep state in
+ local static vars rather than cgraph aux field.
+ (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
+ * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
+
+ 2008-07-15 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
+ * ipa-reference.c (init_function_info, generate_summary,
+ propagate): New functions.
+ (analyze_function): Call init_function_info.
+ (static_execute): Stripped into generate_summary and propagate.
+ (pass_ipa_reference): Made into ipa_opt_pass.
+
+2008-08-21 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37181
+ * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
+ folding result.
+ (extract_range_from_unary_expr): Likewise.
+
+2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * diagnostic.c (pedwarn_at): Rename as pedwarn.
+ (pedwarn): Delete.
+ * toplev.h (pedwarn_at): Likewise.
+ * builtins.c: Update all calls to pedwarn.
+ * c-lex.c: Likewise.
+ * toplev.c: Likewise.
+ * c-tree.h: Likewise.
+ * c-decl.c: Likewise.
+ * c-errors.c: Likewise.
+ * c-typeck.c: Likewise.
+ * c-common.c: Likewise.
+ * c-parser.c: Likewise.
+
+2008-08-20 Joseph Myers <joseph@codesourcery.com>
+
+ PR target/31070
+ * config/sparc/sparc.c (function_arg_slotno): Handle structure
+ with MODE_VECTOR_INT mode.
+
+2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR middle-end/179
+ * tree-ssa.c (warn_uninit): Do not warn for variables that can be
+ initialized outside the current module.
+ (warn_uninitialized_var): Ignore left-hand side when walking the
+ trees. Ignore address expressions. Examine VUSE operands in gimple
+ statements with a variable declaration on the right-hand side.
+
+2008-08-20 Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR bootstrap/37155
+ * rtlanal.c (subreg_offset_representable_p): Revert last change.
+
+2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 35701
+ * c-common.c (conversion_warning): Do not warn if applying bit-and
+ operator to unsigned constant that fits in the target type.
+
+2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c++/35602
+ * c-common.c (conversion_warning): Do not warn for artificial
+ expressions.
+
+2008-08-20 Richard Guenther <rguenther@suse.de>
+
+ * tree-vrp.c (op_with_constant_singleton_value_range): New function.
+ (extract_range_from_binary_expr): Fall back to constant propagation.
+ (extract_range_from_unary_expr): Likewise.
+
+2008-08-20 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
+ with TREE_THIS_VOLATILE on shared nodes.
+ (fold_stmt_r): Likewise.
+
+2008-08-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/37171
+ * c-parser.c (c_parser_attributes): For keywords use canonical
+ spelling for attr_name.
+
+2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * value-prof.c (check_counter): Revert wrong call to error.
+
+2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * profile.c: Update calls to inform.
+ * value-prof.c: Update calls to inform.
+
+2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * diagnostic.c (inform): Add an explicit location_t parameter.
+ * toplev.h (inform): Update declaration.
+ * builtins.c: Update all calls to inform.
+ * c-common.c: Likewise.
+ * c-decl.c: Likewise.
+ * c-opts.c: Likewise.
+ * c-pch.c: Likewise.
+ * c-pragma.c: Likewise.
+ * c-typeck.c: Likewise.
+ * coverage.c: Likewise.
+ * opts.c: Likewise.
+ * toplev.c: Likewise.
+ * tree-cfg.c: Likewise.
+ * tree-ssa.c: Likewise.
+
+2008-08-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/37169
+ * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
+ V2DI mode, for SSE4.1, use movq instead of vector set if the
+ second element is zero and inter-unit moves are OK.
+
+2008-08-20 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
+ properly handle conversion/copy chains after tuplification.
+
+2008-08-20 Richard Guenther <rguenther@suse.de>
+
+ * passes.c (init_optimization_passes): Move the second
+ forwprop pass before alias computation. Remove the second
+ DCE pass. Remove the first dominator and phi copy/const
+ prop passes.
+
+2008-08-20 Nick Clifton <nickc@redhat.com>
+
+ * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
+ support of this feature. Do not assume that a sufficiently new
+ assembler will support the feature regardless of the target type.
+ (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
+ * configure: Regenerate.
+
+2008-08-20 Richard Guenther <rguenther@suse.de>
+
+ * tree-vrp.c (found_in_subgraph): Remove.
+ (live): New global static.
+ (live_on_edge): New function.
+ (blocks_visited): Remove.
+ (register_edge_assert_for_2): Use live_on_edge.
+ (find_conditional_asserts): Remove code dealing with
+ found_in_subgraph. Do not walk the CFG.
+ (find_switch_asserts): Likewise.
+ (find_assert_locations_1): Renamed from find_assert_locations.
+ Move finding assert locations for conditional and switch
+ statements first. Update live bitmap. Do not walk the CFG.
+ (find_assert_locations): New function.
+ (insert_range_assertions): Remove entry of CFG walk.
+ Adjust call to find_assert_locations.
+ * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
+ that only can appear because of fake exit edges but assert we
+ never try to insert on those.
+ (fini_pre): Do not remove fake exit edges here...
+ (execute_pre): ...but here, before committing edge inserts.
+
+2008-08-19 Richard Guenther <rguenther@suse.de>
+
+ * passes.c (init_optimization_passes): Exchange store-ccp
+ with a ccp pass.
+
+2008-08-19 Rafael Espindola <espindola@google.com>
+
+ * varasm.c (weak_decls): Move earlier in the file.
+ (assemble_external): Add weak decls to the weak_decls list.
+ (declare_weak): Don't add decls to the weak_decls list.
+
+2008-08-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/37157
+ * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
+ before (sse2_shufpd_<mode>).
+
+2008-08-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/37156
+ * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
+ * tree.c (block_nonartificial_location): Likewise.
+
+2008-08-19 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/35972
+ PR tree-optimization/23094
+ * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
+ parameter.
+ * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
+ handle MISALIGNED_INDIRECT_REF.
+ (get_ref_from_reference_ops): New helper.
+ (vn_reference_lookup_pieces): Walk the use-def chain using the
+ alias-oracle if requested.
+ * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
+ walking the use-def chain.
+ (compute_avail): But not here.
+ (create_component_ref_by_pieces_1): Properly handle
+ MISALIGNED_INDIRECT_REF.
+ (do_regular_insertion): Handle fully redundant
+ expressions after PHI-translation also for SSA_NAME values, not
+ only constants. Correctly use edoubleprime for that.
+
+2008-08-19 Ira Rosen <irar@il.ibm.com>
+
+ * tree-vectorizer.c (supportable_widening_operation): Support
+ multi-step conversion, return the number of steps in such conversion
+ and the required intermediate types.
+ (supportable_narrowing_operation): Likewise.
+ * tree-vectorizer.h (vect_pow2): New function.
+ (supportable_widening_operation): Change argument types.
+ (supportable_narrowing_operation): Likewise.
+ (vectorizable_type_promotion): Add an argument.
+ (vectorizable_type_demotion): Likewise.
+ * tree-vect-analyze.c (vect_analyze_operations): Call
+ vectorizable_type_promotion and vectorizable_type_demotion with
+ additional argument.
+ (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_detect_hybrid_slp_stmts): Include statements from patterns.
+ * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
+ supportable_widening_operation with correct arguments.
+ * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector
+ operands lists according to the number of vector statements in left
+ or right node, if exists.
+ (vect_gen_widened_results_half): Remove unused argument.
+ (vectorizable_conversion): Call supportable_widening_operation,
+ supportable_narrowing_operation, and vect_gen_widened_results_half
+ with correct arguments.
+ (vectorizable_assignment): Change documentation, support multiple
+ types in SLP.
+ (vectorizable_operation): Likewise.
+ (vect_get_loop_based_defs): New function.
+ (vect_create_vectorized_demotion_stmts): Likewise.
+ (vectorizable_type_demotion): Support loop-aware SLP and general
+ multi-step conversion. Call vect_get_loop_based_defs and
+ vect_create_vectorized_demotion_stmts for transformation.
+ (vect_create_vectorized_promotion_stmts): New function.
+ (vectorizable_type_promotion): Support loop-aware SLP and general
+ multi-step conversion. Call vect_create_vectorized_promotion_stmts
+ for transformation.
+ (vectorizable_store): Change documentation, support multiple
+ types in SLP.
+ (vectorizable_load): Likewise.
+ (vect_transform_stmt): Pass SLP_NODE to
+ vectorizable_type_promotion and vectorizable_type_demotion.
+ (vect_schedule_slp_instance): Move here the calculation of number
+ of vectorized statements for each node from...
+ (vect_schedule_slp): ... here.
+ (vect_transform_loop): Call vect_schedule_slp without the last
+ argument.
+
+2008-08-19 Dorit Nuzman <dorit@il.ibm.com>
+
+ PR bootstrap/37152
+ * tree-vect-transform.c (vect_create_epilog_for_reduction): Change =
+ to == in assert statement.
+ (vectorizable_reduction): Fix typo.
+
+2008-08-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR bootstrap/37153
+ * value-prof.c (check_counter): Dereference pointer to overall
+ count when printing it.
+
+2008-08-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * profile.h: Really add it.
+
+2008-08-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * mcf.c: Really add it.
+
+2008-08-18 Paul Yuan <yingbo.com@gmail.com>
+ Vinodha Ramasamy <vinodha@google.com>
+
+ * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
+ count_scale.
+ * value-prof.c (check_counter): Fix the counter if
+ flag_profile_correction is true.
+ (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
+ tree_mod_subtract_transform):
+ Follow check_counter parameter change.
+ * common.opt (fprofile-correction): New option.
+ * mcf.c: New file.
+ * profile.h: Likewise.
+ * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
+ (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
+ is_inconsistent, set_bb_counts, read_profile_edge_counts): New
+ functions.
+ (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
+ flag_profile_correction is set.
+
+2008-08-18 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
+
+2008-08-18 Tomas Bily <tbily@suse.cz>
+
+ * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
+ * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
+ CONVERT_EXPR_P.
+ * tree-data-ref.c (split_constant_offset_1): Likewise.
+ * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
+ * tree-sra.c (sra_walk_expr): Likewise.
+ * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
+ * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
+ * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
+ * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
+ Likewise.
+ * gimple.c (gimple_assign_unary_nop_p): Likewise.
+ * tree-vect-transform.c (vectorizable_type_demotion)
+ (vectorizable_type_promotion): Likewise.
+ * tree-inline.c (expand_call_inline):
+ * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
+ (forward_propagate_addr_expr_1, forward_propagate_comparison)
+ (tree_ssa_forward_propagate_single_use_vars): Likewise.
+ * expr.c (expand_expr_real_1): Likewise.
+ * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
+ (gimple_assign_unary_useless_conversion_p): Likewise.
+ * tree-stdarg.c (execute_optimize_stdarg): Likewise.
+ * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
+ * fold-const.c (fold_unary): Likewise.
+ * tree.h (CONVERT_EXPR_P): Likewise.
+ * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
+ * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
+ * tree-vrp.c:
+ (register_edge_assert_for_2, extract_range_from_unary_expr)
+ (register_edge_assert_for_1): Likewise.
+
+2008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
+ dconst_third_ptr, dconst_sqrt2_ptr): Declare.
+ (enum real_value_const): Delete.
+ (get_real_const): Delete.
+ * real.c (get_real_const): Delete.
+ (dconst_e_ptr): Define.
+ (dconst_third_ptr): Define.
+ (dconst_sqrt2_ptr): Define.
+ * builtins.c: Update all callers.
+
+2008-08-18 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
+ statement iterator after statement removal.
+
+2008-08-18 Andreas Tobler <a.tobler@schweiz.org>
+
+ * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
+ (detect_processor_freebsd): Likewise.
+ (host_detect_local_cpu): Call newly added functions for FreeBSD.
+
+2008-08-18 Richard Guenther <rguenther@suse.de>
+
+ * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
+ and loads have the correct types.
+
+2008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR cpp/7263
+ * c-opts.c (cpp_opts): Remove static.
+ * c-parser.c (cpp_opts): Declare it extern.
+ (disable_extension_diagnostics): Handle cpp options.
+ (enable_extension_diagnostics): Likewise.
+
+2008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * diagnostics.c (permerror_at): Rename as permerror.
+ (permerror): Delete.
+ * toplev.h: Likewise.
+
+2008-08-18 Richard Guenther <rguenther@suse.de>
+
+ * passes.c (init_optimization_passes): Remove cleanup_cfg1,
+ sdse1 and addressables2 passes. Replace dce1 with cddce1.
+ Move call_cdce before build_alias. Move copyrename2,
+ cunrolli and ccp2 beafore build_alias. Re-add addressable2
+ right after final inlining.
+ * tree-cfg.c (build_gimple_cfg): Do not dump function here.
+ (pass_build_cfg): But instead via TODO_dump_func.
+
+2008-08-18 Richard Guenther <rguenther@suse.de>
+
+ * tree-sra.c (generate_element_init_1): Deal with NULL constructor
+ element index.
+ (scalarize_init): If we failed to generate some initializers
+ do not generate zeros for not instantiated members. Instead
+ rely on the copy out.
+ * tree-ssa-operands.c (get_addr_dereference_operands): Warn
+ about missing flow-sensitive alias info only if we have
+ aliases computed.
+
+2008-08-17 Nick Clifton <nickc@redhat.com>
+
+ * doc/extend.texi (Function Attributes): Fix typo in description
+ if hot function attribute.
+
+2008-08-17 Daniel Jacobowitz <dan@codesourcery.com>
+ Richard Sandiford <rdsandiford@googlemail.com>
+
+ * doc/install.texi (--with-mips-plt): Document.
+ * doc/invoke.texi (-mplt, -mno-plt): Document.
+ * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
+ and handle ${with_mips_plt}.
+ * config/mips/mips.opt (mplt): New option.
+ * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
+ (TARGET_ABICALLS_PIC2): Likewise.
+ (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
+ (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
+ (ASM_SPEC): Use !mabi=* instead of !mabi*.
+ (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
+ to decide whether to output ".option picX" directives.
+ * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
+ Pass -call_nonpic rather than -KPIC for -mplt.
+ (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
+ on the command line. Also remove it when -mabi=64 is used without
+ -msym32.
+ * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
+ * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
+ TARGET_ABICALLS_PIC0.
+ (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
+ TARGET_ABICALLS.
+ (mips16_build_function_stub): Only output ".option pic" directives
+ and PIC stubs if TARGET_ABICALLS_PIC2. Call through $25 instead of $1.
+ (mips16_build_call_stub): Fix comment and remove redundant
+ ".set at"/"set .noat" directives.
+ (mips_function_rodata_section): Use the default behaviour for
+ TARGET_ABSOLUTE_ABICALLS.
+ (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
+ (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
+ (mips_restore_gp): Do nothing if the current function doesn't use
+ a global pointer.
+ (mips_expand_prologue): Only save $gp if the current function uses it.
+ Use a normal move for TARGET_ABICALLS_PIC0.
+ (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
+
+2008-08-17 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
+ of function when handling GLOBAL_POINTER_REGNUM.
+
+2008-08-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/20548
+ * common.opt (-fstack-check): Do not declare the variable here.
+ (-fstack-check=): New option variant.
+ * doc/invoke.texi (Code Gen Options): Document it.
+ * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
+ (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
+ (STACK_CHECK_STATIC_BUILTIN): New macro.
+ * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
+ * opts.c: Include expr.h.
+ (common_handle_option) <OPT_fold_stack_check_>: New case.
+ <OPT_fstack_check>: Likewise.
+ * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
+ consistently in the test for variable-sized types. Adjust for
+ new behaviour of flag_stack_check.
+ * explow.c: Include except.h.
+ (allocate_dynamic_stack_space): Do not take into account
+ STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
+ * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
+ for variable-sized parameters. Treat all parameters whose size is
+ greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
+ stack checking is enabled.
+ * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
+ size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
+ if generic stack checking is enabled.
+ (expand_function_end): Adjust for new behaviour of flag_stack_check.
+ * reload1.c (reload): Likewise.
+ * stmt.c (expand_decl): Assert that all automatic variables have
+ fixed size at this point and remove dead code.
+ * flags.h (stack_check_type): New enumeration type.
+ (flag_stack_check): Declare.
+ * toplev.c (flag_stack_check): New global variable.
+ * Makefile.in (opts.o): Add dependency on EXPR_H.
+ (explow.o): Add dependency on except.h.
+
2008-08-16 Andy Hutchinson <hutchinsonandy@aim.com>
* config/avr/avr.c (avr_override_options): Reduce value of
* config/s390/2097.md New file.
* config/s390/s390.md ("z10prop" attribute): Define none,
- z10_super, z10_super_E1, z10_super_A1, z10_super_c,
- z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
- z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
- possible values and apply them to insns as appropriate.
- ("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.
+ z10_super, z10_super_E1, z10_super_A1, z10_super_c,
+ z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
+ z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
+ possible values and apply them to insns as appropriate.
+ ("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.
("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>
- PR c/28152
+ PR c/28152
* c-parser.c (c_lex_one_token): Do not store the canonical spelling
for keywords.