Commit Graph

77329 Commits

Author SHA1 Message Date
Paul Thomas
dd5797cc36 re PR fortran/29387 (ICE on character array function of variable length)
2006-10-31  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/29387
	* trans-intrinsic.c (gfc_conv_intrinsic_len): Rearrange to have
	a specific case for EXPR_VARIABLE and, in default, build an ss
	to call gfc_conv_expr_descriptor for array expressions..

	PR fortran/29490
	* trans-expr.c (gfc_set_interface_mapping_bounds): In the case
	that GFC_TYPE_ARRAY_LBOUND is not available, use descriptor
	values for it and GFC_TYPE_ARRAY_UBOUND.

	PR fortran/29641
	* trans-types.c (gfc_get_derived_type): If the derived type
	namespace has neither a parent nor a proc_name, set NULL for
	the search namespace.


2006-10-31  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/29387
	* gfortran.dg/intrinsic_actual_2.f90: New test.

	PR fortran/29490
	* gfortran.dg/actual_array_interface_1.f90: New test.

	PR fortran/29641
	* gfortran.dg/used_types_11.f90: New test.

From-SVN: r118220
2006-10-31 06:03:24 +00:00
Steven Bosscher
e5c18c3c29 * opts.c (decode_options): Disable CSE skip blocks.
From-SVN: r118219
2006-10-31 05:31:53 +00:00
GCC Administrator
e4a6b83503 Daily bump.
From-SVN: r118215
2006-10-31 00:17:51 +00:00
Dirk Mueller
f88d05c05f * decl.c (grokdeclarator): Fix line-wrapping.
From-SVN: r118210
2006-10-30 23:56:15 +00:00
Dirk Mueller
32b1d579ae fix typo
From-SVN: r118209
2006-10-30 23:41:07 +00:00
Dirk Mueller
ebbc3ce18e re PR c++/28704 (%s substituted with "static member"/"free" can't be properly translated)
2006-10-30  Dirk Mueller  <dmueller@suse.de>

       PR c++/28704
       * decl.c (grokdeclarator): Duplicate diagnostic message
       for easier translation.

From-SVN: r118208
2006-10-30 23:32:29 +00:00
Paolo Carlini
8975fa18ad utility (tuple_size<std::pair<> >::value): Provide definition.
2006-10-30  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/utility (tuple_size<std::pair<> >::value): Provide
	definition.

From-SVN: r118207
2006-10-30 23:23:44 +00:00
Dirk Mueller
a1e45ff04c re PR c++/6321 (no warning for bad main function declaration)
2006-10-30  Dirk Mueller  <dmueller@suse.de>

        PR c++/6321
        * cp/decl.c (grokfndecl): Use check_main_parameter_types.

        * c-common.h (strict_aliasing_warning): Fix whitespace.
        * c-decl (start_function): Move code for main decl warning ..
        * c-common.c (check_main_parameter_types): .. here.
        * c-common.h (check_main_parameter_types): Declare.

From-SVN: r118206
2006-10-30 23:15:42 +00:00
Dirk Mueller
e7c41c9948 re PR c++/28669 (%s substituted with static/non- can't be properly translated)
2006-10-30  Dirk Mueller  <dmueller@suse.de>

       PR c++/28669
       * decl.c (grokfndecl): Duplicate warning message for
       easier translation.

From-SVN: r118205
2006-10-30 23:08:59 +00:00
Dirk Mueller
95220fdfba eichin01a.C (main): Fix prototype.
2006-10-30  Dirk Mueller  <dmueller@suse.de>

       * g++.old-deja/g++.pt/eichin01a.C (main): Fix prototype.
       * g++.old-deja/g++.pt/eichin01b.C (main): Same.
       * g++.old-deja/g++.pt/eichin01.C (main): Same.
       * g++.old-deja/g++.mike/net25.C (main): Same.
       * g++.dg/lookup/exception1.C (main): Same.
       * g++.dg/parse/parens2.C (main): Same.

From-SVN: r118204
2006-10-30 22:25:07 +00:00
Paolo Carlini
c8bf5b7c54 tuple_iterate.h (tuple_size<tuple<> >::value): Provide definition.
2006-10-30  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/tuple_iterate.h (tuple_size<tuple<> >::value): Provide
	definition.
	* include/tr1/functional (is_bind_expression<>::value,
	is_placeholder<>::value, + various partial specializations): Likewise.
	* include/tr1/array (tuple_size<array<> >::value): Likewise.

From-SVN: r118203
2006-10-30 22:22:38 +00:00
Roger Sayle
771e6d83c9 pr27827.c: Explicitly specify -mfpmath=387.
* gcc.target/i386/pr27827.c: Explicitly specify -mfpmath=387.

From-SVN: r118201
2006-10-30 21:31:19 +00:00
Kaveh R. Ghazi
61fb309f70 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): Evaluate tgamma using MPFR.

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

From-SVN: r118200
2006-10-30 20:21:59 +00:00
Pete Steinmetz
ff81aa23e5 recog.c (store_data_bypass_p): Add support to allow IN_INSN to be a PARALLEL containing sets.
* recog.c (store_data_bypass_p): Add support to allow IN_INSN to
	be a PARALLEL containing sets.  Return false when out_pat is not
	a PARALLEL insn.

From-SVN: r118199
2006-10-30 13:43:55 -06:00
Uros Bizjak
779958a200 MAINTAINERS: Change email address.
* MAINTAINERS: Change email address.

From-SVN: r118198
2006-10-30 20:41:10 +01:00
Paolo Carlini
a1d31db4af max_size.cc: Actually do test max_size().
2006-10-30  Paolo Carlini  <pcarlini@suse.de>

	* testsuite/tr1/6_containers/array/capacity/max_size.cc: Actually
	do test max_size().

From-SVN: r118194
2006-10-30 18:59:00 +00:00
Vladimir Prus
91de15279f MAINTAINERS (Write After Approval): Add myself.
2006-10-30  Vladimir Prus  <vladimir@codesourcery.com>

        * MAINTAINERS (Write After Approval): Add myself.

From-SVN: r118193
2006-10-30 18:47:33 +00:00
Tobias Burnus
9aceacac92 re PR fortran/29452 (Keyword check for specifiers in WRITE and READ)
fortran/
2006-10-30  Tobias Burnus  <burnus@net-b.de>

       	PR fortran/29452
       	* io.c (check_io_constraints): Fix keyword string comparison.

libgfortran/
2006-10-30  Tobias Burnus  <burnus@net-b.de>

       	PR fortran/29452
	* runtime/string.c (compare0): Check whether string lengths match.

testsuite/
2006-10-30  Tobias Burnus  <burnus@net-b.de>

	PR fortran/29452
	* gfortran.dg/write_check.f90: Check run-time keyword checking.
	* gfortran.dg/write_check2.f90: Check compile-time keyword checking

From-SVN: r118191
2006-10-30 19:22:47 +01:00
Richard Sandiford
e1efef1ef1 mips.md (mul<mode>3): Split into...
gcc/
	* config/mips/mips.md (mul<mode>3): Split into...
	(mulsi3, muldi3): ...these separate patterns.

From-SVN: r118190
2006-10-30 18:18:03 +00:00
Richard Sandiford
8ec2ac7b26 linux64.h (DRIVER_SELF_SPECS): Use a single spec, but with each set of options separated by spaces.
gcc/
	* config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
	but with each set of options separated by spaces.

From-SVN: r118189
2006-10-30 18:05:54 +00:00
J"orn Rennecke
7bec3e8418 unwind-dw2.c (uw_init_context_1): Fix test that checks if dwarf_reg_size_table has been initialized.
* unwind-dw2.c (uw_init_context_1): Fix test that checks if
	dwarf_reg_size_table has been initialized.

From-SVN: r118188
2006-10-30 17:55:33 +00:00
Roger Sayle
428aba16aa builtins.c (expand_builtin_mathfn_3): Correct coding style.
* builtins.c (expand_builtin_mathfn_3): Correct coding style.
	* ddg.c (print_ddg_edge): Likewise.
	* dwarf2out.c (prune_unused_types_walk): Likewise.
	* ifcvt.c (noce_try_cmove_arith): Likewise.
	* langhooks.c (add_builtin_function): Likewise.
	* reg-stack.c (subst_stack_regs_pat): Likewise.
	* tree.c (expanded_location): Likewise.
	* tree-dump.c (dequeue_and_dump): Likewise.

From-SVN: r118187
2006-10-30 17:51:46 +00:00
Andrew Pinski
0e69739965 re PR fortran/29410 ([4.2 only] bug with TRANSFER() and -O2)
2006-10-30  Andrew Pinski  <pinskia@gmail.com>

        PR fortran/29410
        * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer):
        Change over to create VIEW_CONVERT_EXPR instead of using an
        ADDR_EXPR, a cast and then an indirect reference
