Commit Graph

93748 Commits

Author SHA1 Message Date
Richard Earnshaw
6241ded1e7 * arm.md (movdi2): Copy non-reg values to DImode registers.
From-SVN: r147612
2009-05-16 11:50:33 +00:00
David Billinghurst
29409321e0 default_format_denormal_1.f90: XFAIL on cygwin.
2009-05-16  David Billinghurst <billingd@gcc.gnu.org>

	* gfortran.dg/default_format_denormal_1.f90: XFAIL on cygwin.
	* gfortran.dg/default_format_1.f90: Revert change of 2009-05-12

Correct accidental commit of wrong file.

From-SVN: r147610
2009-05-16 10:39:53 +00:00
Jonathan Wakely
5c64575096 mutex: Move std::lock_error to ...
2009-05-13  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/std/mutex: Move std::lock_error to ...
	* src/compatibility.cc: Here.
	* src/mutex.cc: Likewise.
	* testsuite/30_threads/headers/mutex/types_std_c++0x.cc: Add checks
	for lock types and remove std::lock_error check.

From-SVN: r147609
2009-05-16 11:09:02 +01:00
Jakub Jelinek
40a8f07a47 re PR target/39942 (Nonoptimal code - leaveq; xchg %ax,%ax; retq)
PR target/39942
	* final.c (label_to_max_skip): New function.
	(label_to_alignment): Only use LABEL_TO_ALIGNMENT if
	CODE_LABEL_NUMBER <= max_labelno.
	* output.h (label_to_max_skip): New prototype.
	* config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
	(ix86_avoid_jump_mispredicts): ... this.  Don't define if
	ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.  Update comment.
	Handle CODE_LABELs with >= 16 byte alignment or with
	max_skip == (1 << align) - 1.
	(ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
	ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.

From-SVN: r147607
2009-05-16 09:12:02 +02:00
Jakub Jelinek
a99c6711f8 re PR target/39942 (Nonoptimal code - leaveq; xchg %ax,%ax; retq)
PR target/39942
	* config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
	.p2align 3 if MAX_SKIP is smaller than 7.
	* config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.

From-SVN: r147606
2009-05-16 09:09:52 +02:00
Ian Lance Taylor
7e5487a214 alias.c (struct alias_set_entry_d): Rename from struct alias_set_entry.
gcc/ChangeLog:
	* alias.c (struct alias_set_entry_d): Rename from struct
	alias_set_entry.  Change all uses.
	* except.c (struct call_site_record_d): Rename from struct
	call_site_record.  Change all uses.
	* except.h (struct eh_region_d): Rename from struct eh_region.
	Change all uses.
	* gcse.c (struct hash_table_d): Rename from struct hash_table.
	Change all uses.
	* graphite.c (struct ivtype_map_elt_d): Rename fromstruct
	ivtype_map_elt.  Change all uses.
	(struct rename_map_elt_d): Rename fromstruct rename_map_elt.
	Change all uses.
	(struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
	* graphite.h (struct name_tree_d): Rename from struct name_tree.
	Change all uses.
	(struct sese_d): Rename from struct sese.  Change all uses.
	* omega.h (struct eqn_d): Rename from struct eqn.  Change all
	uses.
	(struct omega_pb_d): Rename from struct omega_pb.  Change all
	uses.
	* optabs.h (struct optab_d): Rename from struct optab.  Change all
	uses.
	(struct convert_optab_d): Rename from struct convert_optab.
	Change all uses.
	* tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
	ipa_opt_pass.  Change all uses.
	* tree-predcom.c (struct dref_d): Rename from struct dref.  Change
	all uses.

	* c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
	defined as a typedef.
	(grokdeclarator): If -Wc++-compat, warn if a typedef is already
	defined as a tag.
gcc/cp/ChangeLog:
	* cp-tree.h (enum cp_lvalue_kind_flags): Rename from
	cp_lvalue_kind.  Change all uses.
	(enum base_access_flags): Rename from enum base_access.  Change
	all uses.
	* parser.c (enum cp_parser_flags): Remove enum tag.
gcc/testsuite/ChangeLog:
	* gcc.dg/Wcxx-compat-10.c: New testcase.
libcpp/ChangeLog:
	* include/cpplib.h (enum cpp_builtin_type): Rename from enum
	builtin_type.  Change all uses.

From-SVN: r147605
2009-05-16 06:54:11 +00:00
GCC Administrator
7d47ae1d64 Daily bump.
From-SVN: r147604
2009-05-16 00:16:52 +00:00
Paolo Carlini
6dd0fec22f 40160.cc: Remove spurious double include.
2009-05-15  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/21_strings/basic_string/40160.cc: Remove spurious
	double include.

From-SVN: r147600
2009-05-15 23:31:59 +00:00
Paolo Carlini
0f136367bc re PR libstdc++/40160 (-fno-rtti vs _GLIBCXX_DEBUG)
2009-05-15  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/40160
	* include/debug/formatter.h (_Parameter::_Parameter): Don't use
	typeid when __GXX_RTTI is undefined.
	* src/debug.cc (_Error_formatter::_Parameter::_M_print_field): Adjust
	for null _M_variant._M_iterator._M_type,
	_M_variant._M_iterator._M_seq_type, _M_variant._M_sequence._M_type.
	* testsuite/21_strings/basic_string/40160.cc: New.

From-SVN: r147599
2009-05-15 22:25:24 +00:00
Manuel López-Ibáñez
a243fb4a5b re PR c/16302 (gcc fails to warn about some common logic errors)
2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 16302
	* fold-const.c (make_range,build_range_check,merge_ranges): Move
	declaration to...
	(merge_ranges): Returns bool. 
	* tree.h (make_range): .. to here.
	(build_range_check): Likewise.
	(merge_ranges): Likewise. Renamed from merge_ranges.
	* c-typeck.c (parser_build_binary_op): Update calls to
	warn_logical_operator.
	* c-common.c (warn_logical_operator): Add new warning.
	* c-common.h (warn_logical_operator): Update declaration.
cp/
	* call.c (build_new_op): Update calls to warn_logical_operator.
	
testsuite/
	* gcc.dg/pr16302.c: New.
	* g++.dg/warn/pr16302.C: New.

From-SVN: r147596
2009-05-15 20:08:21 +00:00
Manuel López-Ibáñez
1b53c5f35f ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* ira-conflicts.c (add_insn_allocno_copies): Fix wrong
	conditional.

From-SVN: r147595
2009-05-15 20:05:36 +00:00
Kaveh R. Ghazi
16a3d11cca builtin-math-5.c: New.
* gcc.dg/torture/builtin-math-5.c: New.
	* gcc.dg/torture/builtin-math-6.c: New.
	* lib/target-supports.exp (check_effective_target_mpc): New.

From-SVN: r147593
2009-05-15 18:15:14 +00:00
Kaveh R. Ghazi
f9bab00712 install.texi: Document MPC requirements, flags etc.
* doc/install.texi: Document MPC requirements, flags etc.

From-SVN: r147592
2009-05-15 18:12:44 +00:00
Kaveh R. Ghazi
c128599ae1 builtins.c (do_mpc_arg1, [...]): New.
* builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
	(fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
	Evaluate constant arguments.
	(fold_builtin_carg): Ensure we get a complex REAL_TYPE.
	(fold_builtin_1): Likewise, also evaluate constant arguments.
	Remove superfluous break.
	(do_mpc_ckconv): New.
	* real.h: Include mpc.h.
	* toplev.c (print_version): Output MPC version info if available.

From-SVN: r147591
2009-05-15 18:08:10 +00:00
Sandra Loosemore
d33e4b70f6 fold-const.c (fold_convert_const_real_from_real): Check for overflow.
2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* fold-const.c (fold_convert_const_real_from_real): Check for
	overflow.

From-SVN: r147589
2009-05-15 13:28:47 -04:00
H.J. Lu
a02ab464e3 i386.c (ix86_reorg): Call optimize_function_for_speed_p only once.
2009-05-15  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
	only once.

From-SVN: r147588
2009-05-15 10:12:00 -07:00
Jan Hubicka
796bda2238 invoke.texi (max-early-inliner-iterations): New flag.
* doc/invoke.texi (max-early-inliner-iterations): New flag.
	* ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
	(try_inline): Fix return value.
	(cgraph_decide_inlining_incrementally): Honor new value.
	(cgraph_early_inlining): Handle indirect inlining.
	* params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.

	* testsuite/gcc.dg/tree-ssa/inline-3.c: New testcase

From-SVN: r147587
2009-05-15 17:11:00 +00:00
Jan Hubicka
d88e5c3725 cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
2009-05-15  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
	* cgraphunit.c (cgraph_finalize_function): Set it.
	(cgraph_expand_function): Use it.

From-SVN: r147586
2009-05-15 17:09:13 +00:00
Jan Hubicka
6136d2c7e2 align-main-1.c (check): Mark noinline.
* gcc.target/i386/align-main-1.c (check): Mark noinline.
	* gcc.target/i386/align-main-2.c (check): Mark noinline.
	* gcc.dg/ipa/ipa-4.c: Disable early inlining.
	* gcc.dg/vect/vect-iv-10.c (main1): Mark noinline.
	* gcc.dg/vect/costmodel/i386/costmodel-vect-33.c (main1): Mark noinline.
	* gcc.dg/vect/costmodel/x86_64/costmodel-vect-33.c (main1): Mark noinline.
	* gcc.dg/vect/pr31699.c (foo): Mark noinline.
	* gcc.dg/vect/pr18400.c (main1): Mark noinline.

From-SVN: r147585
2009-05-15 17:02:28 +00:00
Jan Hubicka
f3d509ec30 sibcall-6.c: Add no-ipa-cp argument and mark the function to be optimized by sibcall noinline.
* sibcall-6.c: Add no-ipa-cp argument and mark the function to be
	optimized by sibcall noinline.

From-SVN: r147584
2009-05-15 16:43:38 +00:00
Jan Hubicka
561df46451 sibcall-1.c (track): Mark noinline.
* sibcall-1.c (track): Mark noinline.
	* sibcall-2.c (track): Mark noinline.
	* sibcall-3.c (track): Mark noinline.
	* sibcall-4.c (track): Mark noinline.

From-SVN: r147583
2009-05-15 16:05:50 +00:00
Jan Hubicka
febbad93b1 flatten-2.c: Disable early inlining; add comment.
* flatten-2.c: Disable early inlining; add comment.
	* flatten-3.c: New test based on flatten-2.c.

From-SVN: r147582
2009-05-15 15:23:06 +00:00
Joseph Myers
b51c6a2c92 inclhack.def (glibc_tgmath): Correct bypass.
* inclhack.def (glibc_tgmath): Correct bypass.
	* fixincl.x: Regenerate.

From-SVN: r147580
2009-05-15 15:28:42 +01:00
Sandra Loosemore
ae63687c81 real.c (encode_ieee_half): Define.
2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* real.c (encode_ieee_half): Define.
	(decode_ieee_half): Define.
	(ieee_half_format): Define.
	(arm_half_format): Define.
	* real.h (ieee_half_format): Declare.
	(arm_half_format): Declare.

From-SVN: r147579
2009-05-15 10:22:58 -04:00
Sandra Loosemore
1bd74ad980 optabs.c (prepare_float_lib_cmp): Test that the comparison...
2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* optabs.c (prepare_float_lib_cmp):  Test that the comparison,
	swapped, and reversed optabs exist before trying to use them.

From-SVN: r147578
2009-05-15 10:20:55 -04:00
Paul Brook
dc34db56f1 arm.c (neon_vector_mem_operand): Handle element/structure loads.
2009-05-15  Paul Brook  <paul@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
	loads.  Allow PRE_DEC.
	(output_move_neon): Handle PRE_DEC.
	(arm_print_operand): Add 'A' for neon structure loads.
	* config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
	* config/arm/neon.md (neon_mov): Update comment.
	* config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
	calls.
	(Um): New constraint.

Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com>

From-SVN: r147577
2009-05-15 10:19:19 -04:00
Jan Hubicka
1d405d7b41 Revert the following patch until testsuite fallout is fixed:
* cgraph.c (dump_cgraph_node): Dump size/time/benefit.
	* cgraph.h (struct inline_summary): New filed self_wize,
	size_inlining_benefit, self_time and time_inlining_benefit.
	(struct cgraph_global_info): Replace insns by time ans size fields.
	* ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
	(ipcp_estimate_growth, ipcp_insert_stage): Likewise.
	(ipcp_update_callgraph): Do not touch function bodies.
	* ipa-inline.c: Include except.h
	MAX_TIME: New constant.
	(overall_insns): Remove
	(overall_size, max_benefit): New static variables.
	(cgraph_estimate_time_after_inlining): New function.
	(cgraph_estimate_size_after_inlining): Rewrite using benefits.
	(cgraph_clone_inlined_nodes): Update size.
	(cgraph_mark_inline_edge): Update size.
	(cgraph_estimate_growth): Use size info.
	(cgraph_check_inline_limits): Check size.
	(cgraph_default_inline_p): Likewise.
	(cgraph_edge_badness): Compute badness based on benefit and size cost.
	(cgraph_decide_recursive_inlining): Check size.
	(cgraph_decide_inlining_of_small_function): Update size; dump sizes and times.
	(cgraph_decide_inlining): Likewise.
	(cgraph_decide_inlining_incrementally): Likewise; honor PARAM_EARLY_INLINING_INSNS.
	(likely_eliminated_by_inlining_p): New predicate.
	(estimate_function_body_sizes): New function.
	(compute_inline_parameters): Use it.
	* except.c (must_not_throw_labels): New function.
	* except.h (must_not_throw_labels): Declare.
	* tree-inline.c (init_inline_once): Kill inlining_weigths
	* tree-ssa-structalias.c: Avoid uninitialized warning.
	* params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
	(PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
	(PARAM_INLINE_CALL_COST): Remove.
	(PARAM_EARLY_INLINING_INSNS): New.

From-SVN: r147575
2009-05-15 13:22:49 +00:00
Richard Guenther
7ffa47ca1e tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals, not TODO_update_ssa.
2009-05-15  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
	not TODO_update_ssa.

From-SVN: r147574
2009-05-15 13:16:12 +00:00
Richard Guenther
828552ed0b re PR tree-optimization/39999 (gcc 4.4.0 compiles in infinite loop)
2009-05-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39999
	* gimple.h (gimple_expr_type): Use the expression type looking
	through useless conversions.
	* tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
	(vn_nary_op_insert_stmt): Likewise.
	(simplify_binary_expression): Likewise.

	* gcc.c-torture/compile/pr39999.c: New testcase.

From-SVN: r147573
2009-05-15 13:09:53 +00:00
Richard Guenther
248fc9f328 common.opt (-ftree-forwprop, [...]): New options, enabled by default.
2009-05-15  Richard Guenther  <rguenther@suse.de>

	* common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
	New options, enabled by default.
	* doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
	Document.
	* tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
	* tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
	* tree-ssa-structalias.c (gate_tree_pta): New function.
	(pass_build_alias): Use it.

From-SVN: r147571
2009-05-15 12:26:48 +00:00
Joseph Myers
16b29cc4d6 tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also recurse on an invariant address if a conversion from a pointer type to a...
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
	recurse on an invariant address if a conversion from a pointer
	type to a wider integer type is involved.

testsuite:
	* gcc.c-torture/compile/ptr-conv-1.c: New test.

From-SVN: r147570
2009-05-15 13:13:02 +01:00
Paolo Carlini
934432b66c num_xbound_fun.cc: Minor tweaks.
2009-05-15  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/26_numerics/random/discrete_distribution/cons/
	num_xbound_fun.cc: Minor tweaks.
	* testsuite/26_numerics/random/piecewise_constant_distribution/
	cons/initlist_fun.cc: Likewise
	* testsuite/26_numerics/random/piecewise_constant_distribution/
	cons/num_xbound_fun.cc: Likewise
	* testsuite/26_numerics/random/piecewise_linear_distribution/
	cons/initlist_fun.cc: Likewise
	* testsuite/26_numerics/random/piecewise_linear_distribution/
	cons/num_xbound_fun.cc: Likewise

From-SVN: r147567
2009-05-15 10:02:38 +00:00
Jan Hubicka
125cae84d0 cgraph.c (dump_cgraph_node): Dump size/time/benefit.
* cgraph.c (dump_cgraph_node): Dump size/time/benefit.
	* cgraph.h (struct inline_summary): New filed self_wize,
	size_inlining_benefit, self_time and time_inlining_benefit.
	(struct cgraph_global_info): Replace insns by time ans size fields.
	* ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
	(ipcp_estimate_growth, ipcp_insert_stage): Likewise.
	(ipcp_update_callgraph): Do not touch function bodies.
	* ipa-inline.c: Include except.h
	MAX_TIME: New constant.
	(overall_insns): Remove
	(overall_size, max_benefit): New static variables.
	(cgraph_estimate_time_after_inlining): New function.
	(cgraph_estimate_size_after_inlining): Rewrite using benefits.
	(cgraph_clone_inlined_nodes): Update size.
	(cgraph_mark_inline_edge): Update size.
	(cgraph_estimate_growth): Use size info.
	(cgraph_check_inline_limits): Check size.
	(cgraph_default_inline_p): Likewise.
	(cgraph_edge_badness): Compute badness based on benefit and size cost.
	(cgraph_decide_recursive_inlining): Check size.
	(cgraph_decide_inlining_of_small_function): Update size; dump sizes and times.
	(cgraph_decide_inlining): Likewise.
	(cgraph_decide_inlining_incrementally): Likewise; honor PARAM_EARLY_INLINING_INSNS.
	(likely_eliminated_by_inlining_p): New predicate.
	(estimate_function_body_sizes): New function.
	(compute_inline_parameters): Use it.
	* except.c (must_not_throw_labels): New function.
	* except.h (must_not_throw_labels): Declare.
	* tree-inline.c (init_inline_once): Kill inlining_weigths
	* tree-ssa-structalias.c: Avoid uninitialized warning.
	* params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
	(PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
	(PARAM_INLINE_CALL_COST): Remove.
	(PARAM_EARLY_INLINING_INSNS): New.
	doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
	(inline-call-cost): Remove.
	(early-inlining-insns): New.

From-SVN: r147566
2009-05-15 09:53:18 +00:00
David Billinghurst
602feda58d re PR libstdc++/36211 (__iconv_adaptor chooses char** where const char** is required)
2009-05-15  David Billinghurst <billingd@gcc.gnu.org>

	PR libstdc++/36211
	* testsuite/lib/libstdc++.exp(v3_target_compile):  Add
	cxxldflags to additional_flags rather than cxx_final.

From-SVN: r147565
2009-05-15 09:23:58 +00:00
David Billinghurst
d05db9ccfa num_xbound_fun.cc: Replace non-standard macro M_PI with constant pi.
2009-05-15  David Billinghurst <billingd@gcc.gnu.org>

	* testsuite/26_numerics/random/discrete_distribution/cons/num_xbound_fun.cc:
	Replace non-standard macro M_PI with constant pi.
	* testsuite/26_numerics/random/piecewise_constant_distribution/cons/initlist_fun.cc:
	Likewise
	* testsuite/26_numerics/random/piecewise_constant_distribution/cons/num_xbound_fun.cc:
	Likewise
	* testsuite/26_numerics/random/piecewise_linear_distribution/cons/initlist_fun.cc:
	Likewise
	* testsuite/26_numerics/random/piecewise_linear_distribution/cons/num_xbound_fun.cc:
	Likewise

From-SVN: r147564
2009-05-15 09:20:01 +00:00
Eric Botcazou
84fb43a1a4 dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.
* dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
	for bounds.
	(print_int_cst_bounds_in_octal_p): Likewise.
	(dbxout_type): Adjust calls to above functions.  Be prepared to deal
	with subtypes.
	* dwarf2out.c (base_type_die): Likewise.
	(is_subrange_type): Delete.
	(subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
	(modified_type_die): Call subrange_type_for_debug_p on subtypes.
	* fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it if
	the destination type is boolean.
	(build_range_check): Do not special-case subtypes.
	(fold_sign_changed_comparison): Likewise.
	(fold_unary): Likewise.
	* langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
	* langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
	* tree.c (subrange_type_for_debug_p): New predicate based on the former
	is_subrange_type.
	* tree.h (subrange_type_for_debug_p): Declare.
	* tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
	(convert_affine_scev): Remove call to above function.
	(chrec_convert_aggressive): Likewise.
	* tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
	false for conversions involving subtypes.
	* tree-vrp.c (vrp_val_max): Do not special-case subtypes.
	(vrp_val_min): Likewise.
	(needs_overflow_infinity): Likewise.
	(extract_range_from_unary_expr): Likewise.
ada/
	* gcc-interface/ada-tree.h (TYPE_GCC_MIN_VALUE, TYPE_GCC_MAX_VALUE):
	New macros.
	(TYPE_RM_VALUES): Likewise.
	(TYPE_RM_SIZE): Rewrite in terms of TYPE_RM_VALUES.
	(SET_TYPE_RM_SIZE): New macro.
	(TYPE_RM_MIN_VALUE, TYPE_RM_MAX_VALUE): Likewise.
	(SET_TYPE_RM_SIZE, SET_TYPE_RM_MAX_VALUE): Likewise.
	(TYPE_MIN_VALUE, TYPE_MAX_VALUE): Redefine.
	* gcc-interface/gigi.h (create_range_type): Declare.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Type>
	Use SET_TYPE_RM_MAX_VALUE to set the upper bound on the UMT type.
	<E_Signed_Integer_Subtype>: Build a regular integer type first and
	then set the RM bounds.  Use SET_TYPE_RM_SIZE to set the RM size.
	<E_Floating_Point_Subtype>: Build a regular floating-point type first
	and then set the RM bounds.
	<E_Array_Type>: Use create_range_type instead of build_range_type.
	<E_Array_Subtype>: Build a regular integer type first and then set
	the RM bounds for the extra subtype.
	<E_String_Literal_Subtype>: Use create_range_type instead of
	build_range_type.
	<all>: Set the RM bounds for enumeration types and the GCC bounds for
	floating-point types.
	(set_rm_size): Use SET_TYPE_RM_SIZE to set the RM size.
	(make_type_from_size) <INTEGER_TYPE>: Use SET_TYPE_RM_{MIN,MAX}_VALUE
	to set the bounds.  Use SET_TYPE_RM_SIZE to set the RM size.
	(substitute_in_type) <INTEGER_TYPE>: Deal with GCC bounds for domain
	types and with RM bounds for subtypes.
	* gcc-interface/misc.c (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
	(gnat_print_type) <REAL_TYPE>: New case.
	<ENUMERAL_TYPE>: Fall through to above case.
	(gnat_get_subrange_bounds): New function.
	* gcc-interface/trans.c (add_decl_expr): Mark the trees rooted as
	TYPE_RM_MIN_VALUE and TYPE_RM_MAX_VALUE, if any.
	* gcc-interface/utils.c (gnat_init_decl_processing): Use precision 8
	for booleans.  Adjust and use SET_TYPE_RM_SIZE to set the RM size.
	(create_range_type): New function.
	(create_param_decl): Build a regular integer type first and then set
	the RM bounds for the extra subtype.
	(unchecked_convert): Remove kludge for 'Valid.
	* gcc-interface/utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Convert
	the index to sizetype instead of TYPE_DOMAIN.

From-SVN: r147563
2009-05-15 09:11:40 +00:00
Paolo Bonzini
331d918689 frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
2009-05-15  Paolo Bonzini  <bonzini@gnu.org>

        * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
        * config/frv/frv.c: Likewise.
        * config/s390/s390.c: Likewise.
        * config/sparc/sparc.h: Likewise.
        * config/i386/i386.h: Likewise.
        * config/i386/i386.c: Likewise.
        * config/crx/crx.c: Likewise.
        * config/m68hc11/m68hc11.h: Likewise.
        * config/iq2000/iq2000.c: Likewise.
        * config/mn10300/mn10300.h: Likewise.
        * config/mn10300/mn10300.c: Likewise.
        * config/m68k/m68k.c: Likewise.
        * config/rs6000/rs6000.c: Likewise.
        * config/rs6000/xcoff.h: Likewise.
        * config/rs6000/linux64.h: Likewise.
        * config/rs6000/sysv4.h: Likewise.
        * config/score/score3.c: Likewise.
        * config/score/score7.c: Likewise.
        * config/score/score.c: Likewise.
        * config/arm/arm.md: Likewise.
        * config/mips/mips.c: Likewise.
        * config/mips/mips.md: Likewise.
        * config/bfin/bfin.h: Likewise.
        * config/pa/pa.c: Likewise.
        * config/pa/constraints.md: Likewise.

        * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
        * config/pdp11/pdp11.c (legitimate_address_p): Delete.
        * config/pdp11/pdp11.h: Use memory_address_p instead.

From-SVN: r147560
2009-05-15 07:12:03 +00:00
Tobias Burnus
602b85231d re PR fortran/39352 (gfortran.dg/vect/pr39318.f90 doesn't work on ia64)
2009-05-15  Tobias Burnus  <burnus@net-b.de>

        PR fortran/39352
        * f95-lang.c: Add gfc_maybe_initialize_eh.
        * gfortran.h: Add gfc_maybe_initialize_eh prototype.
        * Make-lang.in: Add new .h dendencies for f95-lang.c
        * openmp.c (resolve_omp_do): Call gfc_maybe_initialize_eh.
        * misc.c (gfc_free): Avoid #define trickery for free.

From-SVN: r147559
2009-05-15 08:52:41 +02:00
GCC Administrator
675a72d643 Daily bump.
From-SVN: r147550
2009-05-15 00:16:55 +00:00
Taras Glek
16f7ad426e Correct formatting errors commited in rev 147516
From-SVN: r147547
2009-05-14 23:10:50 +00:00
Steven G. Kargl
0511ddbb33 dump-parse-tree.c (show_code_node): Add ERRMSG to the dumping of allocate and deallocate statements.
2009-05-14  Steven G. Kargl  <kargl@gcc.gnu.org>

    * dump-parse-tree.c (show_code_node): Add ERRMSG to the dumping
    of allocate and deallocate statements.

From-SVN: r147545
2009-05-14 22:21:40 +00:00
Ian Lance Taylor
09639a8397 passes.c (finish_optimization_passes): Change i to int.
./:	* passes.c (finish_optimization_passes): Change i to int.
	* plugin.c (plugins_active_p): Change event to int.
	(dump_active_plugins): Likewise.
	* reginfo.c (invalid_mode_change_p): Change to to unsigned int.
	Add cast.
	* tree.c (tree_range_check_failed): Change c to unsigned int.
	(omp_clause_range_check_failed): Likewise.
	(build_common_builtin_nodes): Change mode to int.  Add cast.
	* config/ia64/ia64.c (is_emitted): Change r to unsigned int.
	(ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.

	* c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
	++ or -- with a variable of enum type.
cp/:
	* class.c (layout_class_type): Change itk to unsigned int.
	* decl.c (finish_enum): Change itk to unsigned int.
	* parser.c (cp_parser_check_decl_spec): Change ds to int.  Remove
	casts.
fortran/:
	* decl.c (match_attr_spec): Change d to unsigned int.
	* dump-parse-tree.c (show_namespace): Change op to int.  Add cast.
	* interface.c (gfc_check_interfaces): Change i to int.  Add casts.
	* module.c (read_module): Change i to int.  Add cast.
	(write_module): Change i to int.
	* symbol.c (gfc_get_namespace): Change in to int.
	(gfc_free_namespace): Change i to int.
	* trans-io.c (gfc_build_io_library_fndecls): Change ptype to
	unsigned int.  Add cast.
	* trans-types.c (gfc_init_kinds): Change mode to unsigned int.
	Add casts.
testsuite/:
	* gcc.dg/Wcxx-compat-9.c: New testcase.

From-SVN: r147544
2009-05-14 21:29:48 +00:00
Steven Bosscher
c04a56bffe re PR driver/40144 (ice in common_handle_option)
PR driver/40144
	* opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.

From-SVN: r147543
2009-05-14 20:56:54 +00:00
Steven Bosscher
237ee620ad * store-motion.c Do not include params.h
* Makefile.in: Fix dependencies for various files.

From-SVN: r147542
2009-05-14 20:14:18 +00:00
Steven Bosscher
1154c4fafe auto-inc-dec.c: Fix pass description, remove apparent accidental duplication.
* auto-inc-dec.c: Fix pass description, remove apparent
	accidental duplication.

From-SVN: r147541
2009-05-14 20:12:09 +00:00
Daniel Kraft
240f9e9491 re PR fortran/40045 (ICE with type extension and -fdump-parse-tree)
2009-05-14  Daniel Kraft  <d@domob.eu>

	PR fortran/40045
	* dump-parse-tree.c (show_typebound): Fix missing adaption to new
	type-bound procedure storage structure.

From-SVN: r147540
2009-05-14 22:02:46 +02:00
Paolo Carlini
6855fe452e re PR libstdc++/40123 (Revision 147395 failed libstc++ tests)
2009-05-14  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/40123
	* random.tcc (independent_bits_engine<>::operator()()): Use
	result_type(1), not 1UL.

	* random.tcc (independent_bits_engine<>::operator()()): Use _M_b.max()
	and _M_b.min(), instead of this->max() and this->min().

	* random.h (_ShiftMin1): Remove, adjust everywhere.

	* random.tcc: Minor cosmetic changes.

From-SVN: r147538
2009-05-14 17:56:17 +00:00
H.J. Lu
61c273538b re PR middle-end/40147 (Memory leak in revision 147436)
2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/40147
	* ipa-utils.h (memory_identifier_string): Moved to ...
	* tree.h (memory_identifier_string): Here.  Add GTY(()).

From-SVN: r147535
2009-05-14 08:45:32 -07:00
Paolo Bonzini
c6c3dba931 tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this in the former documentation of...
2009-05-14  Paolo Bonzini  <bonzini@gnu.org>

	* doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
	in the former documentation of...
	(GO_IF_LEGITIMATE_ADDRESS): ... this.
	* ira-conflicts.c (get_dup_num): Use address_operand.
	* targhooks.c (default_legitimate_address_p): New.
	* targhooks.h (default_legitimate_address_p): New.
	* reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
	Call hook.
	* recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
	* target.h (struct target): Add legitimate_address_p.
	* target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
	(TARGET_INITIALIZER): Include it.

	* config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
	* config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	(REG_OK_STRICT_P): Delete.
	* config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
	(frv_legitimate_address_p_1): ... this.
	* config/frv/frv.c (frv_legitimate_address_p): Forward to...
	(frv_legitimate_address_p_1): ... the renamed old
	frv_legitimate_address_p.
	* config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/s390/s390-protos.h (legitimate_address_p): Remove.
	* config/s390/s390.c (legitimate_address_p): Rename to...
	(s390_legitimate_address_p): ... this, make static.
	(legitimize_address): Adjust call.
	(TARGET_LEGITIMATE_ADDRESS_P): New.
	* config/s390/constraints.md ("e"): Call strict_memory_address_p.

	* config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
	* config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/spu/spu-protos.h (spu_legitimate_address): Remove.
	* config/spu/spu.c (spu_legitimate_address): Rename to...
	(spu_legitimate_address_p): ... this, make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/sparc/sparc-protos.h (legitimate_address_p): Remove.
	* config/sparc/sparc.c (legitimate_address_p): Rename to...
	(sparc_legitimate_address_p): ... this, make static and return bool.
	(legitimize_address): Adjust call.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/i386/i386-protos.h (legitimate_address_p): Remove.
	* config/i386/i386.c (legitimate_address_p): Rename to...
	(ix86_legitimate_address_p): ... this, make static.
	(constant_address_p): Move after it, adjust call.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/avr/avr-protos.h (legitimate_address_p): Remove.
	* config/avr/avr.c (legitimate_address_p): Rename to...
	(avr_legitimate_address_p): ... this, make static.
	(legitimize_address): Adjust call.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
	* config/crx/crx.c (crx_legitimate_address_p): Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
	* config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
	Remove.
	* config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
	Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
	Remove.
	* config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
	Rename to...
	(m68hc11_legitimate_address_p): ... this, make static.
	(go_if_legitimate_address_internal): Rename to...
	(m68hc11_legitimate_address_p_1): ... this.
	(legitimize_address): Adjust call.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p):
	Remove.
	* config/iq2000/iq2000.c (iq2000_legitimate_address_p):
	Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
	* config/mn10300/mn10300.c (legitimate_address_p): Rename to...
	(mn10300_legitimate_address_p): ... this, make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
	* config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	(REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
	(INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
	* config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
	* config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
	(rs6000_legitimate_address_p): ... this, make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.
	(REG_MODE_OK_FOR_BASE_P): Delete.
	(rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.

	* config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/picochip/picochip-protos.h (picochip_legitimate_address_p):
	Delete.
	* config/picochip/picochip.c (picochip_legitimate_address_p): Make
	static, adjust types.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/score/score.c (score_address_p): Rename to...
	(score_legitimate_address_p): ... this.
	(TARGET_LEGITIMATE_ADDRESS_P): New.
	* config/score/score3.c (score3_address_p): Rename to...
	(score3_legitimate_address_p): ... this.
	* config/score/score7.c (score7_address_p): Rename to...
	(score7_legitimate_address_p): ... this.

	* config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
	THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
	GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/arm/arm-protos.h (thumb1_legitimate_address_p,
	thumb2_legitimate_address_p): Delete.
	(arm_legitimate_address_p): Rename to...
	(arm_legitimate_address_outer_p): ... this.
	* config/arm/constraints.md ("Uq"): Adjust call.
	* config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
	* config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
	(arm_legitimate_address_outer_p): ... this.
	(thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
	* config/mips/mips.c (mips_legitimate_address_p): ... Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/vax/vax-protos.h (legitimate_address_p): Remove.
	* config/vax/vax.c (legitimate_address_p): Rename to...
	(vax_legitimate_address_p): ... this, make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
	* config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
	* config/mmix/mmix.c (mmix_legitimate_address): Rename to...
	(mmix_legitimate_address_p): ... this, make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
	* config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

From-SVN: r147534
2009-05-14 13:42:45 +00:00
Paolo Bonzini
3bd0d9c861 arm.h (PROMOTE_FUNCTION_MODE): Remove handling of MODE_COMPLEX_INT.
2009-05-14  Paolo Bonzini  <bonzini@gnu.org>

	* config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
	of MODE_COMPLEX_INT.

From-SVN: r147531
2009-05-14 13:12:04 +00:00