Commit Graph

102446 Commits

Author SHA1 Message Date
Bernd Schmidt
f8045c4158 vfp.md (arm_movsi_vfp, [...]): Set attribute "insn".
* config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
	thumb2_movsf_vfp): Set attribute "insn".
	* config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
	not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
	thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
	arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
	arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
	thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
	thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
	movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
	if_not_move, if_shift_move, if_move_shift, if_shift_shift,
	if_not_arith, if_arith_not, cond_move_not): Likewise.

From-SVN: r163601
2010-08-27 22:11:50 +00:00
Bernd Schmidt
c1cb371a2f genautomata.c (gen_regexp_repeat, [...]): Use the string found in vector element 0 rather than the original string when...
* genautomata.c (gen_regexp_repeat, gen_regexp_allof,
	gen_regexp_oneof, gen_regexp_sequence): Use the string found
	in vector element 0 rather than the original string when there's
	only one element.
	(gen_regexp): Remove extra semicolon.

From-SVN: r163600
2010-08-27 22:08:37 +00:00
Janus Weil
b052cbd0cd re PR fortran/45432 (gfortran.dg/allocate_alloc_opt_9.f90: Segfault due to invalid FREE)
2010-08-27  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45432
	* match.c (gfc_match_allocate): Avoid double free on error.

From-SVN: r163599
2010-08-27 23:50:47 +02:00
Michael Meissner
7042fe5ef8 Improve floating point conversions on powerpc
From-SVN: r163598
2010-08-27 21:32:44 +00:00
Francois-Xavier Coudert
a3c85b7499 re PR fortran/32049 (Support on x86_64 also kind=16)
PR fortran/32049

	* gfortran.h (gfc_real_info): Add c_float128 field.
	* mathbuiltins.def: Indicate which builtins are const.
	* trans-types.h (float128_type_node, complex_float128_type_node,
	gfc_real16_is_float128): New variables.
	* trans-types.c (float128_type_node, complex_float128_type_node,
	gfc_real16_is_float128): New variables.
	(gfc_init_kinds): Allow TFmode.
	(gfc_build_real_type): Mark __float128 types as such.
	(gfc_init_types): Initialize float128_type_node and
	complex_float128_type_node
	* f95-lang.c (gfc_init_builtin_functions): Adjust for new
	argument of OTHER_BUILTIN macro.
	* trans-intrinsic.c (gfc_intrinsic_map_t): Likewise.
	(builtin_decl_for_precision): Special case for __float128.
	(builtin_decl_for_float_kind): Likewise.
	(define_quad_builtin): New function.
	(gfc_build_intrinsic_lib_fndecls): Create all __float128
	library decls if necessary. Store them in the real16_decl and
	complex16_decl builtin map fields.
	(gfc_get_intrinsic_lib_fndecl): Handle q-suffixed __float128
	library function names.

	* gfortran.dg/random_seed_1.f90: Adjust test.
	* gfortran.dg/float128_1.f90: New test.

From-SVN: r163597
2010-08-27 21:24:13 +00:00
Basile Starynkevitch
6ba2db5e33 gengtype.c (output_type_enum): Test the right union member.
2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
            Jeremie Salvucci  <jeremie.salvucci@free.fr>

        * gengtype.c (output_type_enum): Test the right union member.


Co-Authored-By: Jeremie Salvucci <jeremie.salvucci@free.fr>

From-SVN: r163596
2010-08-27 20:32:27 +00:00
Tobias Burnus
0cd0559e8c re PR fortran/33197 (Fortran 2008: math functions)
gcc/fortran/
2010-08-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/33197
        * gcc/fortran/intrinsic.c (add_functions): Add norm2 and parity.
        * gcc/fortran/intrinsic.h (gfc_check_norm2, gfc_check_parity):
        gfc_simplify_norm2, gfc_simplify_parity, gfc_resolve_norm2,
        gfc_resolve_parity): New prototypes.
        * gcc/fortran/gfortran.h (gfc_isym_id): New enum items
        GFC_ISYM_NORM2 and GFC_ISYM_PARITY.
        * gcc/fortran/iresolve.c (gfc_resolve_norm2,
        gfc_resolve_parity): New functions.
        * gcc/fortran/check.c (gfc_check_norm2, gfc_check_parity):
        New functions.
        * gcc/fortran/trans-intrinsic.c (gfc_conv_intrinsic_arith,
        gfc_conv_intrinsic_function): Handle NORM2 and PARITY.
        * gcc/fortran/intrinsic.texi (NORM2, PARITY): Add.
        * gcc/fortran/simplify.c (simplify_transformation_to_array):
        Add post-processing opterator.
        (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
        gfc_simplify_product, gfc_simplify_sum): Update call.
        (add_squared, do_sqrt, gfc_simplify_norm2, do_xor,
        gfc_simplify_parity): New functions.