2006-10-30  Andrew Pinski  <pinskia@gmail.com>

        PR Fortran/29410
        * gfortran.fortran-torture/execute/transfer1.f90: New test.

From-SVN: r118186
2006-10-30 08:15:09 -08:00
Dirk Mueller
ff84991f99 typeck.c (build_unary_op): Fix indenting.
2006-10-30  Dirk Mueller  <dmueller@suse.de>

       * typeck.c (build_unary_op): Fix indenting. Use G_().

From-SVN: r118185
2006-10-30 14:44:45 +00:00
Joseph Myers
709e1a1a8a default.exp (${tool}_target_compile): Use v3_target_compile.
libstdc++-v3:
	* testsuite/config/default.exp (${tool}_target_compile): Use
	v3_target_compile.

gcc/testsuite:
	* lib/target-supports.exp (check_function_available): Declare
	function before calling.

From-SVN: r118182
2006-10-30 14:03:05 +00:00
David Daney
aaf0c39c04 * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
From-SVN: r118179
2006-10-30 08:25:25 +00:00
Jakub Jelinek
cc59abbf35 re PR tree-optimization/29637 (Endless recursion in make_vector_type)
PR tree-optimization/29637
	* tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
	of the innertype is the innertype itself.

	* gcc.dg/pr29637.c: New test.

