Commit Graph

93748 Commits

Author SHA1 Message Date
Tobias Burnus
9a0bab0be6 re PR fortran/40246 (ICE on invalid SOURCE= using NULLIFY)
2009-05-26  Tobias Burnus  <burnus@net-b.de>

        PR fortran/40246
        * match.c (gfc_match_nullify): NULLify freed pointer.

2009-05-26  Tobias Burnus  <burnus@net-b.de>

        PR fortran/40246
        * gfortran.dg/nullify_4.f90: New test.

From-SVN: r147879
2009-05-26 21:23:45 +02:00
Basile Starynkevitch
ae2392a94b plugins.texi (Loading plugins): typo.
2009-05-26  Basile Starynkevitch  <basile@starynkevitch.net>

	* gcc/doc/plugins.texi
	(Loading plugins): typo.
	(Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
	PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
	(Interacting with the GCC Garbage Collector): Added new section.
	(Giving information about a plugin): Added new section for
	PLUGIN_INFO.
	* gcc/testsuite/gcc.dg/plugin/plugin.exp: Added ggcplug.c test plugin
	with ggcplug-test-1.c for testing PLUGIN_GGC_MARKING etc...
	* gcc/testsuite/gcc.dg/plugin/ggcplug-test-1.c: Added new file.
	* gcc/testsuite/gcc.dg/plugin/ggcplug.c: Added new file.
	* gcc/ggc.h (ggc_register_root_tab): Added declaration.
	* gcc/gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
	(PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
	(register_callback): Improved comment in declaration.
	* gcc/ggc-common.c (const_ggc_root_tab_t) Added new typedef for
	vectors.
	(extra_root_vec) Added static variable for dynamic roots
	registration.
	(ggc_register_root_tab) Added new routine.
	(ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
	PLUGIN_GGC_MARKING event.
	* gcc/ggc-zone.c: Include plugin.h.
	(ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
	* gcc/ggc-page.c: Include plugin.h.
	(ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
	* gcc/plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
	PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
	(register_callback): check lack of callbacks for
	pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
	PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
	(invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
	PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
	* gcc/Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
	dependency on plugin.h.
	(plugin.o): Added dependency on ggc.h...

From-SVN: r147878
2009-05-26 17:33:33 +00:00
Nathan Sidwell
06d9ea4246 revert: neon-gen.ml: Include vxWorks.h rather than stdint.h for VxWorks kernels.
revert
	* config/arm/neon-gen.ml: Include vxWorks.h rather than stdint.h
	for VxWorks kernels.
	* config/arm/arm_neon.h: Regenerate.

From-SVN: r147877
2009-05-26 17:08:57 +00:00
Richard Guenther
da28a951d2 inline-3.c: Remove dump file.
2009-05-26  Richard Guenther  <rguenther@suse.de>

	* gcc.dg/tree-ssa/inline-3.c: Remove dump file.

From-SVN: r147876
2009-05-26 15:54:54 +00:00
Richard Guenther
f0cfd3a8e0 re PR middle-end/40248 (FAIL: gcc.c-torture/compile/20090518-1.c at -O1 and above)
2009-05-26  Richard Guenther  <rguenther@suse.de>

	PR middle-end/40248
	Revert
	* expr.c (expand_expr_real_1): Avoid calling do_store_flag
	with mismatched comparison modes.

	* expr.c (expand_expr_real_1): Expand the operand of a
	VIEW_CONVERT_EXPR in its natural mode.

From-SVN: r147874
2009-05-26 14:17:38 +00:00
Ian Lance Taylor
7980bfb829 Makefile.in (COMPILER, [...]): Define.
./:	* Makefile.in (COMPILER, COMPILER_FLAGS): Define.
	(COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
	(ALL_COMPILERFLAGS): Define.
	(.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
	(cc1-dummy$(exeext), cc1$(exeext)): Likewise.
	(collect2$(exeext), collect2.o): Likewise.
	(c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
	(gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
	($(out_object_file), mips-tfile, mips-tdump): Likewise.
	(libbackend.o, intl.o, cppdefault.o): Likewise.
	(gcov$(exeext), gcov-dump$(exeext)): Likewise.
	(build/%.o): Use $(COMPILER_FOR_BUILD).
	(build/gen%$(build_exeext)): Likewise.
	(build/gcov-iov$(build_exeext)): LIkewise.
	* config/t-darwin (darwin.o): Use $(COMPILER).
	(darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
	* config/t-sol2 (sol2-c.o): Likewise.
	(sol2.o): Likewise.
	* config/t-vxworks (vxworks.o): Likewise.
	* config/x-darwin (host-darwin.o): Likewise.
	* config/x-hpux (host-hpux.o): Likewise.
	* config/x-linux (host-linux.o): Likewise.
	* config/x-solaris (host-solaris.o): Likewise.
	* config/alpha/x-alpha (driver-alpha.o): Likewise.
	* config/arm/t-arm (arm-c.o): Likewise.
	* config/arm/t-pe (pe.o): Likewise.
	* config/arm/t-wince-pe (pe.o): Likewise.
	* config/i386/t-cygming (winnt.o): Likewise.
	(winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
	* config/i386/t-cygwin (cygwin1.o): Likewise.
	(cygwin2.o): Likewise.
	* config/i386/t-i386 (i386-c.o): Likewise.
	* config/i386/t-interix (winnt.o): Likewise.
	* config/i386/t-netware (netware.o): Likewise.
	* config/i386/t-nwld (nwld.o): Likewise.
	* config/i386/x-darwin (host-i386-darwin.o): Likewise.
	* config/i386/x-i386 (driver-i386.o): Likewise.
	* config/i386/x-cygwin (host-cygwin.o): Likewise.
	* config/i386/x-mingw32 (host-mingw32.o): Likewise.
	* config/ia64/t-ia64 (ia64-c.o): Likewise.
	* config/m32c/t-m32c (m32c-pragma.o): Likewise.
	* config/mips/x-native (driver-native.o): Likewise.
	* config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
	* config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
	* config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
	* config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
	* config/score/t-score-elf (score7.o): Likewise.
	(score3.o): Likewise.
	* config/sh/t-sh (sh-c.o): Likewise.
	* config/sh/t-symbian (sh-c.o): Likewise.
	(symbian.o): Likewise.
	* config/spu/t-spu-elf (spu-c.o): Likewise.
	* config/v850/t-v850 (v850-c.o): Likewise.
	* config/v850/t-v850e (v850-c.o): Likewise.
ada/:
	* gcc-interface/Makefile.in (COMPILER): Define.
	(COMPILER_FLAGS, ALL_COMPILERFLAGS): Define.
	(.c.o, cio.o, init.o, initialize.o, targext.o): Use $(COMPILER).
	(seh_init.o, tracebak.o): Likewise.
	* gcc-interface/Make-lang.in (ada/targext.o): Likewise.
	(ada/cio.o, ada/init.o, ada/initialize.o, ada/raise.o): Likewise.
	(ada/tracebak.o, ada/cuintp.o, ada/decl.o, ada/misc.o): Likewise.
	(ada/targtyps.o, ada/trans.o, ada/utils.o): Likewise.
	(ada/utils2.o): Likewise.
cp/:
	* Make-lang.in (g++spec.o): Use $(COMPILER).
	(g++$(exeext), cc1plus-dummy$(exeext)): Likewise.
	(cc1plus$(exeext)): Likewise.
fortran/:
	* Make-lang.in (gfortranspec.o): Use $(COMPILER).
	(gfortran$(exeext), f951$(exeext), fortran/cpp.o): Likewise.
java/:
	* Make-lang.in (jvspec.o): Use $(COMPILER).
	($(XGCJ)$(exeext), jc1$(exeext), jcf-dump$(exeext)): Likewise.
	(jvgenmain$(exeext), java/jcf-io.o, java/jcf-path.o): Likewise.
objc/:
	* Make-lang.in (cc1obj-dummy$(exeext)): Use $(COMPILER).
	(cc1obj$(exeext)): Likewise.
objcp/:
	* Make-lang.in (cc1objplus-dummy$(exeext)): Use $(COMPILER).
	(cc1objplus$(exeext), objcp/objcp-act.o): Likwise.

From-SVN: r147873
2009-05-26 14:02:04 +00:00
Richard Sandiford
d0cb643b07 neon-gen.ml: Include vxWorks.h rather than stdint.h for VxWorks kernels.
* config/arm/neon-gen.ml: Include vxWorks.h rather than stdint.h
	for VxWorks kernels.
	* config/arm/arm_neon.h: Regenerate.

From-SVN: r147870
2009-05-26 13:22:09 +00:00
Richard Guenther
23977d3c07 re PR middle-end/40252 (Internal compiler error on samba4 (verify_gimple failed))
2009-05-26  Richard Guenther  <rguenther@suse.de>

	PR middle-end/40252
	* fold-const.c (fold_binary): Use the correct types for building
	rotates.

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

From-SVN: r147868
2009-05-26 11:41:34 +00:00
Richard Guenther
3d62b8954f re PR middle-end/40252 (Internal compiler error on samba4 (verify_gimple failed))
2009-05-26  Richard Guenther  <rguenther@suse.de>

	PR middle-end/40252
	* fold-const.c (fold_binary): Use the correct types for building
	rotates.

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

From-SVN: r147867
2009-05-26 11:38:03 +00:00
Dodji Seketeli
2eb25c98ab re PR c++/40007 (specialization causes access problem in primary template)
Fix PR c++/40007

    gcc/cp/ChangeLog:
    	PR c++/40007
    	* cp-tree.h (MEMBER_TYPES_NEEDING_ACCESS_CHECK): Remove this accessor.
    	(TI_TYPEDEFS_NEEDING_ACCESS_CHECKING): New accessor.
    	(get_types_needing_access_check): Declare new entry point.
    	* pt.c (append_type_to_template_for_access_check_1,
    	get_types_needing_access_check): New functions.
    	(perform_typedefs_access_check): Accept FUNCTION_DECLs and
    	RECORD_TYPEs rather than TEMPLATE_DECLs. Use the new
    	get_types_needing_access_check, no more
    	MEMBER_TYPES_NEEDING_ACCESS_CHECK.
    	(instantiate_class_template): Set input_location to the source
    	location of the most specialized template definition.
    	Perform access check using the RECORD_TYPE of the template, not its
    	associated most generic TEMPLATE_DECL.
    	(append_type_to_template_for_access_check): Augment function
    	comments. Use the new get_types_needing_access_check, not
    	MEMBER_TYPE_NEEDING_ACCESS_CHECK. Use the new
    	append_type_to_template_for_access_check_1 subroutine.

    gcc/testsuite/ChangeLog:
    	PR c++/40007
    	* g++.dg/template/typedef18.C: New test.
    	* g++.dg/template/typedef19.C: Likewise.
    	* g++.dg/template/typedef20.C: Likewise.
    	* g++.dg/template/access11.C: Adjust.

From-SVN: r147866
2009-05-26 12:35:16 +02:00
Richard Guenther
52c3075d2b re PR testsuite/40247 (Revision 147848 failed gcc.dg/struct/wo_prof_escape_substr_pointer.c)
2009-05-26  Richard Guenther  <rguenther@suse.de>

	PR testsuite/40247
	* gcc.dg/struct/wo_prof_escape_substr_pointer.c: Obfuscate.

From-SVN: r147864
2009-05-26 09:41:29 +00:00
Richard Guenther
1234614746 tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove redundant calls to merge_alias_info.
2009-05-26  Richard Guenther  <rguenther@suse.de>

	* tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
	redundant calls to merge_alias_info.
	(bump_vector_ptr): Likewise.
	* tree-ssa-copy.c (merge_alias_info): Remove.
	(replace_exp_1): Remove call to merge_alias_info.
	(propagate_tree_value): Likewise.
	(fini_copy_prop): Propagate points-to info.
	* tree-flow.h (merge_alias_info): Remove.

From-SVN: r147863
2009-05-26 08:48:02 +00:00
Hariharan Sandanagobalane
807d5e6fe1 config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
From-SVN: r147862
2009-05-26 08:19:34 +00:00
Kaveh R. Ghazi
f6b855dfad gfortran.h (GFC_MPC_RND_MODE): New.
* gfortran.h (GFC_MPC_RND_MODE): New.
	* simplify.c (call_mpc_func): New helper function.
	(gfc_simplify_cos, gfc_simplify_exp, gfc_simplify_log,
	gfc_simplify_sin, gfc_simplify_sqrt): Add MPC support.

From-SVN: r147860
2009-05-26 06:04:16 +00:00
GCC Administrator
a30d7997f3 Daily bump.
From-SVN: r147859
2009-05-26 00:17:02 +00:00
Jason Merrill
550a799d53 re PR c++/38064 ([c++0x] operator== doesn't work for enum classes)
PR c++/38064
	* typeck.c (cp_build_binary_op): Allow ENUMERAL_TYPE in
	arithmetic comparisons.
	(cp_common_type): Handle scoped enums.

	* call.c (promoted_arithmetic_type_p): Don't use INTEGRAL_TYPE_P.
	(add_builtin_candidate, add_builtin_candidates): Likewise.
	(convert_like_real): Likewise.
	* class.c (check_bitfield_decl): Likewise.
	* decl.c (check_static_variable_definition): Likewise.
	(compute_array_index_type): Likewise.
	* decl2.c (grokbitfield): Likewise.
	* init.c (build_new_1): Likewise.
	* pt.c (convert_nontype_argument): Likewise.
	(current_instantiation): Likewise.
	* tree.c (pod_type_p): Likewise.
	* typeck.c (build_static_cast_1): Likewise.
	(build_reinterpret_cast_1): Likewise.

From-SVN: r147854
2009-05-25 19:01:02 -04:00
Jan Hubicka
85057983ac cgraph.c (dump_cgraph_node): Dump size/time/benefit.
* cgraph.c (dump_cgraph_node): Dump size/time/benefit.
	* cgraph.h (struct inline_summary): New filed self_wize,
	size_inlining_benefit, self_time and time_inlining_benefit.
	(struct cgraph_global_info): Replace insns by time ans size fields.
	* ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
	(ipcp_estimate_growth, ipcp_insert_stage): Likewise.
	(ipcp_update_callgraph): Do not touch function bodies.
	* ipa-inline.c: Include except.h
	(MAX_TIME): New constant.
	(overall_insns): Remove.
	(leaf_node_p): New.
	(overall_size, max_benefit): New static variables.
	(cgraph_estimate_time_after_inlining): New function.
	(cgraph_estimate_size_after_inlining): Rewrite using benefits.
	(cgraph_clone_inlined_nodes): Update size.
	(cgraph_mark_inline_edge): Update size.
	(cgraph_estimate_growth): Use size info.
	(cgraph_check_inline_limits): Check size.
	(cgraph_default_inline_p): Likewise.
	(cgraph_edge_badness): Compute badness based on benefit and size cost.
	(cgraph_decide_recursive_inlining): Check size.
	(cgraph_decide_inlining_of_small_function): Update size; dump sizes and
	times.
	(cgraph_decide_inlining): Likewise.
	(cgraph_decide_inlining_incrementally): Likewise; honor
	PARAM_EARLY_INLINING_INSNS.
	(likely_eliminated_by_inlining_p): New predicate.
	(estimate_function_body_sizes): New function.
	(compute_inline_parameters): Use it.
	* except.c (must_not_throw_labels): New function.
	* except.h (must_not_throw_labels): Declare.
	* tree-inline.c (init_inline_once): Kill inlining_weigths
	* tree-ssa-structalias.c: Avoid uninitialized warning.
	* params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
	(PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
	(PARAM_INLINE_CALL_COST): Remove.
	(PARAM_EARLY_INLINING_INSNS): New.

From-SVN: r147852
2009-05-25 21:59:24 +00:00
Richard Guenther
01df5c8ae2 re PR tree-optimization/36327 (SCCVN should look through struct copies)
2009-05-25  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36327
	* tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
	callback for reference translation or lookup at the point
	of may-defs.
	* tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
	* tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
	for union COMPONENT_REFs.
	(vn_reference_lookup_3): New callback.  Lookup from memset
	and CONSTRUCTOR assignment, translate through struct copies.
	(vn_reference_lookup_pieces): Make sure to not free the
	passed operands array.  Adjust walk_non_aliased_vuses call.
	(vn_reference_lookup): Adjust walk_non_aliased_vuses call,
	make sure we do not leak memory.

	* gcc.dg/tree-ssa/ssa-fre-24.c: New testcase.
	* gcc.dg/tree-ssa/ssa-fre-25.c: Likewise.
	* gcc.dg/tree-ssa/sra-2.c: Disable FRE.
	* gcc.dg/vect/no-vfa-vect-43.c: Adjust.
	* gcc.dg/vect/vect-40.c: Likewise.
	* gcc.dg/vect/vect-42.c: Likewise.
	* gcc.dg/vect/vect-46.c: Likewise.
	* gcc.dg/vect/vect-76.c: Likewise.

From-SVN: r147851
2009-05-25 15:18:21 +00:00
Janus Weil
c74b74a8b2 re PR fortran/40176 (Fortran 2003: Procedure pointers with array return value)
2009-05-25  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/40176
	* primary.c (gfc_match_varspec): Handle procedure pointer components
	with array return value.
	* resolve.c (resolve_expr_ppc): Ditto.
	(resolve_symbol): Make sure the interface of a procedure pointer has
	been resolved.
	* trans-array.c (gfc_walk_function_expr): Handle procedure pointer
	components with array return value.
	* trans-expr.c (gfc_conv_component_ref,gfc_conv_procedure_call,
	gfc_trans_arrayfunc_assign): Ditto.
	(gfc_trans_pointer_assignment): Handle procedure pointer assignments,
	where the rhs is a dummy argument.
	* trans-types.c (gfc_get_ppc_type,gfc_get_derived_type): Handle
	procedure pointer components with array return value.


2009-05-25  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/40176
	* gfortran.dg/proc_ptr_18.f90: New.
	* gfortran.dg/proc_ptr_19.f90: New.
	* gfortran.dg/proc_ptr_comp_9.f90: New.
	* gfortran.dg/proc_ptr_comp_10.f90: New.

From-SVN: r147850
2009-05-25 16:48:24 +02:00
Richard Guenther
6b8ed1452b tree-ssa-alias.h (dump_points_to_solution): Declare.
2009-05-25  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.h (dump_points_to_solution): Declare.
	* tree-inline.c (expand_call_inline): Reset the escaped and
	callused solutions.
	* tree-ssa-structalias.c (pass_build_ealias): New.
	* tree-pass.h (pass_build_ealias): Declare.
	* passes.c (init_optimization_passes): Add PTA during 
	early optimizations.
	* tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
	and CALLUSED solutions.
	(dump_points_to_solution): New function, split out from ...
	(dump_points_to_info_for): ... here.
	* tree-parloops.c (parallelize_loops): Reset the escaped and
	callused solutions.

	* gcc.dg/tree-ssa/ssa-fre-14.c: Adjust.
	* gcc.dg/tree-ssa/ssa-fre-15.c: Likewise.

From-SVN: r147848
2009-05-25 13:35:10 +00:00
Tristan Gingold
0d38b67703 makefile.vms: New file to compile gas on VMS.
2009-05-25  Tristan Gingold  <gingold@adacore.com>

	* makefile.vms: New file to compile gas on VMS.

	* configure.com: New file to do configuration on VMS with DCL.

From-SVN: r147847
2009-05-25 13:29:08 +00:00
Rainer Orth
0adcf178ad re PR bootstrap/40027 (i686-pc-solaris2.10 bootstrap fails using Sun ld)
PR bootstrap/40027
	* config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
	* config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.

From-SVN: r147845
2009-05-25 12:12:08 +00:00
Ira Rosen
12aaf60964 re PR tree-optimization/40238 (ICE in gimple_verify_flow_info, at tree-cfg.c:4603)
PR tree-optimization/40238
	* tree-vect-stmts.c (vect_init_vector): Insert initialization
	statements after basic block's labels.
	* tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 
	to free	the allocated memory.

From-SVN: r147844
2009-05-25 07:56:32 +00:00
Jerry DeLisle
7ac6195704 Dominique Dhumieres
2009-05-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	    Dominique Dhumieres

	PR fortran/35732
	PR fortran/39872
	* trans-array.c (gfc_conv_ss_startstride): Add one to index.
	* gfortran.dg/bounds_check_fail_3.f90: New test.
	* gfortran.dg/bounds_check_fail_4.f90: New test.
	* gfortran.dg/bounds_check_14.f90: Update test.
	* gfortran.dg/bound_4.f90: Update test.

From-SVN: r147842
2009-05-25 03:07:00 +00:00
GCC Administrator
ea74392e09 Daily bump.
From-SVN: r147840
2009-05-25 00:16:47 +00:00
Kaz Kojima
7f9a14e39f sh.c (sh_set_return_address): Mark store of return address with a USE.
* gcc/config/sh/sh.c (sh_set_return_address): Mark store of
	return address with a USE.

From-SVN: r147836
2009-05-24 22:06:17 +00:00
Richard Guenther
b842d47809 re PR tree-optimization/40233 (Test failures with "alignment of array elements is greater than element size")
2009-05-24  Richard Guenther  <rguenther@suse.de>

	PR middle-end/40233
	* tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
	array type from the main variant of the inner type.

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

From-SVN: r147835
2009-05-24 16:12:58 +00:00
Nicolas Roche
2e6a3c8daf Makefile.tpl (compare-target): Skip ./ada/*tools directories.
* Makefile.tpl (compare-target): Skip ./ada/*tools directories.
	* Makefile.in: Regenerate.

From-SVN: r147834
2009-05-24 12:39:17 +00:00
Uros Bizjak
782dc37a1e erf_2.F90 (dg-options): Add -mieee for alpha*-*-* targets.
* gfortran.dg/erf_2.F90 (dg-options): Add -mieee
	for alpha*-*-* targets.

From-SVN: r147833
2009-05-24 13:26:53 +02:00
Jan-Benedict Glaw
8db7b33f7e vax-protos.h (legitimate_constant_address_p): Change definition to bool (from int) to un-break build.
2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/vax/vax-protos.h (legitimate_constant_address_p): Change
	definition to bool (from int) to un-break build.
	(legitimate_constant_p, vax_mode_dependent_address_p): Likewise.

From-SVN: r147832
2009-05-24 11:25:11 +00:00
Paolo Bonzini
cff4e50d67 tree-ssa-operands.h (push_stmt_changes, [...]): Delete.
2009-05-24  Paolo Bonzini  <bonzini@gnu.org>

	* tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
	discard_stmt_changes): Delete.
	* tree-ssa-operands.c (scb_stack): Delete.
	(init_ssa_operands): Do not initialize it.
	(fini_ssa_operands): Do not free it.
	(push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.

	* tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 
	update_stmt, remove the others.  Fix comments.
	* tree-dfa.c (optimize_stack_restore): Likewise.
	* tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
	* tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
	* tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
	Likewise.
	* tree-ssa-propagate.c (substitute_and_fold): Likewise.
	* tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
	(dom_opt_finalize_block): Likewise, adjusting access to stmts_to_rescan.
	(optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
	(stmts_to_rescan): Change item type to gimple.
	(tree_ssa_dominator_optimize): Change type of stmts_to_rescan.

From-SVN: r147831
2009-05-24 11:20:29 +00:00
Olivier Hainque
6e00e54643 switch.adb (Is_Internal_GCC_Switch, [...]): Bodies of ...
* switch.adb (Is_Internal_GCC_Switch, Switch_Last): Bodies of ...
        * switch.ads (Is_Internal_GCC_Switch, Switch_Last): New functions.
        Add -auxbase variants to the list of recognized internal switches.
        * back_end.adb (Scan_Back_End_Switches): Use the new functions and
        adjust comments.
        * lib.ads: Make comment on internal GCC switches more general.
        * gcc-interface/lang-specs.h (specs for Ada): Pass -auxbase variants
        as for C.

From-SVN: r147830
2009-05-24 09:14:53 +00:00
Ira Rosen
a70d634247 passes.texi (Tree-SSA passes): Document SLP pass.
* doc/passes.texi (Tree-SSA passes): Document SLP pass.
	* tree-pass.h (pass_slp_vectorize): New pass.
	* params.h (SLP_MAX_INSNS_IN_BB): Define.
	* timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
	* tree-vectorizer.c (timevar.h): Include.
	(user_vect_verbosity_level): Declare.
	(vect_location): Fix comment.
	(vect_set_verbosity_level): Update user_vect_verbosity_level
	instead of vect_verbosity_level.
	(vect_set_dump_settings): Add an argument. Ignore user defined
	verbosity if dump flags require higher level of verbosity. Print to
	stderr only for loop vectorization.
	(vectorize_loops): Update call to vect_set_dump_settings.
	(execute_vect_slp): New function.
	(gate_vect_slp): Likewise.
	(struct gimple_opt_pass pass_slp_vectorize): New.
	* tree-vectorizer.h (struct _bb_vec_info): Define along macros to
	access its members.
	(vec_info_for_bb): New function.
	(struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
	(VECTORIZATION_ENABLED): New macro.
	(SLP_ENABLED, SLP_DISABLED): Likewise.
	(vect_is_simple_use): Add bb_vec_info argument.
	(new_stmt_vec_info, vect_analyze_data_ref_dependences,
	vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
	vect_analyze_data_ref_accesses, vect_analyze_data_refs,
	vect_schedule_slp, vect_analyze_slp): Likewise.
	(vect_analyze_stmt): Add slp_tree argument.
	(find_bb_location): Declare.
	(vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
	* tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
	(vect_analyze_loop_operations, vect_analyze_loop,
	get_initial_def_for_induction, vect_create_epilog_for_reduction,
	vect_finalize_reduction, vectorizable_reduction,
	vectorizable_live_operation, vect_transform_loop): Likewise.
	* tree-data-ref.c (dr_analyze_innermost): Update comment,
	skip evolution analysis if analyzing a basic block.
	(dr_analyze_indices): Likewise.
	(initialize_data_dependence_relation): Skip the test whether the
	object is invariant for basic blocks.
	(compute_all_dependences): Skip dependence analysis for data
	references in basic blocks.
	(find_data_references_in_stmt): Don't fail in case of invariant
	access in basic block.
	(find_data_references_in_bb): New function.
	(find_data_references_in_loop): Move code to
	find_data_references_in_bb    and add a call to it.
	(compute_data_dependences_for_bb): New function.
	* tree-data-ref.h (compute_data_dependences_for_bb): Declare.
	* tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
	that STEP is 0.
	(vect_analyze_data_ref_dependence): Check for interleaving in case of
	unknown dependence in basic block and fail in case of dependence in
	basic block.
	(vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
	dependence instances from either loop or basic block vectorization
	info.
	(vect_compute_data_ref_alignment): Check if it is loop vectorization
	before calling nested_in_vect_loop_p.
	(vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
	dependence instances from either loop or basic block vectorization
	info.
	(vect_verify_datarefs_alignment): Likewise.
	(vect_enhance_data_refs_alignment): Adjust function calls.
	(vect_analyze_data_refs_alignment): Likewise.
	(vect_analyze_group_access): Fix printing. Skip different checks if
	DR_STEP is 0. Keep strided stores either in loop or basic block
	vectorization data structure. Fix indentation.
	(vect_analyze_data_ref_access): Fix comments, allow zero step in
	basic blocks.
	(vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
	dependence instances from either loop or basic block vectorization
	info.
	(vect_analyze_data_refs): Update comment. Call
	compute_data_dependences_for_bb to analyze basic blocks.
	(vect_create_addr_base_for_vector_ref): Check for outer loop only in
	case of loop vectorization. In case of basic block vectorization use
	data-ref itself   as  a base.
	(vect_create_data_ref_ptr): In case of basic block vectorization:
	don't advance the pointer, add new statements before the current
	statement.  Adjust function calls.
	(vect_supportable_dr_alignment): Support only aligned accesses in
	basic block vectorization.
	* common.opt (ftree-slp-vectorize): New flag.
	* tree-vect-patterns.c (widened_name_p): Adjust function calls.
	(vect_pattern_recog_1): Likewise.
	* tree-vect-stmts.c (process_use): Likewise.
	(vect_init_vector): Add new statements in the beginning of the basic
	block in case of basic block SLP.
	(vect_get_vec_def_for_operand): Adjust function calls.
	(vect_finish_stmt_generation): Likewise.
	(vectorizable_call): Add assert that it is loop vectorization, adjust
	function calls.
	(vectorizable_conversion, vectorizable_assignment): Likewise.
	(vectorizable_operation): In case of basic block SLP, take
	vectorization factor from statement's type and skip the relevance
	check. Adjust function calls.
	(vectorizable_type_demotion): Add assert that it is loop
	vectorization, adjust function calls.
	(vectorizable_type_promotion): Likewise.
	(vectorizable_store): Check for outer loop only in case of loop
	vectorization. Adjust function calls. For basic blocks, skip the
	relevance check and don't advance pointers.
	(vectorizable_load): Likewise.
	(vectorizable_condition): Add assert that it is loop vectorization,
	adjust function calls.
	(vect_analyze_stmt): Add argument. In case of basic block SLP, check
	that it is not reduction, get vector type, call only supported
	functions, skip loop    specific parts.
	(vect_transform_stmt): Check for outer loop only in case of loop
	vectorization.
	(new_stmt_vec_info): Add new argument and initialize bb_vinfo.
	(vect_is_simple_use): Fix comment, add new argument, fix conditions
	for external definition.
	* passes.c (pass_slp_vectorize): New pass.
	* tree-vect-slp.c (find_bb_location): New function.
	(vect_get_and_check_slp_defs): Add argument, adjust function calls,
	check for patterns only in loops.
	(vect_build_slp_tree): Add argument, adjust function calls, fail in
	case of multiple types in basic block SLP.
	(vect_mark_slp_stmts_relevant): New function.
	(vect_supported_load_permutation_p): Fix comment.
	(vect_analyze_slp_instance): Add argument. In case of basic block
	SLP, take vectorization factor from statement's type, check that
	unrolling factor is 1. Adjust function call. Save SLP instance in
	either loop or basic block vectorization structure. Return FALSE,
	if SLP failed.
	(vect_analyze_slp): Add argument. Get strided stores groups from
	either loop or basic block vectorization structure. Return FALSE
	if basic block SLP failed.
	(new_bb_vec_info): New function.
	(destroy_bb_vec_info, vect_slp_analyze_node_operations,
	vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
	(vect_schedule_slp): Add argument. Get SLP instances from either
	loop or basic block vectorization structure. Set vectorization factor
	to be 1 for basic block SLP.
	(vect_slp_transform_bb): New function.
	* params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.

From-SVN: r147829
2009-05-24 08:44:56 +00:00
Eelis van der Weegen
ffa52e113d initializer_list (initializer_list): Add missing typedefs.
2009-05-24  Eelis van der Weegen  <eelis@eelis.net>
	
	* libsupc++/initializer_list (initializer_list): Add missing typedefs.

From-SVN: r147828
2009-05-24 04:44:50 +00:00
GCC Administrator
d299370727 Daily bump.
From-SVN: r147827
2009-05-24 00:16:52 +00:00
Mark Mitchell
0676c39392 final.c (shorten_branches): Do not align labels for jump tables.
* final.c (shorten_branches): Do not align labels for jump tables.
	(final_scan_insn): Use JUMP_TABLE_DATA_P.

	* gcc.dg/falign-labels-1.c: New test.

Co-Authored-By: Maxim Kuvyrkov <maxim@codesourcery.com>

From-SVN: r147824
2009-05-23 17:56:14 +00:00
Eric Botcazou
94324dae55 passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
* doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
	Remove outdated reference to flow.c and fix nits.
	* doc/gccint.texi: Tweak RTL description.
	* doc/rtl.texi: Likewise.

From-SVN: r147821
2009-05-23 17:54:11 +00:00
Eric Botcazou
22702f9361 * gcc-interface/misc.c (gnat_get_subrange_bounds): Fix thinko.
From-SVN: r147820
2009-05-23 10:56:12 +00:00
Eric Botcazou
03049a4e40 decl.c (set_rm_size): Bypass the check for packed array types.
* gcc-interface/decl.c (set_rm_size): Bypass the check for packed array
	types.

From-SVN: r147819
2009-05-23 10:51:18 +00:00
Eric Botcazou
aae8570a44 decl.c (gnat_to_gnu_entity): Do not modify the original type because of the alignment when...
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not modify the
	original type because of the alignment when there is an address clause.

From-SVN: r147818
2009-05-23 10:37:34 +00:00
Denis Chertykov
92bffc1462 avr.c: Change my email address.
* config/avr/avr.c: Change my email address.
	* config/avr/avr.h: Likewise.
	* config/avr/avr.md: Likewise.
	* config/avr/avr-protos.h: Likewise.
	* config/avr/libgcc.S: Likewise.

From-SVN: r147817
2009-05-23 11:16:07 +04:00
Trevor Smigiel
eec9405eea Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
* config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
	(spu_split_load, spu_split_store): Change return type to int.
	(spu_split_convert): Declare.
	* config/spu/predicates.md (spu_mem_operand): Remove.
	(spu_mov_operand): Update.
	(spu_dest_operand, shiftrt_operator, extend_operator): Define.
	* config/spu/spu.c (regno_aligned_for_load): Remove.
	(reg_aligned_for_addr, spu_expand_load): Define.
	(spu_expand_extv): Reimplement and handle MEM.
	(spu_expand_insv): Handle MEM.
	(spu_sched_reorder): Handle insn's with length 0.
	(spu_legitimate_address_p): Reimplement.
	(store_with_one_insn_p): Return TRUE for any mode with size
	larger than 16 bytes.
	(address_needs_split): Define.
	(spu_expand_mov): Call spu_split_load and spu_split_store for MEM
	operands.
	(spu_convert_move): Define.
	(spu_split_load): Use spu_expand_load and change all MEM's to
	TImode.
	(spu_split_store): Change all MEM's to TImode.
	(spu_init_expanders): Preallocate registers that correspond to
	LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
	mark_reg_pointer.
	(spu_split_convert): Define.
	* config/spu/spu.md (QHSI, QHSDI): New mode iterators.
	(_move<mode>, _movdi, _movti): Update predicate and condition.
	(load, store): Change to define_split.
	(extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
	extend<mode>ti2.
	(zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
	(lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
	define_insn_and_split of lshr<mode>3.
	(shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
	(<v>ashr<mode>3_imm): Define.
	(extv, extzv, insv): Allow MEM operands.
	(trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
	shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
	sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
	(_spu_convert2): Change to define_insn_and_split and remove the
	corresponding define_peephole2.
	(stack_protect_set, stack_protect_test, stack_protect_test_si):
	Change predicates to memory_operand.

From-SVN: r147814
2009-05-23 02:28:14 +00:00
Mark Mitchell
6cfd7dcfaa Fix typo in ChangeLog
From-SVN: r147813
2009-05-23 01:36:37 +00:00
Mark Mitchell
7d31a807ce thumb2.md: Add 16-bit multiply instructions.
* config/arm/thumb2.md: Add 16-bit multiply instructions.
	gcc/testsuite/

	* lib/target-supports.exp (check_effective_target_arm_thumb2_ok):
	New function.
	* gcc.target/arm/thumb2-mul-space.c: New file.
	* gcc.target/arm/thumb2-mul-space-2.c: New file.
	* gcc.target/arm/thumb2-mul-space-3.c: New file.
	* gcc.target/arm/thumb2-mul-speed.c: New file.

From-SVN: r147812
2009-05-23 01:34:53 +00:00
GCC Administrator
67f43f51c4 Daily bump.
From-SVN: r147811
2009-05-23 00:16:43 +00:00
Michael Meissner
d021d27435 Fix PR tree-optimization/40219
From-SVN: r147807
2009-05-22 21:51:12 +00:00
Richard Guenther
4d7a65ea61 re PR tree-optimization/38964 (TBAA side-effects of C++ new still missing)
2009-05-22  Richard Guenther  <rguenther@suse.de>

	PR middle-end/38964
	* alias.c (write_dependence_p): Do not use TBAA for answering
	anti-dependence or output-dependence.
	* tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning
	code.
	(emit_pointer_definition): Remove.
	(emit_alias_warning): Likewise.
	(find_what_var_points_to): Remove TBAA pruning code.
	(find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
	violations.
	(compute_points_to_sets): Remove code computing the set of
	dereferenced pointers.
	* tree-data-ref.c (dr_may_alias_p): Properly use the split
	oracle for querying anti and output dependencies.
	* tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
	if TBAA may be applied.
	(refs_anti_dependent_p): New function.
	(refs_output_dependent_p): Likewise.
	* tree-ssa-alias.h (refs_anti_dependent_p): Declare.
	(refs_output_dependent_p): Likewise.

	* doc/tree-ssa.texi (Memory model): New section.

	testsuite/
	* g++.dg/warn/Wstrict-aliasing-float-ref-int-obj.C: XFAIL.
	* gcc.dg/Wstrict-aliasing-converted-assigned.c: Likewise.
	* gcc.dg/Wstrict-aliasing-float-ptr-int-obj.c: Likewise.

	* doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
	* doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.

	* cfgexpand.c (expand_gimple_basic_block): Do not handle
	GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
	* expr.c (expand_expr_real_1): Likewise.
	* gimple-low.c (lower_stmt): Likewise.
	* gimple-pretty-print.c (dump_gimple_stmt): Likewise.
	(dump_gimple_cdt): Remove.
	* gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
	(gimple_size): Likewise.
	(walk_gimple_op): Likewise.
	(is_gimple_stmt): Likewise.
	(walk_stmt_load_store_addr_ops): Likewise.
	(gimple_build_cdt): Remove.
	* gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
	* gimple.h (gimple_cdt_new_type): Remove.
	(gimple_cdt_new_type_ptr): Likewise.
	(gimple_cdt_set_new_type): Likewise.
	(gimple_cdt_location): Likewise.
	(gimple_cdt_location_ptr): Likewise.
	(gimple_cdt_set_location): Likewise.
	* gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
	* tree-cfg.c (remove_useless_stmts_1): Do not handle
	GIMPLE_CHANGE_DYNAMIC_TYPE.
	(verify_types_in_gimple_stmt): Likewise.
	* tree-inline.c (estimate_num_insns): Likewise.
	(expand_call_inline): Do not copy DECL_NO_TBAA_P.
	(copy_decl_to_var): Likewise.
	(copy_result_decl_to_var): Likewise.
	* tree-pretty-print.c (dump_generic_node): Do not handle
	CHANGE_DYNAMIC_TYPE_EXPR.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
	* tree-ssa-operands.c (get_expr_operands): Likewise.
	* tree-ssa-structalias.c (struct variable_info): Remove
	no_tbaa_pruning member.
	(new_var_info): Do not set it based on DECL_NO_TBAA_P.
	(unify_nodes): Do not copy it.
	(find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
	(dump_solution_for_var): Do not dump no_tbaa_pruning state.
	(set_uids_in_ptset): Do not check it.
	(find_what_var_points_to): Likewise.
	(compute_tbaa_pruning): Remove.
	(compute_points_to_sets): Do not call it.
	* tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
	* tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
	* tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
	(CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
	(DECL_NO_TBAA_P): Likewise.
	(struct tree_decl_common): Move no_tbaa_flag to unused flags section.
	* omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
	(expand_omp_atomic_pipeline): Do not set it.
	* print-tree.c (print_node): Do not dump it.
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
	redundant check.

	cp/
	* init.c (avoid_placement_new_aliasing): Remove.
	(build_new_1): Do not call it.

From-SVN: r147805
2009-05-22 20:41:31 +00:00
Vladimir Makarov
83a6ac60c6 re PR target/39856 (ICE in subst_stack_regs_pat, at reg-stack.c:1386)
2009-05-22 Vladimir Makarov <vmakarov@redhat.com>

	PR target/39856
	* reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
	for clobber.

From-SVN: r147804
2009-05-22 19:00:45 +00:00
Dave Korn
84c40c4a8f win32.S (_ffi_closure_STDCALL): New function.
* src/x86/win32.S (_ffi_closure_STDCALL):  New function.
	(.eh_frame):  Add FDE for it.

From-SVN: r147802
2009-05-22 17:58:45 +00:00
Dave Korn
8353cd27a4 configure.ac: Also check if assembler supports pc-relative relocs on X86_WIN32 targets.
* configure.ac:  Also check if assembler supports pc-relative
	relocs on X86_WIN32 targets.
	* configure:  Regenerate.
	* src/x86/win32.S (ffi_prep_args):  Declare extern, not global.
	(_ffi_call_SYSV):  Add missing function type symbol .def and
	add EH markup labels.
	(_ffi_call_STDCALL):  Likewise.
	(_ffi_closure_SYSV):  Likewise.
	(_ffi_closure_raw_SYSV):  Likewise.
	(.eh_frame):  Add hand-crafted EH data.

From-SVN: r147800
2009-05-22 16:22:53 +00:00