gcc/testsuite/
2010-08-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/33197
        * gcc/testsuite/gfortran.dg/norm2_1.f90: New.
        * gcc/testsuite/gfortran.dg/norm2_2.f90: New.
        * gcc/testsuite/gfortran.dg/norm2_3.f90: New.
        * gcc/testsuite/gfortran.dg/norm2_4.f90: New.
        * gcc/testsuite/gfortran.dg/parity_1.f90: New.
        * gcc/testsuite/gfortran.dg/parity_2.f90: New.
        * gcc/testsuite/gfortran.dg/parity_3.f90: New.

libgfortran/
2010-08-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/33197
        * libgfortran/m4/ifunction.m4 (FINISH_ARRAY_FUNCTION,
        ARRAY_FUNCTION): Allow expression after loop.
        * libgfortran/m4/norm2.m4: New for _gfortran_norm2_r{4,8,10,16}.
        * libgfortran/m4/parity.m4: New for
        * _gfortran_parity_l{1,2,4,8,16}.
        * libgfortran/gfortran.map: Add new functions.
        * libgfortran/Makefile.am: Ditto.
        * libgfortran/m4/minloc1.m4: Add empty argument for
        * ARRAY_FUNCTION.
        * libgfortran/m4/maxloc1.m4: Ditto.
        * libgfortran/m4/all.m4: Ditto.
        * libgfortran/m4/minval.m4: Ditto.
        * libgfortran/m4/maxval.m4: Ditto.
        * libgfortran/m4/count.m4: Ditto.
        * libgfortran/m4/product.m4: Ditto.
        * libgfortran/m4/any.m4: Ditto.
        * Makefile.in: Regenerated.
        * generated/minval_r8.c: Regenerated.
        * generated/maxloc1_4_r8.c: Regenerated.
        * generated/minloc1_16_r16.c: Regenerated.
        * generated/norm2_r4.c: Regenerated.
        * generated/sum_i8.c: Regenerated.
        * generated/parity_l2.c: Regenerated.
        * generated/any_l16.c: Regenerated.
        * generated/maxval_i2.c: Regenerated.
        * generated/any_l2.c: Regenerated.
        * generated/product_r4.c: Regenerated.
        * generated/maxloc1_8_i4.c: Regenerated.
        * generated/parity_l16.c: Regenerated.
        * generated/all_l1.c: Regenerated.
        * generated/product_i2.c: Regenerated.
        * generated/minloc1_8_r16.c: Regenerated.
        * generated/maxloc1_8_r16.c: Regenerated.
        * generated/sum_r16.c: Regenerated.
        * generated/sum_i1.c: Regenerated.
        * generated/minloc1_4_r8.c: Regenerated.
        * generated/maxloc1_16_r16.c: Regenerated.
        * generated/minloc1_16_i4.c: Regenerated.
        * generated/maxloc1_16_i4.c: Regenerated.
        * generated/maxval_r16.c: Regenerated.
        * generated/product_c10.c: Regenerated.
        * generated/minloc1_8_i4.c: Regenerated.
        * generated/all_l2.c: Regenerated.
        * generated/product_c4.c: Regenerated.
        * generated/sum_r4.c: Regenerated.
        * generated/all_l16.c: Regenerated.
        * generated/minloc1_16_r10.c: Regenerated.
        * generated/sum_i2.c: Regenerated.
        * generated/maxloc1_8_r8.c: Regenerated.
        * generated/minval_i16.c: Regenerated.
        * generated/parity_l4.c: Regenerated.
        * generated/maxval_i4.c: Regenerated.
        * generated/any_l4.c: Regenerated.
        * generated/minval_i8.c: Regenerated.
        * generated/maxloc1_4_i8.c: Regenerated.
        * generated/minloc1_4_i16.c: Regenerated.
        * generated/maxloc1_4_i16.c: Regenerated.
        * generated/minloc1_8_r10.c: Regenerated.
        * generated/product_i4.c: Regenerated.
        * generated/maxloc1_8_r10.c: Regenerated.
        * generated/sum_c16.c: Regenerated.
        * generated/minloc1_16_r8.c: Regenerated.
        * generated/maxloc1_16_r8.c: Regenerated.
        * generated/count_4_l.c: Regenerated.
        * generated/sum_r10.c: Regenerated.
        * generated/count_8_l.c: Regenerated.
        * generated/sum_c4.c: Regenerated.
        * generated/maxloc1_16_r10.c: Regenerated.
        * generated/minloc1_8_r8.c: Regenerated.
        * generated/maxval_r10.c: Regenerated.
        * generated/minval_i1.c: Regenerated.
        * generated/maxloc1_4_i1.c: Regenerated.
        * generated/minloc1_4_i8.c: Regenerated.
        * generated/product_i16.c: Regenerated.
        * generated/all_l4.c: Regenerated.
        * generated/norm2_r16.c: Regenerated.
        * generated/minval_r4.c: Regenerated.
        * generated/maxloc1_4_r4.c: Regenerated.
        * generated/sum_i4.c: Regenerated.
        * generated/maxval_r8.c: Regenerated.
        * generated/norm2_r8.c: Regenerated.
        * generated/minloc1_4_i1.c: Regenerated.
        * generated/minval_r16.c: Regenerated.
        * generated/minval_i2.c: Regenerated.
        * generated/maxloc1_4_i2.c: Regenerated.
        * generated/product_r8.c: Regenerated.
        * generated/maxloc1_8_i8.c: Regenerated.
        * generated/sum_c10.c: Regenerated.
        * generated/minloc1_4_r16.c: Regenerated.
        * generated/maxloc1_4_r16.c: Regenerated.
        * generated/count_1_l.c: Regenerated.
        * generated/minloc1_4_r4.c: Regenerated.
        * generated/minloc1_16_i8.c: Regenerated.
        * generated/maxloc1_16_i8.c: Regenerated.
        * generated/minloc1_4_i2.c: Regenerated.
        * generated/maxloc1_8_i1.c: Regenerated.
        * generated/minloc1_8_i8.c: Regenerated.
        * generated/product_r16.c: Regenerated.
        * generated/product_c8.c: Regenerated.
        * generated/sum_r8.c: Regenerated.
        * generated/norm2_r10.c: Regenerated.
        * generated/minloc1_16_i16.c: Regenerated.
        * generated/maxloc1_8_r4.c: Regenerated.
        * generated/minloc1_16_i1.c: Regenerated.
        * generated/maxloc1_16_i1.c: Regenerated.
        * generated/minval_r10.c: Regenerated.
        * generated/count_16_l.c: Regenerated.
        * generated/parity_l8.c: Regenerated.
        * generated/minloc1_8_i1.c: Regenerated.
        * generated/minval_i4.c: Regenerated.
        * generated/maxloc1_4_i4.c: Regenerated.
        * generated/maxloc1_8_i2.c: Regenerated.
        * generated/maxval_i8.c: Regenerated.
        * generated/any_l8.c: Regenerated.
        * generated/minloc1_4_r10.c: Regenerated.
        * generated/minloc1_8_i16.c: Regenerated.
        * generated/maxloc1_4_r10.c: Regenerated.
        * generated/maxloc1_8_i16.c: Regenerated.
        * generated/minloc1_16_r4.c: Regenerated.
        * generated/maxloc1_16_r4.c: Regenerated.
        * generated/product_i8.c: Regenerated.
        * generated/sum_i16.c: Regenerated.
        * generated/count_2_l.c: Regenerated.
        * generated/maxloc1_16_i16.c: Regenerated.
        * generated/minloc1_8_r4.c: Regenerated.
        * generated/sum_c8.c: Regenerated.
        * generated/minloc1_16_i2.c: Regenerated.
        * generated/maxloc1_16_i2.c: Regenerated.
        * generated/parity_l1.c: Regenerated.
        * generated/maxval_i16.c: Regenerated.
        * generated/maxval_i1.c: Regenerated.
        * generated/minloc1_4_i4.c: Regenerated.
        * generated/any_l1.c: Regenerated.
        * generated/minloc1_8_i2.c: Regenerated.
        * generated/product_c16.c: Regenerated.
        * generated/product_r10.c: Regenerated.
        * generated/product_i1.c: Regenerated.
        * generated/all_l8.c: Regenerated.
        * generated/maxval_r4.c: Regenerated.

