Commit Graph

84761 Commits

Author SHA1 Message Date
Harsha Jagasia
749cc4b1b3 tree-vectorizer.c (slpeel_add_loop_guard): Gimplify the condition.
2007-12-05  Harsha Jagasia <harsha.jagasia@amd.com>

	* tree-vectorizer.c (slpeel_add_loop_guard): Gimplify the condition.
	(set_prologue_iterations): New. Set the prologue iterations to total
	number of scalar iterations if the cost model check indicates that
	scalar code should be generated.
	(slpeel_tree_peel_loop_to_edge): Add a new parameter and code for 
	generating the cost condition for epilog. Call
	set_prologue_iterations to generate cost condition for prolog.
	(new_loop_vec_info): Initialize LOOP_VINFO_NITERS_UNCHANGED.
	* tree-vectorizer.h (LOOP_VINFO_NITERS_UNCHANGED): New.
	(slpeel_tree_peel_loop_to_edge): Update declaration.
	(set_prologue_iterations): New declaration.
	* tree-vect-analyze.c (vect_analyze_loop_form): Update 
	LOOP_VINFO_NITERS_UNCHANGED.
	* tree-vect-transform.c
	(vect_estimate_min_profitable_iters): Add new parameter and
	code to  check if run time cost model test is needed.
	Remove code that adds builtin vectorization cost to scalar
	outside cost for the run time cost model test. If run time
	cost model test is needed add the appropriate guard cost to
	the scalar outside cost. The guard cost depends on whether
	the guard is generated at versioning or at prolog generation
	or at epilog generation. Change cost model equation to include
	scalar outside cost.
	(conservative_cost_threshold): New. Return the less conservative
	profitability threshold between the cost model threshold and the
	user defined vectorization threshold.
	(vect_do_peeling_for_loop_bound): Call conservative_cost_threshold.
	(vect_do_peeling_for_alignment): Same.
	(vect_loop_versioning): Same.
	(vect_create_cond_for_align_checks): ANDs the cost model condition
	with the alignment condition.
	(vect_transform_loop): Call loop versioning only when there is a
	misalignment or an aliasing problem.

