88196 Commits

Author SHA1 Message Date
Jakub Jelinek
b2febff9b7 re PR c++/36662 (vector vs template)
PR c++/36662
	* decl2.c (is_late_template_attribute): If the first attribute
	argument is IDENTIFIER_NODE, don't consider it when checking
	if arguments are value or type dependent.

	* g++.dg/ext/altivec-16.C: New test.

From-SVN: r137287
2008-06-30 22:41:29 +02:00
Kenneth Zadeck
727683a51c ifcvt.c (cond_move_process_if_block): Free vectors on false return.
2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>

	* ifcvt.c (cond_move_process_if_block): Free vectors on false
	return.

From-SVN: r137285
2008-06-30 19:31:42 +00:00
Kenneth Zadeck
370f38e847 df-scan.c (df_scan_free_ref_vec, [...]): New macros.
2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New
	macros.
       	(df_scan_free_internal): Free data structures not
	allocated in storage pools.
	(df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
	(df_refs_add_to_chains): Use df_scan_free_ref_vec and 
	df_scan_free_mws_vec.
	* dse.c (dse_step6): Free offset_map_p and offset_map_n
	unconditionally.

From-SVN: r137284
2008-06-30 19:28:24 +00:00
H.J. Lu
5bb7759886 i386.c (contains_aligned_value_p): Return true for __float128.
2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (contains_aligned_value_p): Return true
	for __float128.
	(ix86_function_arg_boundary): Return its natural boundary for
	for __float128.
	(return_in_memory_32): Don't check TDmode.
	(ix86_split_to_parts): Support splitting into 4 parts and
	support TFmode for 32bit target.
	(ix86_split_long_move): Support splitting into 4 parts.
	(bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
	for SSE2.
	(ix86_init_mmx_sse_builtins): Move __float80 and __float128
	to ...
	(ix86_init_builtins): Here.
	(ix86_scalar_mode_supported_p): Always return true for TFmode.
	(ix86_c_mode_for_suffix): Always return TFmode and XFmode for
	'q' and 'w', respectively. 

	* config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
	TARGET_64BIT.
	(movtf_internal): Likewise.
	(<code>tf2): Likewise.
	(*absnegtf2_sse): Likewise.
	(copysign<mode>3): Likewise.
	(copysign<mode>3_const): Likewise.
	(copysign<mode>3_var): Likewise.
	(define_split UNSPEC_COPYSIGN): Likewise.
	* config/i386/sse.md (*nandtf3): Likewise.
	(<code>tf3): Likewise.
	(*<code>tf3): Likewise.

From-SVN: r137276
2008-06-30 11:00:42 -07:00
Joey Ye
38aa4d08b7 global.c (compute_regsets): Set frame_pointer_needed here.
2008-06-30  Joey Ye  <joey.ye@intel.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* global.c (compute_regsets): Set frame_pointer_needed here.

	* reload1.c (init_elim_table): Don't set frame_pointer_needed
	here.

Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>

From-SVN: r137275
2008-06-30 10:51:49 -07:00
Aaron W. LaFramboise
aad416fbb5 install.texi (specific): Expand Windows build notes.
2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>

	* doc/install.texi (specific): Expand Windows build notes.

From-SVN: r137273
2008-06-30 06:21:19 -06:00
Ira Rosen
e2cefdd9d0 re PR tree-optimization/36648 (segfault in global constructor with -O3)
PR tree-optimization/36648
	* tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
	number of prolog iterations by step. Fix the comment.

From-SVN: r137272
2008-06-30 11:43:55 +00:00
Richard Guenther
183ae5958e re PR middle-end/36671 (gfortran.dg/associated_1.f90)
2008-06-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36671
	* tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
	handle calls from ECF_MALLOC functions.
	(handle_pure_call): ECF_MALLOC functions do not return
	call-used memory.
	(find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.

From-SVN: r137271
2008-06-30 11:39:53 +00:00
Alfred E. Heggestad
e3ec709716 backward_warning.h: Fix typo.
2008-06-30  Alfred E. Heggestad  <aeh@db.org>

	* include/backward/backward_warning.h: Fix typo.

From-SVN: r137269
2008-06-30 10:48:48 +00:00
GCC Administrator
65d9230fb3 Daily bump.
From-SVN: r137265
2008-06-30 00:17:10 +00:00
Paolo Carlini
1ffe7b6ed2 re PR c++/36655 (unjustified warning for "extern template" when using -pedantic -std=c++0x)
/cp
2008-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/36655
	* pt.c (do_type_instantiation): In c++0x mode do not warn for
	extern template.

/testsuite
2008-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/36655
	* g++.dg/cpp0x/extern_template-2.C: New.
	* g++.dg/cpp0x/extern_template.C: Rename to...
	* g++.dg/cpp0x/extern_template-1.C: ... this.

From-SVN: r137261
2008-06-29 21:44:57 +00:00
Krister Walfridsson
323ff90332 env.c (parse_stacksize): Add cast to avoid warning.
2008-06-29  Krister Walfridsson  <krister.walfridsson@gmail.com>

	* env.c (parse_stacksize): Add cast to avoid warning.
	(parse_spincount): Likewise.

From-SVN: r137260
2008-06-29 21:41:03 +00:00
Andreas Schwab
6ae89ea8fe m68k.c (print_operand): Always print a float constant in hex.
* config/m68k/m68k.c (print_operand): Always print a float
constant in hex.
* config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
(ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
Remove macros.

From-SVN: r137259
2008-06-29 21:27:46 +00:00
Andrew Jenner
5b5b098dd4 MAINTAINERS (Write After Approval): Add myself.
* MAINTAINERS (Write After Approval):  Add myself.

From-SVN: r137258
2008-06-29 20:17:45 +00:00
Andreas Schwab
c2058aa42f * config/rs6000/x-linux64: Remove never used file.
From-SVN: r137257
2008-06-29 19:36:02 +00:00
Krister Walfridsson
d812ec939c MAINTAINERS: Update my email address.
2008-06-29  Krister Walfridsson  <krister.walfridsson@gmail.com>

	* MAINTAINERS: Update my email address.

From-SVN: r137256
2008-06-29 19:21:49 +00:00
Thomas Koenig
986a8d11c7 re PR fortran/36341 (MATMUL: Bounds check missing)
2008-06-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/36341
	* iresolve.c (gfc_resolve_matmul): Copy shapes
	from arguments.

2008-06-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/36341
	* gfortran.dg/matmul_bounds_1.f90:  New test.

From-SVN: r137255
2008-06-29 19:06:06 +00:00
Jerry DeLisle
082b0571b5 invoke.texi: Add documentation for runtime behavior of -fno-range-check.
2008-06-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* invoke.texi: Add documentation for runtime behavior of
	-fno-range-check.

From-SVN: r137254
2008-06-29 18:56:08 +00:00
Paolo Carlini
a5a6b58639 string_conversions.cc: Remove.
2008-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

	* src/string_conversions.cc: Remove.
	* config/abi/pre/gnu.ver: Delete exports.
	* src/Makefile.am: Update.
	* include/ext/string_conversions.h: Add.
	* include/Makefile.am: Update.
	* include/bits/basic_string.h: Include string_conversions.h,
	define numeric conversion functions.
	* include/ext/vstring.h: Likewise.
	* src/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.

From-SVN: r137253
2008-06-29 15:46:50 +00:00
Richard Guenther
faf2ecc57e tree-ssa-structalias.h (compute_points_to_sets): Adjust prototype.
2008-06-29  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.h (compute_points_to_sets): Adjust
	prototype.
	(struct alias_info): Move ...
	* tree-ssa-alias.c: ... here.
	(update_alias_info): Declare.
	(compute_may_aliases): Call it.
	(update_alias_info): New function.
	* tree-ssa-structalias.c (update_alias_info): Move ...
	* tree-ssa-alias.c (update_alias_info_1): ... here.
	* tree-ssa-structalias.c (process_constraint_1): Remove
	unused from_call argument.  Rename to ...
	(process_constraint): ... this.  Delete old wrapper.
	(make_constraint_to): Adjust callers.
	(handle_const_call): Likewise.
	(handle_pure_call): Likewise.
	(init_base_vars): Likewise.
	(handle_lhs_call): Likewise.  Remove unnecessary constraint.
	(find_func_aliases): We don't need structure copies for
	complex types.
	(make_constraint_from_anything): Remove.
	(create_variable_info_for): For globals make constraints
	from escaped, not from anything.
	(compute_points_to_sets): Do not call update_alias_info.
	(ipa_pta_execute): Use make_constraint_from.

From-SVN: r137252
2008-06-29 15:44:00 +00:00
Paolo Carlini
b03717765d stl_algo.h (copy_n): Add in C++0x mode.
2008-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/stl_algo.h (copy_n): Add in C++0x mode.
	* include/bits/algorithmfwd.h: Add.
	* include/bits/stl_uninitialized.h (uninitialized_copy_n): Add
	in C++0x mode.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
	move_iterators/1.cc: New
	* testsuite/25_algorithms/headers/algorithm/synopsis.cc: Update.
	* testsuite/25_algorithms/copy_n/1.cc: New.
	* testsuite/25_algorithms/copy_n/2.cc: Likewise.
	* testsuite/25_algorithms/copy_n/3.cc: Likewise.
	* testsuite/25_algorithms/copy_n/4.cc: Likewise.
	* testsuite/25_algorithms/copy_n/move_iterators/1.cc: Likewise.
	* testsuite/25_algorithms/copy_n/requirements/
	explicit_instantiation/2.cc: Likewise.
	* testsuite/25_algorithms/partition_point/requirements/
	explicit_instantiation/pod.cc: Likewise.

From-SVN: r137251
2008-06-29 11:08:26 +00:00
Jakub Jelinek
7dfab247a1 re PR testsuite/36620 (gcc.dg/pr36504.c doesn't work on 32bit)
PR testsuite/36620
	* gcc.dg/pr36504.c: Add -w to dg-options.

From-SVN: r137249
2008-06-29 12:39:05 +02:00
Ira Rosen
e6f4b8ccd2 pr36493.c: Require vect_long.
* gcc.dg/vect/pr36493.c: Require vect_long.

From-SVN: r137247
2008-06-29 06:57:39 +00:00
Kaveh R. Ghazi
572e5ae36a optabs.c (libfunc_decl_hash, [...]): Fix -Wcast-qual warnings.
* optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
	warnings.

	* Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
	(bitmap.o-warn, dominance.o-warn): New.
	* configure.ac (cxx_compat_warn): Delete.
	(loose_warn): Add -Wcast-qual and -Wc++-compat.
	* system.h: Remove #pragma diagnostic for -Wcast-qual and
	-Wc++-compat.
	* configure: Regenerate.
	
cp:
	* Make-lang.in (cp-warn): Delete $(CXX_COMPAT_WARN).

java:
	* Make-lang.in (java/jcf-io.o-warn): New.

From-SVN: r137246
2008-06-29 05:36:20 +00:00
Kaveh R. Ghazi
4dc6c528c2 alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
* alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
	* df-scan.c (df_notes_rescan): Likewise.
	* ggc-page.c (set_page_table_entry): Likewise.
	* intl.c (gcc_gettext_width): Likewise.
	* varasm.c (get_unnamed_section, get_noswitch_section,
	get_section): Likewise.

From-SVN: r137245
2008-06-29 04:39:16 +00:00
GCC Administrator
4152a484b4 Daily bump.
From-SVN: r137243
2008-06-29 00:17:17 +00:00
Jerry DeLisle
23b1e6acf3 namelist_50.f90: New test.
2008-06-28  Jerry DeLisle <jvdelisle@gcc.gnu.org>

	* gfortran.dg/namelist_50.f90: New test.

From-SVN: r137239
2008-06-28 23:11:53 +00:00
Paolo Carlini
d9be9bb3c6 stl_algo.h (partition_point): Add in C++0x mode.
2008-06-28  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/stl_algo.h (partition_point): Add in C++0x mode.
	* include/bits/algorithmfwd.h: Add.
	* testsuite/25_algorithms/headers/algorithm/synopsis.cc: Update.
	* testsuite/25_algorithms/partition_point/1.cc: New.
	* testsuite/25_algorithms/partition_point/check_type.cc: Likewise.
	* testsuite/25_algorithms/partition_point/requirements/
	explicit_instantiation/2.cc: Likewise.
	* testsuite/25_algorithms/partition_point/requirements/
	explicit_instantiation/pod.cc: Likewise.

From-SVN: r137237
2008-06-28 22:39:59 +00:00
Jerry DeLisle
7b063fdc13 re PR libfortran/36657 (Namelist reading bug with string constant immediately followed by comment)
2008-06-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/36657
	* io/list_read.c (read_character): Check for '!' along with separators.
	(find_nml_name): Likewise and eat the comment if found.

From-SVN: r137236
2008-06-28 21:46:53 +00:00
Andrew Jenner
d1c1c79f19 regrename.c (build_def_use): Don't copy RTX.
* regrename.c (build_def_use): Don't copy RTX.

From-SVN: r137235
2008-06-28 21:37:04 +00:00
Sandra Loosemore
38bb2b6555 extend.texi (Variable Attributes): Use @ref instead of @xref.
2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
	(Type Attributes): Fix nesting of @table and @subsection.  Adjust
	punctuation.  Use @ref instead of @xref.
	(Function Names): Remove stray @display/@end display.
	(C++ Attributes): Use @ref instead of @xref.
	(Deprecated Features): Fix punctuation around @xref.
	(Backwards Compatibility): Likewise.
	* doc/rtl.texi (Incdec): Remove stray @table/@end table.

From-SVN: r137234
2008-06-28 17:02:06 -04:00
Joseph Myers
624b157f70 predicates.md (easy_fp_constant): Reject TFmode constants for E500 double.
* config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
	constants for E500 double.

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

From-SVN: r137232
2008-06-28 20:40:03 +01:00
Paolo Carlini
e5e9ea16b8 re PR libstdc++/36660 (pb_ds/detail/resize_policy/sample_resize_trigger.hpp has extra closing brace)
2008-06-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/36660
	* include/ext/pb_ds/detail/resize_policy/
	sample_resize_trigger.hpp: Remove spurious namespace end.

From-SVN: r137231
2008-06-28 18:32:48 +00:00
Ulrich Weigand
ffba3fd05d rtl.texi (const_vector): Document const_fixed as legitimate element type of const_vector.
* doc/rtl.texi (const_vector): Document const_fixed as legitimate
	element type of const_vector.

From-SVN: r137230
2008-06-28 17:48:25 +00:00
Uros Bizjak
7ae14d3133 i386.md (addti3, [...]): Remove FLAGS_REG clobber from expander pattern.
* config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
	Remove FLAGS_REG clobber from expander pattern.
	(subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
	(anddi3, andsi3, andhi3, andqi3): Ditto.
	(iordi3, iorsi3, iorhi3, iorqi3): Ditto.
	(xordi3, xorsi3, xorhi3, xorqi3): Ditto.
	(negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
	(ashlsi3, ashlhi3, ashlqi3): Ditto.
	(ashrsi3, ashrhi3, ashrqi3): Ditto.
	(lshrsi3, lshrhi3, lshrqi3): Ditto.
	(rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
	(rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.

From-SVN: r137229
2008-06-28 19:25:48 +02:00
Matthias Klose
d2595e5434 - in last ChangeLog entry, replace leading spaces with a tab
From-SVN: r137228
2008-06-28 16:08:12 +00:00
Daniel Kraft
b66c86cbee gfc-internals.texi (section gfc_code): Extended documentation about gfc_code in the internal datastructures chapter...
2008-06-28  Daniel Kraft  <d@domob.eu>

	* gfc-internals.texi (section gfc_code):  Extended documentation about
	gfc_code in the internal datastructures chapter including details about
	how IF, DO and SELECT blocks look like and an example for how the
	block-chaining works.

From-SVN: r137226
2008-06-28 17:11:25 +02:00
Richard Guenther
f82c70cc8f pta-field-1.c: Add return 0.
2008-06-28  Richard Guenther  <rguenther@suse.de>

	* gcc.c-torture/execute/pta-field-1.c: Add return 0.
	* gcc.c-torture/execute/pta-field-2.c: Likewise.

From-SVN: r137224
2008-06-28 13:35:35 +00:00
Matthias Klose
e0441a5bfb Import GNU Classpath (classpath-0_97_2-release).
libjava/

2008-06-28  Matthias Klose  <doko@ubuntu.com>

        Import GNU Classpath (classpath-0_97_2-release).

        * Regenerate class and header files.
        * Regenerate auto* files.
        * gcj/javaprims.h: Define jobjectRefType.
        * jni.cc (_Jv_JNI_GetObjectRefType): New (stub only).
        (_Jv_JNIFunctions): Initialize GetObjectRefType.
        * gnu/classpath/jdwp/VMVirtualMachine.java,
        java/security/VMSecureRandom.java: Merge from classpath.
        * HACKING: Fix typo.
        * ChangeLog-2007: New file.
        * configure.ac: Set JAVAC, pass --disable-regen-headers to classpath.

libjava/classpath/

2008-06-28  Matthias Klose  <doko@ubuntu.com>

        * m4/ac_prog_javac.m4: Disable check for JAVAC, when
        not configured with --enable-java-maintainer-mode.
        * aclocal.m4, configure: Regenerate.
        * native/jni/gstreamer-peer/Makefile.am: Do not link with
        libclasspathnative.
        * native/jni/gstreamer-peer/Makefile.in: Regenerate.
        * tools/Makefile.am, lib/Makefile.am: Use JAVAC for setting
        JCOMPILER, drop flags not understood by gcj.

From-SVN: r137223
2008-06-28 13:29:13 +00:00
Richard Guenther
15c151967d tree-ssa-structalias.c (callused_id, [...]): Add.
2008-06-28  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (callused_id, var_callused,
	callused_tree): Add.
	(handle_pure_call): New function.
	(find_func_aliases): Call it.
	(find_what_p_points_to): Handle the call-used set.
	(clobber_what_escaped): Likewise.
	(compute_call_used_vars): New function.
	(init_base_vars): Init the call-used variable.
	(do_sd_constraint): Do not propagate the solution from CALLUSED
	but use CALLUSED as a placeholder.
	(solve_graph): Likewise.
	* tree-flow-inline.h (gimple_call_used_vars): New function.
	* tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
	(compute_call_used_vars): Declare.
	* tree-ssa-alias.c (set_initial_properties): Call
	compute_call_used_vars.
	(reset_alias_info): Clear call-used variables.
	(add_call_clobber_ops): Assert we are not called for const/pure
	functions.  Remove handling of them.
	(add_call_read_ops): Handle pure functions by adding the
	call-used set of variables as VUSEs.
	* tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
	(delete_tree_ssa): Free it.
	* tree-dfa.c (remove_referenced_var): Clear the var from the
	call-used bitmap.

	* gcc.dg/tree-ssa/pr24287.c: Remove XFAIL.

From-SVN: r137222
2008-06-28 13:17:20 +00:00
Kai Tietz
ff1c393bd3 tree.c (build_varargs_function_type_list): New.
2008-06-28  Kai Tietz  <kai.tietz@onevision.com>

        * tree.c (build_varargs_function_type_list): New.
        (build_function_type_list_1): New.
        (build_function_type_list): Use build_function_type_list_1.
        * tree.h (build_varargs_function_type_list): New.

From-SVN: r137221
2008-06-28 14:41:38 +02:00
Ulrich Weigand
d74032d9e1 re PR target/34856 (ICE with some constant vectors)
PR target/34856
	* config/spu/spu.c (spu_builtin_splats): Do not generate
	invalid CONST_VECTOR expressions.
	(spu_expand_vector_init): Likewise.

From-SVN: r137218
2008-06-28 10:47:36 +00:00
Steven Bosscher
069a1c33f9 Commit missing Makefile update for r137158.
From-SVN: r137216
2008-06-28 09:38:11 +00:00
Richard Sandiford
61698f5402 optabs.c (libfunc_decls): New variable.
gcc/
	* optabs.c (libfunc_decls): New variable.
	(libfunc_decl_hash, libfunc_decl_eq): New functions.
	(init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
	for the same function twice.

From-SVN: r137215
2008-06-28 09:24:35 +00:00
GCC Administrator
d476e66901 Daily bump.
From-SVN: r137211
2008-06-28 00:17:13 +00:00
Mark Mitchell
b8df34454c vec.cc (__aeabi_vec_dtor_cookie): Handle NULL array address.
2008-06-27  Mark Mitchell  <mark@codesourcery.com>

	* libsupc++/vec.cc (__aeabi_vec_dtor_cookie): Handle NULL array
	address.
	(__aeabi_vec_delete): Likewise.
	(__aeabi_vec_delete3): Likewise.
	(__aeabi_vec_delete3_nodtor): Likewise.

2008-06-27  Mark Mitchell  <mark@codesourcery.com>

	* g++.dg/abi/arm_cxa_vec2.C: New test.

From-SVN: r137207
2008-06-27 23:02:06 +00:00
Jakub Jelinek
0ac69b47fb re PR c++/36364 (Problem with -frepo)
PR c++/36364
	* repo.c (repo_emit_p): Put const static data members initialized
	by const expr into *.rpo file, just return 2 if IDENTIFIER_REPO_CHOSEN
	for it is 0.

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

From-SVN: r137205
2008-06-28 00:26:48 +02:00
Richard Biener
e3fd526b6a re PR tree-optimization/36400 (points-to results wrong)
2008-06-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36400
	PR tree-optimization/36373
	PR tree-optimization/36344
	* tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
	var_nonlocal, nonlocal_tree, nonlocal_id): New globals
	(update_alias_info): Remove call clobbering code.
	(make_constraint_to): New helper function.
	(make_escape_constraint): Likewise.
	(handle_rhs_call): Use it on all pointer containing arguments.
	Also mark the static chain escaped.
	(handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
	instead of ANYTHING.
	(make_constraint_from): New helper split out from ...
	(make_constraint_from_anything): ... here.
	(find_func_aliases): Add constraints for escape sites.
	(intra_create_variable_infos): Make constraints from NONLOCAL
	for parameters.
	(find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
	as ANYTHING.
	(clobber_what_p_points_to): Remove.
	(clobber_what_escaped): New function.
	(init_base_vars): Init NONLOCAL and ESCAPED.
	(do_sd_constraint): Do not propagate the solution from ESCAPED
	but use ESCAPED as a placeholder.
	(solve_graph): Likewise.
	* tree-flow.h (clobber_what_p_points_to): Remove.
	(clobber_what_escaped): Declare.
	* tree-ssa-alias.c (set_initial_properties): Call it.
	Remove code clobbering escaped pointers.

	* gcc.dg/torture/pr36373-1.c: New testcase.
	* gcc.dg/torture/pr36373-2.c: Likewise.
	* gcc.dg/torture/pr36373-3.c: Likewise.
	* gcc.dg/torture/pr36373-4.c: Likewise.
	* gcc.dg/torture/pr36373-5.c: Likewise.
	* gcc.dg/torture/pr36373-6.c: Likewise.
	* gcc.dg/torture/pr36373-7.c: Likewise.
	* gcc.dg/torture/pr36373-8.c: Likewise.
	* gcc.dg/torture/pr36373-9.c: Likewise.
	* gcc.dg/torture/pr36373-10.c: Likewise.
	* gcc.dg/torture/pr36400.c: Likewise.
	* gcc.c-torture/execute/pta-field-1.c: Likewise.
	* gcc.c-torture/execute/pta-field-2.c: Likewise.
	* gcc.dg/tree-ssa/loadpre8.c: Remove XFAIL.
	* gcc.dg/tree-ssa/pr24287.c: XFAIL.

From-SVN: r137204
2008-06-27 21:54:42 +00:00
Uros Bizjak
7059ea888d * config/i386/i386.md (lshrti splitter): Fix splitter predicate.
From-SVN: r137202
2008-06-27 23:12:04 +02:00
Uros Bizjak
934f2a969d i386.md (ashlti3, [...]): Expand using ix86_expand_binary_operator directly.
* config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
	ix86_expand_binary_operator directly.
	(*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
	for operand 2.
	(*ashrti3_1): Ditto.
	(*lshrti3_1): Ditto.
	(*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
	(ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
	using only one splitter.  Conditionaly execute splitter before or
	after peephole2 pass.
	(ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
	(x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
	Use only one alternative in asm template.
	(x86_64_shld): Compress operand 2 constraints. Use only one alternative
	in asm template.
	(*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
	"J" operand constraint for operand 2.
	(*ashldi3_cconly_rex64): Ditto.
	(*ashrdi3_cmp_rex64): Ditto.
	(*ashrdi3_cconly_rex64): Ditto.
	(*lshrdi3_cmp_rex64): Ditto.
	(*lshrdi3_cconly_rex64): Ditto.
	* config/i386/predicates.md (const_1_to_63_operand): New predicate.
	* config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
	(split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
	gen_x86_shrd_1.

From-SVN: r137201
2008-06-27 22:53:34 +02:00