Commit Graph

82156 Commits

Author SHA1 Message Date
Peter Bergner
7e0b4eaea1 PR middle-end/PR28690
PR middle-end/PR28690
	* optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow EQ compares.
	* rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER
	and MEM_POINTER operands over REG and MEM operands.
	(swap_commutative_operands_p): Change return value to bool.
	* rtl.h: Update the corresponding prototype.
	* tree-ssa-address.c (gen_addr_rtx): Use simplify_gen_binary
	instead of gen_rtx_PLUS.
	* simplify-rtx.c (simplify_plus_minus_op_data_cmp): Change return
	value to bool.  Change function arguments to rtx's and update code
	to match.
	(simplify_plus_minus): Update the simplify_plus_minus_op_data_cmp
	calls to match the new declaration.
	* simplify-rtx.c (simplify_associative_operation): Don't
	reorder simplify_binary_operation arguments.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r126852
2007-07-23 11:43:24 -05:00
Rainer Orth
de2b3a0771 configure.ac (mips-sgi-irix6*): Override SYSTEMSPEC.
* configure.ac (mips-sgi-irix6*): Override SYSTEMSPEC.
	* configure: Regenerate.

From-SVN: r126847
2007-07-23 12:51:36 +00:00
Richard Sandiford
a05bea7677 mips.c (override_options): Use mips_costs to derive the default branch cost.
gcc/
	* config/mips/mips.c (override_options): Use mips_costs to derive
	the default branch cost.
	* config/mips/mips.h (BRANCH_COST): Use mips_branch_cost rather
	than mips_costs.
	* config/mips/mips.opt (mbranch-cost=): New option.
	* doc/invoke.texi (-mbrach-cost): Document new MIPS option.

gcc/testsuite/
	* gcc.target/mips/branch-cost-1.c: New test.
	* gcc.target/mips/branch-cost-2.c: Likewise.

From-SVN: r126846
2007-07-23 12:49:45 +00:00
Richard Sandiford
fae4095f01 Fix last changelog.
From-SVN: r126845
2007-07-23 12:16:17 +00:00
Richard Sandiford
fe3465d17c mips.h (GR_REG_CLASS_P, [...]): Delete.
gcc/
	* config/mips/mips.h (GR_REG_CLASS_P, COP_REG_CLASS_P): Delete.
	(SECONDARY_MEMORY_NEEDED): Delete commented-out definition.
	* config/mips/mips.c (mips_init_libfuncs): Use reg_class_subset_p
	instead of GR_REG_CLASS_P and COP_REG_CLASS_P.

From-SVN: r126844
2007-07-23 12:11:14 +00:00
Richard Sandiford
2b656cfda8 Fix last changelog.
From-SVN: r126843
2007-07-23 12:06:40 +00:00
Richard Sandiford
f348741d28 constraints.md (ks): New constraint.
gcc/
	* config/mips/constraints.md (ks): New constraint.
	* config/mips/mips.md (*add<mode>3_sp1, *add<mode>3_sp2): Fold into...
	(*add<mode>3_mips16): ...here and fix their length calculations.

From-SVN: r126842
2007-07-23 12:04:48 +00:00
Christopher D. Rickett
8b16d23143 re PR fortran/32732 ([Bind C] Character scalars are passed as arrays)
2007-07-23  Christopher D. Rickett  <crickett@lanl.gov>

       PR fortran/32732
       * trans-decl.c (generate_local_decl): Convert the TREE_TYPE for by
       value character dummy args of BIND(C) procedures.
       * trans-expr.c (gfc_conv_variable): Do not build address
       expression for BT_CHARACTER dummy args.

2007-07-23  Christopher D. Rickett  <crickett@lanl.gov>

       PR fortran/32732
       * gfortran.dg/c_char_tests.f03: New test case.
       * gfortran.dg/c_char_driver.c: Driver for c_char_tests.f03.
       * gfortran.dg/c_char_tests_2.f03: New test case.
       * gfortran.dg/value_6.f03: Ditto.
       * gfortran.dg/value_7.f03: Ditto.