From-SVN: r130651
2007-12-06 16:18:55 +00:00
Jakub Jelinek
d7bd8aebf6 re PR middle-end/20983 (varargs functions force va_list variable to stack unnecessarily)
PR middle-end/20983
	* tree-ssa-ccp.c (optimize_stdarg_builtin): New function.
	(execute_fold_all_builtins): Call it for BUILT_IN_VA_START,
	BUILT_IN_VA_COPY and BUILT_IN_VA_END.

	* target.h (struct ggc_target): Add expand_builtin_va_start
	hook.
	* target-def.h (TARGET_EXPAND_BUILTIN_VA_START): Define.
	(TARGET_INITIALIZER): Add it.
	* builtins.c (expand_builtin_va_start): Use
	targetm.expand_builtin_va_start hook instead of
	EXPAND_BUILTIN_VA_START macro.
	* alpha/alpha.c (alpha_va_start): Made static.
	(override_options): Clear targetm.expand_builtin_va_start if
	TARGET_UNICOSMK.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* alpha/unicosmk.h (EXPAND_BUILTIN_VA_START): Remove.
	* alpha/alpha.h (EXPAND_BUILTIN_VA_START): Remove.
	* alpha/alpha-protos.h (alpha_va_start): Remove prototype.
	* xtensa/xtensa.h (EXPAND_BUILTIN_VA_START): Remove.
	* xtensa/xtensa.c (TARGET_EXPAND_BUILTIN_VA_START): Define.
	(xtensa_va_start): Made static.
	* xtensa/xtensa-protos.h (xtensa_va_start): Remove prototype.
	* pa/pa-protos.h (hppa_va_start): Remove prototype.
	* pa/pa.h (EXPAND_BUILTIN_VA_START): Remove.
	* pa/pa.c (hppa_va_start): Made static, add prototype.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* frv/frv.c (frv_expand_builtin_va_start): Made static, add prototype.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* frv/frv-protos.h (frv_expand_builtin_va_start): Remove prototype.
	* frv/frv.h (EXPAND_BUILTIN_VA_START): Remove.
	* i386/i386.c (override_options): Clear
	targetm.expand_builtin_va_start if -m32 or 64-bit MS ABI.
	(ix86_va_start): Made static.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* i386/i386.h (EXPAND_BUILTIN_VA_START): Remove.
	* i386/i386-protos.h (ix86_va_start, ix86_va_arg): Remove prototypes.
	* iq2000/iq2000-protos.h (iq2000_va_start): Remove prototype.
	* iq2000/iq2000.h (EXPAND_BUILTIN_VA_START): Remove.
	* iq2000/iq2000.c (iq2000_va_start): Made static, add prototype.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* rs6000/rs6000-protos.h (rs6000_va_start): Remove prototype.
	* rs6000/rs6000.c (rs6000_va_start): Made static, add prototype.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	(rs6000_override_options): Clear targetm.expand_builtin_va_start if
	DEFAULT_ABI != ABI_V4.
	* rs6000/rs6000.h (EXPAND_BUILTIN_VA_START): Remove.
	* spu/spu.c (spu_va_start): Made static, add prototype.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* spu/spu.h (EXPAND_BUILTIN_VA_START): Remove.
	* spu/spu-protos.h spu_va_start): Remove prototype.
	* stormy16/stormy16.h (EXPAND_BUILTIN_VA_START): Remove.
	* stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_start):
	Remove prototype.
	* stormy16/stormy16.c (xstormy16_expand_builtin_va_start): Made
	static.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* s390/s390-protos.h (s390_va_start): Remove prototype.
	* s390/s390.c (s390_va_start): Made static.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* s390/s390.h (EXPAND_BUILTIN_VA_START): Remove.
	* mn10300/mn10300.h (EXPAND_BUILTIN_VA_START): Remove.
	* mn10300/mn10300-protos.h (mn10300_va_start): Remove prototype.
	* mn10300/mn10300.c (mn10300_va_start): Made static, add prototype.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* arc/arc.c (arc_va_start): Made static, add prototype.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* arc/arc.h (EXPAND_BUILTIN_VA_START): Remove.
	* arc/arc-protos.h (arc_va_start): Remove prototype.
	* mt/mt-protos.h (mt_va_start): Remove prototype.
	* sparc/sparc.c (sparc_va_start): Made static, add prototype.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* sparc/sparc-protos.h (sparc_va_start): Remove prototype.
	* sparc/sparc.h (EXPAND_BUILTIN_VA_START): Remove.
	* sh/sh.c (sh_va_start): Made static, add prototype.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* sh/sh-protos.h (sh_va_start): Remove prototype.
	* sh/sh.h (EXPAND_BUILTIN_VA_START): Remove.
	* mips/mips-protos.h (mips_va_start): Remove prototype.
	* mips/mips.h (EXPAND_BUILTIN_VA_START): Remove.
	* mips/mips.c (mips_va_start): Made static.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.

From-SVN: r130650
2007-12-06 14:25:37 +01:00
Uros Bizjak
4e9012fdc6 tree-ssa-loop.c (gate_tree_parallelize_loops): Return true when "flag_tree_parallelize_loops > 1".
* tree-ssa-loop.c (gate_tree_parallelize_loops): Return true when
	"flag_tree_parallelize_loops > 1".

From-SVN: r130648
2007-12-06 11:35:44 +01:00
Jakub Jelinek
aea7444027 [multiple changes]
2007-12-06  Zdenek Dvorak  <ook@ucw.cz>
	    Dorit Nuzman  <dorit@il.ibm.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/34005
	* tree-gimple.c (is_gimple_formal_tmp_rhs): Add a case for COND_EXPR.
	* gimplify.c (gimplify_ctx): Add a new member allow_rhs_cond_expr.
	(gimplify_pure_cond_expr): New function.
	(generic_expr_could_trap_p): New function.
	(gimplify_cond_expr): Call gimplify_pure_cond_expr.
	(force_gimple_operand): Initialize new field allow_rhs_cond_expr.

2007-12-06  Martin Michlmayr <tbm@cyrius.com>
	    Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/34005
	* gcc.dg/vect/pr34005.c: New test.

