Tejas Belagod [Wed, 25 Aug 2010 07:23:26 +0000 (08:23 +0100)]
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
GCC Administrator [Wed, 25 Aug 2010 00:17:23 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r163536
Sebastian Pop [Tue, 24 Aug 2010 23:36:04 +0000 (23:36 +0000)]
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
Sebastian Pop [Tue, 24 Aug 2010 23:35:56 +0000 (23:35 +0000)]
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
Sebastian Pop [Tue, 24 Aug 2010 23:35:48 +0000 (23:35 +0000)]
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
Danny Smith [Tue, 24 Aug 2010 22:41:34 +0000 (22:41 +0000)]
MAINTAINERS (OS Port Maintainers): Remove myself from windows ports
* MAINTAINERS (OS Port Maintainers): Remove myself from windows
ports
From-SVN: r163529
Richard Henderson [Tue, 24 Aug 2010 21:08:05 +0000 (14:08 -0700)]
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
Anatoly Sokolov [Tue, 24 Aug 2010 18:52:08 +0000 (22:52 +0400)]
pa.c (hppa_register_move_cost, [...]): New.
* 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
Rainer Orth [Tue, 24 Aug 2010 17:23:35 +0000 (17:23 +0000)]
lex.c: Disable init_vectorized_lexer etc.
* lex.c [__sun__ && __svr4__]: Disable init_vectorized_lexer
etc. on Solaris 2/x86.
From-SVN: r163522
Richard Guenther [Tue, 24 Aug 2010 13:25:25 +0000 (13:25 +0000)]
re PR middle-end/45379 (~10% slowdown on test_fpu at revision 163278)
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
Mingjie Xing [Tue, 24 Aug 2010 03:22:07 +0000 (03:22 +0000)]
check loongson targets in vect.exp
From-SVN: r163495
GCC Administrator [Tue, 24 Aug 2010 00:17:23 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r163494
Anatoly Sokolov [Mon, 23 Aug 2010 19:34:15 +0000 (23:34 +0400)]
m32c.c (m32c_function_value_regno_p): Make static.
* config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
(m32c_override_options): Rename to...
(m32c_option_override): ...this. Make static.
(TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
* config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
Remove.
* config/m32c/m32c-protos.h (m32c_override_options,
m32c_function_value_regno_p): Remove.
From-SVN: r163488
Gerald Pfeifer [Mon, 23 Aug 2010 18:52:06 +0000 (18:52 +0000)]
gcc_release (snapshot_print): Also include an sha1 hash for every tarball.
* gcc_release (snapshot_print): Also include an sha1 hash for
every tarball. Slightly tweak indentation.
From-SVN: r163487
Changpeng Fang [Mon, 23 Aug 2010 18:50:22 +0000 (18:50 +0000)]
Fix a typo in the previous commit
* tree-ssa-loop-prefetch.c (gather_memory_references_ref): Fix a
typo ("could not taken" --> "could not be taken")
From-SVN: r163485
Mikael Morin [Mon, 23 Aug 2010 18:42:21 +0000 (18:42 +0000)]
re PR fortran/45380 (ICE in gfc_conv_intrinsic_any_all at -O{n>0})
2010-08-23 Mikael Morin <mikael@gcc.gnu.org>
PR fortran/45380
* frontend-passes.c (optimize_equality): Don't optimize array equality
From-SVN: r163484
Kai Tietz [Mon, 23 Aug 2010 18:08:47 +0000 (18:08 +0000)]
tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Pre-initialize innerloop_iters to one.
2010-08-23 Kai Tietz <kai.tietz@onevision.com>
* tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
Pre-initialize innerloop_iters to one.
From-SVN: r163477
Changpeng Fang [Mon, 23 Aug 2010 17:45:08 +0000 (17:45 +0000)]
pr45260 Don't generate prefetch if the address of base could not be taken.
* tree-flow.h (may_be_nonaddressable_p): New definition. Make the
existing static function global.
*tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
is changed to global.
*tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
may_be_nonaddressable_p on base, and don't collect this reference
if the address of the base could not be taken.
From-SVN: r163475
Michael Meissner [Mon, 23 Aug 2010 17:31:56 +0000 (17:31 +0000)]
Add missing file
From-SVN: r163473
Michael Meissner [Mon, 23 Aug 2010 16:47:01 +0000 (16:47 +0000)]
Update to use -mveclibabi=mass instead of -mmass
From-SVN: r163471
Michael Meissner [Mon, 23 Aug 2010 16:41:10 +0000 (16:41 +0000)]
Add -mveclibabi=mass
From-SVN: r163470
Tobias Burnus [Mon, 23 Aug 2010 12:39:20 +0000 (14:39 +0200)]
re PR libfortran/45323 (warnings compiling libgfortran/io/write.c: array subscript has type 'char')
2010-08-23 Tobias Burnus <burnus@net-b.de>
PR fortran/45323
* io/write.c (nml_write_obj, namelist_write): Cast argument
of toupper to int.
From-SVN: r163469
Janus Weil [Mon, 23 Aug 2010 12:26:42 +0000 (14:26 +0200)]
re PR fortran/45366 (Problem with procedure pointer dummy in PURE function)
2010-08-23 Janus Weil <janus@gcc.gnu.org>
PR fortran/45366
* resolve.c (resolve_procedure_interface): New function split off from
'resolve_symbol'.
(resolve_formal_arglist): Call it here ...
(resolve_symbol): ... and here.
2010-08-23 Janus Weil <janus@gcc.gnu.org>
PR fortran/45366
* gfortran.dg/proc_ptr_29.f90: New.
From-SVN: r163468
GCC Administrator [Mon, 23 Aug 2010 00:17:17 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r163465
John David Anglin [Sun, 22 Aug 2010 16:23:38 +0000 (16:23 +0000)]
re PR boehm-gc/34544 (pthread_default_stacksize_np failed.)
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
Tobias Burnus [Sun, 22 Aug 2010 14:05:26 +0000 (16:05 +0200)]
re PR fortran/45367 (FAIL: gfortran.dg/bessel_6.f90 and gfortran.dg/bessel_7.f90)
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
Joseph Myers [Sun, 22 Aug 2010 12:19:01 +0000 (13:19 +0100)]
Makefile.in (gccspec.o, cppspec.o): Update dependencies.
* 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
Tobias Burnus [Sun, 22 Aug 2010 10:24:49 +0000 (12:24 +0200)]
re PR fortran/45367 (FAIL: gfortran.dg/bessel_6.f90 and gfortran.dg/bessel_7.f90)
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 [Sun, 22 Aug 2010 10:09:34 +0000 (12:09 +0200)]
Really commit the following change:
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
Anatoly Sokolov [Sun, 22 Aug 2010 09:33:45 +0000 (13:33 +0400)]
mips.c (mips_override_options): Rename to...
* 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
Tobias Burnus [Sun, 22 Aug 2010 08:39:48 +0000 (10:39 +0200)]
re PR fortran/36158 (Transformational function BESSEL_YN(n1,n2,x) and BESSEL_JN missing)
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 [Sun, 22 Aug 2010 08:34:14 +0000 (10:34 +0200)]
re PR fortran/45367 (FAIL: gfortran.dg/bessel_6.f90 and gfortran.dg/bessel_7.f90)
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
GCC Administrator [Sun, 22 Aug 2010 00:17:35 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r163453
Olivier Hainque [Sat, 21 Aug 2010 20:54:18 +0000 (20:54 +0000)]
Fix formatting of recently added ChangeLog entry.
From-SVN: r163449
Olivier Hainque [Sat, 21 Aug 2010 20:53:16 +0000 (20:53 +0000)]
vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
* config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
From-SVN: r163448
Olivier Hainque [Sat, 21 Aug 2010 20:48:34 +0000 (20:48 +0000)]
vxworks.h: (PREFERRED_STACK_BOUNDARY...
* config/rs6000/vxworks.h: (PREFERRED_STACK_BOUNDARY,
ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
From-SVN: r163447
Richard Henderson [Sat, 21 Aug 2010 19:05:40 +0000 (12:05 -0700)]
Vectorize fast path of _cpp_clean_line.
* 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
Janus Weil [Sat, 21 Aug 2010 14:50:57 +0000 (16:50 +0200)]
re PR fortran/45271 ([OOP] Polymorphic code breaks when changing order of USE statements)
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
Eric Botcazou [Sat, 21 Aug 2010 13:25:33 +0000 (13:25 +0000)]
* tracebak.c: Fix typo in comment.
From-SVN: r163444
Jan Hubicka [Sat, 21 Aug 2010 12:36:19 +0000 (14:36 +0200)]
tree-pass.h (pass_ipa_cdtor_merge): New function.
* tree-pass.h (pass_ipa_cdtor_merge): New function.
* cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
heap allocated.
(record_cdtor_fn): Move to ipa.c; do not test for
have_ctors_dtors.
(build_cdtor): Move to ipa.c; add code avoiding construction
when target have ctors/dtors and there is only one ctor/dtor at given
priority.
(compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize sort;
reverse order of constructors.
(cgraph_build_cdtor_fns):Move to ipa.c; rename to build_cdtor_fns.
(cgraph_finalize_function): Do not call record_cdtor_fn.
(cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
(cgraph_build_static_cdtor): Move to ipa.c.
* ipa.c: Include target.h and tree-iterator.h.
(cgraph_build_static_cdtor, static_ctors, static_dtors,
record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
pass_ipa_cdtor_merge): New.
* passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
* ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of bounds access.
From-SVN: r163443
Jan Hubicka [Sat, 21 Aug 2010 12:24:41 +0000 (12:24 +0000)]
Fix previous commit.
From-SVN: r163442
Ralf Wildenhues [Sat, 21 Aug 2010 12:18:02 +0000 (12:18 +0000)]
Fix misquoting in stdint.m4.
config/:
PR target/45084
* stdint.m4 (GCC_HEADER_STDINT): Use m4 quotes for arguments
of AC_MSG_ERROR.
libdecnumber/:
* configure: Regenerate.
libgfortran/:
* configure: Regenerate.
libgomp/:
* configure: Regenerate.
libstdc++-v3/:
* configure: Regenerate.
From-SVN: r163441
Tobias Burnus [Sat, 21 Aug 2010 10:12:53 +0000 (12:12 +0200)]
re PR fortran/36158 (Transformational function BESSEL_YN(n1,n2,x) and BESSEL_JN missing)
2010-08-21 Tobias Burnus <burnus@net-b.de>
PR fortran/36158
PR fortran/33197
* intrinsic.c (add_sym): Init value attribute.
(set_attr_value): New function.
(add_functions) Use it and add JN/YN resolvers.
* symbol.c (gfc_copy_formal_args_intr): Copy value attr.
* intrinsic.h (gfc_resolve_bessel_n2): New prototype.
* gfortran.h (gfc_intrinsic_arg): Add value attribute.
* iresolve.c (gfc_resolve_bessel_n2): New function.
* trans-intrinsic.c (gfc_get_symbol_for_expr): Create
formal arg list.
(gfc_conv_intrinsic_function,gfc_is_intrinsic_libcall):
Add GFC_ISYM_JN2/GFC_ISYM_YN2 as case value.
* simplify.c (): For YN set to -INF if previous values
was -INF.
* trans-expr.c (gfc_conv_procedure_call): Don't crash
if sym->as is NULL.
* iresolve.c (gfc_resolve_extends_type_of): Set the
type of the dummy argument to the one of the actual.
2010-08-21 Tobias Burnus <burnus@net-b.de>
PR fortran/36158
PR fortran/33197
* m4/bessel.m4: Implement bessel_jn and bessel_yn.
* gfortran.map: Add the generated bessel_jn_r{4,8,10,16}
and bessel_yn_r{4,8,10,16}.
* Makefile.am: Add bessel.m4.
* Makefile.in: Regenerated.
* generated/bessel_r4.c: Generated.
* generated/bessel_r16.c: Generated.
* generated/bessel_r8.c: Generated.
* generated/bessel_r10.c: Generated.
2010-08-21 Tobias Burnus <burnus@net-b.de>
PR fortran/36158
PR fortran/33197
* gfortran.dg/bessel_6.f90: New.
* gfortran.dg/bessel_7.f90: New.
From-SVN: r163440
Jan Hubicka [Sat, 21 Aug 2010 09:46:15 +0000 (11:46 +0200)]
re PR middle-end/45307 (Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated)
PR c++/45307
PR c++/17736
* cgraph.h (cgraph_only_called_directly_p,
cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
static cdtors.
* cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
are not needed.
(cgraph_finalize_function): Static cdtors are reachable.
(cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
* gcc.dg/ipa/ctor-empty-1.c: Add testcase.
* g++.dg/tree-ssa/empty-2.C: Check that constructor got optimized out.
From-SVN: r163439
Jan Hubicka [Sat, 21 Aug 2010 08:13:27 +0000 (10:13 +0200)]
lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of flag_wpa.
* lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of flag_wpa.
* lto-streamer-out.c (lto_output): Likewise.
* passes.c (ipa_write_optimization_summaries): Initialize statement uids.
* lto.c (lto_1_to_1_map): Be prepared for node to have no file data.
(lto_wpa_write_files): Update comments.
From-SVN: r163438
GCC Administrator [Sat, 21 Aug 2010 00:16:55 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r163437
Maciej W. Rozycki [Fri, 20 Aug 2010 22:39:58 +0000 (22:39 +0000)]
pex-common.c (pex_read_err): Set stderr_pipe to -1 if a corresponding stream has been opened.
* pex-common.c (pex_read_err): Set stderr_pipe to -1 if a
corresponding stream has been opened.
(pex_free): Close pipe file descriptors corresponding to child's
stdout and stderr before waiting.
From-SVN: r163426
Olivier Hainque [Fri, 20 Aug 2010 22:08:41 +0000 (22:08 +0000)]
tree.h (alias_diag_flags): New enum.
* tree.h (alias_diag_flags): New enum.
(alias_pair): Add an 'emitted_diags' field.
* varasm.c (finish_aliases_1): Honor and update
* p->emitted_diags.
(assemble_alias): Initialize emitted_diags of new pairs.
From-SVN: r163425
Eric Botcazou [Fri, 20 Aug 2010 21:22:16 +0000 (21:22 +0000)]
aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
* config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
* config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
* config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
(STACK_CHECK_PROTECT): Define.
* config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
(output_probe_stack_range): Likewise.
(rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
builtin stack checking is enabled.
* config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
* config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
(probe_stack_range): New insn.
From-SVN: r163424
H.J. Lu [Fri, 20 Aug 2010 20:57:56 +0000 (20:57 +0000)]
Cast to unsigned short/char first for _mm_extract_epi16/_mm_extract_epi8.
gcc/
2010-08-20 H.J. Lu <hongjiu.lu@intel.com>
PR target/45336
* config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
short first.
* config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
char first.
gcc/testsuite/
2010-08-20 H.J. Lu <hongjiu.lu@intel.com>
PR target/45336
* gcc.target/i386/pr45336-1.c: New.
* gcc.target/i386/pr45336-2.c: Likewise.
* gcc.target/i386/pr45336-3.c: Likewise.
* gcc.target/i386/pr45336-4.c: Likewise.
From-SVN: r163421
Jakub Jelinek [Fri, 20 Aug 2010 20:54:25 +0000 (22:54 +0200)]
re PR target/45336 (pextr{b,w,d}, (worse than) redundant extensions)
PR target/45336
* config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
to cover zero extension into 64-bit register.
(*sse2_pextrw): Likewise.
(*sse4_1_pextrd_zext): New insn.
From-SVN: r163420
Iain Sandoe [Fri, 20 Aug 2010 20:10:42 +0000 (20:10 +0000)]
revert r163410, partially revert r163267.
* config/rs6000/darwin.h (LIB_SPEC): Remove.
* config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
Darwin versions.
From-SVN: r163419
Uros Bizjak [Fri, 20 Aug 2010 19:23:52 +0000 (21:23 +0200)]
re PR testsuite/45361 (gcc.target/i386/volatile-2.c failed)
PR testsuite/45361
* gcc.target/i386/volatile-2.c: Update scan strings to also
include (%rip) for the memory reference on x86_64.
From-SVN: r163416
Jakub Jelinek [Fri, 20 Aug 2010 18:49:46 +0000 (20:49 +0200)]
re PR middle-end/44974 (Function with attribute noreturn omits a call to another function with noreturn)
PR middle-end/44974
* builtins.c (expand_builtin): Don't optimize away
calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
* gcc.dg/pr44974.c: New test.
From-SVN: r163415
Uros Bizjak [Fri, 20 Aug 2010 18:40:56 +0000 (20:40 +0200)]
i386.md (ashift RSP splitter): Remove splitter.
* config/i386/i386.md (ashift RSP splitter): Remove splitter.
(pro_epilogue_adjust_stack_di_2): Use "l" constraint for
alternative 1 of operand 2.
From-SVN: r163414
Jakub Jelinek [Fri, 20 Aug 2010 18:08:10 +0000 (20:08 +0200)]
simplify-rtx.c (simplify_unary_operation_1): Optimize (sign_extend (zero_extend ()) and ({sign,zero}_extend (lshiftrt...
* simplify-rtx.c (simplify_unary_operation_1): Optimize
(sign_extend (zero_extend ()) and
({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
Co-Authored-By: Paolo Bonzini <bonzini@gnu.org>
From-SVN: r163413
Jakub Jelinek [Fri, 20 Aug 2010 18:07:12 +0000 (20:07 +0200)]
re PR rtl-optimization/45353 (ICE: RTL check: expected elt 3 type 'B', have '0' (rtx barrier) in sel_bb_head, at sel-sched-ir.c:4329 with -fselective-scheduling and __builtin_unreachable())
PR rtl-optimization/45353
* sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
after bb_note is a BARRIER.
* gcc.dg/pr45353.c: New test.
From-SVN: r163412
Iain Sandoe [Fri, 20 Aug 2010 16:12:14 +0000 (16:12 +0000)]
darwin.h (LIB_SPEC): New.
* config/rs6000/darwin.h (LIB_SPEC): New. Provide save/restFP by
linking libgcc.a.
From-SVN: r163410
Jakub Jelinek [Fri, 20 Aug 2010 15:56:14 +0000 (17:56 +0200)]
tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
* tree-ssa-address.c (tree_mem_ref_addr): Convert offset to
sizetype.
Co-Authored-By: Michael Matz <matz@suse.de>
From-SVN: r163409
Joseph Myers [Fri, 20 Aug 2010 15:27:29 +0000 (16:27 +0100)]
* lang.opt (MD, MMD): Use NoDriverArg instead of NoArgDriver.
From-SVN: r163408
Nathan Froyd [Fri, 20 Aug 2010 15:26:56 +0000 (15:26 +0000)]
ggc-common.c (ggc_mark_root_tab): New function, split out from...
* ggc-common.c (ggc_mark_root_tab): New function, split out from...
(ggc_mark_roots): ...here.
From-SVN: r163407
Joseph Myers [Fri, 20 Aug 2010 15:25:03 +0000 (16:25 +0100)]
gfortranspec.c (lang_specific_driver): Refer to -lgfortran in comment, not -lg2c.
* gfortranspec.c (lang_specific_driver): Refer to -lgfortran in
comment, not -lg2c.
From-SVN: r163406
H.J. Lu [Fri, 20 Aug 2010 14:42:28 +0000 (14:42 +0000)]
Replace has_analyzed_clone with has_analyzed_clone_p.
2010-08-20 H.J. Lu <hongjiu.lu@intel.com>
PR bootstrap/45357
* lto.c (lto_materialize_function): Replace has_analyzed_clone
with has_analyzed_clone_p.
From-SVN: r163405
Jan Hubicka [Fri, 20 Aug 2010 13:29:36 +0000 (15:29 +0200)]
lto.c (has_analyzed_clone_p): New function
* lto.c (has_analyzed_clone_p): New function
(lto_materialize_function): Use callgraph to determine if
body is needed.
(materialize_cgraph): Remove DECL_IS_BUILTIN check.
From-SVN: r163403
Nathan Sidwell [Fri, 20 Aug 2010 12:59:40 +0000 (12:59 +0000)]
missed from rest of commit
missed from rest of commit
* gimplify.c (gimplify_modify_expr): When assigning to volatiles,
copy the src value and return a copy.
* doc/extend.texi (Volatiles): Move from C++ to C and expand.
(C++ Volatiles): Adjust to describe C++ semantics only.
From-SVN: r163402
Nathan Froyd [Fri, 20 Aug 2010 12:48:59 +0000 (12:48 +0000)]
vec.h (FOR_EACH_VEC_ELT): Define.
gcc/
* vec.h (FOR_EACH_VEC_ELT): Define.
* c-decl.c: Use it.
* cfgloop.c: Likewise.
* cfgloopmanip.c: Likewise.
* cgraph.c: Likewise.
* cgraphunit.c: Likewise.
* combine.c: Likewise.
* config/bfin/bfin.c: Likewise.
* config/mips/mips.c: Likewise.
* config/rs6000/rs6000.c: Likewise.
* dbxout.c: Likewise.
* df-scan.c: Likewise.
* dominance.c: Likewise.
* dse.c: Likewise.
* dwarf2out.c: Likewise.
* except.c: Likewise.
* expr.c: Likewise.
* function.c: Likewise.
* gcse.c: Likewise.
* genattr.c: Likewise.
* ggc-common.c: Likewise.
* gimplify.c: Likewise.
* graphite-blocking.c: Likewise.
* graphite-clast-to-gimple.c: Likewise.
* graphite-dependences.c: Likewise.
* graphite-interchange.c: Likewise.
* graphite-poly.c: Likewise.
* graphite-scop-detection.c: Likewise.
* graphite-sese-to-poly.c: Likewise.
* graphite.c: Likewise.
* haifa-sched.c: Likewise.
* ifcvt.c: Likewise.
* implicit-zee.c: Likewise.
* ipa-prop.c: Likewise.
* ipa-struct-reorg.c: Likewise.
* ipa.c: Likewise.
* ira-build.c: Likewise.
* ira-color.c: Likewise.
* ira-emit.c: Likewise.
* lambda-code.c: Likewise.
* loop-invariant.c: Likewise.
* loop-unroll.c: Likewise.
* lower-subreg.c: Likewise.
* lto-cgraph.c: Likewise.
* lto-opts.c: Likewise.
* lto-streamer-in.c: Likewise.
* lto-streamer-out.c: Likewise.
* lto-streamer.c: Likewise.
* lto-symtab.c: Likewise.
* matrix-reorg.c: Likewise.
* opts.c: Likewise.
* predict.c: Likewise.
* print-tree.c: Likewise.
* sdbout.c: Likewise.
* sel-sched-dump.c: Likewise.
* sel-sched-ir.c: Likewise.
* sel-sched.c: Likewise.
* sese.c: Likewise.
* stor-layout.c: Likewise.
* tree-cfg.c: Likewise.
* tree-cfgcleanup.c: Likewise.
* tree-chrec.c: Likewise.
* tree-data-ref.c: Likewise.
* tree-emutls.c: Likewise.
* tree-inline.c: Likewise.
* tree-into-ssa.c: Likewise.
* tree-loop-distribution.c: Likewise.
* tree-loop-linear.c: Likewise.
* tree-mudflap.c: Likewise.
* tree-outof-ssa.c: Likewise.
* tree-parloops.c: Likewise.
* tree-predcom.c: Likewise.
* tree-pretty-print.c: Likewise.
* tree-scalar-evolution.c: Likewise.
* tree-ssa-live.c: Likewise.
* tree-ssa-loop-im.c: Likewise.
* tree-ssa-loop-ivcanon.c: Likewise.
* tree-ssa-loop-ivopts.c: Likewise.
* tree-ssa-loop-manip.c: Likewise.
* tree-ssa-loop-niter.c: Likewise.
* tree-ssa-loop-prefetch.c: Likewise.
* tree-ssa-phiprop.c: Likewise.
* tree-ssa-pre.c: Likewise.
* tree-ssa-reassoc.c: Likewise.
* tree-ssa-sccvn.c: Likewise.
* tree-ssa-structalias.c: Likewise.
* tree-ssa.c: Likewise.
* tree-vect-data-refs.c: Likewise.
* tree-vect-loop-manip.c: Likewise.
* tree-vect-loop.c: Likewise.
* tree-vect-patterns.c: Likewise.
* tree-vect-slp.c: Likewise.
* tree-vect-stmts.c: Likewise.
* tree-vrp.c: Likewise.
* tree.c: Likewise.
* value-prof.c: Likewise.
* var-tracking.c: Likewise.
* varasm.c: Likewise.
* vmsdbgout.c: Likewise.
gcc/ada/
* gcc-interface/decl.c: Use FOR_EACH_VEC_ELT.
* gcc-interface/trans.c: Likewise.
* gcc-interface/utils.c: Likewise.
gcc/c-family/
* c-common.c: Use FOR_EACH_VEC_ELT.
* c-gimplify.c: Likewise.
* c-pragma.c: Likewise.
gcc/cp/
* call.c: Use FOR_EACH_VEC_ELT.
* class.c: Likewise.
* decl.c: Likewise.
* decl2.c: Likewise.
* error.c: Likewise.
* except.c: Likewise.
* mangle.c: Likewise.
* method.c: Likewise.
* name-lookup.c: Likewise.
* parser.c: Likewise.
* pt.c: Likewise.
* repo.c: Likewise.
* semantics.c: Likewise.
* typeck2.c: Likewise.
gcc/fortran/
* trans-openmp.c: Use FOR_EACH_VEC_ELT.
gcc/java/
* class.c: Use FOR_EACH_VEC_ELT.
* expr.c: Likewise.
* jcf-parse.c: Likewise.
* resource.c: Likewise.
gcc/lto/
* lto.c: Use FOR_EACH_VEC_ELT.
From-SVN: r163401
Nathan Sidwell [Fri, 20 Aug 2010 12:22:11 +0000 (12:22 +0000)]
gimplify.c (gimplify_modify_expr): When assigning to volatiles, copy the src value and return a copy.
gcc/
* gimplify.c (gimplify_modify_expr): When assigning to volatiles,
copy the src value and return a copy.
* doc/extend.texi (Volatiles): Move from C++ to C and expand.
(C++ Volatiles): Adjust to describe C++ semantics only.
gcc/testsuite/
* gcc.target/i386/volatile-2.c: New.
From-SVN: r163400
Joseph Myers [Fri, 20 Aug 2010 11:14:38 +0000 (12:14 +0100)]
tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to be zero or nonzero.
2010-08-20 Joseph Myers <joseph@codesourcery.com>
gcc/
* doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
be zero or nonzero.
* doc/tm.texi: Regenerate.
* defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
* df-scan.c (df_get_exit_block_use_set), reginfo.c
(init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
* config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
to 1.
From-SVN: r163399
Andrey Belevantsev [Fri, 20 Aug 2010 08:07:17 +0000 (12:07 +0400)]
re PR rtl-optimization/44691 (ICE: RTL check: expected code 'reg', have 'plus' in rhs_regno, at rtl.h:1050)
PR rtl-optimization/44691
* gfortran.dg/pr44691.f: New test.
From-SVN: r163396
Olivier Hainque [Fri, 20 Aug 2010 08:03:41 +0000 (08:03 +0000)]
sparc.c (sparc_asm_function_epilogue): Don't output an extra nop past a sibling call at the very end.
* config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
an extra nop past a sibling call at the very end.
testsuite/
* gcc.target/sparc/sibcall-dslot.c: New testcase.
From-SVN: r163395
Uros Bizjak [Fri, 20 Aug 2010 07:14:00 +0000 (09:14 +0200)]
pass41-frag.cxx (dg-prune-output): New dg directive.
* testsuite/libmudflap.c++/pass41-frag.cxx (dg-prune-output):
New dg directive.
From-SVN: r163394
GCC Administrator [Fri, 20 Aug 2010 00:17:15 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r163393
Bernd Schmidt [Thu, 19 Aug 2010 23:34:07 +0000 (23:34 +0000)]
re PR bootstrap/45350 (Failed to bootstrap on Linux/ia64)
PR bootstrap/45350
* combine.c (try_combine): Initialize i1_is_used and i2_is_used. Fix
a comment.
From-SVN: r163389
Jerry DeLisle [Thu, 19 Aug 2010 20:28:09 +0000 (20:28 +0000)]
re PR fortran/45108 (Namelist read: Not aborted when reading from STDIN)
2010-08-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/45108
* io/list_read.c (namelist_read): If namelist reading fails, use
generate_error and then continue the read loop.
From-SVN: r163387
Nathan Froyd [Thu, 19 Aug 2010 20:12:33 +0000 (20:12 +0000)]
target.def (function_arg, [...]): Remove const qualifier on CUMULATIVE_ARGS parameter.
* target.def (function_arg, function_incoming_arg): Remove const
qualifier on CUMULATIVE_ARGS parameter.
* targhooks.h (default_function_arg, default_function_incoming_arg):
Likewise.
* targhooks.c (default_function_arg, default_function_incoming_arg):
Likewise.
* config/i386/i386.c (ix86_function_arg): Likewise.
From-SVN: r163386
Jakub Jelinek [Thu, 19 Aug 2010 17:43:50 +0000 (19:43 +0200)]
re PR target/45336 (pextr{b,w,d}, (worse than) redundant extensions)
PR target/45336
* simplify-rtx.c (simplify_unary_operation_1): Optimize nested
SIGN_EXTENDs or ZERO_EXTENDs.
From-SVN: r163384
Bernd Schmidt [Thu, 19 Aug 2010 17:31:57 +0000 (17:31 +0000)]
re PR tree-optimization/42172 (inefficient bit fields assignments)
PR target/42172
* combine.c (combine_validate_cost): New arg I0. All callers changed.
Take its cost into account if nonnull.
(insn_a_feeds_b): New static function.
(combine_instructions): Look for four-insn combinations.
(can_combine_p): New args PRED2, SUCC2. All callers changed. Take
them into account when computing all_adjacent and looking for other
uses.
(combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC. All callers
changed. Treat them like I1DEST and I1_NOT_IN_SRC.
(try_combine): New arg I0. Handle four-insn combinations.
(distribute_notes): New arg ELIM_I0. All callers changed. Treat it
like ELIM_I1.
From-SVN: r163383
Jason Merrill [Thu, 19 Aug 2010 17:24:19 +0000 (13:24 -0400)]
call.c (reference_related_p): Check for error_mark_node.
* call.c (reference_related_p): Check for error_mark_node.
(add_function_candidate): Check it instead of
same_type_ignoring_top_level_qualifiers_p.
From-SVN: r163382
Jason Merrill [Thu, 19 Aug 2010 17:01:01 +0000 (13:01 -0400)]
re PR c++/45315 (ICE: tree check: expected aggr_init_expr, have call_expr in build_value_init, at cp/init.c:317)
PR c++/45315
* init.c (build_new_1): Don't use build_value_init in a template.
(build_value_init): Make sure we don't.
From-SVN: r163381
Jason Merrill [Thu, 19 Aug 2010 17:00:51 +0000 (13:00 -0400)]
re PR middle-end/45307 (Stores expanding to no RTL not removed by tree optimizers, Empty ctors/dtors not eliminated)
PR c++/45307
* gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
if ctor is empty.
(gimplify_modify_expr_rhs): Adjust.
From-SVN: r163380
Jason Merrill [Thu, 19 Aug 2010 16:59:37 +0000 (12:59 -0400)]
except.c (pending_noexcept, [...]): New.
* except.c (pending_noexcept, pending_noexcept_checks): New.
(perform_deferred_noexcept_checks): New.
(maybe_noexcept_warning): Split from...
(finish_noexcept_expr): ...here. Adjust.
* decl2.c (cp_write_global_declarations): Call
perform_deferred_noexcept_checks.
* cp-tree.h: And declare it.
From-SVN: r163379
Nathan Froyd [Thu, 19 Aug 2010 16:51:39 +0000 (16:51 +0000)]
cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to bitmap_bit_p.
* cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
bitmap_bit_p.
* config/bfin/bifn.c (bfin_discover_loop): Likewise.
* dominance.c (iterate_fix_dominators): Likewise.
* dse.c (set_usage_bits): Likewise.
(set_position_unneeded, record_store): Likewise.
* gimple-fold.c (get_maxval_strlen): Likewise.
* haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
* ipa-inline.c (update_caller_keys): Likewise.
* ipa-split.c (verify_non_ssa_vars): Likewise.
* ipa-type-escape.c (mark_type, close_type_seen): Likewise.
(close_type_exposed_parameter, close_type_full_escape): Likewise.
(close_addressof_down): Likewise.
* ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
(setup_allocno_left_conflicts_size): Likewise.
(ira_reassign_conflict_allocnos): Likewise.
(ira_reassign_pseudos): Likewise.
* ira-emit.c (change_loop): Likewise.
* loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
* lto-streamer-out.c (write_symbol): Likewise.
* predict.c (expr_expected_value_1): Likewise.
* regstat.c (regstat_bb_compute_ri): Likewise.
* sel-sched.c (create_block_for_bookkeeping): Likewise.
(track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
* stmt.c (expand_case): Likewise.
* tree-eh.c (emit_eh_dispatch): Likewise.
* tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
* tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
Likewise.
(rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
(rdg_build_components): Likewise.
* tree-object-size.c (collect_object_sizes_for): Likewise.
* tree-sra.c (convert_callers): Likewise.
* tree-ssa-coalesce.c (live_track_add_partition): Likewise.
* tree-ssa-live.c (mark_all_vars_used_1): Likewise.
* tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
From-SVN: r163378
Daniel Kraft [Thu, 19 Aug 2010 16:02:30 +0000 (18:02 +0200)]
re PR fortran/29785 (Fortran 2003: POINTER Rank Remapping)
2010-08-19 Daniel Kraft <d@domob.eu>
PR fortran/29785
PR fortran/45016
* trans.h (struct gfc_se): New flag `byref_noassign'.
* trans-array.h (gfc_conv_shift_descriptor_lbound): New method.
(gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
* expr.c (gfc_check_pointer_assign): Allow bounds and rank remapping
and check for compile-time errors with those.
* trans-decl.c (trans_associate_var): Use new routine
`gfc_conv_shift_descriptor_lbound' instead of doing it manually.
* trans-array.c (gfc_conv_shift_descriptor_lbound): New method.
(gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
(gfc_array_init_size): Use new `gfc_conv_array_extent_dim'.
(gfc_conv_expr_descriptor): Handle new flag `byref_noassign'.
* trans-expr.c (gfc_trans_pointer_assignment): Handle bounds and
rank remapping for assignment.
2010-08-19 Daniel Kraft <d@domob.eu>
PR fortran/29785
PR fortran/45016
* gfortran.dg/pointer_assign_5.f90: Remove 'not implemented' error.
* gfortran.dg/pointer_remapping_1.f90: New test.
* gfortran.dg/pointer_remapping_2.f03: New test.
* gfortran.dg/pointer_remapping_3.f08: New test.
* gfortran.dg/pointer_remapping_4.f03: New test.
* gfortran.dg/pointer_remapping_5.f08: New test.
* gfortran.dg/pointer_remapping_6.f08: New test.
From-SVN: r163377
Uros Bizjak [Thu, 19 Aug 2010 15:55:01 +0000 (17:55 +0200)]
i386.md (*lea_1): Use P mode iterator.
2010-08-19 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*lea_1): Use P mode iterator.
(lea add splitter): Also handle DImode operands.
(DImode lea add splitter): Use x86_64_immediate_operand for operand 2
predicate. Do not use ix86_lea_for_add_ok.
(zext DImode lea add splitter): Use ix86_lea_for_add_ok.
(lea ashift splitter): Also handle DImode operands.
(DImode lea ashift splitter): Remove splitter.
2010-08-19 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
ix86_binary_operator_ok.
From-SVN: r163375
Uros Bizjak [Thu, 19 Aug 2010 14:18:18 +0000 (16:18 +0200)]
Also scan movb.
2010-08-19 Uros Bizjak <ubizjak@gmail.com>
PR testsuite/45324
* gcc.target/i386/volatile-bitfields-1.c: Also scan movb.
From-SVN: r163372
Ramana Radhakrishnan [Thu, 19 Aug 2010 10:23:50 +0000 (10:23 +0000)]
vect-1.c (foo): Fix last commit.
2010-08-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* gcc.dg/vect/vect-1.c (foo): Fix last commit.
From-SVN: r163370
Andrey Belevantsev [Thu, 19 Aug 2010 10:03:39 +0000 (14:03 +0400)]
re PR rtl-optimization/44691 (ICE: RTL check: expected code 'reg', have 'plus' in rhs_regno, at rtl.h:1050)
PR rtl-optimization/44691
* sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
is not a register.
From-SVN: r163369
Tejas Belagod [Thu, 19 Aug 2010 08:30:59 +0000 (09:30 +0100)]
For Tejas Belagod
2010-08-19 Tejas Belagod <tejas.belagod@arm.com>
* gcc.dg/vect/vect-1.c (foo): Change inner loop index
variable.
From-SVN: r163368
Ian Bolton [Thu, 19 Aug 2010 08:27:59 +0000 (08:27 +0000)]
For Ian Bolton <ian.bolton@arm.com>
2010-08-19 Ian Bolton <ian.bolton@arm.com>
PR target/45070
* gcc.c-torture/execute/pr45070.c: New.
* config/arm/arm.c (arm_output_epilogue): Ensure that return
value of size 1-3 is handled correctly.
From-SVN: r163367
Ian Bolton [Thu, 19 Aug 2010 08:12:31 +0000 (08:12 +0000)]
For Ian Bolton <ian.bolton@arm.com>
* tree-switch-conversion.c (gen_inbound_check): Ensure that the
type for the conditional has wide enough range.
* testsuite/g++.dg/pr44328.C: New test.
From-SVN: r163366
Tobias Burnus [Thu, 19 Aug 2010 07:34:05 +0000 (09:34 +0200)]
intrinsic.texi (Bessel_jn, Bessel_yn): Fix typo.
2010-08-19 Tobias Burnus <burnus@net-b.de>
* intrinsic.texi (Bessel_jn, Bessel_yn): Fix typo.
* * simplify.c (gfc_simplify_bessel_yn): Change recursive
into recurrence.
From-SVN: r163365
Tobias Burnus [Thu, 19 Aug 2010 07:28:17 +0000 (09:28 +0200)]
re PR fortran/36158 (Transformational function BESSEL_YN(n1,n2,x) and BESSEL_JN missing)
2010-08-19 Tobias Burnus <burnus@net-b.de>
PR fortran/36158
PR fortran/33197
* check.c (gfc_check_bessel_n2): New function.
* gfortran.h (gfc_isym_id): Add GFC_ISYM_JN2 and GFC_ISYM_YN2.
* intrinsic.c (add_functions): Add transformational version
of the Bessel_jn/yn intrinsics.
* intrinsic.h (gfc_check_bessel_n2,gfc_simplify_bessel_jn2,
gfc_simplify_bessel_yn2): New prototypes.
* intrinsic.texi (Bessel_jn, Bessel_yn): Document
transformational variant.
* simplify.c (gfc_simplify_bessel_jn, gfc_simplify_bessel_yn):
Check for negative order.
(gfc_simplify_bessel_n2,gfc_simplify_bessel_jn2,
gfc_simplify_bessel_yn2): New functions.
2010-08-19 Tobias Burnus <burnus@net-b.de>
PR fortran/36158
PR fortran/33197
* gfortran.dg/bessel_3.f90: New.
* gfortran.dg/bessel_4.f90: New.
* gfortran.dg/bessel_5.f90: New.
From-SVN: r163364
Jerry DeLisle [Thu, 19 Aug 2010 02:35:45 +0000 (02:35 +0000)]
re PR fortran/41859 (ICE on invalid expression involving DT with pointer components in I/O)
2010-08-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/41859
* resolve.c (resolve_transfer): Traverse operands and set expression
to be checked to a non EXPR_OP type.
From-SVN: r163363
GCC Administrator [Thu, 19 Aug 2010 00:16:55 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r163362
Uros Bizjak [Wed, 18 Aug 2010 22:37:03 +0000 (00:37 +0200)]
re PR target/45327 (ICE: SIGSEGV in rtx_equal_p (rtl.c:496) with -O1 -funroll-loops -fnon-call-exceptions)
PR target/45327
* config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
ix86_binary_operator_ok.
From-SVN: r163357
Janus Weil [Wed, 18 Aug 2010 22:32:22 +0000 (00:32 +0200)]
re PR fortran/45290 ([F08] pointer initialization)
2010-08-19 Janus Weil <janus@gcc.gnu.org>
PR fortran/45290
* gfortran.h (gfc_add_save): Modified prototype.
* decl.c (add_init_expr_to_sym): Defer checking of proc pointer init.
(match_pointer_init): New function to match F08 pointer initialization.
(variable_decl,match_procedure_decl,match_ppc_decl): Use
'match_pointer_init'.
(match_attr_spec): Module variables are implicitly SAVE.
(gfc_match_save): Modified call to 'gfc_add_save'.
* expr.c (gfc_check_assign_symbol): Extra checks for pointer
initialization.
* primary.c (gfc_variable_attr): Handle SAVE attribute.
* resolve.c (resolve_structure_cons): Add new argument and do pointer
initialization checks.
(gfc_resolve_expr): Modified call to 'resolve_structure_cons'.
(resolve_values): Call 'resolve_structure_cons' directly with init arg.
(resolve_fl_variable): Handle SAVE_IMPLICIT.
* symbol.c (gfc_add_save,gfc_copy_attr,save_symbol): Handle
SAVE_IMPLICIT.
* trans-decl.c (gfc_create_module_variable): Module variables with
TARGET can already exist.
* trans-expr.c (gfc_conv_variable): Check for 'current_function_decl'.
(gfc_conv_initializer): Implement non-NULL pointer
initialization.
2010-08-19 Janus Weil <janus@gcc.gnu.org>
PR fortran/45290
* gfortran.dg/proc_ptr_comp_3.f90: Modified.
* gfortran.dg/pointer_init_2.f90: New.
* gfortran.dg/pointer_init_3.f90: New.
* gfortran.dg/pointer_init_4.f90: New.
From-SVN: r163356
Eric Botcazou [Wed, 18 Aug 2010 21:07:29 +0000 (21:07 +0000)]
* tracebak.c (i386): Use GCC unwinder on Linux with GCC > 4.5.
From-SVN: r163352
Uros Bizjak [Wed, 18 Aug 2010 19:24:41 +0000 (21:24 +0200)]
i386.md (*add<mode>_1): Split insn to lea.
* config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
<default>: Swap operands 1 and 2 for alternative 2 to use existing
code to output insn mnemonic. Fix comment.
(*addsi_1_zext): Add r-r-0 alternative 1.
<TYPE_LEA>: Split insn to lea.
<default>: Handle alternative 1.
(*addhi_1_lea): Add r-r-0 alternative 2. Use cond RTX instead of
multi-level if_then_else RTX to set "type" attribute.
<default>: Handle alternative 2.
(*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
Use cond RTX instead of multi-level if_then_else RTX to set
"type" attribute.
<default>: Handle alternatives 2 and 4.
(lea splitters): Update calls to ix86_lea_for_add_ok.
* config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
argument.
* config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
From-SVN: r163351
Tobias Burnus [Wed, 18 Aug 2010 18:05:58 +0000 (20:05 +0200)]
re PR fortran/45295 (intrinsic.texi: SELECTED_CHAR_KIND should mention wide-char support)
2010-08-18 Tobias Burnus <burnus@net-b.de>
PR fortran/45295
* intrinsic.texi (selected_char_kind): Document ISO_10646
support.
From-SVN: r163347
Nathan Froyd [Wed, 18 Aug 2010 16:05:40 +0000 (16:05 +0000)]
re PR c++/45049 (ICE: tree check: expected tree that contains 'decl minimal' structure, have 'tree_list' in push_overloaded_decl, at cp/name-lookup.c:2160)
gcc/cp/
PR c++/45049
* name-lookup.c (push_overloaded_decl): Change DECL_CHAIN to
TREE_CHAIN.
gcc/testsuite/
PR c++/45049
* g++.dg/pr45049-1.C: New test.
* g++.dg/pr45049-2.C: New test.
From-SVN: r163344