From-SVN: r126836
2007-07-23 11:03:30 +02:00
Christopher D. Rickett
089db47df6 re PR fortran/32600 ([ISO Bind C] C_F_POINTER w/o SHAPE should not be a library function)
2007-07-23  Christopher D. Rickett  <crickett@lanl.gov>
	    Tobias Burnus  <burnus@net-b.de>

	PR fortran/32600
	* trans-expr.c (gfc_conv_function_call): Handle c_funloc.
	* trans-types.c: Add pfunc_type_node.
	(gfc_init_types,gfc_typenode_for_spec): Use it.
	* resolve.c (gfc_iso_c_func_interface): Fix whitespace and
	improve error message.

2007-07-23  Christopher D. Rickett  <crickett@lanl.gov>

	PR fortran/32600
	* intrinsics/iso_c_binding.c (c_funloc): Remove.
	* intrinsics/iso_c_binding.h: Remove c_funloc.
	* gfortran.map: Ditto.

2007-07-23  Christopher D. Rickett  <crickett@lanl.gov>

	PR fortran/32600
	* gfortran.dg/c_funloc_tests_5.f03: New.
	* gfortran.dg/c_funloc_tests_5.f04: New.
	* gfortran.dg/c_funloc_tests_4_driver.c: New.


Co-Authored-By: Tobias Burnus <burnus@net-b.de>

From-SVN: r126835
2007-07-23 08:03:33 +02:00
Jerry DeLisle
db75c37a3a read.c (convert_real): Generate error only on EINVAL.
2007-07-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* io/read.c (convert_real): Generate error only on EINVAL.

From-SVN: r126834
2007-07-23 02:42:05 +00:00
GCC Administrator
b92dddf099 Daily bump.
From-SVN: r126832
2007-07-23 00:17:13 +00:00
Nathan Sidwell
823c22f9ea re PR c++/32839 (internal compiler error: Segmentation fault (templates))
cp/
	PR c++/32839
	* typeck.c (convert_arguments): Only use default args if we have
	a function decl.

testsuite/
	PR c++/32839
	* g++.dg/expr/call4.C: New.
	* g++.dg/expr/call5.C: New.

From-SVN: r126829
2007-07-22 18:46:51 +00:00
Daniel Franke
eec14ce5ec re PR fortran/32710 (ICE: namelist and subroutine with the same name)
gcc/fortran:
2007-07-22  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/32710
	* parse.c (gfc_fixup_sibling_symbols): No replacement of symbols if
	the current is a namelist.

gcc/testsuite:
2007-07-22  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/32710
	* gfortran.dg/namelist_30.f90: New test.

From-SVN: r126828
2007-07-22 12:37:12 -04:00
Daniel Franke
26677eb88e ChangeLogs for r126826.
From-SVN: r126827
2007-07-22 12:34:31 -04:00
Daniel Franke
e1633d825d re PR fortran/29962 (Initialization expressions)
gcc/fortran:
2007-07-22  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/29962
	PR fortran/31253
	PR fortran/31265
	PR fortran/31639
	* gfortran.h (gfc_intrinsic_sym): Changed members elemental, pure,
	generic, specific, actual_ok, noreturn into bits of a bitfield, 
	added bits for inquiry, transformational, conversion.
	* check.c (non_init_transformational): Removed, removed all callers.
	* intrinsic.c (enum class): New.
	(add_sym*): Replaced argument elemetal by enum class. Changed all
	callers.
	(add_functions): Assign appropriate classes to intrinsic functions.
	(add_subroutines): Assign appropriate classes to intrinsic subroutines.
	(add_conv): Set conversion attribute.
	(gfc_init_expr_extensions): Removed, removed all callers.
	(gfc_intrinsic_func_interface): Reimplemented check for non-standard
	initializatione expressions.
	* expr.c (check_specification_function): New.
	(gfc_is_constant_expr): Added check for specification functions.
	(check_init_expr_arguments): New.
	(check_inquiry): Changed return value to MATCH, added checks for
	inquiry functions defined by F2003.
	(check_transformational): New.
	(check_null): New.
	(check_elemental): New.
	(check_conversion): New.
	(check_init_expr): Call new check functions, add more specific error
	messages.

