jules [Wed, 25 Jul 2007 12:28:31 +0000 (12:28 +0000)]
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).
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126911
138bc75d-0d04-0410-961f-
82ee72b054a4
rask [Wed, 25 Jul 2007 12:01:29 +0000 (12:01 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126910
138bc75d-0d04-0410-961f-
82ee72b054a4
krebbel [Wed, 25 Jul 2007 11:18:16 +0000 (11:18 +0000)]
2007-07-25 Andreas Krebbel <krebbel1@de.ibm.com>
* gcc.dg/
20070725-1.c: Testcase for revision 126876 added.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126909
138bc75d-0d04-0410-961f-
82ee72b054a4
rask [Wed, 25 Jul 2007 11:13:41 +0000 (11:13 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126908
138bc75d-0d04-0410-961f-
82ee72b054a4
rask [Wed, 25 Jul 2007 10:58:48 +0000 (10:58 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126907
138bc75d-0d04-0410-961f-
82ee72b054a4
rask [Wed, 25 Jul 2007 10:54:52 +0000 (10:54 +0000)]
* gcc.dg/torture/pr30313.c (struct S): Make sure the bit-field is
exactly as wide as an int.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126906
138bc75d-0d04-0410-961f-
82ee72b054a4
dannysmith [Wed, 25 Jul 2007 09:55:24 +0000 (09:55 +0000)]
* config/i386/i386-protos.h (i386_pe_asm_file_end): Remove prototype.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126905
138bc75d-0d04-0410-961f-
82ee72b054a4
dannysmith [Wed, 25 Jul 2007 07:34:52 +0000 (07:34 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126903
138bc75d-0d04-0410-961f-
82ee72b054a4
bje [Wed, 25 Jul 2007 06:26:45 +0000 (06:26 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126902
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Wed, 25 Jul 2007 05:58:40 +0000 (05:58 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126901
138bc75d-0d04-0410-961f-
82ee72b054a4
dberlin [Wed, 25 Jul 2007 04:12:12 +0000 (04:12 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126900
138bc75d-0d04-0410-961f-
82ee72b054a4
hjl [Wed, 25 Jul 2007 01:17:11 +0000 (01:17 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126898
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Wed, 25 Jul 2007 00:16:57 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126896
138bc75d-0d04-0410-961f-
82ee72b054a4
bje [Tue, 24 Jul 2007 23:41:15 +0000 (23:41 +0000)]
* gcc.dg/dfp/fe-convert-1.c: Fix typo in comments.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126892
138bc75d-0d04-0410-961f-
82ee72b054a4
rakdver [Tue, 24 Jul 2007 23:31:28 +0000 (23:31 +0000)]
* cfgloop.c (init_loops_structure): New function.
(flow_loops_find): Create root of the loop tree unconditionally.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126891
138bc75d-0d04-0410-961f-
82ee72b054a4
drow [Tue, 24 Jul 2007 19:44:17 +0000 (19:44 +0000)]
* tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert.
* gcc.c-torture/execute/
20070724-1.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126888
138bc75d-0d04-0410-961f-
82ee72b054a4
pault [Tue, 24 Jul 2007 19:16:36 +0000 (19:16 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126886
138bc75d-0d04-0410-961f-
82ee72b054a4
pault [Tue, 24 Jul 2007 19:15:27 +0000 (19:15 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126885
138bc75d-0d04-0410-961f-
82ee72b054a4
nathan [Tue, 24 Jul 2007 18:32:48 +0000 (18:32 +0000)]
* method.c (implicitly_declare_fn): Increase alignment if member
function pointer format requires it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126884
138bc75d-0d04-0410-961f-
82ee72b054a4
dfranke [Tue, 24 Jul 2007 16:57:02 +0000 (16:57 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126882
138bc75d-0d04-0410-961f-
82ee72b054a4
dfranke [Tue, 24 Jul 2007 16:45:32 +0000 (16:45 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126881
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Tue, 24 Jul 2007 14:56:37 +0000 (14:56 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126879
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Tue, 24 Jul 2007 12:58:20 +0000 (12:58 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126877
138bc75d-0d04-0410-961f-
82ee72b054a4
krebbel [Tue, 24 Jul 2007 12:53:14 +0000 (12:53 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126876
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Tue, 24 Jul 2007 11:08:27 +0000 (11:08 +0000)]
/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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126873
138bc75d-0d04-0410-961f-
82ee72b054a4
dorit [Tue, 24 Jul 2007 09:20:50 +0000 (09:20 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126872
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Tue, 24 Jul 2007 07:57:17 +0000 (07:57 +0000)]
Fix typo.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126869
138bc75d-0d04-0410-961f-
82ee72b054a4
tkoenig [Tue, 24 Jul 2007 05:52:44 +0000 (05:52 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126866
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Tue, 24 Jul 2007 00:17:07 +0000 (00:17 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126864
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Mon, 23 Jul 2007 23:07:46 +0000 (23:07 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126861
138bc75d-0d04-0410-961f-
82ee72b054a4
spop [Mon, 23 Jul 2007 22:30:38 +0000 (22:30 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126859
138bc75d-0d04-0410-961f-
82ee72b054a4
dfranke [Mon, 23 Jul 2007 20:35:03 +0000 (20:35 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126858
138bc75d-0d04-0410-961f-
82ee72b054a4
dberlin [Mon, 23 Jul 2007 19:11:05 +0000 (19:11 +0000)]
2007-07-23 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-propagate.c (valid_gimple_expression_p): Match up with
ccp_min_invariant.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126857
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Mon, 23 Jul 2007 17:47:16 +0000 (17:47 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126856
138bc75d-0d04-0410-961f-
82ee72b054a4
dj [Mon, 23 Jul 2007 17:29:17 +0000 (17:29 +0000)]
* argv.c (writeargv): Fix typo in inline documentation.
* functions.texi: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126855
138bc75d-0d04-0410-961f-
82ee72b054a4
bergner [Mon, 23 Jul 2007 16:43:24 +0000 (16:43 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126852
138bc75d-0d04-0410-961f-
82ee72b054a4
ro [Mon, 23 Jul 2007 12:51:36 +0000 (12:51 +0000)]
* configure.ac (mips-sgi-irix6*): Override SYSTEMSPEC.
* configure: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126847
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Mon, 23 Jul 2007 12:49:45 +0000 (12:49 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126846
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Mon, 23 Jul 2007 12:16:17 +0000 (12:16 +0000)]
Fix last changelog.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126845
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Mon, 23 Jul 2007 12:11:14 +0000 (12:11 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126844
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Mon, 23 Jul 2007 12:06:40 +0000 (12:06 +0000)]
Fix last changelog.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126843
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Mon, 23 Jul 2007 12:04:48 +0000 (12:04 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126842
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Mon, 23 Jul 2007 09:03:30 +0000 (09:03 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126836
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Mon, 23 Jul 2007 06:03:33 +0000 (06:03 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126835
138bc75d-0d04-0410-961f-
82ee72b054a4
jvdelisle [Mon, 23 Jul 2007 02:42:05 +0000 (02:42 +0000)]
2007-07-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
* io/read.c (convert_real): Generate error only on EINVAL.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126834
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Mon, 23 Jul 2007 00:17:13 +0000 (00:17 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126832
138bc75d-0d04-0410-961f-
82ee72b054a4
nathan [Sun, 22 Jul 2007 18:46:51 +0000 (18:46 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126829
138bc75d-0d04-0410-961f-
82ee72b054a4
dfranke [Sun, 22 Jul 2007 16:37:12 +0000 (16:37 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126828
138bc75d-0d04-0410-961f-
82ee72b054a4
dfranke [Sun, 22 Jul 2007 16:34:31 +0000 (16:34 +0000)]
ChangeLogs for r126826.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126827
138bc75d-0d04-0410-961f-
82ee72b054a4
dfranke [Sun, 22 Jul 2007 16:31:11 +0000 (16:31 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126826
138bc75d-0d04-0410-961f-
82ee72b054a4
nathan [Sun, 22 Jul 2007 16:25:54 +0000 (16:25 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126825
138bc75d-0d04-0410-961f-
82ee72b054a4
hjl [Sun, 22 Jul 2007 14:50:23 +0000 (14:50 +0000)]
Add missing ChangeLog entry.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126824
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Sun, 22 Jul 2007 00:17:05 +0000 (00:17 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126820
138bc75d-0d04-0410-961f-
82ee72b054a4
kargl [Sat, 21 Jul 2007 23:45:44 +0000 (23:45 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126817
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Sat, 21 Jul 2007 21:47:43 +0000 (21:47 +0000)]
* genopinit.c (optabs): Missed commit from my previous commit.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126814
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Sat, 21 Jul 2007 21:45:06 +0000 (21:45 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126813
138bc75d-0d04-0410-961f-
82ee72b054a4
kargl [Sat, 21 Jul 2007 20:31:17 +0000 (20:31 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126812
138bc75d-0d04-0410-961f-
82ee72b054a4
bje [Sat, 21 Jul 2007 20:27:18 +0000 (20:27 +0000)]
* regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to
`class' parameter.
* struct-equiv.c (note_local_live): Likewise for `y_regno'.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126811
138bc75d-0d04-0410-961f-
82ee72b054a4
lmillward [Sat, 21 Jul 2007 17:59:39 +0000 (17:59 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126810
138bc75d-0d04-0410-961f-
82ee72b054a4
rask [Sat, 21 Jul 2007 09:30:24 +0000 (09:30 +0000)]
* gcc.dg/inline-23.c: Use pointer sized type for cast from pointer.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126809
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Sat, 21 Jul 2007 00:17:11 +0000 (00:17 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126807
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Fri, 20 Jul 2007 18:10:57 +0000 (18:10 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126804
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Fri, 20 Jul 2007 16:00:08 +0000 (16:00 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126802
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Fri, 20 Jul 2007 15:41:29 +0000 (15:41 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126801
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Fri, 20 Jul 2007 09:43:52 +0000 (09:43 +0000)]
PR tree-optimization/19910
* gcc.dg/pr19910.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126799
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Fri, 20 Jul 2007 09:20:24 +0000 (09:20 +0000)]
gcc/
* config/arm/arm.md (movsi): Use can_create_pseudo_p instead of
no_new_pseudos.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126798
138bc75d-0d04-0410-961f-
82ee72b054a4
rakdver [Fri, 20 Jul 2007 01:32:47 +0000 (01:32 +0000)]
* function.c (thread_prologue_and_epilogue_insns): Fix exit
predecessor fallthru flags.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126797
138bc75d-0d04-0410-961f-
82ee72b054a4
rakdver [Fri, 20 Jul 2007 01:29:43 +0000 (01:29 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126796
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Fri, 20 Jul 2007 00:17:04 +0000 (00:17 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126794
138bc75d-0d04-0410-961f-
82ee72b054a4
dfranke [Thu, 19 Jul 2007 21:14:38 +0000 (21:14 +0000)]
Corrected filename from previous commit.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126791
138bc75d-0d04-0410-961f-
82ee72b054a4
dfranke [Thu, 19 Jul 2007 21:11:38 +0000 (21:11 +0000)]
2007-07-19 Daniel Franke <franke.daniel@gmail.com>
PR fortran/32738
* gfortran.dg/pr32768.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126790
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Thu, 19 Jul 2007 06:14:19 +0000 (06:14 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126744
138bc75d-0d04-0410-961f-
82ee72b054a4
tkoenig [Thu, 19 Jul 2007 04:47:29 +0000 (04:47 +0000)]
2007-07-19 Thomas Koenig <tkoenig@gcc.gnu.org>
PR tree-optimzation/32635
* gfortran.dg/pr32635.f: New test case.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126742
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Thu, 19 Jul 2007 00:16:57 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126738
138bc75d-0d04-0410-961f-
82ee72b054a4
hjl [Wed, 18 Jul 2007 22:28:28 +0000 (22:28 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126735
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Wed, 18 Jul 2007 22:02:21 +0000 (22:02 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126732
138bc75d-0d04-0410-961f-
82ee72b054a4
ctice [Wed, 18 Jul 2007 21:08:05 +0000 (21:08 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126731
138bc75d-0d04-0410-961f-
82ee72b054a4
ghazi [Wed, 18 Jul 2007 20:22:32 +0000 (20:22 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126730
138bc75d-0d04-0410-961f-
82ee72b054a4
bwilson [Wed, 18 Jul 2007 18:51:21 +0000 (18:51 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126728
138bc75d-0d04-0410-961f-
82ee72b054a4
ghazi [Wed, 18 Jul 2007 17:51:13 +0000 (17:51 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126726
138bc75d-0d04-0410-961f-
82ee72b054a4
ghazi [Wed, 18 Jul 2007 17:42:12 +0000 (17:42 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126725
138bc75d-0d04-0410-961f-
82ee72b054a4
ghazi [Wed, 18 Jul 2007 17:30:38 +0000 (17:30 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126724
138bc75d-0d04-0410-961f-
82ee72b054a4
ghazi [Wed, 18 Jul 2007 16:13:09 +0000 (16:13 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126723
138bc75d-0d04-0410-961f-
82ee72b054a4
dberlin [Wed, 18 Jul 2007 15:44:28 +0000 (15:44 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126721
138bc75d-0d04-0410-961f-
82ee72b054a4
rask [Wed, 18 Jul 2007 13:47:28 +0000 (13:47 +0000)]
PR target/32808
* config/cris/cris.c (cris_print_index): Don't use XEXP before
checking that the operand is an expression.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126720
138bc75d-0d04-0410-961f-
82ee72b054a4
dannysmith [Wed, 18 Jul 2007 11:39:01 +0000 (11:39 +0000)]
2007-07-19 Christoph von Wittich <Christoph_vW@reactos.org>
Danny Smith <dannysmith@users.sourceforge.net>
PR/other 30335
* config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put
file mapping object in local namespace if Windows version later
than NT4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126719
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Wed, 18 Jul 2007 09:44:21 +0000 (09:44 +0000)]
gcc/
* config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare.
* config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
arm_cannot_force_const_mem.
(arm_cannot_force_const_mem): New function.
* config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro.
(LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead
of arm_tls_referenced_p.
* config/arm/arm.md (movsi): Split out-of-section constants when
ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P.
* config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126718
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Wed, 18 Jul 2007 09:36:55 +0000 (09:36 +0000)]
gcc/
* config/mips/mips.md (clear_cache): Treat the size argument as Pmode.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126717
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Wed, 18 Jul 2007 09:35:15 +0000 (09:35 +0000)]
gcc/
* config/mips/mips.md (*extendqihi2): Convert the destination
to SImode.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126716
138bc75d-0d04-0410-961f-
82ee72b054a4
nickc [Wed, 18 Jul 2007 08:19:29 +0000 (08:19 +0000)]
* parse.y: Change copyright header to refer to version 3 of the GNU
General Public License and to point readers at the COPYING3 file.
* lex.l: Likewise.
* lang.opt: Likewise.
* lang-specs.h: Likewise.
* treelang.h: Likewise.
* config-lang.in: Likewise.
* tree-convert.c: Likewise.
* treetree.c: Likewise.
* tree1.c: Likewise.
* Make-lang.in: Likewise.
* treetree.h: Likewise.
* spec.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126713
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Wed, 18 Jul 2007 00:17:17 +0000 (00:17 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126710
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Tue, 17 Jul 2007 21:33:34 +0000 (21:33 +0000)]
2007-07-17 Janus Weil <jaydub66@gmail.com>
PR fortran/32535
* resolve.c (resolve_fl_namelist): Check for namelist private
components in contained subprograms.
2007-07-17 Janus Weil <jaydub66@gmail.com>
PR fortran/32535
* gfortran.dg/pr32535.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126706
138bc75d-0d04-0410-961f-
82ee72b054a4
danglin [Tue, 17 Jul 2007 21:21:23 +0000 (21:21 +0000)]
* config/pa/fptr.c: Update license header.
* config/pa/milli64.S: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126705
138bc75d-0d04-0410-961f-
82ee72b054a4
dj [Tue, 17 Jul 2007 17:52:28 +0000 (17:52 +0000)]
* configure.ac (target_header_dir, msdosdjgpp): Remove duplicate
gettimeofday entry.
* configure: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126704
138bc75d-0d04-0410-961f-
82ee72b054a4
pault [Tue, 17 Jul 2007 17:22:44 +0000 (17:22 +0000)]
2007-07-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31320
PR fortran/32665
* trans-expr.c (gfc_trans_subcomponent_assign): Ensure that
renormalization unity base is done independently of existing
lbound value.
(gfc_trans_scalar_assign): If rhs is not a variable, put
lse->pre after rse->pre to ensure that de-allocation of lhs
occurs after evaluation of rhs.
2007-07-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31320
PR fortran/32665
* gfortran.dg/alloc_comp_constructor_3.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126703
138bc75d-0d04-0410-961f-
82ee72b054a4
nickc [Tue, 17 Jul 2007 08:37:53 +0000 (08:37 +0000)]
* COPYING_v3: New file. Contains version 3 of the GNU General Public License.
* COPYING.LIB_v3: New file. Contains version 3 of the GNU Lesser General Public License.
* gpl_v3.texi: New file. Contains a texinfo formated copy of the GNU General Public License, version 3.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126701
138bc75d-0d04-0410-961f-
82ee72b054a4
rakdver [Tue, 17 Jul 2007 03:56:40 +0000 (03:56 +0000)]
PR rtl-optimization/32773
* cfglayout.c (force_one_exit_fallthru): New function.
(cfg_layout_finalize): Use it.
* gcc.dg/pr32773.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126700
138bc75d-0d04-0410-961f-
82ee72b054a4
pinskia [Tue, 17 Jul 2007 03:07:09 +0000 (03:07 +0000)]
2007-07-16 Andrew Pinski <andrew_pinski@playstation.sony.com>
* gcc.target/spu/intrinsics-1.c: Use dg-message to
match flax-vector-conversions note.
* gcc.target/spu/fixed-range-bad.c: Use dg-warning
instead of dg-error for the warning.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126699
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Tue, 17 Jul 2007 00:16:54 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126697
138bc75d-0d04-0410-961f-
82ee72b054a4
rask [Mon, 16 Jul 2007 20:01:20 +0000 (20:01 +0000)]
2007-07-16 Rask Ingemann Lambertsen <rask@sygehus.dk>
* gcc.c-torture/execute/
20061101-2.c: Variant of
20061101-1.c
adapted to work on targets with 16-bit or wider int.
* gcc.c-torture/execute/pr29797-2.c: Likewise for pr29797-1.c.
* gcc.c-torture/execute/pr31448-2.c: Likewise for pr31448.c.
* gcc.dg/
20061109-2.c: Likewise for
20061109-1.c.
* gcc.dg/pr27959-2.c: Likewise for pr27959.c.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126693
138bc75d-0d04-0410-961f-
82ee72b054a4