From-SVN: r118175
2006-10-30 09:01:28 +01:00
Mike Stump
5fbd205139 Fix whitespacing.
From-SVN: r118173
2006-10-30 05:56:18 +00:00
Danny Smith
2310f1f84f dwarf2out.c (file_name_acquire): Correct typo.
* dwarf2out.c (file_name_acquire): Correct typo.
	Formatting tweak to earlier ChangeLog entry.

From-SVN: r118171
2006-10-30 03:18:57 +00:00
Roger Sayle
00f5f722bf fold-compare-1.c: Update to reflect recent changes in tree canonicalization.
* gcc.dg/fold-compare-1.c: Update to reflect recent changes in
	tree canonicalization.

From-SVN: r118170
2006-10-30 02:46:11 +00:00
Daniel Berlin
83737db21d tree.h (tree_value_handle): Remove struct value_set declaration.
2006-10-29  Daniel Berlin  <dberlin@dberlin.org>

	* tree.h (tree_value_handle): Remove struct value_set declaration.	
	Change value_set to bitmap_set.
	* tree-pretty-print.c (dump_generic_node): Use has_stmt_ann.
	* tree-vn.c (get_value_handle): Made inline and moved to
	tree-flow-inline.h.
	* tree-flow-inline.h: (has_stmt_ann): New function.
	* tree-ssa-pre.c (expressions): New variable.
	(next_expression_id): Ditto.
	(alloc_expression_id): New function.
	(struct value_set): Remove.
	(get_expression_id): New function.
	(get_or_alloc_expression_id): Ditto.
	(expression_for_id): Ditto.
	(clear_expression_ids): Ditto.
	(FOR_EACH_EXPR_ID_IN_SET): New macro.
	(bb_value_sets): Renamed to bb_bitmap_sets.
	All value sets replaced with bitmap_sets.
	Add visited member.
	(BB_VISITED): New macro.
	(postorder): New variable.
	(add_to_value): Removed.
	(value_exists_in_set_bitmap): Ditto.
	(value_insert_into_set_bitmap): Ditto.
	(set_new): Ditto.
	(set_copy): Ditto.
	(set_remove): Ditto.
	(set_contains_value): Ditto.
	(insert_into_set): Ditto.
	(set_equal): Ditto.
	(find_leader): Ditto.
	(bitmap_set_subtract_from_value_set): Ditto.
	(value_insert_into_set): Ditto.
	(print_value_set): Ditto.
	(debug_value_set): Ditto.
	(constant_expr_p): New function.
	(bitmap_remove_from_set): Ditto.
	(bitmap_insert_into_set): Ditto.
	(bitmap_set_free): Ditto.
	(vh_compare): Ditto.
	(sorted_array_from_bitmap_set): Ditto.
	(bitmap_set_subtract): Ditto.
	(bitmap_set_equal): Ditto.
	(debug_bitmap_set): Ditto.
	(find_leader_in_sets): Ditto.
	(bitmap_set_replace_value): Modify for bitmapped sets.
	(phi_translate): Ditto.
	(phi_translate_set): Ditto.
	(bitmap_find_leader): Ditto.
	(valid_in_sets): Ditto.
	(union_contains_value): Ditto.
	(clean): Ditto.
	(compute_antic_aux): Ditto.  Mark changed blocks.
	(compute_antic): Ditto. Iterate in postorder and only over
	changing blocks.
	(compute_rvuse_and_antic_safe): Reuse postorder.
	(create_component_ref_by_pieces): Modify for bitmapped sets.
	(find_or_generate_expression): Ditto.
	(create_expression_by_pieces): Ditto.
	(insert_into_preds_of_block): Ditto.
	(changed_blocks): New variable.
	(do_regular_insertion): Broken out from insert_aux.
	(insert_aux): Modified for bitmapped sets.
	(find_existing_value_expr): New function.
	(create_value_expr_from): Use it.
	(insert_extra_phis): Removed.
	(print_bitmap_set): Renamed from bitmap_print_value_set.
	(compute_avail): Handle RETURN_EXPR.
	(init_pre): Modify for bitmapped sets.
	* tree-flow.h (has_stmt_ann): New function.