From-SVN: r163595
2010-08-27 21:17:45 +02:00
Janus Weil
cbadd64af4 re PR fortran/45420 ([OOP] polymorphic TBP call in a CLASS DEFAULT clause)
2010-08-27  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45420
	* match.c (select_type_set_tmp): Add the possibility to reset the
	temporary to NULL.
	(gfc_match_class_is): Reset the temporary in CLASS DEFAULT clauses.


2010-08-27  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45420
	* gfortran.dg/select_type_15.f03: New.

From-SVN: r163594
2010-08-27 21:02:15 +02:00
Benjamin Kosnik
ee1e5e63ec stl_iterator_base_types.h: Fix doxygen warning.
2010-08-26  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/stl_iterator_base_types.h: Fix doxygen warning.

From-SVN: r163592
2010-08-27 18:16:05 +00:00
Uros Bizjak
83d5896129 re PR target/41484 (Please add memory forms of pmovzx* (SSE4.1))
PR target/41484
	* config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
	operands for operand 1.
	(sse4_1_extendv4qiv4si2): Ditto.
	(sse4_1_extendv2qiv2di2): Ditto.
	(sse4_1_extendv4hiv4si2): Ditto.
	(sse4_1_extendv2hiv2di2): Ditto.
	(sse4_1_extendv2siv2di2): Ditto.
	(sse4_1_zero_extendv8qiv8hi2): Ditto.
	(sse4_1_zero_extendv4qiv4si2): Ditto.
	(sse4_1_zero_extendv2qiv2di2): Ditto.
	(sse4_1_zero_extendv4hiv4si2): Ditto.
	(sse4_1_zero_extendv2hiv2di2): Ditto.
	(sse4_1_zero_extendv2siv2di2): Ditto.
	(*sse4_1_extendv8qiv8hi2): Remove insn pattern.
	(*sse4_1_extendv4qiv4si2): Ditto.
	(*sse4_1_extendv2qiv2di2): Ditto.
	(*sse4_1_extendv4hiv4si2): Ditto.
	(*sse4_1_extendv2hiv2di2): Ditto.
	(*sse4_1_extendv2siv2di2): Ditto.
	(*sse4_1_zero_extendv8qiv8hi2): Ditto.
	(*sse4_1_zero_extendv4qiv4si2): Ditto.
	(*sse4_1_zero_extendv2qiv2di2): Ditto.
	(*sse4_1_zero_extendv4hiv4si2): Ditto.
	(*sse4_1_zero_extendv2hiv2di2): Ditto.
	(*sse4_1_zero_extendv2siv2di2): Ditto.