From-SVN: r130647
2007-12-06 11:06:38 +01:00
Andreas Krebbel
12959abe9e s390.c (s390_emit_stack_tie): New function.
2007-12-06  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (s390_emit_stack_tie): New function.
	(s390_emit_prologue): Emit a stack tie when writing to the
	f8-f15 stack slots.
	* config/s390/s390.md ("stack_tie"): New insn definition.

From-SVN: r130646
2007-12-06 09:59:06 +00:00
Jakub Jelinek
28267cfcce re PR c++/34336 (4.2.2 internal error in stabilize_expr)
PR c++/34336
	* tree.c (stabilize_call, stabilize_init): Do nothing if
	processing_template_decl.

	* g++.dg/template/new8.C: New test.

From-SVN: r130645
2007-12-06 10:33:26 +01:00
Tobias Burnus
0bf0efd537 re PR fortran/34333 (if(nan == nan) wrongly returns TRUE, when nan is a parameter)
2007-12-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/34333
        * primary.c (match_boz_constant): Add gfc_notify_std
        * diagnostics.

2007-12-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/34333
        * gfortran.dg/boz_7.f90: New.
        * gfortran.dg/int_1.f90: Disable -pedantic option.
        * gfortran.dg/boz_1.f90: Ditto.
        * gfortran.dg/boz_3.f90: Ditto.
        * gfortran.dg/pr16433.f: Accomodate for new BOZ warning.
        * gfortran.dg/ibits.f90: Ditto.
        * gfortran.dg/unf_io_convert_1.f90: Ditto.
        * gfortran.dg/unf_io_convert_2.f90: Ditto.

From-SVN: r130644
2007-12-06 10:23:00 +01:00
Paul Thomas
df1f30e1c5 re PR fortran/34335 (valid code rejected when reordering USE statements)
2007-12-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34335
	* module.c (find_symbol): Do not return symtrees with unique
	names, which shows that they are private.

2007-12-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34335
	* gfortran.dg/used_types_19.f90: New test.

From-SVN: r130643
2007-12-06 06:13:59 +00:00
Paul Thomas
95f8fb2500 re PR target/34435 (SSE2 intrinsics - emmintrin with optimisations off and type conversion error)
2007-12-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34435
	* module.c (find_symbol): Do not return symtrees with unique
	names, which shows that they are private.

2007-12-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34435
	* gfortran.dg/used_types_19.f90: New test.

From-SVN: r130642
2007-12-06 06:11:01 +00:00
Kaz Kojima
98b2c759a1 nan_2.f90: Add -mieee for sh.
* gfortran.dg/nan_2.f90: Add -mieee for sh.
	* gfortran.dg/nearest_2.f90: Likewise.
	* gfortran.dg/nearest_3.f90: Likewise.

From-SVN: r130641
2007-12-06 05:18:29 +00:00
Ben Elliston
a1c23eae0c SERVICE: Remove.
* SERVICE: Remove.
	* doc/sourcebuild.texi (Miscellaneous Docs): Remove SERVICE item.

From-SVN: r130640
2007-12-06 14:47:35 +11:00
GCC Administrator
a4c7417a0d Daily bump.
From-SVN: r130638
2007-12-06 00:17:27 +00:00
Jakub Jelinek
517ddae96b re PR middle-end/34337 (Internal error while building gtkwhiteboardc.c from pidgin 2.3.0)
PR middle-end/34337
	* fold-const.c (fold_binary) <case BIT_IOR_EXPR>: Don't minimize
	number of bits set in C1 if a mode mask for some mode can be used
	instead.

	* gcc.c-torture/execute/20071205-1.c: New test.

From-SVN: r130635
2007-12-05 23:24:08 +01:00
Kaz Kojima
e8608df46e module_nan.f90: Add -mieee for sh.
* gfortran.dg/module_nan.f90: Add -mieee for sh.
	* gfortran.dg/real_const_3.f90: Likewise.

From-SVN: r130634
2007-12-05 21:55:55 +00:00
Bernhard Fischer
ca97730d79 varasm.c (merge_weak, [...]): Commentary typo fixes.
2007-12-05  Bernhard Fischer  <aldot@gcc.gnu.org>

	* varasm.c (merge_weak, weak_finish, assemble_alias): Commentary typo
	fixes.

