1. 19 May, 2010 14 commits
    • hooks.h (hook_tree_tree_tree_bool_null): Rename to... · f311c3b4
      	* hooks.h (hook_tree_tree_tree_bool_null): Rename to...
      	(hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
      	* hooks.c: Likewise.
      	* target-def.h (TARGET_FOLD_BUILTIN): Define to
      	hook_tree_tree_int_treep_bool_null.
      	* target.h: (struct gcc_target): Update signature of fold_builtin
      	field.
      	* doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
      	* builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
      	instead of the call expression.
      	(fold_builtin_call_array): Pass n and argarray directly.
      	(fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
      	consing a list.
      	* config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
      	MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
      	`i' and use it in place of `arity'.
      	* config/sparc/sparc.c (sparc_fold_builtin): Update signature.
      	Dereference `args' directly.
      	* config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
      
      From-SVN: r159585
      Nathan Froyd committed
    • sourcebuild.texi (Effective-Target Keywords): Document 3dnow, sse3, sse2. · 40f1bdd9
      	gcc:
      	* doc/sourcebuild.texi (Effective-Target Keywords): Document
      	3dnow, sse3, sse2.
      	(Directives): Document optional	dg-require-effective-target
      	selector.
      
      	gcc/testsuite:
      	* lib/target-supports.exp (check_effective_target_sse2): New proc.
      	* lib/target-supports-dg.exp (dg-require-effective-target): Allow
      	for optional selector.
      	* gcc.target/i386/i386.exp (check_effective_target_3dnow): New proc.
      	(check_effective_target_sse3): New proc.
      	* gcc.target/i386/math-torture/math-torture.exp: Load
      	target-supports.exp.
      	Only add options with -msse2 to MATH_TORTURE_OPTIONS if
      	check_effective_target_sse2.
      	* gcc.dg/vect/vect.exp: Return unless check_effective_target_sse2.
      	* gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp: Likewise.
      	* g++.dg/vect/vect.exp: Likewise.
      	* gfortran.dg/vect/vect.exp: Likewise.
      	* lib/fortran-torture.exp (get-fortran-torture-options): Only use
      	-msse2 if check_effective_target_sse2.
      
      	* gcc.target/i386/3dnow-1.c: Use dg-require-effective-target 3dnow.
      	* gcc.target/i386/3dnow-2.c: Likewise.
      	* gcc.target/i386/3dnowA-1.c: Likewise.
      	* gcc.target/i386/3dnowA-2.c: Likewise.
      	* gcc.target/i386/pr42549.c: Likewise.
      
      	* gcc.target/i386/sse3-addsubpd.c: Use dg-require-effective-target sse3.
      	* gcc.target/i386/sse3-addsubps.c: Likewise.
      	* gcc.target/i386/sse3-haddpd.c: Likewise.
      	* gcc.target/i386/sse3-haddps.c: Likewise.
      	* gcc.target/i386/sse3-hsubpd.c: Likewise.
      	* gcc.target/i386/sse3-hsubps.c: Likewise.
      	* gcc.target/i386/sse3-lddqu.c: Likewise.
      	* gcc.target/i386/sse3-movddup.c: Likewise.
      	* gcc.target/i386/sse3-movshdup.c: Likewise.
      	* gcc.target/i386/sse3-movsldup.c: Likewise.
      
      	* g++.dg/abi/mangle42.C: Use dg-require-effective-target sse2.
      	* g++.dg/ext/attrib35.C: Likewise.
      	* g++.dg/opt/pr40496.C: Likewise.
      	* g++.dg/other/i386-1.C: Likewise.
      	* g++.dg/other/i386-4.C: Likewise.
      	* g++.dg/other/pr34435.C: Likewise.
      	* g++.dg/other/pr39496.C: Likewise.
      	* g++.dg/other/pr40446.C: Likewise.
      	* gcc.dg/compat/union-m128-1_main.c: Likewise.
      	* gcc.dg/compat/vector-1a_main.c: Likewise.
      	* gcc.dg/compat/vector-2a_main.c: Likewise.
      	* gcc.dg/lto/20090206-1_0.c: Likewise.
      	* gcc.dg/pr34856.c: Likewise.
      	* gcc.dg/pr36584.c: Likewise.
      	* gcc.dg/pr36997.c: Likewise.  Adapt dg-message line number.
      	* gcc.dg/pr37544.c: Likewise.
      	* gcc.dg/torture/pr16104-1.c: Likewise.
      	* gcc.dg/torture/pr35771-1.c: Likewise.
      	* gcc.dg/torture/pr35771-2.c: Likewise.
      	* gcc.dg/torture/pr35771-3.c: Likewise.
      	* gcc.dg/torture/stackalign/alloca-2.c: Likewise.
      	* gcc.dg/torture/stackalign/alloca-3.c: Likewise.
      	* gcc.dg/torture/stackalign/push-1.c: Likewise.
      	* gcc.dg/torture/stackalign/vararg-3.c: Likewise.
      	* gcc.dg/tree-ssa/prefetch-6.c: Likewise.
      	* gcc.dg/tree-ssa/prefetch-7.c: Likewise.
      	* gcc.dg/vect/vect-debug-pr41926.c: Likewise.
      	* gcc.target/i386/20060512-1.c: Likewise.
      	* gcc.target/i386/20060512-3.c: Likewise.
      	* gcc.target/i386/all_one_m128i.c: Likewise.
      	* gcc.target/i386/float128-1.c: Likewise.
      	* gcc.target/i386/float128-2.c: Likewise.
      	* gcc.target/i386/fpcvt-1.c: Likewise.
      	* gcc.target/i386/fpcvt-2.c: Likewise.
      	* gcc.target/i386/fpcvt-3.c: Likewise.
      	* gcc.target/i386/fpprec-1.c: Likewise.
      	* gcc.target/i386/funcspec-9.c: Likewise.
      	* gcc.target/i386/incoming-1.c: Likewise.
      	* gcc.target/i386/incoming-12.c: Likewise.
      	* gcc.target/i386/incoming-2.c: Likewise.
      	* gcc.target/i386/incoming-3.c: Likewise.
      	* gcc.target/i386/incoming-4.c: Likewise.
      	* gcc.target/i386/incoming-6.c: Likewise.
      	* gcc.target/i386/incoming-7.c: Likewise.
      	* gcc.target/i386/incoming-8.c: Likewise.
      	* gcc.target/i386/opt-1.c: Likewise.
      	* gcc.target/i386/opt-2.c: Likewise.
      	* gcc.target/i386/ordcmp-1.c: Likewise.
      	* gcc.target/i386/pr17692.c: Likewise.
      	* gcc.target/i386/pr18614-1.c: Likewise.
      	* gcc.target/i386/pr22152.c: Likewise.
      	* gcc.target/i386/pr23570.c: Likewise.
      	* gcc.target/i386/pr23575.c: Likewise.
      	* gcc.target/i386/pr26449-1.c: Likewise.
      	* gcc.target/i386/pr26600.c: Likewise.
      	* gcc.target/i386/pr27790.c: Likewise.
      	* gcc.target/i386/pr28839.c: Likewise.
      	* gcc.target/i386/pr30970.c: Likewise.
      	* gcc.target/i386/pr32000-1.c: Likewise.
      	* gcc.target/i386/pr32000-2.c: Likewise.
      	* gcc.target/i386/pr32280.c: Likewise.
      	* gcc.target/i386/pr32661.c: Likewise.
      	* gcc.target/i386/pr32708-1.c: Likewise.
      	* gcc.target/i386/pr32961.c: Likewise.
      	* gcc.target/i386/pr33329.c: Likewise.
      	* gcc.target/i386/pr35714.c: Likewise.
      	* gcc.target/i386/pr35767-1.c: Likewise.
      	* gcc.target/i386/pr35767-1d.c: Likewise.
      	* gcc.target/i386/pr35767-1i.c: Likewise.
      	* gcc.target/i386/pr35767-2.c: Likewise.
      	* gcc.target/i386/pr35767-2d.c: Likewise.
      	* gcc.target/i386/pr35767-2i.c: Likewise.
      	* gcc.target/i386/pr35767-3.c: Likewise.
      	* gcc.target/i386/pr35767-5.c: Likewise.
      	* gcc.target/i386/pr36222-1.c: Likewise.
      	* gcc.target/i386/pr36578-1.c: Likewise.
      	* gcc.target/i386/pr36578-2.c: Likewise.
      	* gcc.target/i386/pr36992-1.c: Likewise.
      	* gcc.target/i386/pr37101.c: Likewise.
      	* gcc.target/i386/pr37216.c: Likewise.
      	* gcc.target/i386/pr37434-1.c: Likewise.
      	* gcc.target/i386/pr37434-2.c: Likewise.
      	* gcc.target/i386/pr37843-3.c: Likewise.
      	* gcc.target/i386/pr37843-4.c: Likewise.
      	* gcc.target/i386/pr39162.c: Likewise.
      	* gcc.target/i386/pr39315-1.c: Likewise.
      	* gcc.target/i386/pr39315-2.c: Likewise.
      	* gcc.target/i386/pr39315-3.c: Likewise.
      	* gcc.target/i386/pr39315-4.c: Likewise.
      	* gcc.target/i386/pr39445.c: Likewise.
      	* gcc.target/i386/pr39496.c: Likewise.
      	* gcc.target/i386/pr40809.c: Likewise.
      	* gcc.target/i386/pr40906-3.c: Likewise.
      	* gcc.target/i386/pr41019.c: Likewise.
      	* gcc.target/i386/pr42542-1.c: Likewise.
      	* gcc.target/i386/pr42542-2.c: Likewise.
      	* gcc.target/i386/pr42542-3.c: Likewise.
      	* gcc.target/i386/pr42542-3a.c: Likewise.
      	* gcc.target/i386/pr42881.c: Likewise.
      	* gcc.target/i386/push-1.c: Likewise.
      	* gcc.target/i386/quad-sse.c: Likewise.
      	* gcc.target/i386/reload-1.c: Likewise.
      	* gcc.target/i386/sse-10.c: Likewise.
      	* gcc.target/i386/sse-11.c: Likewise.
      	* gcc.target/i386/sse-15.c: Likewise.
      	* gcc.target/i386/sse-17.c: Likewise.
      	* gcc.target/i386/sse-18.c: Likewise.
      	* gcc.target/i386/sse-19.c: Likewise.
      	* gcc.target/i386/sse-4.c: Likewise.
      	* gcc.target/i386/sse-6.c: Likewise.
      	* gcc.target/i386/sse-vect-types.c: Likewise.
      	* gcc.target/i386/sse2-addpd-1.c: Likewise.
      	* gcc.target/i386/sse2-addsd-1.c: Likewise.
      	* gcc.target/i386/sse2-andnpd-1.c: Likewise.
      	* gcc.target/i386/sse2-andpd-1.c: Likewise.
      	* gcc.target/i386/sse2-cmpsd-1.c: Likewise.
      	* gcc.target/i386/sse2-comisd-1.c: Likewise.
      	* gcc.target/i386/sse2-comisd-2.c: Likewise.
      	* gcc.target/i386/sse2-comisd-3.c: Likewise.
      	* gcc.target/i386/sse2-comisd-4.c: Likewise.
      	* gcc.target/i386/sse2-comisd-5.c: Likewise.
      	* gcc.target/i386/sse2-comisd-6.c: Likewise.
      	* gcc.target/i386/sse2-copysign-vec.c: Likewise.
      	* gcc.target/i386/sse2-cvtdq2pd-1.c: Likewise.
      	* gcc.target/i386/sse2-cvtdq2ps-1.c: Likewise.
      	* gcc.target/i386/sse2-cvtpd2dq-1.c: Likewise.
      	* gcc.target/i386/sse2-cvtpd2ps-1.c: Likewise.
      	* gcc.target/i386/sse2-cvtps2dq-1.c: Likewise.
      	* gcc.target/i386/sse2-cvtps2pd-1.c: Likewise.
      	* gcc.target/i386/sse2-cvtsd2si-1.c: Likewise.
      	* gcc.target/i386/sse2-cvtsd2si-2.c: Likewise.
      	* gcc.target/i386/sse2-cvtsd2ss-1.c: Likewise.
      	* gcc.target/i386/sse2-cvtsi2sd-1.c: Likewise.
      	* gcc.target/i386/sse2-cvtsi2sd-2.c: Likewise.
      	* gcc.target/i386/sse2-cvtss2sd-1.c: Likewise.
      	* gcc.target/i386/sse2-cvttpd2dq-1.c: Likewise.
      	* gcc.target/i386/sse2-cvttps2dq-1.c: Likewise.
      	* gcc.target/i386/sse2-cvttsd2si-1.c: Likewise.
      	* gcc.target/i386/sse2-cvttsd2si-2.c: Likewise.
      	* gcc.target/i386/sse2-divpd-1.c: Likewise.
      	* gcc.target/i386/sse2-divsd-1.c: Likewise.
      	* gcc.target/i386/sse2-init-v16qi-1.c: Likewise.
      	* gcc.target/i386/sse2-init-v2di-1.c: Likewise.
      	* gcc.target/i386/sse2-init-v4si-1.c: Likewise.
      	* gcc.target/i386/sse2-init-v8hi-1.c: Likewise.
      	* gcc.target/i386/sse2-lrint-vec.c: Likewise.
      	* gcc.target/i386/sse2-lrintf-vec.c: Likewise.
      	* gcc.target/i386/sse2-maxpd-1.c: Likewise.
      	* gcc.target/i386/sse2-maxsd-1.c: Likewise.
      	* gcc.target/i386/sse2-minpd-1.c: Likewise.
      	* gcc.target/i386/sse2-minsd-1.c: Likewise.
      	* gcc.target/i386/sse2-mmx.c: Likewise.
      	* gcc.target/i386/sse2-movapd-1.c: Likewise.
      	* gcc.target/i386/sse2-movapd-2.c: Likewise.
      	* gcc.target/i386/sse2-movd-1.c: Likewise.
      	* gcc.target/i386/sse2-movd-2.c: Likewise.
      	* gcc.target/i386/sse2-movdqa-1.c: Likewise.
      	* gcc.target/i386/sse2-movdqa-2.c: Likewise.
      	* gcc.target/i386/sse2-movdqu-1.c: Likewise.
      	* gcc.target/i386/sse2-movdqu-2.c: Likewise.
      	* gcc.target/i386/sse2-movhpd-1.c: Likewise.
      	* gcc.target/i386/sse2-movhpd-2.c: Likewise.
      	* gcc.target/i386/sse2-movlpd-1.c: Likewise.
      	* gcc.target/i386/sse2-movlpd-2.c: Likewise.
      	* gcc.target/i386/sse2-movmskpd-1.c: Likewise.
      	* gcc.target/i386/sse2-movntdq-1.c: Likewise.
      	* gcc.target/i386/sse2-movntpd-1.c: Likewise.
      	* gcc.target/i386/sse2-movq-1.c: Likewise.
      	* gcc.target/i386/sse2-movq-2.c: Likewise.
      	* gcc.target/i386/sse2-movq-3.c: Likewise.
      	* gcc.target/i386/sse2-movsd-1.c: Likewise.
      	* gcc.target/i386/sse2-movsd-2.c: Likewise.
      	* gcc.target/i386/sse2-movupd-1.c: Likewise.
      	* gcc.target/i386/sse2-movupd-2.c: Likewise.
      	* gcc.target/i386/sse2-mulpd-1.c: Likewise.
      	* gcc.target/i386/sse2-mulsd-1.c: Likewise.
      	* gcc.target/i386/sse2-orpd-1.c: Likewise.
      	* gcc.target/i386/sse2-packssdw-1.c: Likewise.
      	* gcc.target/i386/sse2-packsswb-1.c: Likewise.
      	* gcc.target/i386/sse2-packuswb-1.c: Likewise.
      	* gcc.target/i386/sse2-paddb-1.c: Likewise.
      	* gcc.target/i386/sse2-paddd-1.c: Likewise.
      	* gcc.target/i386/sse2-paddq-1.c: Likewise.
      	* gcc.target/i386/sse2-paddsb-1.c: Likewise.
      	* gcc.target/i386/sse2-paddsw-1.c: Likewise.
      	* gcc.target/i386/sse2-paddusb-1.c: Likewise.
      	* gcc.target/i386/sse2-paddusw-1.c: Likewise.
      	* gcc.target/i386/sse2-paddw-1.c: Likewise.
      	* gcc.target/i386/sse2-pand-1.c: Likewise.
      	* gcc.target/i386/sse2-pandn-1.c: Likewise.
      	* gcc.target/i386/sse2-pavgb-1.c: Likewise.
      	* gcc.target/i386/sse2-pavgw-1.c: Likewise.
      	* gcc.target/i386/sse2-pcmpeqb-1.c: Likewise.
      	* gcc.target/i386/sse2-pcmpeqd-1.c: Likewise.
      	* gcc.target/i386/sse2-pcmpeqw-1.c: Likewise.
      	* gcc.target/i386/sse2-pcmpgtb-1.c: Likewise.
      	* gcc.target/i386/sse2-pcmpgtd-1.c: Likewise.
      	* gcc.target/i386/sse2-pcmpgtw-1.c: Likewise.
      	* gcc.target/i386/sse2-pmaddwd-1.c: Likewise.
      	* gcc.target/i386/sse2-pmaxsw-1.c: Likewise.
      	* gcc.target/i386/sse2-pmaxub-1.c: Likewise.
      	* gcc.target/i386/sse2-pminsw-1.c: Likewise.
      	* gcc.target/i386/sse2-pminub-1.c: Likewise.
      	* gcc.target/i386/sse2-pmovmskb-1.c: Likewise.
      	* gcc.target/i386/sse2-pmulhuw-1.c: Likewise.
      	* gcc.target/i386/sse2-pmulhw-1.c: Likewise.
      	* gcc.target/i386/sse2-pmullw-1.c: Likewise.
      	* gcc.target/i386/sse2-pmuludq-1.c: Likewise.
      	* gcc.target/i386/sse2-por-1.c: Likewise.
      	* gcc.target/i386/sse2-psadbw-1.c: Likewise.
      	* gcc.target/i386/sse2-pshufd-1.c: Likewise.
      	* gcc.target/i386/sse2-pshufhw-1.c: Likewise.
      	* gcc.target/i386/sse2-pshuflw-1.c: Likewise.
      	* gcc.target/i386/sse2-pslld-1.c: Likewise.
      	* gcc.target/i386/sse2-pslld-2.c: Likewise.
      	* gcc.target/i386/sse2-pslldq-1.c: Likewise.
      	* gcc.target/i386/sse2-psllq-1.c: Likewise.
      	* gcc.target/i386/sse2-psllq-2.c: Likewise.
      	* gcc.target/i386/sse2-psllw-1.c: Likewise.
      	* gcc.target/i386/sse2-psllw-2.c: Likewise.
      	* gcc.target/i386/sse2-psrad-1.c: Likewise.
      	* gcc.target/i386/sse2-psrad-2.c: Likewise.
      	* gcc.target/i386/sse2-psraw-1.c: Likewise.
      	* gcc.target/i386/sse2-psraw-2.c: Likewise.
      	* gcc.target/i386/sse2-psrld-1.c: Likewise.
      	* gcc.target/i386/sse2-psrld-2.c: Likewise.
      	* gcc.target/i386/sse2-psrldq-1.c: Likewise.
      	* gcc.target/i386/sse2-psrlq-1.c: Likewise.
      	* gcc.target/i386/sse2-psrlq-2.c: Likewise.
      	* gcc.target/i386/sse2-psrlw-1.c: Likewise.
      	* gcc.target/i386/sse2-psrlw-2.c: Likewise.
      	* gcc.target/i386/sse2-psubb-1.c: Likewise.
      	* gcc.target/i386/sse2-psubd-1.c: Likewise.
      	* gcc.target/i386/sse2-psubq-1.c: Likewise.
      	* gcc.target/i386/sse2-psubsb-1.c: Likewise.
      	* gcc.target/i386/sse2-psubsw-1.c: Likewise.
      	* gcc.target/i386/sse2-psubw-1.c: Likewise.
      	* gcc.target/i386/sse2-punpckhbw-1.c: Likewise.
      	* gcc.target/i386/sse2-punpckhdq-1.c: Likewise.
      	* gcc.target/i386/sse2-punpckhqdq-1.c: Likewise.
      	* gcc.target/i386/sse2-punpckhwd-1.c: Likewise.
      	* gcc.target/i386/sse2-punpcklbw-1.c: Likewise.
      	* gcc.target/i386/sse2-punpckldq-1.c: Likewise.
      	* gcc.target/i386/sse2-punpcklqdq-1.c: Likewise.
      	* gcc.target/i386/sse2-punpcklwd-1.c: Likewise.
      	* gcc.target/i386/sse2-pxor-1.c: Likewise.
      	* gcc.target/i386/sse2-set-epi32-1.c: Likewise.
      	* gcc.target/i386/sse2-set-epi64x-1.c: Likewise.
      	* gcc.target/i386/sse2-set-v16qi-1.c: Likewise.
      	* gcc.target/i386/sse2-set-v16qi-2.c: Likewise.
      	* gcc.target/i386/sse2-set-v16qi-3.c: Likewise.
      	* gcc.target/i386/sse2-set-v8hi-1.c: Likewise.
      	* gcc.target/i386/sse2-set-v8hi-1a.c: Likewise.
      	* gcc.target/i386/sse2-set-v8hi-2.c: Likewise.
      	* gcc.target/i386/sse2-set-v8hi-2a.c: Likewise.
      	* gcc.target/i386/sse2-shufpd-1.c: Likewise.
      	* gcc.target/i386/sse2-shufps-1.c: Likewise.
      	* gcc.target/i386/sse2-sqrtpd-1.c: Likewise.
      	* gcc.target/i386/sse2-subpd-1.c: Likewise.
      	* gcc.target/i386/sse2-subsd-1.c: Likewise.
      	* gcc.target/i386/sse2-ucomisd-1.c: Likewise.
      	* gcc.target/i386/sse2-ucomisd-2.c: Likewise.
      	* gcc.target/i386/sse2-ucomisd-3.c: Likewise.
      	* gcc.target/i386/sse2-ucomisd-4.c: Likewise.
      	* gcc.target/i386/sse2-ucomisd-5.c: Likewise.
      	* gcc.target/i386/sse2-ucomisd-6.c: Likewise.
      	* gcc.target/i386/sse2-unpack-1.c: Likewise.
      	* gcc.target/i386/sse2-unpckhpd-1.c: Likewise.
      	* gcc.target/i386/sse2-unpcklpd-1.c: Likewise.
      	* gcc.target/i386/sse2-vec-1.c: Likewise.
      	* gcc.target/i386/sse2-vec-2.c: Likewise.
      	* gcc.target/i386/sse2-vec-3.c: Likewise.
      	* gcc.target/i386/sse2-vec-4.c: Likewise.
      	* gcc.target/i386/sse2-vec-5.c: Likewise.
      	* gcc.target/i386/sse2-vec-6.c: Likewise.
      	* gcc.target/i386/sse2-xorpd-1.c: Likewise.
      	* gcc.target/i386/ssefn-2.c: Likewise.
      	* gcc.target/i386/ssefn-4.c: Likewise.
      	* gcc.target/i386/ssefp-1.c: Likewise.
      	* gcc.target/i386/ssefp-2.c: Likewise.
      	* gcc.target/i386/sseregparm-3.c: Likewise.
      	* gcc.target/i386/sseregparm-4.c: Likewise.
      	* gcc.target/i386/sseregparm-5.c: Likewise.
      	* gcc.target/i386/sseregparm-6.c: Likewise.
      	* gcc.target/i386/sseregparm-7.c: Likewise.
      	* gcc.target/i386/ssetype-1.c: Likewise.
      	* gcc.target/i386/ssetype-2.c: Likewise.
      	* gcc.target/i386/ssetype-3.c: Likewise.
      	* gcc.target/i386/ssetype-4.c: Likewise.
      	* gcc.target/i386/ssetype-5.c: Likewise.
      	* gcc.target/i386/unordcmp-1.c: Likewise.
      	* gcc.target/i386/vararg-1.c: Likewise.
      	* gcc.target/i386/vararg-2.c: Likewise.
      	* gcc.target/i386/vararg-3.c: Likewise.
      	* gcc.target/i386/vararg-4.c: Likewise.
      	* gcc.target/i386/vararg-7.c: Likewise.
      	* gcc.target/i386/vararg-8.c: Likewise.
      	* gcc.target/i386/vecinit-1.c: Likewise.
      	* gcc.target/i386/vecinit-2.c: Likewise.
      	* gcc.target/i386/vecinit-3.c: Likewise.
      	* gcc.target/i386/vecinit-4.c: Likewise.
      	* gcc.target/i386/vecinit-5.c: Likewise.
      	* gcc.target/i386/vecinit-6.c: Likewise.
      	* gcc.target/i386/vectorize2.c: Likewise.
      	* gcc.target/i386/vectorize3.c: Likewise.
      	* gcc.target/i386/vectorize4.c: Likewise.
      	* gcc.target/i386/vectorize6.c: Likewise.
      	* gcc.target/i386/vectorize7.c: Likewise.
      	* gcc.target/i386/vectorize8.c: Likewise.
      	* gcc.target/i386/vperm-v2df.c: Likewise.
      	* gcc.target/i386/vperm-v2di.c: Likewise.
      	* gcc.target/i386/vperm-v4si-1.c: Likewise.
      	* gcc.target/i386/xorps-sse2.c: Likewise.
      	* gcc.target/i386/xorps.c: Likewise.
      	* gfortran.dg/graphite/pr42326-1.f90: Likewise.
      	* gfortran.dg/graphite/pr42326.f90: Likewise.
      	* gfortran.dg/vect/fast-math-mgrid-resid.f: Likewise.
      
      From-SVN: r159584
      Rainer Orth committed
    • re PR lto/44196 (lto1: ICE: tree check: expected field_decl, have type_decl in… · 817c2996
      re PR lto/44196 (lto1: ICE: tree check: expected field_decl, have type_decl in gimple_types_compatible_p, at gimple.c:3597)
      
      2010-05-19  Richard Guenther  <rguenther@suse.de>
      
      	PR lto/44196
      	* tree.c (find_decls_types_r): Walk BLOCKs and its vars.
      
      	* g++.dg/lto/20100519-1_0.C: New testcase.
      
      From-SVN: r159582
      Richard Guenther committed
    • invoke.texi (-fwhopr): Document new optional jobs argument. · c04b6b38
      2010-05-19  Richard Guenther  <rguenther@suse.de>
      
      	* doc/invoke.texi (-fwhopr): Document new optional jobs argument.
      	* common.opt (fwhopr=): New.
      	* opts.c (common_handle_option): Handle OPT_fwhopr.
      	* gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
      	* collect2.c (main): Match -fwhopr*.
      	* lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
      	Execute ltrans stage in parallel when jobs is bigger than 1.
      
      From-SVN: r159573
      Richard Guenther committed
    • configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as output, too. · d416abb4
      	* configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
      	output, too.
      	(libffi_cv_as_ascii_pseudo_op): Check for .ascii.
      	(libffi_cv_as_string_pseudo_op): Check for .string.
      	* configure: Regenerate.
      	* fficonfig.h.in: Regenerate.
      	* src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
      
      From-SVN: r159570
      Rainer Orth committed
    • sfp-machine.h (FP_HANDLE_EXCEPTIONS): Support Sun assembler syntax. · ed104137
      	libgcc:
      	* config/i386/32/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Support Sun
      	assembler syntax.
      
      	gcc:
      	* config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
      	pentiumpro on Solaris 8/x86 with Sun as.
      	* configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
      	hidden alias bug.
      	(gcc_cv_as_ix86_quad): Check for .quad directive.
      	* configure: Regenerate.
      	* config.in: Regenerate.
      	* config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
      
      From-SVN: r159569
      Rainer Orth committed
    • re PR fortran/42360 (intent(out)-dummy-not-set warning for types depends on… · 16e520b6
      re PR fortran/42360 (intent(out)-dummy-not-set warning for types depends on order of component initializers)
      
      gcc/fortran/:
      2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
      
      	PR fortran/42360
      	* gfortran.h (gfc_has_default_initializer): New.
      	* expr.c (gfc_has_default_initializer): New.
      	* resolve.c (has_default_initializer): Removed, use
      	gfc_has_default_initializer() instead. Updated all callers.
      	* trans-array.c (has_default_initializer): Removed, use
      	gfc_has_default_initializer() instead. Updated all callers.
      	* trans-decl.c (generate_local_decl): Do not check the
      	first component only to check for initializers, but use
      	gfc_has_default_initializer() instead.
      
      gcc/testsuite/:
      2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
      
      	PR fortran/42360
      	* gfortran.dg/warn_intent_out_not_set.f90: New.
      
      From-SVN: r159562
      Daniel Franke committed
    • re PR fortran/38404 (Warning message identifies incorrect line) · 66faed76
      gcc/fortran/:
      2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
      
      	PR fortran/38404
      	* primary.c (match_string_constant): Move start_locus just inside 
      	the string.
      	* data.c (create_character_intializer): Clarified truncation warning.
      
      gcc/testsuite/:
      2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
      
      	PR fortran/38404
      	* gfortran.dg/data_char_1.f90: Updated warning message.
      	* gfortran.dg/data_array_6.f: New.
      
      From-SVN: r159561
      Daniel Franke committed
    • ipa-prop.c (ipa_print_node_jump_functions): Print jump functions also for indirect edges. · 749aa96d
      2010-05-19  Martin Jambor  <mjambor@suse.cz>
      
      	* ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
      	also for indirect edges.  Actual printing moved...
      	(ipa_print_node_jump_functions_for_edge): ...here.
      	(ipa_compute_jump_functions): Renamed to
      	ipa_compute_jump_functions_for_edge and made static.
      	(ipa_compute_jump_functions): New function.
      	(make_edge_direct_to_target): Check if the number of arguments on
      	the newly direct edge is the same as the number of parametrs of
      	the callee.
      	* ipa-cp.c (ipcp_init_stage): Most functionality moved to new
      	ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
      	* ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
      	analysis functions unconditionally, call the new
      	ipa_analyze_params_uses on the node instead of every edge.
      
      	* testsuite/g++.dg/ipa/ivinline-8.C: New test.
      	* testsuite/gcc.dg/ipa/iinline-2.c: New test.
      
      From-SVN: r159559
      Martin Jambor committed
    • re PR fortran/34505 (FLOAT/SNGL: Not accepted as actual argument; diagnostics problems) · c9018c71
      gcc/fortran/:
      2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
      
      	PR fortran/34505
      	* intrinsic.h (gfc_check_float): New prototype.
      	(gfc_check_sngl): New prototype.
      	* check.c (gfc_check_float): New.
      	(gfc_check_sngl): New.
      	* intrinsic.c (add_functions): Moved DFLOAT from aliasing DBLE
      	to be a specific for REAL. Added check routines for FLOAT, DFLOAT
      	and SNGL.
      	* intrinsic.texi: Removed individual nodes of FLOAT, DFLOAT and SNGL,
      	added them to the list of specifics of REAL instead.
      
      gcc/testsuite/:
      2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
      
      	PR fortran/34505
      	* gfortran.dg/dfloat_1.f90: Add warnings for non-default kind
      	arguments; add check for return value kind.
      	* gfortran.dg/float_1.f90: Likewise.
      
      From-SVN: r159558
      Daniel Franke committed
    • tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step to tree. · 81f32326
      2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
      
              * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
      	to tree.
              (dump_mem_ref): Adopt debug code to handle a tree as step.  This
      	also checks for a constant int vs.  non-constant but
      	loop-invariant steps.
              (find_or_create_group): Change the sort algorithm to only consider
      	steps that are constant ints.
              (idx_analyze_ref): Adopt code to handle a tree instead of a
      	HOST_WIDE_INT for step.
              (gather_memory_references_ref): Handle tree instead of int and be
      	prepared to see a NULL_TREE.
              (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
      	prefetches if the step cannot be calculated at compile time.
              (issue_prefetch_ref): Issue prefetches for non-constant but
      	loop-invariant steps.
      
      From-SVN: r159557
      Christian Borntraeger committed
    • * expr.c (pop_arguments): Fix use of undeclared variable. · 8abd2cbe
      From-SVN: r159555
      Nathan Froyd committed
    • Revert: · 39b27b3a
      	2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
      
      	* tree.h (build_call_list): Remove.
      	* tree.c (build_call_list): Remove.
      
      From-SVN: r159554
      Nathan Froyd committed
    • Daily bump. · 0a9f28e7
      From-SVN: r159553
      GCC Administrator committed
  2. 18 May, 2010 14 commits
  3. 17 May, 2010 12 commits
    • cgraph.c (cgraph_create_virtual_clone): Only check versionable_function_p when… · 36576655
      cgraph.c (cgraph_create_virtual_clone): Only check versionable_function_p when not in wpa and checking is enabled.
      
      
      	* cgraph.c (cgraph_create_virtual_clone): Only check
      	versionable_function_p when not in wpa and checking is enabled.
      	* cgrpahunit.c (cgraph_materialize_all_clones): Stabilize after
      	there are no more functions to materialize.
      	
      	* lto/lto.c (lto_1_to_1_map): Partition non-inline clones.
      	(lto_promote_cross_file_statics): Deal with non-inline clones.
      
      From-SVN: r159518
      Jan Hubicka committed
    • cgraph.h (struct ipa_replace_map): Add parm_num parameter. · 922f15c2
      
      	* cgraph.h (struct ipa_replace_map): Add parm_num parameter.
      	* lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
      	New functions.
      	(output_cgraph): Call output_cgraph_opt_summary.
      	(input_cgrpah): Call input_cgraph_opt_summary.
      	(output_cgraph_opt_summary_p, output_node_opt_summary,
      	input_node_opt_summary, input_cgraph_opt_section): New functions.
      	* lto-section-in.c (lto_section_name): Add cgraphopt.
      	* tree-inline.c (tree_function_versioning): Handle parm_num.
      	* lto-streamer.c (lto_get_section_name): Handle cgraphopt.
      	* lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
      
      From-SVN: r159517
      Jan Hubicka committed
    • lto.c (lto_materialize_function): Announce function when reading body... · 28632d63
      	* lto.c (lto_materialize_function): Announce function when
      	reading body; allocate_struct_function only when reading body;
      	do not finalize local statics; ggc_collect after reading;
      	do not mark reachable node.
      	(materialize_cgraph): Do not announce function.
      
      From-SVN: r159516
      Jan Hubicka committed
    • Also apply the insn to prefetch ratio heuristic to loops with known trip count. · d3a9b459
      2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
      
      	* doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
      	* tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
      	the insn to prefetch ratio heuristic to loops with known trip count.
      
      From-SVN: r159515
      Changpeng Fang committed
    • Define PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO heuristic. · 8532678c
      2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
      
      	* tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
      	(schedule_prefetches): Do not generate a prefetch if the unroll factor
      	is far from what is required by the prefetch.
      
      From-SVN: r159514
      Changpeng Fang committed
    • ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used. · 339f49ec
      
      	* ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
      	(ipcp_estimate_growth): Likewise.
      	(ipcp_const_param_count): Likewise.
      	(ipcp_insert_stage): Likewise.
      	* ipa-prop.c (visit_load_for_mod_analysis): New function.
      	(visit_store_addr_for_mod_analysis): Set used flag.
      	(ipa_detect_param_modifications): Set used flag for SSE params;
      	update use of walk_stmt_load_store_addr_ops.
      	(ipa_print_node_params): Print used flag.
      	(ipa_write_node_info): Stream used flag.
      	(ipa_read_node_info): Likewise.
      	* ipa-prop.h (struct ipa_param_descriptor): Add used field.
      	(ipa_is_param_used): New function.
      	(lto_ipa_fixup_call_notes): Remove unused declaration.
      
      From-SVN: r159513
      Jan Hubicka committed
    • re PR target/44074 (Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line) · 2433310d
      	PR target/44074
      	* configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
      	* configure: Regenerate.
      	* config.in: Regenerate.
      	* config/i386/i386.c (print_operand) <case ;>: Also print ; if
      	!HAVE_AS_IX86_REP_LOCK_PREFIX.
      	Don't emit whitespace.
      	* config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
      	(*rep_movsi): Likewise.
      	(*rep_movsi_rex64): Likewise.
      	(*rep_movqi): Likewise.
      	(*rep_movqi_rex64): Likewise.
      	(*rep_stosdi_rex64): Likewise.
      	(*rep_stossi): Likewise.
      	(*rep_stossi_rex64): Likewise.
      	(*rep_stosqi): Likewise.
      	(*rep_stosqi_rex64): Likewise.
      	(*cmpstrnqi_nz_1): Use {%;} after repz.
      	(*cmpstrnqi_nz_rex_1): Likewise.
      	(*cmpstrnqi_1): Likewise.
      	(*cmpstrnqi_rex_1): Likewise.
      	(*strlenqi_1): Use {%;} after repnz.
      	(*strlenqi_rex_1): Likewise.
      	* config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
      	(*sync_compare_and_swap<mode>): Likewise.
      	(sync_double_compare_and_swap<mode>): Likewise.
      	(*sync_double_compare_and_swapdi_pic): Likewise.
      	(sync_old_add<mode>): Likewise.
      	(sync_add<mode>): Likewise.
      	(sync_sub<mode>): Likewise.
      	(sync_<code><mode>): Likewise.
      
      From-SVN: r159512
      Rainer Orth committed
    • re PR fortran/43990 ([OOP] ICE in output_constructor_regular_field, at varasm.c:4995) · 94ea6939
      2010-05-17  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/43990
      	* trans-expr.c (gfc_conv_structure): Remove unneeded and buggy code.
      	This is now handled via 'gfc_class_null_initializer'.
      
      
      2010-05-17  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/43990
      	* gfortran.dg/class_21.f03: New.
      
      From-SVN: r159511
      Janus Weil committed
    • call.c (struct z_candidate): Add explicit_targs field. · f18ea1bf
      	* call.c (struct z_candidate): Add explicit_targs field.
      	(add_template_candidate_real): Set it.
      	(build_over_call): Use it to control init-list warning.
      
      From-SVN: r159510
      Jason Merrill committed
    • re PR c++/44157 ([C++0x] GCC wrongly takes a std::initializer_list argument as non-deduced context) · 9d2b7551
      	PR c++/44157
      	* call.c (build_over_call): Limit init-list deduction warning to
      	cases where the argument is actually an init-list.
      
      From-SVN: r159509
      Jason Merrill committed
    • re PR c++/44158 ([C++0x] wrong overload resolution for copy-initialization from an rvalue) · c8361db1
      	PR c++/44158
      	* call.c (build_over_call): Don't do bitwise copy for move ctor.
      
      From-SVN: r159508
      Jason Merrill committed
    • cgraph.h (cgraph_indirect_call_info): New fields anc_offset, otr_token and polymorphic. · b258210c
      2010-05-17  Martin Jambor  <mjambor@suse.cz>
      
      	* cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
      	otr_token and polymorphic.
      	* cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
      	(cgraph_clone_edge): Copy the above fields.
      	* tree.c (get_binfo_at_offset): New function.
      	* tree.h (get_binfo_at_offset): Declare.
      	* ipa-prop.h (enum jump_func_type): Added known_type jump function
      	type, reordered items, updated comments.
      	(union jump_func_value): Added base_type field, reordered fields.
      	(enum ipa_lattice_type): Moved down in the file.
      	(struct ipa_param_descriptor): New field polymorphic.
      	(ipa_is_param_polymorphic): New function.
      	* ipa-prop.c: Include gimple.h and gimple-fold.h.
      	(ipa_print_node_jump_functions): Print known type jump functions.
      	(compute_complex_pass_through): Renamed to...
      	(compute_complex_assign_jump_func): this.
      	(compute_complex_ancestor_jump_func): New function.
      	(compute_known_type_jump_func): Likewise.
      	(compute_scalar_jump_functions): Create known type and complex ancestor
      	jump functions.
      	(ipa_note_param_call): New parameter polymorphic, set the corresponding
      	flag in the call note accordingly.
      	(ipa_analyze_call_uses): Renamed to...
      	(ipa_analyze_indirect_call_uses): this.  New parameter target, define
      	variable var only in the block where it is used.
      	(ipa_analyze_virtual_call_uses): New function.
      	(ipa_analyze_call_uses): Likewise.
      	(combine_known_type_and_ancestor_jfs): Likewise.
      	(update_jump_functions_after_inlining): Implemented handling of a
      	number of new jump function types combination.
      	(print_edge_addition_message): Removed.
      	(make_edge_direct_to_target): New function.
      	(try_make_edge_direct_simple_call): Likewise.
      	(try_make_edge_direct_virtual_call): Likewise.
      	(update_call_notes_after_inlining): Renamed to...
      	(update_indirect_edges_after_inlining): this.  Moved edge creation for
      	indirect calls to try_make_edge_direct_simple_call, also calls
      	try_make_edge_direct_virtual_call for virtual calls.
      	(ipa_print_node_params): Changed the header message.
      	(ipa_write_jump_function): Stream also known type jump functions.
      	(ipa_read_jump_function): Likewise.
      	(ipa_write_indirect_edge_info): Stream new fields in
      	cgraph_indirect_call_info.
      	(ipa_read_indirect_edge_info): Likewise.
      	* Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
      	GIMPLE_FOLD_H.
      
      	* testsuite/g++.dg/ipa/ivinline-1.C: New test.
      	* testsuite/g++.dg/ipa/ivinline-2.C: New test.
      	* testsuite/g++.dg/ipa/ivinline-3.C: New test.
      	* testsuite/g++.dg/ipa/ivinline-4.C: New test.
      	* testsuite/g++.dg/ipa/ivinline-5.C: New test.
      	* testsuite/g++.dg/ipa/ivinline-6.C: New test.
      
      From-SVN: r159507
      Martin Jambor committed