gcc/testsuite:
2007-07-22  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/29962
	* gfortran.dg/array_initializer_1.f90: Removed warning.
	* gfortran.dg/initialization_1.f90: Adjusted messages.
	* gfortran.dg/nested_modules_6.f90: Removed warning.

	PR fortran/31253
	* gfortran.dg/initialization_7.f90: New test.

	PR fortran/31639
	* gfortran.dg/initialization_8.f90: New test.

From-SVN: r126826
2007-07-22 12:31:11 -04:00
Nathan Sidwell
4195a76796 re PR c++/30818 (templates and typedefs cause function prototype not to match)
cp/
	PR c++/30818
	* typeck.c (structural_comptypes): No need to check
	resolve_typename_type return value here.
	* cp-tree.h (TYPENAME_IS_RESOLVING_P): New.
	* pt.c (resolve_typename_type): Follow typename typedefs.  Return
	original type rather than error_mark_node in case of failure.
	* parser.c (cp_parser_nested_name_specifier_opt): Adjust
	resolve_typename_type result check.
	(cp_parser_direct_declarator, cp_parser_head,
	cp_parser_constructor_declarator_p): Likewise.

testsuite/
	PR c++/30818
	* g++.dg/template/crash47.C: Adjust errors.
	* g++.dg/template/crash48.C: Adjust errors.
	* g++.dg/template/typename12.C: New.
	* g++.dg/template/typename13.C: New.
	* g++.dg/template/typename14.C: New.
	* g++.dg/template/typedef6.C: Adjust errors.

From-SVN: r126825
2007-07-22 16:25:54 +00:00
H.J. Lu
7e24f16cf7 Add missing ChangeLog entry.
From-SVN: r126824
2007-07-22 07:50:23 -07:00
GCC Administrator
83dc3db9a2 Daily bump.
From-SVN: r126820
2007-07-22 00:17:05 +00:00
Christopher D. Rickett
6ad5cf725f re PR fortran/32627 ([ISO Bind C] Accept c_f_pointer for TYPE)
2007-07-21  Christopher D. Rickett  <crickett@lanl.gov>

        PR fortran/32627
        * resolve.c (set_name_and_label): Set kind number for character
        version of c_f_pointer.
        (gfc_iso_c_sub_interface): Set the kind of the SHAPE formal arg to
        that of the actual SHAPE arg.
        * symbol.c (gen_shape_param): Initialize kind for SHAPE arg.

2007-07-21  Christopher D. Rickett  <crickett@lanl.gov>

        PR fortran/32627
        * libgfortran/intrinsics/iso_c_generated_procs.c: Add c_f_pointer
        for character/string arguments.
        * libgfortran/intrinsic/iso_c_binding.c (c_f_pointer_u0): Allow
        the optional SHAPE arg to be any valid integer kind.
        * libgfortran/gfortran.map: Add c_f_pointer_s0.
        * libgfortran/mk-kinds-h.sh: Save smallest integer kind as default
        character kind.
        * libgfortran/intrinsics/iso_c_generated_procs.c: Add versions of
        c_f_pointer for complex and logical types.
        * libgfortran/gfortran.map: Add c_f_pointer versions for logical
        and complex types.

2007-07-21  Christopher D. Rickett  <crickett@lanl.gov>

        PR fortran/32627
        * gfortran.dg/pr32627_driver.c: Driver for pr32627.
        * gfortran.dg/pr32627.f03: New test case.
        * gfortran.dg/c_f_pointer_logical.f03: New test case.
        * gfortran.dg/c_f_pointer_logical_driver.c: Driver for
        c_f_pointer_logical.
        * gfortran.dg/c_f_pointer_complex_driver.c: Driver for
        c_f_pointer_complex.
        * gfortran.dg/c_f_pointer_complex.f03: New test case.
        * gfortran.dg/c_f_pointer_shape_tests_2_driver.c: Driver for
        c_f_pointer_shape_tests_2.
        * gfortran.dg/c_f_pointer_shape_tests_2.f03: New test case.

