re PR tree-optimization/33302 (dead-store not eliminated)
2007-09-06 Richard Guenther <rguenther@suse.de>
PR tree-optimization/33302
* tree-ssa-dse.c (tree_ssa_dse): Connect infinite loops
to the exit block before doing the post-dominator walk.
* domwalk.c (walk_dominator_tree): The exit block is
interesting even if it is not reachable.
Jason Merrill [Thu, 6 Sep 2007 01:24:59 +0000 (21:24 -0400)]
re PR c++/15097 (code generator problem with ::delete and multiple inheritance and virtual deconstructs)
PR c++/15097
* init.c (build_delete): Use build_headof to get the address of the
complete object if we aren't using the deleting destructor.
* rtti.c (build_headof): No longer static.
* cp-tree.h: Declare it.
Jerry DeLisle [Thu, 6 Sep 2007 01:20:02 +0000 (01:20 +0000)]
re PR libfortran/33253 (namelist: reading back a string with apostrophe)
2007-09-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/33253
* io/write.c (nml_write_obj): Set the delimiter correctly before calling
write_character. (namelist_write): Clean up the code a little and add
comments to clarify what its doing.
Jakub Jelinek [Wed, 5 Sep 2007 20:45:27 +0000 (22:45 +0200)]
builtins.def (BUILT_IN_VA_ARG_PACK): New built-in.
* builtins.def (BUILT_IN_VA_ARG_PACK): New built-in.
* tree.h (CALL_EXPR_VA_ARG_PACK): Define.
* tree-inline.h (copy_body_data): Add call_expr field.
* tree-inline.c (expand_call_inline): Initialize call_expr.
(copy_bb): Append anonymous inline fn arguments to arguments
when inlining a CALL_EXPR_VA_ARG_PACK call.
* builtins.c (expand_builtin): Issue an error if
BUILT_IN_VA_ARG_PACK is seen during expand.
(fold_call_expr, fold_builtin_call_array): Don't fold
CALL_EXPR_VA_ARG_PACK CALL_EXPRs or calls with
__builtin_va_arg_pack () call as last argument.
* gimplify.c (gimplify_call_expr): If last argument to a vararg
function is __builtin_va_arg_pack (), decrease number of call
arguments and instead set CALL_EXPR_VA_ARG_PACK on the CALL_EXPR.
* expr.c (expand_expr_real_1): Issue an error if
CALL_EXPR_VA_ARG_PACK CALL_EXPR is seen during expand.
* tree-pretty-print.c (dump_generic_node): Handle printing
CALL_EXPR_VA_ARG_PACK bit on CALL_EXPRs.
* doc/extend.texi (__builtin_va_arg_pack): Document.
* gcc.c-torture/execute/va-arg-pack-1.c: New test.
* gcc.dg/va-arg-pack-1.c: New test.
Adam Nemet [Wed, 5 Sep 2007 19:56:39 +0000 (19:56 +0000)]
builtin-expect-1.c: New test.
* gcc.dg/tree-ssa/builtin-expect-1.c: New test.
* gcc.dg/tree-ssa/builtin-expect-2.c: New test.
* gcc.dg/tree-ssa/builtin-expect-3.c: New test.
* gcc.dg/tree-ssa/builtin-expect-4.c: New test.
* gcc.dg/tree-ssa/builtin-expect-5.c: New test.
Paolo Carlini [Wed, 5 Sep 2007 19:10:48 +0000 (19:10 +0000)]
re PR c++/30302 (ICE with invalid member in anonymous struct)
/cp
2007-09-03 Paolo Carlini <pcarlini@suse.de>
PR c++/30302
* semantics.c (finish_id_expression): Check that path != NULL_TREE
before using TYPE_BINFO on it.
* class.c (finish_struct_anon): Deal correctly with anonymous
structs (vs unions, as GNU extension) in error messages.
/testsuite
2007-09-03 Paolo Carlini <pcarlini@suse.de>
* gcc/config/i386/cpuid.h: New file.
* gcc/config/i386/driver-i386.c: Include cpuid.h.
(describe_cache): Shrink size and line strings to 100 bytes.
(detect_caches_amd): Return "" for unsupported max_ext_level.
Use __cpuid function.
(detect_caches_intel): Return "" for unsupported max_level.
Use __cpuid function.
(host_detect_local_cpu): Change feature flag variables to
unsigned int. Initialize only extended feature flag variables.
Use __get_cpuid_max to determine max supported cpuid level.
Use __cpuid function to determine supported features. Fix
calculation of family id. Remove is_amd and check signature
directly. Check for Geode signature. Handle family 4 id.
[PROCESSOR_GENERIC32]: New default for unknown family id. Move
cpu discovery code to other part of the function.
[PROCESSOR_PENTIUM, PROCESSOR_K6, PROCESSOR_ATHLON]: Do not tune
for sub-architecture.
[PROCESSOR_PENTIUMPRO]: Simplify cpu discovery code.
[PROCESSOR_K8]: Add k8-sse3 architecture.
[PROCESSOR_GENERIC64]: Remove.
* gcc/config/i386/x-i386 (driver-i386.o): Depend on cpuid.h.
* gcc/config/i386/crtfastmath.c: Include cpuid.h. Use __get_cpuid
to check for SSE and FXSAVE support.
* gcc/config/i386/t-crtfm (crtfastmath.o): Depend on cpuid.h.
Add -minline-all-stringops.
* gcc/config.gcc (i[34567]86-*-*): Add cpuid.h to extra_headers.
(x86_64-*-*): Ditto.
testsuite/ChangeLog:
* gcc.dg/i386-cpuid.h: Remove.
* gcc.target/i386/mmx-check.h: Include cpuid.h. Use __get_cpuid.
* gcc.target/i386/sse-check.h: Ditto.
* gcc.target/i386/sse2-check.h: Ditto.
* gcc.target/i386/sse3-check.h: Ditto.
* gcc.target/i386/ssse3-check.h: Ditto.
* gcc.target/i386/sse4_1-check.h: Ditto.
* gcc.target/i386/sse4_2-check.h: Ditto.
* gcc.target/i386/sse4a-check.h: Ditto.
* gcc.dg/torture/pr16104-1.c: Ditto.
* gcc.target/i386/mmx-4.c: Do not use NOINLINE.
* gcc.target/i386/sse-6.c: Ditto.
* gcc.target/i386/sse-7.c: Ditto.
* g++.dg/other/i386-1.C: Include cpuid.h.
(main): New function. Use __get_cpuid to check target fetaures.
libgomp/ChangeLog:
* testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
(main): Use __get_cpuid to get i386 target fetaures.
* testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
(main): Use __get_cpuid to get x86_64 target fetaures.
* Makefile.in (stmt.o): Add alloc-pool.h dependency.
* stmt.c: Include alloc-pool.h.
(struct case_node): Remove GTY marker.
(add_case_node): New parameter case_node_pool. Use it for
allocation of r.
(expand_case): New allocation pool case_node_pool. Initialize it,
pass to add_case_node and free it.
gcc/
* config/mips/mips.c (mips_legitimize_tls_address): Call sorry
if we encounter TLS address in MIPS16 mode.
(mips_legitimize_const_move): Check cannot_force_const_mem for
the (const (plus symbol offset)) case; this forces invalid TLS
address in MIPS16 mode to be caught by the above call to sorry.
(override_options): Don't reset targetm.have_tls in MIPS16 mode,
because that now enables emutls, which is not ABI compatible
with native TLS in non-MIPS16 mode.
configure.ac (--enable-stage1-checking): If neither --enable-checking nor --disable-checking is provided also turn on...
2007-09-05 Richard Guenther <rguenther@suse.de>
* configure.ac (--enable-stage1-checking): If neither --enable-checking
nor --disable-checking is provided also turn on yes and types
checking for stage1.
* configure: Re-generate.
Paul Thomas [Wed, 5 Sep 2007 13:34:25 +0000 (13:34 +0000)]
re PR fortran/31564 (Error: Type/rank mismatch in argument)
2007-09-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31564
* primary.c (gfc_match_rvalue): Make expressions that refer
to derived type parameters that have array references into
variable expressions. Remove references to use association
from the symbol.
PR fortran/33241
* decl.c (add_init_expr_to_sym): Provide assumed character
length parameters with the length of the initialization
expression, if a constant, or that of the first element of
an array.
2007-09-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31564
* gfortran.dg/derived_comp_array_ref_2.f90: New test.
PR fortran/33241
* gfortran.dg/char_length_10.f90: New test.
Jan Hubicka [Wed, 5 Sep 2007 10:51:34 +0000 (12:51 +0200)]
optabs.c (libfunc_entry): Change optab to integer.
* optabs.c (libfunc_entry): Change optab to integer.
(hash_libfunc, convert_optab_libfunc, optab_libfunc,
set_optab_libfunc, set_conv_libfunc): Use optable indexes instead
of pointers for hashing.
Paolo Carlini [Wed, 5 Sep 2007 09:31:54 +0000 (09:31 +0000)]
PR c++/29731 (again)
/cp
2007-09-05 Paolo Carlini <pcarlini@suse.de>
PR c++/29731 (again)
* parser.c (cp_parser_primary_expression): Return error_mark_node
when a statement-expression is found in a template-argument list.
/testsuite
2007-09-05 Paolo Carlini <pcarlini@suse.de>
Andrew Pinski [Wed, 5 Sep 2007 01:36:09 +0000 (01:36 +0000)]
config.gcc (powerpc*-*-*): Install spu2vmx.h, vec_types.h, and si2vmx.h headers.
2007-09-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
* config.gcc (powerpc*-*-*): Install
spu2vmx.h, vec_types.h, and si2vmx.h headers.
* config/rs6000/spu2vmx.h: New header.
* config/rs6000/si2vmx.h: New header.
* config/rs6000/vec_types.h: New header.
2007-09-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
Ben Elliston [Wed, 5 Sep 2007 01:22:05 +0000 (01:22 +0000)]
ppu_intrinsics.h (__ldarx): Use `Z' constraint, not `m' for *ptrp.
* config/rs6000/ppu_intrinsics.h (__ldarx): Use `Z' constraint,
not `m' for *ptrp.
(__stdcx): Make asm volatile.
(__stwcx, __stdcx): Return only 0 or 1.
Jerry DeLisle [Wed, 5 Sep 2007 00:51:18 +0000 (00:51 +0000)]
re PR libfortran/33225 (Missing last digit in some formatted output (on 32bit targets), per kind write_float)
2007-03-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/33225
* io/write.c (stdbool.h): Add include. (sign_t): Move typedef to
new file write_float.def. Include write_float.def.
(extract_real): Delete. (calculate_sign): Delete.
(calculate_exp): Delete. (calculate_G_format): Delete.
(output_float): Delete. (write_float): Delete.
* io/write_float.def (calculate_sign): Added.
(output_float): Refactored to be independent of kind and added to this
file for inclusion. (write_infnan): New function to write "Infinite" or
"NaN" depending on flags passed, independent of kind.
(CALCULATE_EXP): New macro to build kind specific functions. Use it.
(OUTPUT_FLOAT_FMT_G): New macro, likewise. Use it.
(DTOA, DTOAL): Macros to implement "decimal to ascii".
(WRITE_FLOAT): New macro for kind specific write_float functions.
(write_float): Revised function to determine kind and use WRITE_FLOAT
to implement kind specific output.
2007-09-04 Richard Guenther <rguenther@suse.de>
* tree-ssa-operands.c (add_virtual_operand): Only mark
stores as has_volatile_ops if alias information is not available.
Jakub Jelinek [Tue, 4 Sep 2007 23:31:11 +0000 (01:31 +0200)]
re PR rtl-optimization/32300 (ICE with -O2 -fsee)
PR rtl-optimization/32300
* see.c (see_copy_insn): New function.
(see_def_extension_not_merged, see_merge_one_use_extension,
see_merge_one_def_extension): Use it. Avoid changing
PREV_INSN/NEXT_INSN chains directly, insted emit insns
into sequences. Call df_insn_delete on temporary insns
that won't be emitted into the insn stream.
(rest_of_handle_see): Turn off DF_DEFER_INSN_RESCAN
and run df_process_deferred_rescans () before run_fast_dce.
* c-format.c: Include alloc-pool.h.
(check_format_info_main): New argument fwt_alloc. Use allocation
pool instead of GC. Remove GC deallocation code.
(check_format_arg): Create allocation pool, pass it to
check_format_info_main and free it afterwards.
* Makefile.in (c-format.o): Add alloc-pool.h dependency.
* configure.ac (LIBSTDCXXSPEC): New.
* configure.host: Add arm*-linux* to pthread test.
* configure.ac (LIBGCJTESTSPEC): Add path to libstdc++ for ARM
EABI.
* testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Use
-fexceptions for ARM EABI.
* testsuite/lib/libjava.exp (libjava_arguments): Add libgcj-test.spec.
(libjava_invoke): Log the invocation.
2007-08-15 Andrew Haley <aph@redhat.com>
* configure.ac (extra_ldflags): Define.
* Makefile.am: Use extra_ldflags for all executables.
2007-08-14 Andrew Haley <aph@redhat.com>
* sysdep/arm/backtrace.h: Remove stubs for _Unwind_GetIPInfo,
_Unwind_GetRegionStart, and _Unwind_Backtrace.
2007-07-27 Andrew Haley <aph@redhat.com>
* gnu/classpath/natVMStackWalker.cc (GET_CALLING_CLASS): Stub for
ARM EABI.
* exception.cc (get_exception_header_from_ue): New.
(get_ttype_entry): ARM EABI version.
(PERSONALITY_FUNCTION): Add ARM EABI code.
* sysdep/arm/backtrace.h: New file.
* stacktrace.cc (_URC_NORMAL_STOP): New.
* configure.ac (extra_ldflags_libjava): Add libsupc++.la for ARM
EABI.
* configure.host (BACKTRACESPEC): Add arm/backtrace.h.
* configure.ac (LIBSTDCXXSPEC): New.
* configure.host: Add arm*-linux* to pthread test.
* configure.ac (LIBGCJTESTSPEC): Add path to libstdc++ for ARM
EABI.
* testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Use
-fexceptions for ARM EABI.
* testsuite/lib/libjava.exp (libjava_arguments): Add libgcj-test.spec.
(libjava_invoke): Log the invocation.
2007-08-15 Andrew Haley <aph@redhat.com>
* configure.ac (extra_ldflags): Define.
* Makefile.am: Use extra_ldflags for all executables.
2007-08-14 Andrew Haley <aph@redhat.com>
* sysdep/arm/backtrace.h: Remove stubs for _Unwind_GetIPInfo,
_Unwind_GetRegionStart, and _Unwind_Backtrace.
2007-07-27 Andrew Haley <aph@redhat.com>
* gnu/classpath/natVMStackWalker.cc (GET_CALLING_CLASS): Stub for
ARM EABI.
* exception.cc (get_exception_header_from_ue): New.
(get_ttype_entry): ARM EABI version.
(PERSONALITY_FUNCTION): Add ARM EABI code.
* sysdep/arm/backtrace.h: New file.
* stacktrace.cc (_URC_NORMAL_STOP): New.
* configure.ac (extra_ldflags_libjava): Add libsupc++.la for ARM
EABI.
* configure.host (BACKTRACESPEC): Add arm/backtrace.h.
* src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
Only treat r0 as a struct address if we're actually returning a
struct by address.
Only copy the bytes that are actually within a struct.
(ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
is returned in r0, not passed by address.
(ffi_call): Allocate a word-sized temporary for the case where
a composite is returned in r0.
(ffi_prep_incoming_args_SYSV): Align as necessary.
2007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
* src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
directly using the sys_cacheflush syscall.
Jan Hubicka [Tue, 4 Sep 2007 14:03:31 +0000 (16:03 +0200)]
optabs.c (debug_optab_libfunc): Update; make available to gdb.
* optabs.c (debug_optab_libfunc): Update; make available to gdb.
(libfunc_entry): New structure.
(libfunc_hash): New hashtable.
(hash_libfunc): New function.
(eq_libfunc): New function.
(convert_optab_libfunc): New function.
(optab_libfunc): New function.
(expand_binop, sign_expand_binop, expand_twoval_binop_libfunc,
expand_unop, prepare_cmp_insn, prepare_float_insn, gen_add2_insn,
expand_float, expand_fix, new_optab, new_convert_optab):
Update for new libfunc API.
(init_libfunc, init_integral_libfuncs,
init_floating_libfuncs, init_interclass_conv_libfuncs
init_intraclass_conv_libfuncs): Remove; reorganize all logic to:
(gen_libfunc, gen_int_libfunc, gen_fp_libfunc, gen_int_fp_libfunc,
gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
gen_int_to_fp_conv_libfunc, gen_ufloat_conv_libfunc,
gen_int_to_fp_nondecimal_conv_libfunc, gen_fp_to_int_conv_libfunc,
gen_intraclass_conv_libfunc, gen_trunc_conv_libfunc,
gen_extend_conv_libfunc): New.
(init_one_libfunc): Revamp for hashtables.
(set_conv_libfunc): Likewise.
(init_optabs): Initialize hashtable; use lazy initialization where possible.
* optabs.h (optab_handlers): Move out of GGC.
(optab, convert_optab): Move out of GGC; add lazy gen info.
(code_to_optab, convert_optab_table, optab_table): Move out of GGC.
(optab_libfunc, convert_optab_libfunc): New.
* builtins.c (expand_builtin_powi): Update for new API.
* expr.c (convert_move): Likewise.
* expmed.c (expand_divmod): Likewise.
rs6000.c (rs6000_stack_info): Allocate space for the GOT pointer only if there is a constant pool.
* config/rs6000/rs6000.c (rs6000_stack_info): Allocate space for the
GOT pointer only if there is a constant pool. Use the allocated space
for SPE also.
Jan Hubicka [Tue, 4 Sep 2007 13:05:19 +0000 (15:05 +0200)]
vect-reduc-dot-s16b.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-dot-s16b.c: Mark functions noinline.
* gcc.dg/vect/vect-105.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-6.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-53.c: Mark functions noinline.
* gcc.dg/vect/wrapv-vect-reduc-2short.c: Mark functions noinline.
* gcc.dg/vect/fast-math-vect-pr29925.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-dot-u8a.c: Mark functions noinline.
* gcc.dg/vect/vect-iv-7.c: Mark functions noinline.
* gcc.dg/vect/vect-50.c: Mark functions noinline.
* gcc.dg/vect/vect-33.c: Mark functions noinline.
* gcc.dg/vect/vect-16.c: Mark functions noinline.
* gcc.dg/vect/vect-widen-mult-sum.c: Mark functions noinline.
* gcc.dg/vect/vect-float-extend-1.c: Mark functions noinline.
* gcc.dg/vect/vect-92.c: Mark functions noinline.
* gcc.dg/vect/vect-75.c: Mark functions noinline.
* gcc.dg/vect/vect-58.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-2b.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-4.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-7.c: Mark functions noinline.
* gcc.dg/vect/no-section-anchors-vect-69.c: Mark functions noinline.
* gcc.dg/vect/vect-114.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-4g.c: Mark functions noinline.
* gcc.dg/vect/vect-8.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-vect-iv-1.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-10.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-45.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-10a.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-5.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-18.c: Mark functions noinline.
* gcc.dg/vect/vect-42.c: Mark functions noinline.
* gcc.dg/vect/vect-25.c: Mark functions noinline.
* gcc.dg/vect/vect-vfa-01.c: Mark functions noinline.
* gcc.dg/vect/vect-67.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-3a.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-a-u16-mult.c: Mark functions noinline.
* gcc.dg/vect/vect-106.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-7.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-37.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-2short.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-dot-u8b.c: Mark functions noinline.
* gcc.dg/vect/vect-iv-8.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-79.c: Mark functions noinline.
* gcc.dg/vect/vect-34.c: Mark functions noinline.
* gcc.dg/vect/vect-17.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-102a.c: Mark functions noinline.
* gcc.dg/vect/vect-align-1.c: Mark functions noinline.
* gcc.dg/vect/vect-93.c: Mark functions noinline.
* gcc.dg/vect/vect-widen-mult-s16.c: Mark functions noinline.
* gcc.dg/vect/vect-76.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-a-u16-i2.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-2c.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-5.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-8.c: Mark functions noinline.
* gcc.dg/vect/vect-115.c: Mark functions noinline.
* gcc.dg/vect/vect-9.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-vect-iv-2.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-pattern-1a.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-11.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-10b.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u32-i4.c: Mark functions noinline.
* gcc.dg/vect/vect-widen-mult-u8.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-6.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-19.c: Mark functions noinline.
* gcc.dg/vect/vect-60.c: Mark functions noinline.
* gcc.dg/vect/vect-26.c: Mark functions noinline.
* gcc.dg/vect/vect-vfa-02.c: Mark functions noinline.
* gcc.dg/vect/vect-85.c: Mark functions noinline.
* gcc.dg/vect/vect-68.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-3b.c: Mark functions noinline.
* gcc.dg/vect/vect-floatint-conversion-1.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u8-i8-gap7.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-8.c: Mark functions noinline.
* gcc.dg/vect/vect-107.c: Mark functions noinline.
* gcc.dg/vect/vect-iv-1.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-20.c: Mark functions noinline.
* gcc.dg/vect/vect-iv-9.c: Mark functions noinline.
* gcc.dg/vect/vect-52.c: Mark functions noinline.
* gcc.dg/vect/vect-35.c: Mark functions noinline.
* gcc.dg/vect/vect-18.c: Mark functions noinline.
* gcc.dg/vect/vect-align-2.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-1.c: Mark functions noinline.
* gcc.dg/vect/vect-77.c: Mark functions noinline.
* gcc.dg/vect/vect-2.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-2d.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-6.c: Mark functions noinline.
* gcc.dg/vect/vect-82_64.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-9.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u8-i2-gap.c: Mark functions noinline.
* gcc.dg/vect/vect-116.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-store-u16-i4.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-vect-iv-3.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-pattern-1b.c: Mark functions noinline.
* gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-12.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-7.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-101.c: Mark functions noinline.
* gcc.dg/vect/vect-44.c: Mark functions noinline.
* gcc.dg/vect/vect-27.c: Mark functions noinline.
* gcc.dg/vect/vect-vfa-03.c: Mark functions noinline.
* gcc.dg/vect/vect-86.c: Mark functions noinline.
* gcc.dg/vect/vect-100.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-1.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-3c.c: Mark functions noinline.
* gcc.dg/vect/vect-floatint-conversion-2.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-a-u32-mult.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u8-i8.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-fir-lb.c: Mark functions noinline.
* gcc.dg/vect/vect-108.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-9.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-21.c: Mark functions noinline.
* gcc.dg/vect/vect-iv-2.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-pattern-2a.c: Mark functions noinline.
* gcc.dg/vect/vect-11.c: Mark functions noinline.
* gcc.dg/vect/vect-70.c: Mark functions noinline.
* gcc.dg/vect/vect-36.c: Mark functions noinline.
* gcc.dg/vect/vect-19.c: Mark functions noinline.
* gcc.dg/vect/vect-95.c: Mark functions noinline.
* gcc.dg/vect/vect-78.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-a-u16-i4.c: Mark functions noinline.
* gcc.dg/vect/vect-3.c: Mark functions noinline.
* gcc.dg/vect/vect-all.c: Mark functions noinline.
* gcc.dg/vect/vect-117.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-13.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-pattern-1c.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u16-i2.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-a-u8-i8-gap7.c: Mark functions noinline.
* gcc.dg/vect/vect-20.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-8.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-noreassoc-outer-1.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-102.c: Mark functions noinline.
* gcc.dg/vect/vect-62.c: Mark functions noinline.
* gcc.dg/vect/vect-28.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-10.c: Mark functions noinline.
* gcc.dg/vect/vect-vfa-04.c: Mark functions noinline.
* gcc.dg/vect/vect-87.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-dot-u16a.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-2.c: Mark functions noinline.
* gcc.dg/vect/vect-intfloat-conversion-4a.c: Mark functions noinline.
* gcc.dg/vect/vect-109.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-22.c: Mark functions noinline.
* gcc.dg/vect/no-section-anchors-vect-outer-4h.c: Mark functions noinline.
* gcc.dg/vect/vect-iv-3.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-pattern-2b.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-dot-s8a.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-57.c: Mark functions noinline.
* gcc.dg/vect/vect-12.c: Mark functions noinline.
* gcc.dg/vect/vect-71.c: Mark functions noinline.
* gcc.dg/vect/vect-54.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-a-mult.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-3.c: Mark functions noinline.
* gcc.dg/vect/vect-96.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-1char.c: Mark functions noinline.
* gcc.dg/vect/vect-110.c: Mark functions noinline.
* gcc.dg/vect/vect-intfloat-conversion-1.c: Mark functions noinline.
* gcc.dg/vect/vect-4.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-store-u32-i2.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-4k.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-1.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-mult.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-14.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-49.c: Mark functions noinline.
* gcc.dg/vect/vect-21.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-9.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-noreassoc-outer-2.c: Mark functions noinline.
* gcc.dg/vect/vect-80.c: Mark functions noinline.
* gcc.dg/vect/vect-63.c: Mark functions noinline.
* gcc.dg/vect/vect-46.c: Mark functions noinline.
* gcc.dg/vect/vect-29.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u8-i8-gap2.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-11.c: Mark functions noinline.
* gcc.dg/vect/vect-88.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u8-i2.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-dot-u16b.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-3.c: Mark functions noinline.
* gcc.dg/vect/vect-83_64.c: Mark functions noinline.
* gcc.dg/vect/vect-intfloat-conversion-4b.c: Mark functions noinline.
* gcc.dg/vect/vect-iv-4.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-pattern-2c.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-dot-s8b.c: Mark functions noinline.
* gcc.dg/vect/vect-30.c: Mark functions noinline.
* gcc.dg/vect/vect-13.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-a-u8-i2-gap.c: Mark functions noinline.
* gcc.dg/vect/vect-iv-8a.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-same-dr.c: Mark functions noinline.
* gcc.dg/vect/vect-72.c: Mark functions noinline.
* gcc.dg/vect/vect-38.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-4.c: Mark functions noinline.
* gcc.dg/vect/vect-widen-mult-u16.c: Mark functions noinline.
* gcc.dg/vect/vect-97.c: Mark functions noinline.
* gcc.dg/vect/vect-111.c: Mark functions noinline.
* gcc.dg/vect/vect-intfloat-conversion-2.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-4d.c: Mark functions noinline.
* gcc.dg/vect/vect-5.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-mult-char-ls.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-store-a-u8-i2.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-4l.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-2.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-15.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-1short.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u16-i4.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u32-i8.c: Mark functions noinline.
* gcc.dg/vect/vect-22.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-noreassoc-outer-3.c: Mark functions noinline.
* gcc.dg/vect/vect-64.c: Mark functions noinline.
* gcc.dg/vect/vect-89.c: Mark functions noinline.
* gcc.dg/vect/no-tree-dom-vect-bug.c: Mark functions noinline.
* gcc.dg/vect/vect-103.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-51.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-pr29145.c: Mark functions noinline.
* gcc.dg/vect/wrapv-vect-reduc-pattern-2c.c: Mark functions noinline.
* gcc.dg/vect/vect-iv-5.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-dot-s8c.c: Mark functions noinline.
* gcc.dg/vect/vect-11a.c: Mark functions noinline.
* gcc.dg/vect/vect-31.c: Mark functions noinline.
* gcc.dg/vect/vect-14.c: Mark functions noinline.
* gcc.dg/vect/vect-73.c: Mark functions noinline.
* gcc.dg/vect/vect-56.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-2.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-5.c: Mark functions noinline.
* gcc.dg/vect/vect-98.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-float.c: Mark functions noinline.
* gcc.dg/vect/vect-intfloat-conversion-3.c: Mark functions noinline.
* gcc.dg/vect/vect-112.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-9a.c: Mark functions noinline.
* gcc.dg/vect/vect-6.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-43.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-a-u8-i8-gap2.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-4m.c: Mark functions noinline.
* gcc.dg/vect/vect-widen-mult-s8.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-3.c: Mark functions noinline.
* gcc.dg/vect/pr25413.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-16.c: Mark functions noinline.
* gcc.dg/vect/vect-40.c: Mark functions noinline.
* gcc.dg/vect/vect-23.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-noreassoc-outer-4.c: Mark functions noinline.
* gcc.dg/vect/vect-82.c: Mark functions noinline.
* gcc.dg/vect/vect-65.c: Mark functions noinline.
* gcc.dg/vect/vect-48.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-dot-s16a.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u8-i8-gap4.c: Mark functions noinline.
* gcc.dg/vect/vect-104.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-fir.c: Mark functions noinline.
* gcc.dg/vect/vect-iv-6.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u32-mult.c: Mark functions noinline.
* gcc.dg/vect/vect-32.c: Mark functions noinline.
* gcc.dg/vect/vect-15.c: Mark functions noinline.
* gcc.dg/vect/no-trapping-math-2.c: Mark functions noinline.
* gcc.dg/vect/vect-float-truncate-1.c: Mark functions noinline.
* gcc.dg/vect/vect-91.c: Mark functions noinline.
* gcc.dg/vect/vect-74.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-2a.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-3.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-2char.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-6.c: Mark functions noinline.
* gcc.dg/vect/vect-99.c: Mark functions noinline.
* gcc.dg/vect/vect-113.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-9b.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-4f.c: Mark functions noinline.
* gcc.dg/vect/vect-7.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-61.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-4.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-17.c: Mark functions noinline.
* gcc.dg/vect/vect-24.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-noreassoc-outer-5.c: Mark functions noinline.
* gcc.dg/vect/vect-83.c: Mark functions noinline.
* gcc.dg/vect/vect-66.c: Mark functions noinline.
* gcc.dg/vect/wrapv-vect-reduc-2char.c: Mark functions noinline.
Jason Merrill [Tue, 4 Sep 2007 12:27:38 +0000 (08:27 -0400)]
re PR c++/14032 (Specialization of inner template using outer template argument doesn't work)
PR c++/14032
* pt.c (most_specialized_class): Substitute outer template
arguments into the arguments of a member template partial
specialization.
(strip_innermost_template_args): New fn.
Jason Merrill [Tue, 4 Sep 2007 12:27:21 +0000 (08:27 -0400)]
re PR c++/14032 (Specialization of inner template using outer template argument doesn't work)
PR c++/14032
* pt.c (most_specialized_class): Substitute outer template
arguments into the arguments of a member template partial
specialization.
(strip_innermost_template_args): New fn.
re PR tree-optimization/33291 (a+=2; a+=2 not simplified to a+=4; with -O3 (ok with gcc-4.2.1))
2007-09-04 Richard Guenther <rguenther@suse.de>
PR tree-optimization/33291
* tree-pretty-print.c (dump_generic_node): Dump all
qualifiers for pointer types, not only first. Dump
qualifiers for aggregate types as well.
* tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Always
use the canonical type for building ARRAY_REFs.
* gimplify.c (canonicalize_addr_expr): Clean up. The
correct validness check is compatibility of the pointer
types. Always use the canonical type for building
ARRAY_REFs and ADDR_EXPRs.
* tree-ssa-forwprop.c (forward_propagate_addr_expr): Revert
change that disabled propagation of ADDR_EXPRs into statements
with volatile ops.
* config/arm/arm.md (mulsidi3, umulsidi3, mulsi3_highpart)
(umulsi3_highpart): Make into expanders; existing insns are
now named *[insn]_nov6. Add stars to existing [insn]_v6
counterparts' names.