Commit Graph

31605 Commits

Author SHA1 Message Date
Hui-May Chang 88c6f10182 revert: i386.c (ix86_function_arg_regno_p): Put back the code before the following patch under TARGET_MACHO.
2007-02-02  Hui-May Chang  <hm.chang@apple.com>

	Revert for x86 darwin:
	2005-06-19  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/i386.c (ix86_function_arg_regno_p): Put back the
	code before the following patch under TARGET_MACHO.
	(ix86_function_value_regno_p): Likewise.

From-SVN: r121515
2007-02-02 18:19:13 +00:00
Kaveh R. Ghazi 1aeef52679 fold-const.c (negate_expr_p, [...]): Handle COMPLEX_EXPR.
* fold-const.c (negate_expr_p, fold_negate_expr): Handle
	COMPLEX_EXPR.
	
testsuite:
	* gcc.dg/builtins-20.c: Add more cases.

From-SVN: r121511
2007-02-02 17:09:55 +00:00
Maxim Kuvyrkov f6ec1d1163 re PR target/29682 (ICE: in change_pattern, at haifa-sched.c:4066 with -O3 -msched-control-spec)
PR target/29682
	* config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory loads to
	general or fp registers.  Add comments.
	* config/ia64/ia64.md (reg_pred_prefix): Add comment.

	PR target/29682
	* gcc-target/ia64/pr29682.c: New test.

From-SVN: r121510
2007-02-02 16:57:18 +00:00
Paolo Bonzini ad12460bed pointer-set.c (insert_aux): Only return insertion slot.
2007-02-02  Paolo Bonzini  <bonzini@gnu.org>

	* pointer-set.c (insert_aux): Only return insertion slot.
	(pointer_set_insert): Adjust.
	(pointer_set_traverse, struct pointer_map_t, pointer_map_create,
	pointer_map_destroy, pointer_map_insert, pointer_map_contains,
	pointer_map_traverse): New.
	* pointer-set.h (pointer_set_traverse, struct pointer_map_t,
	pointer_map_create,  pointer_map_destroy, pointer_map_insert,
	pointer_map_contains, pointer_map_traverse): Declare.

From-SVN: r121507
2007-02-02 16:21:18 +00:00
Jakub Jelinek 6b01cd54dd re PR middle-end/30473 (Internal Compiler Error with a sprintf with few arguments for format %s)
PR middle-end/30473
	* builtins.c (fold_builtin_sprintf): Do not attempt to optimize
	sprintf (str, "%s").  Do not optimize sprintf (str, "nopercent", p++).

	* gcc.dg/pr30473.c: New test.
	* gcc.c-torture/execute/20070201-1.c: New test.