From-SVN: r126817
2007-07-21 23:45:44 +00:00
Uros Bizjak
8e4c6d8802 * genopinit.c (optabs): Missed commit from my previous commit.
From-SVN: r126814
2007-07-21 23:47:43 +02:00
Uros Bizjak
d0c9d43152 optabs.h (enum optab_index): Add new OTI_signbit.
* optabs.h (enum optab_index): Add new OTI_signbit.
        (signbit_optab): Define corresponding macro.
        (enum insn_code signbit_optab[]): Remove array.
        * optabs.c (init_optabs): Initialize signbit_optab using init_optab.
        (expand_copysign_absneg): If back end provides signbit insn, use it
        instead of bit operations on floating point argument.
        * builtins.c (enum insn_code signbit_optab[]): Remove array.
        (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code for
        availability of signbit insn.

        * config/i386/i386.md (signbit<mode>2): New insn pattern to implement
        signbitf, signbit and signbitl built-ins as inline x87 intrinsics when
        SSE mode is not active.
        (isinf<mode>2): Disable for mfpmath=sse,387.

From-SVN: r126813
2007-07-21 23:45:06 +02:00
Christopher D. Rickett
21a7722788 re PR fortran/32801 (USE of ISO_C_BINDING, ONLY: C_LOC causes compiler seg fault)
2007-07-21  Christopher D. Rickett  <crickett@lanl.gov>

        PR fortran/32801
        * symbol.c (generate_isocbinding_symbol): Remove unnecessary
        conditional.

        PR fortran/32804
        * resolve.c (gfc_iso_c_func_interface): Reject assumed-shape and
        deferred-shape arrays as args to C_LOC.  Fix bug in testing
        character args to C_LOC.

2007-07-21  Christopher D. Rickett  <crickett@lanl.gov>

        PR fortran/32804
        * gfortran.dg/c_loc_tests_9.f03: New test case.
        * gfortran.dg/c_loc_tests_10.f03: Ditto.

From-SVN: r126812
2007-07-21 20:31:17 +00:00
Ben Elliston
d3960cf47c regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to `class' parameter.
* regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to
	`class' parameter.
	* struct-equiv.c (note_local_live): Likewise for `y_regno'.

From-SVN: r126811
2007-07-22 06:27:18 +10:00
Lee Millward
ffd82975cf re PR fortran/32823 (internal compiler error: in gfc_trans_assignment_1)
PR fortran/32823
        * trans-intrinsic.c (gfc_conv_intrinsic_int): Evaluate all
        arguments passed, not just the first one. Adjust code to refer
        to "args[0]" instead of "arg" as a result.

        * gfortran.dg/int_2.f90: New test.

From-SVN: r126810
2007-07-21 17:59:39 +00:00
Rask Ingemann Lambertsen
3c7471ff79 * gcc.dg/inline-23.c: Use pointer sized type for cast from pointer.
From-SVN: r126809
2007-07-21 09:30:24 +00:00
GCC Administrator
a2c996f32b Daily bump.
From-SVN: r126807
2007-07-21 00:17:11 +00:00
Richard Guenther
d40055abb1 tree-cfg.c (verify_expr): COND_EXPRs can have any integral typed condition.
2007-07-20  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_expr): COND_EXPRs can have any
	integral typed condition.
	* tree-ssa.c (useless_type_conversion_p): Do not preserve
	booleanness.  Only preserve conversions from a non-base
	type to a base type, not in general between types with
	different TYPE_MIN_VALUE or TYPE_MAX_VALUE.
	* tree.def (COND_EXPR): Document that the condition
	can be of any integral type.

From-SVN: r126804
2007-07-20 18:10:57 +00:00
Richard Sandiford
4d40a94f24 mips.exp (is_gp32_flag): Return true for -msmartmips.
gcc/testsuite/
	* gcc.target/mips/mips.exp (is_gp32_flag): Return true for -msmartmips.
	* gcc.target/mips/save-restore-5.c: Fix positioning of dg-do directive.

From-SVN: r126802
2007-07-20 16:00:08 +00:00
Nigel Stephens
48156a3983 mips.h (mips_dwarf_regno): Declare.
gcc/
2007-07-20  Nigel Stephens  <nigel@mips.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.h (mips_dwarf_regno): Declare.
	(DBX_REGISTER_NUMBER): Remove redundant brackets.
	(HI_REGNUM, LO_REGNUM): Define in an endian-dependent way.
	(AC1HI_REGNUM, AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM)
	(AC3HI_REGNUM, AC3LO_REGNUM, ACC_HI_REG_P): Delete.
	(reg_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
	(REG_CLASS_NAMES): Update accordingly.
	* config/mips/mips.c (mips_dwarf_regno): New array.
	(mips_regno_to_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
	(mips_subword): Remove special handling for accumulator registers.
	(override_options): Initiailize mips_dwarf_regno.  Remove use
	of ACC_HI_REG_P.
	(mips_swap_registers): New function.
	(mips_conditional_register_usage): Swap accumulator registers
	around if TARGET_LITTLE_ENDIAN.
	(mips_cannot_change_mode_class): Remove special treatment of ACC_REGS.
	* config/mips/constraints.md (h, l): Use the endianness to choose
	between MD0_REG and MD1_REG.
	* config/mips/mips.md (*mfhilo_<mode>_macc): Use a fixed-string,
	alternative-dependent template.

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

From-SVN: r126801
2007-07-20 15:41:29 +00:00
Uros Bizjak
b644e06199 re PR tree-optimization/19910 (ICE with -ftree-loop-linear)
PR tree-optimization/19910
	* gcc.dg/pr19910.c: New test.

From-SVN: r126799
2007-07-20 11:43:52 +02:00
Richard Sandiford
08a576fb04 arm.md (movsi): Use can_create_pseudo_p instead of no_new_pseudos.
gcc/
	* config/arm/arm.md (movsi): Use can_create_pseudo_p instead of
	no_new_pseudos.

From-SVN: r126798
2007-07-20 09:20:24 +00:00
Zdenek Dvorak
30a873c3f3 function.c (thread_prologue_and_epilogue_insns): Fix exit predecessor fallthru flags.
* function.c (thread_prologue_and_epilogue_insns): Fix exit
	predecessor fallthru flags.

From-SVN: r126797
2007-07-20 01:32:47 +00:00
Zdenek Dvorak
d24a32a186 tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands of compare to the same type.
* tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands
	of compare to the same type.
	* cfgloopmanip.c (add_loop): Update information about loop exits.
	(loop_version): Remove the innermost loop requirement.
	* tree-ssa-loop-manip.c (determine_exit_conditions): Convert bounds
	to sizetype for pointers.

From-SVN: r126796
2007-07-20 01:29:43 +00:00
GCC Administrator
9143267b21 Daily bump.
From-SVN: r126794
2007-07-20 00:17:04 +00:00
Daniel Franke
6616f810b4 Corrected filename from previous commit.
From-SVN: r126791
2007-07-19 17:14:38 -04:00
Daniel Franke
532a6e9842 re PR fortran/32738 (Error: Function 'tree_size' at (1) has no IMPLICIT type)
2007-07-19  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/32738
	* gfortran.dg/pr32768.f90: New test.

From-SVN: r126790
2007-07-19 17:11:38 -04:00
Christopher D. Rickett
972345f2c9 re PR fortran/32600 ([ISO Bind C] C_F_POINTER w/o SHAPE should not be a library function)
2007-07-19  Christopher D. Rickett  <crickett@lanl.gov>

	PR fortran/32600
	* trans-expr.c (gfc_conv_function_call): Inline C_LOC.


2007-07-19  Christopher D. Rickett  <crickett@lanl.gov>

	PR fortran/32600
	* libgfortran/intrinsics/iso_c_binding.c: Remove C_LOC.
	* libgfortran/intrinsics/iso_c_binding.h: Ditto.
	* libgfortran/gfortran.map: Ditto.

From-SVN: r126744
2007-07-19 08:14:19 +02:00
Thomas Koenig
2211d9eae7 re PR tree-optimization/32635 (gfortran - internal compiler error: verify_ssa failed)
2007-07-19  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR tree-optimzation/32635
	* gfortran.dg/pr32635.f:  New test case.

From-SVN: r126742
2007-07-19 04:47:29 +00:00
GCC Administrator
afcc3cea71 Daily bump.
From-SVN: r126738
2007-07-19 00:16:57 +00:00
H.J. Lu
a6c9b188f3 Makefile.in (D32PBIT_FUNCS): Add _sd_to_tf and _tf_to_sd.
2007-07-18  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.in (D32PBIT_FUNCS): Add _sd_to_tf and _tf_to_sd.
	(D64PBIT_FUNCS): Add _dd_to_tf and _tf_to_dd.
	(D128PBIT_FUNCS): Add _td_to_tf and _tf_to_td.

	* config/dfp-bit.c: Empty for TFmode conversions.

From-SVN: r126735
2007-07-18 15:28:28 -07:00
Christopher D. Rickett
c00a2e6beb re PR fortran/32801 (USE of ISO_C_BINDING, ONLY: C_LOC causes compiler seg fault)
2007-07-18  Christopher D. Rickett  <crickett@lanl.gov>

	PR fortran/32801
	* symbol.c (generate_isocbinding_symbol): Fix bug where
	ISOCBINDING_FUNPTR was generated for C_LOC instead of the needed
	ISOCBINDING_PTR.


2007-07-18  Christopher D. Rickett  <crickett@lanl.gov>

	PR fortran/32801
	* gfortran.dg/pr32801.f03: New test case.

From-SVN: r126732
2007-07-19 00:02:21 +02:00
Caroline Tice
0ef0421e82 Fix bootstrap on ia64, PR32764
2007-07-18  Caroline Tice  <ctice@apple.com>
        
        * var-tracking.c (find_src_status):  Check for  COND_EXEC insns
        and handle them correctly; check that src is not NULL before
        trying to use it.
        (find_src_set_src): Likewise.

From-SVN: r126731
2007-07-18 14:08:05 -07:00
Kaveh R. Ghazi
dadda6caba re PR target/32641 (C99 fpclassify, isinf, isfinite, isnormal may raise FP exceptions)
fixincludes:
	PR target/32641

	* inclhack.def (solaris_math_4, solaris_math_5, solaris_math_6,
	solaris_math_7): Constify and make FP exception-safe.
	* tests/base/iso/math_c99.h: Update.

	* fixincl.x: Regenerate.

gcc/testsuite:
	* gcc.dg/c99-math-double-1.c: Mark test variables as volatile.
	Test negative numbers also.
	* gcc.dg/c99-math-float-1.c: Likewise.
	* gcc.dg/c99-math-long-double-1.c: Likewise.
	* gcc.dg/c99-math.h: Check for FP exceptions.  Update for negative
	test inputs.

From-SVN: r126730
2007-07-18 20:22:32 +00:00
Bob Wilson
2a48b790b2 xtensa-config.h (XCHAL_HAVE_THREADPTR): New.
include/
	* xtensa-config.h (XCHAL_HAVE_THREADPTR): New.
	(XCHAL_HAVE_RELEASE_SYNC, XCHAL_HAVE_S32C1I): New.
gcc/
	* config/xtensa/xtensa.c (xtensa_expand_mask_and_shift): New.
	(struct alignment_context, init_alignment_context): New.
	(xtensa_expand_compare_and_swap, xtensa_expand_atomic): New.
	* config/xtensa/xtensa.h (XCHAL_HAVE_RELEASE_SYNC): Add default.
	(XCHAL_HAVE_S32C1I): Likewise.
	(TARGET_RELEASE_SYNC, TARGET_S32C1I): New.
	* config/xtensa/xtensa.md (UNSPECV_MEMW): New constant.
	(UNSPECV_S32RI, UNSPECV_S32C1I): Likewise.
	(ATOMIC, HQI): New macros.
	(memory_barrier, *memory_barrier): New.
	(sync_lock_releasesi): New.
	(sync_compare_and_swapsi, sync_compare_and_swap<mode>): New.
	(sync_lock_test_and_set<mode>): New.
	(sync_<atomic><mode>): New.
	(sync_old_<atomic><mode>, sync_new_<atomic><mode>): New.
	* config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New.
	(xtensa_expand_atomic): New.
gcc/testsuite/	
	* lib/target-supports.exp (check_effective_target_sync_int_long):
	Enable for xtensa.
	(check_effective_target_sync_char_short): Likewise.

From-SVN: r126728
2007-07-18 18:51:21 +00:00
Kaveh R. Ghazi
8a91c45bbf re PR target/30652 (SSE expansion is missing for isinf() and other fpclassify functions)
PR target/30652

	* builtins.c (expand_builtin_interclass_mathfn): Provide a generic
	transformation for builtin ISNORMAL.
	(expand_builtin): Handle BUILT_IN_ISNORMAL.
	* builtins.def (BUILT_IN_ISNORMAL): New.
	* doc/extend.texi: Document isnormal.

testsuite:
	* gcc.dg/pr28796-2.c: Add more cases.

From-SVN: r126726
2007-07-18 17:51:13 +00:00
Kaveh R. Ghazi
0c8d3c2b08 re PR target/30652 (SSE expansion is missing for isinf() and other fpclassify functions)
PR target/30652

	* builtins.c (expand_builtin_interclass_mathfn): Allow for missing
	optabs infrastructure.  Provide generic implementation for
	FINITE/ISFINITE.
	(expand_builtin): Handle FINITE/ISFINITE.
	(fold_builtin_classify): Make ISFINITE canonical instead of FINITE.
	(fold_builtin_1): Likewise.

	* builtins.def (BUILT_IN_ISFINITE): New.

	* doc/extend.texi: Document isfinite.

testsuite:
	* gcc.dg/pr28796-1.c: Add more cases.
	* gcc.dg/pr28796-2.c: Likewise.

From-SVN: r126725
2007-07-18 17:42:12 +00:00
Kaveh R. Ghazi
7faa1bbb5d re PR target/30652 (SSE expansion is missing for isinf() and other fpclassify functions)
PR target/30652
	PR middle-end/20558

	* builtins.c (expand_builtin_interclass_mathfn): Provide a
	generic fallback for isinf.
	* c-cppbuiltin.c (builtin_define_float_constants): Move FP max
	calculation code ...
	* real.c (get_max_float): ... to here.
	* real.h (get_max_float): New.

testsuite:
	* gcc.dg/pr28796-1.c: Add more cases.
	* gcc.dg/pr28796-2.c: Likewise.

From-SVN: r126724
2007-07-18 17:30:38 +00:00
Kaveh R. Ghazi
b5d32c2537 re PR middle-end/32668 (The type-generic builtins apply default promotions)
PR middle-end/32668

	* builtin-attrs.def (ATTR_TYPEGENERIC,
	ATTR_CONST_NOTHROW_TYPEGENERIC): New.

	* builtins.def (BUILT_IN_ISINF, BUILT_IN_ISNAN,
	BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
	BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER,
	BUILT_IN_ISUNORDERED): Use ATTR_CONST_NOTHROW_TYPEGENERIC.

	* c-common.c (handle_type_generic_attribute): New.
	(c_common_attribute_table): Add "type generic".

	* c-typeck.c (convert_arguments): Handle "type generic" functions.

From-SVN: r126723
2007-07-18 16:13:09 +00:00
Daniel Berlin
c3e4e34df9 tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression
2007-07-18  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression
	* tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR
	properly.

From-SVN: r126721
2007-07-18 15:44:28 +00:00
Rask Ingemann Lambertsen
9e19a50c89 re PR target/32808 (cris: ICE: RTL check: expected elt 0 type 'e' or 'u', have 'w' (rtx const_int) in cris_print_index, at config/cris/cris.c:499)
PR target/32808
	* config/cris/cris.c (cris_print_index): Don't use XEXP before
	checking that the operand is an expression.

From-SVN: r126720
2007-07-18 13:47:28 +00:00