From-SVN: r130633
2007-12-05 22:55:10 +01:00
Richard Guenther
39be21dd5a re PR tree-optimization/34138 (verify_ssa failed (found real variable when subvariables should have appeared))
2007-12-05  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34138
	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
	Do not forward propagate addresses if that changes volatileness of
	the pointed-to type.

	* gcc.c-torture/compile/pr34138.c: New testcase.

From-SVN: r130632
2007-12-05 21:45:15 +00:00
Jakub Jelinek
60332588d6 re PR debug/33739 (Failure of gfortran.dg/literal_character_constant_1_*.F with -m64 -g on Darwin)
PR debug/33739
	* gfortran.h (gfc_file): Remove included_by field, add sibling and
	down.
	(gfc_start_source_files, gfc_end_source_files): New prototypes.
	* parse.c (gfc_parse_file): Call gfc_start_source_files and
	gfc_end_source_files instead of calling the debugging hooks directly.
	* error.c (show_locus): Use up field instead of included_by.
	* scanner.c (change_file, gfc_start_source_files,
	gfc_end_source_files): New functions.
	(gfc_advance_line): Call change_file instead of calling debug hooks
	directly.
	(get_file): Set up rather than included_by.  Initialize down and
	sibling.
	(preprocessor_line, load_file): Don't set up field here.

	* gfortran.dg/debug_2.f: New test.

From-SVN: r130629
2007-12-05 20:50:56 +01:00
Paolo Carlini
bce623434f hashtable_policy.h (_Prime_rehash_policy:: _S_n_primes): Add.
2007-12-05  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1_impl/hashtable_policy.h (_Prime_rehash_policy::
	_S_n_primes): Add.
	(_Prime_rehash_policy::_M_next_bkt, _M_bkt_for_elements,
	_M_need_rehash): Adjust.

From-SVN: r130628
2007-12-05 19:09:11 +00:00
Thomas Fitzsimmons
3898fe8e7c 2007-12-05 Thomas Fitzsimmons <fitzsim@redhat.com>
* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
	(isWindowUnderMouse): New method.
	* include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h:
	Regenerate.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(getLocationOnScreen): Move WindowPeer section to...
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java (getLocationOnScreen):
	New method.
	* gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java
	(isWindowUnderMouse): Implement.
	* java/awt/Component.java (getMousePosition): New method.
	(getMousePositionHelper): Likewise.
	(mouseOverComponent): Likewise.
	* java/awt/Container.java (getMousePosition): New method.
	(mouseOverComponent): Likewise.
	* classpath/lib/java/awt/Component.class,
	classpath/lib/java/awt/Component$BltBufferStrategy.class,
	classpath/lib/java/awt/Container$GfxPaintAllVisitor.class,
	classpath/lib/java/awt/Component$AccessibleAWTComponent
	$AccessibleAWTFocusHandler.class,
	classpath/lib/java/awt/Component$FlipBufferStrategy.class,
	classpath/lib/java/awt/Container$GfxVisitor.class,
	classpath/lib/java/awt/Component$AccessibleAWTComponent
	$AccessibleAWTComponentHandler.class,
	classpath/lib/java/awt/Container$AccessibleAWTContainer
	$AccessibleContainerHandler.class,
	classpath/lib/java/awt/Container.class,
	classpath/lib/java/awt/Container$AccessibleAWTContainer.class,
	classpath/lib/java/awt/Container$GfxPrintAllVisitor.class,
	classpath/lib/java/awt/Component$AccessibleAWTComponent.class,
	classpath/lib/java/awt/Container$GfxPaintVisitor.class,
	classpath/lib/java/awt/Container$GfxPrintVisitor.class,
	classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class,
	classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class,
	classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class,
	classpath/lib/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.class,
	classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class,
	classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer
	$RepaintTimerTask.class:
	Regenerate.

2007-12-05  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h: Regenerate.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.h: Likewise.
	* java/awt/Component.h: Likewise.
	* java/awt/Container.h: Likewise.

