Commit Graph

72 Commits

Author SHA1 Message Date
Sebastian Pop
57d598f76c Fix PR47127: call cloog_state_malloc and cloog_state_free only once.
2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/47127
	* graphite-clast-to-gimple.c (build_cloog_prog): Removed state
	parameter.
	(set_cloog_options): Same.
	(scop_to_clast): Same.
	(print_clast_stmt): Do not call cloog_state_malloc and
	cloog_state_free.
	(print_generated_program): Same.
	(gloog): Same.
	* graphite-clast-to-gimple.h (cloog_state): Declared.
	(scop_to_clast): Adjust declaration.
	* graphite.c (cloog_state): Defined here.
	(graphite_initialize): Call cloog_state_malloc.
	(graphite_finalize): Call cloog_state_free.

From-SVN: r170907
2011-03-12 22:05:38 +00:00
Sebastian Pop
32a73fc494 Use diagnostic-core.h instead of diagnostic.h.
2010-12-28  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (graphite.o): Depends on DIAGNOSTIC_CORE_H.
	(graphite-clast-to-gimple.o): Same.
	(graphite-poly.o): Same.
	* graphite-clast-to-gimple.c: Include diagnostic-core.h.
	* graphite-poly.c: Same.
	* graphite.c: Same.

From-SVN: r168310
2010-12-29 05:26:17 +00:00
Sebastian Pop
e8c2fb69ae Fix bootstrap without graphite.
2010-12-28  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (graphite.o): Add dependence on DIAGNOSTIC_H.
	* graphite.c: Include diagnostic.h.

From-SVN: r168297
2010-12-28 19:09:16 +00:00
Sebastian Pop
1bd6497c3e Do not include unnecessary .h files.
2010-12-28  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (TREE_VECTORIZER_H): Removed duplicate definition.
	(tree-browser.o): Update dependences.
	(omega.o): Same.
	(tree-chrec.o): Same.
	(tree-scalar-evolution.o): Same.
	(tree-data-ref.o): Same.
	(sese.o): Same.
	(graphite.o): Same.
	(graphite-blocking.o): Same.
	(graphite-clast-to-gimple.o): Same.
	(graphite-cloog-util.o): Same.
	(graphite-dependences.o): Same.
	(graphite-flattening.o): Same.
	(graphite-interchange.o): Same.
	(graphite-poly.o): Same.
	(graphite-ppl.o): Same.
	(graphite-scop-detection.o): Same.
	(graphite-sese-to-poly.o): Same.
	(tree-loop-linear.o): Same.
	(tree-loop-distribution.o): Same.
	(tree-parloops.o): Same.
	(lambda-mat.o): Same.
	(lambda-trans.o): Same.
	(lambda-code.o): Same.
	* tree-browser.o: Do not include unnecessary .h files.
	* omega.o: Same.
	* tree-chrec.o: Same.
	* tree-scalar-evolution.o: Same.
	* tree-data-ref.o: Same.
	* sese.o: Same.
	* graphite.o: Same.
	* graphite-blocking.o: Same.
	* graphite-clast-to-gimple.o: Same.
	* graphite-cloog-util.o: Same.
	* graphite-dependences.o: Same.
	* graphite-flattening.o: Same.
	* graphite-interchange.o: Same.
	* graphite-poly.o: Same.
	* graphite-ppl.o: Same.
	* graphite-scop-detection.o: Same.
	* graphite-sese-to-poly.o: Same.
	* tree-loop-linear.o: Same.
	* tree-loop-distribution.o: Same.
	* tree-parloops.o: Same.
	* lambda-mat.o: Same.
	* lambda-trans.o: Same.
	* lambda-code.o: Same.
	* graphite.h: Removed.

