Commit Graph

82292 Commits

Author SHA1 Message Date
Richard Guenther 48f731502c treetree.c (tree_code_generate_return): RETURN_EXPRs have volatile type.
2007-07-25  Richard Guenther  <rguenther@suse.de>

        * treetree.c (tree_code_generate_return): RETURN_EXPRs
        have volatile type.

From-SVN: r126912
2007-07-25 12:46:42 +00:00
Julian Brown 88f77cba02 Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi.
gcc/
    * Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi.
    * config.gcc (arm*-*-*): Add arm_neon.h to extra headers.
    (with_fpu): Allow --with-fpu=neon.
    * config/arm/aof.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
    * config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
    * config/arm/arm-modes.def (EI, OI, CI, XI): New modes.
    * config/arm/arm-protos.h (neon_immediate_valid_for_move)
    (neon_immediate_valid_for_logic, neon_output_logic_immediate)
    (neon_pairwise_reduce, neon_expand_vector_init, neon_reinterpret)
    (neon_emit_pair_result_insn, neon_disambiguate_copy)
    (neon_vector_mem_operand, neon_struct_mem_operand, output_move_quad)
    (output_move_neon): Add prototypes.
    * config/arm/arm.c (FL_NEON): New flag for NEON processor capability.
    (all_fpus): Add FPUTYPE_NEON.
    (fp_model_for_fpu): Add NEON field.
    (arm_return_in_memory): Return vectors <= 16 bytes in ARM registers.
    (arm_arg_partial_bytes): Allow NEON vectors to be passed partially
    in registers.
    (arm_legitimate_address_p): Don't support fancy addressing for NEON
    structure moves.
    (thumb2_legitimate_address_p): Likewise.
    (neon_valid_immediate): Recognize and prepare constants suitable for
    NEON instructions.
    (neon_immediate_valid_for_move): New function. Recognize and prepare
    immediates for NEON move instructions.
    (neon_immediate_valid_for_logic): New function. Recognize and
    prepare immediates for NEON logic instructions.
    (neon_output_logic_immediate): New function. Create asm string
    suitable for outputting immediate logic instructions.
    (neon_pairwise_reduce): New function. Implement reduction using
    pairwise operations.
    (neon_expand_vector_init): New function. Expand a (possibly
    non-constant) vector initialization.
    (neon_vector_mem_operand): New function. Memory operands supported
    for quad-word loads/stores to/from ARM or NEON registers. Don't
    allow base+offset addressing for core regs.
    (neon_struct_mem_operand): New function. Valid mems for NEON
    structure moves.
    (coproc_secondary_reload_class): Enable NEON registers to be loaded
    from neon_vector_mem_operand addresses without a secondary register.
    (add_minipool_forward_ref): Handle >8-byte minipool entries.
    (add_minipool_backward_ref): Likewise.
    (dump_minipool): Likewise.
    (push_minipool_fix): Likewise.
    (output_move_quad): New function. Output quad-word moves, loads and
    stores using ARM registers.
    (output_move_vfp): Add support for vectors in VFP (NEON) D
    registers.
    (output_move_neon): Output a NEON load/store to/from a quadword
    register.
    (arm_print_operand): Implement new codes:
    - 'c' for unadorned integers (without a # sign).
    - 'J', 'K' for reg+2/reg+3, reg+3/reg+2 in little/big-endian
    mode.
    - 'e', 'f' for the low and high D parts of a NEON Q register.
    - 'q' outputs a NEON Q register.
    - 'h' outputs ranges of D registers for VLDM/VSTM etc.
    - 'T' prints NEON opcode features from a coded bitmask.
    - 'F' is similar to T, but signed/unsigned codes both print as
    'i'.
    - 't' is similar to T, but 'u' is printed instead of 'p'.
    - 'O' prints 'r' if NEON instruction should perform rounding (as
    specified by bitmask), else prints nothing.
    - '#' is a punctuation character to stop operand numbers from
    running together with following digits in the assembler
    strings for instructions (when using mode attributes).
    (arm_assemble_integer): Handle extra NEON vector modes. Permute
    constant vectors in big-endian mode, where necessary.
    (arm_hard_regno_mode_ok): Allow vectors in VFP/NEON registers.
    Handle EI, OI, CI, XI modes.
    (ashlv4hi3, ashlv2si3, lshrv4hi3, lshrv2si3, ashrv4hi3)
    (ashrv2si3): Rename IWMMXT2_BUILTINs to...
    (ashlv4hi3_iwmmxt, ashlv2si3_iwmmxt, lshrv4hi3_iwmmxt)
    (lshrv2si3_iwmmxt, ashrv4hi3_iwmmxt, ashrv2si3_iwmmxt): New names.
    (neon_builtin_type_bits): Add enumeration, one bit for each vector
    type.
    (v8qi_UP, v4hi_UP, v2si_UP, v2sf_UP, di_UP, v16qi_UP, v8hi_UP)
    (v4si_UP, v4sf_UP, v2di_UP, ti_UP, ei_UP, oi_UP, UP): Define macros
    to turn v8qi, etc. into bits defined above.
    (neon_itype): New enumeration. Classifications of NEON builtins.
    (neon_builtin_datum): Define struct. Contains information about
    a single builtin (with multiple modes).
    (CF): Define helper macro for...
    (VAR1...VAR10): Define builtins with a type, name and 1-10 different
    modes.
    (neon_builtin_data): New array. Define information about builtins
    for use during initialization/expansion.
    (arm_init_neon_builtins): New function.
    (arm_init_builtins): Call arm_init_neon_builtins if TARGET_NEON is
    true.
    (neon_builtin_compare): New function.
    (locate_neon_builtin_icode): New function. Find an insn code for a
    builtin given a function code for that builtin. Also return type of
    builtin (NEON_BINOP, NEON_UNOP etc.).
    (builtin_arg): New enumeration. Types of arguments for builtins.
    (arm_expand_neon_args): New function. Expand a generic NEON builtin.
    Takes a variable argument list of builtin_arg types, terminated by
    NEON_ARG_STOP.
    (arm_expand_neon_builtin): New function. Expand a NEON builtin.
    (neon_reinterpret): New function. Expand NEON reinterpret intrinsic.
    (neon_emit_pair_result_insn): New function. Support returning pairs
    of vectors via a pointer.
    (neon_disambiguate_copy): New function. Set up operands for a
    multi-word copy such that registers do not get clobbered.
    (arm_expand_builtin): Call arm_expand_neon_builtin if fcode >=
    ARM_BUILTIN_NEON_BASE.
    (arm_file_start): Set float-abi attribute for NEON.
    (arm_vector_mode_supported_p): Enable NEON vector modes.
    (arm_mangle_map_entry): New.
    (arm_mangle_map): New.
    (arm_mangle_vector_type): New.
    * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_NEON__
    when appropriate.
    (TARGET_NEON): New macro. Target supports NEON.
    (fputype): Add FPUTYPE_NEON.
    (UNITS_PER_SIMD_WORD): Define. Allow quad-word registers to be used
    for vectorization based on command-line arg.
    (NEON_REGNO_OK_FOR_NREGS): Define.
    (VALID_NEON_DREG_MODE, VALID_NEON_QREG_MODE)
    (VALID_NEON_STRUCT_MODE): Define.
    (PRINT_OPERAND_PUNCT_VALID_P): '#' is valid punctuation.
    (arm_builtins): Add ARM_BUILTIN_NEON_BASE.
    * config/arm/arm.md (VUNSPEC_POOL_16): Insert constant for unspec.
    (consttable_16): Add pattern for outputting 16-byte minipool
    entries.
    (movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in
    vec-common.md).
    (vec-common.md, neon.md): Include md files.
    * config/arm/arm.opt (mvectorize-with-neon-quad): Add option.
    * config/arm/constraints.md (constraint "Dn", "Dl", "DL"): Define.
    (memory_constraint "Ut", "Un", "Us"): Define.
    * config/arm/iwmmxt.md (VMMX, VSHFT): New mode macros.
    (MMX_char): New mode attribute.
    (addv8qi3, addv4hi3, addv2si3): Remove. Replace with...
    (*add<mode>3_iwmmxt): New insn pattern.
    (subv8qi3, subv4hi3, subv2si3): Remove. Replace with...
    (*sub<mode>3_iwmmxt): New insn pattern.
    (mulv4hi3): Rename to...
    (*mulv4hi3_iwmmxt): This.
    (smaxv8qi3, smaxv4hi3, smaxv2si3, umaxv8qi3, umaxv4hi3)
    (umaxv2si3, sminv8qi3, sminv4hi3, sminv2si3, uminv8qi3)
    (uminv4hi3, uminv2si3): Remove. Replace with...
    (*smax<mode>3_iwmmxt, *umax<mode>3_iwmmxt, *smin<mode>3_iwmmxt)
    (*umin<mode>3_iwmmxt): These.
    (ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with...
    (ashr<mode>3_iwmmxt): This new pattern.
    (lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with...
    (lshr<mode>3_iwmmxt): This new pattern.
    (ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with...
    (ashl<mode>3_iwmmxt): This new pattern.
    * config/arm/neon-docgen.ml: New file. Generate documentation for
    intrinsics.
    * config/arm/neon-gen.ml: New file. Generate arm_neon.h header.
    * config/arm/arm_neon.h: New (autogenerated).
    * config/arm/neon-testgen.ml: New file. Generate NEON tests
    automatically.
    * config/arm/neon.md: New file. Define NEON instructions.
    * config/arm/neon.ml: New file. Abstract description of NEON
    instructions, used to generate arm_neon.h header, documentation and tests.
    * config/arm/t-arm (MD_INCLUDES): Add vec-common.md, neon.md.
    * vec-common.md: New file. Shared parts for iWMMXt and NEON vector
    support.
    * doc/extend.texi (ARM Built-in Functions): Rename and remove
    extraneous comma.
    (ARM NEON Intrinsics): New subsection.
    * doc/arm-neon-intrinsics.texi: New (autogenerated).

    gcc/testsuite/
    * gcc.dg/vect/vect.exp: Check is-effective-target arm_neon_hw.
    * gcc.dg/vect/tree-vect.h: Check for NEON SIMD support.
    * lib/gcc-dg.exp (cleanup-saved-temps): Fix comment.
    * lib/target-supports.exp (check_effective_target_arm_neon_ok)
    (check_effective_target_arm_neon_hw): New.
    * gcc.target/arm/neon/neon.exp: New file.
    * gcc.target/arm/neon/polytypes.c: New file.
    * gcc.target/arm/neon/v*.c (1870 files): New (autogenerated).


Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
Co-Authored-By: Mark Shinwell <shinwell@codesourcery.com>
Co-Authored-By: Paul Brook <paul@codesourcery.com>

From-SVN: r126911
2007-07-25 12:28:31 +00:00
Janis Johnson 15d92b36a1 dump-noaddr.c: Reduce string length for targets where an "int" is less than 32 bits wide.
2007-07-25  Janis Johnson  <janis187@us.ibm.com>

	* gcc.c-torture/unsorted/dump-noaddr.c: Reduce string length for
	  targets where an "int" is less than 32 bits wide.

From-SVN: r126910
2007-07-25 12:01:29 +00:00
Andreas Krebbel d23ebaf0c4 20070725-1.c: Testcase for revision 126876 added.
2007-07-25  Andreas Krebbel  <krebbel1@de.ibm.com>

	* gcc.dg/20070725-1.c: Testcase for revision 126876 added.

From-SVN: r126909
2007-07-25 11:18:16 +00:00
Rask Ingemann Lambertsen 3c72bf3495 predcom-1.c (count_averages): Avoid overflow during addition if an int is only 16 bits wide.
* gcc.dg/tree-ssa/predcom-1.c (count_averages): Avoid overflow
	  during addition if an int is only 16 bits wide.
	* gcc.dg/tree-ssa/predcom-2.c (fib): Avoid overflow of 16-bit int.

From-SVN: r126908
2007-07-25 11:13:41 +00:00
Rask Ingemann Lambertsen ba6cb9d268 pr29584.c: Only run test if pointers have the same size as "long int" and are 32 or 64...
* gcc.dg/torture/pr29584.c: Only run test if pointers have the same
	  size as "long int" and are 32 or 64 bits wide.
	* gcc.dg/torture/pr28814.c: Likewise.

From-SVN: r126907
2007-07-25 10:58:48 +00:00
Rask Ingemann Lambertsen 024fefe28f pr30313.c (struct S): Make sure the bit-field is exactly as wide as an int.
* gcc.dg/torture/pr30313.c (struct S): Make sure the bit-field is
	  exactly as wide as an int.

From-SVN: r126906
2007-07-25 10:54:52 +00:00
Danny Smith 107f82d2b0 * config/i386/i386-protos.h (i386_pe_asm_file_end): Remove prototype.
From-SVN: r126905
2007-07-25 09:55:24 +00:00
Danny Smith 1990791dc7 struct-layout-1_generate.c (COMPAT_PRLL): Define and use throughout as long long printf format specifier.
* gcc.dg/compat/struct-layout-1_generate.c (COMPAT_PRLL):
	Define and use throughout as long long printf format specifier.
	* g++.dg/compat/struct-layout-1_generate.c (COMPAT_PRLL):
	Likewise.

From-SVN: r126903
2007-07-25 07:34:52 +00:00
Ben Elliston f4f29b5998 ternary.h: Remove.
include/
	* ternary.h: Remove.

libiberty/
	* Makefile.in (CFILES): Remove ternary.c.
	(REQUIRED_OFILES): Remove ./ternary.o.
	(INSTALLED_HEADERS): Remove ternary.h.
	(ternary.o): Remove.
	* ternary.c: Remove.

From-SVN: r126902
2007-07-25 16:26:45 +10:00
Jan Hubicka 779d7a1a92 regclass.c (move_table): New type.
* regclass.c (move_table): New type.
	(move_cost, may_move_in_cost, may_move_out_cost): Use it.
	(init_move_cost): Break out from ...
	(init_reg_sets_1): ... here; simplify computation of
	have_regs-of_mode and contains_reg_of_mode.
	(record_reg_classes): Unswitch internal loops.
	(copy_cost): Trigger lazy initialization of move cost
	(record_address_regs): Likewise.

From-SVN: r126901
2007-07-25 05:58:40 +00:00
Daniel Berlin a857cbfbbf darwin.c (darwin_override_options): Don't force on flag_var_tracking_uninit when no debug info is requested.
2007-07-24  Daniel Berlin  <dberlin@dberlin.org>

	* config/darwin.c (darwin_override_options): Don't force on
	flag_var_tracking_uninit when no debug info is requested.

From-SVN: r126900
2007-07-25 04:12:12 +00:00
H.J. Lu 80b40cac8d fe-convert-2.c: Unconditionally enable testing for converting from 1.0e-96 and 0.00048828125 to...
2007-07-24  H.J. Lu  <hongjiu.lu@intel.com>

	*  gcc.dg/dfp/fe-convert-2.c: Unconditionally enable testing
	for converting from 1.0e-96 and 0.00048828125 to _Decimal32.

From-SVN: r126898
2007-07-24 18:17:11 -07:00
GCC Administrator 87a7e4f076 Daily bump.
From-SVN: r126896
2007-07-25 00:16:57 +00:00
Ben Elliston eadf72ea0a * gcc.dg/dfp/fe-convert-1.c: Fix typo in comments.
From-SVN: r126892
2007-07-25 09:41:15 +10:00
Zdenek Dvorak 4ed88ee36c cfgloop.c (init_loops_structure): New function.
* cfgloop.c (init_loops_structure): New function.
	(flow_loops_find): Create root of the loop tree unconditionally.

From-SVN: r126891
2007-07-24 23:31:28 +00:00
Daniel Jacobowitz 7d0a07d0c6 tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert.
* tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert.

	* gcc.c-torture/execute/20070724-1.c: New.

From-SVN: r126888
2007-07-24 19:44:17 +00:00
Paul Thomas 30f9cd05c6 re PR fortran/31205 (aliased operator assignment produces wrong result)
2007-07-24 Paul Thomas <pault@gcc.gnu.org>

	PR fortran/31205
	PR fortran/32842
	* trans-expr.c (gfc_conv_function_call): Remove the default
	initialization of intent(out) derived types.
	* symbol.c (gfc_lval_expr_from_sym): New function.
	* matchexp.c (gfc_get_parentheses): Return argument, if it is
	character and posseses a ref.
	* gfortran.h : Add prototype for gfc_lval_expr_from_sym.
	* resolve.c (has_default_initializer): Move higher up in file.
	(resolve_code): On detecting an interface assignment, check
	if the rhs and the lhs are the same symbol.  If this is so,
	enclose the rhs in parenetheses to generate a temporary and
	prevent any possible aliasing.
	(apply_default_init): Remove code making the lval and call
	gfc_lval_expr_from_sym instead.
	(resolve_operator): Give a parentheses expression a type-
	spec if it has no type.
	* trans-decl.c (gfc_trans_deferred_vars): Apply the a default
	initializer, if any, to an intent(out) derived type, using
	gfc_lval_expr_from_sym and gfc_trans_assignment.  Check if
	the dummy is present.


2007-07-24 Paul Thomas <pault@gcc.gnu.org>

	PR fortran/31205
	* gfortran.dg/alloc_comp_basics_1.f90 : Restore number of
	"deallocates" to 24, since patch has code rid of much spurious
	code.
	* gfortran.dg/interface_assignment_1.f90 : New test.

	PR fortran/32842
	* gfortran.dg/interface_assignment_2.f90 : New test.

From-SVN: r126886
2007-07-24 19:16:36 +00:00
Paul Thomas 08113c7398 re PR fortran/31205 (aliased operator assignment produces wrong result)
2007-07-24 Paul Thomas <pault@gcc.gnu.org>

	PR fortran/31205
	PR fortran/32842
	* trans-expr.c (gfc_conv_function_call): Remove the default
	initialization of intent(out) derived types.
	* symbol.c (gfc_lval_expr_from_sym): New function.
	* matchexp.c (gfc_get_parentheses): Return argument, if it is
	character and posseses a ref.
	* gfortran.h : Add prototype for gfc_lval_expr_from_sym.
	* resolve.c (has_default_initializer): Move higher up in file.
	(resolve_code): On detecting an interface assignment, check
	if the rhs and the lhs are the same symbol.  If this is so,
	enclose the rhs in parenetheses to generate a temporary and
	prevent any possible aliasing.
	(apply_default_init): Remove code making the lval and call
	gfc_lval_expr_from_sym instead.
	(resolve_operator): Give a parentheses expression a type-
	spec if it has no type.
	* trans-decl.c (gfc_trans_deferred_vars): Apply the a default
	initializer, if any, to an intent(out) derived type, using
	gfc_lval_expr_from_sym and gfc_trans_assignment.  Check if
	the dummy is present.


2007-07-24 Paul Thomas <pault@gcc.gnu.org>

	PR fortran/31205
	* gfortran.dg/alloc_comp_basics_1.f90 : Restore number of
	"deallocates" to 24, since patch has code rid of much spurious
	code.
	* gfortran.dg/interface_assignment_1.f90 : New test.

	PR fortran/32842
	* gfortran.dg/interface_assignment_2.f90 : New test.

From-SVN: r126885
2007-07-24 19:15:27 +00:00
Nathan Sidwell b21a6ea100 method.c (implicitly_declare_fn): Increase alignment if member function pointer format requires it.
* method.c (implicitly_declare_fn): Increase alignment if member
	function pointer format requires it.

From-SVN: r126884
2007-07-24 18:32:48 +00:00
Daniel Franke fd8e2796db re PR fortran/32867 (ICE on nested initialization expressions)
gcc/fortran:
2007-07-24  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/32867
	* expr.c (check_init_expr): Simplify matched functions.

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

	PR fortran/32867
	* fortran.dg/initialization_10.f90: New test.

From-SVN: r126882
2007-07-24 12:57:02 -04:00
Daniel Franke 3f2286f2a3 re PR fortran/32778 (pedantic warning: intrinsics that are GNU extensions not part of -std=gnu)
gcc/fortran:
2007-07-24  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/32778
	* intrinsic.c (add_sym): Do not exclude any symbols, even if not part
	of the selected standard.
	(make generic): Likewise.
	(make alias): Likewise, set standard the alias belongs to.
	(add_subroutines): Call make_noreturn unconditionally.
	(check_intrinsic_standard): Change return value to try.
	(gfc_intrinsic_func_interface): Check return value of above function.
	(gfc_intrinsic_sub_interface): Likewise.

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

	PR fortran/32778
	* gfortran.dg/imag_2.f: Removed
	* gfortran.dg/warn_std_1.f90: New test.
	* gfortran.dg/warn_std_2.f90: New test.
	* gfortran.dg/warn_std_3.f90: New test.

From-SVN: r126881
2007-07-24 12:45:32 -04:00
Jan Hubicka 78187f5ad2 caller-save.c: Include ggc.h, gt-caller-save.h
* caller-save.c: Include ggc.h, gt-caller-save.h
	(reg_save_code, reg_restore_code): Rename to ...
	(cached_reg_save_code, cached_reg_restore_code): ... those.
	(savepat, restpat, test_reg, test_mem, saveinsn, restinsn): New.
	(reg_save_code, reg_restore_code): New functions.
	(init_caller_save): Do not intialize
	reg_save_code/reg_restore_code tables.
	* Makeifle.in: (gt-caller-save.h): New.

From-SVN: r126879
2007-07-24 14:56:37 +00:00
Tobias Burnus bdcfceb443 ChangeLog: Correct entry.
gcc/fortran/
2007-07-24  Tobias Burnus  <burnus@net-b.de>

	* ChangeLog: Correct entry.

libgfortran/
2007-07-24  Tobias Burnus  <burnus@net-b.de>

       * libgfortran.h:  Add bounds_check to compile_options_t.

From-SVN: r126877
2007-07-24 14:58:20 +02:00
Andreas Krebbel 3886f1d07b tree-ssa-ifcombine.c (ifcombine_ifandif): Use a ONE operand with the mode of the original operand instead of integer_one_node.
2007-07-24  Andreas Krebbel  <krebbel1@de.ibm.com>

	* tree-ssa-ifcombine.c (ifcombine_ifandif): Use a ONE operand
	with the mode of the original operand instead of
	integer_one_node.

From-SVN: r126876
2007-07-24 12:53:14 +00:00
Paolo Carlini aedfac0ec9 re PR c++/29001 (ICE on invalid return from operator new)
/cp
2007-07-24  Paolo Carlini  <pcarlini@suse.de>

	PR c++/29001
	* typeck.c (check_return_expr): Do not pass a null argument
	to null_ptr_cst_p.

2007-07-24  Paolo Carlini  <pcarlini@suse.de>

	PR c++/32561
	* decl.c (redeclaration_error_message): Call DECL_ANON_UNION_VAR_P
	only on VAR_DECL.

/testsuite
2007-07-24  Paolo Carlini  <pcarlini@suse.de>

	PR c++/29001
	* g++.dg/init/new22.C: New.

2007-07-24  Paolo Carlini  <pcarlini@suse.de>

	PR c++/32561
	* g++.dg/template/crash67.C: New.

From-SVN: r126873
2007-07-24 11:08:27 +00:00
Dorit Nuzman 99c9c69acb 2007-07-24 Dorit Nuzman <dorit@il.ibm.com>
* lib/target-support.exp (check_effective_target_natural_alignment):
        (check_effective_target_vector_alignment_reachable): New.
        * config/spu/spu.c (spu_vector_alignment_reachable): New.
        (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.
        * * gcc.dg/vect/pr25413a.c: Use vector_alignment_reachable target
        check.
        * gcc.dg/vect/pr25413.c: Likewise.
        * gcc.dg/vect/pr31699.c: Likewise.

From-SVN: r126872
2007-07-24 09:20:50 +00:00
Richard Sandiford 376164b960 Fix typo.
From-SVN: r126869
2007-07-24 07:57:17 +00:00
Thomas Koenig 18fe404fbc re PR fortran/30814 (non-conforming array sizes in PACK should raise an error)
2007-07-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/30814
	* trans-decl.c (generate_function_code):  Add argument
	for flag_bounds_check to the array for set_options.
	* invoke.texi:  Mention that some checks require
	-fbounds-check to be set during compilation of the
	main program.

2007-07-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/30814
	* libgfortran.h:  Add bounds_check to compile_options_t.
	* runtime/compile_options.c (set_options):  Add handling
	of compile_options.bounds_check.
	* intrinsics/pack_generic.c (pack_internal):  Also determine
	the number of elements if compile_options.bounds_check is
	true.  Raise runtime error if a different array shape is
	detected.

2007-07-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/30814
	* gfortran.dg/pack_bounds_1.f90:  New test case.

From-SVN: r126866
2007-07-24 05:52:44 +00:00
GCC Administrator bf3900bf1c Daily bump.
From-SVN: r126864
2007-07-24 00:17:07 +00:00
Jan Hubicka 6232eadce3 i386.c (ix86_secondary_memory_needed): Break out to...
* i386.c (ix86_secondary_memory_needed): Break out to...
	(inline_secondary_memory_needed): ... here.
	(ix86_memory_move_cost): Break out to ...
	(inline_memory_move_cost): ... here; add support for IN value of 2 for
	maximum of input and output; fix handling of Q_REGS on 64bit.
	(ix86_secondary_memory_needed): Microoptimize.

From-SVN: r126861
2007-07-23 23:07:46 +00:00
Sebastian Pop 3a796c6fc0 tree-data-ref.c (find_vertex_for_stmt, [...]): New.
* tree-data-ref.c (find_vertex_for_stmt, create_rdg_edge_for_ddr,
	create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
	stmts_from_loop, known_dependences_p, build_rdg): New.
	* tree-data-ref.h: Depends on graphds.h.
	(rdg_vertex, RDGV_STMT, rdg_dep_type, rdg_edge, RDGE_TYPE): New.
	(build_rdg): Declared.
	* Makefile.in (TREE_DATA_REF_H): Depends on graphds.h.

From-SVN: r126859
2007-07-23 22:30:38 +00:00
Daniel Franke 5ab0eadfa3 re PR fortran/25104 ([F2003] Non-initialization expr. as case-selector)
gcc/fortran:
2007-07-23  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/25104
	PR fortran/31639
	* expr.c (check_transformational): Reject valid transformational
	intrinsics to avoid ICE.
	(check_inquiry): Report error for assumed character lengths for
	all supported standards.
	(check_init_expr): Whitespace fix.

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

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

From-SVN: r126858
2007-07-23 16:35:03 -04:00
Daniel Berlin 623b022332 tree-ssa-propagate.c (valid_gimple_expression_p): Match up with ccp_min_invariant.
2007-07-23  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-propagate.c (valid_gimple_expression_p): Match up with
	ccp_min_invariant.

From-SVN: r126857
2007-07-23 19:11:05 +00:00
Christopher D. Rickett d8fa96e089 re PR fortran/32797 ([ISO C Binding] Internal Error: gfc_basic_typename(): Undefined type)
2007-07-23  Christopher D. Rickett  <crickett@lanl.gov>

        PR fortran/32797
        PR fortran/32800
        * decl.c (verify_bind_c_sym): Use the result symbol for functions
        with a result clause.  Warn if implicitly typed.  Verify the type
        and rank of the SHAPE argument, if given.
        * resolve.c (gfc_iso_c_sub_interface): Use gfc_procedure_use to
        check the actual args against the formal, sorting them if
        necessary.
        * symbol.c (gen_shape_param): Initialize type of SHAPE param to
        BT_VOID.

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

        PR fortran/32797
        PR fortran/32800
        * gfortran.dg/bind_c_usage_8.f03: New test case.
        * gfortran.dg/c_f_pointer_tests_2.f03: Ditto.
        * gfortran.dg/c_ptr_tests_5.f03: Updated expected error message.

From-SVN: r126856
2007-07-23 19:47:16 +02:00
DJ Delorie f4e00f444b argv.c (writeargv): Fix typo in inline documentation.
* argv.c (writeargv): Fix typo in inline documentation.
* functions.texi: Regenerate.

From-SVN: r126855
2007-07-23 13:29:17 -04:00
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