From-SVN: r130627
2007-12-05 18:04:44 +00:00
Eric Botcazou
0ec479dcfb trans.c (lvalue_required_p): Take base node directly instead of its parent.
* trans.c (lvalue_required_p): Take base node directly instead
	of its parent.  Rename second parameter to 'gnu_type'.
	<N_Indexed_Component>: Return 0 if the node isn't the prefix.
	<N_Slice>: Likewise.
	(Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
	Adjust calls to lvalue_required_p.

From-SVN: r130626
2007-12-05 17:00:07 +00:00
Uros Bizjak
e37ab97325 re PR rtl-optimization/34312 (spill failure with -O2 -fPIC -march=pentium-m on i386)
PR target/34312
        * config/i386/i386.c (ix86_function_regparm): Also check for fixed
        registers when checking that regparm registers are available.
        Lower regparm value due to fixed registers usage in addition to
        global regs usage.

testsuite/ChangeLog:

        PR target/34312
        * gcc.target/i386/pr34312.c: New test.

From-SVN: r130625
2007-12-05 17:01:22 +01:00
Bechir Zalila
e8f34bc985 re PR ada/34284 (Missing dynamic library support for GNAT 4.3.0 on x86-*-Darwin8)
2007-12-05  Bechir Zalila  <bechir.zalila@gmail.com>

    gnattools/
	PR ada/34284
	* configure.ac: Added a missing switch case for *86-*-darwin*
	when defining the value of TOOLS_TARGET_PAIRS.

	* configure: Regenerated.

From-SVN: r130624
2007-12-05 14:34:48 +00:00
Tobias Burnus
7b4c5f8b9b re PR fortran/34333 (if(nan == nan) wrongly returns TRUE, when nan is a parameter)
2007-12-05  Tobias Burnus  <burnus@net-b.de>

        PR fortran/34333
        * arith.h (gfc_compare_expr): Add operator argument, needed
        for compare_real.
        * arith.c (gfc_arith_init_1): Use mpfr_min instead of
        * mpfr_cmp/set
        to account for NaN.
        (compare_real): New function, as mpfr_cmp but takes NaN into
        account.
        (gfc_compare_expr): Use compare_real.
        (compare_complex): Take NaN into account.
        (gfc_arith_eq,gfc_arith_ne,gfc_arith_gt,gfc_arith_ge,gfc_arith_lt,
        gfc_arith_le): Pass operator to gfc_compare_expr.
        * resolve.c (compare_cases,resolve_select): Pass operator
        to gfc_compare_expr.
        * simplify.c (simplify_min_max): Take NaN into account.

2007-12-05  Tobias Burnus  <burnus@net-b.de>

        PR fortran/34333
        * gfortran.dg/nan_2.f90: New.

From-SVN: r130623
2007-12-05 14:42:32 +01:00
Bernhard Fischer
59b130b365 sparseset.c: Include config.h and system.h before sparseset.h.
2007-11-27  Bernhard Fischer  <aldot@gcc.gnu.org>

	* sparseset.c: Include config.h and system.h before sparseset.h.
	* sparseset.h: Remove inclusion of system.h.

From-SVN: r130622
2007-12-05 13:47:22 +01:00
Richard Sandiford
240b189a32 Fix last entry v2.
From-SVN: r130621
2007-12-05 10:53:51 +00:00
Richard Sandiford
88f9ea31b5 Fix last entry.
From-SVN: r130620
2007-12-05 10:51:05 +00:00
Jakub Jelinek
91929b4dee re PR c++/34271 (ICE in invalid initialization of static template member)
PR c++/34271
	* semantics.c (finish_decltype_type): For SCOPE_REF issue an
	error instead of assertion failure.
	* parser.c (cp_parser_decltype): If closing paren is not found,
	return error_mark_node.

	* g++.dg/cpp0x/decltype9.C: New test.
	* g++.dg/cpp0x/decltype10.C: New test.

From-SVN: r130619
2007-12-05 11:45:21 +01:00
Jakub Jelinek
c0742514bd 200x-xx-xx Jakub Jelinek <jakub@redhat.com> Richard Sandiford <rsandifo@nildram.co.uk>
gcc/
200x-xx-xx  Jakub Jelinek  <jakub@redhat.com>
	    Richard Sandiford  <rsandifo@nildram.co.uk>

	* optabs.c (clear_insn_codes): New function.
	(new_optab): Delete.
	(init_optab, init_optabv): Don't call new_optab.
	(init_convert_optab): Don't clear the insn codes.
	(init_optabs): Call clear_insn_codes.

Co-Authored-By: Richard Sandiford <rsandifo@nildram.co.uk>

From-SVN: r130618
2007-12-05 09:33:42 +00:00
Samuel Tardieu
07c7262ec3 re PR ada/21489 (Wrong code generated for legal program, RM 6.4.1(13), 9.5.1(3), 9.5.3(8))
gcc/ada/
	PR ada/21489
	* exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
	parameters of an entry call.

    gcc/testsuite/
	PR ada/21489
	* gnat.dg/rm_6_4_1_13.adb: New test.

From-SVN: r130617
2007-12-05 09:25:38 +00:00
Ben Elliston
c3220d4c93 * config.sub, config.guess: Update from upstream sources.
From-SVN: r130616
2007-12-05 14:28:46 +11:00
Joseph Myers
4fa3bca112 * vi.po: Update.
From-SVN: r130615
2007-12-05 01:48:45 +00:00
GCC Administrator
e4af1af792 Daily bump.
From-SVN: r130613
2007-12-05 00:17:00 +00:00
Jakub Jelinek
2b4cf99125 omp-low.c (optimize_omp_library_calls): New function.
* omp-low.c (optimize_omp_library_calls): New function.
	(expand_omp_parallel): Call it if optimizing.

	* omp.h.in (__GOMP_NOTHROW): Define.  Use it on omp_* prototypes.

From-SVN: r130610
2007-12-04 23:01:04 +01:00
Jakub Jelinek
b9f9b2101b re PR middle-end/34134 (ICE when using __builtin_stack_restore)
PR middle-end/34134
	* stmt.c (expand_stack_restore): Call expand_normal on var to get
	rtx for it instead of assuming it will be a VAR_DECL.

	* gcc.c-torture/compile/20071117-1.c: New test.

From-SVN: r130609
2007-12-04 22:55:32 +01:00
Douglas Gregor
ba7963084e re PR c++/34101 (ICE with argument deduction of variadic template function)
2007-12-04  Douglas Gregor  <doug.gregor@gmail.com>

       PR c++/34101
       * name-lookup.c (arg_assoc_template_arg): Recurse on argument
       packs.
       (arg_assoc_type): We don't need to handle TYPE_ARGUMENT_PACK here,
       since arg_assoc_template_arg will deal with them (better).

2007-12-04  Douglas Gregor  <doug.gregor@gmail.com>

       PR c++/34101
       * g++.dg/cpp0x/variadic-ttp.C: New.

From-SVN: r130608
2007-12-04 21:12:41 +00:00
Manuel López-Ibáñez
3d57f0f085 c-parser (c_parser_statement_after_labels): Move error from here...
2007-12-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* c-parser (c_parser_statement_after_labels): Move error from here...
	(c_parser_label): ... to here. Check that the declaration is not
	actually just another label.
testsuite/
	* gcc.dg/parse-decl-after-if.c: New.
	* gcc.dg/20031223-1.c: Adjust.

From-SVN: r130606
2007-12-04 21:10:09 +00:00
Douglas Gregor
2f93f02ca3 re PR c++/33509 (tsubst_pack_expansion assumed to return TREE_VEC)
2007-12-04  Douglas Gregor  <doug.gregor@gmail.com>

       PR c++/33509
       * pt.c (tsubst_exception_specification): Handle substitutions into
       member templates, where tsubst_pack_expansion returns a
       TYPE_PACK_EXPANSION.

2007-12-04  Douglas Gregor  <doug.gregor@gmail.com>

       PR c++/33509
       * g++.dg/cpp0x/variadic-throw.C: New.

From-SVN: r130605
2007-12-04 20:49:08 +00:00
Douglas Gregor
db60ff18e2 re PR c++/33091 ([c++0x] ICE using remove_reference on variadic param pack)
2007-12-04  Douglas Gregor  <doug.gregor@gmail.com>

       PR c++/33091
       * pt.c (unify_pack_expansion): If we didn't deduce any actual
       bindings for the template parameter pack, don't try to keep the
       empty deduced arguments.
       (unify): If a parameter is a template-id whose template argument
       list contains a pack expansion that is not at the end, then we
       cannot unify against that template-id.

2007-12-04  Douglas Gregor  <doug.gregor@gmail.com>

       PR c++/33091
       * g++.dg/cpp0x/variadic-unify.C: New.

From-SVN: r130604
2007-12-04 19:27:14 +00:00
Richard Guenther
54b7b17d73 re PR middle-end/34334 (ICE in vuses_compare, at tree-vn.c:118)
2007-12-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34334
	PR middle-end/34222
	* tree-ssa-operands.c (get_addr_dereference_operands): If we
	fall back to using the SMTs aliases, make sure to add virtual
	operands for the SMT itself.
	(create_ssa_artificial_load_stmt): Fix typo.  Make sure to also
	clear the loaded and stored symbols bitmaps.

	* gcc.c-torture/compile/pr34334.c: New testcase.
	* g++.dg/torture/pr34222.C: New testcase.

From-SVN: r130602
2007-12-04 17:20:34 +00:00
Jakub Jelinek
91ee70c347 20071202-1.c: New test.
* gcc.c-torture/execute/20071202-1.c: New test.
	* gcc.dg/tree-ssa/pr34146-2.c: New test.

From-SVN: r130601
2007-12-04 15:55:40 +01:00
Tobias Burnus
3c031ab9df re PR fortran/34318 (Modules: Infinity/NaN parameters read as 0.0)
2007-12-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/34318
        * module.c (mio_gmp_real): Properly write NaN and Infinity.

2007-12-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/34318
        * gfortran.dg/module_nan.f90: New.

From-SVN: r130600
2007-12-04 11:32:04 +01:00
Richard Sandiford
0ffd38c81f target-supports.exp (get_compiler_messages): Replace with...
gcc/testsuite/
	* lib/target-supports.exp (get_compiler_messages): Replace with...
	(check_compile): ...this new procedure.  Handle TYPE == executable.
	Use comments in the source to determine the correct extension.
	Return a pair containing the compiler output and the output filename.
	Don't delete the file here.
	(check_no_compiler_messages_nocache): New procedure.
	(check_no_compiler_messages): Use it.
	(check_no_messages_and_pattern_nocache): New procedure.
	(check_no_messages_and_pattern): Use it.
	(check_runtime_nocache, check_runtime): New procedures.
	(check_effective_target_tls): Use check_no_compiler_messages.
	(check_effective_target_tls_native): Use check_no_messages_and_pattern.
	(check_effective_target_tls_runtime): Use check_runtime.
	(check_effective_target_fstack_protector): Likewise.
	(check_iconv_available): Use check_runtime_nocache.
	(check_effective_target_fortran_large_real): Use
	check_no_compiler_messages.
	(check_effective_target_fortran_large_int): Likewise.
	(check_effective_target_static_libgfortran): Likewise.
	(check_750cl_hw_available): Use check_cached_effective_target
	and check_runtime_nocache.
	(check_vmx_hw_available): Likewise.
	(check_effective_target_broken_cplxf_arg): Likewise.
	(check_alpha_max_hw_available): Use check_runtime.
	(check_function_available): Use check_no_compiler_messages.
	(check_cxa_atexit_available): Use check_cached_effective_target
	and check_runtime_nocache.
	(check_effective_target_dfp_nocache): Use
	check_no_compiler_messages_nocache.
	(check_effective_target_dfprt_nocache): Use check_runtime_nocache.
	(check_effective_target_dfp): Use check_cached_effective_target.
	(check_effective_target_dfprt): Likewise.
	(check_effective_target_arm_neon_hw): Use check_runtime.
	(check_effective_target_ultrasparc_hw): Likewise.
	(check_effective_target_c99_runtime): Use
	check_no_compiler_messages_nocache.

From-SVN: r130599
2007-12-04 10:16:17 +00:00
Ben Elliston
34add7804e * config/spu/spu.h (ASM_FORMAT_PRIVATE_NAME): Remove; use default.
From-SVN: r130598
2007-12-04 14:17:14 +11:00
Ben Elliston
614e5a7d0d * doc/tm.texi (Exception Handling): Mention unwind-dw2-xtensa.c.
From-SVN: r130597
2007-12-04 14:14:14 +11:00
GCC Administrator
08ce095862 Daily bump.
From-SVN: r130595
2007-12-04 00:17:30 +00:00
Paolo Carlini
147a7d019c hashtable.cc (__prime_list): Use __SIZEOF_LONG__.
2007-12-03  Paolo Carlini  <pcarlini@suse.de>

	* src/hashtable.cc (__prime_list): Use __SIZEOF_LONG__.

From-SVN: r130592
2007-12-03 23:20:22 +00:00
Steven Bosscher
3de5e93a35 re PR middle-end/33713 (can't find a register in class 'GENERAL_REGS' while reloading 'asm')
PR33713
        * doc/invoke.texi: Remove -fforce-addr documentation.
        * expr.c (emit_move_insn): Remove use of flag_force_addr.
        (expand_expr_real_1): Same.
        (do_tablejump): Same.
        Call memory_address instead of memory_address_noforce.
        * expr.h (memory_address_noforce): Remove prototype.
        * explow.c (memory_address): Remove support for flag_force_addr.
        (validize_mem): Same.
        (memory_address_noforce): Remove.
        * common.opt: Add dummy documentation for -fforce-addr.
        * combine.c (can_combine_p): Remove -fforce-addr comment.
        * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove set of
        flag_force_addr.
        * config/m68k/m68k.h (PIC_CASE_VECTOR_ADDRESS): Remove comment
        relating to memory_address_noforce.
        * testsuite/gcc.c-torture/compile/20050802-1.c: Remove.
        * testsuite/gcc.c-torture/compile/20011113-1.c: Remove.

From-SVN: r130591
2007-12-03 23:09:23 +00:00
Jakub Jelinek
d2dda7fed0 omp-low.c (lookup_decl_in_outer_ctx): Allow calling this with !ctx->is_nested.
* omp-low.c (lookup_decl_in_outer_ctx): Allow calling this
	with !ctx->is_nested.
	(maybe_lookup_decl_in_outer_ctx): Look up in outer contexts
	even if !ctx->is_nested.
	(lower_copyprivate_clauses, lower_send_clauses,
	lower_send_shared_vars): Call lookup_decl_in_outer_ctx
	unconditionally.

	* testsuite/libgomp.c/private-1.c: New test.

From-SVN: r130590
2007-12-04 00:06:55 +01:00
Jakub Jelinek
22164c3db7 re PR middle-end/29749 (Missing byte swap optimizations)
PR middle-end/29749
	* fold-const.c (fold_binary) <case BIT_AND_EXPR>: Optimize
	(X << C1) & C2 into (X << C1) & (C2 | ((1 << C1) - 1))
	and (X >> C1) & C2 into (X >> C1) & (C2 | ~((type) -1 >> C1)).
	(fold_binary) <case LSHIFT_EXPR, case RSHIFT_EXPR>: Optimize
	(X & C2) << C1 into (X << C1) & (C2 << C1) and
	(X & C2) >> C1 into (X >> C1) & (C2 >> C1) if that allows further
	optimizations.

	* gcc.dg/fold-rotate-1.c: New test.

From-SVN: r130589
2007-12-03 23:38:28 +01:00
Jakub Jelinek
36ad7922cb re PR tree-optimization/33453 (ICE in build2_stat, at tree.c:3110 with -ftree-parallelize-loops=4 -ftree-vectorize)
PR tree-optimization/33453
	* tree-data-ref.c (split_constant_offset): Use POINTER_PLUS_EXPR
	for pointer addition.
	* tree-parloops.c (canonicalize_loop_ivs): Likewise.
	(separate_decls_in_loop_name): Copy DECL_GIMPLE_REG_P from var to
	var_copy.

	* gcc.c-torture/compile/20071203-1.c: New test.

From-SVN: r130588
2007-12-03 23:35:39 +01:00