From-SVN: r168296
2010-12-28 17:09:16 +00:00
Sebastian Pop
efa213905e Postpone the rewrite out of SSA to the end of the translation to polyhedral representation.
2010-11-22  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/45297
	* graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
	the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
	* graphite-poly.h (new_poly_bb): Update declaration.
	(gbb_from_bb): Moved here...
	(pbb_from_bb): New.
	* graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
	Removed.
	(graphite_stmt_p): Removed.
	(try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
	sbitmap reductions.  Always build a gimple_bb_p.  Do not call
	new_poly_bb.
	(build_scop_bbs_1): Do not pass in sbitmap reductions.
	(build_scop_bbs): Same.
	(gbb_from_bb): ... from here.
	(add_conditions_to_constraints): Moved up.
	(analyze_drs): New.
	(build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
	not contain data references.
	(new_pbb_from_pbb): New.
	(insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
	block is split.
	(rewrite_close_phi_out_of_ssa): Update call to
	insert_out_of_ssa_copy_on_edge.
	(rewrite_reductions_out_of_ssa): Now static.
	(rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
	(split_pbb): New.
	(split_reduction_stmt): Call split_pbb.
	(translate_scalar_reduction_to_array): Pass in the scop, do not
	pass in the sbitmap reductions.
	(rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
	(rewrite_commutative_reductions_out_of_ssa_loop): Same.
	(rewrite_commutative_reductions_out_of_ssa): Same.
	(build_poly_scop): Call build_scop_bbs,
	rewrite_commutative_reductions_out_of_ssa,
	rewrite_reductions_out_of_ssa, and
	rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
	before scop_to_lst.
	* graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
	Removed declaration.
	(rewrite_reductions_out_of_ssa): Same.
	(rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
	(build_scop_bbs): Same.
	* graphite.c (graphite_transform_loops): Do not initialize reductions.
	Do not call build_scop_bbs,
	rewrite_commutative_reductions_out_of_ssa,
	rewrite_reductions_out_of_ssa, and
	rewrite_cross_bb_scalar_deps_out_of_ssa.
	* sese.h (struct gimple_bb): Add field pbb.
	(GBB_PBB): New.

	* gcc.dg/graphite/pr45297.c: New.

From-SVN: r167348
2010-12-01 17:25:10 +00:00
Joseph Myers
7c475d1159 diagnostic-core.h: Include bversion.h.
* diagnostic-core.h: Include bversion.h.
	* toplev.h: Don't include input.h or bversion.h.
	(parse_optimize_options): Don't declare here.
	* alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
	caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
	combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
	config/host-darwin.c, config/i386/host-cygwin.c,
	config/i386/host-mingw32.c, config/i386/msformat-c.c,
	config/i386/netware.c, config/i386/nwld.c,
	config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
	config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
	config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
	config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
	config/score/score3.c, config/score/score7.c,
	config/sh/symbian-base.c, config/sh/symbian-c.c,
	config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
	config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
	cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
	fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
	graphite-blocking.c, graphite-clast-to-gimple.c,
	graphite-dependences.c, graphite-flattening.c,
	graphite-interchange.c, graphite-poly.c,
	graphite-scop-detection.c, graphite.c, haifa-sched.c,
	implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
	ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
	lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
	lto-opts.c, lto-section-in.c, lto-section-out.c,
	lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
	params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
	regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
	sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
	sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
	tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
	tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
	tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
	tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
	tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
	tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
	include toplev.h.
	* Makefile.in (TOPLEV_H): Remove.  All uses changed to use
	toplev.h.  Dependencies for above files and c-family files changed
	to remove $(TOPLEV_H) or toplev.h.
	(C_TREE_H): Don't include $(TOPLEV_H).
	(DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
	bversion.h.
	* config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
	config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
	config/t-darwin, config/t-sol2,
	config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
	Dependencies for above files changed to remove $(TOPLEV_H) or
	toplev.h.

c-family:
	* c-common.h (parse_optimize_options): Declare.
	* c-cppbuiltin.c, c-format.c, c-gimplify.c, c-lex.c, c-omp.c,
	c-pch.c, c-pragma.c, c-semantics.c: Don't include toplev.h.

cp:
	* cp-gimplify.c, cp-lang.c, cvt.c, cxx-pretty-print.c, error.c,
	except.c, expr.c, friend.c, init.c, mangle.c, name-lookup.c,
	optimize.c, parser.c, rtti.c, tree.c, typeck2.c: Don't include
	toplev.h.
	* Make-lang.in: Dependencies for above files changed to remove
	toplev.h.

java:
	* expr.c, lang.c, mangle.c, mangle_name.c, typeck.c,
	verify-glue.c: Don't include toplev.h.
	* Make-lang.in: Dependencies for above files changed to remove
	toplev.h.

lto:
	* Make-lang.in (lto/lto-object.o): Depend on toplev.h instead of
	$(TOPLEV_H).

From-SVN: r167293
2010-11-30 11:41:24 +00:00
Sebastian Pop
cdb9802c64 Fix PR45758: reset scevs before Graphite.
2010-09-24  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/45758
	* graphite.c (graphite_initialize): Call scev_reset.

From-SVN: r164813
2010-09-30 21:22:07 +00:00
Nathan Froyd
ac47786e99 vec.h (FOR_EACH_VEC_ELT): Define.
gcc/
	* vec.h (FOR_EACH_VEC_ELT): Define.
	* c-decl.c: Use it.
	* cfgloop.c: Likewise.
	* cfgloopmanip.c: Likewise.
	* cgraph.c: Likewise.
	* cgraphunit.c: Likewise.
	* combine.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* dbxout.c: Likewise.
	* df-scan.c: Likewise.
	* dominance.c: Likewise.
	* dse.c: Likewise.
	* dwarf2out.c: Likewise.
	* except.c: Likewise.
	* expr.c: Likewise.
	* function.c: Likewise.
	* gcse.c: Likewise.
	* genattr.c: Likewise.
	* ggc-common.c: Likewise.
	* gimplify.c: Likewise.
	* graphite-blocking.c: Likewise.
	* graphite-clast-to-gimple.c: Likewise.
	* graphite-dependences.c: Likewise.
	* graphite-interchange.c: Likewise.
	* graphite-poly.c: Likewise.
	* graphite-scop-detection.c: Likewise.
	* graphite-sese-to-poly.c: Likewise.
	* graphite.c: Likewise.
	* haifa-sched.c: Likewise.
	* ifcvt.c: Likewise.
	* implicit-zee.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-struct-reorg.c: Likewise.
	* ipa.c: Likewise.
	* ira-build.c: Likewise.
	* ira-color.c: Likewise.
	* ira-emit.c: Likewise.
	* lambda-code.c: Likewise.
	* loop-invariant.c: Likewise.
	* loop-unroll.c: Likewise.
	* lower-subreg.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-opts.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* lto-streamer.c: Likewise.
	* lto-symtab.c: Likewise.
	* matrix-reorg.c: Likewise.
	* opts.c: Likewise.
	* predict.c: Likewise.
	* print-tree.c: Likewise.
	* sdbout.c: Likewise.
	* sel-sched-dump.c: Likewise.
	* sel-sched-ir.c: Likewise.
	* sel-sched.c: Likewise.
	* sese.c: Likewise.
	* stor-layout.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-chrec.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-emutls.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-loop-linear.c: Likewise.
	* tree-mudflap.c: Likewise.
	* tree-outof-ssa.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-loop-im.c: Likewise.
	* tree-ssa-loop-ivcanon.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-ssa-loop-manip.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-ssa-phiprop.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-loop-manip.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-slp.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tree-vrp.c: Likewise.
	* tree.c: Likewise.
	* value-prof.c: Likewise.
	* var-tracking.c: Likewise.
	* varasm.c: Likewise.
	* vmsdbgout.c: Likewise.

gcc/ada/
	* gcc-interface/decl.c: Use FOR_EACH_VEC_ELT.
	* gcc-interface/trans.c: Likewise.
	* gcc-interface/utils.c: Likewise.

gcc/c-family/
	* c-common.c: Use FOR_EACH_VEC_ELT.
	* c-gimplify.c: Likewise.
	* c-pragma.c: Likewise.

gcc/cp/
	* call.c: Use FOR_EACH_VEC_ELT.
	* class.c: Likewise.
	* decl.c: Likewise.
	* decl2.c: Likewise.
	* error.c: Likewise.
	* except.c: Likewise.
	* mangle.c: Likewise.
	* method.c: Likewise.
	* name-lookup.c: Likewise.
	* parser.c: Likewise.
	* pt.c: Likewise.
	* repo.c: Likewise.
	* semantics.c: Likewise.
	* typeck2.c: Likewise.

gcc/fortran/
	* trans-openmp.c: Use FOR_EACH_VEC_ELT.

gcc/java/
	* class.c: Use FOR_EACH_VEC_ELT.
	* expr.c: Likewise.
	* jcf-parse.c: Likewise.
	* resource.c: Likewise.

gcc/lto/
	* lto.c: Use FOR_EACH_VEC_ELT.

From-SVN: r163401
2010-08-20 12:48:59 +00:00
Andreas Simbuerger
854376338b Remove cloog_initialize and cloog_finalize when using official CLooG releases.
This requires to initialize the Parma Polyhedra Library by graphite,
as newer CLooG versions are not bound to a PPL backend.

2010-07-27  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite.c (graphite_initialize): Do not initialize
	CLooG and initialize the Parma Polyhedra Library
	manually when using CLOOG_ORG.
	(graphite_finalize): Do not finalize CLooG and finalize
	the Parma Polyhedra Library manually when using CLOOG_ORG.
	* graphite-cloog-compat.h (cloog_initialize): Hide function
	when using CLOOG_ORG.
	(cloog_finalize): Same.

From-SVN: r163166
2010-08-11 20:30:56 +00:00
Sebastian Pop
ee646fc62b Split rewrite_cross_bb_scalar_deps_out_of_ssa out from rewrite_reductions_out_of_ssa.
2010-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
	Split out of rewrite_reductions_out_of_ssa.
	* graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
	Declared.
	* graphite.c (graphite_transform_loops): Call it.

From-SVN: r163122
2010-08-11 20:25:02 +00:00
Sebastian Pop
6a7441f5be Add more debug counter guards.
2010-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.

From-SVN: r163121
2010-08-11 20:24:55 +00:00
Sebastian Pop
14d0e129cc Remove rename_nb_iterations and rename_sese_parameters
2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
	Remove calls to rename_nb_iterations and rename_sese_parameters.
	* graphite-clast-to-gimple.h (gloog): Update declaration.
	* graphite.c (graphite_transform_loops): Update call to gloog.
	* sese.c (rename_variables_in_expr): Removed.
	(rename_nb_iterations): Removed.
	(rename_sese_parameters): Removed.
	* sese.h (rename_nb_iterations): Removed.
	(rename_sese_parameters): Removed.

From-SVN: r163119
2010-08-11 20:24:38 +00:00
Sebastian Pop
3a7086cc51 Detect commutative reductions in all the scops before rewriting out of SSA all the other scalar dependences.
2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
	(rewrite_reductions_out_of_ssa): Same.
	(rewrite_commutative_reductions_out_of_ssa): Same.
	(build_poly_scop): Do not call these functions.
	* graphite-sese-to-poly.h (build_poly_scop): Declared.
	(rewrite_reductions_out_of_ssa): Declared.
	(rewrite_commutative_reductions_out_of_ssa): Declared.
	* graphite.c (graphite_transform_loops): Call on every scop
	rewrite_commutative_reductions_out_of_ssa before calling
	rewrite_reductions_out_of_ssa and build_scop_bbs.

From-SVN: r163116
2010-08-11 20:24:16 +00:00
Steven Bosscher
c75c517d53 Make-lang.in, [...]: Update copyright years.
* ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c, 
	basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
	collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
	config/alpha/predicates.md, config/arm/arm.md,
	config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
	config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
	config/darwin9.h, config/darwin.c, config/darwin.h,
	config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
	config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
	config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
	config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
	config/mips/mips.md, config/mn10300/mn10300.c,
	config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
	config/rs6000/aix.h, config/rs6000/dfp.md,
	config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
	config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
	config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
	config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
	config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
	config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
	c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
	diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
	doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
	doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
	fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
	gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
	graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
	graphite-dependences.c, graphite-poly.c, graphite-poly.h,
	graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
	graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
	intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
	ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
	ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
	loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
	objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
	opt-functions.awk, opth-gen.awk, params.def, passes.c,
	postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
	rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
	store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
	tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
	tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
	tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
	tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
	tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
	tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
	tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
	tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
	tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
	tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
	unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.

From-SVN: r157950
2010-04-02 19:54:46 +00:00
Sebastian Pop
b6bb0094b2 Add PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
2010-03-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_initialize): To bound the number of bbs per
	function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
	* params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
	* doc/invoke.texi: Document it.

From-SVN: r157433
2010-03-13 17:34:51 +00:00
Sebastian Pop
a1954f72c6 re PR tree-optimization/42771 ([graphite] ICE: in graphite_loop_normal_form, at graphite-sese-to-poly.c (2))
Fix PR42771.

2010-02-10  Sebastian Pop  <seb@napoca>

	PR middle-end/42771
	* graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
	* graphite-clast-to-gimple.h (gloog): Update declaration.
	* graphite-poly.c (new_scop): Clear POLY_SCOP_P.
	* graphite-poly.h (struct poly_bb): Add missing comments.
	(struct scop): Add poly_scop_p field.
	(POLY_SCOP_P): New.
	* graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
	* graphite.c (graphite_transform_loops): Build the polyhedral
	representation for each scop before code generation.
	* sese.c (rename_variables_in_operand): Removed.
	(rename_variables_in_expr): Return the renamed expression.
	(rename_sese_parameters): New.
	* sese.h (rename_sese_parameters): Declared.

	* gcc.dg/graphite/pr42771.c: New.

From-SVN: r156711
2010-02-11 19:42:38 +00:00
Sebastian Pop
fd4a56fff2 re PR tree-optimization/42521 (ICE: in graphite_loop_normal_form, at graphite-sese-to-poly.c:2844)
Fix PR42521.

2010-01-07  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42521
	* graphite.c (graphite_finalize): Call scev_reset.
	(graphite_transform_loops): Do not call scev_reset between the code
	generation of scops.

	* testsuite/gcc.dg/graphite/pr42521.c: New.

From-SVN: r155728
2010-01-08 07:39:01 +00:00
Sebastian Pop
585b3e19fe graphite-clast-to-gimple.c (find_pbb_via_hash): Moved up.
2009-10-26  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (find_pbb_via_hash): Moved up.
	(dependency_in_loop_p): Same.
	(translate_clast): Do not use loop->aux.  Initialize
	loop->can_be_parallel.
	(mark_loops_parallel): Removed.
	* graphite-clast-to-gimple.h (mark_loops_parallel): Removed.
	* graphite.c (free_aux_in_new_loops): Removed.
	(graphite_finalize): Do not call free_aux_in_new_loops.
	(graphite_transform_loops): Do not call mark_loops_parallel.

From-SVN: r154626
2009-11-25 05:25:11 +00:00
Sebastian Pop
8e6ef13912 cfgloop.c (alloc_loop): Initialize loop->single_iv.
2009-10-22  Sebastian Pop  <sebastian.pop@amd.com>

	* cfgloop.c (alloc_loop): Initialize loop->single_iv.
	* cfgloop.h (struct loop): New field single_iv.

	* graphite-clast-to-gimple.c (pbb_to_depth_to_oldiv): Do not use
	loop->aux anymore: use loop->single_iv.
	(graphite_loop_normal_form): Moved...
	(build_graphite_loop_normal_form): Removed.
	(gloog): Do not call build_graphite_loop_normal_form.
	(free_aux_in_new_loops): Moved...
	(mark_loops_parallel): Restructure.
	* graphite-clast-to-gimple.h (free_aux_in_new_loops): Do not declare.
	* graphite-sese-to-poly.c (graphite_loop_normal_form): ...here.
	(scop_canonicalize_loops): New.
	(build_poly_scop): Call scop_canonicalize_loops.
	* graphite.c (free_aux_in_new_loops): ...here.

From-SVN: r154624
2009-11-25 05:24:14 +00:00
Sebastian Pop
9bf13085d8 graphite.c (graphite_initialize): Do not handle functions with more than 100 basic blocks.
2009-10-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_initialize): Do not handle functions with
	more than 100 basic blocks.

From-SVN: r154575
2009-11-25 05:01:06 +00:00
Sebastian Pop
4654745dcd Remove pragma GCC diagnostic warning "-Wc++-compat".
2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>

	PR bootstrap/40103
	* graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".

From-SVN: r150696
2009-08-12 15:13:52 +00:00
Sebastian Pop
8e88f9fddf Recompute profile after Graphite.
2009-08-05  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (graphite.o): Depends on PREDICT_H.
	* graphite.c: Include predict.h.
	(graphite_finalize): Call tree_estimate_probability.
	* predict.c (predict_loops): Do not call scev_initialize and
	scev_finalize.
	(tree_estimate_probability_bb): New.
	(tree_estimate_probability): Do not initialize loops: move that
	code to the driver.  Call tree_estimate_probability_bb.
	(tree_estimate_probability_driver): New.
	(pass_profile): Use tree_estimate_probability_driver.
	* predict.h (tree_estimate_probability): Declared.

From-SVN: r150684
2009-08-12 14:19:33 +00:00
Sebastian Pop
3cf0e2702b Rename -fgraphite-force-parallel to -floop-parallelize-all.
2009-08-01  Sebastian Pop  <sebastian.pop@amd.com>

	* doc/invoke.texi (-fgraphite-force-parallel): Renamed
	-floop-parallelize-all.
	* toplev.c (process_options): Rename flag_graphite_force_parallel to
	flag_loop_parallelize_all.
	* tree-ssa-loop.c (gate_graphite_transforms): Same.
	* graphite.c (graphite_transform_loops): Same.
	* common.opt: Same.
	* graphite-poly.c (apply_poly_transforms): Same.

	* gcc.dg/graphite/graphite_autopar/graphite_autopar.exp: Rename
	-fgraphite-force-parallel to -floop-parallelize-all.

From-SVN: r150334
2009-08-01 18:22:58 +00:00
Sebastian Pop
204b560f29 New implementation of Graphite.
2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (OBJS-common): Added dependence on graphite-blocking.o,
	graphite-clast-to-gimple.o, graphite-dependences.o,
	graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
	graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o.
	(graphite-blocking.o,
	graphite-clast-to-gimple.o, graphite-dependences.o,
	graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
	graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New.
	* cfgloop.c (alloc_loop): Set loop->can_be_parallel to false.
	* cfgloop.h (struct loop): Add can_be_parallel field.
	* common.opt (fgraphite-identity): Moved up.
	(fgraphite-force-parallel): New flag.
	* graphite.c: Rewrite.
	* graphite.h: Rewrite.
	* passes.c (init_optimization_passes): Schedule a pass of DCE and LIM
	after Graphite.
	* toplev.c (graphite_out_file): New file descriptor.
	(graphite_in_file): New.
	(process_options): flag_graphite_force_parallel cannot be used without
	Graphite.
	* tree-ssa-loop.c: Include toplev.h.
	(gate_graphite_transforms): Enable flag_graphite for
	flag_graphite_force_parallel.

From-SVN: r150301
2009-07-31 02:44:28 +00:00
Andrew MacLeod
f5045c967e Add source_location support to PHI arguments.
2009-07-29  Andrew MacLeod  <amacleod@redhat.com>

	PR debug 26475
	* tree-into-ssa.c (insert_phi_nodes_for, rewrite_add_phi_arguments): Set
	location for phi arguments.
	(rewrite_update_phi_arguments): Find locations for reaching defs.
	* tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
	Add location to add_phi_arg calls.
	* tree-loop-districbution.c (update_phis_for_loop_copy): Add locations.
	* tree-ssa-loop-manip.c (create_iv, add_exit_phis_edge,
	split_loop_exit_edge, tree_transform_and_unroll_loop): Add locations.
	* tree-tailcall.c (add_successor_phi_arg, eliminate_tail_call,
	create_tailcall_accumulator, tree_optimize_tail_calls_1): Add locations.
	* tree.h (struct phi_arg_d): Add location_t to PHI arguments.
	* tree-phinodes.c (make_phi_node): Initialize location.
	(resize_phi_node): Initialize location to UNKNOWN_LOCATION.
	(add_phi_arg): Add location parameter.
	(remove_phi_arg_num): Move location when moving phi argument.
	* omp-low.c (expand_parallel_call, expand_omp_for_static_chunk): Set 
	location.
	* tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop,
	slpeel_update_phi_nodes_for_guard1,
	slpeel_update_phi_nodes_for_guard2,
	slpeel_tree_duplicate_loop_to_edge_cfg, set_prologue_iterations,
	vect_loop_versioning): Set locations.
	* tree-parloops.c (create_phi_for_local_result,
	transform_to_exit_first_loop, create_parallel_loop): Add locations.
	* gimple-pretty-print.c (dump_gimple_phi): Dump lineno's if present.
	* tree-vect-loop.c (get_initial_def_for_induction,
	vect_create_epilog_for_reduction, vect_finalize_reduction): Add
	locations.
	* tree-flow-inline.h (gimple_phi_arg_location): New.  Return locus.
	(gimple_phi_arg_location_from_edge): New.  Return locus from an edge.
	(gimple_phi_arg_set_location): New.  Set locus.
	(gimple_phi_arg_has_location): New.  Check for locus.
	(redirect_edge_var_map_location): New.  Return locus from var_map.
	* tree-vect-data-refs.c (vect_setup_realignment): Set location.
	* tree-ssa-phiopt.c (conditional_replacement): Set locus when
	combining PHI arguments.
	(cond_store_replacement): Set location.
	* cfgexpand.c (gimple_assign_rhs_to_tree): Transfer locus if possible.
	* grpahite.c (add_loop_exit_phis, add_guard_exit_phis,
	scop_add_exit_phis_edge): Add locations.
	* tree-cfgcleanup.c (remove_forwarder_block,
	remove_forwarder_block_with_phi): Add locations.
	* tree-ssa-pre.c (insert_into_preds_of_block): Add locations.
	* tree-predcom.c (initialize_root_vars, initialize_root_vars_lm): Add
	locations.
	* tree-ssa-dce.c (forward_edge_to_pdom): Add locations.
	* tree-ssa.c (redirect_edge_var_map_add, ssa_redirect_edge,
	flush_pending_stmts): Add source location.
	* lambda-code.c (perfect_nestify): Maintain location stack with argument
	stack to preserve locations.
	* tree-vect-stmts.c (vectorizable_load): Add location.
	* tree-inline.c (copy_phis_for_bb): Copy locus.
	(setup_one_parameter): Add call locus to inlined parameter stmts.
	(initialize_inlined_parameters): Pass in call location as parameter
	assignment locus.
	(tree_function_versioning): Pass location to setup_one_parameter.
	* tree-ssa-phiprop.c (phiprop_insert_phi): Set locations.
	* tree-outof-ssa.c (struct _elim_graph): Add source_location vecs for
	copy and edge lists.
	(insert_partition_copy_on_edge, insert_value_copy_on_edge,
	insert_rtx_to_part_on_edge, insert_part_to_rtx_on_edge): Provide a 
	locus parameter and override the stmt default if provided.
	(new_elim_graph, clear_elim_graph, delete_elim_graph,
	elim_graph_add_edge, elim_graph_remove_succ_edge,
	FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED, eliminate_build,
	elim_forward, elim_unvisited_predecessor, elim_backward, elim_create,
	eliminate_phi):  Add locus info in elimination graph for each edge and
	value copy.
	(insert_backedge_copies): Copy locus if present.
	* tree-flow.h (struct _edge_var_map): Add locus field.
	* tree-switch_conversions.c (fix_phi_nodes): Add locations.
	* tree-cfg.c (reinstall_phi_args, gimple_make_forwarder_block,
	add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi): Add 
	locations.
	* ipa-struct-reorg.c (make_edge_and_fix_phis_of_dest): Add locations.

From-SVN: r150267
2009-07-30 18:36:30 +00:00
Paolo Bonzini
ccf5c864c9 domwalk.h (struct dom_walk_data): Remove all callbacks except before_dom_children_before_stmts and...
2009-06-27  Paolo Bonzini  <bonzini@gnu.org>

        * domwalk.h (struct dom_walk_data): Remove all callbacks except
        before_dom_children_before_stmts and after_dom_children_after_stmts.
        Rename the two remaining callbacks to just before_dom_children and 
        after_dom_children. Remove other GIMPLE statement walking bits.
        * domwalk.c (walk_dominator_tree): Remove now unsupported features.
        * graphite.c: Do not include domwalk.h.
        * tree-into-ssa.c (interesting_blocks): New global.
        (struct mark_def_sites_global_data): Remove it and names_to_rename.
        (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
        rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
        now that they're not domwalk callbacks.
        (rewrite_initialize_block): Rename to...
        (rewrite_enter_block): ... this, place after called functions.  Test
        interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
        (rewrite_finalize_block): Rename to...
        (rewrite_leave_block): ... this, place after called functions.
        (rewrite_update_init_block): Rename to...
        (rewrite_update_enter_block): ... this, place after called functions.
        Test interesting_blocks, call rewrite_update_stmt and 
        rewrite_update_phi_arguments.
        (rewrite_update_fini_block): Rename to...
        (rewrite_leave_block): ... this, place after called functions.
        (rewrite_blocks): Remove last argument, simplify initialization of
        walk_data.
        (mark_def_sites_initialize_block): Rename to...
        (mark_def_sites_block): ... this, call mark_def_sites.
        (mark_def_sites_blocks): Remove argument, simplify initialization of
        walk_data.
        (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
        (update_ssa): Likewise.
        * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
        callback.
        (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
        (dom_opt_initialize_block): Rename to...
        (dom_opt_enter_block): ... this, place after called functions.  Walk
        statements here, inline propagate_to_outgoing_edges.
        (dom_opt_finalize_block): Rename to...
        (dom_opt_leave_block): ... this, place after called functions.
        * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
        domwalk callback.
        (dse_enter_block, dse_record_phi): New.
        (dse_record_phis): Delete.
        (dse_finalize_block): Rename to...
        (dse_leave_block): ... this.
        (tree_ssa_dse): Simplify initialization of walk_data.
        * tree-ssa-loop-im.c (determine_invariantness, move_computations):
        Adjust initialization of walk_data.
        * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
        * tree-ssa-loop-phiopt.c (get_non_trapping):
        Adjust initialization of walk_data.
        * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
        * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
        it's not a domwalk callback.
        (uncprop_initialize_block): Rename to...
        (dse_enter_block): ... this, call uncprop_into_successor_phis.
        (dse_finalize_block): Rename to...
        (dse_leave_block): ... this.
        (tree_ssa_uncprop): Simplify initialization of walk_data.
        * Makefile.in: Adjust dependencies.

From-SVN: r149008
2009-06-27 14:45:51 +00:00
Ian Lance Taylor
a567fa6a3d re PR bootstrap/40408 (bootstrap boken again!)
PR bootstrap/40408
	* graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
	GIMPLE_SWITCH.

From-SVN: r148356
2009-06-10 22:46:38 +00:00
Sebastian Pop
bcbe3b255e graphite.c: Revert previous patch.
2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c: Revert previous patch.

From-SVN: r148321
2009-06-09 18:20:52 +00:00
Sebastian Pop
dc2a6925a1 re PR bootstrap/40103 (CLooG header files are not -Wc++-compat ready)
2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>

	PR bootstrap/40103
	* graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".

From-SVN: r148318
2009-06-09 17:30:23 +00:00
Ian Lance Taylor
7e5487a214 alias.c (struct alias_set_entry_d): Rename from struct alias_set_entry.
gcc/ChangeLog:
	* alias.c (struct alias_set_entry_d): Rename from struct
	alias_set_entry.  Change all uses.
	* except.c (struct call_site_record_d): Rename from struct
	call_site_record.  Change all uses.
	* except.h (struct eh_region_d): Rename from struct eh_region.
	Change all uses.
	* gcse.c (struct hash_table_d): Rename from struct hash_table.
	Change all uses.
	* graphite.c (struct ivtype_map_elt_d): Rename fromstruct
	ivtype_map_elt.  Change all uses.
	(struct rename_map_elt_d): Rename fromstruct rename_map_elt.
	Change all uses.
	(struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
	* graphite.h (struct name_tree_d): Rename from struct name_tree.
	Change all uses.
	(struct sese_d): Rename from struct sese.  Change all uses.
	* omega.h (struct eqn_d): Rename from struct eqn.  Change all
	uses.
	(struct omega_pb_d): Rename from struct omega_pb.  Change all
	uses.
	* optabs.h (struct optab_d): Rename from struct optab.  Change all
	uses.
	(struct convert_optab_d): Rename from struct convert_optab.
	Change all uses.
	* tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
	ipa_opt_pass.  Change all uses.
	* tree-predcom.c (struct dref_d): Rename from struct dref.  Change
	all uses.

	* c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
	defined as a typedef.
	(grokdeclarator): If -Wc++-compat, warn if a typedef is already
	defined as a tag.
gcc/cp/ChangeLog:
	* cp-tree.h (enum cp_lvalue_kind_flags): Rename from
	cp_lvalue_kind.  Change all uses.
	(enum base_access_flags): Rename from enum base_access.  Change
	all uses.
	* parser.c (enum cp_parser_flags): Remove enum tag.
gcc/testsuite/ChangeLog:
	* gcc.dg/Wcxx-compat-10.c: New testcase.
libcpp/ChangeLog:
	* include/cpplib.h (enum cpp_builtin_type): Rename from enum
	builtin_type.  Change all uses.

From-SVN: r147605
2009-05-16 06:54:11 +00:00
Ian Lance Taylor
b7dd69ac5b re PR bootstrap/40103 (CLooG header files are not -Wc++-compat ready)
PR bootstrap/40103
	* graphite.c: Force -Wc++-compat to only be a warning before
	#including "cloog/cloog.h".

From-SVN: r147407
2009-05-12 01:26:45 +00:00
Richard Guenther
5006671f1a re PR middle-end/13146 (inheritance for nonoverlapping_component_refs_p)
2009-04-03  Richard Guenther  <rguenther@suse.de>

	PR middle-end/13146
	PR tree-optimization/23940
	PR tree-optimization/33237
	PR middle-end/33974
	PR middle-end/34093
	PR tree-optimization/36201
	PR tree-optimization/36230
	PR tree-optimization/38049
	PR tree-optimization/38207
	PR tree-optimization/38230
	PR tree-optimization/38301
	PR tree-optimization/38585
	PR middle-end/38895
	PR tree-optimization/38985
	PR tree-optimization/39299
	* tree-ssa-structalias.h: Remove.
	* tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
	(NULL_DEF_OPERAND_P): Make of type def_operand_p.
	(struct vuse_element_d): Remove.
	(struct vuse_vec_d): Likewise.
	(VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
	VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
	SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
	VUSE_ELEMENT_VAR): Likewise.
	(struct voptype_d): Likewise.
	(NUM_VOP_FREE_BUCKETS): Likewise.
	(struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
	(struct stmt_operands_d): Remove.
	(VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
	VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
	VDEF_NUM, VDEF_VECT): Likewise.
	(copy_virtual_operands): Remove.
	(operand_build_cmp): Likewise.
	(create_ssa_artificial_load_stmt): Likewise.
	(enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
	(struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
	vuse_index and mayuse_index members.  Pack and move done and iter_type
	members to the front.
	(SSA_OP_VMAYUSE): Remove.
	(SSA_OP_VIRTUAL_USES): Adjust.
	(FOR_EACH_SSA_VDEF_OPERAND): Remove.
	(unlink_stmt_vdef): Declare.
	(add_to_addressable_set): Remove.
	* tree-vrp.c (stmt_interesting_for_vrp): Adjust.
	(vrp_visit_stmt): Likewise.
	* doc/tree-ssa.texi (Alias analysis): Update.
	* doc/invoke.texi (max-aliased-vops): Remove docs.
	(avg-aliased-vops): Likewise.
	* tree-into-ssa.c (syms_to_rename): Remove.
	(need_to_update_vops_p): Likewise.
	(need_to_initialize_update_ssa_p): Rename to ...
	(update_ssa_initialized_fn): ... this.  Track function we are
	initialized for.
	(symbol_marked_for_renaming): Simplify.
	(add_new_name_mapping): Do not set need_to_update_vops_p.
	(dump_currdefs): Use SYMS_TO_RENAME.
	(rewrite_update_stmt): Always walk all uses/defs.
	(dump_update_ssa): Adjust.
	(init_update_ssa): Take function argument.  Track what we are
	initialized for.
	(delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
	(create_new_def_for): Initialize for cfun, assert we are initialized
	for cfun.
	(mark_sym_for_renaming): Simplify.
	(mark_set_for_renaming): Do not initialize update-ssa.
	(need_ssa_update_p): Simplify.  Take function argument.
	(name_mappings_registered_p): Assert we ask for the correct function.
	(name_registered_for_update_p): Likewise.
	(ssa_names_to_replace): Likewise.
	(release_ssa_name_after_update_ssa): Likewise.
	(update_ssa): Likewise.  Use SYMS_TO_RENAME.
	(dump_decl_set): Do not print a newline.
	(debug_decl_set): Do it here.
	(dump_update_ssa): And here.
	* tree-ssa-loop-im.c (move_computations): Adjust.
	(movement_possibility): Likewise.
	(determine_max_movement): Likewise.
	(gather_mem_refs_stmt): Likewise.
	* tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
	or NAME_MEMORY_TAG.
	* tree-complex.c (update_all_vops): Remove.
	(expand_complex_move): Adjust.
	* tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
	Simplify test for memory referencing statement.  Exclude
	non-invariant ADDR_EXPRs.
	* tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
	* tree-loop-distribution.c (generate_memset_zero): Adjust.
	(rdg_flag_uses): Likewise.
	* tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
	related code.
	(tree_optimize_tail_calls_1): Also split the
	edge from the entry block if we have degenerate PHI nodes in
	the first basic block.
	* tree.c (init_ttree): Remove memory-tag related code.
	(tree_code_size): Likewise.
	(tree_node_structure): Likewise.
	(build7_stat): Re-write to be build6_stat.
	* tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
	(SSA_VAR_P): Adjust.
	(struct tree_memory_tag): Remove.
	(struct tree_memory_partition_tag): Likewise.
	(union tree_node): Adjust.
	(build7): Re-write to be build6.
	* tree-pass.h (pass_reset_cc_flags): Remove.
	(TODO_update_address_taken): New flag.
	(pass_simple_dse): Remove.
	* ipa-cp.c (ipcp_update_callgraph): Update SSA form.
	* params.h (MAX_ALIASED_VOPS): Remove.
	(AVG_ALIASED_VOPS): Likewise.
	* omp-low.c (expand_omp_taskreg): Update SSA form.
	* tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
	aliases the lhs in a copy stmt.
	* tree-ssa-dse.c (struct address_walk_data): Remove.
	(memory_ssa_name_same): Likewise.
	(memory_address_same): Likewise.
	(get_kill_of_stmt_lhs): Likewise.
	(dse_possible_dead_store_p): Simplify, use the oracle.  Handle
	unused stores.  Look through PHI nodes into post-dominated regions.
	(dse_optimize_stmt): Simplify.  Properly remove stores.
	(tree_ssa_dse): Compute dominators.
	(execute_simple_dse): Remove.
	(pass_simple_dse): Likewise.
	* ipa-reference.c (scan_stmt_for_static_refs): Open-code
	gimple_loaded_syms and gimple_stored_syms computation.
	* toplev.c (dump_memory_report): Dump alias and pta stats.
	* tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
	(vn_reference_eq): Likewise.
	(vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
	copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
	valueize_vuses): Remove.
	(get_def_ref_stmt_vuses): Simplify.  Rename to ...
	(get_def_ref_stmt_vuse): ... this.
	(vn_reference_lookup_2): New function.
	(vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
	walking equivalent vuses.  Simplify.
	(vn_reference_lookup): Likewise.
	(vn_reference_insert): Likewise.
	(vn_reference_insert_pieces): Likewise.
	(visit_reference_op_call): Simplify.
	(visit_reference_op_load): Likewise.
	(visit_reference_op_store): Likewise.
	(init_scc_vn): Remove shared_lookup_vuses initialization.
	(free_scc_vn): Remove shared_lookup_vuses freeing.
	(sort_vuses, sort_vuses_heap): Remove.
	(get_ref_from_reference_ops): Export.
	* tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
	vector with single vuse pointer.
	(vn_reference_lookup_pieces, vn_reference_lookup,
	vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
	(shared_vuses_from_stmt): Remove.
	(get_ref_from_reference_ops): Declare.
	* tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
	memory-tag related code.
	* tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
	(likely_value): Add comment, skip static-chain of call statements.
	(surely_varying_stmt_p): Adjust.
	(gimplify_and_update_call_from_tree): Likewise.
	(execute_fold_all_builtins): Do not rebuild alias info.
	(gimplify_and_update_call_from_tree): Properly update VOPs.
	* tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
	(copy_ref_info): Remove memory-tag related code.
	* tree-call-cdce.c (tree_call_cdce): Rename the VOP.
	* ipa-pure-const.c (check_decl): Remove memory-tag related code.
	(check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
	computation.
	* tree-ssa-dom.c (gimple_p): Remove typedef.
	(eliminate_redundant_computations): Adjust.
	(record_equivalences_from_stmt): Likewise.
	(avail_expr_hash): Likewise.
	(avail_expr_eq): Likewise.
	* tree-ssa-propagate.c (update_call_from_tree): Properly
	update VOPs.
	(stmt_makes_single_load): Likewise.
	(stmt_makes_single_store): Likewise.
	* tree-ssa-alias.c: Rewrite completely.
	(debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
	debug_mem_sym_stats, dump_mem_sym_stats_for_var,
	debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
	delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
	dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
	Remove public functions.
	(pass_reset_cc_flags): Remove.
	(pass_build_alias): Move ...
	* tree-ssa-structalias.c (pass_build_alias): ... here.
	* tree-ssa-alias.c (may_be_aliased): Move ...
	* tree-flow-inline.h (may_be_aliased): ... here.
	tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
	count_uses_and_derefs): Move ...
	* gimple.c: ... here.
	* gimple.h (count_uses_and_derefs): Declare.
	* tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
	ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
	same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
	indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
	ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
	call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
	get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
	New functions.
	* tree-dfa.c (refs_may_alias_p): Move ...
	* tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
	* tree-ssa-alias.h: New file.
	* tree-ssa-sink.c (is_hidden_global_store): Adjust.
	(statement_sink_location): Likewise.
	* opts.c (decode_options): Do not adjust max-aliased-vops or
	avg-aliased-vops values.
	* timevar.def (TV_TREE_MAY_ALIAS): Remove.
	(TV_CALL_CLOBBER): Likewise.
	(TV_FLOW_SENSITIVE): Likewise.
	(TV_FLOW_INSENSITIVE): Likewise.
	(TV_MEMORY_PARTITIONING): Likewise.
	(TV_ALIAS_STMT_WALK): New timevar.
	* tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
	* tree-ssa-address.c (create_mem_ref_raw): Use build6.
	(get_address_description): Remove memory-tag related code.
	* tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
	* treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
	* tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
	and immediate uses in statements.  Document.
	* gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
	(dump_symbols): Remove.
	(dump_gimple_mem_ops): Do not dump loaded or stored syms.
	* alias.c (get_deref_alias_set): New function split out from ...
	(get_alias_set): ... here.
	* alias.h (get_deref_alias_set): Declare.
	* tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
	type parameter.  Remove restrict pointer handling.  Create a
	ref-all pointer in case type-based alias sets do not conflict.
	(vect_analyze_data_refs): Remove SMT related code.
	* tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
	(vectorizable_load): Likewise.
	* tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
	(DR_SYMBOL_TAG, DR_VOPS): Remove.
	* tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
	Ignore vops and SMTs.
	(dr_analyze_alias): Likewise..
	(free_data_ref): Likewise.
	(create_data_ref): Likewise.
	(analyze_all_data_dependences): Likewise.
	(get_references_in_stmt): Adjust.
	* tree-flow-inline.h (gimple_aliases_computed_p,
	gimple_addressable_vars, gimple_call_clobbered_vars,
	gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
	factoring_name_p, mark_call_clobbered, clear_call_clobbered,
	compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
	gimple_mem_ref_stats): Remove.
	(gimple_vop): New function.
	(op_iter_next_use): Remove vuses and mayuses cases.
	(op_iter_next_def): Remove vdefs case.
	(op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
	(clear_and_done_ssa_iter): Do not set removed fields.
	(op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
	Assert we are not iterating over vuses or vdefs if not also
	iterating over uses or defs.
	(op_iter_init_use): Likewise.
	(op_iter_init_def): Likewise.
	(op_iter_next_vdef): Remove.
	(op_iter_next_mustdef): Likewise.
	(op_iter_init_vdef): Likewise.
	(compare_ssa_operands_equal): Likewise.
	(link_use_stmts_after): Handle vuse operand.
	(is_call_used): Use is_call_clobbered.
	(is_call_clobbered): Global variables are always call clobbered,
	query the call-clobbers bitmap.
	(mark_call_clobbered): Ignore global variables.
	(clear_call_clobbered): Likewise.
	* tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
	virtual operands sanity check.
	* tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
	Remove.
	(TARGET_MEM_REF): Remove TMR_TAG operand.
	* tree-dfa.c (add_referenced_var): Initialize call-clobber state.
	Remove call-clobber related code.
	(remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
	(dump_variable): Do not dump SMTs, memory stats, may-aliases or
	partitions or escape reason.
	(get_single_def_stmt, get_single_def_stmt_from_phi,
	get_single_def_stmt_with_phi): Remove.
	(dump_referenced_vars): Tidy.
	(get_ref_base_and_extent): Allow bare decls.
	(collect_dfa_stats): Adjust.
	* graphite.c (rename_variables_in_stmt): Adjust.
	(graphite_copy_stmts_from_block): Likewise.
	(translate_clast): Likewise.
	* tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
	(EXPR_DIES): New.
	(translate_vuse_through_block): Use the oracle.
	(phi_translate_1): Adjust.
	(value_dies_in_block_x): Use the oracle.  Cache the outcome
	in EXPR_DIES.
	(valid_in_sets): Check if the VUSE for
	a REFERENCE is available.
	(eliminate): Do not remove stmts during elimination,
	instead queue and remove them afterwards.
	(do_pre): Do not rebuild alias info.
	(pass_pre): Run TODO_rebuild_alias before PRE.
	* tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
	* tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
	(mark_all_v_defs_stmt): Remove.
	(mark_all_v_defs_seq): Adjust.
	(sra_replace): Likewise.
	(scalarize_use): Likewise.
	(scalarize_copy): Likewise.
	(scalarize_init): Likewise.
	(scalarize_ldst): Likewise.
	(todoflags): Remove.
	(tree_sra): Do not rebuild alias info.
	(tree_sra_early): Adjust.
	(pass_sra): Run TODO_update_address_taken before SRA.
	* tree-predcom.c (set_alias_info): Remove.
	(prepare_initializers_chain): Do not call it.
	(mark_virtual_ops_for_renaming): Adjust.
	(mark_virtual_ops_for_renaming_list): Remove.
	(initialize_root_vars): Adjust.
	(initialize_root_vars_lm): Likewise.
	(prepare_initializers_chain): Likewise.
	* tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
	(may_propagate_copy_into_stmt): Likewise.
	(merge_alias_info): Do nothing for now.
	(propagate_tree_value_into_stmt): Adjust.
	(stmt_may_generate_copy): Likewise.
	* tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
	not mark symbols for renaming.
	(forward_propagate_addr_expr): Match up push/pop_stmt_changes
	with the same statement, make sure to update the new pointed-to one.
	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
	call statements, do not mark symbols for renaming.
	(mark_operand_necessary): Dump something.
	(ref_may_be_aliased): New function.
	(mark_aliased_reaching_defs_necessary_1): New helper function.
	(mark_aliased_reaching_defs_necessary): Likewise.
	(mark_all_reaching_defs_necessary_1): Likewise.
	(mark_all_reaching_defs_necessary): Likewise.
	(propagate_necessity): Do not process virtual PHIs.  For
	non-aliased loads mark all reaching definitions as necessary.
	For aliased loads and stores mark the immediate dominating
	aliased clobbers as necessary.
	(visited): New global static.
	(perform_tree_ssa_dce): Free visited bitmap after propagating
	necessity.
	(remove_dead_phis): Perform simple dead virtual PHI removal.
	(remove_dead_stmt): Properly unlink virtual operands when
	removing stores.
	(eliminate_unnecessary_stmts): Schedule PHI removal after
	stmt removal.
	* tree-ssa-ter.c (is_replaceable_p): Adjust.
	(process_replaceable): Likewise.
	(find_replaceable_in_bb): Likewise.
	* tree-ssa.c (verify_ssa_name): Verify all VOPs are
	based on the single gimple vop.
	(verify_flow_insensitive_alias_info): Remove.
	(verify_flow_sensitive_alias_info): Likewise.
	(verify_call_clobbering): Likewise.
	(verify_memory_partitions): Likewise.
	(verify_alias_info): Likewise.
	(verify_ssa): Adjust..
	(execute_update_addresses_taken): Export.  Update SSA
	manually.  Optimize only when optimizing.  Use a local bitmap.
	(pass_update_address_taken): Remove TODO_update_ssa, add
	TODO_dump_func.
	(pass_update_address_taken): Just use TODO_update_address_taken.
	(init_tree_ssa): Do not initialize addressable_vars.
	(verify_ssa): Verify new VUSE / VDEF properties.
	Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
	Do not call verify_alias_info.
	(delete_tree_ssa): Clear the VUSE, VDEF operands.
	Do not free the loaded and stored syms bitmaps.  Reset the escaped
	and callused solutions.  Do not free addressable_vars.
	Remove memory-tag related code.
	(warn_uninitialized_var): Aliases are always available.
	* tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
	* lambda-code.c (can_put_in_inner_loop): Adjust.
	(can_put_after_inner_loop): Likewise.
	(perfect_nestify): Likewise.
	* tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
	(vect_gen_widened_results_half): Remove CALL_EXPR handling.
	(vectorizable_conversion): Do not mark symbols for renaming.
	* tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
	(expand_call_inline): Unlink the calls virtual operands before
	replacing it.
	(tree_function_versioning): Do not call update_ssa if we are not
	updating clones.  Simplify.
	* tree-ssa-phiprop.c (phivn_valid_p): Adjust.
	(propagate_with_phi): Likewise..
	* tree-outof-ssa.c (create_temp): Remove memory tag and call
	clobber code.  Assert we are not aliased or global.
	* tree-flow.h: Include tree-ssa-alias.h
	(enum escape_type): Remove.
	(struct mem_sym_stats_d): Likewise.
	(struct mem_ref_stats_d): Likewise.
	(struct gimple_df): Add vop member.  Remove global_var,
	call_clobbered_vars, call_used_vars, addressable_vars,
	aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
	escaped and callused members.
	(struct ptr_info_def): Remove all members, add points-to solution
	member pt.
	(struct var_ann_d): Remove in_vuse_list, in_vdef_list,
	call_clobbered, escape_mask, mpt and symbol_mem_tag members.
	* Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
	(tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
	(tree-ssa-alias.o): Likewise.
	(toplev.o): Add tree-ssa-alias.h
	(GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
	* gimple.c (gimple_set_bb): Fix off-by-one error.
	(is_gimple_reg): Do not handle memory tags.
	(gimple_copy): Also copy virtual operands.
	Delay updating the statement.  Do not reset loaded and stored syms.
	(gimple_set_stored_syms): Remove.
	(gimple_set_loaded_syms): Likewise.
	(gimple_call_copy_skip_args): Copy the virtual operands
	and mark the new statement modified.
	* tree-ssa-structalias.c (may_alias_p): Remove.
	(set_uids_in_ptset): Take the alias set to prune with as
	parameter.  Fold in the alias test of may_alias_p.
	(compute_points_to_sets): Compute whether a ptr is dereferenced
	in a local sbitmap.
	(process_constraint): Deal with &ANYTHING on the lhs, reject all
	other ADDRESSOF constraints on the lhs.
	(get_constraint_for_component_ref): Assert that we don't get
	ADDRESSOF constraints from the base of the reference.
	Properly generate UNKNOWN_OFFSET for DEREF if needed.
	(struct variable_info): Remove collapsed_to member.
	(get_varinfo_fc): Remove.
	(new_var_info): Do not set collapsed_to.
	(dump_constraint): Do not follow cycles.
	(dump_constraint_graph): Likewise.
	(build_pred_graph): Likewise.
	(build_succ_graph): Likewise.
	(rewrite_constraints): Likewise.
	(do_simple_structure_copy): Remove.
	(do_rhs_deref_structure_copy): Remove.
	(do_lhs_deref_structure_copy): Remove.
	(collapse_rest_of_var): Remove.
	(do_structure_copy): Re-implement.
	(pta_stats): New global variable.
	(dump_pta_stats): New function.
	(struct constraint_expr): Make offset signed.
	(UNKNOWN_OFFSET): Define special value.
	(dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
	(solution_set_expand): New helper function split out from ...
	(do_sd_constraint): ... here.
	(solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
	(do_ds_constraint): Likewise.
	(do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
	and CALLUSED = *CALLUSED.
	(set_union_with_increment): Make inc argument signed.
	(type_safe): Remove.
	(get_constraint_for_ptr_offset): Handle unknown and negative
	constant offsets.
	(first_vi_for_offset): Handle offsets before start.  Bail
	out early for offsets beyond the variable extent.
	(first_or_preceding_vi_for_offset): New function.
	(init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
	Together with ESCAPED = *ESCAPED this properly computes reachability.
	(find_what_var_points_to): New function.
	(find_what_p_points_to): Implement in terms of find_what_var_points_to.
	(pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
	pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
	pt_solutions_intersect): New functions.
	(compute_call_used_vars): Remove.
	(compute_may_aliases): New main entry into PTA computation.
	* gimple.h (gimple_p): New typedef.
	(struct gimple_statement_base): Remove references_memory_p.
	(struct gimple_statement_with_memory_ops_base): Remove
	vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
	members.
	(gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
	gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
	gimple_set_references_memory): Remove.
	(gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
	gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
	New functions.
	* tree-cfg.c (move_block_to_fn): Fix off-by-one error.
	(verify_expr): Allow RESULT_DECL.
	(gimple_duplicate_bb): Do not copy virtual operands.
	(gimple_duplicate_sese_region): Adjust.
	(gimple_duplicate_sese_tail): Likewise.
	(mark_virtual_ops_in_region): Remove.
	(move_sese_region_to_fn): Do not call it.
	* passes.c (init_optimization_passes): Remove pass_reset_cc_flags
	and pass_simple_dse.
	(execute_function_todo): Handle TODO_update_address_taken,
	call execute_update_addresses_taken for TODO_rebuild_alias.
	(execute_todo): Adjust.
	(execute_one_pass): Init dump files early.
	* ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
	call-clobbered.
	(create_general_new_stmt): Clear vops.
	* tree-ssa-reassoc.c (get_rank): Adjust.
	* tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
	symbols for renaming.
	* params.def (PARAM_MAX_ALIASED_VOPS): Remove.
	(PARAM_AVG_ALIASED_VOPS): Likewise.
	* tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
	(duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
	* tree-ssa-operands.c: Simplify for new virtual operand
	representation.
	(operand_build_cmp, copy_virtual_operands,
	create_ssa_artificial_load_stmt, add_to_addressable_set,
	gimple_add_to_addresses_taken): Remove public functions.
	(unlink_stmt_vdef): New function.

	* gcc.dg/pr19633-1.c: Adjust.
	* gcc.dg/torture/pta-callused-1.c: Likewise.
	* gcc.dg/torture/pr39074-2.c: Likewise.
	* gcc.dg/torture/pr39074.c: Likewise.
	* gcc.dg/torture/pta-ptrarith-3.c: New testcase.
	* gcc.dg/torture/pr30375.c: Adjust.
	* gcc.dg/torture/pr33563.c: Likewise.
	* gcc.dg/torture/pr33870.c: Likewise.
	* gcc.dg/torture/pr33560.c: Likewise.
	* gcc.dg/torture/pta-structcopy-1.c: New testcase.
	* gcc.dg/torture/ssa-pta-fn-1.c: Likewise.
	* gcc.dg/tree-ssa/alias-15.c: Remove.
	* gcc.dg/tree-ssa/ssa-dce-4.c: New testcase.
	* gcc.dg/tree-ssa/pr26421.c: Adjust.
	* gcc.dg/tree-ssa/ssa-fre-10.c: XFAIL.
	* gcc.dg/tree-ssa/ssa-dce-5.c: New testcase.
	* gcc.dg/tree-ssa/pr23382.c: Adjust.
	* gcc.dg/tree-ssa/ssa-fre-20.c: New testcase.
	* gcc.dg/tree-ssa/alias-16.c: Adjust.
	* gcc.dg/tree-ssa/ssa-fre-13.c: Likewise.
	* gcc.dg/tree-ssa/ssa-fre-14.c: Likewise.
	* gcc.dg/tree-ssa/alias-18.c: Likewise.
	* gcc.dg/tree-ssa/ssa-fre-15.c: Likewise.
	* gcc.dg/tree-ssa/ssa-lim-3.c: Likewise.
	* gcc.dg/tree-ssa/alias-19.c: Likewise.
	* gcc.dg/tree-ssa/pta-ptrarith-1.c: New testcase.
	* gcc.dg/tree-ssa/pr13146.c: Likewise.
	* gcc.dg/tree-ssa/ssa-pre-23.c: Likewise.
	* gcc.dg/tree-ssa/pta-ptrarith-2.c: Likewise.
	* gcc.dg/tree-ssa/ssa-fre-18.c: Likewise.
	* gcc.dg/tree-ssa/ssa-pre-24.c: New XFAILed testcase.
	* gcc.dg/tree-ssa/ssa-fre-19.c: New testcase.
	* gcc.dg/tree-ssa/alias-20.c: Likewise.
	* gcc.dg/tree-ssa/ssa-dse-12.c: Likewise.
	* gcc.dg/tree-ssa/pr38895.c: Likewise.
	* gcc.dg/uninit-B.c: XFAIL.
	* gcc.dg/vect/no-vfa-vect-43.c: Adjust.
	* gcc.dg/uninit-pr19430.c: XFAIL.
	* g++.dg/tree-ssa/pr13146.C: New testcase.
	* g++.dg/opt/pr36187.C: Adjust.
	* g++.dg/torture/20090329-1.C: New testcase.

From-SVN: r145494
2009-04-03 10:24:28 +00:00
Sebastian Pop
9968d233b3 graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
	(is_simple_operand): Call contains_component_ref_p before calling data
	reference analysis that would fail on COMPONENT_REFs.

	* tree-vrp.c (search_for_addr_array): Fix formatting.

	* g++.dg/graphite: New.
	* g++.dg/graphite/graphite.exp: New.
	* g++.dg/graphite/pr39447.C: New.

From-SVN: r144937
2009-03-18 16:59:55 +00:00
Zdenek Dvorak
48f036062a graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
* graphite.c (nb_reductions_in_loop): Update simple_iv arguments.

From-SVN: r144627
2009-03-04 23:04:03 +00:00
Sebastian Pop
7d4fba4aac re PR middle-end/39335 (ICE in GCC 4.4 with -O[123] -floop-interchange)
2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/39335
	* tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
	when the type precision of the induction variable should be
	larger than the type precision of nit.
	(gen_parallel_loop): Update use of canonicalize_loop_ivs.
	* graphite.c (graphite_loop_normal_form): Same.
	* tree-flow.h (canonicalize_loop_ivs): Update declaration.

	* testsuite/gcc.dg/graphite/pr39335_1.c: New.
	* testsuite/gcc.dg/graphite/pr39335.c: New.

From-SVN: r144564
2009-03-03 03:47:22 +00:00
Sebastian Pop
c20993b995 re PR middle-end/39308 (ICE when compiling with -O[s123] -floop-interchange)
2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/39308
	* graphite.c (graphite_loop_normal_form): Do not call 
	number_of_iterations_exit from a gcc_assert.

From-SVN: r144470
2009-02-27 16:42:38 +00:00
Sebastian Pop
f1a558e048 re PR middle-end/39260 (Failed to build lame-3.98-2 source with graphite)
2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/39260
	* graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
	contains a condition with a real type.
	(build_scop_conditions_1): Conditions are always last_stmt of a bb.

	* gcc.dg/graphite/pr39260.c: New.

From-SVN: r144403
2009-02-24 06:47:56 +00:00
Sebastian Pop
dcd739a603 graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_trans_loop_block): Adjust tile size to 51.

From-SVN: r144358
2009-02-21 17:09:35 +00:00
Sebastian Pop
01d7d2f3e6 re PR tree-optimization/38953 ([graphite] loop closed SSA not maintained by graphite code generation)
2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/38953
	* graphite.c (if_region_set_false_region): After moving a region 
	in the false branch of a condition, remove the empty dummy basic block.
	(gloog): Remove wrong fix for PR38953.

From-SVN: r144042
2009-02-09 20:35:09 +00:00
Tobias Grosser
b0789219a3 graphite.c (bb_in_sese_p, [...]): Moved.
2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de> 

	* graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
	sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
	register_bb_in_sese, new_sese, free_sese): Moved.
	(dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
	outermost_loop_in_scop, build_scop_iteration_domain,
	expand_scalar_variables_ssa_name, get_vdef_before_scop,
	limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
	Use loop_in_sese_p instead of loop_in_scop_p.
	(new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
	(new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
	(scopdet_basic_block_info): Fix bug in scop detection.
	(new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
	eq_loop_to_cloog_loop): Remove.
	(nb_loops_around_loop_in_scop, nb_loop
	ref_nb_loops): Moved here...
	* graphite.h (ref_nb_loops): ... from here.
	(struct scop): Remove bbs_b bitmap and loop2cloog_loop.
	(loop_domain_dim, loop_iteration_vector_dim): Remove.
	(SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
	* testsuite/gcc.dg/graphite/scop-19.c: New

From-SVN: r143947
2009-02-05 00:29:48 +00:00
Sebastian Pop
b840fb02f5 re PR tree-optimization/38953 ([graphite] loop closed SSA not maintained by graphite code generation)
2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/38953
	* graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
	(scop_adjust_phis_for_liveouts): Initialize false_i to zero.
	(gloog): Split the exit of the scop when the scop exit is a loop exit.
	(graphite_transform_loops): Only call cleanup_tree_cfg if gloog
	changed the CFG.

	* gfortran.dg/graphite/pr38953.f90: New.

From-SVN: r143599
2009-01-24 00:59:51 +00:00
Sebastian Pop
71e7afb285 graphite.c (stmt_simple_for_scop_p): Also handle cases when gimple_call_lhs is NULL.
2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (stmt_simple_for_scop_p): Also handle cases when
	gimple_call_lhs is NULL.

From-SVN: r143517
2009-01-20 14:58:53 +00:00
Sebastian Pop
8137e465bf graphite.c (graphite_trans_scop_block): Do not block single nested loops.
2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <tobi.grosser@amd.com>

	* graphite.c (graphite_trans_scop_block): Do not block single
	nested loops.


Co-Authored-By: Tobias Grosser <tobi.grosser@amd.com>

From-SVN: r143468
2009-01-17 15:13:12 +00:00
Sebastian Pop
bcab4e19da graphite.c (compare_prefix_loops): New.
2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <tobi.grosser@amd.com>

	* graphite.c (compare_prefix_loops): New.
	(build_scop_canonical_schedules): Rewritten.
	(graphite_transform_loops): Move build_scop_canonical_schedules
	after build_scop_iteration_domain.


Co-Authored-By: Tobias Grosser <tobi.grosser@amd.com>

From-SVN: r143437
2009-01-16 15:20:16 +00:00
Sebastian Pop
0b040072d6 graphite.c (add_conditions_to_domain): Add the loops to the dimension of the iteration domain.
2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <tobi.grosser@amd.com>

	* graphite.c (add_conditions_to_domain): Add the loops to 
	the dimension of the iteration domain.  Do copy the domain
	only when it exists.
	(build_scop_conditions_1): Do not call add_conditions_to_domain.
	(add_conditions_to_constraints): New.
	(can_generate_code_stmt, can_generate_code): Removed.
	(gloog): Do not call can_generate_code.
	(graphite_transform_loops): Call add_conditions_to_constraints
	after building the iteration domain.


Co-Authored-By: Tobias Grosser <tobi.grosser@amd.com>

From-SVN: r143436
2009-01-16 15:18:28 +00:00
Sebastian Pop
c77bb78f00 graphite.c (scan_tree_for_params): On substractions negate all the coefficients of the term.
2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <tobi.grosser@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	* graphite.c (scan_tree_for_params): On substractions negate
	all the coefficients of the term.
	(clast_to_gcc_expression_red): New.  Handle reduction expressions
	of more than two operands.
	(clast_to_gcc_expression): Call clast_to_gcc_expression_red.
	(get_vdef_before_scop): Handle also the case of default definitions.



Co-Authored-By: Jan Sjodin <jan.sjodin@amd.com>
Co-Authored-By: Tobias Grosser <tobi.grosser@amd.com>

From-SVN: r143415
2009-01-15 23:23:48 +00:00
Sebastian Pop
765ec70c92 re PR middle-end/38431 ([graphite] several ICEs with CP2K (summary))
2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/38431
	* graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
	(scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
	(gloog): Do not call cleanup_tree_cfg.
	(graphite_transform_loops): Call cleanup_tree_cfg after all 
	scops have been code generated.

From-SVN: r143384
2009-01-14 21:11:05 +00:00
Sebastian Pop
f93444883d re PR middle-end/38786 ([graphite] ICE with -floop-block in verify_ssa)
2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/38786
	* gcc.dg/graphite/pr38786.c: New.
	* graphite.c (expand_scalar_variables_ssa_name): New, outlined from
	the SSA_NAME case of expand_scalar_variables_expr.
	Set the type of an expression to the type of its assign	statement.
	(expand_scalar_variables_expr): Also gather the scalar computation
	used to index the memory access.  Do not pass loop_p.
	Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
	(expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
	the gimple_stmt_iterator where it inserts new code.  Do not pass loop_p.
	(copy_bb_and_scalar_dependences): Do not pass loop_p.
	(translate_clast): Update call to copy_bb_and_scalar_dependences.

From-SVN: r143341
2009-01-13 15:33:13 +00:00
Sebastian Pop
2d8bb84db9 graphite.h (debug_value): Removed.
2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.h (debug_value): Removed.
	* graphite.c (debug_value): Removed.

From-SVN: r143340
2009-01-13 15:27:09 +00:00
Jakub Jelinek
96867bbd6f re PR tree-optimization/37031 (ICE for h264ref in gather_interchange_stats with -ftree-loop-linear)
PR tree-optimization/37031
	* lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
	on parameter_set.
	(build_access_matrix): Reserve correct size for AM_MATRIX vector,
	allocate it using gc instead of heap, use VEC_quick_push instead of
	VEC_safe_push.
	* graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
	instead of heap, use VEC_quick_push instead of VEC_safe_push.
	* tree-data-ref.h (struct access_matrix): Change matrix to gc
	allocated vector from heap allocated.
	* lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
	* tree-loop-linear.c (linear_transform_loops): Allocate nest
	vector only after perfect_loop_nest_depth call.

From-SVN: r143188
2009-01-08 17:01:42 +01:00