Commit Graph

31556 Commits

Author SHA1 Message Date
Jan Hubicka d48a05c3c4 tree-flow.h (struct stmt_ann_d): Move references_memory to proper place within annotation.
* tree-flow.h (struct stmt_ann_d): Move references_memory to proper
	place within annotation.

From-SVN: r121022
2007-01-21 02:54:43 +00:00
Basile Starynkevitch b153d3e1ca gcc/Changelog typos
From-SVN: r121006
2007-01-20 17:59:46 +00:00
John David Anglin 4c6d872614 pa.c (output_move_double): Change array size of xoperands to 4.
* pa.c (output_move_double): Change array size of xoperands to 4.

From-SVN: r121002
2007-01-20 16:27:06 +00:00
Jan Hubicka bbba68dd6b tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL as temporary.
* tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL
	as temporary.

From-SVN: r120999
2007-01-20 11:24:06 +00:00
Ian Lance Taylor e4c9f3c21d expmed.c (expand_divmod): Cast constant to unsigned HOST_WIDE_INT before negating.
* expmed.c (expand_divmod) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: Cast
	constant to unsigned HOST_WIDE_INT before negating.

From-SVN: r120995
2007-01-20 02:04:31 +00:00
Ian Lance Taylor b2bcf5577a tree-ssa-operands.h (struct vuse_vec_d): Change num_vuse field to unsigned.
* tree-ssa-operands.h (struct vuse_vec_d): Change num_vuse field
	to unsigned.
	(VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Use unsigned comparison.
	(VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
	(SET_VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Likewise.
	(SET_VUSE_ELEMENT_VAR) [ENABLE_CHECKING]: Likewise.
	(SET_VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
	(realloc_vdef, realloc_vuse): Change second parameter to
	unsigned.
	(ssa_operand_iterator_d): Change vuse_index and mayuse_index
	fields to unsigned.
	* tree-ssa-operands.c (realloc_vop): Change num_elem parameter to
	unsigned. Change x and lim locals to unsigned.
	(realloc_vdef, realloc_vuse): Change num_elem parameter to
	unsigned.
	(finalize_ssa_vuse_ops): Change old_i local to unsigned.
	(copy_virtual_operands): Change i and n locals to unsigned.

From-SVN: r120994
2007-01-20 01:31:06 +00:00
Kaveh R. Ghazi 92d966284c re PR middle-end/29335 (transcendental functions with constant arguments should be resolved at compile-time)
PR middle-end/29335
	* builtins.c (fold_builtin_1): Handle builtin fdim.

testsuite:
	* gcc.dg/torture/builtin-math-3.c: Test fdim.

From-SVN: r120993
2007-01-20 00:33:00 +00:00
Jan Hubicka c9fa8bd45b tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars.
* tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars.
        * tree-ssa-structalias.c (compute_points_to_sets): Do call
        init_alias_heapvars.
        (init_alias_heapvars): Initialize only when not already initialized.
        (delete_alias_heapvars): Set heapvar_for_stmt to NULL.

From-SVN: r120983
2007-01-20 00:13:38 +00:00
Roger Sayle db02da7917 common.opt (fsigned-zeros): New command line option.
* common.opt (fsigned-zeros): New command line option.
	* flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead
	of flag_unsafe_math_optimizations.
	* opts.c (set_fast_math_flags): The -ffast-math command line option
	implies -fno-signed-zeros.
	(fast_math_flags_set_p): Likewise.

	* doc/invoke.texi: Document new -fno-signed-zeros option, and update
	the documentation of -ffast-math appropriately.  Wrap long lines.

	* gcc.dg/pr30172-1.c: Specify the -fno-signed-zeros command line
	option instead of -funsafe-math-optimizations.

From-SVN: r120978
2007-01-19 19:35:22 +00:00
Steve Ellcey 67e47f30d0 system.h (ASM_MAKE_LABEL_LINKONCE): Poison.
* system.h (ASM_MAKE_LABEL_LINKONCE): Poison.
	* varasm.c (globalize_decl): Remove ASM_MAKE_LABEL_LINKONCE ifdef.

From-SVN: r120976
2007-01-19 18:38:30 +00:00
Tomas Bily 6bad26173d Patch by Tomas Bily <tbily@suse.cz>
Patch by Tomas Bily  <tbily@suse.cz>
        * cgraphunit.c (cgraph_finalize_function): Updating of pid
        * tree-profile.c:
        (tree_init_ic_make_global_vars): New function
        (tree_init_edge_profiler): call of tree_init_ic_make_global_vars
        (tree_gen_ic_profiler): New function
        (tree_gen_ic_func_profiler): New function
        (tree_profiling): Added calling of tree_gen_ic_func_profiler
        (tree_profile_hooks): Added hook for indirec/virtual calls
        * value-prof.c (tree_find_values_to_profile): New case for
        indirect calls
        (tree_values_to_profile): Call for determining indirect/virtual
        counters
        (tree_indirect_call_to_profile): New function
        (tree_ic_transform): New function
        (tree_ic): New function
        (find_func_by_pid): New function
        (init_pid_map): New function
        (tree_value_profile_transformations): Added check for
        indirect/virtual call transformation
        * value-prof.h (enum hist_type): New counter type for
        indirect/virtual calls
        (profile_hooks): Added new hook for profiling indirect/virtual
        calls
        * profile.c (instrument_values): New case for indirect/virtual
        call added
        * gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6
        (GCOV_COUNTER_V_INDIR): New counter type
        (GCOV_COUNTER_NAMES): New name of counter "indirect" added
        (GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual
        call added
        * cgraph.c: Definition of cgraph_max_pid
        (cgraph_create_node): Default init of pid attribute
        * cgraph.h: Declaration of cgraph_max_pid
        (struct cgraph_node): Added pid attribute
        * libgcov.c (__gcov_indirect_call_profiler): New function
	(__gcov_one_value_profiler_body): New function
	(__gcov_one_value_profiler): Body was moved to
	__gcov_one_value_profiler_body and calls it

	gcc.dg/tree-prof/indir-call-prof.c: New.
	g++.dg/dg.exp: Add tree-prof subdirectory.
	g++.dg/tree-prof/indir-call-prof.C: New.
	g++.dg/tree-prof/tree-prof.exp: New.

From-SVN: r120975
2007-01-19 18:34:02 +00:00
Basile Starynkevitch b7c75af4b5 gty.texi (Options): Document the mark_hook option to GTY.
2007-01-19  Basile Starynkevitch  <basile@starynkevitch.net>

	* doc/gty.texi (Options): Document the mark_hook option to
	GTY.
	* gcc/gengtype.c (write_types_data, write_func_for_structure,
	write_types, ggc_wtd, pch_wtd): Added skip_hooks to
	write_types_data, ggc_wtd, pch_wtd for mark_hook.
	(walk_type, write_func_for_structure): Generate the mark_hook if
	needed.

From-SVN: r120974
2007-01-19 18:05:08 +00:00
Jan Hubicka c3056c2d23 ipa-inline.c (cgraph_decide_inlining_incrementally): Instead of 'early' argument take inlining mode argument specifying whether to...
* ipa-inline.c (cgraph_decide_inlining_incrementally): Instead of 'early' argument
	take inlining mode argument specifying whether to inline for size/speeed or all
	functions; add support for flattening; improve dumpting.
	(cgraph_early_inlining): Update call of decide_inlining_incrementally.

From-SVN: r120970
2007-01-19 17:20:20 +00:00
Manuel López-Ibáñez e65fff3cde re PR c++/17947 (bad warning with implicit conversion and __attribute__((deprecated)))
2007-01-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/17947
	* toplev.c (warn_deprecated_use): Use %qD instead of %qs to
	print the name of the declared identifier.
		
testsuite/
	* g++.dg/warn/deprecated.C: Update warning output.
	* g++.dg/warn/deprecated-2.C: Likewise.
	* g++.dg/warn/deprecated-3.C: New.

From-SVN: r120969
2007-01-19 16:04:57 +00:00
Dirk Mueller b0fede98c0 i386.h (CONDITIONAL_REGISTER_USAGE): Store result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid...
2007-01-19  Dirk Mueller  <dmueller@suse.de>

       * config/i386.h (CONDITIONAL_REGISTER_USAGE): Store
       result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid
       duplicate evaluation.

From-SVN: r120967
2007-01-19 14:11:05 +00:00
Uros Bizjak e2fc57a3e1 i386.md (acos<mode>2): Rename from acossf2 and acosdf2.
* config/i386/i386.md (acos<mode>2): Rename from acossf2 and acosdf2.
	Macroize expander using X87MODEF12 mode macro.  Extend operand 1
	to XFMode, use acosxf2 and truncate result to requested mode.
	Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
	(asin<mode>2): Similarly, with asin expanders.
	(*fscalexf4_i387): Rename from *fscalexf4.
	(expNcorexf3): New expander.
	(expxf2, exp10xf2, exp2xf2): Use expNcorexf3 expander.
	(exp<mode>2): Rename from expsf2 and expdf2. Macroize expander using
	X87MODEF12 mode macro.  Extend operand 1 to XFMode, use expxf2 and
	truncate result to requested mode. Use SSE_FLOAT_MODE_P to disable
	patterns for SSE math.
	(exp10<mode>2): Similarly, with exp10 expanders.
	(exp2<mode>2): Similarly, with exp2 expanders.
	(expm1<mode>2): Similarly, with expm1 expanders.
	(ldexp<mode>3): Similarly, with ldexp expanders.
	(log<mode>2, log10<mode>2, log2<mode>2, log1p<mode>2, logb<mode>2):
	Use gen_truncxf<mode>2_i387_noop to truncate result.

From-SVN: r120966
2007-01-19 15:03:17 +01:00
Richard Sandiford aaacff326f m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32 for ColdFire targets.
gcc/
	* config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32
	for ColdFire targets.

From-SVN: r120965
2007-01-19 13:49:06 +00:00
Nathan Sidwell 835b4008a3 200x-xx-xx Nathan Sidwell <nathan@codesourcery.com> Richard Sandiford <richard@codesourcery.com>
gcc/
200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New macro.
	(INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM.
	(__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME.
	* config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Override.
	(M68K_STATIC_CHAIN_REG_NAME): Likewise.
	* config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.

gcc/testsuite/
200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>

	* gcc.c-torture/execute/nestfunc-7.c: New.

Co-Authored-By: Richard Sandiford <richard@codesourcery.com>

From-SVN: r120964
2007-01-19 13:45:54 +00:00
Richard Sandiford b6d2f42e5e m68k.md (adddi_dilshr32): Rename to...
gcc/
	* config/m68k/m68k.md (adddi_dilshr32): Rename to...
	(*adddi_dilshr32): ...this.  Fix formatting.  Remove commented-out
	non-canonical pattern.  Restrict to !TARGET_COLDFIRE.
	(*adddi_dilshr32_cf): New pattern.
	(adddi3, subdi3): Remove first alternatives.

From-SVN: r120963
2007-01-19 13:42:00 +00:00
Richard Sandiford f6ab62e8ea m68k.c (notice_update_cc): If an SFmode move is implemented using move.l...
gcc/
	* config/m68k/m68k.c (notice_update_cc): If an SFmode move is
	implemented using move.l, do not use its cc result for floating-point
	comparisons.

From-SVN: r120962
2007-01-19 13:40:54 +00:00
Richard Sandiford fe0cc77654 m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint from accepting 's' constraints if flag_pic.
gcc/
	* config/m68k/m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint
	from accepting 's' constraints if flag_pic.

From-SVN: r120961
2007-01-19 13:40:21 +00:00
Richard Sandiford 379cd895c1 gcc/
* config/m68k/m68k.md (bordered, bunordered, buneq, bunge, bungt)
	(bunle, bunlt, bltgt, bordered_rev, bunordered_rev, buneq_rev)
	(bunge_rev, bungt_rev, bunle_rev, bunlt_rev, bltgt_rev): Change
	condition from TARGET_68881 to TARGET_HARD_FLOAT.

From-SVN: r120960
2007-01-19 13:39:35 +00:00
Sandra Loosemore 7a6525d680 200x-xx-xx Sandra Loosemore <sandra@codesourcery.com>
gcc/
200x-xx-xx  Sandra Loosemore  <sandra@codesourcery.com>

	* longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add
	ColdFire alternatives.
	* config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro.
	* config/m68k/m68k.md (clzsi2):  Define for ColdFire
	architectures that support ff1 instruction.

From-SVN: r120959
2007-01-19 13:34:59 +00:00
Richard Sandiford f233b84c17 200x-xx-xx Richard Sandiford <richard@codesourcery.com> Julian Brown <julian@codesourcery.com>
gcc/
200x-xx-xx  Richard Sandiford  <richard@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>

	* config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Add an 'R' case.
	* config/m68k/m68k.md (*movsi_cfv4): Fold into...
	(*movsi_cf): ...here.  Remove unnecessary 'R' from 'Rg'.
	Add commentary.

Co-Authored-By: Julian Brown <julian@codesourcery.com>

From-SVN: r120958
2007-01-19 13:30:35 +00:00
Richard Sandiford bda2a57174 m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT and return a bool.
gcc/
	* config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT
	and return a bool.
	(output_move_const_into_data_reg, output_move_simode_const): Delete.
	* config/m68k/m68k.c (const_method, const_int_cost): Take a
	HOST_WIDE_INT instead of an rtx.
	(m68k_rtx_costs): Update call accordingly.
	(output_move_const_into_data_reg): Likewise.  Fix formatting.
	(valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx.
	Return a bool.
	(output_move_simode_const): Update calls after above changes.
	Rework to use automatic variables and predicates like MEM_P.
	* config/m68k/m68k.md (pushexthisi_const): Update call to
	valid_mov3q_const.

From-SVN: r120957
2007-01-19 13:28:57 +00:00
Dirk Mueller 23e739936e tree-ssa-alias.c (perform_var_substitution): Fix typo in dump_flags test.
2007-01-19  Dirk Mueller  <dmueller@suse.de>

       * tree-ssa-alias.c (perform_var_substitution): Fix typo
       in dump_flags test.

From-SVN: r120954
2007-01-19 11:51:25 +00:00
Richard Guenther b54c5497e5 builtins.c (expand_builtin_cexpi): Fall back to expanding via cexp in case sincos is not available.
2007-01-19  Richard Guenther  <rguenther@suse.de>

	* builtins.c (expand_builtin_cexpi): Fall back to expanding
	via cexp in case sincos is not available.

From-SVN: r120953
2007-01-19 11:13:24 +00:00
Richard Guenther 006339cde4 tm.texi (TARGET_HAS_SINCOS): Document new target macro.
2007-01-19  Richard Guenther  <rguenther@suse.de>

	* doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro.
	* defaults.h (TARGET_HAS_SINCOS): Default to off.
	* config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc.
	* config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise.
	* config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise.
	* config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise.
	* config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise.
	* config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise.

From-SVN: r120952
2007-01-19 11:06:56 +00:00
Uros Bizjak 8ef4f42c93 i386.md (*fpatanxf3_i387, [...]): New insn patterns.
* config/i386/i386.md (*fpatanxf3_i387, fpatan_extend<mode>xf3_i387):
	New insn patterns.
	(atan2sf3_1, atan2df3_1, atan2xf3_1): Remove insn patterns.
	(atan2xf3): Directly generate RTL pattern.
	(atan2<mode>3): Rename from atan2sf3 and atan2df3 and macroize insn
	patterns using X87MODEF12 mode macro.  Use fpatan_extend<mode>xf3_i387
	and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
	disable patterns for SSE math.
	(atan<mode>2): Rename from atansf2 and atandf2 and macroize insn
	patterns using X87MODEF12 mode macro.  Use fpatan_extend<mode>xf3_i387
	and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
	disable patterns for SSE math.

From-SVN: r120950
2007-01-19 09:59:39 +01:00
Alexandre Oliva fe30b1f37e * libgcc-std.ver: Fix typo in %inherit for GCC_4.3.0.
From-SVN: r120948
2007-01-19 06:27:18 +00:00
Roger Sayle f85242f0ce fold-const.c (fold_unary): Optimize away a VIEW_CONVERT_EXPR to the same type as it's operand.
* fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Optimize away a
	VIEW_CONVERT_EXPR to the same type as it's operand.

From-SVN: r120945
2007-01-19 00:30:47 +00:00
David Edelsohn 7fcc054b8f darwin-ldouble.c: Only build _SOFT_FLOAT if configured for long double 128.
* config/rs6000/darwin-ldouble.c: Only build _SOFT_FLOAT if
        configured for long double 128.

From-SVN: r120938
2007-01-18 18:43:08 -05:00
Mike Stump d1123cdeb3 rs6000.c (rs6000_emit_vector_compare): Fix build error.
* config/rs6000/rs6000.c (rs6000_emit_vector_compare): Fix build
	error.

From-SVN: r120935
2007-01-18 22:15:36 +00:00
Michael Meissner 7874f14d88 Make #if 0 type correct
From-SVN: r120934
2007-01-18 22:12:49 +00:00
Jan Hubicka 4cdffd965f tree-ssa-operands.c (vop_free_bucket_size): Never return value greater than NUM_VOP_FREE_BUCKETS.
* tree-ssa-operands.c (vop_free_bucket_size): Never return value
	greater than NUM_VOP_FREE_BUCKETS.

From-SVN: r120933
2007-01-18 21:58:18 +00:00
Daniel Berlin 3e5937d7b3 tree-ssa-structalias.c: Update comments.
2007-01-18  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c: Update comments.
	(ptabitmap_obstack): Removed.
	(pta_obstack): New.
	(oldpta_obstack): Ditto.
	(stats): Add a few members.
	(struct variable_info): Remove node, complex, address_taken, and
	indirect_target members. Add oldsolution member.
	(new_var_info): Do not initialize removed members.
	(constraint_expr_type): Remove INCLUDES.
	(constraint_graph): Add size, implicit_preds, rep,
	indirect_cycles, eq_rep, label, direct_nodes, and complex members.
	(FIRST_REF_NODE): New macro.
	(LAST_REF_NODE): Ditto.
	(FIRST_ADDR_NODE): Ditto.
	(find): New function.
	(unite): Ditto.
	(dump_constraint): Do not handle INCLUDES.
	(insert_into_complex): Do not insert duplicate constraints.
	(condense_varmap_nodes): Renamed and rewritten into ...
	(merge_node_constraints): This. Also fix bug in handling of
	offseted copy constraints.
	(clear_edges_for_node): No longer need to deal with preds at all,
	or removing associated preds/succs. 
	(merge_graph_nodes): Deal with indirect_cycles.
	Don't deal with predecessors.
	(add_implicit_graph_edge): New function.
	(add_pred_graph_edge): Ditto.
	(add_graph_edge): Don't deal with predecessors.
	(build_constraint_graph): Removed.
	(build_pred_graph): New function.
	(build_succ_graph): Ditto.
	(struct scc_info): Removed in_component. Added roots, dfs, and
	node_mapping. Remove visited_index, unification_queue.
	(scc_visit): Deal with union-find we do now.
	Deal with cycles with REF nodes.
	(collapse_nodes): Renamed and rewritten to ...
	(unify_nodes): This.
	(process_unification_queue): Removed.
	(topo_visit): Cleanup
	(do_da_constraint): Use find.
	(do_sd_constraint): Ditto.
	(do_ds_constraint): Ditto.
	(do_complex_constraint): Ditto.
	(init_scc_info): Update for removed and added members.
	(find_and_collapse_graph_cycles): Renamed and rewritten into ...
	(find_indirect_cycles): This.
	(equivalence_class): New variable.
	(label_visit): New function.
	(perform_variable_substitution): Rewritten.
	(free_var_substitution_info): New function.
	(find_equivalent_node): Ditto.
	(move_complex_constraints): Ditto.
	(eliminate_indirect_cycles): Ditto.
	(solve_graph): Only propagate changed bits.
	Use indirect cycle elimination.
	Use find.
	(tree_id_t): Rename to tree_vi_t, delete id member, add vi member.
	(tree_id_eq): Renamed to ...
	(tree_vi_eq): This. Update for member change
	(insert_id_for_tree): Renamed and rewritten to ...
	(insert_vi_for_tree): This.
	(lookup_id_for_tree): Renamed and rewritten to ...
	(lookup_vi_for_tree): This.
	(get_id_for_tree): Renamed and rewritten to ...
	(get_vi_for_tree): Ditto.
	(get_constraint_exp_from_ssa_var): Update to use get_vi_for_tree.
	(process_constraint): Don't handle INCLUDES.
	Remove special ADDRESSOF case.
	(find_func_aliases): Rewrite to use vi functions instead of id
	ones.
	(create_function_info_for): Ditto.
	(create_variable_info_for): Ditto.
	(intra_create_variable_infos): Ditto.
	(merge_smts_into): Ditto.
	(find_what_p_points_to): Ditto.
	(init_base_vars): Ditto.
	(init_alias_vars): Ditto.
	(remove_preds_and_fake_succs): New function.
	(dump_sa_points_to_info): Dump new stats.
	(dump_solution_for_var): Use find.
	(set_used_smts): Fix formatting.
	(compute_points_to_sets): Updated for new functions.
	(ipa_pta_execute): Ditto.

From-SVN: r120931
2007-01-18 21:30:38 +00:00
Kazu Hirata 576c9028f0 200x-xx-xx Kazu Hirata <kazu@codesourcery.com> Richard Sandiford <richard@codesourcery.com>
gcc/
200x-xx-xx  Kazu Hirata  <kazu@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
	parallels.
	* calls.c (expand_call): If the return value is a PARALLEL,
	extract its first member.
	* config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
	* config/m68k/m68k.c (m68k_output_function_epilogue): Don't
	use FUNCTION_EXTRA_EPILOGUE.
	(m68k_function_value): Return a PARALLEL if the return value
	is of a pointer type.
	* config/m68k/netbsd-elf.h (current_function_returns_pointer)
	(FUNCTION_EXTRA_EPILOGUE): Remove.
	* config/m68k/m68k.md (D0_REG): New constant.

Co-Authored-By: Richard Sandiford <richard@codesourcery.com>

From-SVN: r120929
2007-01-18 19:54:44 +00:00
Kazu Hirata dfd050746b 200x-xx-xx Kazu Hirata <kazu@codesourcery.com>
gcc/
200x-xx-xx  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k.c (m68k_output_function_epilogue): Don't
	output a NOP for empty epilogues.

From-SVN: r120928
2007-01-18 19:52:51 +00:00
Richard Sandiford 413ac1b28d m68k.c (m68k_use_return_insn): Update comments before function.
gcc/
	* config/m68k/m68k.c (m68k_use_return_insn): Update comments
	before function.  Extend register save check to include all
	registers, not just integer ones.

From-SVN: r120927
2007-01-18 19:51:47 +00:00
Kazu Hirata a2bda628bf 200x-xx-xx Kazu Hirata <kazu@codesourcery.com>
gcc/
200x-xx-xx  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k-protos.h (use_return_insn): Rename to...
	(m68k_use_return_insn): ...this.
	* config/m68k/m68k.h (USE_RETURN_INSN): Delete.
	* config/m68k/m68k.c (use_return_insn): Rename to...
	(m68k_use_return_insn): ...this.
	* config/m68k/m68k.md (return): Use m68k_use_return_insn instead
	of USE_RETURN_INSN.

From-SVN: r120926
2007-01-18 19:50:48 +00:00
Nathan Sidwell e444d54e44 200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>
gcc/
200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68k/fpgnulib.c (__truncdfsf2): Implement round to
	nearest even, fix denormal rounding overflow.

From-SVN: r120925
2007-01-18 19:49:59 +00:00
Richard Sandiford 17e143a173 m68k.md (movsf_cf_hard): Use fsmove instead of f%$smove and f%$move.
gcc/
	* config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of
	f%$smove and f%$move.
	(movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1.
	(extendsfdf2_cf): Use fdmove instead of f%&move.
	(truncdfsf2_cf): Use fsmove instead of f%$smove.
	(add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>.

From-SVN: r120924
2007-01-18 19:49:17 +00:00
Richard Sandiford bb017fc18e m68k.md (movdf_cf_hard): Use output_move_double for GPR<-GPR moves.
gcc/
	* config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for
	GPR<-GPR moves.

From-SVN: r120923
2007-01-18 19:46:30 +00:00
Richard Sandiford 58145e4deb real.h (real_format): Add a canonical_nan_lsbs_set field.
gcc/
	* real.h (real_format): Add a canonical_nan_lsbs_set field.
	(coldfire_single_format): Declare.
	(coldfire_double_format): Likewise.
	* real.c (encode_ieee_single): Use canonical_nan_lsbs_set instead
	of qnan_msb_set to determine the lower bits of a canonical
	NaN significand.
	(encode_ieee_double): Likewise.
	(encode_ieee_quad): Likewise.
	(ieee_single_format): Initialize canonical_nan_lsbs_set.
	(mips_single_format): Likewise.
	(ieee_double_format): Likewise.
	(mips_double_format): Likewise.
	(ieee_extended_motorola_format): Likewise.
	(ieee_extended_intel_96_format): Likewise.
	(ieee_extended_intel_128_format): Likewise.
	(ieee_extended_intel_96_round_53_format): Likewise.
	(ibm_extended_format): Likewise.
	(mips_extended_format): Likewise.
	(ieee_quad_format): Likewise.
	(mips_quad_format): Likewise.
	(vax_f_format): Likewise.
	(vax_d_format): Likewise.
	(vax_g_format): Likewise.
	(i370_single_format): Likewise.
	(i370_double_format): Likewise.
	(decimal_single_format): Likewise.
	(decimal_double_format): Likewise.
	(decimal_quad_format): Likewise.
	(c4x_single_format): Likewise.
	(c4x_extended_format): Likewise.
	(real_internal_format): Likewise.
	(coldfire_single_format): New real_format.
	(coldfire_double_format): Likewise.
	* config/pdp11/pdp11.c (pdp11_f_format): Initialize
	canonical_nan_lsbs_set.
	(pdp11_d_format): Likewise.
	* config/m68k/m68k.c (override_options): Override REAL_FORMAT_MODE
	if TARGET_COLDFIRE_CPU.

From-SVN: r120922
2007-01-18 19:45:13 +00:00
Richard Sandiford 29ca003a7a m68k-protos.h (m68k_output_pic_call): Delete.
gcc/
	* config/m68k/m68k-protos.h (m68k_output_pic_call): Delete.
	(output_call, m68k_legitimize_call_address): Declare.
	* config/m68k/m68k.h (EXTRA_CONSTRAINT): Remove unnecessary
	parenthesees.  Add support for a 'W' constraint.
	(LEGITIMATE_PIC_OPERAND_P): Remove SYMBOL_REF_FLAG handling.
	(PRINT_OPERAND_PUNCT_VALID_P): Remove comment about 'o'.
	(m68k_symbolic_call, m68k_symbolic_jump): Declare.
	* config/m68k/m68k.c (m68k_symbolic_call, m68k_symbolic_jump): New
	variables.
	(override_options): Initialize them.  Do not set flag_no_function_cse
	for TARGET_ID_SHARED_LIBRARY.
	(m68k_output_pic_call): Delete.
	(m68k_legitimize_call_address): New function.
	(print_operand): Remove the %o prefix.  Handle the %p prefix.
	(output_call): New function.
	(m68k_output_mi_thunk): Use m68k_symbolic_jump.  Always load the
	target address from the GOT if symbolic jumps are not allowed.
	* config/m68k/m68k.md (call, general_operand): Do not set
	SYMBOL_REF_FLAG.  Use m68k_legitimize_call_address instead.
	Merge separate flag_pic and !flag_pic define_insns into...
	(*call, *call_value): ...these new patterns.  Match the address
	rather than the containing MEM and require it to be a call_operand.
	Use output_call to generate the asm template.
	* config/m68k/predicates.md (const_call_operand): New predicate.
	(call_operand): Likewise.

From-SVN: r120921
2007-01-18 19:40:12 +00:00
Nathan Sidwell 85dbf7e225 200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>
gcc/
200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68k/m68k.h (REGISTER_MOVE_COST): Simplify definition.
	(STACK_GROWS_DOWNWARD): Define to 1.
	(FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Equivocate
	comments, emphasizing that these values are only defaults.
	* config/m68k/linux.h (LINK_SPEC): Fix formatting in #undef.
	* config/m68k/m68k.c (const_method): Remove trailing whitespace.

From-SVN: r120920
2007-01-18 19:35:11 +00:00
Richard Sandiford 565e35c947 m68k.md (cmpsi): Remove outdated flag_pic handling.
gcc/
	* config/m68k/m68k.md (cmpsi): Remove outdated flag_pic handling.

gcc/testsuite/
200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>

	* gcc.dg/m68k-pic-1.c: New.

From-SVN: r120919
2007-01-18 19:33:01 +00:00
Kazu Hirata 36e04090c1 200x-xx-xx Kazu Hirata <kazu@codesourcery.com> Richard Sandiford <richard@codesourcery.com>
gcc/
200x-xx-xx  Kazu Hirata  <kazu@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P)
	(FP_REGNO_P): New macros.
	(REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P)
	(REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them.
	(EH_RETURN_STACKADJ_RTX): Use A0_REG.
	* config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros.

Co-Authored-By: Richard Sandiford <richard@codesourcery.com>

From-SVN: r120918
2007-01-18 19:31:15 +00:00
Nathan Sidwell 47b41fa34a 200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>
gcc/
200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>

	* config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
	(m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib
	to $tmake_file.
	* config/m68k/t-floatlib: New file, extracting common code from...
	* config/m68k/t-m68kbare, config/m68k/t-m68kelf,
	* config/m68k/t-uclinux: Here.
	* config/m68k/fpgnulib.c: Do not compile extendeed precision
	routines on ColdFire targets.

From-SVN: r120917
2007-01-18 19:29:48 +00:00
Nathan Sidwell a96533d5e5 200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>
gcc/
200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>

	* config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
	(m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*)
	(m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*)
	(m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and
	explicitly set MOTOROLA to 1.
	* config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly.

From-SVN: r120916
2007-01-18 19:26:21 +00:00
Richard Sandiford ba5f7c88dc 200x-xx-xx Richard Sandiford <richard@codesourcery.com> Nathan Sidwell <nathan@codesourcery.com>
gcc/
200x-xx-xx  Richard Sandiford  <richard@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete.
	(ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases.
	* config/m68k/coff.h (REGISTER_PREFIX_MD): Delete.
	* config/m68k/m68020-elf.h (LIB_SPEC): Delete.
	* config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete.
	* config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD)
	(ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
	(NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine.
	(BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete.
	* config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine.
	* config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE)
	(WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete.
	(TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here.
	(DBX_REGISTER_NUMBER): Delete.
	* config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete.
	(PCC_STATIC_STRUCT_RETURN): Don't undefine.
	* config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define.

Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com>

From-SVN: r120913
2007-01-18 19:12:34 +00:00
Richard Sandiford abe92a04b6 config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
gcc/
	* config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
	* config/flat.h: New file.
	* crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if
	OBJECT_FORMAT_FLAT.
	* config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use
	indirect references for -msep-data or -mid-shared-library.
	Do not use PC-relative code addresses either.
	* config/m68k/m68k.c (override_options): Restrict -fPIC error
	to -mpcrel.
	* config/m68k/uclinux.h (STARTFILE_SPEC): Define.  Use Scrt1.o
	for shared libraries and crt1.o for executables.  Use crti.o and
	crtbegin.o.
	(ENDFILE_SPEC): Use crtend.o and crtn.o.
	(LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given.
	Do not add -elf2flt or -shared-lib-id options here.
	(LINK_SPEC): Define.  Pass -elf2flt if no -elf2flt option is given.
	Pass -shared-lib-id if -mid-shared-library, taking the library
	identifier from -mshared-library-id if given, otherwise
	defaulting to 0.
	(EH_FRAME_IN_DATA_SECTION): Do not undefine.
	(INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise.
	(TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0
	and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library.
	(DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data.
	* config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o
	and crtend.o.
	* config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative
	jump sequence for ISA A and ISA A+.
	(PICJUMP): Likewise.

From-SVN: r120912
2007-01-18 19:09:59 +00:00
Richard Sandiford 78218d8997 config.gcc (m68k-*-uclinux*): Base the port on the common and m68k GNU/Linux files rather than on the generic...
gcc/
	* config.gcc (m68k-*-uclinux*): Base the port on the common
	and m68k GNU/Linux files rather than on the generic ELF ones.
	* config/m68k/uclinux.h (TARGET_VERSION): Override.
	(TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.

From-SVN: r120911
2007-01-18 19:04:52 +00:00
Julian Brown 5189ab949e 200x-xx-xx Julian Brown <julian@codesourcery.com> Richard Sandiford <richard@codesourcery.com>
gcc/
200x-xx-xx  Julian Brown  <julian@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
	* config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
	before redefining.
	* config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
	80 unconditionally.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.

Co-Authored-By: Richard Sandiford <richard@codesourcery.com>

From-SVN: r120910
2007-01-18 18:45:46 +00:00
Richard Sandiford 4529dbf15f /home/richard/patches/freescale/head-submission/uclinux-oldabi.clog
From-SVN: r120909
2007-01-18 18:33:28 +00:00
Kaz Kojima e2265be077 m32r-protos.h (m32r_expand_epilogue): Declare it.
* config/m32r/m32r-protos.h (m32r_expand_epilogue): Declare it.
* config/m32r/m32r.c (m32r_setup_incoming_varargs): Use gen_frame_mem.
  (m32r_compute_frame_size): Use unsigned for regno.
  (m32r_reload_lr): Use gen_frame_mem.
  (pop): New.
  (m32r_output_function_epilogue): Don't output the function epilogue textually here.
  (m32r_expand_epilogue): New.
  (direct_return): Return false if the function has the interrupt attribute.
  (m32r_hard_regno_rename_ok): Remove code for the textual epilogue.
* config/m32r/m32r.md (epilogue): New expander.
  (return_lr, return_rte): New insns.
  (return): Make it expander.
  (return_normal): New expander.

From-SVN: r120904
2007-01-18 17:04:21 +00:00
Josh Conner 370df7db15 re PR target/30485 (ICE in rs6000_emit_vector_compare when building with -fno-trapping-math)
2007-01-18  Josh Conner  <jconner@apple.com>

	PR target/30485
	* config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
	support for UNLE, UNLT, UNGE, and UNGT.

From-SVN: r120902
2007-01-18 16:44:03 +00:00
Jan Hubicka 1994bfea41 tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
* tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
	* tree-tailcall (add_virtual_phis): Likewise.
	(optimize_tail_call): Return TODOs.
	(execute_tail_calls): Return TODOs.
	* tree-ssa-ccp (execute_fold_all_builtins): Do cleanup_cfg via TODO.
	* tree-cfgcleanup.c (cleanup_tree_cfg_loop): Return if something
	changed.
	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
	Cleanup cfg using TODO.
	* tree-flow.h (cleanup_tree_cfg_loop): Update prototype.
	* passes.c (execute_function_todo): When cleanup did something, remove
	unused locals.
	* tree-cfg.c (pass_build_cfg): Add cleanup_cfg TODO.
	(make_edges): Don't cleanup_cfg.

From-SVN: r120900
2007-01-18 14:56:33 +00:00
Uros Bizjak d85c755027 reg-stack.c (subst_stack_regs_pat): Use generic code for instructions that operate on the top of stack.
* reg-stack.c (subst_stack_regs_pat) [UNSPEC_SINCOS_COS,
	UNSPEC_XTRACT_FRACT]: Use generic code for instructions that
	operate on the top of stack.
	[UNSPEC_SINCOS_SIN, UNSPEC_XTRACT_EXP, UNSPEC_TAN]: Rewrite
	register handling of instructions that output to the second
	stack slot.
	[UNSPEC_TAN_ONE, UNSPEC_TAN_TAN]: Remove.
	(move_for_stack_reg): Special-case check for dead destination
	stack slot for constant load of 1.0 inside UNSPEC_TAN.

	* config/i386/i386.md (UNSPEC_TAN): New constant.
	(UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): Remove.
	(fptanxf4_i387, fptan_extend<mode>xf4_i387): New patterns
	to correctly model move of constant 1.0 to top stack slot.
	(*tandf3_1, *tansf3_1, *tanxf3_1): Remove insn patterns.
	(unnamed peephole2 pattern): Remove corresponding peephole2
	pattern that optimizes tan insn and loading of constant 1.0.
	(tanxf2): Use fptanxf4_i387.
	(tan<mode>2): Rename from tansf2 and tandf2 and macroize insn
	patterns using X87MODEF12 mode macro.  Use fptan_extend<mode>xf4_i387
	and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
	disable patterns for SSE math.
	(sincos<mode>3): Use truncxf<mode>2_i387_noop for truncation.
	(fyl2x_extend<mode>xf3_i387): Use X87MODEF12 for operand 1.

testsuite/ChangeLog:

	* gcc.target/i386/387-8.c: Update comment about optimizing
	inherent load of 1.0 of fptan instruction.

From-SVN: r120899
2007-01-18 14:06:57 +01:00
Dirk Mueller 590b1f2d1f · Richard Guenther <rguenther@suse.de>
2007-01-18  Dirk Mueller  <dmueller@suse.de>
·           Richard Guenther <rguenther@suse.de>

·       PR diagnostic/8268
·       * doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
·       * common.opt (Warray-bounds): Add new warning option.
·       * c-opts.c (c_common_handle_option): Define -Warray-bounds
·       if -Wall is given.
        * Makefile.in: make tree-vrp.o depend on toplev.h
·       * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
·       is enabled.
·       (check_array_refs, check_array_bounds, check_array_ref): New.

·       * gcc.dg/Warray-bounds.c: New testcase.
        * gcc.dg/Warray-bounds-2.c: New testcase.
        * g++.dg/warn/Warray-bounds.C: New testcase.
        * g++.dg/warn/Warray-bounds-2.C: New testcase.

From-SVN: r120898
2007-01-18 13:00:33 +00:00
Jan Hubicka 3253eafbda tree-ssa-ccp.c (ccp_finalize): Return if something changed.
* tree-ssa-ccp.c (ccp_finalize): Return if something changed.
	(execute_ssa_ccp): Return flags conditionally.
	* tree-ssa-propagate.c (substitue_and_fold): Return if something was
	changed.
	* tree-ssa-propagate.h (substitute_and_fold): Update prototype.

From-SVN: r120894
2007-01-18 09:11:57 +00:00
Steven Bosscher aeceeb06a1 cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set the CLEANUP_CFGLAYOUT flag when in cfglayout mode.
* cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set
	the CLEANUP_CFGLAYOUT flag when in cfglayout mode.

	* Makefile.c (GTFILES): Add cfglayout.h.
	* gengtype.c (open_base_files): Likewise.
	* cfglayout.c (cfg_layout_function_footer,
	cfg_layout_function_header) Reindent to make gengtype happy.
	* cfglayout.h (cfg_layout_function_footer,
	cfg_layout_function_header): Add GTY(()) marker.

	* ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null.

From-SVN: r120893
2007-01-18 08:17:06 +00:00
Ben Elliston 19b8c2d976 genautomata.c (write_automata): Include xstrerror output in the error message if...
* genautomata.c (write_automata): Include xstrerror output in the
	error message if writing the DFA description file fails.

From-SVN: r120891
2007-01-18 14:12:27 +11:00
H.J. Lu f8fdb5036d mips-protos.h (mips_output_external): Make it return void.
gcc/
2007-01-17  H.J. Lu  <hongjiu.lu@intel.com>

	* config/mips/mips-protos.h (mips_output_external): Make it
	return void.
	* config/mips/iris.h (TARGET_ASM_EXTERNAL_LIBCALL): Removed.
	* config/mips/mips.c (irix_output_external_libcall): Likewise.
	(extern_list): Likewise.
	(extern_head): Likewise.
	(TARGET_ASM_FILE_END): Likewise.
	(mips_file_end): Likewise.
	(mips_output_external): Rewritten.

From-SVN: r120880
2007-01-17 22:27:26 +00:00
Ben Elliston 495fb8cdd8 genpreds.c (write_insn_preds_c): Only write out the function body for regclass_for_constraint if...
* genpreds.c (write_insn_preds_c): Only write out the function
	body for regclass_for_constraint if we have register constraints.

From-SVN: r120879
2007-01-18 09:15:19 +11:00
Tom Tromey 4eb3e79538 sourcebuild.texi (libgcj Tests): Use sourceware.org.
* doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
	* doc/install.texi (Testing): Use sourceware.org.
	(Binaries): Likewise.
	(Specific): Likewise.
	* doc/contrib.texi (Contributors): Use sourceware.org.

From-SVN: r120873
2007-01-17 20:10:57 +00:00
Ian Lance Taylor e7fd0be47b Remove DOS line endings.
From-SVN: r120868
2007-01-17 19:33:24 +00:00
Anatoly Sokolov dd6d1f8c3f avr.h (AVR_HAVE_LPMX): New macro.
* config/avr/avr.h (AVR_HAVE_LPMX): New macro.
	(AVR_ENHANCED): Rename to ...
	(AVR_HAVE_MUL): ... new.
	(avr_enhanced_p): Rename to ...
	(avr_have_mul_p): ... new.
	(TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of 
	'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__".
	* config/avr/avr.c (avr_enhanced_p): Rename to ...
	(avr_have_mul_p): ... new.
	(base_arch_s): Rename 'enhanced' to 'have_mul'.
	(avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of
	'avr_enhanced_p' and 'enhanced'.
	(ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use 
	AVR_HAVE_MUL instead of AVR_ENHANCED.
	* avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
	(mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3, 
	*mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL 
	instead of AVR_ENHANCED.
	(*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
	* libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__.
	(__tablejump__): Use __AVR_HAVE_LPMX__ instead of __AVR_ENHANCED__.

From-SVN: r120865
2007-01-17 21:42:58 +03:00
Ian Lance Taylor efb7e1e026 vec.h (VEC_reserve_exact): Define.
./:	* vec.h (VEC_reserve_exact): Define.
	(vec_gc_p_reserve_exact): Declare.
	(vec_gc_o_reserve_exact): Declare.
	(vec_heap_p_reserve_exact): Declare.
	(vec_heap_o_reserve_exact): Declare.
	(VEC_OP (T,A,reserve_exact)): New static inline function, three
	versions.
	(VEC_OP (T,A,reserve)) [all versions]: Remove handling of
	negative parameter.
	(VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
	(VEC_OP (T,A,copy)) [all versions]: Likewise.
	(VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
	* vec.c (calculate_allocation): Add exact parameter.  Change all
	callers.
	(vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
	(vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
	(vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
	(vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
	(vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
	(vec_heap_p_reserve_exact): New function.
	(vec_heap_o_reserve_exact): New function.
cp/:
	* class.c (add_method): Call VEC_reserve_exact rather than passing
	a negative size to VEC_reserve.

From-SVN: r120861
2007-01-17 17:42:10 +00:00
Jan Hubicka dd82a6c6f6 * ipa-type-escape.c (look_for_casts): Revamp using handled_component_p.
From-SVN: r120849
2007-01-17 11:16:24 +00:00
Eric Christopher 30fd45a0b2 config.gcc: Support core2 processor.
2007-01-17  Eric Christopher  <echristo@apple.com>

        * config.gcc: Support core2 processor.

From-SVN: r120846
2007-01-17 09:21:11 +00:00
Jan Hubicka 109c8d3934 tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing the names...
* tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing
	the names, just unlink the chain so we don't crash on dangling pointers
	to dead SSA names.

From-SVN: r120837
2007-01-16 23:42:06 +00:00
Jan Hubicka 873aa8f548 cgraph.h (cgraph_decide_inlining_incrementally): Kill.
* cgraph.h (cgraph_decide_inlining_incrementally): Kill.
	* tree-pass.h: Reorder to make IPA passes appear toegher.
	(pass_early_inline, pass_inline_parameters, pass_apply_inline): Declare.
	* cgraphunit.c (cgraph_finalize_function): Do not compute inling
	parameters, do not call early inliner.
	* ipa-inline.c: Update comments.  Include tree-flow.h
	(cgraph_decide_inlining): Do not compute inlining parameters.
	(cgraph_decide_inlining_incrementally): Return TODOs; assume to
	be called with function context set up.
	(pass_ipa_inline): Remove unreachable functions before pass.
	(cgraph_early_inlining): Simplify assuming to be called from the
	PM as local pass.
	(pass_early_inline): New pass.
	(cgraph_gate_ipa_early_inlining): New gate.
	(pass_ipa_early_inline): Turn into simple wrapper.
	(compute_inline_parameters): New function.
	(gate_inline_passes): New gate.
	(pass_inline_parameters): New pass.
	(apply_inline): Move here from tree-optimize.c
	(pass_apply_inline): New pass.
	* ipa.c (cgraph_remove_unreachable_nodes): Verify cgraph after
	transforming.
	* tree-inline.c (optimize_inline_calls): Return TODOs rather than
	doing them by hand.
	(tree_function_versioning): Do not allocate dummy struct function.
	* tree-inline.h (optimize_inline_calls): Update prototype.
	* tree-optimize.c (execute_fixup_cfg): Export.
	(pass_fixup_cfg): Remove
	(tree_rest_of_compilation): Do not apply inlines.
	* tree-flow.h (execute_fixup_cfg): Declare.
	* Makefile.in (gt-passes.c): New.
	* passes.c: Include gt-passes.h
	(init_optimization_passes): New passes.
	(nnodes, order): New static vars.
	(do_per_function_toporder): New function.
	(execute_one_pass): Dump current pass here.
	(execute_ipa_pass_list): Don't dump current pass here.

From-SVN: r120835
2007-01-16 21:30:54 +00:00
Janis Johnson 70b81845bf dfp-bit.c (dfp_compare_op): Return separate value for NaN.
gcc/
	* config/dfp-bit.c (dfp_compare_op): Return separate value for NaN.
	(DFP_NE, DFP_LE, DFP_GE): Return false for NaN.
gcc/testsuite/
	* gcc.dg/dfp/compare-special.h: New file.
	* gcc.dg/dfp/compare-special-32.c: New test.
	* gcc.dg/dfp/compare-special-64.c: New test.
	* gcc.dg/dfp/compare-special-128.c: New test.

From-SVN: r120830
2007-01-16 18:53:16 +00:00
David Edelsohn d0768f1953 darwin-ldouble.c: Build file for SOFT_FLOAT.
* config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
	(strong_alias): Define.
	(__gcc_qmul): Provide non-FMA for soft-float.
	(__gcc_qdiv): Same.
	(__gcc_qneg): New.
	(__gcc_qeq): New.
	(__gcc_qle): New.
	(__gcc_qge): New.
	(__gcc_qunord): New.
	(__gcc_stoq): New.
	(__gcc_dtoq): New.
	(__gcc_qtos): New.
	(__gcc_qtod): New.
	(__gcc_qtoi): New.
	(__gcc_qtou): New.
	(__gcc_itoq): New.
	(__gcc_utoq): New.
	(fmsub): New.
	* config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize
	soft-float functions.
	* config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols.
	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn
	about long double soft float.

From-SVN: r120828
2007-01-16 11:03:26 -05:00
Dorit Nuzman 878aa81717 tree-vectorizer.h (is_pattern_stmt_p): New.
* tree-vectorizer.h (is_pattern_stmt_p): New.
        * tree-vect-analyze.c (vect_determine_vectorization_factor): Fix
        formatting (tabs instead of spaces). Cleanup and clarify setting
        of STMT_VINFO_VECTYPE. Call is_pattern_stmt_p.
        * tree-vect-transform.c (vect_get_vec_def_for_operand): Fix typo.
        (vectorizable_type_demotion): Check that types are integral.
        (vectorizable_type_promotion): Likewise.
        (vectorizable_store): Fix typo.  Eliminate new-line at end of
        comments.


Co-Authored-By: Tehila Meyzels <tehila@il.ibm.com>

From-SVN: r120825
2007-01-16 08:26:03 +00:00
Jan Hubicka 03b1d1341c tree-ssanames.c (release_dead_ssa_names): Remove invalidated cgraph edges too.
* tree-ssanames.c (release_dead_ssa_names): Remove invalidated
	cgraph edges too.

From-SVN: r120823
2007-01-16 06:48:23 +00:00
Eric Christopher 632ac2b491 ifcvt.c: Include vec.h, vecprim.h.
2007-01-15  Eric Christopher  <echristo@apple.com>

        * ifcvt.c: Include vec.h, vecprim.h.
        (check_cond_move_block): New argument regs.
        Reorganize. Add registers used to regs.
        (cond_move_process_if_block): Use regs set above as
        loop bounds.

From-SVN: r120822
2007-01-16 05:34:02 +00:00
Eric Christopher 7a292b24d6 darwin.h: Update copyright.
2007-01-15  Eric Christopher  <echristo@apple.com>

	    * config/darwin.h: Update copyright.
	    (TARGET_OPTION_TRANSLATE_TABLE): Add umbrella.
	    (LINK_COMMAND_SPEC): Add -u.
	    (LINK_SPEC): Fix umbrella for above.

From-SVN: r120815
2007-01-16 02:05:47 +00:00
Joseph Myers af7a7593fa op-common.h, op-4.h: Update from glibc CVS.
* config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
	glibc CVS.

From-SVN: r120806
2007-01-15 23:56:32 +00:00
Tom Tromey 694032374b sourcebuild.texi (libgcj Tests): Don't mention jacks.
gcc
	* doc/sourcebuild.texi (libgcj Tests): Don't mention jacks.
	* doc/install.texi (Testing): Don't mention jacks.
	(Configuration): Document --enable-java-maintainer-mode.  Move
	--with-java-home to libgcj-specific section.  Document
	--with-ecj-jar.
	(Prerequisites): Mention --enable-java-maintainer-mode, ecj1.
contrib
	* download_ecj: New file.

From-SVN: r120802
2007-01-15 21:49:31 +00:00
Jan Hubicka 7665f023e8 tree-ssa-dce.c (DCE_TODOs): New.
* tree-ssa-dce.c (DCE_TODOs): New.
	(propagate_necessity): Return if something changed.
	(eliminate_unnecessary_stmts): Likewise.
	(perform_tree_ssa_dce): Return TODO flags when needed.
	(pass_dce, pass_dce_loop, pass_cd_dce): Remove TODO flags.

From-SVN: r120797
2007-01-15 15:44:51 +00:00
Uros Bizjak 0ac45694f3 i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3.
* config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3.
	(fyl2x_extend<mode>xf3_i387): New insn pattern.
	(log<mode>2): Rename from logsf2 and logdf2 and macroize insn
	insn patterns using X87MODEF12 mode macro.  Extend operand 1
	to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
	(log10<mode>2): Ditto.
	(log2<mode>2): Ditto.
	(log1p<mode>2): Ditto.
	(logb<mode>2): Ditto.
	(fyl2xp1xf3_i387): Rename from fyl2xp1_xf3.
	(fyl2xp1_extend<mode>xf3_i387): New insn pattern.
	(*fxtractxf3_i387): Rename from *fxtractxf3.
	(fxtract_extend<mode>xf3_i387): New insn pattern.
	(ilogbsi2): Use match_dup 3, not match_operand:XF 3.

	* config/i386/i386.c (ix86_emit_i387_log1p): Use gen_fyl2xp1xf3_i387()
	and gen_fyl2xxf3_i387().

From-SVN: r120792
2007-01-15 13:35:30 +01:00
Zdenek Dvorak b4c1c7e3bd loop-unswitch.c (unswitch_loop): Do not call fix_loop_placement.
* loop-unswitch.c (unswitch_loop): Do not call fix_loop_placement.
	* cfgloopmanip.c (fix_loop_placement): Made static.  Use
	get_loop_exit_edges.  Changed return type to bool.
	* cfgloop.h (fix_loop_placement): Declaration removed.

From-SVN: r120782
2007-01-14 20:07:42 +00:00
Dorit Nuzman acdc40dfd2 param.h (MIN_VECT_LOOP_BOUND): New.
* param.h (MIN_VECT_LOOP_BOUND): New.
        * params.def (MIN_VECT_LOOP_BOUND): New.
        * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Takes another
        argument - minimum threshold for number of iterations.
        * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge): Add another
        argument to declaration.
        * tree-vect-analyze.c (vect_analyze_operations): Check value of
        MIN_VECT_LOOP_BOUND.
        * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Call
        slpeel_tree_peel_loop_to_edge with additional argument.
        (vect_do_peeling_for_alignment): Likewise.
        * doc/invoke.texi (min-vect-loop-bound): Document new param option.

From-SVN: r120770
2007-01-14 12:42:40 +00:00
Uros Bizjak 37fc8424ac re PR target/30413 (%z produces ICE for char operands)
PR target/30413
        * config/i386/i386.c (print_operand) ['z']: Output 'b' for
        operands of size 1.

testsuite/ChangeLog:

        PR target/30413
        * gcc.target/i386/pr30413.c: New test.

From-SVN: r120769
2007-01-14 12:14:20 +01:00
Jan Hubicka 326648f1bd tree-dfa.c (remove_referenced_var): New function.
* tree-dfa.c (remove_referenced_var): New function.
	* tree-ssa-live.c (remove_unused_locals): Walk referenced vars and
	prune referenced vars list too.
	* tree-flow.h (remove_referenced_var): Declare.

From-SVN: r120767
2007-01-14 10:50:43 +00:00
Jan Hubicka 4437b50d21 tree-eh.c (add_stmt_to_eh_region_fn): Do not add call_exprs separately.
* tree-eh.c (add_stmt_to_eh_region_fn): Do not add call_exprs
	separately.
	(remove_stmt_from_eh_region_fn): Do not remove call_exprs.
	(verify_eh_throw_stmt_node, verify_eh_throw_table_statements): Kill.
	* except.h (verify_eh_throw_table_statements): Kill prototype.
	* cfgexpand.c (expand_gimple_basic_block): Propagate Eh regions
	into call exrepssions.
	* tree-optimize.c (execute_free_cfg_annotatiosn): Do not call
	eh trhow verifier.
	* tree-cfg.c: Include pointer-set.h.
	(verify_node_sharing): Work on pointer set.
	(verify_eh_throw_stmt_node): New.
	(verify_stmts): Use pointers sets, verify throw_stmt.

From-SVN: r120766
2007-01-14 10:47:48 +00:00
Zdenek Dvorak 2a134b7364 ipa-reference.c (analyze_function): Consider also addresses taken in phi nodes.
* ipa-reference.c (analyze_function): Consider also addresses taken
	in phi nodes.

	* gcc.dg/20070112-1.c: New test.

From-SVN: r120757
2007-01-13 19:12:39 +00:00
Roger Sayle 8bcd6380d1 c-typeck.c (null_pointer_constant_p): Replace use of TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
* c-typeck.c (null_pointer_constant_p): Replace use of
	TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
	(build_c_cast): Likewise.

From-SVN: r120747
2007-01-13 05:39:57 +00:00
Roger Sayle d95787e646 tree.h (force_fit_type_double): Remove unused final argument.
* tree.h (force_fit_type_double): Remove unused final argument.
	* c-common.c (constant_expression_warning): Replace use of
	TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
	(convert_and_check): Likewise.
	(shorten_compare): Update call to force_fit_type_double.
	(c_common_truthvalue_conversion) <INTEGER_CST>: Use integer_zerop.
	* convert.c (convert_to_pointer): Update call to
	force_fit_type_double.
	* fold-const.c (force_fit_type_double): Remove overflowed_const
	argument.
	(int_const_binop, fold_convert_const_int_from_int,
	fold_convert_const_int_from_real, fold_div_compare,
	fold_sign_changed_comparison, fold_unary, fold_negate_const,
	fold_abs_const, fold_not_const): Remove the final argument from
	calls to force_fit_type_double.

From-SVN: r120746
2007-01-13 05:39:00 +00:00
Andrew Pinski 714f737ffa configure.ac: Set insn to "nop" for spu-*-* also.
2007-01-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * configure.ac: Set insn to "nop" for spu-*-* also.
        * configure: Regenerate.

From-SVN: r120736
2007-01-12 15:03:48 -08:00
Olga Golovanevsky db9d500a22 Add BUILT_IN_FREE
From-SVN: r120732
2007-01-12 21:01:46 +00:00
Jan Hubicka 3d283195f7 re PR middle-end/30443 (4.3 internal compiler error: verify_cgraph_node failed)
PR tree-optimization/30443
	* tree-inline.c (tree_function_versioning): Do not optimize when
	cloning for inlining.

From-SVN: r120730
2007-01-12 18:07:57 +00:00
Zdenek Dvorak 6270df4c21 loop.texi: Document recording of loop exits.
* doc/loop.texi: Document recording of loop exits.
	* cfgloopmanip.c (loopify, duplicate_loop): Use alloc_loop.
	(update_single_exits_after_duplication,
	update_single_exit_for_duplicated_loop,
	update_single_exit_for_duplicated_loops): Removed.
	(duplicate_loop_to_header_edge): Do not call
	update_single_exits_after_duplication and
	update_single_exit_for_duplicated_loops.
	(loop_version): Do not update single_exit information.
	(fix_loop_structure): Use record_loop_exits instead of
	mark_single_exit_loops.
	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update
	the lists of loop exits.
	* cfghooks.c (redirect_edge_and_branch, redirect_edge_and_branch_force,
	split_edge, merge_blocks): Update the lists of loop exits.
	* modulo-sched.c (sms_schedule): Pass LOOPS_HAVE_RECORDED_EXITS to
	loop_optimizer_init.
	* loop-init.c (loop_optimizer_init): Call record_loop_exits instead
	of mark_single_exit_loops.
	(loop_optimizer_finalize): Call release_recorded_exits.
	* tree-ssa-loop.c (tree_loop_optimizer_init): Pass
	LOOPS_HAVE_RECORDED_EXITS to loop_optimizer_init.
	* tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): Do not
	update single exit information.
	* lambda-code.c (perfect_nestify): Ditto.
	* cfgloop.c (flow_loop_free): Destroy the list of exits of the loop.
	(mark_single_exit_loops): Removed.
	(alloc_loop, loop_exit_hash, loop_exit_eq, loop_exit_free,
	get_exit_descriptions, rescan_loop_exit, record_loop_exits,
	dump_recorded_exit, dump_recorded_exits, release_recorded_exits): New
	functions.
	(get_loop_exit_edges, single_exit): Use recorded exit lists.
	(add_bb_to_loop, remove_bb_from_loops): Update the lists of loop exits.
	(verify_loop_structure): Verify consistency of the exit lists.
	(flow_loops_find): Use alloc_loop.  Initialize exits hash.
	(set_single_exit): Removed.
	* cfgloop.h (struct loop_exit): New function.
	(struct loop): single_exit_ field replaced by exits field.
	(LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by LOOPS_HAVE_RECORDED_EXITS.
	(struct loops): Added exits hash.
	(mark_single_exit_loops, set_single_exit): Declaration removed.
	(release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare.

From-SVN: r120728
2007-01-12 17:57:40 +00:00
Richard Sandiford 1cbe999f08 invoke.texi: Avoid use of @headitem.
gcc/
	* doc/invoke.texi: Avoid use of @headitem.

From-SVN: r120726
2007-01-12 15:27:42 +00:00
Richard Sandiford 192232e253 cse.c (cse_insn): Move HAVE_CC0 code after declarations.
gcc/
	* cse.c (cse_insn): Move HAVE_CC0 code after declarations.

From-SVN: r120719
2007-01-12 10:04:55 +00:00
Richard Sandiford 183dc04b83 install.texi: Fix m68k-*-* anchor and add m68k-*-* to the list of targets.
gcc/
	* doc/install.texi: Fix m68k-*-* anchor and add m68k-*-* to the
	list of targets.

From-SVN: r120718
2007-01-12 09:56:36 +00:00
Nathan Sidwell 648265890d 200x-xx-xx Nathan Sidwell <nathan@codesourcery.com> Richard Sandiford <richard@codesourcery.com>
gcc/
200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* doc/invoke.texi: Document -mno-bitfield, -mno-rtd and -mno-short.
	* config/m68k/m68k.opt: Resort options.
	(mbitfield, mrtd, mshort): Remove RejectNegative properties.

Co-Authored-By: Richard Sandiford <richard@codesourcery.com>

From-SVN: r120717
2007-01-12 09:37:15 +00:00
Nathan Sidwell 7eb4f04449 200x-xx-xx Nathan Sidwell <nathan@codesourcery.com> Richard Sandiford <richard@codesourcery.com>
gcc/
200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* doc/invoke.texi: Document the macros that are defined by
	m68k's -mtune and -mhard-float options.
	* config/m68k/m68k-protos.h (m68k_cpp_cpu_ident) Declare.
	(m68k_cpp_cpu_family): Likewise.
	* config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add a full set
	of __ucfv*__ macros.  Define __mcffpu__ if generating code for
	ColdFire FPUs.  Define __mcf_cpu_* and __mcf_family_* macros.
	* config/m68k/m68k.c (m68k_cpp_cpu_ident): New function.
	(m68k_cpp_cpu_family): Likewise.

Co-Authored-By: Richard Sandiford <richard@codesourcery.com>

From-SVN: r120716
2007-01-12 09:36:17 +00:00