From-SVN: r118169
2006-10-30 01:58:42 +00:00
Roger Sayle
7c73bdc185 builtins.c (fold_builtin_floor): Check for the availability of the C99 trunc function before transforming floor...
* builtins.c (fold_builtin_floor): Check for the availability of
	the C99 trunc function before transforming floor into trunc.

From-SVN: r118168
2006-10-30 01:14:37 +00:00
GCC Administrator
bd91e5ba22 Daily bump.
From-SVN: r118165
2006-10-30 00:17:44 +00:00
Kaveh R. Ghazi
012c53688f builtins.c (fold_builtin_hypot): Rearrange recursive transformation before others, and also do ABS_EXPR.
* builtins.c (fold_builtin_hypot): Rearrange recursive
	transformation before others, and also do ABS_EXPR.  When
	necessary, check flag_unsafe_math_optimizations.  When necessary,
	add fabs.

testsuite:
	* gcc.dg/builtins-20.c: Add more hypot tests.

From-SVN: r118160
2006-10-29 23:08:23 +00:00
Paolo Carlini
cd07aa11f9 debug.cc (_Safe_sequence_base::_M_revalidate_singular): Fix pasto, advance __iter only once per iteration.
2006-10-29  Paolo Carlini  <pcarlini@suse.de>

	* src/debug.cc (_Safe_sequence_base::_M_revalidate_singular): Fix
	pasto, advance __iter only once per iteration.

From-SVN: r118159
2006-10-29 21:50:23 +00:00
Roger Sayle
c159ffe706 fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
* fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
	Fold ~X op C as X op' ~C, where op' is the swapped comparison.
	(fold_binary): ~X eq/ne C is now handled in fold_comparison.
	Fold -X eq/ne -Y as X eq/ne Y.

	* gcc.dg/fold-compare-1.c: New test case.

From-SVN: r118158
2006-10-29 21:41:48 +00:00
Dirk Mueller
153ae66aee re PR c++/29089 (Words substituted for %s in a sentence can not be translated)
PR c++/29089
       * typeck.c (build_unary_op): Duplicate warning message
       for easier translation.

From-SVN: r118156
2006-10-29 19:52:52 +00:00
Dirk Mueller
180550a8b8 fix testcase
From-SVN: r118155
2006-10-29 18:46:49 +00:00
Dirk Mueller
0958b0d31d re PR c++/16307 (-Wchar-subscripts does not warn on pointers)
2006-10-29  Dirk Mueller  <dmueller@suse.de>

        PR c++/16307
        * typeck.c (build_array_ref): Warn for char subscriptions
        on pointers.

        * g++.dg/warn/Wchar-subscripts-2.C: New testcase.

