Commit Graph

86605 Commits

Author SHA1 Message Date
Janis Johnson
148c154438 builtin-modf-1.c: Use special options for powerpc*-*-linux*.
* gcc.dg/torture/builtin-modf-1.c: Use special options for
	powerpc*-*-linux*.

From-SVN: r133912
2008-04-04 21:02:55 +00:00
Janis Johnson
9519d464cd * gcc.dg/var-expand3.c: Skip for powerpc-linux if not on AltiVec HW.
From-SVN: r133911
2008-04-04 21:01:20 +00:00
Janis Johnson
12a0a01a04 * gcc.dg/pr34856.c: Use -maltivec on powerpc linux.
From-SVN: r133910
2008-04-04 20:59:33 +00:00
Janis Johnson
fdf4f148f1 re PR target/35620 (ICE passing dereferenced pointer to _Decimal32)
gcc/
	PR target/35620
	* config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
	and view convert expression.

testsuite/
	PR target/35620
	* gcc.dg/dfp/pr35620.c: New test.
	* gcc.dg/dfp/func-pointer.c: New test.
	* gcc.dg/dfp/func-deref.c: New test.

From-SVN: r133909
2008-04-04 20:18:52 +00:00
Jakub Jelinek
3088d40408 re PR target/35364 (ICE on ia64 with vector declaration inside #pragma omp parallel)
PR target/35364
	* tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.

	* g++.dg/gomp/pr35364.C: New test.

From-SVN: r133905
2008-04-04 19:48:45 +02:00
H.J. Lu
c9a22ea10d Change UNSPEC_PCLMULQDQ to UNSPEC_PCLMUL.
From-SVN: r133903
2008-04-04 10:22:48 -07:00
H.J. Lu
8b96a312a0 config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
gcc/

2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.

	* config/i386/cpuid.h (bit_AES): New.
	(bit_PCLMUL): Likewise.

	* config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
	(override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
	SSE2 if AES or PCLMUL is enabled.
	(ix86_builtins): Add IX86_BUILTIN_AESENC128,
	IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
	IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
	IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
	(bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
	(bdesc_2arg): Add IX86_BUILTIN_AESENC128,
	IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
	IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
	(bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
	(ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
	__builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
	__builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
	__builtin_ia32_aeskeygenassist128 and
	__builtin_ia32_pclmulqdq128.
	* config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
	(ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
	IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.

	* config/i386/i386.h (TARGET_AES): New.
	(TARGET_PCLMUL): Likewise.
	(TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.

	* config/i386/i386.md (UNSPEC_AESENC): New.
	(UNSPEC_AESENCLAST): Likewise.
	(UNSPEC_AESDEC): Likewise.
	(UNSPEC_AESDECLAST): Likewise.
	(UNSPEC_AESIMC): Likewise.
	(UNSPEC_AESKEYGENASSIST): Likewise.
	(UNSPEC_PCLMULQDQ): Likewise.

	* config/i386/i386.opt (maes): New.
	(mpclmul): Likewise.

	* config/i386/sse.md (aesenc): New pattern.
	(aesenclast): Likewise.
	(aesdec): Likewise.
	(aesdeclast): Likewise.
	(aesimc): Likewise.
	(aeskeygenassist): Likewise.
	(pclmulqdq): Likewise.

	* config/i386/wmmintrin.h: New.

	* doc/extend.texi: Document AES and PCLMUL built-in function.

	* doc/invoke.texi: Document -maes and -mpclmul.

gcc/testsuite/

2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>

	* g++.dg/other/i386-2.C: Include <wmmintrin.h>.
	* g++.dg/other/i386-3.C: Likewise.
	* gcc.target/i386/sse-13.c: Likewise.
	* gcc.target/i386/sse-14.c: Likewise.

	* gcc.target/i386/aes-check.h: New.
	* gcc.target/i386/aesdec.c: Likewise.
	* gcc.target/i386/aesdeclast.c: Likewise.
	* gcc.target/i386/aesenc.c: Likewise.
	* gcc.target/i386/aesenclast.c: Likewise.
	* gcc.target/i386/aesimc.c: Likewise.
	* gcc.target/i386/aeskeygenassist.c: Likewise.
	* gcc.target/i386/pclmulqdq.c: Likewise.
	* gcc.target/i386/pclmul-check.h: Likewise.

	* gcc.target/i386/i386.exp (check_effective_target_aes): New.
	(check_effective_target_pclmul): Likewise.

From-SVN: r133902
2008-04-04 09:10:52 -07:00
Paolo Bonzini
e892493899 function.c (free_after_parsing): Replace with cxx_push_function_context from C++ front-end.
2008-04-03  Paolo Bonzini  <bonzini@gnu.org>

	* function.c (free_after_parsing): Replace with
	cxx_push_function_context from C++ front-end.
	(allocate_struct_function): Don't call langhook.
	* langhooks.h (struct lang_hooks_for_functions): Delete.
	(struct lang_hooks): Add back missing_noreturn_ok_p here, delete
	member "function".
	* langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
	(LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
	LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
	LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
	(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
	remove LANG_HOOKS_FUNCTION_INITIALIZER.
	* tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.

	* c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
	Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
	
cp:
2008-04-03  Paolo Bonzini  <bonzini@gnu.org>

	* decl.c (cxx_push_function_context): Delete.
	(cxx_pop_function_context): Delete.
	(start_preparsed_function): Merge cxx_push_function_context (!f->decl
	code only).
	* cp-objcp-common.h (LANG_HOOKS_FUNCTION_INIT,
	LANG_HOOKS_FUNCTION_FINAL): Delete.
	(LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P): Rename to
	LANG_HOOKS_MISSING_NORETURN_OK_P.
	* cp-tree.h (cxx_push_function_context, cxx_pop_function_context):
	Delete prototype.
	* semantics.c (current_stmt_tree): Fix comment.

From-SVN: r133900
2008-04-04 14:57:18 +00:00
Jakub Jelinek
05008a0c3c re PR c/35440 (ICE resulting in completely broken diagnostic)
PR c/35440
	* c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
	for all types.

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

From-SVN: r133897
2008-04-04 15:07:27 +02:00
Nick Clifton
5f4bebbf4e Fix typo
From-SVN: r133895
2008-04-04 11:45:46 +00:00
Nick Clifton
2a79c47f95 re PR middle-end/4334 (Flow control insn inside a basic block, arm/netbsd, gcc 3.1)
PR binutils/4334
        * acx.m4 (ACX_CHECK_CYGWIN_CAT_WORKS): New macro to check that
        cygwin builds are not running in textmode.

        * configure.ac: Run ACX_XHEXK_CYGWIN_CAT_WORKS for cygwin hosted
        builds.
        * configure: Regenerate.

From-SVN: r133894
2008-04-04 11:39:20 +00:00
Richard Guenther
c071e8bcc2 re PR middle-end/35823 (verify_gimple fails on taking 'Size of a String subprogram parameter)
2008-04-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/35823
	* fold-const.c (optimize_minmax_comparison): Use the correct
	type for the constant in the simplified comparison.

	* gnat.dg/pr35823.adb: New testcase.

From-SVN: r133893
2008-04-04 11:29:11 +00:00
NightStrike
c53a18d377 re PR other/35151 (Combine mingw names)
PR other/35151
        * configure.ac: Combine rules for mingw32 and mingw64.
        * configure: Regenerate.

From-SVN: r133892
2008-04-04 11:16:10 +00:00
Zuxy Meng
f4a1dd0dc7 driver-i386.c (describe_cache): Add l2_sizekb argument.
* config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
	Pass L2 size as "--param l2-cache-size" to the compiler.
	(decode_l2_cache): New function to decode L2 cache parameters using
	0x8000006 extended cpuid function.
	(detect_caches_amd): Determine parameters of L2 cache using
	decode_l2_caches function.
	(decode_caches_intel): Decode L2 cache parameters.
	(detect_caches_intel): Determine L2 cache parameters using
	decode_caches_intel and decode_l2_caches functions.

From-SVN: r133890
2008-04-04 09:39:12 +02:00
Bob Wilson
3ee909cb67 xtensa.c (xtensa_secondary_reload_class): Use a secondary input reload for subword loads from the constant pool.
* config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
        secondary input reload for subword loads from the constant pool.

From-SVN: r133889
2008-04-04 03:55:15 +00:00
Janis Johnson
383e91e472 re PR target/35713 (invalid type for va_arg with _Decimal128)
PR target/35713
	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
	  constants of the appropriate size for runtime calculations.

From-SVN: r133887
2008-04-04 00:20:48 +00:00
GCC Administrator
311b11ec9e Daily bump.
From-SVN: r133885
2008-04-04 00:17:42 +00:00
Janis Johnson
6db07dcbf6 re PR c/35712 (decimal float literal constant zero loses significant trailing zeroes)
2008-04-03  Janis Johnson  <janis187@us.ibm.com>

gcc/
	PR c/35712
	* dfp.c (decimal_from_decnumber): Retain trailing zeroes for
	  decimal-float literal constant zero.

testsuite/
	PR c/35712
	* gcc.dg/dfp/constants-zero.c: New test.

From-SVN: r133881
2008-04-03 23:49:35 +00:00
Jakub Jelinek
79addd1f35 re PR c/35738 (ICE with #pragma omp atomic and conversion from pointer to int)
PR c/35738
	* c-parser.c (c_parser_omp_atomic): Call
	default_function_array_conversion on the RHS.

	* gcc.dg/gomp/pr35738.c: New test.

From-SVN: r133876
2008-04-03 23:03:54 +02:00
Jakub Jelinek
5da250fca2 re PR middle-end/35818 (ICE on incomplete array in shared clause)
PR middle-end/35818
	* omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
	call is_variable_sized if decl has incomplete type.

	* gcc.dg/gomp/pr35818.c: New test.

From-SVN: r133875
2008-04-03 23:02:44 +02:00
Jakub Jelinek
637b5a8e7c re PR fortran/35786 (OpenMP Fortran PRIVATE on parameter gives error in gfc_finish_var_decl)
PR fortran/35786
	* openmp.c (resolve_omp_clauses): Diagnose if a clause symbol
	isn't a variable.

	* gfortran.dg/gomp/pr35786-1.f90: New test.
	* gfortran.dg/gomp/pr35786-2.f90: New test.

From-SVN: r133874
2008-04-03 23:01:26 +02:00
H.J. Lu
940f3b5219 i386-protos.h (ix86_aligned_p): Removed.
2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386-protos.h (ix86_aligned_p): Removed.

From-SVN: r133873
2008-04-03 13:02:54 -07:00
Adam Nemet
6ac935c150 mips.md (any_gt, [...]): New code iterators.
* config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
	iterators.
	(u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and
	leu.
	(sgt<u>): Merge sgt and sgtu into new expander.
	(sgt, sgtu): Remove expanders.
	(*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new
	pattern.
	(*sgt_<mode>, *sgtu_<mode>): Remove patterns.
	(*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
	*sgtu_<mode>_mips16 into new pattern.
	(*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
	(sge<u>): Merge sge and sgeu into new expander.
	(sge, sgeu): Remove expanders.
	(*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
	new pattern.
	(*sge_<mode>, second *sge_<mode>): Remove patterns.
	(slt<u>): Merge slt and sltu into new expander.
	(slt, sltu): Remove expanders.
	(*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new
	pattern.
	(*slt_<mode>, *sltu_<mode>): Remove patterns.
	(*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
	*sltu_<mode>_mips16 into new pattern.
	(*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
	(sle<u>): Merge sle and sleu into new expander.
	(sle, sleu): Remove expanders.
	(*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new
	pattern.
	(*sle_<mode>, *sleu_<mode>): Remove patterns.
	(*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
	*sleu_<mode>_mips16 into new pattern.
	(*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.

testsuite/

	* gcc.target/mips/scc-1.c: New test.

From-SVN: r133872
2008-04-03 19:31:28 +00:00
Jan Hubicka
6b0c2336ba re PR target/35795 (Revision 133787 breaks ia64)
2008-04-03  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/35795
	* alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
	* sparc/sparc.c (sparc_output_mi_thunk): Likewise.
	* ia64/ia64.c (ia64_output_mi_thunk): Likewise.
	* m68k/m68k.c (m68k_output_mi_thunk): Likewise.
	* score/score3.c (score3_output_mi_thunk): Likewise.
	* score/score7.c (score7_output_mi_thunk): Likewise.
	* mips/mips.c (mips_output_mi_thunk): Likewise.

From-SVN: r133868
2008-04-03 05:49:27 -07:00
Richard Guenther
b47ee38692 tree-vrp.c (extract_range_from_unary_expr): Handle all conversions.
2008-04-03  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (extract_range_from_unary_expr): Handle all
	conversions.  Simplify code.

	* gcc.dg/tree-ssa/vrp43.c: New testcase.
	* gcc.dg/tree-ssa/vrp44.c: Likewise.
	* gcc.dg/tree-ssa/vrp45.c: Likewise.

From-SVN: r133866
2008-04-03 09:33:27 +00:00
Kaz Kojima
2a7428c0c5 * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
From-SVN: r133865
2008-04-03 09:07:17 +00:00
Jakub Jelinek
60c4d1358a re PR c++/35741 (ICE with offsetof and references)
PR c++/35741
	* semantics.c (finish_offsetof): Undo effect of convert_from_reference
	before calling fold_offsetof.

	* g++.dg/other/offsetof5.C: New test.

From-SVN: r133863
2008-04-03 09:43:46 +02:00
Tom Tromey
6cba282a2c t-uclinux (generated_files): Add sysroot-suffix.h.
gcc/
2008-04-03  Tom Tromey  <tromey@redhat.com>
	    Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
	* config/bfin/t-bfin-linux (generated_files): Add
	linux-sysroot-suffix.h.
	* doc/install.texi (Prerequisites): Require make 3.80.
	* doc/sourcebuild.texi (Front End Directory): Document new
	variable.
	* Makefile.in (generated_files): New variable.
	(ALL_HOST_OBJS): New variable.
	($(ALL_HOST_OBJS)): New target.

gcc/java/
2008-04-03  Tom Tromey  <tromey@redhat.com>

	* Make-lang.in (java_OBJS): New variable.

gcc/objc/
2008-04-03  Tom Tromey  <tromey@redhat.com>

	* Make-lang.in (objc_OBJS): New variable.

gcc/objcp/
2008-04-03  Tom Tromey  <tromey@redhat.com>

	* Make-lang.in (obj-c++_OBJS): New variable.

gcc/cp/
2008-04-03  Tom Tromey  <tromey@redhat.com>

	* Make-lang.in (c++_OBJS): New variable.

gcc/fortran/
2008-04-03  Tom Tromey  <tromey@redhat.com>

	* Make-lang.in (fortran_OBJS): New variable.

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

From-SVN: r133862
2008-04-03 06:12:27 +00:00
Paolo Bonzini
9ff420f135 tree-inline.c (copy_generic_body, [...]): Export.
2007-03-09  Paolo Bonzini  <bonzini@gnu.org>

	* tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
	(remap_block): Call id->transform_lang_insert_block instead
	of langhook.
	(optimize_inline_calls, unsave_expr_now, tree_function_versioning):
	Set id.transform_lang_insert_block to NULL.
	(clone_body): Move to cp/optimize.c
	* tree-inline.h (struct copy_body_data): Change
	transform_lang_insert_block to function pointer.
	(copy_generic_body, copy_decl_no_change): Export.
	* langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
	* langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
	(LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.

	* c-tree.h (insert_block): Kill.
	* c-decl.c (insert_block): Kill.

cp:
2007-03-09  Paolo Bonzini  <bonzini@gnu.org>

	* optimize.c (clone_body): New, from tree-inline.c.

ada:
2007-03-09  Paolo Bonzini  <bonzini@gnu.org>

	* gigi.h (insert_block): Kill.
	* utils.c (insert_block): Kill.

java:
2007-03-09  Paolo Bonzini  <bonzini@gnu.org>

	* java-tree.h (insert_block): Kill.
	* decl.c (insert_block): Kill.

fortran:
2007-03-09  Paolo Bonzini  <bonzini@gnu.org>

	* f95-lang.c (insert_block): Kill.

From-SVN: r133861
2008-04-03 05:41:57 +00:00
Paolo Bonzini
d2784db4e5 c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED, [...]): Delete.
2008-04-03  Paolo Bonzini  <bonzini@gnu.org>

	* c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
	LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
	* c-tree.h (c_push_function_context, c_pop_function_context): Remove
	argument.
	* c-decl.c (c_push_function_context, c_pop_function_context): Remove
	argument, call {push,pop}_function_context from here.
	* c-parser.c: Use c_{push,pop}_function_context.

	* function.c (push_function_context_to): Move meat ...
	(push_function_context): ... here.  Simplify.
	* function.c (pop_function_context_from): Move meat ...
	(pop_function_context): ... here.  Simplify.
	* langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
	leave_nested).
	* langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
        LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
	(LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
	* tree.h (push_function_context_to, pop_function_context_from): Remove.

cp:
2008-04-03  Paolo Bonzini  <bonzini@gnu.org>

	* method.c (synthesize_method): Use {push,pop}_function_context.
	* name-lookup.c (push_to_top_level): Likewise.
	* parser.c (cp_parser_late_parsing_for_member): Likewise.

From-SVN: r133860
2008-04-03 05:38:32 +00:00
Paolo Bonzini
0a262d5466 re PR rtl-optimization/35281 (multiply with 0 generated for 64*32->64)
2008-04-03  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/35281
	* gcc.target/i386/pr35281.c: New test.

From-SVN: r133859
2008-04-03 05:36:26 +00:00
Ben Elliston
9e0aebcaee * expmed.c (extract_force_align_mem_bit_field): Remove.
From-SVN: r133858
2008-04-03 16:17:11 +11:00
Richard Guenther
55187c8a16 re PR middle-end/35800 (Revision 133835 failed to compile binutils)
PR middle-end/35800
	* expr.h (try_casesi): Adjust prototype.
	* expr.c (try_casesi): Take fallback label as extra parameter.
	Use that for gen_casesi if default_label is NULL.
	* stmt.c (expand_case): Pass fallback label to try_casesi,
	make sure to fill gaps with a fallback label if default_label
	is not present.

From-SVN: r133857
2008-04-03 02:09:20 +00:00
Richard Guenther
d2cf5f997f re PR middle-end/35800 (Revision 133835 failed to compile binutils)
PR middle-end/35800
	* gcc.c-torture/execute/pr35800.c: New test.

From-SVN: r133856
2008-04-03 02:08:13 +00:00
Dominique d'Humieres
d7087dd2ed re PR target/35801 (At revision 133817, bootstrap fails at libstdc++-v3/src/strstream.cc on powerpc-apple-darwin9)
2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>

        PR target/35801
        * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.

From-SVN: r133855
2008-04-02 20:33:05 -04:00
GCC Administrator
9fc8f665cb Daily bump.
From-SVN: r133853
2008-04-03 00:17:34 +00:00
Ben Elliston
609023fff0 expmed.c (extract_split_bit_field): Remove if (0) code.
* expmed.c (extract_split_bit_field): Remove if (0) code.
	* tree-ssa-structalias.c (do_sd_constraint): Likewise.
	(do_ds_constraint): Likewise.

From-SVN: r133848
2008-04-03 06:56:03 +11:00
Joseph Myers
93d45d9eda cppopts.texi (-dU): Document.
gcc:
	* doc/cppopts.texi (-dU): Document.
	* c-common.h (flag_dump_macros): Update comment.
	* c-opts.c (handle_OPT_d): Handle -dU.
	* c-ppoutput.c (macro_queue, define_queue, undef_queue,
	dump_queued_macros, cb_used_define, cb_used_undef): New.
	(init_pp_output): Handle -dU.
	(cb_line_change): Call dump_queued_macros.
	* toplev.c (decode_d_option): Accept -dU as preprocessor option.

gcc/testsuite:
	* gcc.dg/cpp/cmdlne-dU-1.c, gcc.dg/cpp/cmdlne-dU-2.c,
	gcc.dg/cpp/cmdlne-dU-3.c, gcc.dg/cpp/cmdlne-dU-4.c,
	gcc.dg/cpp/cmdlne-dU-5.c, gcc.dg/cpp/cmdlne-dU-6.c,
	gcc.dg/cpp/cmdlne-dU-7.c, gcc.dg/cpp/cmdlne-dU-8.c,
	gcc.dg/cpp/cmdlne-dU-9.c, gcc.dg/cpp/cmdlne-dU-10.c,
	gcc.dg/cpp/cmdlne-dU-11.c, gcc.dg/cpp/cmdlne-dU-12.c,
	gcc.dg/cpp/cmdlne-dU-13.c, gcc.dg/cpp/cmdlne-dU-14.c,
	gcc.dg/cpp/cmdlne-dU-15.c, gcc.dg/cpp/cmdlne-dU-16.c,
	gcc.dg/cpp/cmdlne-dU-17.c, gcc.dg/cpp/cmdlne-dU-18.c,
	gcc.dg/cpp/cmdlne-dU-19.c, gcc.dg/cpp/cmdlne-dU-20.c,
	gcc.dg/cpp/cmdlne-dU-21.c, gcc.dg/cpp/cmdlne-dU-22.c: New tests.

libcpp:
	* include/cpplib.h (struct cpp_callbacks): Add used_define,
	used_undef and before_define.
	(NODE_USED): Define.
	* directives.c (do_define, do_undef, undefine_macros, do_ifdef,
	do_ifndef, cpp_pop_definition): Handle new flag and use new
	callbacks.
	* expr.c (parse_defined): Handle new flag and use new callbacks.
	* macro.c (enter_macro_context, _cpp_free_definition): Handle new
	flag and use new callbacks.

From-SVN: r133847
2008-04-02 20:42:53 +01:00
Anatoly Sokolov
e6b69d0e56 predicates.md (io_address_operand): New predicate.
* config/avr/predicates.md (io_address_operand): New predicate. 
	* config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
	* config/avr/avr.c (avr_io_address_p): Remove function.
	(out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
	'avr_io_address_p' function.
	(out_movhi_r_mr): (Ditto.).
	(out_movqi_mr_r): (Ditto.).
	(out_movhi_mr_r): (Ditto.).
	(avr_address_cost): (Ditto.).

From-SVN: r133846
2008-04-02 23:21:01 +04:00
Uros Bizjak
7b1980026c i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values in 32bit mode...
* config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
        Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
        in 32bit mode when XMM registers are available to avoid store
        forwarding stalls.
        (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
        corresponding post-reload splitters.

From-SVN: r133845
2008-04-02 21:07:27 +02:00
Peter O'Gorman
ce52c73bed re PR bootstrap/35216 (Out of memory building java)
PR bootstrap/35216
* scripts/makemake.tcl: Replace org/omg build with build of all its subpackages.
* sources.am: Regenerate.
* Makefile.in: Regenerate.

From-SVN: r133842
2008-04-02 17:36:41 +00:00
H.J. Lu
abe08645a0 i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps and __builtin_ia32_shufpd.
2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
	and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
	__builtin_ia32_roundss.
	(ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
	__builtin_ia32_shufpd, __builtin_ia32_roundsd and
	__builtin_ia32_roundss.
	(ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
	IX86_BUILTIN_SHUFPD here.

From-SVN: r133838
2008-04-02 07:32:02 -07:00
H.J. Lu
94237c92ef i386.md (plogic): New.
2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (plogic): New.
	(plogicprefix): Likewise.

	* config/i386/mmx.md (mmx_<code><mode>3): New.
	(mmx_and<mode>3): Removed.
	(mmx_ior<mode>3): Likewise.
	(mmx_xor<mode>3): Likewise.

	* config/i386/sse.md (<code><mode>3): New.
	(*<code><mode>3): Likewise.
	(*<code><mode>3): Likewise.
	(<code><mode>3): Likewise.
	(*sse_<code><mode>3): Likewise.
	(*sse2_<code><mode>3): Likewise.
	(<code>tf3): Likewise.
	(*<code>tf3): Likewise.
	(and<mode>3): Likewise.
	(*and<mode>3): Likewise.
	(ior<mode>3): Removed.
	(*ior<mode>3): Likewise.
	(xor<mode>3): Likewise.
	(*xor<mode>3): Likewise.
	(*and<mode>3): Likewise.
	(*ior<mode>3): Likewise.
	(*xor<mode>3): Likewise.
	(and<mode>3): Likewise.
	(*sse_and<mode>3): Likewise.
	(*sse2_and<mode>3): Likewise.
	(andtf3): Likewise.
	(*andtf3): Likewise.
	(ior<mode>3): Likewise.
	(*sse_ior<mode>3): Likewise.
	(*sse2_ior<mode>3): Likewise.
	(iortf3): Likewise.
	(*iortf3): Likewise.
	(xor<mode>3): Likewise.
	(*sse_xor<mode>3): Likewise.
	(*sse2_xor<mode>3): Likewise.
	(xortf3): Likewise.
	(*xortf3): Likewise.

From-SVN: r133837
2008-04-02 06:53:38 -07:00
Richard Guenther
b7814a183c re PR tree-optimization/14495 ([tree-ssa] Propagate range info into a switch statement)
2008-04-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/14495
	PR tree-optimization/34793
	* tree-vrp.c (struct switch_update): New structure.
	(to_remove_edges, to_update_switch_stmts): New VECs.
	(simplify_switch_using_ranges): New function.  Remove not taken
	case labels and edges.
	(simplify_stmt_using_ranges): Call it.
	(identify_jump_threads): Mark edges we have queued for removal
	so we don't thread them.
	(execute_vrp): Remove edges queued for removal, update SWITCH_STMT
	case label vector.
	* tree-cfg.c (group_case_labels): Deal with missing default label.
	(tree_verify_flow_info): Allow missing default label.
	* stmt.c (emit_case_bit_tests): Deal with NULL default_label.
	(emit_case_nodes): Likewise.
	(expand_case): Do not rely on the default label to be present.
	* expr.c (try_casesi): Deal with NULL default_label.
	(do_tablejump): Likewise.

	* gcc.dg/tree-ssa/vrp41.c: New testcase.
	* gcc.dg/tree-ssa/vrp42.c: Likewise.

From-SVN: r133835
2008-04-02 12:54:08 +00:00
Richard Guenther
8aea0bf081 re PR tree-optimization/14495 ([tree-ssa] Propagate range info into a switch statement)
2008-04-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/14495
	* tree-vrp.c (vrp_visit_cond_stmt): Do not handle
	SWITCH_EXPR here ...
	(vrp_visit_switch_stmt): ... but here (new function).
	(find_case_label_index): New helper function.
	(vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.

	* gcc.dg/tree-ssa/vrp40.c: New testcase.

From-SVN: r133834
2008-04-02 12:51:37 +00:00
Paolo Bonzini
3f1c227804 fwprop.c: Fix ISO-C99ism.
2008-04-02  Paolo Bonzini  <bonzini@gnu.org>

	* fwprop.c: Fix ISO-C99ism.

From-SVN: r133833
2008-04-02 12:16:54 +00:00
Paolo Bonzini
da0f638158 re PR bootstrap/35752 (Combined gcc + binutils source tree doesn't bootstrap with --enable-shared)
2008-04-02  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/35752
	* Makefile.in (objdir): Set it here.
	* configure.ac: Not here.  Find dynamic linker characteristics.
	* exec-tool.in: Use them.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

From-SVN: r133832
2008-04-02 10:07:58 +00:00
Eric Botcazou
bf1e48d172 decl.c (gnat_to_gnu_entity): For a constant object whose type has self-referential size...
* decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
	type has self-referential size, get the size from the initializing
	expression directly if it is also a constant whose nominal type
	has self-referential size.

From-SVN: r133831
2008-04-02 10:06:57 +00:00
Paolo Bonzini
4846b4355c expr.c (expand_var): Delete it.
2008-04-02  Paolo Bonzini  <bonzini@gnu.org>

	* expr.c (expand_var): Delete it.
	* expr.h (expand_var): Delete prototype.
	* function.c (expand_function_start): Use expand_decl instead.
	* cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
	langhook.

From-SVN: r133830
2008-04-02 10:01:43 +00:00
Andy Hutchinson
4fefbcdbe5 re PR rtl-optimization/35542 (fwprop only propagates one operand)
2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>

	PR rtl-optimization/35542
	* fwprop.c (forward_propagate_and_simplify): Replace
	loc_reg_mentioned_in_p with reg_mentioned_p.

From-SVN: r133829
2008-04-02 09:56:17 +00:00