From-SVN: r121495
2007-02-02 13:21:13 +01:00
Maxim Kuvyrkov b198261f9c re PR middle-end/28071 (A file that can not be compiled in reasonable time/space)
* sched-int.h (ds_to_dk, dk_to_ds): Declare functions.
	
	(struct _dep): New type.
	(dep_t): New typedef.
	(DEP_PRO, DEP_CON, DEP_KIND): New access macros.
	(DEP_STATUS): New access macro.  The macro with the same name was
	renamed to DEP_LINK_STATUS.
	(dep_init): Declare function

	(struct _dep_link): New type.
	(dep_link_t): New typedef.
	(DEP_LINK_NODE, DEP_LINK_NEXT, DEP_LINK_PREV_NEXTP): New access macros.
	(DEP_LINK_DEP, DEP_LINK_PRO, DEP_LINK_CON, DEP_LINK_KIND): New macros.
	(DEP_LINK_STATUS): New macro.
	(debug_dep_links): New debug function.

	(struct _deps_list): New type.
	(deps_list_t): New typedef.
	(DEPS_LIST_FIRST): New access macro.
	(FOR_EACH_DEP_LINK): New cycle macro.
	(create_deps_list, free_deps_list, delete_deps_list): Declare
	functions.
	(deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
	(find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
	(copy_deps_list_change_con): Ditto.

	(move_dep_link): Declare function.

	(struct _dep_node): New type.
	(dep_node_t): New typedef.
	(DEP_NODE_BACK, DEP_NODE_DEP, DEP_NODE_FORW): New access macros.

	(struct haifa_insn_data.back_deps): New field to hold backward
	dependencies of the insn.
	(struct haifa_insn_data.depend): Rename to forw_deps.  Change its type
	to deps_list_t.
	(struct haifa_insn_data.resolved_deps): Rename to resolved_back_deps.
	Change its type	to deps_list_t.
	(INSN_BACK_DEPS): New access macro to use instead of LOG_LINKS.
	(INSN_DEPEND): Rename to INSN_FORW_DEPS.
	(RESOLVED_DEPS): Rename to INSN_RESOLVED_BACK_DEPS.

	(INSN_COST): Move to haifa-sched.c.  Use insn_cost () instead.
	
	(DEP_STATUS): Rename to DEP_LINK_STATUS.  Fix typo in the comment.

	(add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration and
	all callers.
	(dep_cost): Declare.
	
	* sched-deps.c (CHECK): New macro to (en/dis)able sanity checks.
	(ds_to_dk, dk_to_ds): New functions.
	
	(init_dep_1): New static function.
	(init_dep): New function.
	(copy_dep): New static function.
	
	(dep_link_consistent_p, attach_dep_link, add_to_deps_list): New static
	functions.
	(detach_dep_link): New static function.
	(move_dep_link): New function.
	
	(dep_links_consistent_p, dump_dep_links): New static functions.
	(debug_dep_links): New debugging function.
	
	(deps_obstack, dl_obstack, dn_obstack): New static variables.
	
	(alloc_deps_list, init_deps_list): New static functions.
	(create_deps_list): New function.
	(clear_deps_list): New static function.
	(free_deps_list, delete_deps_list, deps_list_empty_p): New functions.
	(deps_list_consistent_p, dump_deps_list): New static functions.
	(debug_deps_list): New function.
	(add_back_dep_to_deps_list, find_link_by_pro_in_deps_list): New
	functions.
	(find_link_by_con_in_deps_list, copy_deps_list_change_con): Ditto.

	(maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Update to
	use new scheduler dependencies lists.
	(add_back_dep, delete_all_dependences, fixup_sched_groups): Ditto.
	(sched_analyze): Ditto.  Initialize dependencies lists.
	(add_forw_dep, compute_forward_dependences): Update to use new
	scheduler dependencies lists.
	
	(init_dependency_caches): Init deps_obstack.
	(free_dependency_caches): Free deps_obstack.
	
	(adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Update to use
	new scheduler dependencies lists.
	(delete_forw_dep, add_or_update_back_forw_dep): Ditto.
	(add_back_forw_dep, delete_back_forw_dep): Ditto.

	* sched-rgn.c (set_spec_fed, find_conditional_protection, is_pfree):
	Update to use new scheduler dependencies lists.
	(is_conditionally_protected, is_prisky, add_branch_dependences): Ditto.
	(debug_dependencies): Ditto.
	(schedule_region): Update comments.
	
	* sched-ebb.c (earliest_block_with_similiar_load): Update to use new
	scheduler dependencies lists.
	(schedule_ebb): Update comments.
	
	* rtl.def (DEPS_LIST): Remove.
	
	* lists.c (unused_deps_list): Remove.
	(free_list): Update assertions.
	
	(alloc_DEPS_LIST, free_DEPS_LIST_list, free_DEPS_LIST_node): Remove.
	(remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.

	* rtl.h (free_DEPS_LIST_list, alloc_DEPS_LIST): Remove declarations.
	(remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
	
	* haifa-sched.c (comments): Update.
	(insn_cost1): Remove.  Inline the code into insn_cost ().
	(insn_cost): Update to use new scheduler dependencies lists.  Move
	processing of the dependency cost to dep_cost ().
	(dep_cost): New function.  Use it instead of insn_cost () when
	evaluating cost of the dependency.  Use compatible interface to
	interact with the target.
	(priority): Update to use new scheduler dependencies lists.
	(rank_for_schedule): Ditto.  Optimize heuristic that prefers the insn
	with greater number of insns that depend on the insn.
	(schedule_insn): Update to use new scheduler dependencies lists.  Add
	code to free backward dependencies lists.  Inline and optimize code
	from resolve_dep () - see PR28071.
	(ok_for_early_queue_removal): Update to use new scheduler dependencies
	lists.  Update call to targetm.sched.is_costly_dependence hook.
	
	(fix_inter_tick, try_ready, fix_tick_ready): Update to use new
	scheduler dependencies lists.
	
	(resolve_dep): Remove.  Move the logic to schedule_insn ().
	(init_h_i_d): Initialize dependencies lists.
	
	(process_insn_depend_be_in_spec): Rename to
	process_insn_forw_deps_be_in_spec.  Update to use new scheduler
	dependencies lists.
	(add_to_speculative_block, create_check_block_twin, fix_recovery_deps):
	Update to use new scheduler dependencies lists.
	(clear_priorities, calc_priorities, add_jump_dependencies): Ditto.
	
	* ddg.c (create_ddg_dependence, create_ddg_dep_no_link): Update to use
	new scheduler dependencies lists.
	(build_intra_loop_deps): Ditto.
	
	* target.h (struct _dep): Declare to use in
	gcc_target.sched.is_costly_dependence.
	(struct gcc_target.sched.adjust_cost): Fix typo.
	(struct gcc_target.sched.is_costly_dependence): Change signature to use
	single dep_t parameter instead of an equivalent triad.
	(struct gcc_target.sched.adjust_cost_2): Remove.

	* target-def.h (TARGET_SCHED_ADJUST_COST_2): Remove.

	* reg-notes.def (DEP_TRUE, DEP_OUTPUT, DEP_ANTI): Update comments.

	* doc/tm.texi (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Update
	documentation.
	(TARGET_SCHED_ADJUST_COST_2): Remove documentation.

	* doc/rtl.texi (LOG_LINKS): Remove part about instruction scheduler.
	(REG_DEP_TRUE): Document.
	
	* config/ia64/ia64.c (ia64_adjust_cost_2): Rename to ia64_adjust_cost.
	Change signature to correspond to the targetm.sched.adjust_cost hook.  
	Update use in TARGET_SCHED_ADJUST_COST_2.
	(TARGET_SCHED_ADJUST_COST_2): Rename to TARGET_SCHED_ADJUST_COST.
	(ia64_dependencies_evaluation_hook, ia64_dfa_new_cycle): Update to use
	new scheduler dependencies lists.
	(ia64_gen_check): Ditto.

	* config/mips/mips.c (vr4130_swap_insns_p): Update to use new scheduler
	dependencies lists.
	
	* config/rs6000/rs6000.c (rs6000_is_costly_dependence): Change
	signature to correspond to the targetm.sched.is_costly_dependence hook.
	(is_costly_group): Update to use new scheduler dependencies lists.

	* config/spu/spu.c (spu_sched_adjust_cost): Use insn_cost () function
	instead of INSN_COST () macro.

From-SVN: r121494
2007-02-02 09:11:11 +00:00
Ian Lance Taylor 9a5a8e58d2 * lower-subreg.c (resolve_clobber): Handle a subreg of a concatn.
From-SVN: r121493
2007-02-02 07:20:35 +00:00
Guy Martin 546dcc4352 pa.md (tp_load): Correct mfctl instruction syntax.
* pa.md (tp_load): Correct mfctl instruction syntax.

From-SVN: r121487
2007-02-02 02:09:36 +00:00
Geoffrey Keating 9278121c0f rs6000.c (rs6000_stack_info): Correct altivec_padding_size calculation on AIX.
* config/rs6000/rs6000.c (rs6000_stack_info): Correct
	altivec_padding_size calculation on AIX.  Improve comment, add
	assert to verify that it's right.

From-SVN: r121485
2007-02-02 01:47:02 +00:00
Geoffrey Keating 7c40d6662b darwin.h (MD_UNWIND_SUPPORT): Don't define for 64-bit.
* config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for
	64-bit.

From-SVN: r121484
2007-02-02 01:37:53 +00:00
Seongbae Park 9012cdf36a 2007-2-01 Seongbae Park <seongbae.park@gmail.com>
PR inline-asm/28686
	* global.c (global_alloc): Add mising initialization of
	ELIMINABLE_REGSET.

2007-02-01  Roger Sayle  <roger@eyesopen.com>

From-SVN: r121477
2007-02-01 23:15:13 +00:00
Roger Sayle 62e5bf5d42 alias.c (init_alias_analysis): Correct whitespace.
* alias.c (init_alias_analysis): Correct whitespace.
	* bb-reorder.c (fix_edges_for_rarely_executed_code,
	partition_hot_cold_basic_blocks): Likewise.
	* builtins.c (expand_builtin_printf, expand_builtin_fprintf,
	expand_builtin_sprintf, fold_builtin_carg, fold_builtin_sprintf,
	maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
	fold_builtin_snprintf_chk, fold_builtin_printf,
	fold_builtin_fprintf, do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_arg2,
	do_mpfr_arg3, do_mpfr_sincos): Likewise.
	* cfgcleanup.c (cleanup_cfg): Likewise.
	* cfgexpand.c (tree_expand_cfg): Likewise.
	* fold-const.c (fold_binary) <RDIV_EXPR>: Likewise.
	* function.c (get_next_funcdef_no): Likewise.
	* gengtype.c (main): Likewise.
	* genmodes.c (main): Likewise.
	* gcse.c (bypass_conditional_jumps, print_ldst_list): Likewise.
	* haifa-sched.c (schedule_block, extend_h_i_d): Likewise.
	* ifcvt.c (noce_emit_move_insn): Likewise.
	* modulo-sched.c (generate_prolog_epilog, sms_schedule_by_order):
	Likewise.
	* stor-layout.c (get_best_mode): Likewise.
	* tree-ssa-loop-niter.c (get_val_for): Likewise.
	* tree-ssa-structalias.c (get_varinfo, get_varinfo_fc,
	scc_visit, do_ds_constraint, do_complex_constraint, label_visit,
	perform_var_substitution, solve_graph): Likewise.
	* tree-vrp.c (vrp_finalize): Likewise.

From-SVN: r121470
2007-02-01 20:32:20 +00:00
Ian Lance Taylor 0e6c5b5854 lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the high part of a paradoxical subreg, return a constant zero.
* lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the
	high part of a paradoxical subreg, return a constant zero.

From-SVN: r121466
2007-02-01 16:43:20 +00:00
Zdenek Dvorak c0d919fa35 toplev.c (lang_dependent_init): Call init_set_costs.
* toplev.c (lang_dependent_init): Call init_set_costs.
	* loop-init.c (loop_optimizer_init): Do not call init_set_costs.

From-SVN: r121464
2007-02-01 14:57:08 +00:00
Richard Guenther ee7d8048d5 re PR middle-end/30656 (ICE with -ftrapv)
2007-02-01  Richard Guenther  <rguenther@suse.de>

	PR middle-end/30656
	* fold-const.c (fold_negate_expr): Allow negating a
	constant if overflow does not change.

From-SVN: r121460
2007-02-01 10:27:17 +00:00
Ralf Wildenhues ab873839aa c-tree.texi (Expression trees): Improve markup.
2007-01-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/c-tree.texi (Expression trees): Improve markup.
	* doc/tm.texi (Register Classes, Addressing Modes)
	(Floating Point): Fix spacing after abbreviations.  Fix some
	typos.

From-SVN: r121457
2007-01-31 21:36:17 -08:00
Ben Elliston b818de221c invoke.texi: Replace "bugfix" with "bug fix" throughout.
* doc/invoke.texi: Replace "bugfix" with "bug fix" throughout.
	* doc/contrib.texi: Likewise.
	* doc/install.texi: Likewise.

From-SVN: r121455
2007-02-01 14:05:18 +11:00
Ian Lance Taylor e53a16e75f lower-subreg.c: New file.
gcc/:
	* lower-subreg.c: New file.
	* rtl.def (CONCATN): Define.
	* passes.c (init_optimization_passes): Add pass_lower_subreg and
	pass_lower_subreg2.
	* emit-rtl.c (update_reg_offset): New static function, broken out
	of gen_rtx_REG_offset.
	(gen_rtx_REG_offset): Call update_reg_offset.
	(gen_reg_rtx_offset): New function.
	* regclass.c: Revert patch of 2006-03-05, restoring
	reg_scan_update.
	(clear_reg_info_regno): New function.
	* dwarf2out.c (concatn_loc_descriptor): New static function.
	(loc_descriptor): Handle CONCATN.
	* common.opt (fsplit_wide_types): New option.
	* opts.c (decode_options): Set flag_split_wide_types when
	optimizing.
	* timevar.def (TV_LOWER_SUBREG): Define.
	* rtl.h (gen_reg_rtx_offset): Declare.
	(reg_scan_update): Declare.
	* regs.h (clear_reg_info_regno): Declare.
	* tree-pass.h (pass_lower_subreg): Declare.
	(pass_lower_subreg2): Declare.
	* doc/invoke.texi (Option Summary): List -fno-split-wide-types.
	(Optimize Options): Add -fsplit-wide-types to -O1 list.  Document
	-fsplit-wide-types.
	* doc/rtl.texi (Regs and Memory): Document concat and concatn.
	* Makefile.in (OBJS-common): Add lower-subreg.o.
	(lower-subreg.o): New target.
gcc/testsuite/:
	* gcc.dg/lower-subreg-1.c (test): New test.

From-SVN: r121453
2007-02-01 01:09:35 +00:00
Kazu Hirata 52f7138e13 * config/sh/sh.h (HAVE_SECONDARY_RELOADS): Remove.
From-SVN: r121443
2007-01-31 23:46:54 +00:00
Anatoly Sokolov d1fc69e4a5 re PR target/19087 (Overflowed address in dwarf debug line information)
PR target/19087
	* config/avr/avr.c (DWARF2_ADDR_SIZE): Define.

From-SVN: r121426
2007-01-31 20:23:49 +03:00
Kaveh R. Ghazi 4fc7842350 re PR middle-end/29335 (transcendental functions with constant arguments should be resolved at compile-time)
PR middle-end/29335
	* builtins.c (fold_builtin_sqrt): Use MPFR for constant args.

testsuite:
	* gcc.dg/torture/builtin-math-2.c: Add sqrt cases.
	* gcc.dg/torture/builtin-math-3.c: Likewise.

From-SVN: r121423
2007-01-31 15:06:19 +00:00
Zdenek Dvorak 677cc14d2d cfgloop.h: Include vec-prim.h.
* cfgloop.h: Include vec-prim.h.
	(enum li_flags): Remove LI_ONLY_OLD.
	(loop_iterator): Changed.
	(fel_next, fel_init): Iterate over loop tree.
	(FOR_EACH_LOOP_BREAK): New macro.
	* loop-unswitch.c (unswitch_loops): Do not pass LI_ONLY_OLD to
	FOR_EACH_LOOP.
	* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Ditto.
	* modulo-sched.c (sms_schedule): Ditto.
	* tree-vectorizer.c (vectorize_loops): Ditto.
	* doc/loop.texi: Update information on loop numbering and behavior of
	FOR_EACH_LOOP wrto new loops.
	* tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
	add_to_evolution_1): Test nestedness of loops instead of comparing
	their numbers.
	* tree-chrec.c (chrec_fold_plus_poly_poly,
	chrec_fold_multiply_poly_poly, chrec_evaluate,
	hide_evolution_in_other_loops_than_loop, chrec_component_in_loop_num,
	reset_evolution_in_loop): Ditto.
	* Makefile.in (CFGLOOP_H): Add vecprim.h dependency.

From-SVN: r121422
2007-01-31 13:50:06 +00:00
Dirk Mueller e7917d06e8 c-common.c (warn_about_parentheses): Separate warning about un-parenthized sequence of comparison operators from the...
2007-01-31  Dirk Mueller  <dmueller@suse.de>

        * c-common.c (warn_about_parentheses): Separate warning about
        un-parenthized sequence of comparison operators from the one
        which is supposed to warn about x <= y <= z.

        * testsuite/gcc.dg/Wparentheses-2.c: Update and add new tests.

From-SVN: r121421
2007-01-31 13:43:40 +00:00
Uros Bizjak 9ed4207fce optabs.h (enum optab_index): Add new OTI_isinf.
* optabs.h (enum optab_index): Add new OTI_isinf.
	(isinf_optab): Define corresponding macro.
	* optabs.c (init_optabs): Initialize isinf_optab.
	* genopinit.c (optabs): Implement isinf_optab using isinf?f2
	patterns.
	* builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}.
	(expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L}
	using isinf_optab.
	(expand_builtin): Expand BUILT_IN_ISINF{,F,L} using
	expand_builtin_interclass_mathfn.
	* reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM.
	* config/i386/i386.md (UNSPEC_FXAM): New constant.
	(fxam<mode>2_i387): New insn pattern.
	(isinf<mode>2) New expander to implement isinf, isinff and isinfl
	built-in functions as x87 inline asm.

testsuite/ChangeLog:

	* gcc.dg/builtins-63.c: New test.

From-SVN: r121419
2007-01-31 13:30:20 +01:00
Kazu Hirata c9cde24cd1 * gcc/config/arm/unwind-arm.h (_sleb128_t, _uleb128_t): New.
From-SVN: r121377
2007-01-31 05:23:09 +00:00
Eric Christopher 537bbabdc3 config.gcc: Add geode.
2007-01-30  Eric Christopher  <echristo@apple.com>

	* config.gcc: Add geode.

From-SVN: r121376
2007-01-31 05:16:23 +00:00
Kazu Hirata 88512ba0b8 cgraphunit.c, [...]: Fix comment typos.
* cgraphunit.c, config/arm/arm.c, config/m68k/m68k.c,
	ipa-inline.c, tree-profile.c, tree-ssa-live.c,
	tree-ssa-math-opts.c, tree-ssanames.c, tree-vect-analyze.c,
	value-prof.c: Fix comment typos.

From-SVN: r121374
2007-01-31 03:45:38 +00:00
Manuel López-Ibáñez b9edb4b11c re PR c++/24745 (unpleasant warning for "if (NULL)")
2007-01-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/24745
	* doc/invoke.texi (Wpointer-arith): Document warning.

cp/
	* typeck.c (build_binary_op): Fix logic for warning. Move warning
	to -Wpointer-arith.
	* call.c (convert_like_real): Don't warn when converting to
	boolean type.

testsuite/
	* g++.dg/warn/null4.C: New.

From-SVN: r121361
2007-01-30 22:29:11 +00:00
Janis Johnson 05f182f63a extend.texi (Decimal Floating Types): Remove decfloat.h from the list of discrepancies from the draft TR.
* doc/extend.texi (Decimal Floating Types): Remove decfloat.h from
	the list of discrepancies from the draft TR.

From-SVN: r121358
2007-01-30 20:23:25 +00:00
Dirk Mueller 01a40464d4 re PR c++/30601 (-Wreturn-type warns about more than what the documentation says)
2007-01-30  Dirk Mueller  <dmueller@suse.de>

       PR c++/30601
       * doc/invoke.texi (-Wreturn-type): Update description to
       match new behavior.

From-SVN: r121342
2007-01-30 16:20:06 +00:00
Richard Sandiford 9caea4a72f cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.
gcc/
	* cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.

From-SVN: r121339
2007-01-30 15:07:34 +00:00
Uros Bizjak eaee446477 builtins.c (expand_builtin_int_interclass_roundingfn): New function to handle optabs that operate on floating point input argument and...
* builtins.c (expand_builtin_int_interclass_roundingfn): New function
	to handle optabs that operate on floating point input argument and
	output to integer output.
	(expand_builtin_mathfn) [BUILT_IN_ILOGB]: Move from here ...
	(expand_builtin_interclass_mathfn) [BUILT_IN_ILOGB]: ... to here.
	(expand_builtin): Expand BUILT_IN_ILOGB{,F,L} using
	expand_builtin_interclass_mathfn ().
	* config/i386/i386.md (fxtractxf3_i387): Rename from *fxtractxf3_i387.
	(ilogbsi2): Remove.
	(ilogbxf2, ilogb<mode>2): New expanders to implement ilogb, ilogbf and
	ilogbl built-in functions as x87 intrinsics.

From-SVN: r121336
2007-01-30 12:20:07 +01:00
Richard Guenther 9b1959ffca re PR middle-end/27657 (bogus undefined reference error to static var with -g and -O)
2007-01-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/27657
	* dwarf2out.c (reference_to_unused): Query varpool if the
	variable was output.

	* g++.dg/debug/pr27657.C: New testcase.

From-SVN: r121335
2007-01-30 10:23:01 +00:00
Richard Guenther 91851351be re PR c/30313 (sizeof of expression including bit-field)
2007-01-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/30313
	* passes.c (execute_one_pass): Reset in_gimple_form to not
	confuse non-unit-at-a-time mode.

	* gcc.dg/torture/pr30313.c: New testcase.

From-SVN: r121334
2007-01-30 10:17:09 +00:00
Roger Sayle bcf52d7b57 fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to avoid undefined behaviour on overflow.
* fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to
	avoid undefined behaviour on overflow.  Use force_fit_type_double
	to construct the constant with the specified TREE_OVERFLOW.

From-SVN: r121332
2007-01-30 04:39:59 +00:00
Ben Elliston 5b08110801 Belated typo fix from 2007-01-02.
From-SVN: r121319
2007-01-30 10:06:44 +11:00
Janis Johnson d9a66f98c1 decExcept.c: New.
libdecnumber/
	* decExcept.c: New.
	* decExcept.h: New.
libgcc/
	* Makefile.in (dec-filenames): Add decExcept.
gcc/
	* config/dfp-bit.c: Add parameterized support for fp exceptions.
	* config/dfp-bit.h: Ditto.
gcc/testsuite/
	* gcc.dg/dfp/dfp-except.h: New file.
	* gcc.dg/dfp/fe-check.h: New file.
	* gcc.dg/dfp/fe-binop.c: New test.
	* gcc.dg/dfp/fe-convert-1.c: New test.
	* gcc.dg/dfp/fe-convert-2.c: New test.
	* gcc.dg/dfp/fe-convert-3.c: New test.

From-SVN: r121317
2007-01-29 23:01:35 +00:00
Manuel López-Ibáñez c616e51b00 007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* c-decl.c (pop_scope): Replace warnings with call to
	warn_for_unused_label.
	* c-common.h (warn_for_unused_label): Declare.
	* c-common.c (warn_for_unused_label): Define.
cp/
	* decl.c (pop_label): Replace warning with call to
	warn_for_unused_label.

From-SVN: r121310
2007-01-29 21:05:58 +00:00
Manuel López-Ibáñez 971005966f tree-optimize.c (update_inlined_to_pointers): Delete unused function.
2007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

        * tree-optimize.c (update_inlined_to_pointers): Delete unused
        function.

From-SVN: r121309
2007-01-29 20:54:59 +00:00
Janis Johnson b7f0fff23b Makefile.in (USER_H): Remove decfloat.h.
gcc/
	* Makefile.in (USER_H): Remove decfloat.h.
	* ginclude/decfloat.h: Delete, moving contents to ...
	* ginclude/float.h: Add support for decimal floating point,
	guarded by __STDC_WANT_DEC_FP__.

gcc/testsuite/
	* gcc.dg/dfp/dec-eval-method.c: Replace decfloat.h with float.h.
	* gcc.dg/dfp/decfloat-constants.c: Ditto.
	* gcc.dg/dfp/convert-dfp.c: Ditto.
	* gcc.dg/dfp/convert-int-saturate.c: Ditto.

From-SVN: r121308
2007-01-29 20:27:41 +00:00
Mike Stump 821f6218d7 gccint.texi (Top): Rename Loop Representation to Loop Analysis and Representation to resolve case...
* doc/gccint.texi (Top): Rename Loop Representation to Loop
	Analysis and Representation to resolve case insensitive conflict.
	* doc/loop.texi (Loop Analysis and Representation): Likewise.

From-SVN: r121306
2007-01-29 20:10:33 +00:00
Daniel Berlin 306219a28d tree.h (struct tree_memory_tag): Add aliases member.
2007-01-28  Daniel Berlin  <dberlin@dberlin.org>

	* tree.h (struct tree_memory_tag): Add aliases member.
	(MTAG_ALIASES): New macro.
	* tree-ssa-alias.c (alias_bitmap_obstack): New variable.
	(add_may_alias): Remove pointer-set. Update for may_aliases being
	a bitmap. 
	(mark_aliases_call_clobbered): Update for may_aliases being a
	bitmap.
	(compute_tag_properties): Ditto.
	(create_partition_for): Ditto.
	(compute_memory_partitions): Ditto.
	(dump_may_aliases_for): Ditto.
	(is_aliased_with): Ditto.
	(add_may_alias_for_new_tag): Ditto.
	(rewrite_alias_set_for): Rewrite for may_aliases being a bitmap.
	(compute_is_aliased): New function.
	(compute_may_aliases): Call compute_is_aliased).
	(init_alias_info): Initialize alias_bitmap_obstack.
	(union_alias_set_into): New function.
	(compute_flow_sensitive_aliasing): Use union_aliases_into.
	(have_common_aliases_p): Rewrite to take two bitmaps and use
	intersection.
	(compute_flow_insensitive_aliasing): Stop using pointer-sets.
	Update for bitmaps.
	(finalize_ref_all_pointers): Update for add_may_alias changes.
	(new_type_alias): Ditto.
	* tree-flow-inline.h (may_aliases): Return a bitmap.
	* tree-dfa.c (dump_variable): Check for MTAG_P'ness.
	* tree-ssa.c (verify_flow_insensitive_alias_info): Update for
	may_aliases being a bitmap.
	* tree-flow.h (struct var_ann_d): Remove may_aliases member.
	may_aliases now returns a bitmap.
	* tree-ssa-structalias.c (merge_smts_into): Update for may_aliases
	being a bitmap.
	* tree-ssa-operands.c (add_virtual_operand): Update for
	may_aliases being a bitmap.

From-SVN: r121302
2007-01-29 19:38:00 +00:00
Daniel Berlin 48e540b04f re PR tree-optimization/30630 (Trunk GCC hangs while compiling cpu2k6/perlbench at -O2)
2007-01-29  Daniel Berlin  <dberlin@dberlin.org>

	PR tree-optimization/30630
	* tree-ssa-structalias.c (do_complex_constraint): Mark correct
	variable as changed.

From-SVN: r121295
2007-01-29 17:25:04 +00:00
Simon Martin abc67de15a re PR c++/28266 (ICE on invalid default variable)
PR c++/28266
        * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
        expanded only once even if an error occurs.

From-SVN: r121288
2007-01-29 11:27:21 -05:00
Ben Elliston 098b68ad53 gcov-io.h (__gcov_indirect_call_profiler): Declare.
* gcov-io.h (__gcov_indirect_call_profiler): Declare.
	(__gcov_average_profiler): Likewise.
	(__gcov_ior_profiler): Likewise.
	(__gcov_merge_ior): Likewise.

From-SVN: r121280
2007-01-29 16:53:40 +11:00
Jan Hubicka 52ca6d3504 builtins.c (expand_builtin_memset): Fix typo in my last patch.
* builtins.c (expand_builtin_memset): Fix typo in my last patch.
	* value-prof.c (stringop_block_profile): Likewise.

From-SVN: r121272
2007-01-28 22:27:37 +00:00
Jan Hubicka 079a182e02 expr.c (emit_block_move_via_movmem, [...]): Add variant handling histograms; add wrapper.
* expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall): Add
	variant handling histograms; add wrapper.
	(clear_storage_via_libcall): Export.
	(emit_block_move_hints): Break out from ...; add histograms.
	(emit_block_move): ... this one.
	(clear_storage_hints): Break out from ...; add histograms.
	(clear_storage): ... this one.
	(set_storage_via_memset): Handle histogram.
	* expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare.
	(clear_storage_hints, clear_storage_via_libcall): Declare.
	(set_storage_via_setmem): Update prototype.
	* doc/md.texi (movmem, setmem): Document new arguments.

	* value-prof.c (dump_histogram_value, tree_find_values_to_profile): Add
	new histograms.
	(stringop_block_profile): New global function.
	(tree_stringops_values_to_profile): Profile block size and alignment.
	* value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and
	HIST_TYPE_IOR.
	(struct profile_hooks): Add gen_average_profiler and gen_ior_profiler.
	(stringop_block_profile): Declare.
	* builtins.c: Include value-prof.h.
	(expand_builtin_memcpy, expand_builtin_memset): Pass block profile.
	* gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter.
	(GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants.
	(GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update.
	* profile.c (instrument_values): Add new counters.
	* cfgexpand.c (expand_gimple_basic_block): Propagate histograms to
	calls.
	* tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New.
	(tree_init_edge_profiler): Build new profilers.
	(tree_gen_average_profiler, tree_gen_ior_profiler): New.
	(pass_tree_profile): Add dump.
	(tree_profile_hooks): Update.
	* Makefile.in (LIBGCOV): Add new constants.
	* libgcov.c (__gcov_merge_ior, __gcov_average_profiler,
	__gcov_ior_profiler): New.
	* i386.md (movmem/setmem expanders): Add new optional arguments.

From-SVN: r121270
2007-01-28 19:38:39 +00:00
David Edelsohn b6bd337183 * doc/md.texi (Standard Pattern Names): Document blockage pattern.
From-SVN: r121268
2007-01-28 14:26:43 -05:00
Zdenek Dvorak 7f9bc51b09 tree-ssa-loop-unswitch.c: Include tree-inline.h.
* tree-ssa-loop-unswitch.c: Include tree-inline.h.
	(tree_unswitch_single_loop): Pass eni_size_weights to
	tree_num_loop_insns.
	* tree-ssa-loop-manip.c: Include tree-inline.h.
	(can_unroll_loop_p): Pass eni_size_weights to
	tree_num_loop_insns.
	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p):
	Pass eni_size_weights to estimate_num_insns.
	* tree.h (init_inline_once): Export.
	* toplev.c (backend_init): Call init_inline_once.
	* cgraphunit.c (cgraph_process_new_functions,
	cgraph_analyze_function): Pass eni_inlining_weights to
	estimate_num_insns.
	* ipa-inline.c (compute_inline_parameters): Ditto.
	* tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights
	to estimate_num_insns.
	(try_unroll_loop_completely): Pass eni_size_weights to
	tree_num_loop_insns.
	* tree-eh.c (decide_copy_try_finally): Pass eni_size_weights
	ot estimate_num_insns.
	* tree-ssa-loop-prefetch.c: Include tree-inline.h.
	(loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns.
	* tree-inline.c (eni_inlining_weights, eni_size_weights,
	eni_time_weights): New variables.
	(init_inline_once): Initialize them.
	(struct eni_data): Mew.
	(estimate_num_insns_1, estimate_num_insns): Use weights.
	* tree-inline.h (struct eni_weights_d): New.
	(eni_inlining_weights, eni_size_weights, eni_time_weights): Declare.
	(estimate_num_insns): Declaration changed.
	* cfgloop.h (tree_num_loop_insns): Declaration changed.
	* Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o,
	tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency.

	* gcc.dg/tree-ssa/loop-23.c: New test.

From-SVN: r121260
2007-01-28 17:40:38 +00:00
Zdenek Dvorak b39c670645 tree-data-ref.c (conflict_fn): Assert that the number of affine relations in the conflict function is valid.
* tree-data-ref.c (conflict_fn): Assert that the number of affine
	relations in the conflict function is valid.

From-SVN: r121259
2007-01-28 17:29:30 +00:00