1. 25 Aug, 2010 3 commits
    • re PR tree-optimization/45059 (error: invalid operands in binary operation,… · ca046f7f
      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
      Jakub Jelinek committed
    • vmull / vmovl support for Neon. · 46b57af1
      
      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
      Tejas Belagod committed
    • Daily bump. · 34f41f7c
      From-SVN: r163536
      GCC Administrator committed
  2. 24 Aug, 2010 10 commits
    • Speed-up ifcvt_memrefs_wont_trap caching previous results. · 4b9c23ea
      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
      Sebastian Pop committed
    • Do not check whether memory references accessed in every iteration trap. · e1fd038a
      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
      Sebastian Pop committed
    • Add flag -ftree-loop-if-convert-stores. · bd544141
      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
      Sebastian Pop committed
    • MAINTAINERS (OS Port Maintainers): Remove myself from windows ports · 3a9abc98
      	* MAINTAINERS (OS Port Maintainers): Remove myself from windows
      	ports
      
      From-SVN: r163529
      Danny Smith committed
    • re PR bootstrap/45376 (no such instruction: `pcmpestri $0,(%rdi),%xmm0') · 6f173e52
              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
      Richard Henderson committed
    • pa.c (hppa_register_move_cost, [...]): New. · 8a5b8538
      	* config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
      	pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
      	(pa_function_value): Make static.
      	(override_options): Rename to...
      	(pa_option_override): ...this. Make static.
      	(TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
      	TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
      	TARGET_OPTION_OVERRIDE): Define.
      	* config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
      	LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
      	Remove.
      	* config/pa/pa-protos.h (override_options): Remove.
      
      From-SVN: r163525
      Anatoly Sokolov committed
    • lex.c: Disable init_vectorized_lexer etc. · 789d73cb
      	* lex.c [__sun__ && __svr4__]: Disable init_vectorized_lexer
      	etc. on Solaris 2/x86.
      
      From-SVN: r163522
      Rainer Orth committed
    • re PR middle-end/45379 (~10% slowdown on test_fpu at revision 163278) · d15adbeb
      2010-08-24  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/45379
      	* tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
      	if addr->index is NULL or zero.
      	* tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
      	TARGET_MEM_REF more properly.
      	(indirect_ref_may_alias_decl_p): Likewise.
      	* emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
      	* alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more
      	properly.
      
      From-SVN: r163519
      Richard Guenther committed
    • check loongson targets in vect.exp · 1991282b
      From-SVN: r163495
      Mingjie Xing committed
    • Daily bump. · e1768322
      From-SVN: r163494
      GCC Administrator committed
  3. 23 Aug, 2010 12 commits
  4. 22 Aug, 2010 9 commits
    • re PR boehm-gc/34544 (pthread_default_stacksize_np failed.) · 8c157f90
      	PR boehm-gc/34544
      	* gthr-posix.h (__gthread_active_init): Delete.
      	(__gthread_active_p): Do activity check here.
      	Don't include errno.h on hppa-hpux.  Update comment.
      	* gthr-posix95.h (__gthread_active_init): Delete.
      	(__gthread_active_p): Do activity check here.
      	Don't include errno.h on hppa-hpux.  Update comment.
      	* config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
      	* config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
      	add -lpthread when -mt or -pthread is specified.
      	* config/pa/pa-hpux11.h (LIB_SPEC): likewise.
      	(LINK_GCC_C_SEQUENCE_SPEC): Define.
      	* config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
      	(stublib.c, pthread_default_stacksize_np-stub.o,
      	pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
      	$(T)libgcc_stub.a): Add methods.
      	* config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
      	(stublib.c, pthread_default_stacksize_np-stub.o,
      	pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
      	* config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
      	pthread_mutex_unlock): New stubs.
      
      From-SVN: r163461
      John David Anglin committed
    • re PR fortran/45367 (FAIL: gfortran.dg/bessel_6.f90 and gfortran.dg/bessel_7.f90) · 11aa2577
      2010-08-22  Tobias Burnus  <burnus@net-b.de>
                  Dominique d'Humieres <dominiq@lps.ens.fr>
      
              PR fortran/45367
              * gfortran.dg/bessel_6.f90: Further reduce required accuracy.
      
      
      Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr>
      
      From-SVN: r163460
      Tobias Burnus committed
    • Makefile.in (gccspec.o, cppspec.o): Update dependencies. · d9d16a19
      	* Makefile.in (gccspec.o, cppspec.o): Update dependencies.
      	* common.opt (L, nodefaultlibs, nostdlib, pg, static): New
      	options.
      	* config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
      	* config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
      	* config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
      	* config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
      	* config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
      	"-l".
      	* cppspec.c: Include opts.h.
      	(lang_specific_driver): Use cl_decoded_option structures.
      	* doc/tm.texi.in (MATH_LIBRARY): Update documentation.
      	* doc/tm.texi: Regenerate.
      	* gcc.c (translate_options): Translate -d to -foutput-class-dir=.
      	(driver_handle_option): Allow driver options needing no special
      	processing.
      	(process_command): Decode options before call to
      	lang_specific_driver.  Pass decoded options to
      	lang_specific_driver.
      	* gcc.h (lang_specific_driver): Update prototype.
      	* gccspec.c: Include opts.h.
      	(lang_specific_driver): Use cl_decoded_option structures.
      	* opts-common.c (option_ok_for_language, generate_option,
      	generate_option_input_file): New.
      	(decode_cmdline_option): Use option_ok_for_language.
      	(decode_cmdline_options_to_array): Use generate_option_input_file.
      	(handle_generated_option): Use generate_option.
      	* opts.h (generate_option, generate_option_input_file): Declare.
      
      cp:
      	* Make-lang.in (g++spec.o): Update dependencies.
      	* g++spec.c: Include opts.h
      	(MATH_LIBRARY, LIBSTDCXX): Remove initial "-l".
      	(lang_specific_driver): Use cl_decoded_option structures.
      
      fortran:
      	* Make-lang.in (gfortranspec.o): Update dependencies.
      	* gfortranspec.c: Include coretypes.h before gcc.h.  Include
      	opts.h.
      	(MATH_LIBRARY, FORTRAN_LIBRARY): Remove initial "-l".
      	(ADD_ARG_LIBGFORTRAN, Option, lookup_option): Remove.
      	(g77_xargc): Make unsigned.
      	(g77_xargv): Change to g77_x_decoded_options.
      	(g77_newargc): Make unsigned.
      	(g77_newargv): Change to g77_new_decoded_options.
      	(strings_same, options_same): New.
      	(append_arg): Use cl_decoded_option structures.
      	(append_option): New.
      	(add_arg_libgfortran): New.
      	(lang_specific_driver): Use cl_decoded_option structures.
      
      java:
      	* Make-lang.in (jvspec.o): Update dependencies.
      	* jvspec.c: Include opts.h.
      	(PARAM_ARG): Remove.
      	(find_spec_file): Do not add leading -specs=.
      	(lang_specific_driver): Use cl_decoded_option structures.
      	* lang.opt (C, CLASSPATH, D, bootclasspath, classpath, encoding,
      	extdirs, fmain=, s-bc-abi): New options.
      
      From-SVN: r163459
      Joseph Myers committed
    • re PR fortran/45367 (FAIL: gfortran.dg/bessel_6.f90 and gfortran.dg/bessel_7.f90) · 3607fdb2
      2010-08-22  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/45367
              * gfortran.dg/bessel_6.f90: Fix numeric tolerence.
      
      From-SVN: r163458
      Tobias Burnus committed
    • Really commit the following change: · 302ef311
      2010-08-22  Tobias Burnus  <burnus@net-b.de>
                  Dominique d'Humieres <dominiq@lps.ens.fr>
      
              PR fortran/45367
              * gfortran.dg/bessel_6.f90: Increase numeric tolerence.
      
      From-SVN: r163457
      Tobias Burnus committed
    • mips.c (mips_override_options): Rename to... · 525c561d
      	* config/mips/mips.c (mips_override_options): Rename to...
      	(mips_option_override): ...this. Make static.
      	(TARGET_OPTION_OVERRIDE): Define.
      	(mips_in_small_data_p): Update comment.
      	* config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
      	(FIXED_REGISTERS): Update comment.
      	* config/mips/mips-protos.h (mips_override_options): Remove.
      
      From-SVN: r163456
      Anatoly Sokolov committed
    • re PR fortran/36158 (Transformational function BESSEL_YN(n1,n2,x) and BESSEL_JN missing) · 60f22d5d
      2010-08-22  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/36158
              * gfortran.dg/bessel_7.f90: Disable accidently enabled debug
              output.
      
      From-SVN: r163455
      Tobias Burnus committed
    • re PR fortran/45367 (FAIL: gfortran.dg/bessel_6.f90 and gfortran.dg/bessel_7.f90) · 8af7a073
      2010-08-22  Tobias Burnus  <burnus@net-b.de>
                  Dominique d'Humieres <dominiq@lps.ens.fr>
      
              PR fortran/45367
              PR fortran/36158
              * gfortran.dg/bessel_6.f90: Increase numeric tolerence.
              * gfortran.dg/bessel_7.f90: Increase numeric tolerence.
      
      
      Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr>
      
      From-SVN: r163454
      Tobias Burnus committed
    • Daily bump. · 1408f0dd
      From-SVN: r163453
      GCC Administrator committed
  5. 21 Aug, 2010 6 commits
    • Fix formatting of recently added ChangeLog entry. · 74025114
      From-SVN: r163449
      Olivier Hainque committed
    • vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__. · 65f1047a
              * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
      
      From-SVN: r163448
      Olivier Hainque committed
    • vxworks.h: (PREFERRED_STACK_BOUNDARY... · b3552548
              * config/rs6000/vxworks.h:  (PREFERRED_STACK_BOUNDARY, 
              ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
      
      From-SVN: r163447
      Olivier Hainque committed
    • Vectorize fast path of _cpp_clean_line. · 246a2fcb
      	* configure.ac (AC_C_BIGENDIAN, AC_TYPE_UINTPTR_T): New tests.
      	(ssize_t): Check via AC_TYPE_SSIZE_T instead of AC_CHECK_TYPE.
      	(ptrdiff_t): Check via AC_CHECK_TYPE.
      	* config.in, configure: Rebuild.
      	* system.h: Include stdint.h, if available.
      	* lex.c (WORDS_BIGENDIAN): Provide default.
      	(acc_char_mask_misalign, acc_char_replicate, acc_char_cmp,
      	acc_char_index, search_line_acc_char, repl_chars, search_line_mmx,
      	search_line_sse2, search_line_sse42, init_vectorized_lexer,
      	search_line_fast): New.
      	(_cpp_clean_line): Use search_line_fast.  Restructure the fast
      	loop to make it clear when we're leaving the loop.  Stay in the
      	fast loop for non-trigraph '?'.
      
      Co-Authored-By: Andi Kleen <ak@linux.intel.com>
      Co-Authored-By: David S. Miller <davem@davemloft.net>
      
      From-SVN: r163446
      Richard Henderson committed
    • re PR fortran/45271 ([OOP] Polymorphic code breaks when changing order of USE statements) · 1d0134b3
      2010-08-21  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/45271
      	PR fortran/45290
      	* class.c (add_proc_comp): Add static initializer for PPCs.
      	(add_procs_to_declared_vtab): Modified comment.
      	* module.c (mio_component): Add argument 'vtype'. Don't read/write the
      	initializer if the component is part of a vtype.
      	(mio_component_list): Add argument 'vtype', pass it on to
      	'mio_component'.
      	(mio_symbol): Modified call to 'mio_component_list'.
      	* trans.h (gfc_conv_initializer): Modified prototype.
      	(gfc_trans_assign_vtab_procs): Removed.
      	* trans-common.c (create_common): Modified call to
      	'gfc_conv_initializer'.
      	* trans-decl.c (gfc_get_symbol_decl,get_proc_pointer_decl,
      	gfc_emit_parameter_debug_info): Modified call to
      	'gfc_conv_initializer'.
      	(build_function_decl): Remove assertion.
      	* trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
      	Removed call to 'gfc_trans_assign_vtab_procs'.
      	(gfc_conv_initializer): Add argument 'procptr'.
      	(gfc_conv_structure): Modified call to 'gfc_conv_initializer'.
      	(gfc_trans_assign_vtab_procs): Removed.
      	* trans-stmt.c (gfc_trans_allocate): Removed call to
      	'gfc_trans_assign_vtab_procs'.
      
      
      2010-08-21  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/44863
      	PR fortran/45271
      	PR fortran/45290
      	* gfortran.dg/dynamic_dispatch_10.f03: New (PR 44863 comment #1).
      	* gfortran.dg/pointer_init_5.f90: New (PR 45290 comment #6).
      	* gfortran.dg/typebound_call_18.f03: New (PR 45271 comment #3).
      
      From-SVN: r163445
      Janus Weil committed
    • * tracebak.c: Fix typo in comment. · 02be26e4
      From-SVN: r163444
      Eric Botcazou committed