From-SVN: r118154
2006-10-29 18:38:26 +00:00
Richard Sandiford
3f07249e98 mips.md (mul<mode>3): Check ISA_HAS_MUL3 rather than GENERATE_MULT3_<MODE>.
gcc/
	* config/mips/mips.md (mul<mode>3): Check ISA_HAS_MUL3 rather than
	GENERATE_MULT3_<MODE>.  Restrict the test to SImode.  Use ISA_HAS_MUL3
	rather than GENERATE_MULT3_SI in the various define_peephole2s.
	(mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI.
	Use an inclusive test for "mult" rather than "mul".
	(rotr<mode>3): Depend on ISA_HAS_ROR.
	* config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of
	ISA_HAS_MUL3.
	(GENERATE_MULT3_DI): Delete.
	(ISA_HAS_64BIT_REGS): Use consistent formatting.
	(ISA_HAS_MUL3): New macro.
	(ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting.
	(ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise.
	(ISA_HAS_CLZ_CLO): Likewise.
	(ISA_HAS_DCLZ_DCLO): Delete.
	(ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16.
	(ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just
	the VR4120 and VR4130.
	(ISA_HAS_MACCHI): Use consistent formatting.
	(ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of...
	(ISA_HAS_ROR): ...this new macro.
	(ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting.
	(ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise.
	(ISA_HAS_LOAD_DELAY): Use ISA_MIPS1.

From-SVN: r118153
2006-10-29 18:20:45 +00:00
Roger Sayle
f8ed9a1c65 re PR tree-optimization/15458 (Combine ~ and ^.)
PR tree-optimization/15458
	* fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
	is a constant.

	* gcc.dg/fold-xornot-1.c: New test case.

From-SVN: r118152
2006-10-29 17:51:07 +00:00
Francois-Xavier Coudert
0f8bc3e173 trans-intrinsic.c (gfc_conv_intrinsic_loc): Make LOC return a signed integer node.
* trans-intrinsic.c (gfc_conv_intrinsic_loc): Make LOC return a
	signed integer node.

From-SVN: r118151
2006-10-29 17:05:37 +00:00
Jerry DeLisle
2c693a24a0 re PR fortran/17741 (ICE in gfc_free_namespace, at fortran/symbol.c:2208)
2006-10-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/17741
	* decl.c (get_proc_name): Bump current namespace refs count.

From-SVN: r118149
2006-10-29 16:43:48 +00:00
Richard Guenther
044928d612 i386-protos.h (ix86_expand_trunc): Declare.
2006-10-29  Richard Guenther  <rguenther@suse.de>

	* config/i386/i386-protos.h (ix86_expand_trunc): Declare.
	(ix86_expand_truncdf_32): Likewise.
	* config/i386/i386.c (ix86_expand_trunc): New function expanding
	trunc inline for SSE math and -fno-trapping-math and if not
	optimizing for size.
	(ix86_expand_truncdf_32): Same for DFmode on 32bit archs.
	* config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders
	for expanding btrunc inline for SSE math.

	* gcc.target/i386/math-torture/trunc.c: New testcase.

From-SVN: r118148
2006-10-29 16:43:21 +00:00
Joseph Myers
0f45f0f588 config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
gcc:
	* config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
	Handle tuning for bi-arch i[34567]86-*-linux* like that for
	i[34567]86-*-solaris2.1[0-9]*.
	* config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS):
	Define conditionally depending on TARGET_64BIT_DEFAULT.
	(SPEC_32, SPEC_64): Define.
	(LINK_SPEC): Use them.
	* doc/install.texi (--enable-targets=all): Document for x86-linux.

libcpp:
	* configure.ac (need_64bit_hwint): Set for i[34567]86-*-linux*
	depending on --enable-targets=all.
	* configure: Regenerate.

fixincludes:
	* inclhack.def (AAB_fd_zero_asm_posix_types_h): Bypass on x86_64.
	* fixincl.x: Regenerate.

From-SVN: r118147
2006-10-29 16:35:50 +00:00
Richard Guenther
097f296422 i386-protos.h (ix86_expand_round): Declare.
2006-10-29  Richard Guenther  <rguenther@suse.de>

	* config/i386/i386-protos.h (ix86_expand_round): Declare.
	(ix86_expand_rounddf_32): Likewise.
	* config/i386/i386.c (ix86_expand_round): New function expanding
	round inline for SSE math and -fno-trapping-math and if not
	optimizing for size.
	(ix86_expand_rounddf_32): Same for DFmode on 32bit archs.
	* config/i386/i386.md (rounddf2, roundsf2): New pattern expanding
	round via ix86_expand_round.

	* gcc.target/i386/math-torture/round.c: New testcase.

From-SVN: r118146
2006-10-29 16:33:36 +00:00
Richard Guenther
d096ecdd96 i386-protos.h (ix86_expand_floorceil): Declare.
2006-10-29  Richard Guenther  <rguenther@suse.de>

	* config/i386/i386-protos.h (ix86_expand_floorceil): Declare.
	(ix86_expand_floorceildf_32): Likewise.
	* config/i386/i386.c (ix86_expand_sse_compare_mask): New
	static helper function.
	(ix86_expand_floorceil): Expander for floor and ceil to SSE
	math.
	(ix86_expand_floorceildf_32): Same for DFmode on 32bit archs.
	* config/i386/i386.md (floordf2): Adjust to enable floor
	expansion via ix86_expand_floorceil if TARGET_SSE_MATH and
	-fno-trapping-math is enabled and if not optimizing for size.
	(floorsf2, ceildf2, ceilsf2): Likewise.
	* config/i386/sse.md (sse_maskcmpsf3): New insn.
	(sse2_maskcmpdf3): Likewise.

	* gcc.target/i386/math-torture/ceil.c: New testcase.
	* gcc.target/i386/math-torture/floor.c: Likewise.

From-SVN: r118145
2006-10-29 16:28:40 +00:00
Richard Guenther
c7d32ff619 builtins.c (expand_builtin_mathfn): Expand nearbyint as rint in case -fno-trapping-math is enabled.
2006-10-29  Richard Guenther  <rguenther@suse.de>

	* builtins.c (expand_builtin_mathfn): Expand nearbyint as
	rint in case -fno-trapping-math is enabled.
	* config/i386/i386-protos.h (ix86_expand_rint): Declare.
	* config/i386/i386.c (ix86_gen_TWO52): New static helper function.
	(ix86_expand_sse_fabs): Likewise.
	(ix86_expand_rint): New function expanding rint to x87 or SSE math.
	* config/i386/i386.md (rintdf2): Enable for SSE math if
        -fno-trapping-math is enabled, use ix86_expand_rint for expansion.
	(rintsf2): Likewise.

	* gcc.target/i386/math-torture/rint.c: New testcase.
	* gcc.target/i386/math-torture/nearbyint.c: Likewise.

From-SVN: r118144
2006-10-29 15:25:52 +00:00
Richard Guenther
c3a4177fe1 genopinit.c (optabs): Change lfloor_optab and lceil_optab to conversion optabs.
2006-10-29  Richard Guenther  <rguenther@suse.de>

	* genopinit.c (optabs): Change lfloor_optab and lceil_optab
	to conversion optabs.
	* optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab
	as conversion optab.
	* optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil.
	(enum convert_optab_index): Add COI_lfloor and COI_lceil.
	(lfloor_optab, lceil_optab): Adjust defines.
	* builtins.c (expand_builtin_int_roundingfn): Adjust for
	lfloor and lceil optabs now being conversion optabs.
	* config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare.
	* config/i386/i386.c (ix86_expand_sse_compare_and_jump):
	New static helper function.
	(ix86_expand_lfloorceil): New function to expand lfloor and
	lceil inline.
	* config/i386/i386.md (lfloor<mode>2): Split into ...
	(lfloorxf<mode>2): ... x87 variant
	(lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants
	using ix86_expand_lfloorceil.
	(lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2):
	Likewise.
	* doc/md.texi (lfloorMN, lceilMN): Document.

	* gcc.target/i386/math-torture/lfloor.c: New testcase.
	* gcc.target/i386/math-torture/lceil.c: Likewise.

From-SVN: r118143
2006-10-29 15:18:24 +00:00
Tobias Burnus
98c58757e6 re PR libfortran/24313 (complex sqrt function does not return principal value)
2006-10-28  Tobias Burnus  <burnus@net-b.de>

       PR libgfortran/24313
       * gfortran.dg/csqrt_2.f: Remove xfail *-*-linux-gnu.

From-SVN: r118142
2006-10-29 12:56:56 +01:00