From-SVN: r163591
2010-08-27 18:53:51 +02:00
Eric Botcazou
757fc8ed22 Fix long lines
From-SVN: r163590
2010-08-27 16:23:07 +00:00
Jerry DeLisle
2854a076f6 re PR fortran/43217 (Output of Hollerith constants which are not a multiple of 4 bytes)
2010-08-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/43217
	* gfortran.dg/hollerith8.f90: New test.

From-SVN: r163588
2010-08-27 15:00:11 +00:00
Nathan Froyd
c8717ea3bc mips-protos.h (mips_function_arg_advance): Delete
* config/mips/mips-protos.h (mips_function_arg_advance): Delete
	(mips_function_arg): Delete.
	(mips_function_arg_boundary): Take a const_tree.
	* config/mips/mips.c (mips_function_arg_boundary): Likewise.
	(mips_arg_info): Likewise.
	(mips_setup_incoming_varargs): Call mips_function_arg_advance
	instead of FUNCTION_ARG_ADVANCE.
	(mips_function_arg_advance): Adjust prototype.  Make static.
	(mips_function_arg): Likewise.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
	* config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.

From-SVN: r163587
2010-08-27 14:48:16 +00:00
Nathan Froyd
7c8232a2e9 rs6000.h (FUNCTION_ARG, [...]): Delete.
* config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
	(function_arg): Delete.
	(function_arg_boundary): Take a const_tree.
	* config/rs6000/rs6000.c (function_arg_boundary): Likewise.
	(rs6000_spe_function_arg): Likewise.
	(rs6000_parm_start): Likewise.
	(rs6000_arg_size): Likewise.
	(rs6000_darwin64_record_arg_advance_recurse): Likewise.
	(rs6000_darwin64_record_arg): Likewise.  Take a bool instead of
	an int.
	(rs6000_mixed_function_arg): Likewise.
	(function_arg): Rename to...
	(rs6000_function_arg): ...this.
	(function_arg_advance): Rename to...
	(rs6000_function_arg_advance_1): ...this
	(rs6000_function_arg_advance): New function.  Call it.
	(setup_incoming_varargs): Call rs6000_function_arg_advance_1.
	(rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
	(rs6000_function_value): Likewise.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r163586
2010-08-27 14:46:22 +00:00
Ramana Radhakrishnan
da787decc6 arm.md (enabled): Test the value of arch_enabled rather than just using it.
2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.md (enabled): Test the value of arch_enabled
        rather than just using it.

From-SVN: r163585
2010-08-27 14:22:41 +00:00
Thomas Koenig
e240f0f4cc re PR fortran/45159 (Unnecessary temporaries)
2010-08-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/45159
	* dependency.c (check_section_vs_section):  Single test for
	identical strides which takes into account that only one
	of the strides may be NULL.

2010-08-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/45159
	* gfortran.dg/dependency_33.f90:  New test.

From-SVN: r163584
2010-08-27 12:08:47 +00:00
Richard Guenther
6d446ecf60 scop-1.c: Fix out-of-bound array accesses.
2010-08-27  Richard Guenther  <rguenther@suse.de>

	* gcc.dg/graphite/scop-1.c: Fix out-of-bound array accesses.
	* gcc.dg/graphite/scop-2.c: Likewise.
	* gcc.dg/graphite/scop-20.c: Likewise.
	* gcc.dg/vect/slp-25.c: Likewise.

From-SVN: r163583
2010-08-27 11:39:45 +00:00
Olivier Hainque
d32f725a65 dse.c (group_info.base_mem, [...]): Use BLKmode to cover all the possible offsets from this base.
* dse.c (group_info.base_mem, get_group_info): Use BLKmode to
        cover all the possible offsets from this base.
        (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.

        testsuite/
        * gnat.dg/dse_step.ads, dse_step.adb, test_dse_step.adb: New test.


Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>

From-SVN: r163582
2010-08-27 10:48:32 +00:00
Jerry DeLisle
401fcd3b8f re PR fortran/43217 (Output of Hollerith constants which are not a multiple of 4 bytes)
2010-08-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/43217
	* primary.c (match_hollerith_constant): Calculate padding needed to
	fill default integer and allocate string for that size.  Set pad bytes
	to ' '.
	* gfortran.h: Add hollerith pad value to type spec union.
	* data.c (create_character_initializer): Fix spelling of function name.
	Use hollerith pad value to calculate length.
	* arith.c (hollerith2representation); Use hollerith pad value to
	calculate length.

From-SVN: r163581
2010-08-27 06:50:03 +00:00
Dmitrijs Ledkovs
9f8f1def9d Fix building ecjx in cross compile mode.
libjava/:
	PR libgcj/40868
	* configure.ac: Add GCC_FOR_ECJX variable.  Ensure
	GCJ_FOR_ECJX is always set.
	* Makefile.am [!NATIVE] (ecjx.$(OBJEXT)): New rule.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* gcj/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

Co-Authored-By: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>

From-SVN: r163580
2010-08-27 04:27:40 +00:00
GCC Administrator
a703b0c023 Daily bump.
From-SVN: r163579
2010-08-27 00:17:31 +00:00
Daniel Kraft
3e78238a1e re PR fortran/38936 ([F03] ASSOCIATE construct / improved SELECT TYPE (a=>expr))
2010-08-26  Daniel Kraft  <d@domob.eu>

	PR fortran/38936
	PR fortran/44047
	PR fortran/45384
	* gfortran.h (struct gfc_association_list): New flag `dangling'.
	(gfc_build_block_ns): Declared here...
	* parse.h (gfc_build_block_ns): ...instead of here.
	* trans.h (gfc_process_block_locals): Expect additionally the
	gfc_association_list of BLOCK (if present).
	* match.c (select_type_set_tmp): Create sym->assoc for temporary.
	* resolve.c (resolve_variable): Only check for invalid *array*
	references on associate-names.
	(resolve_assoc_var): New method with code previously in resolve_symbol.
	(resolve_select_type): Use association to give the selector and
	temporaries their values instead of ordinary assignment.
	(resolve_fl_var_and_proc): Allow CLASS associate-names.
	(resolve_symbol): Use new `resolve_assoc_var' instead of inlining here.
	* trans-stmt.c (gfc_trans_block_construct): Pass association-list
	to `gfc_process_block_locals' to match new interface.
	* trans-decl.c (gfc_get_symbol_decl): Don't defer associate-names
	here automatically.
	(gfc_process_block_locals): Defer them rather here when linked to
	from the BLOCK's association list.

2010-08-26  Daniel Kraft  <d@domob.eu>

	PR fortran/38936
	PR fortran/44047
	PR fortran/45384
	* gfortran.dg/associate_8.f03: New test.
	* gfortran.dg/select_type_13.f03: New test.
	* gfortran.dg/select_type_14.f03: New test.

From-SVN: r163572
2010-08-26 21:48:43 +02:00
Rainer Orth
707bcb7ae4 * system.h [HAVE_INTTYPES_H]: Include inttypes.h.
From-SVN: r163569
2010-08-26 17:58:31 +00:00
Jakub Jelinek
9e3920e97f re PR tree-optimization/44485 (ICE in get_expr_operands, at tree-ssa-operands.c:1020)
PR tree-optimization/44485
	* calls.c (flags_from_decl_or_type): For const or pure
	noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
	together with ECF_CONST resp. ECF_PURE.
	* builtins.c (expand_builtin): Use flags_from_decl_or_type
	instead of querying flags directly.
	* tree-ssa-loop-niter.c (finite_loop_p): Likewise.
	* tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.

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

From-SVN: r163568
2010-08-26 18:39:26 +02:00
Rainer Orth
350b707024 thr-init-2.c: Use dg-add-options tls.
* gcc.dg/tls/thr-init-2.c: Use dg-add-options tls.
	* gcc.dg/torture/tls/thr-init-1.c: Likewise.
	* gcc.dg/torture/tls/thr-init-2.c: Likewise.

From-SVN: r163567
2010-08-26 15:52:41 +00:00
Rainer Orth
7b4588decd fpu-387.h (has_sse): Remove cw_sse, unused.
* config/fpu-387.h (has_sse): Remove cw_sse, unused.
	Use fixed-length asm.

From-SVN: r163566
2010-08-26 15:29:31 +00:00
Richard Guenther
4be4cd6dd7 re PR tree-optimization/45255 (internal compiler error: verify_stmts failed with -fwhopr)
2010-08-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45255
	* tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P
	statics and externals are also invariant.

From-SVN: r163565
2010-08-26 14:20:45 +00:00
Richard Guenther
5423ab77ff scop-0.c: Fix out-of-bound array accesses.
2010-08-26  Richard Guenther  <rguenther@suse.de>

	* gcc.dg/graphite/scop-0.c: Fix out-of-bound array accesses.
	* gcc.dg/graphite/scop-21.c: Likewise.

From-SVN: r163564
2010-08-26 13:10:15 +00:00
Richard Guenther
880f987ea7 vect-64.c: Fix out-of-bound array accesses.
2010-08-26  Richard Guenther  <rguenther@suse.de>

	* gcc.dg/vect/vect-64.c: Fix out-of-bound array accesses.
	* gcc.dg/vect/fast-math-slp-27.c: Likewise.
	* gcc.dg/vect/no-section-anchors-vect-64.c: Likewise.
	* gcc.dg/vect/vect-91.c: Likewise.
	* gcc.dg/vect/vect-peel-1.c: Likewise.
	* gcc.dg/vect/vect-peel-2.c: Likewise.
	* gcc.dg/vect/vect-peel-4.c: Likewise.

From-SVN: r163563
2010-08-26 11:13:58 +00:00
Jerry DeLisle
604bbfb7fa re PR fortran/41859 (ICE on invalid expression involving DT with pointer components in I/O)
2010-08-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/41859
	* gfortran.dg/der_io_4.f90: New test.

From-SVN: r163561
2010-08-26 02:12:49 +00:00
GCC Administrator
1972b91628 Daily bump.
From-SVN: r163560
2010-08-26 00:16:50 +00:00
Jakub Jelinek
ea9f1d6fe5 re PR rtl-optimization/44858 (likely integer wrong code bug)
PR rtl-optimization/44858
	* combine.c (try_combine): If recog_for_combine added CLOBBERs to
	newi2pat, make sure they don't affect newpat.

	* gcc.c-torture/execute/pr44858.c: New test.

From-SVN: r163552
2010-08-25 19:50:59 +02:00
Jakub Jelinek
932c9bffa0 re PR rtl-optimization/45400 (XBMC AudioEngine Compilation C++ Internal Compiler Error /w Optimization)
PR rtl-optimization/45400
	* combine.c (simplify_shift_const_1) <case SUBREG>: Only use
	SUBREG_REG if both modes are of MODE_INT class.

	* g++.dg/other/i386-8.C: New test.

From-SVN: r163551
2010-08-25 19:49:26 +02:00
Julian Brown
d8099dd859 arm.c (arm_issue_rate): Return 2 for Cortex-A5.
* config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
	* config/arm/arm.md (generic_sched): No for Cortex-A5.
	(generic_vfp): Likewise.
	(cortex-a5.md): Include.
	* config/arm/cortex-a5.md: New.

From-SVN: r163550
2010-08-25 15:35:24 +00:00
Richard Guenther
0ceb020134 alias.c (get_alias_set): Assign a single alias-set to all pointers.
2010-08-25  Richard Guenther  <rguenther@suse.de>

	* alias.c (get_alias_set): Assign a single alias-set to
	all pointers.
	* gimple.c (gimple_get_alias_set): Remove special handling
	for pointers.

	c-family/
	* c-common.c (c_common_get_alias_set): Remove special
	handling for pointers.

	* gcc.dg/alias-8.c: Adjust.

From-SVN: r163549
2010-08-25 14:46:40 +00:00
Jakub Jelinek
22b139e167 trans-decl.c (gfc_build_intrinsic_function_decls): Set TREE_NOTHROW on fndecls that can't throw.
* trans-decl.c (gfc_build_intrinsic_function_decls): Set
	TREE_NOTHROW on fndecls that can't throw.  Set
	TREE_READONLY on gfor_fndecl_math_ishftc{4,8,16}.
	(gfc_build_builtin_function_decls): Set TREE_NOTHROW on
	gfor_fndecl_associated.

From-SVN: r163548
2010-08-25 16:44:46 +02:00
Bernd Schmidt
0cdf7b49f1 combine.c (find_split_point): Undo canonicalization of multiply-add to (minus x (mult)) when...
* combine.c (find_split_point): Undo canonicalization of multiply-add
	to (minus x (mult)) when it seems likely that this will increase the
	chances of a split.

	* gcc.target/i386/combine-mul.c: New test.

From-SVN: r163547
2010-08-25 14:14:59 +00:00
Bernd Schmidt
4942fc569c re PR middle-end/45355 (FAIL: gcc.c-torture/compile/pr43164.c)
PR middle-end/45355
	* combine.c (try_combine): Use reg_overlap_mentioned_p rather than
	dead_or_set_p when computing i0_feeds_i2_n.

From-SVN: r163546
2010-08-25 14:08:23 +00:00
Richard Guenther
1cf01301ac re PR tree-optimization/44562 (ICE: in get_alias_set, at alias.c:716 with -flto -fstrict-aliasing -fgraphite-identity)
2010-08-25  Richard Guenther  <rguenther@suse.de>

	PR lto/44562
	* lto-streamer.c (lto_record_common_node): Do not mess with
	TYPE_CANONICAL when not in lto.
	* gimple.c (gimple_register_type): Likewise.

	* gcc.dg/graphite/id-27.c: New testcase.
	* gcc.dg/lto/20100825-1_0.c: Likewise.

From-SVN: r163545
2010-08-25 14:05:28 +00:00
Richard Guenther
a2c0ed2ee9 re PR middle-end/45316 (ICE: verify_flow_info failed: BB 3 can not throw but has an EH edge with -O1 -ftree-pre -fnon-call-exceptions)
2010-08-25  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45316
	* tree-ssa-pre.c (eliminate): Properly clean EH info.

	* g++.dg/opt/pr45316.C: New testcase.

From-SVN: r163543
2010-08-25 12:53:30 +00:00
Richard Guenther
90bc1cb81b re PR middle-end/45393 (ICE in redirect_eh_edge_1, at tree-eh.c:2135)
2010-08-25  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45393
	* tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
	and clean EH info.  Avoid SSA update.
	(execute_cse_sincos): Cleanup the CFG if it has changed.

	* g++.dg/torture/pr45393.C: New testcase.

From-SVN: r163541
2010-08-25 10:47:50 +00:00
Richard Guenther
9407f6bcfb re PR middle-end/45379 (~10% slowdown on test_fpu at revision 163278)
2010-08-25  Richard Guenther  <rguenther@suse.de>

	PR middle-end/45379
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
	TARGET_MEM_REF in alignment computation.

From-SVN: r163540
2010-08-25 10:03:19 +00:00
Jakub Jelinek
ca046f7f4e re PR tree-optimization/45059 (error: invalid operands in binary operation, leads to ICE: verify_stmts failed)
PR tree-optimization/45059
	* tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
	type conversions from newop{1,2}.  Assert t is a comparison and
	newop{1,2} after the stripping are gimple vals.

	* gcc.c-torture/compile/pr45059.c: New test.

From-SVN: r163539
2010-08-25 11:36:35 +02:00
Tejas Belagod
46b57af175 vmull / vmovl support for Neon.
For Tejas Belagod

2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>

	* lib/target-supports.exp (check_effective_target_vect_unpack):
	Set vect_unpack supported flag to true for neon.

	* config/arm/iterators.md (VU, SE, V_widen_l): New.
	(V_unpack, US): New.
	* config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for
	vmovl.
	(vec_unpack<US>_lo_<mode>): Likewise.
	(neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
	(neon_vec_unpack<US>_lo_<mode>): Likewise.
	(vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
	(vec_widen_<US>mult_hi_<mode>): Likewise.
	(neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
	(neon_vec_<US>mult_hi_<mode>"): Likewise.
	(neon_unpack<US>_<mode>): Widening move intermediate step for
	vectorizing without -mvectorize-with-neon-quad.
	(neon_vec_<US>mult_<mode>): Widening multiply intermediate step
	for vectorizing without -mvectorize-with-neon-quad.
	* config/arm/predicates.md (vect_par_constant_high): Check for
	high-half lanes of a vector.
	(vect_par_constant_low): Check for low-half lanes of a vector.

From-SVN: r163538
2010-08-25 07:23:26 +00:00
GCC Administrator
34f41f7c1a Daily bump.
From-SVN: r163536
2010-08-25 00:17:23 +00:00
Sebastian Pop
4b9c23ea4e Speed-up ifcvt_memrefs_wont_trap caching previous results.
This patch speeds up the ifcvt_memrefs_wont_trap computation by
caching the results of the computations in the data references ->aux
fields.

	* tree-if-conv.c (struct ifc_dr): New.
	(IFC_DR): New.
	(DR_WRITTEN_AT_LEAST_ONCE): New.
	(DR_RW_UNCONDITIONALLY): New.
	(memref_read_or_written_unconditionally): Use the cached values
	when possible.
	(write_memref_written_at_least_once): Same.
	(if_convertible_loop_p): Initialize and free DR->aux fields.

From-SVN: r163532
2010-08-24 23:36:04 +00:00
Sebastian Pop
e1fd038a0c Do not check whether memory references accessed in every iteration trap.
This patch relaxes the checks from gimple_could_trap_p in order to
allow the flag_loop_if_convert_stores to if-convert more loops
in which it is possible to prove that:

- the accesses to an array in a loop do not trap (more than the
  original non-if-converted loop).  This is true when the memory
  accesses are executed at every iteration of the if-converted loop.

- the writes to memory occur on arrays that are not const qualified.
  This is true when there exists at least one unconditional write to
  the array in the analyzed program.  In this patch this analysis is
  limited to the loop to be if-converted.

	* gimple.c (gimple_could_trap_p_1): Not static anymore.
	Pass an extra bool parameter include_mem.
	(gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
	(gimple_assign_rhs_could_trap_p): Same.
	* gimple.h (gimple_could_trap_p_1): Declared.
	* tree-data-ref.h (same_data_refs_base_objects): New.
	(same_data_refs): New.
	* tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
	(write_memrefs_written_at_least_once): New.
	(ifcvt_memrefs_wont_trap): New.
	(operations_could_trap): New.
	(ifcvt_could_trap_p): New.
	(if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
	Gets a vector of data refs.
	(if_convertible_stmt_p): Same.
	(if_convertible_loop_p_1): New.
	(if_convertible_loop_p): Call if_convertible_loop_p_1.

	* gcc.dg/tree-ssa/ifc-5.c: New.

From-SVN: r163531
2010-08-24 23:35:56 +00:00
Sebastian Pop
bd544141e0 Add flag -ftree-loop-if-convert-stores.
This patch adds a flag that controls the replacement of the memory
writes that are in predicated basic blocks with a full write:

for (...)
  if (cond)
    A[i] = foo

is replaced with:

for (...)
  A[i] = cond ? foo : A[i]

In order to do this, we have to call gimple_could_trap_p instead of
gimple_assign_rhs_could_trap_p, as we have to also check that the LHS
of assign stmts does not trap.

	* common.opt (ftree-loop-if-convert-stores): New flag.
	* doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
	* tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
	the created statement before GSI.
	(if_convertible_phi_p): Allow virtual phi nodes when
	flag_loop_if_convert_stores is set.
	(if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
	Do not handle types that do not match is_gimple_reg_type.
	Remove loop and bb parameters.  Call gimple_could_trap_p instead of
	when flag_loop_if_convert_stores is set, as LHS can contain
	memory refs.
	(if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
	to if_convertible_gimple_assign_stmt_p.
	(if_convertible_loop_p): Update call to if_convertible_stmt_p.
	(replace_phi_with_cond_gimple_assign_stmt): Renamed
	predicate_scalar_phi.  Do not handle virtual phi nodes.
	(ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
	Call predicate_scalar_phi.
	(insert_gimplified_predicates): Insert the gimplified predicate of a BB
	just after the labels for flag_loop_if_convert_stores, otherwise
	insert the predicate in the end of the BB.
	(predicate_mem_writes): New.
	(combine_blocks): Call predicate_all_scalar_phis.  When
	flag_loop_if_convert_stores is set, call predicate_mem_writes.
	(tree_if_conversion): Call mark_sym_for_renaming when
	flag_loop_if_convert_stores is set.
	(main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
	flag_loop_if_convert_stores is set.

	* gcc.dg/tree-ssa/ifc-4.c: New.
	* gcc.dg/tree-ssa/ifc-7.c: New.

From-SVN: r163530
2010-08-24 23:35:48 +00:00
Danny Smith
3a9abc98c2 MAINTAINERS (OS Port Maintainers): Remove myself from windows ports
* MAINTAINERS (OS Port Maintainers): Remove myself from windows
	ports

From-SVN: r163529
2010-08-24 22:41:34 +00:00
Richard Henderson
6f173e52cb re PR bootstrap/45376 (no such instruction: `pcmpestri $0,(%rdi),%xmm0')
PR bootstrap/45376
        * configure.ac (HAVE_SSE4): New check.
        * configure, config.in: Rebuild.
        * lex.c (search_line_sse42): Omit if !HAVE_SSE4.

From-SVN: r163528
2010-08-24 14:08:05 -07:00