Commit Graph

94 Commits

Author SHA1 Message Date
Andrew MacLeod 60393bbc61 ggcplug.c: Shuffle includes to include gcc-plugin.h earlier.
2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

	* testsuite/gcc.dg/plugin/ggcplug.c: Shuffle includes to include
	gcc-plugin.h earlier.

2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

	* c/c-typeck.c: Adjust include files.

2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

	* c-family/c-gimplify.c: Adjust include files.

2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

	* cp/cp-gimplify.c: Adjust include files.

2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

	* go/go-gcc.cc: Adjust include files.
	* go/go-lang.c: Ditto.

2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

	* java/java-gimplify.c: Adjust include files.

2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

	* lto/lto-lang.c: Adjust include files.
	* lto/lto-object.c: Ditto.
	* lto/lto-partition.c: Ditto.
	* lto/lto-symtab.c: Ditto.
	* lto/lto.c: Ditto.

2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

	* basic-block.h: Remove all includes.
	(enum profile_status_d, struct control_flow_graph): Move to cfg.h
	* cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
	* Makefile.in (GTFILES): Add cfg.h to list.
	* cgraph.h (symbol_table::create_empty): Move to cgraph.c.
	* cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
	* genconditions.c (write_header): Add predict.h and basic-block.h to
	lits of includes.
	* genemit.c (main): Ditto.
	* genpreds.c (write_insn_preds_c): Ditto.
	* genrecog.c (write_header): Ditto.
	* gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
	to list of includes.
	* alias.c: Adjust include files.
	* asan.c: Ditto.
	* auto-inc-dec.c: Ditto.
	* auto-profile.c: Ditto.
	* bb-reorder.c: Ditto.
	* bt-load.c: Ditto.
	* builtins.c: Ditto.
	* caller-save.c: Ditto.
	* calls.c: Ditto.
	* cfg.c: Ditto.
	* cfganal.c: Ditto.
	* cfgbuild.c: Ditto.
	* cfgcleanup.c: Ditto.
	* cfgexpand.c: Ditto.
	* cfghooks.c: Ditto.
	* cfgloop.c: Ditto.
	* cfgloopanal.c: Ditto.
	* cfgloopmanip.c: Ditto.
	* cfgrtl.c: Ditto.
	* cgraphbuild.c: Ditto.
	* cgraphclones.c: Ditto.
	* cgraphunit.c: Ditto.
	* combine-stack-adj.c: Ditto.
	* combine.c: Ditto.
	* compare-elim.c: Ditto.
	* coverage.c: Ditto.
	* cprop.c: Ditto.
	* cse.c: Ditto.
	* cselib.c: Ditto.
	* data-streamer-in.c: Ditto.
	* data-streamer-out.c: Ditto.
	* data-streamer.c: Ditto.
	* dce.c: Ditto.
	* ddg.c: Ditto.
	* ddg.h: Ditto.
	* df-core.c: Ditto.
	* df-problems.c: Ditto.
	* df-scan.c: Ditto.
	* df.h: Ditto.
	* dojump.c: Ditto.
	* dominance.c: Ditto.
	* domwalk.c: Ditto.
	* dse.c: Ditto.
	* dwarf2cfi.c: Ditto.
	* emit-rtl.c: Ditto.
	* et-forest.c: Ditto.
	* except.c: Ditto.
	* expmed.c: Ditto.
	* expr.c: Ditto.
	* final.c: Ditto.
	* fold-const.c: Ditto.
	* function.c: Ditto.
	* fwprop.c: Ditto.
	* gcc-plugin.h: Ditto.
	* gcse.c: Ditto.
	* generic-match-head.c: Ditto.
	* ggc-page.c: Ditto.
	* gimple-builder.c: Ditto.
	* gimple-expr.c: Ditto.
	* gimple-fold.c: Ditto.
	* gimple-iterator.c: Ditto.
	* gimple-low.c: Ditto.
	* gimple-match-head.c: Ditto.
	* gimple-pretty-print.c: Ditto.
	* gimple-ssa-isolate-paths.c: Ditto.
	* gimple-ssa-strength-reduction.c: Ditto.
	* gimple-streamer-in.c: Ditto.
	* gimple-streamer-out.c: Ditto.
	* gimple-streamer.h: Ditto.
	* gimple-walk.c: Ditto.
	* gimple.c: Ditto.
	* gimplify-me.c: Ditto.
	* gimplify.c: Ditto.
	* graph.c: Ditto.
	* graphite-blocking.c: Ditto.
	* graphite-clast-to-gimple.c: Ditto.
	* graphite-dependences.c: Ditto.
	* graphite-interchange.c: Ditto.
	* graphite-isl-ast-to-gimple.c: Ditto.
	* graphite-optimize-isl.c: Ditto.
	* graphite-poly.c: Ditto.
	* graphite-scop-detection.c: Ditto.
	* graphite-sese-to-poly.c: Ditto.
	* graphite.c: Ditto.
	* haifa-sched.c: Ditto.
	* hw-doloop.c: Ditto.
	* ifcvt.c: Ditto.
	* init-regs.c: Ditto.
	* internal-fn.c: Ditto.
	* ipa-cp.c: Ditto.
	* ipa-devirt.c: Ditto.
	* ipa-icf-gimple.c: Ditto.
	* ipa-icf.c: Ditto.
	* ipa-inline-analysis.c: Ditto.
	* ipa-inline.c: Ditto.
	* ipa-polymorphic-call.c: Ditto.
	* ipa-profile.c: Ditto.
	* ipa-prop.c: Ditto.
	* ipa-pure-const.c: Ditto.
	* ipa-reference.c: Ditto.
	* ipa-split.c: Ditto.
	* ipa-utils.c: Ditto.
	* ipa.c: Ditto.
	* ira-build.c: Ditto.
	* ira-color.c: Ditto.
	* ira-conflicts.c: Ditto.
	* ira-costs.c: Ditto.
	* ira-emit.c: Ditto.
	* ira-lives.c: Ditto.
	* ira.c: Ditto.
	* jump.c: Ditto.
	* lcm.c: Ditto.
	* loop-doloop.c: Ditto.
	* loop-init.c: Ditto.
	* loop-invariant.c: Ditto.
	* loop-iv.c: Ditto.
	* loop-unroll.c: Ditto.
	* lower-subreg.c: Ditto.
	* lra-assigns.c: Ditto.
	* lra-coalesce.c: Ditto.
	* lra-constraints.c: Ditto.
	* lra-eliminations.c: Ditto.
	* lra-lives.c: Ditto.
	* lra-spills.c: Ditto.
	* lra.c: Ditto.
	* lto-cgraph.c: Ditto.
	* lto-compress.c: Ditto.
	* lto-opts.c: Ditto.
	* lto-section-in.c: Ditto.
	* lto-section-out.c: Ditto.
	* lto-streamer-in.c: Ditto.
	* lto-streamer-out.c: Ditto.
	* lto-streamer.c: Ditto.
	* mcf.c: Ditto.
	* mode-switching.c: Ditto.
	* modulo-sched.c: Ditto.
	* omp-low.c: Ditto.
	* optabs.c: Ditto.
	* opts-global.c: Ditto.
	* passes.c: Ditto.
	* postreload-gcse.c: Ditto.
	* postreload.c: Ditto.
	* predict.c: Ditto.
	* print-rtl.c: Ditto.
	* profile.c: Ditto.
	* recog.c: Ditto.
	* ree.c: Ditto.
	* reg-stack.c: Ditto.
	* regcprop.c: Ditto.
	* regcprop.h: Ditto.
	* reginfo.c: Ditto.
	* regrename.c: Ditto.
	* regstat.c: Ditto.
	* reload.c: Ditto.
	* reload1.c: Ditto.
	* reorg.c: Ditto.
	* resource.c: Ditto.
	* rtlanal.c: Ditto.
	* sched-deps.c: Ditto.
	* sched-ebb.c: Ditto.
	* sched-int.h: Ditto.
	* sched-rgn.c: Ditto.
	* sched-vis.c: Ditto.
	* sel-sched-dump.c: Ditto.
	* sel-sched-ir.c: Ditto.
	* sel-sched-ir.h: Ditto.
	* sel-sched.c: Ditto.
	* sese.c: Ditto.
	* shrink-wrap.c: Ditto.
	* stack-ptr-mod.c: Ditto.
	* stmt.c: Ditto.
	* store-motion.c: Ditto.
	* symtab.c: Ditto.
	* toplev.c: Ditto.
	* tracer.c: Ditto.
	* trans-mem.c: Ditto.
	* tree-affine.c: Ditto.
	* tree-call-cdce.c: Ditto.
	* tree-cfg.c: Ditto.
	* tree-cfgcleanup.c: Ditto.
	* tree-chrec.c: Ditto.
	* tree-complex.c: Ditto.
	* tree-data-ref.c: Ditto.
	* tree-dfa.c: Ditto.
	* tree-eh.c: Ditto.
	* tree-emutls.c: Ditto.
	* tree-if-conv.c: Ditto.
	* tree-inline.c: Ditto.
	* tree-into-ssa.c: Ditto.
	* tree-loop-distribution.c: Ditto.
	* tree-nested.c: Ditto.
	* tree-nrv.c: Ditto.
	* tree-object-size.c: Ditto.
	* tree-outof-ssa.c: Ditto.
	* tree-parloops.c: Ditto.
	* tree-phinodes.c: Ditto.
	* tree-predcom.c: Ditto.
	* tree-pretty-print.c: Ditto.
	* tree-profile.c: Ditto.
	* tree-scalar-evolution.c: Ditto.
	* tree-sra.c: Ditto.
	* tree-ssa-address.c: Ditto.
	* tree-ssa-alias.c: Ditto.
	* tree-ssa-ccp.c: Ditto.
	* tree-ssa-coalesce.c: Ditto.
	* tree-ssa-copy.c: Ditto.
	* tree-ssa-copyrename.c: Ditto.
	* tree-ssa-dce.c: Ditto.
	* tree-ssa-dom.c: Ditto.
	* tree-ssa-dse.c: Ditto.
	* tree-ssa-forwprop.c: Ditto.
	* tree-ssa-ifcombine.c: Ditto.
	* tree-ssa-live.c: Ditto.
	* tree-ssa-loop-ch.c: Ditto.
	* tree-ssa-loop-im.c: Ditto.
	* tree-ssa-loop-ivcanon.c: Ditto.
	* tree-ssa-loop-ivopts.c: Ditto.
	* tree-ssa-loop-manip.c: Ditto.
	* tree-ssa-loop-niter.c: Ditto.
	* tree-ssa-loop-prefetch.c: Ditto.
	* tree-ssa-loop-unswitch.c: Ditto.
	* tree-ssa-loop.c: Ditto.
	* tree-ssa-math-opts.c: Ditto.
	* tree-ssa-operands.c: Ditto.
	* tree-ssa-phiopt.c: Ditto.
	* tree-ssa-phiprop.c: Ditto.
	* tree-ssa-pre.c: Ditto.
	* tree-ssa-propagate.c: Ditto.
	* tree-ssa-reassoc.c: Ditto.
	* tree-ssa-sccvn.c: Ditto.
	* tree-ssa-sink.c: Ditto.
	* tree-ssa-strlen.c: Ditto.
	* tree-ssa-structalias.c: Ditto.
	* tree-ssa-tail-merge.c: Ditto.
	* tree-ssa-ter.c: Ditto.
	* tree-ssa-threadedge.c: Ditto.
	* tree-ssa-threadupdate.c: Ditto.
	* tree-ssa-uncprop.c: Ditto.
	* tree-ssa-uninit.c: Ditto.
	* tree-ssa.c: Ditto.
	* tree-ssanames.c: Ditto.
	* tree-stdarg.c: Ditto.
	* tree-streamer-in.c: Ditto.
	* tree-streamer-out.c: Ditto.
	* tree-streamer.c: Ditto.
	* tree-switch-conversion.c: Ditto.
	* tree-tailcall.c: Ditto.
	* tree-vect-data-refs.c: Ditto.
	* tree-vect-generic.c: Ditto.
	* tree-vect-loop-manip.c: Ditto.
	* tree-vect-loop.c: Ditto.
	* tree-vect-patterns.c: Ditto.
	* tree-vect-slp.c: Ditto.
	* tree-vect-stmts.c: Ditto.
	* tree-vectorizer.c: Ditto.
	* tree-vrp.c: Ditto.
	* tree.c: Ditto.
	* tsan.c: Ditto.
	* ubsan.c: Ditto.
	* valtrack.c: Ditto.
	* valtrack.h: Ditto.
	* value-prof.c: Ditto.
	* var-tracking.c: Ditto.
	* varasm.c: Ditto.
	* varpool.c: Ditto.
	* vtable-verify.c: Ditto.
	* web.c: Ditto.
	* config/aarch64/aarch64-builtins.c: Ditto.
	* config/aarch64/aarch64.c: Ditto.
	* config/alpha/alpha.c: Ditto.
	* config/arc/arc.c: Ditto.
	* config/arm/arm.c: Ditto.
	* config/avr/avr.c: Ditto.
	* config/bfin/bfin.c: Ditto.
	* config/c6x/c6x.c: Ditto.
	* config/cr16/cr16.c: Ditto.
	* config/cris/cris.c: Ditto.
	* config/darwin-c.c: Ditto.
	* config/darwin.c: Ditto.
	* config/epiphany/epiphany.c: Ditto.
	* config/epiphany/mode-switch-use.c: Ditto.
	* config/epiphany/resolve-sw-modes.c: Ditto.
	* config/fr30/fr30.c: Ditto.
	* config/frv/frv.c: Ditto.
	* config/h8300/h8300.c: Ditto.
	* config/i386/i386.c: Ditto.
	* config/i386/winnt.c: Ditto.
	* config/ia64/ia64.c: Ditto.
	* config/iq2000/iq2000.c: Ditto.
	* config/lm32/lm32.c: Ditto.
	* config/m32c/m32c.c: Ditto.
	* config/m32r/m32r.c: Ditto.
	* config/m68k/m68k.c: Ditto.
	* config/mcore/mcore.c: Ditto.
	* config/mep/mep.c: Ditto.
	* config/microblaze/microblaze.c: Ditto.
	* config/mips/mips.c: Ditto.
	* config/mmix/mmix.c: Ditto.
	* config/mn10300/mn10300.c: Ditto.
	* config/moxie/moxie.c: Ditto.
	* config/msp430/msp430.c: Ditto.
	* config/nds32/nds32-cost.c: Ditto.
	* config/nds32/nds32-fp-as-gp.c: Ditto.
	* config/nds32/nds32-intrinsic.c: Ditto.
	* config/nds32/nds32-isr.c: Ditto.
	* config/nds32/nds32-md-auxiliary.c: Ditto.
	* config/nds32/nds32-memory-manipulation.c: Ditto.
	* config/nds32/nds32-pipelines-auxiliary.c: Ditto.
	* config/nds32/nds32-predicates.c: Ditto.
	* config/nds32/nds32.c: Ditto.
	* config/nios2/nios2.c: Ditto.
	* config/pa/pa.c: Ditto.
	* config/pdp11/pdp11.c: Ditto.
	* config/rl78/rl78.c: Ditto.
	* config/rs6000/rs6000.c: Ditto.
	* config/rx/rx.c: Ditto.
	* config/s390/s390.c: Ditto.
	* config/sh/sh-mem.cc: Ditto.
	* config/sh/sh.c: Ditto.
	* config/sh/sh_optimize_sett_clrt.cc: Ditto.
	* config/sh/sh_treg_combine.cc: Ditto.
	* config/sparc/sparc.c: Ditto.
	* config/spu/spu.c: Ditto.
	* config/stormy16/stormy16.c: Ditto.
	* config/tilegx/tilegx.c: Ditto.
	* config/tilepro/tilepro.c: Ditto.
	* config/v850/v850.c: Ditto.
	* config/vax/vax.c: Ditto.
	* config/xtensa/xtensa.c: Ditto.

From-SVN: r216735
2014-10-27 12:41:01 +00:00
Andrew MacLeod dd637013f6 cfg.h: New.
2014-10-21  Andrew MacLeod  <amacleod@redhat.com>


	* cfg.h: New.  Header file for cfg.c.
	* cfganal.h: New.  Header file for cfganal.c.
	* lcm.h: New.  Header file for lcm.c.
	* loop-unroll.h: New.  Header file for loop-unroll.h.
	* cfgloop.h: (unroll_loops): Remove prototype.
	* basic-block.h: Move prototypes and structs to new header files.
	Include cfg.h, cfganal.h, and lcm.h.
	* loop-init.c: Include loop-unroll.h.
	* loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
	* modulo-sched.c: Include loop-unroll.h.

From-SVN: r216518
2014-10-21 15:17:12 +00:00
Jan Hubicka f8934be787 loop-unroll.c: (decide_unrolling_and_peeling): Rename to
* loop-unroll.c: (decide_unrolling_and_peeling): Rename to
	(decide_unrolling): ... this one.
	(peel_loops_completely): Remove.
	(decide_peel_simple): Remove.
	(decide_peel_once_rolling): Remove.
	(decide_peel_completely): Remove.
	(peel_loop_simple): Remove.
	(peel_loop_completely): Remove.
	(unroll_and_peel_loops): Rename to ...
	(unroll_loops): ... this one; handle only unrolling.
	* cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
	LPT_PEEL_SIMPLE.
	(UAP_PEEL): Remove.
	(unroll_and_peel_loops): Remove.
	(unroll_loops): New.
	* passes.def: Replace
	pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
	* loop-init.c (gate_rtl_unroll_and_peel_loops,
	rtl_unroll_and_peel_loops): Rename to ...
	(gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
	(pass_rtl_unroll_and_peel_loops): Rename to ...
	(pass_rtl_unroll_loops): ... this one.
	* tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
	(make_pass_rtl_unroll_loops): New.
	* tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
	(canonicalize_loop_induction_variables): Update.

	* gcc.dg/tree-prof/peel-1.c: Update.
	* gcc.dg/tree-prof/unroll-1.c: Update.
	* gcc.dg/gcc.dg/unroll_1.c: Update.
	* gcc.dg/gcc.dg/unroll_2.c: Update.
	* gcc.dg/gcc.dg/unroll_3.c: Update.
	* gcc.dg/gcc.dg/unroll_4.c: Update.

From-SVN: r216238
2014-10-15 08:02:06 +00:00
Richard Biener e45fcf805f re PR bootstrap/63204 (gtype-desc.c:887:40: error: 'struct loop' has no member named 'former_header' breaks bootstrap)
2014-09-08  Richard Biener  <rguenther@suse.de>

	PR bootstrap/63204
	* cfgloop.c (mark_loop_for_removal): Track former header
	unconditionally.
	* cfgloop.h (struct loop): Add former_header member unconditionally.
	* loop-init.c (fix_loop_structure): Enable bogus loop removal
	diagnostic unconditionally.

From-SVN: r215012
2014-09-08 12:01:50 +00:00
Richard Biener e4ca2139f2 cfgloop.c (mark_loop_for_removal): Record former header when ENABLE_CHECKING.
2014-09-05  Richard Biener  <rguenther@suse.de>

	* cfgloop.c (mark_loop_for_removal): Record former header
	when ENABLE_CHECKING.
	* cfgloop.h (strut loop): Add former_header member when
	ENABLE_CHECKING.
	* loop-init.c (fix_loop_structure): Sanity check loops
	marked for removal if they re-appeared.

From-SVN: r214957
2014-09-05 13:04:40 +00:00
Trevor Saunders 558d255943 remove has_execute
gcc/

	* tree-pass.h (pass_data): Remove has_execute member.
	* passes.c (execute_one_pass): Don't check pass->has_execute.
	* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
	cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
	compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
	config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
	config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
	config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
	config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
	dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
	gimple-low.c, gimple-ssa-isolate-paths.c,
	gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
	ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
	ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
	ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
	lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
	postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
	reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
	stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
	tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
	tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
	tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
	tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
	tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
	tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
	tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
	tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
	tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
	tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
	tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
	tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
	tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
	web.c: Remove initializer for pass_data::has_execute.

From-SVN: r212383
2014-07-09 03:06:49 +00:00
Richard Biener 3bea341fbd tree-pass.h (TODO_verify_ssa, [...]): Remove.
2014-05-06  Richard Biener  <rguenther@suse.de>

	* tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
	TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
	(TODO_verify_all): Adjust.
	* asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
	TODO_verify_stmts and TODO_verify_rtl_sharing.
	* bb-reorder.c: Likewise.
	* cfgexpand.c: Likewise.
	* cprop.c: Likewise.
	* cse.c: Likewise.
	* function.c: Likewise.
	* fwprop.c: Likewise.
	* gcse.c: Likewise.
	* gimple-ssa-isolate-paths.c: Likewise.
	* gimple-ssa-strength-reduction.c: Likewise.
	* ipa-split.c: Likewise.
	* loop-init.c: Likewise.
	* loop-unroll.c: Likewise.
	* lower-subreg.c: Likewise.
	* modulo-sched.c: Likewise.
	* postreload-gcse.c: Likewise.
	* predict.c: Likewise.
	* recog.c: Likewise.
	* sched-rgn.c: Likewise.
	* store-motion.c: Likewise.
	* tracer.c: Likewise.
	* trans-mem.c: Likewise.
	* tree-call-cdce.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-complex.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-emutls.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-object-size.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-pass.h: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-copy.c: Likewise.
	* tree-ssa-copyrename.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-ssa-dse.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-ifcombine.c: Likewise.
	* tree-ssa-loop-ch.c: Likewise.
	* tree-ssa-loop-ivcanon.c: Likewise.
	* tree-ssa-loop.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-phiprop.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sink.c: Likewise.
	* tree-ssa-strlen.c: Likewise.
	* tree-ssa-tail-merge.c: Likewise.
	* tree-ssa-uncprop.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-vectorizer.c: Likewise.
	* tree-vrp.c: Likewise.
	* tsan.c: Likewise.
	* var-tracking.c: Likewise.
	* bt-load.c: Likewise.
	* cfgcleanup.c: Likewise.
	* combine-stack-adj.c: Likewise.
	* combine.c: Likewise.
	* compare-elim.c: Likewise.
	* config/epiphany/resolve-sw-modes.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/sh/sh_treg_combine.cc: Likewise.
	* config/sparc/sparc.c: Likewise.
	* dce.c: Likewise.
	* dse.c: Likewise.
	* final.c: Likewise.
	* ifcvt.c: Likewise.
	* mode-switching.c: Likewise.
	* passes.c: Likewise.
	* postreload.c: Likewise.
	* ree.c: Likewise.
	* reg-stack.c: Likewise.
	* regcprop.c: Likewise.
	* regrename.c: Likewise.
	* web.c: Likewise.

From-SVN: r210106
2014-05-06 13:35:40 +00:00
Richard Biener da4cfeacb0 Makefile.in (OBJS): Remove loop-unswitch.o.
2014-04-23  Richard Biener  <rguenther@suse.de>

	* Makefile.in (OBJS): Remove loop-unswitch.o.
	* loop-unswitch.c: Delete.
	* tree-pass.h (make_pass_rtl_unswitch): Remove.
	* passes.def (pass_rtl_unswitch): Likewise.
	* loop-init.c (gate_rtl_unswitch): Likewise.
	(rtl_unswitch): Likewise.
	(pass_data_rtl_unswitch): Likewise.
	(pass_rtl_unswitch): Likewise.
	(make_pass_rtl_unswitch): Likewise.
	* rtl.h (reversed_condition): Likewise.
	(compare_and_jump_seq): Likewise.
	* loop-iv.c (reversed_condition): Move here from loop-unswitch.c
	and make static.
	* loop-unroll.c (compare_and_jump_seq): Likewise.

From-SVN: r209698
2014-04-23 13:48:12 +00:00
Richard Biener 92562f8869 re PR tree-optimization/60891 (ICE: SIGSEGV (Invalid write/read) in pre_and_rev_post_order_compute_fn with -O -fno-tree-ch -fno-tree-cselim -fno-tree-dominator-opts)
2014-04-23  Richard Biener  <rguenther@suse.de>

	PR middle-end/60891
	* loop-init.c (loop_optimizer_init): Make sure to apply
	LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.

	* gcc.dg/torture/pr60891.c: New testcase.

From-SVN: r209673
2014-04-23 08:23:33 +00:00
Trevor Saunders be55bfe6cf pass cfun to pass::execute
gcc/
	* passes.c (opt_pass::execute): Adjust.
	(pass_manager::execute_pass_mode_switching): Likewise.
	(early_local_passes::execute): Likewise.
	(execute_one_pass): Pass cfun to the pass's execute method.
	* tree-pass.h (opt_pass::execute): Add function * argument.
	* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
	cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
	compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
	config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
	config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
	config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
	except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
	gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
	graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
	ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
	ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
	lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
	postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
	reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
	store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
	tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
	tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
	tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
	tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
	tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
	tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
	tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
	tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
	tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
	tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
	tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
	tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
	Adjust.

From-SVN: r209482
2014-04-17 12:37:34 +00:00
Trevor Saunders 1a3d085cf2 pass current function to opt_pass::gate ()
gcc/
	* passes.c (opt_pass::gate): Take function * argument.
	(gate_all_early_local_passes): Merge into
	(early_local_passes::gate): this.
	(gate_all_early_optimizations): Merge into
	(all_early_optimizations::gate): this.
	(gate_all_optimizations): Mege into
	(all_optimizations::gate): this.
	(gate_all_optimizations_g): Merge into
	(all_optimizations_g::gate): this.
	(gate_rest_of_compilation): Mege into
	(rest_of_compilation::gate): this.
	(gate_postreload): Merge into
	(postreload::gate): this.
	(dump_one_pass): Pass cfun to the pass's gate method.
	(execute_ipa_summary_passes): Likewise.
	(execute_one_pass): Likewise.
	(ipa_write_summaries_2): Likewise.
	(ipa_write_optimization_summaries_1): Likewise.
	(ipa_read_summaries_1): Likewise.
	(ipa_read_optimization_summaries_1): Likewise.
	(execute_ipa_stmt_fixups): Likewise.
	* tree-pass.h (opt_pass::gate): Add function * argument.
	* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
	combine-stack-adj.c, combine.c, compare-elim.c,
	config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
	config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
	config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
	dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
	gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
	graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
	ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
	loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
	omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
	reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
	store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
	tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
	tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
	tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
	tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
	tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
	tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
	tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
	tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
	tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
	tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
	tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
	var-tracking.c, vtable-verify.c, web.c: Adjust.

gcc/testsuite/
	* g++.dg/plugin/dumb_plugin.c, g++.dg/plugin/selfasign.c,
	gcc.dg/plugin/one_time_plugin.c, gcc.dg/plugin/selfasign.c: Adjust.

From-SVN: r209481
2014-04-17 12:37:16 +00:00
Trevor Saunders 0481253d15 remove has_gate
gcc/
	* passes.c (dump_one_pass): don't check pass->has_gate.
	(execute_ipa_summary_passes): Likewise.
	(execute_one_pass): Likewise.
	(ipa_write_summaries_2): Likewise.
	(ipa_write_optimization_summaries_1): Likewise.
	(ipa_read_optimization_summaries_1): Likewise.
	(execute_ipa_stmt_fixups): Likewise.
	* tree-pass.h (pass_data::has_gate): Remove.
	* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
	cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
	compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
	config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
	config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
	config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
	config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
	dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
	gimple-low.c, gimple-ssa-isolate-paths.c,
	gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
	ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
	ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
	ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
	modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
	recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
	reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
	trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
	tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
	tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
	tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
	tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
	tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
	tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
	tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
	tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
	tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
	tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
	tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
	tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
	Adjust.

gcc/testsuite/
	* g++.dg/plugin/dumb_plugin.c, g++.dg/plugin/selfassign.c,
	gcc.dg/plugin/one_time_plugin.c, gcc.dg/plugin/selfassign.c: Adjust.

From-SVN: r209479
2014-04-17 12:36:56 +00:00
Richard Sandiford 23a5b65a92 Update copyright years in gcc/
From-SVN: r206289
2014-01-02 22:23:26 +00:00
David Malcolm 04a90bec09 Eliminate FOR_ALL_BB macro.
gcc/
	* basic-block.h (FOR_ALL_BB): Eliminate macro.

	* cfg.c (alloc_aux_for_blocks, clear_aux_for_blocks): Replace
	uses of FOR_ALL_BB with FOR_ALL_BB_FN, making uses of cfun explicit.

	* cfganal.c (inverted_post_order_compute): Likewise.
	* cfgcleanup.c (try_optimize_cfg): Likewise.
	* cfgexpand.c (add_scope_conflicts): Likewise.
	* cfghooks.c (dump_flow_info, account_profile_record): Likewise.
	* cfgrtl.c (relink_block_chain): Likewise.
	* dce.c (mark_artificial_uses): Likewise.
	* df-core.c (df_set_blocks, df_compute_cfg_image, df_dump): Likewise.
	* df-problems.c (df_lr_verify_solution_start,
	df_lr_verify_solution_end, df_lr_verify_transfer_functions,
	df_live_verify_solution_start, df_live_verify_solution_end,
	df_live_set_all_dirty, df_live_verify_transfer_functions,
	df_md_local_comput): Likewise.
	* df-scan.c (df_scan_free_internal, df_scan_alloc)
	df_reorganize_refs_by_insn, df_scan_verify): Likewise.
	* dominance.c (compute_dom_fast_query, calculate_dominance_info,
	free_dominance_info): Likewise.
	* dse.c (dse_step1, dse_step3, dse_step4, dse_step6): Likewise.
	* graph.c (draw_cfg_edges): Likewise.
	* graphite-scop-detection.c (print_graphite_scop_statistics,
	dot_all_scops_1): Likewise.
	* graphite.c (print_global_statistics,
	print_graphite_scop_statistics): Likewise.
	* ira.c (do_reload): Likewise.
	* loop-init.c (loop_optimizer_finalize): Likewise.
	* lto-streamer-in.c (input_function): Likewise.
	* lto-streamer-out.c (output_function): Likewise.
	* mcf.c (adjust_cfg_counts): Likewise.
	* predict.c (estimate_loops): Likewise.
	* sched-rgn.c (haifa_find_rgns): Likewise.
	* tree-cfg.c (split_critical_edges): Likewise.
 	* tree-dfa.c (renumber_gimple_stmt_uids): Likewise.
	* tree-loop-distribution.c (tree_loop_distribution): Likewise.
	* tree-ssa-pre.c (compute_antic, insert, init_pre): Likewise.
	* tree-ssa-propagate.c (ssa_prop_init): Likewise.
	* var-tracking.c (vt_initialize, vt_finalize): Likewise.
	* vtable-verify.c (vtable_verify_main): Likewise.
	* web.c (web_main): Likewise.

From-SVN: r205830
2013-12-09 21:29:15 +00:00
David Malcolm 11cd3bed28 Eliminate FOR_EACH_BB macro.
gcc/
	* basic-block.h (FOR_EACH_BB): Eliminate macro.

	* asan.c (transform_statements, execute_sanopt): Eliminate
	use of FOR_EACH_BB in favor of FOR_EACH_BB_FN, to make use of cfun
	explicit.
	* auto-inc-dec.c (rest_of_handle_auto_inc_dec): Likewise.
	* bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges,
	set_edge_can_fallthru_flag, fix_up_fall_thru_edges,
	fix_crossing_unconditional_branches, add_reg_crossing_jump_notes,
	insert_section_boundary_note, rest_of_handle_reorder_blocks,
	duplicate_computed_gotos): Likewise.
	* cfg.c (clear_edges, compact_blocks, brief_dump_cfg): Likewise.
	* cfganal.c (find_unreachable_blocks, add_noreturn_fake_exit_edges,
	compute_dominance_frontiers_1, single_pred_before_succ_order): Likewise.
	* cfgbuild.c (find_many_sub_basic_blocks): Likewise.
	* cfgcleanup.c (try_optimize_cfg, delete_dead_jumptables): Likewise.
	* cfgexpand.c (add_scope_conflicts, discover_nonconstant_array_refs):
	Likewise.
	* cfgloop.c (flow_loops_cfg_dump, get_loop_body, record_loop_exits,
	verify_loop_structure): Likewise.
	* cfgloopanal.c (mark_loop_exit_edges): Likewise.
	* cfgrtl.c (compute_bb_for_insn, find_partition_fixes,
	verify_hot_cold_block_grouping, purge_all_dead_edges,
	fixup_abnormal_edges, record_effective_endpoints,
	outof_cfg_layout_mode, fixup_reorder_chain, force_one_exit_fallthru,
	break_superblocks): Likewise.
	* cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges,
	cgraph_rebuild_references): Likewise.
	* combine-stack-adj.c (combine_stack_adjustments): Likewise.
	* combine.c (delete_noop_moves, create_log_links,
	combine_instructions): Likewise.
	* config/arm/arm.c (thumb1_reorg, thumb2_reorg): Likewise.
	* config/bfin/bfin.c (bfin_gen_bundles, reorder_var_tracking_notes):
	Likewise.
	* config/c6x/c6x.c (c6x_gen_bundles, conditionalize_after_sched,
	c6x_reorg): Likewise.
	* config/epiphany/resolve-sw-modes.c (resolve_sw_modes): Likewise.
	* config/frv/frv.c (frv_optimize_membar): Likewise.
	* config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise.
	* config/ia64/ia64.c (ia64_reorg): Likewise.
	* config/mips/mips.c (mips_annotate_pic_calls): Likewise.
	* config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
	* config/rs6000/rs6000.c (rs6000_alloc_sdmode_stack_slot): Likewise.
	* config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
	* config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Likewise.
	* config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
	* config/tilegx/tilegx.c (tilegx_gen_bundles,
	reorder_var_tracking_notes): Likewise.
	* config/tilepro/tilepro.c (tilepro_gen_bundles,
	reorder_var_tracking_notes): Likewise.
	* coverage.c (coverage_compute_cfg_checksum): Likewise.
	* cprop.c (compute_hash_table_work, compute_cprop_data,
	local_cprop_pass, find_implicit_sets): Likewise.
	* cse.c (cse_condition_code_reg): Likewise.
	* dce.c (prescan_insns_for_dce): Likewise.
	* df-core.c (df_compact_blocks): Likewise.
	* df-problems.c (df_word_lr_alloc): Likewise.
	* df-scan.c (df_scan_start_dump, df_scan_blocks, df_insn_rescan_all,
	df_update_entry_exit_and_calls): Likewise.
	* dominance.c (calculate_dominance_info, verify_dominators,
	debug_dominance_info): Likewise.
	* dse.c (dse_step5_nospill): Likewise.
	* except.c (finish_eh_generation): Likewise.
	* final.c (compute_alignments): Likewise.
	* function.c (thread_prologue_and_epilogue_insns,
	rest_of_match_asm_constraints): Likewise.
	* gcse.c (compute_hash_table_work, prune_expressions,
	compute_pre_data, compute_code_hoist_vbeinout, hoist_code,
	calculate_bb_reg_pressure, compute_ld_motion_mems): Likewise.
	* gimple-iterator.c (gsi_commit_edge_inserts): Likewise.
	* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour,
	find_explicit_erroneous_behaviour): Likewise.
	* graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa,
	rewrite_cross_bb_scalar_deps_out_of_ssa): Likewise.
	* haifa-sched.c (haifa_sched_init): Likewise.
	* hw-doloop.c (discover_loops, set_bb_indices, reorder_loops):
	Likewise.
	* ifcvt.c (if_convert): Likewise.
	* init-regs.c (initialize_uninitialized_regs): Likewise.
	* ipa-prop.c (ipcp_transform_function): Likewise.
	* ipa-pure-const.c (analyze_function): Likewise.
	* ipa-split.c (find_split_points, execute_split_functions): Likewise.
	* ira-build.c (form_loop_tree): Likewise.
	* ira-costs.c (find_costs_and_classes): Likewise.
	* ira-emit.c (emit_moves, add_ranges_and_copies, ira_emit): Likewise.
	* ira.c (decrease_live_ranges_number, compute_regs_asm_clobbered,
	mark_elimination, update_equiv_regs, find_moveable_pseudos,
	split_live_ranges_for_shrink_wrap, allocate_initial_values): Likewise.
	* jump.c (mark_all_labels): Likewise.
	* lcm.c (compute_laterin, compute_insert_delete, compute_available,
	compute_nearerout, compute_rev_insert_delete): Likewise.
	* loop-init.c (fix_loop_structure): Likewise.
	* loop-invariant.c (calculate_loop_reg_pressure): Likewise.
	* lower-subreg.c (decompose_multiword_subregs,
	decompose_multiword_subregs): Likewise.
	* lra-assigns.c (assign_by_spills): Likewise.
	* lra-coalesce.c (lra_coalesce): Likewise.
	* lra-constraints.c (lra_inheritance, remove_inheritance_pseudos):
	Likewise.
	* lra-eliminations.c (lra_init_elimination): Likewise.
	* lra-spills.c (assign_spill_hard_regs, spill_pseudos,
	lra_final_code_change): Likewise.
	* lra.c (remove_scratches, check_rtl, has_nonexceptional_receiver,
	update_inc_notes): Likewise.
	* mcf.c (adjust_cfg_counts): Likewise.
	* mode-switching.c (optimize_mode_switching): Likewise.
	* modulo-sched.c (rest_of_handle_sms): Likewise.
	* omp-low.c (optimize_omp_library_calls, expand_omp_taskreg,
	expand_omp_target): Likewise.
	* postreload-gcse.c (alloc_mem, compute_hash_table): Likewise.
	* postreload.c (reload_cse_regs_1): Likewise.
	* predict.c (strip_predict_hints, tree_bb_level_predictions,
	tree_estimate_probability, expensive_function_p,
	estimate_bb_frequencies, compute_function_frequency): Likewise.
	* profile.c (is_inconsistent, compute_branch_probabilities,
	branch_prob): Likewise.
	* ree.c (find_removable_extensions): Likewise.
	* reg-stack.c (compensate_edges, convert_regs, reg_to_stack): Likewise.
	* regcprop.c (copyprop_hardreg_forward): Likewise.
	* reginfo.c (init_subregs_of_mode): Likewise.
	* regrename.c (regrename_analyze): Likewise.
	* regstat.c (regstat_compute_ri, regstat_compute_calls_crossed):
	Likewise.
	* reload1.c (has_nonexceptional_receiver, reload,
	calculate_elim_costs_all_insns): Likewise.
	* resource.c (init_resource_info, free_resource_info): Likewise.
	* sched-ebb.c (schedule_ebbs): Likewise.
	* sched-rgn.c (is_cfg_nonregular, find_single_block_region,
	haifa_find_rgns, sched_rgn_local_init): Likewise.
	* sel-sched-dump.c (sel_dump_cfg_2): Likewise.
	* sel-sched-ir.c (init_lv_sets, free_lv_sets,
	make_regions_from_the_rest): Likewise.
	* sese.c (build_sese_loop_nests, sese_build_liveouts): Likewise.
	* stack-ptr-mod.c (notice_stack_pointer_modification): Likewise.
	* store-motion.c (compute_store_table, build_store_vectors,
	one_store_motion_pass): Likewise.
	* tracer.c (tail_duplicate): Likewise.
	* trans-mem.c (compute_transaction_bits): Likewise.
	* tree-call-cdce.c (tree_call_cdce): Likewise.
	* tree-cfg.c (replace_loop_annotate, factor_computed_gotos,
	fold_cond_expr_cond, make_edges, assign_discriminators,
	make_abnormal_goto_edges, cleanup_dead_labels, group_case_labels,
	dump_cfg_stats, gimple_verify_flow_info, print_loop,
	execute_fixup_cfg): Likewise.
	* tree-cfgcleanup.c (cleanup_tree_cfg_1, merge_phi_nodes): Likewise.
	* tree-complex.c (init_dont_simulate_again, tree_lower_complex):
	Likewise.
	* tree-dfa.c (collect_dfa_stats, dump_enumerated_decls): Likewise.
	* tree-eh.c (execute_lower_resx, execute_lower_eh_dispatch,
	mark_reachable_handlers): Likewise.
	* tree-emutls.c (lower_emutls_function_body): Likewise.
	* tree-if-conv.c (main_tree_if_conversion): Likewise.
	* tree-inline.c (optimize_inline_calls): Likewise.
	* tree-into-ssa.c (rewrite_into_ssa, update_ssa): Likewise.
	* tree-nrv.c (tree_nrv, execute_return_slot_opt): Likewise.
	* tree-object-size.c (compute_object_sizes): Likewise.
	* tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees,
	insert_backedge_copies, tree_profiling): Likewise.
	* tree-scalar-evolution.c (scev_const_prop): Likewise.
	* tree-sra.c (scan_function, sra_modify_function_body,
	propagate_dereference_distances, ipa_sra_modify_function_body,
	convert_callers): Likewise.
	* tree-ssa-ccp.c (ccp_initialize, execute_fold_all_builtins): Likewise.
	* tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
	create_outofssa_var_map, coalesce_partitions): Likewise.
	* tree-ssa-copy.c (init_copy_prop): Likewise.
	* tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
	* tree-ssa-dce.c (find_obviously_necessary_stmts,
	eliminate_unnecessary_stmts): Likewise.
	* tree-ssa-dom.c (free_all_edge_infos, tree_ssa_dominator_optimize):
	Likewise.
	* tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
	* tree-ssa-live.c (clear_unused_block_pointer, remove_unused_locals,
	new_tree_live_info, calculate_live_on_exit, dump_live_info,
	analyze_memory_references, fill_always_executed_in,
	tree_ssa_lim_finalize): Likewise.
	* tree-ssa-loop-manip.c (find_uses_to_rename, verify_loop_closed_ssa):
	Likewise.
	* tree-ssa-math-opts.c (execute_cse_reciprocals, execute_cse_sincos,
	execute_optimize_bswap, execute_optimize_widening_mul): Likewise.
	* tree-ssa-propagate.c (substitute_and_fold): Likewise.
	* tree-ssa-structalias.c (compute_points_to_sets): Likewise.
	* tree-ssa-tail-merge.c (find_same_succ, reset_cluster_vectors):
	Likewise.
	* tree-ssa-ter.c (find_replaceable_exprs): Likewise.
	* tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
	* tree-ssa-uncprop.c (associate_equivalences_with_edges,
	tree_ssa_uncprop): Likewise.
	* tree-ssa-uninit.c (warn_uninitialized_vars,
	execute_late_warn_uninitialized): Likewise.
	* tree-ssa.c (verify_ssa, execute_update_addresses_taken): Likewise.
	* tree-stdarg.c (check_all_va_list_escapes, execute_optimize_stdarg):
	Likewise.
	* tree-switch-conversion.c (do_switchconv): Likewise.
	* tree-vect-generic.c (expand_vector_operations): Likewise.
	* tree-vectorizer.c (adjust_simduid_builtins, note_simd_array_uses,
	execute_vect_slp): Likewise.
	* tree-vrp.c (check_all_array_refs, remove_range_assertions,
	vrp_initialize, identify_jump_threads, instrument_memory_accesses):
	Likewise.
	* ubsan.c (ubsan_pass): Likewise.
	* value-prof.c (verify_histograms, gimple_value_profile_transformations,
	gimple_find_values_to_profile): Likewise.
	* var-tracking.c (vt_find_locations, dump_dataflow_sets, vt_emit_notes,
	vt_initialize, delete_debug_insns, vt_finalize): Likewise.

gcc/testsuite/
	* g++.dg/plugin/selfassign.c (execute_warn_self_assign): Eliminate
	use of FOR_EACH_BB in favor of FOR_EACH_BB_FN, to make use of cfun
	explicit.
	* gcc.dg/plugin/selfassign.c (execute_warn_self_assign): Likewise.

From-SVN: r205828
2013-12-09 21:06:06 +00:00
Steven Bosscher 29f3fd5b6a re PR bootstrap/59279 (r205337 breaks bootstrap with java)
PR bootstrap/59279
	Revert previous commit.

From-SVN: r205338
2013-11-24 21:59:49 +00:00
Steven Bosscher 57d6c446c7 jump.c (reset_insn_reg_label_operand_notes): New function, split out from ...
* jump.c (reset_insn_reg_label_operand_notes): New function,
	split out from ...
	(init_label_info): ... here.  Reset LABEL_NUSES in cfglayout mode.
	* cfgcleanup.c (delete_dead_jump_tables_between): New function,
	split out from ...
	(delete_dead_jumptables): ... here.  Handle cfglayout mode.
	(cleanup_cfg): Delete dead jump tables in cfglayout mode if an
	expensive CFG cleanup is called for.
	* cfgrtl.c (fixup_reorder_chain): Remove BARRIERs from fallthru paths.
	(cfg_layout_finalize): Delete dead jump tables before re-building
	the insns chain.
	* ira.c (ira): Rebuild jump labels *after* deleting unreachable
	basic blocks, not before.
	* loop-init.c (rtl_loop_done): Call for an expensive CFG cleanup.

	* modulo-sched.c (sms_schedule): Do not look for BARRIERs in the
	insns chain of a scheduling extended basic block, they cannot appear
	there in cfglayout mode.

From-SVN: r205337
2013-11-24 19:15:36 +00:00
Richard Biener f0bd40b1a7 cfgloop.h (struct loop_iterator): C++-ify, add constructor and destructor and make fel_next a member function.
2013-11-19  Richard Biener  <rguenther@suse.de>

	* cfgloop.h (struct loop_iterator): C++-ify, add constructor
	and destructor and make fel_next a member function.
	(fel_next): Transform into ...
	(loop_iterator::next): ... this.
	(fel_init): Transform into ...
	(loop_iterator::loop_iterator): ... this.
	(loop_iterator::~loop_iterator): New.
	(FOR_EACH_LOOP): Remove loop-iterator argument.
	(FOR_EACH_LOOP_BREAK): Remove no longer necessary macro.
	* cfgloop.c, cfgloopmanip.c, config/mn10300/mn10300.c,
	graphite-clast-to-gimple.c, graphite-scop-detection.c,
	graphite-sese-to-poly.c, ipa-inline-analysis.c, ipa-pure-const.c,
	loop-init.c, loop-invariant.c, loop-unroll.c, loop-unswitch.c,
	modulo-sched.c, predict.c, sel-sched-ir.c, tree-cfg.c, tree-data-ref.c,
	tree-if-conv.c, tree-loop-distribution.c, tree-parloops.c,
	tree-predcom.c, tree-scalar-evolution.c, tree-ssa-dce.c,
	tree-ssa-loop-ch.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
	tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
	tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c,
	tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vrp.c: Adjust
	uses of FOR_EACH_LOOP and remove loop_iterator variables.  Replace
	FOR_EACH_LOOP_BREAK with break.

From-SVN: r205032
2013-11-19 15:19:09 +00:00
Andrew MacLeod 45b0be94be gimple-expr.h (create_tmp_var_name, [...]): Relocate prototypes from gimple.h.
2013-11-12  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-expr.h (create_tmp_var_name, create_tmp_var_raw,
	create_tmp_var, create_tmp_reg, mark_addressable, is_gimple_reg_rhs):
	Relocate prototypes from gimple.h.
	* gimplify.h: New File.  Relocate some prototypes from gimple.h here.
	(gimple_predicate, enum fallback, enum gimplify_status): Relocate
	from gimple.h.
	* gimple.h: Move some prototypes to gimplify.h.
	(gimple_predicate, enum fallback, enum gimplify_status): Move to
	gimplify.h.
	(gimple_do_not_emit_location_p, gimple_set_do_not_emit_location):
	Relocate from gimpify.c.
	* gimple-expr.c (remove_suffix, tmp_var_id_num, create_tmp_var_name,
	create_tmp_var_raw, create_tmp_var, create_tmp_reg, mark_addressable,
	is_gimple_reg_rhs) Relocate from gimplify.c.
	* gimplify.c (mark_addressable): Move to gimple-expr.c.
	(gimple_seq_add_stmt_without_update): Move to gimple.c.
	(remove_suffix, tmp_var_id_num, create_tmp_var_name, create_tmp_var_raw,
	create_tmp_var, create_tmp_reg, is_gimple_reg_rhs): Move to 
	gimple-expr.c.
	(should_carry_location_p): Move to gimple.c.
	(gimple_do_not_emit_location_p, gimple_set_do_not_emit_location): Move
	to gimple.h.
	(annotate_one_with_location, annotate_all_with_location_after,
	annotate_all_with_location): Move to gimple.c.
	(compare_case_labels, sort_case_labels,
	preprocess_case_label_vec_for_gimple): Move to gimple.c.
	(rhs_predicate_for): Make static.
	(gimplify_assign): Relocate from gimple.c.
	* gimple.c (gimplify_assign): Move to gimplify.c.
	(gimple_seq_add_stmt_without_update, should_carry_location_p,
	annotate_one_with_location, annotate_all_with_location_after,
	annotate_all_with_location, compare_case_labels, sort_case_labels,
	preprocess_case_label_vec_for_gimple): Relocate from gimplify.c.
	* tree.h (unshare_expr, unshare_expr_without_location,
	mark_addressable): Move prototypes to gimplify.h.
	* Makefile.in (GTFILES): gimple-expr.c now has the GTY tag for
	tmp_var_id_num
	* asan.c: Include gimplify.h rather than gimple.h.
	* cfgloopmanip.c: Likewise.
	* cgraphunit.c: Likewise.
	* cilk-common.c: Likewise.
	* dwarf2out.c: Dont include gimple.h.
	* fold-const.c: Include gimplify.h rather than gimple.h.
	* function.c: Likewise.
	* gimple-fold.c: Likewise.
	* gimple-ssa-strength-reduction.c: Likewise.
	* graphite-clast-to-gimple.c: Likewise.
	* graphite-sese-to-poly.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-split.c: Likewise.
	* ipa.c: Likewise.
	* langhooks.c: Dont include gimple.h.
	* loop-init.c: Include gimplify.h rather than gimple.h.
	* omp-low.c: Likewise.
	* sese.c: Likewise.
	* stor-layout.c: Likewise.
	* targhooks.c: Likewise.
	* trans-mem.c: Likewise.
	* tree-affine.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-complex.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-iterator.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-profile.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-address.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-ifcombine.c: Likewise.
	* tree-ssa-loop-im.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-loop-unswitch.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-phiprop.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-propagate.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-strlen.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-switch-conversio: Likewise.n.c
	* tree-tailcall.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-vect-loop-manip.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tsan.c: Likewise.
	* value-prof.c: Likewise.
	* config/aarch64/aarch64.c: Include gimplify.h instead of gimple.h.
	* config/alpha/alpha.c: Likewise.
	* config/darwin.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/mep/mep.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/tilegx/tilegx.c: Likewise.
	* config/tilepro/tilepro.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.

	* ada/gcc-interface/trans.c: Include gimplify.h.

	* c/c-typeck.c: Include gimplify.h.

	* c-family/c-common.c: Include gimplify.h.
	* c-family/c-gimplify.c: Likewise.
	* c-family/cilk.c: Likewise.
	* c-family/c-omp.c: Include gimple-expr.h instead of gimple.h.
	* c-family/c-ubsan.c: Don't include gimple.h.

	* cp/class.c: Include gimplify.h.
	* cp/cp-gimplify.c: Likewise.
	* cp/error.c: Likewise.
	* cp/init.c: Likewise.
	* cp/optimize.c: Likewise.
	* cp/pt.c: Likewise.
	* cp/semantics.c: Likewise.
	* cp/tree.c: Likewise.
	* cp/vtable-class-hierarchy.c: Likewise.
	* cp/decl2.c: Don't include gimple.h.
	* cp/except.c: Likewise.
	* cp/method.c: Include pointer-set.h instead of gimple.h.

	* fortran/f95-lang.c: Don't include gimple.h.
	* fortran/trans-array.c: Include gimple-expr.h instead of gimple.h.
	* fortran/trans.c: Likewise.
	* fortran/trans-decl.c: Likewise.
	* fortran/trans-expr.c: Include gimplify.h.
	* fortran/trans-openmp.c: Likewise.

	* go/go-lang.c: Include gimplify.h.

	* java/java-gimplify.c: Include gimplify.h.

	* objc/objc-act.c: Include gimplify.h.

From-SVN: r204717
2013-11-12 20:26:43 +00:00
Andrew MacLeod e28030cf01 tree-ssa-loop.h: Remove include files.
* tree-ssa-loop.h: Remove include files.
	* gengtype.c (open_base_files): Adjust include list for gtype-desc.c.
	* cfgloopmanip.c: Move required includes from tree-ssa-loop.h.
	* graphite-clast-to-gimple.c: Likewise.
	* graphite-scop-detection.c: Likewise.
	* graphite-sese-to-poly.c: Likewise.
	* ipa-inline-analysis.c: Likewise.
	* ipa-pure-const.c: Likewise.
	* loop-init.c: Likewise.
	* passes.c: Likewise.
	* predict.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-chrec.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-ssa-address.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-loop.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-loop-unswitch.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-loop-manip.c: Likewise.
	* tree-vectorizer.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tree-vrp.c: Likewise.

From-SVN: r203987
2013-10-23 18:55:46 +00:00
Andrew MacLeod 442b4905f4 tree-ssa.h: Remove all #include's
* tree-ssa.h: Remove all #include's
	* gengtype.c (open_base_files): Adjust include list for gtype-desc.c.
	* alias.c: Move required includes from tree-ssa.h.
	* asan.c: Likewise.
	* builtins.c: Likewise.
	* calls.c: Likewise.
	* cfgexpand.c: Likewise.
	* cfghooks.c: Likewise.
	* cfgloop.c: Likewise.
	* cfgloopmanip.c: Likewise.
	* cgraph.c: Likewise.
	* cgraphbuild.c: Likewise.
	* cgraphclones.c: Likewise.
	* cgraphunit.c: Likewise.
	* dse.c: Likewise.
	* except.c: Likewise.
	* expr.c: Likewise.
	* final.c: Likewise.
	* fold-const.c: Likewise.
	* ggc-page.c: Likewise.
	* gimple-builder.c: Likewise.
	* gimple-fold.c: Likewise.
	* gimple-iterator.c: Likewise.
	* gimple-low.c: Likewise.
	* gimple-pretty-print.c: Likewise.
	* gimple-ssa-strength-reduction.c: Likewise.
	* gimple-streamer-in.c: Likewise.
	* gimple-streamer-out.c: Likewise.
	* gimplify.c: Likewise.
	* graphite-blocking.c: Likewise.
	* graphite-clast-to-gimple.c: Likewise.
	* graphite-dependences.c: Likewise.
	* graphite-interchange.c: Likewise.
	* graphite-optimize-isl.c: Likewise.
	* graphite-poly.c: Likewise.
	* graphite-scop-detection.c: Likewise.
	* graphite-sese-to-poly.c: Likewise.
	* graphite.c: Likewise.
	* ipa-cp.c: Likewise.
	* ipa-inline-analysis.c: Likewise.
	* ipa-inline-transform.c: Likewise.
	* ipa-inline.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-pure-const.c: Likewise.
	* ipa-reference.c: Likewise.
	* ipa-split.c: Likewise.
	* ipa-utils.c: Likewise.
	* loop-init.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-section-in.c: Likewise.
	* lto-section-out.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* lto-streamer.c: Likewise.
	* omp-low.c: Likewise.
	* passes.c: Likewise.
	* predict.c: Likewise.
	* print-tree.c: Likewise.
	* profile.c: Likewise.
	* sese.c: Likewise.
	* targhooks.c: Likewise.
	* tracer.c: Likewise.
	* trans-mem.c: Likewise.
	* tree-call-cdce.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-chrec.c: Likewise.
	* tree-complex.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-dfa.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-emutls.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-mudflap.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-nrv.c: Likewise.
	* tree-object-size.c: Likewise.
	* tree-outof-ssa.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-phinodes.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-profile.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-address.c: Likewise.
	* tree-ssa-alias.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-coalesce.c: Likewise.
	* tree-ssa-copy.c: Likewise.
	* tree-ssa-copyrename.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-ssa-dse.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-ifcombine.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-loop-ch.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-loop-unswitch.c: Likewise.
	* tree-ssa-loop.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-operands.c: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-phiprop.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-propagate.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-sink.c: Likewise.
	* tree-ssa-strlen.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* tree-ssa-tail-merge.c: Likewise.
	* tree-ssa-ter.c: Likewise.
	* tree-ssa-threadedge.c: Likewise.
	* tree-ssa-threadupdate.c: Likewise.
	* tree-ssa-uncprop.c: Likewise.
	* tree-ssa-uninit.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-ssanames.c: Likewise.
	* tree-stdarg.c: Likewise.
	* tree-streamer-in.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-generic.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-vectorizer.c: Likewise.
	* tree-vrp.c: Likewise.
	* tree.c: Likewise.
	* tsan.c: Likewise.
	* value-prof.c: Likewise.
	* var-tracking.c: Likewise.
	* varpool.c: Likewise.
	* vtable-verify.c: Likewise.

From-SVN: r203967
2013-10-23 12:16:58 +00:00
Diego Novillo 4d64880731 Re-factor inclusion of tree.h.
This moves tree.h out of every header. This exposes dependencies of
tree.h in files that should probably not need it after tree and gimple
are separated.

After this change, no header should include tree.h directly. It should
only be included by a .c file. Unfortunately, I did not find an
automatic way of forcing this.

Tested on x86_64 with all languages enabled and using
contrib/config-list.mk.

2013-10-21  Diego Novillo  <dnovillo@google.com>

	* asan.c: Include tree.h
	* bb-reorder.c: Likewise.
	* cfgcleanup.c: Likewise.
	* cfgloopmanip.c: Likewise.
	* data-streamer-in.c: Likewise.
	* data-streamer-out.c: Likewise.
	* data-streamer.c: Likewise.
	* dwarf2cfi.c: Likewise.
	* graphite-blocking.c: Likewise.
	* graphite-clast-to-gimple.c: Likewise.
	* graphite-dependences.c: Likewise.
	* graphite-interchange.c: Likewise.
	* graphite-optimize-isl.c: Likewise.
	* graphite-poly.c: Likewise.
	* graphite-scop-detection.c: Likewise.
	* graphite-sese-to-poly.c: Likewise.
	* graphite.c: Likewise.
	* ipa-devirt.c: Likewise.
	* ipa-profile.c: Likewise.
	* ipa.c: Likewise.
	* ira.c: Likewise.
	* loop-init.c: Likewise.
	* loop-unroll.c: Likewise.
	* lower-subreg.c: Likewise.
	* lto/lto-object.c: Likewise.
	* recog.c: Likewise.
	* reginfo.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-ssa-strlen.c: Likewise.
	* tree-streamer.c: Likewise.
	* value-prof.c: Likewise.
	* target-globals.c: Likewise.
	* expr.h: Include tree-core.h instead of tree.h.
	* gimple.h: Likewise.
	* ipa-prop.h: Likewise.
	* ipa-utils.h: Likewise.
	* lto-streamer.h: Likewise.
	* streamer-hooks.h: Likewise.
	* ipa-reference.h: Include cgraph.h instead of tree.h.
	* cgraph.h: Include basic-block.h instead of tree.h.
	* tree-streamer.h: Do not include tree.h.
	* genattrtab.c (write_header): Generate inclusion of
	tree.h.
	* genautomata.c (main): Likewise.
	* genemit.c: Likewise.
	* genopinit.c: Likewise.
	* genoutput.c (output_prologue): Likewise.
	* genpeep.c: Likewise.

testsuite/ChangeLog

	* g++.dg/plugin/selfassign.c: Include tree.h.
	* gcc.dg/plugin/finish_unit_plugin.c: Likewise.
	* gcc.dg/plugin/ggcplug.c: Likewise.
	* gcc.dg/plugin/one_time_plugin.c: Likewise.
	* gcc.dg/plugin/selfassign.c: Likewise.
	* gcc.dg/plugin/start_unit_plugin.c: Likewise.

From-SVN: r203908
2013-10-21 15:36:37 -04:00
Richard Sandiford c328471880 alloc-pool.c, [...]: Add missing whitespace before "(".
gcc/
	* alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
	bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
	cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
	cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
	combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
	cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
	df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
	dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
	errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
	fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
	gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
	genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
	genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
	genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
	gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
	gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
	gimple.h, godump.c, graphite-clast-to-gimple.c,
	graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
	graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
	hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
	ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
	ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
	ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
	loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
	lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
	mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
	pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
	predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
	profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
	regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
	reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
	sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
	statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
	system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
	tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
	tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
	tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
	tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
	tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
	tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
	tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
	tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
	tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
	tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
	tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
	tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
	tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
	tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
	tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
	tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
	tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
	tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
	varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
	whitespace before "(".

From-SVN: r203004
2013-09-28 08:42:34 +00:00
Andrew MacLeod 7a30045280 tree-ssa.h: New.
* tree-ssa.h: New.  Move content from tree-flow.h and
	tree-flow-inline.h.
	* tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
	Move prototypes belonging to tree-ssa.c.
	* tree-flow-inline.h (redirect_edge_var_map_def, 
	redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
	tree-ssa.h.
	* gimple.h: Adjust prototypes.
	* tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move to...
	* gimple.c (useless_type_conversion_p, types_compatible_p):  Here.
	* tree.h: Move prototype to tree-ssa.h.
	* gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
	* Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
	* alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
	cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
	cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
	ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
	gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
	gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
	graphite-blocking.c, graphite-clast-to-gimple.c, graphite-dependences.c,
	graphite-interchange.c, graphite-optimize-isl.c, graphite-poly.c,
	graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c,
	ipa-cp.c, ipa-inline-analysis.c, ipa-inline-transform.c, ipa-inline.c,
	ipa-prop.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa-utils.c,
	loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
	lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
	passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
	tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
	tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
	tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
	tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
	tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
	tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
	tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
	tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
	tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
	tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
	tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
	value-prof.c, var-tracking.c,
	varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h

From-SVN: r202523
2013-09-12 13:03:18 +00:00
David Malcolm 27a4cd485d Automated conversion of passes to C++ classes
gcc/

	Patch autogenerated by refactor_passes.py from
	https://github.com/davidmalcolm/gcc-refactoring-scripts
	revision 03fe39476a4c4ea450b49e087cfa817b5f92021e

	* asan.c (pass_asan): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_asan): ...new pass_data instance and...
	(make_pass_asan): ...new function.
	(pass_asan_O0): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_asan_O0): ...new pass_data instance and...
	(make_pass_asan_O0): ...new function.
	* auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_inc_dec): ...new pass_data instance and...
	(make_pass_inc_dec): ...new function.
	* bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
	a subclass of rtl_opt_pass along with...
	(pass_data_reorder_blocks): ...new pass_data instance and...
	(make_pass_reorder_blocks): ...new function.
	(pass_duplicate_computed_gotos): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_duplicate_computed_gotos): ...new pass_data instance and...
	(make_pass_duplicate_computed_gotos): ...new function.
	(pass_partition_blocks): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_partition_blocks): ...new pass_data instance and...
	(make_pass_partition_blocks): ...new function.
	* bt-load.c (pass_branch_target_load_optimize1): Convert from a global
	struct to a subclass of rtl_opt_pass along with...
	(pass_data_branch_target_load_optimize1): ...new pass_data instance
	and...
	(make_pass_branch_target_load_optimize1): ...new function.
	(pass_branch_target_load_optimize2): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_branch_target_load_optimize2): ...new pass_data instance
	and...
	(make_pass_branch_target_load_optimize2): ...new function.
	* cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
	of rtl_opt_pass along with...
	(pass_data_jump): ...new pass_data instance and...
	(make_pass_jump): ...new function.
	(pass_jump2): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_jump2): ...new pass_data instance and...
	(make_pass_jump2): ...new function.
	* cfgexpand.c (pass_expand): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_expand): ...new pass_data instance and...
	(make_pass_expand): ...new function.
	* cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
	of rtl_opt_pass along with...
	(pass_data_free_cfg): ...new pass_data instance and...
	(make_pass_free_cfg): ...new function.
	(pass_into_cfg_layout_mode): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_into_cfg_layout_mode): ...new pass_data instance and...
	(make_pass_into_cfg_layout_mode): ...new function.
	(pass_outof_cfg_layout_mode): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
	(make_pass_outof_cfg_layout_mode): ...new function.
	* cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
	struct to a subclass of gimple_opt_pass along with...
	(pass_data_build_cgraph_edges): ...new pass_data instance and...
	(make_pass_build_cgraph_edges): ...new function.
	(pass_rebuild_cgraph_edges): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
	(make_pass_rebuild_cgraph_edges): ...new function.
	(pass_remove_cgraph_callee_edges): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_remove_cgraph_callee_edges): ...new pass_data instance
	and...
	(make_pass_remove_cgraph_callee_edges): ...new function.
	* combine-stack-adj.c (pass_stack_adjustments): Convert from a global
	struct to a subclass of rtl_opt_pass along with...
	(pass_data_stack_adjustments): ...new pass_data instance and...
	(make_pass_stack_adjustments): ...new function.
	* combine.c (pass_combine): Convert from a global struct to a subclass
	of rtl_opt_pass along with...
	(pass_data_combine): ...new pass_data instance and...
	(make_pass_combine): ...new function.
	* compare-elim.c (pass_compare_elim_after_reload): Convert from a
	global struct to a subclass of rtl_opt_pass along with...
	(pass_data_compare_elim_after_reload): ...new pass_data instance
	and...
	(make_pass_compare_elim_after_reload): ...new function.
	* cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
	of rtl_opt_pass along with...
	(pass_data_rtl_cprop): ...new pass_data instance and...
	(make_pass_rtl_cprop): ...new function.
	* cse.c (pass_cse): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_cse): ...new pass_data instance and...
	(make_pass_cse): ...new function.
	(pass_cse2): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_cse2): ...new pass_data instance and...
	(make_pass_cse2): ...new function.
	(pass_cse_after_global_opts): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_cse_after_global_opts): ...new pass_data instance and...
	(make_pass_cse_after_global_opts): ...new function.
	* dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
	of rtl_opt_pass along with...
	(pass_data_ud_rtl_dce): ...new pass_data instance and...
	(make_pass_ud_rtl_dce): ...new function.
	(pass_fast_rtl_dce): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_fast_rtl_dce): ...new pass_data instance and...
	(make_pass_fast_rtl_dce): ...new function.
	* df-core.c (pass_df_initialize_opt): Convert from a global struct to
	a subclass of rtl_opt_pass along with...
	(pass_data_df_initialize_opt): ...new pass_data instance and...
	(make_pass_df_initialize_opt): ...new function.
	(pass_df_initialize_no_opt): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_df_initialize_no_opt): ...new pass_data instance and...
	(make_pass_df_initialize_no_opt): ...new function.
	(pass_df_finish): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_df_finish): ...new pass_data instance and...
	(make_pass_df_finish): ...new function.
	* dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_rtl_dse1): ...new pass_data instance and...
	(make_pass_rtl_dse1): ...new function.
	(pass_rtl_dse2): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_rtl_dse2): ...new pass_data instance and...
	(make_pass_rtl_dse2): ...new function.
	* dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_dwarf2_frame): ...new pass_data instance and...
	(make_pass_dwarf2_frame): ...new function.
	* except.c (pass_set_nothrow_function_flags): Convert from a global
	struct to a subclass of rtl_opt_pass along with...
	(pass_data_set_nothrow_function_flags): ...new pass_data instance
	and...
	(make_pass_set_nothrow_function_flags): ...new function.
	(pass_convert_to_eh_region_ranges): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_convert_to_eh_region_ranges): ...new pass_data instance
	and...
	(make_pass_convert_to_eh_region_ranges): ...new function.
	* final.c (pass_compute_alignments): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_compute_alignments): ...new pass_data instance and...
	(make_pass_compute_alignments): ...new function.
	(pass_final): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_final): ...new pass_data instance and...
	(make_pass_final): ...new function.
	(pass_shorten_branches): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_shorten_branches): ...new pass_data instance and...
	(make_pass_shorten_branches): ...new function.
	(pass_clean_state): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_clean_state): ...new pass_data instance and...
	(make_pass_clean_state): ...new function.
	* function.c (pass_instantiate_virtual_regs): Convert from a global
	struct to a subclass of rtl_opt_pass along with...
	(pass_data_instantiate_virtual_regs): ...new pass_data instance and...
	(make_pass_instantiate_virtual_regs): ...new function.
	(pass_leaf_regs): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_leaf_regs): ...new pass_data instance and...
	(make_pass_leaf_regs): ...new function.
	(pass_thread_prologue_and_epilogue): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_thread_prologue_and_epilogue): ...new pass_data instance
	and...
	(make_pass_thread_prologue_and_epilogue): ...new function.
	(pass_match_asm_constraints): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_match_asm_constraints): ...new pass_data instance and...
	(make_pass_match_asm_constraints): ...new function.
	* fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_rtl_fwprop): ...new pass_data instance and...
	(make_pass_rtl_fwprop): ...new function.
	(pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_rtl_fwprop_addr): ...new pass_data instance and...
	(make_pass_rtl_fwprop_addr): ...new function.
	* gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_rtl_pre): ...new pass_data instance and...
	(make_pass_rtl_pre): ...new function.
	(pass_rtl_hoist): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_rtl_hoist): ...new pass_data instance and...
	(make_pass_rtl_hoist): ...new function.
	* gimple-low.c (pass_lower_cf): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_lower_cf): ...new pass_data instance and...
	(make_pass_lower_cf): ...new function.
	* gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
	from a global struct to a subclass of gimple_opt_pass along with...
	(pass_data_strength_reduction): ...new pass_data instance and...
	(make_pass_strength_reduction): ...new function.
	* ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
	of rtl_opt_pass along with...
	(pass_data_rtl_ifcvt): ...new pass_data instance and...
	(make_pass_rtl_ifcvt): ...new function.
	(pass_if_after_combine): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_if_after_combine): ...new pass_data instance and...
	(make_pass_if_after_combine): ...new function.
	(pass_if_after_reload): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_if_after_reload): ...new pass_data instance and...
	(make_pass_if_after_reload): ...new function.
	* init-regs.c (pass_initialize_regs): Convert from a global struct to
	a subclass of rtl_opt_pass along with...
	(pass_data_initialize_regs): ...new pass_data instance and...
	(make_pass_initialize_regs): ...new function.
	* ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
	of ipa_opt_pass_d along with...
	(pass_data_ipa_cp): ...new pass_data instance and...
	(make_pass_ipa_cp): ...new function.
	* ipa-inline-analysis.c (pass_inline_parameters): Convert from a
	global struct to a subclass of gimple_opt_pass along with...
	(pass_data_inline_parameters): ...new pass_data instance and...
	(make_pass_inline_parameters): ...new function.
	* ipa-inline.c (pass_early_inline): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_early_inline): ...new pass_data instance and...
	(make_pass_early_inline): ...new function.
	(pass_ipa_inline): Convert from a global struct to a subclass of
	ipa_opt_pass_d along with...
	(pass_data_ipa_inline): ...new pass_data instance and...
	(make_pass_ipa_inline): ...new function.
	* ipa-pure-const.c (pass_local_pure_const): Convert from a global
	struct to a subclass of gimple_opt_pass along with...
	(pass_data_local_pure_const): ...new pass_data instance and...
	(make_pass_local_pure_const): ...new function.
	(pass_ipa_pure_const): Convert from a global struct to a subclass of
	ipa_opt_pass_d along with...
	(pass_data_ipa_pure_const): ...new pass_data instance and...
	(make_pass_ipa_pure_const): ...new function.
	* ipa-reference.c (pass_ipa_reference): Convert from a global struct
	to a subclass of ipa_opt_pass_d along with...
	(pass_data_ipa_reference): ...new pass_data instance and...
	(make_pass_ipa_reference): ...new function.
	* ipa-split.c (pass_split_functions): Convert from a global struct to
	a subclass of gimple_opt_pass along with...
	(pass_data_split_functions): ...new pass_data instance and...
	(make_pass_split_functions): ...new function.
	(pass_feedback_split_functions): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_feedback_split_functions): ...new pass_data instance and...
	(make_pass_feedback_split_functions): ...new function.
	* ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
	global struct to a subclass of simple_ipa_opt_pass along with...
	(pass_data_ipa_function_and_variable_visibility): ...new pass_data
	instance and...
	(make_pass_ipa_function_and_variable_visibility): ...new function.
	(pass_ipa_free_inline_summary): Convert from a global struct to a
	subclass of simple_ipa_opt_pass along with...
	(pass_data_ipa_free_inline_summary): ...new pass_data instance and...
	(make_pass_ipa_free_inline_summary): ...new function.
	(pass_ipa_whole_program_visibility): Convert from a global struct to a
	subclass of ipa_opt_pass_d along with...
	(pass_data_ipa_whole_program_visibility): ...new pass_data instance
	and...
	(make_pass_ipa_whole_program_visibility): ...new function.
	(pass_ipa_profile): Convert from a global struct to a subclass of
	ipa_opt_pass_d along with...
	(pass_data_ipa_profile): ...new pass_data instance and...
	(make_pass_ipa_profile): ...new function.
	(pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
	ipa_opt_pass_d along with...
	(pass_data_ipa_cdtor_merge): ...new pass_data instance and...
	(make_pass_ipa_cdtor_merge): ...new function.
	* ira.c (pass_ira): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_ira): ...new pass_data instance and...
	(make_pass_ira): ...new function.
	(pass_reload): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_reload): ...new pass_data instance and...
	(make_pass_reload): ...new function.
	* jump.c (pass_cleanup_barriers): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_cleanup_barriers): ...new pass_data instance and...
	(make_pass_cleanup_barriers): ...new function.
	* loop-init.c (pass_loop2): Convert from a global struct to a subclass
	of rtl_opt_pass along with...
	(pass_data_loop2): ...new pass_data instance and...
	(make_pass_loop2): ...new function.
	(pass_rtl_loop_init): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_rtl_loop_init): ...new pass_data instance and...
	(make_pass_rtl_loop_init): ...new function.
	(pass_rtl_loop_done): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_rtl_loop_done): ...new pass_data instance and...
	(make_pass_rtl_loop_done): ...new function.
	(pass_rtl_move_loop_invariants): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
	(make_pass_rtl_move_loop_invariants): ...new function.
	(pass_rtl_unswitch): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_rtl_unswitch): ...new pass_data instance and...
	(make_pass_rtl_unswitch): ...new function.
	(pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
	and...
	(make_pass_rtl_unroll_and_peel_loops): ...new function.
	(pass_rtl_doloop): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_rtl_doloop): ...new pass_data instance and...
	(make_pass_rtl_doloop): ...new function.
	* lower-subreg.c (pass_lower_subreg): Convert from a global struct to
	a subclass of rtl_opt_pass along with...
	(pass_data_lower_subreg): ...new pass_data instance and...
	(make_pass_lower_subreg): ...new function.
	(pass_lower_subreg2): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_lower_subreg2): ...new pass_data instance and...
	(make_pass_lower_subreg2): ...new function.
	* lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
	struct to a subclass of ipa_opt_pass_d along with...
	(pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
	(make_pass_ipa_lto_gimple_out): ...new function.
	(pass_ipa_lto_finish_out): Convert from a global struct to a subclass
	of ipa_opt_pass_d along with...
	(pass_data_ipa_lto_finish_out): ...new pass_data instance and...
	(make_pass_ipa_lto_finish_out): ...new function.
	* mode-switching.c (pass_mode_switching): Convert from a global struct
	to a subclass of rtl_opt_pass along with...
	(pass_data_mode_switching): ...new pass_data instance and...
	(make_pass_mode_switching): ...new function.
	* modulo-sched.c (pass_sms): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_sms): ...new pass_data instance and...
	(make_pass_sms): ...new function.
	* omp-low.c (pass_expand_omp): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_expand_omp): ...new pass_data instance and...
	(make_pass_expand_omp): ...new function.
	(pass_lower_omp): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_lower_omp): ...new pass_data instance and...
	(make_pass_lower_omp): ...new function.
	(pass_diagnose_omp_blocks): Convert from a global struct to a subclass
	of gimple_opt_pass along with...
	(pass_data_diagnose_omp_blocks): ...new pass_data instance and...
	(make_pass_diagnose_omp_blocks): ...new function.
	* passes.c (pass_early_local_passes): Convert from a global struct to
	a subclass of simple_ipa_opt_pass along with...
	(pass_data_early_local_passes): ...new pass_data instance and...
	(make_pass_early_local_passes): ...new function.
	(pass_all_early_optimizations): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_all_early_optimizations): ...new pass_data instance and...
	(make_pass_all_early_optimizations): ...new function.
	(pass_all_optimizations): Convert from a global struct to a subclass
	of gimple_opt_pass along with...
	(pass_data_all_optimizations): ...new pass_data instance and...
	(make_pass_all_optimizations): ...new function.
	(pass_all_optimizations_g): Convert from a global struct to a subclass
	of gimple_opt_pass along with...
	(pass_data_all_optimizations_g): ...new pass_data instance and...
	(make_pass_all_optimizations_g): ...new function.
	(pass_rest_of_compilation): Convert from a global struct to a subclass
	of rtl_opt_pass along with...
	(pass_data_rest_of_compilation): ...new pass_data instance and...
	(make_pass_rest_of_compilation): ...new function.
	(pass_postreload): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_postreload): ...new pass_data instance and...
	(make_pass_postreload): ...new function.
	* postreload-gcse.c (pass_gcse2): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_gcse2): ...new pass_data instance and...
	(make_pass_gcse2): ...new function.
	* postreload.c (pass_postreload_cse): Convert from a global struct to
	a subclass of rtl_opt_pass along with...
	(pass_data_postreload_cse): ...new pass_data instance and...
	(make_pass_postreload_cse): ...new function.
	* predict.c (pass_profile): Convert from a global struct to a subclass
	of gimple_opt_pass along with...
	(pass_data_profile): ...new pass_data instance and...
	(make_pass_profile): ...new function.
	(pass_strip_predict_hints): Convert from a global struct to a subclass
	of gimple_opt_pass along with...
	(pass_data_strip_predict_hints): ...new pass_data instance and...
	(make_pass_strip_predict_hints): ...new function.
	* recog.c (pass_peephole2): Convert from a global struct to a subclass
	of rtl_opt_pass along with...
	(pass_data_peephole2): ...new pass_data instance and...
	(make_pass_peephole2): ...new function.
	(pass_split_all_insns): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_split_all_insns): ...new pass_data instance and...
	(make_pass_split_all_insns): ...new function.
	(pass_split_after_reload): Convert from a global struct to a subclass
	of rtl_opt_pass along with...
	(pass_data_split_after_reload): ...new pass_data instance and...
	(make_pass_split_after_reload): ...new function.
	(pass_split_before_regstack): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_split_before_regstack): ...new pass_data instance and...
	(make_pass_split_before_regstack): ...new function.
	(pass_split_before_sched2): Convert from a global struct to a subclass
	of rtl_opt_pass along with...
	(pass_data_split_before_sched2): ...new pass_data instance and...
	(make_pass_split_before_sched2): ...new function.
	(pass_split_for_shorten_branches): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_split_for_shorten_branches): ...new pass_data instance
	and...
	(make_pass_split_for_shorten_branches): ...new function.
	* ree.c (pass_ree): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_ree): ...new pass_data instance and...
	(make_pass_ree): ...new function.
	* reg-stack.c (pass_stack_regs): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_stack_regs): ...new pass_data instance and...
	(make_pass_stack_regs): ...new function.
	(pass_stack_regs_run): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_stack_regs_run): ...new pass_data instance and...
	(make_pass_stack_regs_run): ...new function.
	* regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_cprop_hardreg): ...new pass_data instance and...
	(make_pass_cprop_hardreg): ...new function.
	* reginfo.c (pass_reginfo_init): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_reginfo_init): ...new pass_data instance and...
	(make_pass_reginfo_init): ...new function.
	* regmove.c (pass_regmove): Convert from a global struct to a subclass
	of rtl_opt_pass along with...
	(pass_data_regmove): ...new pass_data instance and...
	(make_pass_regmove): ...new function.
	* regrename.c (pass_regrename): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_regrename): ...new pass_data instance and...
	(make_pass_regrename): ...new function.
	* reorg.c (pass_delay_slots): Convert from a global struct to a
	subclass of rtl_opt_pass along with...
	(pass_data_delay_slots): ...new pass_data instance and...
	(make_pass_delay_slots): ...new function.
	(pass_machine_reorg): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_machine_reorg): ...new pass_data instance and...
	(make_pass_machine_reorg): ...new function.
	* sched-rgn.c (pass_sched): Convert from a global struct to a subclass
	of rtl_opt_pass along with...
	(pass_data_sched): ...new pass_data instance and...
	(make_pass_sched): ...new function.
	(pass_sched2): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_sched2): ...new pass_data instance and...
	(make_pass_sched2): ...new function.
	* stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
	to a subclass of rtl_opt_pass along with...
	(pass_data_stack_ptr_mod): ...new pass_data instance and...
	(make_pass_stack_ptr_mod): ...new function.
	* store-motion.c (pass_rtl_store_motion): Convert from a global struct
	to a subclass of rtl_opt_pass along with...
	(pass_data_rtl_store_motion): ...new pass_data instance and...
	(make_pass_rtl_store_motion): ...new function.
	* tracer.c (pass_tracer): Convert from a global struct to a subclass
	of gimple_opt_pass along with...
	(pass_data_tracer): ...new pass_data instance and...
	(make_pass_tracer): ...new function.
	* trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
	to a subclass of gimple_opt_pass along with...
	(pass_data_diagnose_tm_blocks): ...new pass_data instance and...
	(make_pass_diagnose_tm_blocks): ...new function.
	(pass_lower_tm): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_lower_tm): ...new pass_data instance and...
	(make_pass_lower_tm): ...new function.
	(pass_tm_init): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_tm_init): ...new pass_data instance and...
	(make_pass_tm_init): ...new function.
	(pass_tm_mark): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_tm_mark): ...new pass_data instance and...
	(make_pass_tm_mark): ...new function.
	(pass_tm_edges): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_tm_edges): ...new pass_data instance and...
	(make_pass_tm_edges): ...new function.
	(pass_tm_memopt): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_tm_memopt): ...new pass_data instance and...
	(make_pass_tm_memopt): ...new function.
	(pass_ipa_tm): Convert from a global struct to a subclass of
	simple_ipa_opt_pass along with...
	(pass_data_ipa_tm): ...new pass_data instance and...
	(make_pass_ipa_tm): ...new function.
	* tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_call_cdce): ...new pass_data instance and...
	(make_pass_call_cdce): ...new function.
	* tree-cfg.c (pass_build_cfg): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_build_cfg): ...new pass_data instance and...
	(make_pass_build_cfg): ...new function.
	(pass_split_crit_edges): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_split_crit_edges): ...new pass_data instance and...
	(make_pass_split_crit_edges): ...new function.
	(pass_warn_function_return): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_warn_function_return): ...new pass_data instance and...
	(make_pass_warn_function_return): ...new function.
	(pass_warn_function_noreturn): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_warn_function_noreturn): ...new pass_data instance and...
	(make_pass_warn_function_noreturn): ...new function.
	(pass_warn_unused_result): Convert from a global struct to a subclass
	of gimple_opt_pass along with...
	(pass_data_warn_unused_result): ...new pass_data instance and...
	(make_pass_warn_unused_result): ...new function.
	* tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
	a subclass of gimple_opt_pass along with...
	(pass_data_merge_phi): ...new pass_data instance and...
	(make_pass_merge_phi): ...new function.
	* tree-complex.c (pass_lower_complex): Convert from a global struct to
	a subclass of gimple_opt_pass along with...
	(pass_data_lower_complex): ...new pass_data instance and...
	(make_pass_lower_complex): ...new function.
	(pass_lower_complex_O0): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_lower_complex_O0): ...new pass_data instance and...
	(make_pass_lower_complex_O0): ...new function.
	* tree-eh.c (pass_lower_eh): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_lower_eh): ...new pass_data instance and...
	(make_pass_lower_eh): ...new function.
	(pass_refactor_eh): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_refactor_eh): ...new pass_data instance and...
	(make_pass_refactor_eh): ...new function.
	(pass_lower_resx): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_lower_resx): ...new pass_data instance and...
	(make_pass_lower_resx): ...new function.
	(pass_lower_eh_dispatch): Convert from a global struct to a subclass
	of gimple_opt_pass along with...
	(pass_data_lower_eh_dispatch): ...new pass_data instance and...
	(make_pass_lower_eh_dispatch): ...new function.
	(pass_cleanup_eh): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_cleanup_eh): ...new pass_data instance and...
	(make_pass_cleanup_eh): ...new function.
	* tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
	to a subclass of simple_ipa_opt_pass along with...
	(pass_data_ipa_lower_emutls): ...new pass_data instance and...
	(make_pass_ipa_lower_emutls): ...new function.
	* tree-if-conv.c (pass_if_conversion): Convert from a global struct to
	a subclass of gimple_opt_pass along with...
	(pass_data_if_conversion): ...new pass_data instance and...
	(make_pass_if_conversion): ...new function.
	* tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_build_ssa): ...new pass_data instance and...
	(make_pass_build_ssa): ...new function.
	* tree-loop-distribution.c (pass_loop_distribution): Convert from a
	global struct to a subclass of gimple_opt_pass along with...
	(pass_data_loop_distribution): ...new pass_data instance and...
	(make_pass_loop_distribution): ...new function.
	* tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_mudflap_1): ...new pass_data instance and...
	(make_pass_mudflap_1): ...new function.
	(pass_mudflap_2): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_mudflap_2): ...new pass_data instance and...
	(make_pass_mudflap_2): ...new function.
	* tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_mudflap_1): ...new pass_data instance and...
	(make_pass_mudflap_1): ...new function.
	(pass_mudflap_2): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_mudflap_2): ...new pass_data instance and...
	(make_pass_mudflap_2): ...new function.
	* tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_nrv): ...new pass_data instance and...
	(make_pass_nrv): ...new function.
	(pass_return_slot): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_return_slot): ...new pass_data instance and...
	(make_pass_return_slot): ...new function.
	* tree-object-size.c (pass_object_sizes): Convert from a global struct
	to a subclass of gimple_opt_pass along with...
	(pass_data_object_sizes): ...new pass_data instance and...
	(make_pass_object_sizes): ...new function.
	* tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
	global struct to a subclass of gimple_opt_pass along with...
	(pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
	and...
	(make_pass_cleanup_cfg_post_optimizing): ...new function.
	(pass_fixup_cfg): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_fixup_cfg): ...new pass_data instance and...
	(make_pass_fixup_cfg): ...new function.
	* tree-pass.h (pass_mudflap_1): Replace declaration with that of...
	(make_pass_mudflap_1): ...new function.
	(pass_mudflap_2): Replace declaration with that of...
	(make_pass_mudflap_2): ...new function.
	(pass_asan): Replace declaration with that of...
	(make_pass_asan): ...new function.
	(pass_asan_O0): Replace declaration with that of...
	(make_pass_asan_O0): ...new function.
	(pass_tsan): Replace declaration with that of...
	(make_pass_tsan): ...new function.
	(pass_tsan_O0): Replace declaration with that of...
	(make_pass_tsan_O0): ...new function.
	(pass_lower_cf): Replace declaration with that of...
	(make_pass_lower_cf): ...new function.
	(pass_refactor_eh): Replace declaration with that of...
	(make_pass_refactor_eh): ...new function.
	(pass_lower_eh): Replace declaration with that of...
	(make_pass_lower_eh): ...new function.
	(pass_lower_eh_dispatch): Replace declaration with that of...
	(make_pass_lower_eh_dispatch): ...new function.
	(pass_lower_resx): Replace declaration with that of...
	(make_pass_lower_resx): ...new function.
	(pass_build_cfg): Replace declaration with that of...
	(make_pass_build_cfg): ...new function.
	(pass_early_tree_profile): Replace declaration with that of...
	(make_pass_early_tree_profile): ...new function.
	(pass_cleanup_eh): Replace declaration with that of...
	(make_pass_cleanup_eh): ...new function.
	(pass_sra): Replace declaration with that of...
	(make_pass_sra): ...new function.
	(pass_sra_early): Replace declaration with that of...
	(make_pass_sra_early): ...new function.
	(pass_early_ipa_sra): Replace declaration with that of...
	(make_pass_early_ipa_sra): ...new function.
	(pass_tail_recursion): Replace declaration with that of...
	(make_pass_tail_recursion): ...new function.
	(pass_tail_calls): Replace declaration with that of...
	(make_pass_tail_calls): ...new function.
	(pass_tree_loop): Replace declaration with that of...
	(make_pass_tree_loop): ...new function.
	(pass_tree_loop_init): Replace declaration with that of...
	(make_pass_tree_loop_init): ...new function.
	(pass_lim): Replace declaration with that of...
	(make_pass_lim): ...new function.
	(pass_tree_unswitch): Replace declaration with that of...
	(make_pass_tree_unswitch): ...new function.
	(pass_predcom): Replace declaration with that of...
	(make_pass_predcom): ...new function.
	(pass_iv_canon): Replace declaration with that of...
	(make_pass_iv_canon): ...new function.
	(pass_scev_cprop): Replace declaration with that of...
	(make_pass_scev_cprop): ...new function.
	(pass_empty_loop): Replace declaration with that of...
	(make_pass_empty_loop): ...new function.
	(pass_record_bounds): Replace declaration with that of...
	(make_pass_record_bounds): ...new function.
	(pass_graphite): Replace declaration with that of...
	(make_pass_graphite): ...new function.
	(pass_graphite_transforms): Replace declaration with that of...
	(make_pass_graphite_transforms): ...new function.
	(pass_if_conversion): Replace declaration with that of...
	(make_pass_if_conversion): ...new function.
	(pass_loop_distribution): Replace declaration with that of...
	(make_pass_loop_distribution): ...new function.
	(pass_vectorize): Replace declaration with that of...
	(make_pass_vectorize): ...new function.
	(pass_slp_vectorize): Replace declaration with that of...
	(make_pass_slp_vectorize): ...new function.
	(pass_complete_unroll): Replace declaration with that of...
	(make_pass_complete_unroll): ...new function.
	(pass_complete_unrolli): Replace declaration with that of...
	(make_pass_complete_unrolli): ...new function.
	(pass_parallelize_loops): Replace declaration with that of...
	(make_pass_parallelize_loops): ...new function.
	(pass_loop_prefetch): Replace declaration with that of...
	(make_pass_loop_prefetch): ...new function.
	(pass_iv_optimize): Replace declaration with that of...
	(make_pass_iv_optimize): ...new function.
	(pass_tree_loop_done): Replace declaration with that of...
	(make_pass_tree_loop_done): ...new function.
	(pass_ch): Replace declaration with that of...
	(make_pass_ch): ...new function.
	(pass_ccp): Replace declaration with that of...
	(make_pass_ccp): ...new function.
	(pass_phi_only_cprop): Replace declaration with that of...
	(make_pass_phi_only_cprop): ...new function.
	(pass_build_ssa): Replace declaration with that of...
	(make_pass_build_ssa): ...new function.
	(pass_build_alias): Replace declaration with that of...
	(make_pass_build_alias): ...new function.
	(pass_build_ealias): Replace declaration with that of...
	(make_pass_build_ealias): ...new function.
	(pass_dominator): Replace declaration with that of...
	(make_pass_dominator): ...new function.
	(pass_dce): Replace declaration with that of...
	(make_pass_dce): ...new function.
	(pass_dce_loop): Replace declaration with that of...
	(make_pass_dce_loop): ...new function.
	(pass_cd_dce): Replace declaration with that of...
	(make_pass_cd_dce): ...new function.
	(pass_call_cdce): Replace declaration with that of...
	(make_pass_call_cdce): ...new function.
	(pass_merge_phi): Replace declaration with that of...
	(make_pass_merge_phi): ...new function.
	(pass_split_crit_edges): Replace declaration with that of...
	(make_pass_split_crit_edges): ...new function.
	(pass_pre): Replace declaration with that of...
	(make_pass_pre): ...new function.
	(pass_profile): Replace declaration with that of...
	(make_pass_profile): ...new function.
	(pass_strip_predict_hints): Replace declaration with that of...
	(make_pass_strip_predict_hints): ...new function.
	(pass_lower_complex_O0): Replace declaration with that of...
	(make_pass_lower_complex_O0): ...new function.
	(pass_lower_complex): Replace declaration with that of...
	(make_pass_lower_complex): ...new function.
	(pass_lower_vector): Replace declaration with that of...
	(make_pass_lower_vector): ...new function.
	(pass_lower_vector_ssa): Replace declaration with that of...
	(make_pass_lower_vector_ssa): ...new function.
	(pass_lower_omp): Replace declaration with that of...
	(make_pass_lower_omp): ...new function.
	(pass_diagnose_omp_blocks): Replace declaration with that of...
	(make_pass_diagnose_omp_blocks): ...new function.
	(pass_expand_omp): Replace declaration with that of...
	(make_pass_expand_omp): ...new function.
	(pass_expand_omp_ssa): Replace declaration with that of...
	(make_pass_expand_omp_ssa): ...new function.
	(pass_object_sizes): Replace declaration with that of...
	(make_pass_object_sizes): ...new function.
	(pass_strlen): Replace declaration with that of...
	(make_pass_strlen): ...new function.
	(pass_fold_builtins): Replace declaration with that of...
	(make_pass_fold_builtins): ...new function.
	(pass_stdarg): Replace declaration with that of...
	(make_pass_stdarg): ...new function.
	(pass_early_warn_uninitialized): Replace declaration with that of...
	(make_pass_early_warn_uninitialized): ...new function.
	(pass_late_warn_uninitialized): Replace declaration with that of...
	(make_pass_late_warn_uninitialized): ...new function.
	(pass_cse_reciprocals): Replace declaration with that of...
	(make_pass_cse_reciprocals): ...new function.
	(pass_cse_sincos): Replace declaration with that of...
	(make_pass_cse_sincos): ...new function.
	(pass_optimize_bswap): Replace declaration with that of...
	(make_pass_optimize_bswap): ...new function.
	(pass_optimize_widening_mul): Replace declaration with that of...
	(make_pass_optimize_widening_mul): ...new function.
	(pass_warn_function_return): Replace declaration with that of...
	(make_pass_warn_function_return): ...new function.
	(pass_warn_function_noreturn): Replace declaration with that of...
	(make_pass_warn_function_noreturn): ...new function.
	(pass_cselim): Replace declaration with that of...
	(make_pass_cselim): ...new function.
	(pass_phiopt): Replace declaration with that of...
	(make_pass_phiopt): ...new function.
	(pass_forwprop): Replace declaration with that of...
	(make_pass_forwprop): ...new function.
	(pass_phiprop): Replace declaration with that of...
	(make_pass_phiprop): ...new function.
	(pass_tree_ifcombine): Replace declaration with that of...
	(make_pass_tree_ifcombine): ...new function.
	(pass_dse): Replace declaration with that of...
	(make_pass_dse): ...new function.
	(pass_nrv): Replace declaration with that of...
	(make_pass_nrv): ...new function.
	(pass_rename_ssa_copies): Replace declaration with that of...
	(make_pass_rename_ssa_copies): ...new function.
	(pass_sink_code): Replace declaration with that of...
	(make_pass_sink_code): ...new function.
	(pass_fre): Replace declaration with that of...
	(make_pass_fre): ...new function.
	(pass_check_data_deps): Replace declaration with that of...
	(make_pass_check_data_deps): ...new function.
	(pass_copy_prop): Replace declaration with that of...
	(make_pass_copy_prop): ...new function.
	(pass_vrp): Replace declaration with that of...
	(make_pass_vrp): ...new function.
	(pass_uncprop): Replace declaration with that of...
	(make_pass_uncprop): ...new function.
	(pass_return_slot): Replace declaration with that of...
	(make_pass_return_slot): ...new function.
	(pass_reassoc): Replace declaration with that of...
	(make_pass_reassoc): ...new function.
	(pass_rebuild_cgraph_edges): Replace declaration with that of...
	(make_pass_rebuild_cgraph_edges): ...new function.
	(pass_remove_cgraph_callee_edges): Replace declaration with that of...
	(make_pass_remove_cgraph_callee_edges): ...new function.
	(pass_build_cgraph_edges): Replace declaration with that of...
	(make_pass_build_cgraph_edges): ...new function.
	(pass_local_pure_const): Replace declaration with that of...
	(make_pass_local_pure_const): ...new function.
	(pass_tracer): Replace declaration with that of...
	(make_pass_tracer): ...new function.
	(pass_warn_unused_result): Replace declaration with that of...
	(make_pass_warn_unused_result): ...new function.
	(pass_diagnose_tm_blocks): Replace declaration with that of...
	(make_pass_diagnose_tm_blocks): ...new function.
	(pass_lower_tm): Replace declaration with that of...
	(make_pass_lower_tm): ...new function.
	(pass_tm_init): Replace declaration with that of...
	(make_pass_tm_init): ...new function.
	(pass_tm_mark): Replace declaration with that of...
	(make_pass_tm_mark): ...new function.
	(pass_tm_memopt): Replace declaration with that of...
	(make_pass_tm_memopt): ...new function.
	(pass_tm_edges): Replace declaration with that of...
	(make_pass_tm_edges): ...new function.
	(pass_split_functions): Replace declaration with that of...
	(make_pass_split_functions): ...new function.
	(pass_feedback_split_functions): Replace declaration with that of...
	(make_pass_feedback_split_functions): ...new function.
	(pass_strength_reduction): Replace declaration with that of...
	(make_pass_strength_reduction): ...new function.
	(pass_ipa_lower_emutls): Replace declaration with that of...
	(make_pass_ipa_lower_emutls): ...new function.
	(pass_ipa_function_and_variable_visibility): Replace declaration with
	that of...
	(make_pass_ipa_function_and_variable_visibility): ...new function.
	(pass_ipa_tree_profile): Replace declaration with that of...
	(make_pass_ipa_tree_profile): ...new function.
	(pass_early_local_passes): Replace declaration with that of...
	(make_pass_early_local_passes): ...new function.
	(pass_ipa_whole_program_visibility): Replace declaration with that
	of...
	(make_pass_ipa_whole_program_visibility): ...new function.
	(pass_ipa_lto_gimple_out): Replace declaration with that of...
	(make_pass_ipa_lto_gimple_out): ...new function.
	(pass_ipa_increase_alignment): Replace declaration with that of...
	(make_pass_ipa_increase_alignment): ...new function.
	(pass_ipa_inline): Replace declaration with that of...
	(make_pass_ipa_inline): ...new function.
	(pass_ipa_free_lang_data): Replace declaration with that of...
	(make_pass_ipa_free_lang_data): ...new function.
	(pass_ipa_free_inline_summary): Replace declaration with that of...
	(make_pass_ipa_free_inline_summary): ...new function.
	(pass_ipa_cp): Replace declaration with that of...
	(make_pass_ipa_cp): ...new function.
	(pass_ipa_reference): Replace declaration with that of...
	(make_pass_ipa_reference): ...new function.
	(pass_ipa_pure_const): Replace declaration with that of...
	(make_pass_ipa_pure_const): ...new function.
	(pass_ipa_pta): Replace declaration with that of...
	(make_pass_ipa_pta): ...new function.
	(pass_ipa_lto_finish_out): Replace declaration with that of...
	(make_pass_ipa_lto_finish_out): ...new function.
	(pass_ipa_tm): Replace declaration with that of...
	(make_pass_ipa_tm): ...new function.
	(pass_ipa_profile): Replace declaration with that of...
	(make_pass_ipa_profile): ...new function.
	(pass_ipa_cdtor_merge): Replace declaration with that of...
	(make_pass_ipa_cdtor_merge): ...new function.
	(pass_cleanup_cfg_post_optimizing): Replace declaration with that
	of...
	(make_pass_cleanup_cfg_post_optimizing): ...new function.
	(pass_init_datastructures): Replace declaration with that of...
	(make_pass_init_datastructures): ...new function.
	(pass_fixup_cfg): Replace declaration with that of...
	(make_pass_fixup_cfg): ...new function.
	(pass_expand): Replace declaration with that of...
	(make_pass_expand): ...new function.
	(pass_instantiate_virtual_regs): Replace declaration with that of...
	(make_pass_instantiate_virtual_regs): ...new function.
	(pass_rtl_fwprop): Replace declaration with that of...
	(make_pass_rtl_fwprop): ...new function.
	(pass_rtl_fwprop_addr): Replace declaration with that of...
	(make_pass_rtl_fwprop_addr): ...new function.
	(pass_jump): Replace declaration with that of...
	(make_pass_jump): ...new function.
	(pass_jump2): Replace declaration with that of...
	(make_pass_jump2): ...new function.
	(pass_lower_subreg): Replace declaration with that of...
	(make_pass_lower_subreg): ...new function.
	(pass_cse): Replace declaration with that of...
	(make_pass_cse): ...new function.
	(pass_fast_rtl_dce): Replace declaration with that of...
	(make_pass_fast_rtl_dce): ...new function.
	(pass_ud_rtl_dce): Replace declaration with that of...
	(make_pass_ud_rtl_dce): ...new function.
	(pass_rtl_dce): Replace declaration with that of...
	(make_pass_rtl_dce): ...new function.
	(pass_rtl_dse1): Replace declaration with that of...
	(make_pass_rtl_dse1): ...new function.
	(pass_rtl_dse2): Replace declaration with that of...
	(make_pass_rtl_dse2): ...new function.
	(pass_rtl_dse3): Replace declaration with that of...
	(make_pass_rtl_dse3): ...new function.
	(pass_rtl_cprop): Replace declaration with that of...
	(make_pass_rtl_cprop): ...new function.
	(pass_rtl_pre): Replace declaration with that of...
	(make_pass_rtl_pre): ...new function.
	(pass_rtl_hoist): Replace declaration with that of...
	(make_pass_rtl_hoist): ...new function.
	(pass_rtl_store_motion): Replace declaration with that of...
	(make_pass_rtl_store_motion): ...new function.
	(pass_cse_after_global_opts): Replace declaration with that of...
	(make_pass_cse_after_global_opts): ...new function.
	(pass_rtl_ifcvt): Replace declaration with that of...
	(make_pass_rtl_ifcvt): ...new function.
	(pass_into_cfg_layout_mode): Replace declaration with that of...
	(make_pass_into_cfg_layout_mode): ...new function.
	(pass_outof_cfg_layout_mode): Replace declaration with that of...
	(make_pass_outof_cfg_layout_mode): ...new function.
	(pass_loop2): Replace declaration with that of...
	(make_pass_loop2): ...new function.
	(pass_rtl_loop_init): Replace declaration with that of...
	(make_pass_rtl_loop_init): ...new function.
	(pass_rtl_move_loop_invariants): Replace declaration with that of...
	(make_pass_rtl_move_loop_invariants): ...new function.
	(pass_rtl_unswitch): Replace declaration with that of...
	(make_pass_rtl_unswitch): ...new function.
	(pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
	(make_pass_rtl_unroll_and_peel_loops): ...new function.
	(pass_rtl_doloop): Replace declaration with that of...
	(make_pass_rtl_doloop): ...new function.
	(pass_rtl_loop_done): Replace declaration with that of...
	(make_pass_rtl_loop_done): ...new function.
	(pass_web): Replace declaration with that of...
	(make_pass_web): ...new function.
	(pass_cse2): Replace declaration with that of...
	(make_pass_cse2): ...new function.
	(pass_df_initialize_opt): Replace declaration with that of...
	(make_pass_df_initialize_opt): ...new function.
	(pass_df_initialize_no_opt): Replace declaration with that of...
	(make_pass_df_initialize_no_opt): ...new function.
	(pass_reginfo_init): Replace declaration with that of...
	(make_pass_reginfo_init): ...new function.
	(pass_inc_dec): Replace declaration with that of...
	(make_pass_inc_dec): ...new function.
	(pass_stack_ptr_mod): Replace declaration with that of...
	(make_pass_stack_ptr_mod): ...new function.
	(pass_initialize_regs): Replace declaration with that of...
	(make_pass_initialize_regs): ...new function.
	(pass_combine): Replace declaration with that of...
	(make_pass_combine): ...new function.
	(pass_if_after_combine): Replace declaration with that of...
	(make_pass_if_after_combine): ...new function.
	(pass_ree): Replace declaration with that of...
	(make_pass_ree): ...new function.
	(pass_partition_blocks): Replace declaration with that of...
	(make_pass_partition_blocks): ...new function.
	(pass_match_asm_constraints): Replace declaration with that of...
	(make_pass_match_asm_constraints): ...new function.
	(pass_regmove): Replace declaration with that of...
	(make_pass_regmove): ...new function.
	(pass_split_all_insns): Replace declaration with that of...
	(make_pass_split_all_insns): ...new function.
	(pass_fast_rtl_byte_dce): Replace declaration with that of...
	(make_pass_fast_rtl_byte_dce): ...new function.
	(pass_lower_subreg2): Replace declaration with that of...
	(make_pass_lower_subreg2): ...new function.
	(pass_mode_switching): Replace declaration with that of...
	(make_pass_mode_switching): ...new function.
	(pass_sms): Replace declaration with that of...
	(make_pass_sms): ...new function.
	(pass_sched): Replace declaration with that of...
	(make_pass_sched): ...new function.
	(pass_ira): Replace declaration with that of...
	(make_pass_ira): ...new function.
	(pass_reload): Replace declaration with that of...
	(make_pass_reload): ...new function.
	(pass_clean_state): Replace declaration with that of...
	(make_pass_clean_state): ...new function.
	(pass_branch_prob): Replace declaration with that of...
	(make_pass_branch_prob): ...new function.
	(pass_value_profile_transformations): Replace declaration with that
	of...
	(make_pass_value_profile_transformations): ...new function.
	(pass_postreload_cse): Replace declaration with that of...
	(make_pass_postreload_cse): ...new function.
	(pass_gcse2): Replace declaration with that of...
	(make_pass_gcse2): ...new function.
	(pass_split_after_reload): Replace declaration with that of...
	(make_pass_split_after_reload): ...new function.
	(pass_branch_target_load_optimize1): Replace declaration with that
	of...
	(make_pass_branch_target_load_optimize1): ...new function.
	(pass_thread_prologue_and_epilogue): Replace declaration with that
	of...
	(make_pass_thread_prologue_and_epilogue): ...new function.
	(pass_stack_adjustments): Replace declaration with that of...
	(make_pass_stack_adjustments): ...new function.
	(pass_peephole2): Replace declaration with that of...
	(make_pass_peephole2): ...new function.
	(pass_if_after_reload): Replace declaration with that of...
	(make_pass_if_after_reload): ...new function.
	(pass_regrename): Replace declaration with that of...
	(make_pass_regrename): ...new function.
	(pass_cprop_hardreg): Replace declaration with that of...
	(make_pass_cprop_hardreg): ...new function.
	(pass_reorder_blocks): Replace declaration with that of...
	(make_pass_reorder_blocks): ...new function.
	(pass_branch_target_load_optimize2): Replace declaration with that
	of...
	(make_pass_branch_target_load_optimize2): ...new function.
	(pass_leaf_regs): Replace declaration with that of...
	(make_pass_leaf_regs): ...new function.
	(pass_split_before_sched2): Replace declaration with that of...
	(make_pass_split_before_sched2): ...new function.
	(pass_compare_elim_after_reload): Replace declaration with that of...
	(make_pass_compare_elim_after_reload): ...new function.
	(pass_sched2): Replace declaration with that of...
	(make_pass_sched2): ...new function.
	(pass_stack_regs): Replace declaration with that of...
	(make_pass_stack_regs): ...new function.
	(pass_stack_regs_run): Replace declaration with that of...
	(make_pass_stack_regs_run): ...new function.
	(pass_df_finish): Replace declaration with that of...
	(make_pass_df_finish): ...new function.
	(pass_compute_alignments): Replace declaration with that of...
	(make_pass_compute_alignments): ...new function.
	(pass_duplicate_computed_gotos): Replace declaration with that of...
	(make_pass_duplicate_computed_gotos): ...new function.
	(pass_variable_tracking): Replace declaration with that of...
	(make_pass_variable_tracking): ...new function.
	(pass_free_cfg): Replace declaration with that of...
	(make_pass_free_cfg): ...new function.
	(pass_machine_reorg): Replace declaration with that of...
	(make_pass_machine_reorg): ...new function.
	(pass_cleanup_barriers): Replace declaration with that of...
	(make_pass_cleanup_barriers): ...new function.
	(pass_delay_slots): Replace declaration with that of...
	(make_pass_delay_slots): ...new function.
	(pass_split_for_shorten_branches): Replace declaration with that of...
	(make_pass_split_for_shorten_branches): ...new function.
	(pass_split_before_regstack): Replace declaration with that of...
	(make_pass_split_before_regstack): ...new function.
	(pass_convert_to_eh_region_ranges): Replace declaration with that
	of...
	(make_pass_convert_to_eh_region_ranges): ...new function.
	(pass_shorten_branches): Replace declaration with that of...
	(make_pass_shorten_branches): ...new function.
	(pass_set_nothrow_function_flags): Replace declaration with that of...
	(make_pass_set_nothrow_function_flags): ...new function.
	(pass_dwarf2_frame): Replace declaration with that of...
	(make_pass_dwarf2_frame): ...new function.
	(pass_final): Replace declaration with that of...
	(make_pass_final): ...new function.
	(pass_rtl_seqabstr): Replace declaration with that of...
	(make_pass_rtl_seqabstr): ...new function.
	(pass_release_ssa_names): Replace declaration with that of...
	(make_pass_release_ssa_names): ...new function.
	(pass_early_inline): Replace declaration with that of...
	(make_pass_early_inline): ...new function.
	(pass_inline_parameters): Replace declaration with that of...
	(make_pass_inline_parameters): ...new function.
	(pass_update_address_taken): Replace declaration with that of...
	(make_pass_update_address_taken): ...new function.
	(pass_convert_switch): Replace declaration with that of...
	(make_pass_convert_switch): ...new function.
	* tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
	to a subclass of simple_ipa_opt_pass along with...
	(pass_data_ipa_tree_profile): ...new pass_data instance and...
	(make_pass_ipa_tree_profile): ...new function.
	* tree-sra.c (pass_sra_early): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_sra_early): ...new pass_data instance and...
	(make_pass_sra_early): ...new function.
	(pass_sra): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_sra): ...new pass_data instance and...
	(make_pass_sra): ...new function.
	(pass_early_ipa_sra): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_early_ipa_sra): ...new pass_data instance and...
	(make_pass_early_ipa_sra): ...new function.
	* tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_ccp): ...new pass_data instance and...
	(make_pass_ccp): ...new function.
	(pass_fold_builtins): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_fold_builtins): ...new pass_data instance and...
	(make_pass_fold_builtins): ...new function.
	* tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_copy_prop): ...new pass_data instance and...
	(make_pass_copy_prop): ...new function.
	* tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
	global struct to a subclass of gimple_opt_pass along with...
	(pass_data_rename_ssa_copies): ...new pass_data instance and...
	(make_pass_rename_ssa_copies): ...new function.
	* tree-ssa-dce.c (pass_dce): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_dce): ...new pass_data instance and...
	(make_pass_dce): ...new function.
	(pass_dce_loop): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_dce_loop): ...new pass_data instance and...
	(make_pass_dce_loop): ...new function.
	(pass_cd_dce): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_cd_dce): ...new pass_data instance and...
	(make_pass_cd_dce): ...new function.
	* tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_dominator): ...new pass_data instance and...
	(make_pass_dominator): ...new function.
	(pass_phi_only_cprop): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_phi_only_cprop): ...new pass_data instance and...
	(make_pass_phi_only_cprop): ...new function.
	* tree-ssa-dse.c (pass_dse): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_dse): ...new pass_data instance and...
	(make_pass_dse): ...new function.
	* tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
	a subclass of gimple_opt_pass along with...
	(pass_data_forwprop): ...new pass_data instance and...
	(make_pass_forwprop): ...new function.
	* tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
	struct to a subclass of gimple_opt_pass along with...
	(pass_data_tree_ifcombine): ...new pass_data instance and...
	(make_pass_tree_ifcombine): ...new function.
	* tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_ch): ...new pass_data instance and...
	(make_pass_ch): ...new function.
	* tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_tree_loop): ...new pass_data instance and...
	(make_pass_tree_loop): ...new function.
	(pass_tree_loop_init): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_tree_loop_init): ...new pass_data instance and...
	(make_pass_tree_loop_init): ...new function.
	(pass_lim): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_lim): ...new pass_data instance and...
	(make_pass_lim): ...new function.
	(pass_tree_unswitch): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_tree_unswitch): ...new pass_data instance and...
	(make_pass_tree_unswitch): ...new function.
	(pass_predcom): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_predcom): ...new pass_data instance and...
	(make_pass_predcom): ...new function.
	(pass_vectorize): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_vectorize): ...new pass_data instance and...
	(make_pass_vectorize): ...new function.
	(pass_graphite): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_graphite): ...new pass_data instance and...
	(make_pass_graphite): ...new function.
	(pass_graphite_transforms): Convert from a global struct to a subclass
	of gimple_opt_pass along with...
	(pass_data_graphite_transforms): ...new pass_data instance and...
	(make_pass_graphite_transforms): ...new function.
	(pass_check_data_deps): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_check_data_deps): ...new pass_data instance and...
	(make_pass_check_data_deps): ...new function.
	(pass_iv_canon): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_iv_canon): ...new pass_data instance and...
	(make_pass_iv_canon): ...new function.
	(pass_scev_cprop): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_scev_cprop): ...new pass_data instance and...
	(make_pass_scev_cprop): ...new function.
	(pass_record_bounds): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_record_bounds): ...new pass_data instance and...
	(make_pass_record_bounds): ...new function.
	(pass_complete_unroll): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_complete_unroll): ...new pass_data instance and...
	(make_pass_complete_unroll): ...new function.
	(pass_complete_unrolli): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_complete_unrolli): ...new pass_data instance and...
	(make_pass_complete_unrolli): ...new function.
	(pass_parallelize_loops): Convert from a global struct to a subclass
	of gimple_opt_pass along with...
	(pass_data_parallelize_loops): ...new pass_data instance and...
	(make_pass_parallelize_loops): ...new function.
	(pass_loop_prefetch): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_loop_prefetch): ...new pass_data instance and...
	(make_pass_loop_prefetch): ...new function.
	(pass_iv_optimize): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_iv_optimize): ...new pass_data instance and...
	(make_pass_iv_optimize): ...new function.
	(pass_tree_loop_done): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_tree_loop_done): ...new pass_data instance and...
	(make_pass_tree_loop_done): ...new function.
	* tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
	struct to a subclass of gimple_opt_pass along with...
	(pass_data_cse_reciprocals): ...new pass_data instance and...
	(make_pass_cse_reciprocals): ...new function.
	(pass_cse_sincos): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_cse_sincos): ...new pass_data instance and...
	(make_pass_cse_sincos): ...new function.
	(pass_optimize_bswap): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_optimize_bswap): ...new pass_data instance and...
	(make_pass_optimize_bswap): ...new function.
	(pass_optimize_widening_mul): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_optimize_widening_mul): ...new pass_data instance and...
	(make_pass_optimize_widening_mul): ...new function.
	* tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_phiopt): ...new pass_data instance and...
	(make_pass_phiopt): ...new function.
	(pass_cselim): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_cselim): ...new pass_data instance and...
	(make_pass_cselim): ...new function.
	* tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_phiprop): ...new pass_data instance and...
	(make_pass_phiprop): ...new function.
	* tree-ssa-pre.c (pass_pre): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_pre): ...new pass_data instance and...
	(make_pass_pre): ...new function.
	(pass_fre): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_fre): ...new pass_data instance and...
	(make_pass_fre): ...new function.
	* tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_reassoc): ...new pass_data instance and...
	(make_pass_reassoc): ...new function.
	* tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_sink_code): ...new pass_data instance and...
	(make_pass_sink_code): ...new function.
	* tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_strlen): ...new pass_data instance and...
	(make_pass_strlen): ...new function.
	* tree-ssa-structalias.c (pass_build_alias): Convert from a global
	struct to a subclass of gimple_opt_pass along with...
	(pass_data_build_alias): ...new pass_data instance and...
	(make_pass_build_alias): ...new function.
	(pass_build_ealias): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_build_ealias): ...new pass_data instance and...
	(make_pass_build_ealias): ...new function.
	(pass_ipa_pta): Convert from a global struct to a subclass of
	simple_ipa_opt_pass along with...
	(pass_data_ipa_pta): ...new pass_data instance and...
	(make_pass_ipa_pta): ...new function.
	* tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_uncprop): ...new pass_data instance and...
	(make_pass_uncprop): ...new function.
	* tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
	global struct to a subclass of gimple_opt_pass along with...
	(pass_data_late_warn_uninitialized): ...new pass_data instance and...
	(make_pass_late_warn_uninitialized): ...new function.
	* tree-ssa.c (pass_init_datastructures): Convert from a global struct
	to a subclass of gimple_opt_pass along with...
	(pass_data_init_datastructures): ...new pass_data instance and...
	(make_pass_init_datastructures): ...new function.
	(pass_early_warn_uninitialized): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_early_warn_uninitialized): ...new pass_data instance and...
	(make_pass_early_warn_uninitialized): ...new function.
	(pass_update_address_taken): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_update_address_taken): ...new pass_data instance and...
	(make_pass_update_address_taken): ...new function.
	* tree-ssanames.c (pass_release_ssa_names): Convert from a global
	struct to a subclass of gimple_opt_pass along with...
	(pass_data_release_ssa_names): ...new pass_data instance and...
	(make_pass_release_ssa_names): ...new function.
	* tree-stdarg.c (pass_stdarg): Convert from a global struct to a
	subclass of gimple_opt_pass along with...
	(pass_data_stdarg): ...new pass_data instance and...
	(make_pass_stdarg): ...new function.
	* tree-switch-conversion.c (pass_convert_switch): Convert from a
	global struct to a subclass of gimple_opt_pass along with...
	(pass_data_convert_switch): ...new pass_data instance and...
	(make_pass_convert_switch): ...new function.
	* tree-tailcall.c (pass_tail_recursion): Convert from a global struct
	to a subclass of gimple_opt_pass along with...
	(pass_data_tail_recursion): ...new pass_data instance and...
	(make_pass_tail_recursion): ...new function.
	(pass_tail_calls): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_tail_calls): ...new pass_data instance and...
	(make_pass_tail_calls): ...new function.
	* tree-vect-generic.c (pass_lower_vector): Convert from a global
	struct to a subclass of gimple_opt_pass along with...
	(pass_data_lower_vector): ...new pass_data instance and...
	(make_pass_lower_vector): ...new function.
	(pass_lower_vector_ssa): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_lower_vector_ssa): ...new pass_data instance and...
	(make_pass_lower_vector_ssa): ...new function.
	* tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
	to a subclass of gimple_opt_pass along with...
	(pass_data_slp_vectorize): ...new pass_data instance and...
	(make_pass_slp_vectorize): ...new function.
	(pass_ipa_increase_alignment): Convert from a global struct to a
	subclass of simple_ipa_opt_pass along with...
	(pass_data_ipa_increase_alignment): ...new pass_data instance and...
	(make_pass_ipa_increase_alignment): ...new function.
	* tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_vrp): ...new pass_data instance and...
	(make_pass_vrp): ...new function.
	* tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
	subclass of simple_ipa_opt_pass along with...
	(pass_data_ipa_free_lang_data): ...new pass_data instance and...
	(make_pass_ipa_free_lang_data): ...new function.
	* tsan.c (pass_tsan): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_tsan): ...new pass_data instance and...
	(make_pass_tsan): ...new function.
	(pass_tsan_O0): Convert from a global struct to a subclass of
	gimple_opt_pass along with...
	(pass_data_tsan_O0): ...new pass_data instance and...
	(make_pass_tsan_O0): ...new function.
	* var-tracking.c (pass_variable_tracking): Convert from a global
	struct to a subclass of rtl_opt_pass along with...
	(pass_data_variable_tracking): ...new pass_data instance and...
	(make_pass_variable_tracking): ...new function.
	* web.c (pass_web): Convert from a global struct to a subclass of
	rtl_opt_pass along with...
	(pass_data_web): ...new pass_data instance and...
	(make_pass_web): ...new function.
	* config/epiphany/epiphany.h (pass_mode_switch_use): Replace
	declaration with that of...
	(make_pass_mode_switch_use): ...new function.
	(pass_resolve_sw_modes): Replace declaration with that of...
	(make_pass_resolve_sw_modes): ...new function.
	* config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
	from a global struct to a subclass of rtl_opt_pass along with...
	(pass_data_mode_switch_use): ...new pass_data instance and...
	(make_pass_mode_switch_use): ...new function.
	* config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
	from a global struct to a subclass of rtl_opt_pass along with...
	(pass_data_resolve_sw_modes): ...new pass_data instance and...
	(make_pass_resolve_sw_modes): ...new function.
	* config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
	struct to a subclass of rtl_opt_pass along with...
	(pass_data_insert_vzeroupper): ...new pass_data instance and...
	(make_pass_insert_vzeroupper): ...new function.
	* config/sparc/sparc.c (pass_work_around_errata): Convert from a
	global struct to a subclass of rtl_opt_pass along with...
	(pass_data_work_around_errata): ...new pass_data instance and...
	(make_pass_work_around_errata): ...new function.
	* config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
	struct to a subclass of rtl_opt_pass along with...
	(pass_data_mips_machine_reorg2): ...new pass_data instance and...
	(make_pass_mips_machine_reorg2): ...new function.

gcc/testsuite/

	Patch autogenerated by refactor_passes.py from
	https://github.com/davidmalcolm/gcc-refactoring-scripts
	revision 03fe39476a4c4ea450b49e087cfa817b5f92021e

	* gcc.dg/plugin/one_time_plugin.c (one_pass): Convert from a global
	struct to a subclass of gimple_opt_pass along with...
	(pass_data_one_pass): ...new pass_data instance and...
	(make_one_pass): ...new function.
	* gcc.dg/plugin/selfassign.c (pass_warn_self_assign): Convert from a
	global struct to a subclass of gimple_opt_pass along with...
	(pass_data_warn_self_assign): ...new pass_data instance and...
	(make_pass_warn_self_assign): ...new function.
	* g++.dg/plugin/dumb_plugin.c (pass_dumb_plugin_example): Convert from
	a global struct to a subclass of gimple_opt_pass along with...
	(pass_data_dumb_plugin_example): ...new pass_data instance and...
	(make_pass_dumb_plugin_example): ...new function.
	* g++.dg/plugin/selfassign.c (pass_warn_self_assign): Convert from a
	global struct to a subclass of gimple_opt_pass along with...
	(pass_data_warn_self_assign): ...new pass_data instance and...
	(make_pass_warn_self_assign): ...new function.

From-SVN: r201508
2013-08-05 20:16:05 +00:00
Richard Biener 0fc822d0f9 function.h (loops_for_fn): New inline function.
2013-04-30  Richard Biener  <rguenther@suse.de>

	* function.h (loops_for_fn): New inline function.
	(set_loops_for_fn): Likewise.
	* cfgloop.h (place_new_loop): Add struct function parameter.
	(get_loop): Likewise.
	(get_loops): Likewise.
	(number_of_loops): Likewise.
	(fel_next): Adjust.
	(fel_init): Likewise.
	* cfg.c (get_loop_copy): Adjust.
	* cfgloop.c (flow_loops_dump): Likewise.
	(record_loop_exits): Likewise.
	(verify_loop_structure): Likewise.
	* cfgloopanal.c (mark_irreducible_loops): Likewise.
	(estimate_reg_pressure_cost): Likewise.
	(mark_loop_exit_edges): Likewise.
	* cfgloopmanip.c (place_new_loop): Likewise.
	(add_loop): Likewise.
	(duplicate_loop): Likewise.
	* graph.c (draw_cfg_nodes): Likewise.
	* graphite-clast-to-gimple.c (translate_clast_user): Likewise.
	* graphite-sese-to-poly.c (build_scop_scattering): Likewise.
	(extract_affine_chrec): Likewise.
	(build_scop_iteration_domain): Likewise.
	* graphite.c (graphite_initialize): Likewise.
	* ira-build.c (create_loop_tree_nodes): Likewise.
	(more_one_region_p): Likewise.
	(rebuild_regno_allocno_maps): Likewise.
	(mark_loops_for_removal): Likewise.
	(mark_all_loops_for_removal): Likewise.
	(remove_unnecessary_regions): Likewise.
	(ira_build): Likewise.
	* ira-emit.c (setup_entered_from_non_parent_p): Likewise.
	* loop-init.c (fix_loop_structure): Likewise.
	(gate_rtl_move_loop_invariants): Likewise.
	(gate_rtl_unswitch): Likewise.
	(gate_rtl_unroll_and_peel_loops): Likewise.
	(rtl_doloop): Likewise.
	* lto-streamer-in.c (input_cfg): Likewise.
	* lto-streamer-out.c (output_cfg): Likewise.
	* modulo-sched.c (sms_schedule): Likewise.
	* predict.c (tree_estimate_probability): Likewise.
	(tree_estimate_probability_driver): Likewise.
	(estimate_loops): Likewise.
	* tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
	(move_sese_region_to_fn): Likewise.
	(debug_loop_num): Likewise.
	* tree-chrec.c (chrec_evaluate): Likewise.
	(hide_evolution_in_other_loops_than_loop): Likewise.
	(chrec_component_in_loop_num): Likewise.
	(reset_evolution_in_loop): Likewise.
	(evolution_function_is_invariant_rec_p): Likewise.
	* tree-if-conv.c (main_tree_if_conversion): Likewise.
	* tree-inline.c (copy_loops): Likewise.
	(copy_cfg_body): Likewise.
	(tree_function_versioning): Likewise.
	* tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
	* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
	Likewise.
	(add_to_evolution_1): Likewise.
	(scev_const_prop): Likewise.
	* tree-scalar-evolution.h (get_chrec_loop): Likewise.
	* tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
	* tree-ssa-loop-im.c (analyze_memory_references): Likewise.
	(tree_ssa_lim_initialize): Likewise.
	* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
	(verify_loop_closed_ssa): Likewise.
	* tree-ssa-loop.c  (tree_ssa_loop_init): Likewise.
	(tree_ssa_loop_im): Likewise.
	(tree_ssa_loop_unswitch): Likewise.
	(tree_vectorize): Likewise.
	(check_data_deps): Likewise.
	(tree_ssa_loop_ivcanon): Likewise.
	(tree_ssa_loop_bounds): Likewise.
	(tree_complete_unroll): Likewise.
	(tree_complete_unroll_inner): Likewise.
	(tree_parallelize_loops): Likewise.
	(tree_ssa_loop_prefetch): Likewise.
	(tree_ssa_loop_ivopts): Likewise.
	* tree-ssa.c (execute_update_addresses_taken): Liekwise.
	* tree-vectorizer.c (vectorize_loops): Likewise.

From-SVN: r198441
2013-04-30 08:14:09 +00:00
Richard Biener ea78906a44 re PR tree-optimization/57081 (Segmentation fault in simple_iv (tree-scalar-evolution.c:3151))
2013-04-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/57081
	* loop-init.c: Include tree-flow.h.
	(loop_optimizer_finalize): Free number of iteration estimates.
	* Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.

	* gcc.dg/torture/pr57081.c: New testcase.

From-SVN: r198392
2013-04-29 09:09:08 +00:00
Richard Biener a9e0d84371 tree-cfg.c (execute_build_cfg): Build the loop tree.
2013-03-26  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (execute_build_cfg): Build the loop tree.
	(pass_build_cfg): Provide PROP_loops.
	(move_sese_region_to_fn): Remove loops that are outlined into fn
	for now.
	* tree-inline.c: Include cfgloop.h.
	(initialize_cfun): Do not drop PROP_loops.
	(copy_loops): New function.
	(copy_cfg_body): Copy loop structure.
	(tree_function_versioning): Initialize destination loop tree.
	* tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
	(pass_parallelize_loops): Do IL verification.
	* loop-init.c (loop_optimizer_init): Fixup loops if required.
	* tree-optimize.c (execute_fixup_cfg): If we need to cleanup
	the CFG make sure we fixup loops as well.
	* tree-ssa-tail-merge.c: Include cfgloop.h.
	(replace_block_by): When merging loop latches mark loops for fixup.
	* lto-streamer-out.c (output_struct_function_base): Drop
	PROP_loops for now.
	* tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
	(tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
	* ipa-split.c: Include cfgloop.h.
	(split_function): Add the new return block to the loop tree root.
	* tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
	whether we have removed the forwarder block.
	(merge_phi_nodes): If we removed a forwarder mark loops for fixup.
	* cfgloop.h (place_new_loop): Declare.
	* cfgloopmanip.c (place_new_loop): Export.
	* Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
	(tree-switch-conversion.o): Likewise.
	(tree-complex.o): Likewise.
	(tree-inline.o): Likewise.
	(tree-ssa-tailmerge.o): Likewise.
	(ipa-split.o): Likewise.
	(tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
	(tree-ssa-copy.o): Likewise.
	* tree-switch-conversion.c: Include cfgloop.h
	(process_switch): If we emit a bit-test cascade, schedule loops
	for fixup.
	* tree-complex.c: Include cfgloop.h.
	(expand_complex_div_wide): Properly add new basic-blocks to loops.
	* asan.c: Include cfgloop.h.
	(create_cond_insert_point): Properly add new basic-blocks to
	loops, schedule loop fixup.
	* cfgloop.c (verify_loop_structure): Check that looks are not
	marked for fixup.
	* omp-low.c (expand_parallel_call): Properly add new basic-blocks
	to loops.
	(expand_omp_for_generic): Likewise.
	(expand_omp_sections): Likewise.
	(expand_omp_atomic_pipeline): Schedule loops for fixup.
	* tree-ssa-copy.c: Include tree-scalar-evolution.h.
	(fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
	is initialized, not when loops are present.
	* tree-parloops.c (parallelize_loops): Remove checking here.
	* passes.c (init_optimization_passes): Schedule a copy-propagation
	pass before complete unrolling of inner loops.

	* gcc.dg/tree-prof/update-loopch.c: Revert last change.
	* gcc.dg/graphite/pr33766.c: Fix undefined behavior.
	* gcc.dg/pr53265.c: Remove XFAILs.
	* gcc.dg/tree-ssa/loop-38.c: Remove unreliable dump scanning.
	* gcc.dg/tree-ssa/pr21559.c: Change back to two expected jump threads.

From-SVN: r198333
2013-04-26 08:01:19 +00:00
Richard Biener ef23e6a2d7 re PR rtl-optimization/56921 (ICE in rtx_cost called by doloop_optimize_loops for PPC)
2013-04-17  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/56921
	* cfgloop.h (struct loop): Add simple_loop_desc member.
	(struct niter_desc): Mark with GTY(()).
	(simple_loop_desc): Do not use aux field but simple_loop_desc.
	* loop-iv.c (get_simple_loop_desc): Likewise.
	(free_simple_loop_desc): Likewise.

	Revert
	2013-04-16  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/56921
	* loop-init.c (pass_rtl_move_loop_invariants): Add
	TODO_do_not_ggc_collect to todo_flags_finish.
	(pass_rtl_unswitch): Same.
	(pass_rtl_unroll_and_peel_loops): Same.
	(pass_rtl_doloop): Same.

From-SVN: r198025
2013-04-17 12:01:46 +00:00
Richard Biener 07c37b2fba re PR rtl-optimization/56921 (ICE in rtx_cost called by doloop_optimize_loops for PPC)
2013-04-16  Richard Biener  <rguenther@suse.de>

        PR rtl-optimization/56921
        * loop-init.c (pass_rtl_move_loop_invariants): Add
        TODO_do_not_ggc_collect to todo_flags_finish.
        (pass_rtl_unswitch): Same.
        (pass_rtl_unroll_and_peel_loops): Same.
        (pass_rtl_doloop): Same.

From-SVN: r198006
2013-04-16 13:46:20 -04:00
Richard Biener bb313b932b passes.c (execute_todo): Do not call ggc_collect conditional here.
2013-04-10  Richard Biener  <rguenther@suse.de>

	* passes.c (execute_todo): Do not call ggc_collect conditional here.
	(execute_one_ipa_transform_pass): But unconditionally here.
	(execute_one_pass): And here.
	(init_optimization_passes): Remove reload pass.
	* tree-pass.h (TODO_ggc_collect): Remove.
	(pass_reload): Likewise.
	* ira.c (do_reload): Merge into ...
	(ira): ... this.
	(rest_of_handle_reload): Remove.
	(pass_reload): Likewise.
	* config/i386/i386.c (ix86_option_override): Refer to ira instead
	of reload for vzeroupper pass placement.
	* <everywhere>: Remove TODO_ggc_collect from todo_flags_start
	and todo_flags_finish of all passes.

	* g++.dg/pr55604.C: Use -fdump-rtl-ira.

From-SVN: r197671
2013-04-10 11:33:31 +00:00
Richard Biener 5e7f1aefc8 re PR middle-end/56525 (Access to ggc_freed memory in flow_loops_find)
2013-03-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/56525
	* loop-init.c (fix_loop_structure): Remove loops in two stages,
	not freeing them until the end.

From-SVN: r196462
2013-03-05 12:51:28 +00:00
Richard Biener c1874a876f loop-init.c (loop_optimizer_init): Clear loop state when re-initializing preserved loops.
2013-02-13  Richard Biener  <rguenther@suse.de>

	* loop-init.c (loop_optimizer_init): Clear loop state when
	re-initializing preserved loops.
	* loop-unswitch.c (unswitch_single_loop): Return whether
	we unswitched the loop.  Do not verify loop state here.
	(unswitch_loops): When we unswitched a loop discover new
	loops.

From-SVN: r196010
2013-02-13 11:42:04 +00:00
Richard Biener 8e89b5b5fb re PR tree-optimization/56264 (ICE in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:557)
2013-02-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56264
	* cfgloop.h (fix_loop_structure): Adjust prototype.
	* loop-init.c (fix_loop_structure): Return the number of
	newly discovered loops.
	* tree-cfgcleanup.c (repair_loop_structures): When new loops
	are discovered, do a full loop-closed SSA rewrite.

	* gcc.dg/torture/pr56264.c: New testcase.

From-SVN: r195941
2013-02-11 15:07:40 +00:00
Richard Biener 0375167b6c re PR rtl-optimization/56181 (ICE in verify_loop_structure, at cfgloop.c:1581 with -ftracer)
2013-02-08  Richard Biener  <rguenther@suse.de>

	PR middle-end/56181
	* cfgloop.h (flow_loops_find): Adjust.
	(bb_loop_header_p): Declare.
	* cfgloop.c (bb_loop_header_p): New function split out from ...
	(flow_loops_find): ... here.  Adjust function signature,
	support incremental loop structure update.
	(verify_loop_structure): Cleanup.  Verify a loop is a loop.
	* cfgloopmanip.c (fix_loop_structure): Move ...
	* loop-init.c (fix_loop_structure): ... here.
	(apply_loop_flags): Split out from ...
	(loop_optimizer_init): ... here.
	(fix_loop_structure): Use apply_loop_flags.  Use flow_loops_find
	in incremental mode, only remove dead loops here.

	* gcc.dg/torture/pr56181.c: New testcase.

From-SVN: r195879
2013-02-08 11:00:26 +00:00
Richard Sandiford d1e082c2c2 Update copyright years in gcc/
From-SVN: r195098
2013-01-10 20:38:27 +00:00
Jakub Jelinek 90d04a445c Update Copyright years for files modified in 2011 and/or 2012.
From-SVN: r194903
2013-01-04 13:49:55 +01:00
Richard Biener 867fdd05e4 re PR middle-end/54838 (ICE: in merge_latch_edges, at cfgloop.c:678 with -ftracer)
2012-12-18  Richard Biener  <rguenther@suse.de>

	PR middle-end/54838
	* cfgloopmanip.c (fix_loop_structure): Re-discover latch
	edges first and mark loops for removal if no latch edges remain.
	Properly re-create LOOPS_HAVE_FALLTHRU_PREHEADERS.
	* loop-init.c (loop_optimizer_finalize): Set
	LOOPS_MAY_HAVE_MULTIPLE_LATCHES.

	* g++.dg/torture/pr54838.C: New testcase.

From-SVN: r194582
2012-12-18 14:39:49 +00:00
Sharad Singhai 2b4e6bf1d5 invoke.texi: Update -fopt-info documentation.
2012-11-01  Sharad Singhai  <singhai@google.com>

    * doc/invoke.texi: Update -fopt-info documentation.
    * dumpfile.c: Move dump_flags here from passes.c.
    Rename opt_info_options to optinfo_verbosity_options.
    Add optgroup_options.
    (dump_files): Add field for optinfo_flags in the static initializer.
    (dump_register): Handle additional parameter for optgroup_flags.
    (opt_info_enable_passes): Renamed opt_info_enable_all. Handle
    optgroup_flags. Fix documentation.
    (opt_info_switch_p_1): Handle optgroup options.
    (opt_info_switch_p): Handle optgroup_flags. Warn on multiple files.
    * dumpfile.h (dump_register): Additional argument for optgroup_flags.
    All callers updated.
    (struct dump_file_info): Add field for optgroup_flags.
    Define OPTGROUP_* flags.
    * tree-pass.h (struct opt_pass): Add addtional field for optinfo_flags.
    All opt_pass static initializers updated.
    * opts-global.c (dump_remap_tree_vectorizer_verbose): Use 'all'
    instead of 'optall'.
    (handle_common_deferred_options): Fix typo in error message.
    * passes.c (register_one_dump_file): Add argument for optgroup_flags.
    Turn on OPTGROUP_IPA for IPA passes.
    Move dump_flags from here to dumpfile.c.
    * statistics.c (statistics_early_init): Use OPTGROUP_NONE in call to
    dump_register.

testsuite/ChangeLog

    * testsuite/gcc.dg/plugin/selfassign.c: Add opgtroup_flags initializer.
    * testsuite/gcc.dg/plugin/one_time_plugin.c: Likewise.
    * testsuite/g++.dg/plugin/selfassign.c: Likewise.
    * testsuite/g++.dg/plugin/dumb_plugin.c: Likewise.

From-SVN: r193061
2012-11-01 07:34:44 +00:00
Steven Bosscher 63ef63bfad timevar.def (TV_VARPOOL, [...]): Remove.
* timevar.def (TV_VARPOOL, TV_WHOPR_WPA_LTRANS_EXEC, TV_LIFE,
	TV_LIFE_UPDATE, TV_DF_UREC, TV_INLINE_HEURISTICS,
	TV_TREE_LINEAR_TRANSFORM, TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI,
	TV_VPT, TV_LOCAL_ALLOC, TV_GLOBAL_ALLOC, TV_SEQABSTR): Remove.
	(TV_IPA_INLINING, TV_FLATTEN_INLINING, TV_EARLY_INLINING,
	TV_INLINE_PARAMETERS, TV_LOOP_INIT, TV_LOOP_FINI): New.
	* timevar.c (timevar_print): Make printing width of timevar names
	more flexible, but enforce maximum length.
	* ipa-inline.c (pass_early_inline): Use TV_EARLY_INLINING.
	(pass_ipa_inline): Use TV_IPA_INLINING.
	* ipa-inline-analysis.c (pass_inline_parameters): Use
	TV_INLINE_HEURISTICS.
	* tree-ssa-loop.c (pass_tree_loop_init): No timevar for wrapper pass.
	(pass_tree_loop_done): Likewise.
	* final.c (pass_shorten_branches): Use TV_SHORTEN_BRANCH.
	* loop-init.c (loop_optimizer_init): Push/pop TV_LOOP_INIT.
	(loop_optimizer_finalize): Push/pop TV_LOOP_FINI.

From-SVN: r190409
2012-08-15 08:47:13 +00:00
Steven Bosscher 7ee2468b92 system.h (dump_file): Do not define.
gcc/
	* system.h (dump_file): Do not define.
	* tree-pass.h: Include dumpfile.h, which is a new file containing...
	(enum tree_dump_index, TDF_*, get_dump_file_name, dump_enabled_p,
	dump_initialized_p, dump_begin, dump_end, dump_node, dump_switch_p,
	dump_flag_name, dump_file, dump_flags, dump_file_name,
	get_dump_file_info, struct dump_file_info): all of this, moved to...
	* dumpfile.h: Here, new file.
	* tree-dump.h: Include dumpfile.h, but not tree-pass.h.
	(dump_stmt): Remove prototype for C++ specific function.
	(dump_enumerated_decls): Move prototype from here...
	* tree-flow.h (dump_enumerated_decls): ... to here.
	(get_ref_base_and_extent) Move prototype from here ...
	* tree.h (get_ref_base_and_extent) ... to here.
	* tree-ssa-live.c: Do not inclde tree-pretty-print.h, because
	gimple-pretty-print.h is enough.  Do not include tree-dump.h,
	include timevar.h and dumpfile.h instead.
	(struct numbered_tree_d, compare_decls_by_uid,
	dump_enumerated_decls_push, dump_enumerated_decls): Move from here ...
	* tree-dfa.c:(struct numbered_tree_d, compare_decls_by_uid,
	dump_enumerated_decls_push, dump_enumerated_decls):... to here.
	Do not include timevar.h.
	* tree.c: Do not include timevar.h.
	* tree-cfg.c: Do not include langhooks.h, tree-pretty-print.h, and
	timevar.h.
	(dump_cfg_stats): Use current_function_name.
	(gimple_cfg2vcg): Likewise.
	(dump_function_to_file): Likewise.
	* df-scan.c: Do not include tree-pass.h and timevar.h.
	Include dumpfile.h.
	(df_entry_block_bitmap_verify, df_exit_block_bitmap_verify): Do not
	use print_current_pass.
	* df-problems.c: Include dumpfile.h.
	Always define REG_DEAD_DEBUGGING, avoid #ifdef code, because it
	leads to errors in the code not selected.
	(df_note_compute): Do not print_rtl_with_bb here.  Fix compilation
	bug if REG_DEAD_DEBUGGING is not 0, get_insns is not available here.
	* lcm.c: Include dumpfile.h.
	Remove obsolete include of insn-attr.h.
	* dojump.c (do_compare_rtx_and_jump): Remove failure printing for
	missing probability notes.
	* stmt.c: Include dumpfile.h.
	(emit_case_decision_tree): Re-enable printing expand details only
	if TDF_DETAILS.
	* alias.c, auto-inc-dec.c, bb-reorder.c, caller-save.c, cfg.c, 
	cfgcleanup.c, cfgexpand.c, cfgloop.c, cfgloopmanip.c, cgraph.c, 
	cgraphclones.c, cgraphunit.c, combine.c, combine-stack-adj.c, 
	coverage.c, cprop.c, cse.c, cselib.c, dbgcnt.c, dce.c, df-core.c, 
	dse.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, final.c, 
	function.c, fwprop.c, gcse.c, gimple-fold.c, 
	gimple-pretty-print.c, gimple-ssa-strength-reduction.c, 
	gimplify.c, graphite-blocking.c, graphite-clast-to-gimple.c, 
	graphite-dependences.c, graphite-interchange.c, 
	graphite-optimize-isl.c, graphite-poly.c, 
	graphite-sese-to-poly.c, haifa-sched.c, hw-doloop.c, ifcvt.c, 
	ipa.c, ipa-cp.c, ipa-inline-analysis.c, ipa-inline.c, 
	ipa-inline-transform.c, ipa-prop.c, ipa-pure-const.c, 
	ipa-reference.c, ipa-split.c, ipa-utils.c, ira.c, ira-emit.c, 
	jump.c, loop-doloop.c, loop-init.c, loop-invariant.c, loop-iv.c, 
	loop-unroll.c, loop-unswitch.c, lower-subreg.c, 
	lto-section-out.c, lto-streamer-in.c, matrix-reorg.c, mcf.c, 
	mode-switching.c, modulo-sched.c, omega.c, omp-low.c, passes.c, 
	plugin.c, postreload.c, postreload-gcse.c, predict.c, print-rtl.c, 
	print-tree.c, profile.c, recog.c, ree.c, regcprop.c, reginfo.c, 
	regmove.c, regrename.c, reg-stack.c, reload1.c, reorg.c, 
	sched-rgn.c, sched-vis.c, sel-sched.c, sel-sched-ir.c, 
	store-motion.c, tracer.c, trans-mem.c, tree-affine.c, 
	tree-call-cdce.c, tree-cfgcleanup.c, tree-chrec.c, 
	tree-data-ref.c, tree-diagnostic.c, tree-dump.c,
	tree-eh.c, tree-flow-inline.h, tree-if-conv.c, tree-into-ssa.c, 
	tree-mudflap.c, tree-nrv.c, tree-object-size.c, 
	tree-optimize.c, tree-outof-ssa.c, tree-predcom.c, 
	tree-pretty-print.c, tree-profile.c, tree-scalar-evolution.c, 
	tree-sra.c, tree-ssa-address.c, tree-ssa-alias.c, tree-ssa.c, 
	tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-copy.c, 
	tree-ssa-copyrename.c,, tree-ssa-dce.c, tree-ssa-dom.c, 
	tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-ifcombine.c, 
	tree-ssa-loop.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c, 
	tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c, 
	tree-ssa-loop-manip.c, tree-ssa-loop-niter.c, 
	tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c, 
	tree-ssa-math-opts.c, tree-ssa-operands.c, tree-ssa-phiopt.c, 
	tree-ssa-phiprop.c, tree-ssa-pre.c, tree-ssa-propagate.c, 
	tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-sink.c, 
	tree-ssa-structalias.c, tree-ssa-tail-merge.c, tree-ssa-ter.c, 
	tree-ssa-threadedge.c, tree-ssa-threadupdate.c, 
	tree-ssa-uncprop.c, tree-ssa-uninit.c, 
	tree-switch-conversion.c, tree-tailcall.c, 
	tree-vect-data-refs.c, tree-vect-loop.c, 
	tree-vect-loop-manip.c, tree-vectorizer.c, 
	tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c, 
	tree-vrp.c, value-prof.c, var-tracking.c, web.c: Include tree-pass.h
	only if needed.  If tree-pass.h is included, do not include timevar.h
	and dumpfile.h.  If tree-pass.h is not included but dump_file, or
	dump_flags, or the TDF_* flags are used, include dumpfile.h.
	If gimple-pretty-print.h is included, don't include tree-pretty-print.h.
	Remove assorted unnecessary includes.

	* config/mn10300/mn10300.c, config/c6x/c6x.c, config/ia64/ia64.c,
	config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
	config/spu/spu.c, config/mep/mep.c, config/i386/i386.c:
	Include dumpfile.h.
	* config/rl78/rl78.c: Include dumpfile.h instead of tree-pass.h.
	* arm/t-arm, avr/t-avr, i386/t-i386, ia64/t-ia64, mep/t-mep,
	spu/t-spu-elf: Fix dependencies.

c-family/
	* c-gimplify.c: Include dumpfile.h instead of tree-dump.h.
	* c-ada-spec.c: Likewise.
	* c-dump.c (dump_stmt): Move to cp/dump.c, the only user.

c/
	* c-decl.c: Include dumpfile.h instead of tree-dump.h.
	* Make-lang.in: Fix dependencies.

cp/
	* dump.c (dump_stmt): Moved here from c-dump.c.
	* optimize.c: Include dumpfile.h instead of tree-dump.h.
	* class.c: Likewise.
	* decl2.c: Likewise.
	* Make-lang.in: Fix dependencies.

fortran/
	* f95-lang.c: Include dumpfile.h instead of tree-dump.h.
	* Make-lang.in: Fix dependencies.

java/
	* java-gimplify.c Include dumpfile.h instead of tree-dump.h
	* Make-lang.in: Fix dependencies.

lto/
	* lto.c: Do not include timevar.h.
	* Make-lang.in: Fix dependencies.

ada/
	* gcc-interface/utils.c: Include timevar.h.
	* Make-lang.in: Fix dependencies.

From-SVN: r189519
2012-07-16 11:32:42 +00:00
Steven Bosscher 532aafaddb basic-block.h: Re-group most prototypes per file.
gcc/
	* basic-block.h: Re-group most prototypes per file.
	(struct edge_list): Remove num_blocks field.
	(dump_bb_info): Adjust prototypes.
	(dump_reg_info): Move prototype to regs.h.
	* function.h: Do not include tree.h.
	Include vec.h, vecir.h, input.h and machmode.h to compensate.
	(function_name): New prototype.
	* gimple.h: Include tree.h to compensate for basic-block.h change.
	* langhooks.h: Note that tree.h is only necessary for enum tree_code.
	* regs.h (dump_reg_info): Prototype here.
	* regset.h: Adjust file reference in comment.
	(debug_regset): Remove prototype.
	* rtl.h: Include flags.h for flag_var_tracking_assignments.
	(MAY_HAVE_DEBUG_INSNS): Define as flag_var_tracking_assignments
	instead of no-longer-available tree.h's MAY_HAVE_DEBUG_STMTS.
	(dump_reg_info, dump_flow_info): Remove prototypes.
	* bb-reorder.c (set_edge_can_fallthru_flag): Move from cfganal.c
	to here, the only user.  Make static.
	(reorder_basic_blocks): Call dump_reg_info before dump_flow_info.
	* cfg.c: Do not include tm.h, tree.h, rtl.h, hard-reg-set.h, regs.h,
	flags.h, function.h, except.h, diagnostic-core.h, tm_p.h, timevar.h,
	tree-pass.h, cfgloop.h, and tree-flow.h.
	Include basic-block.h, the first header I'd expect to be included.
	(reg_obstack): Move to df-core.c.
	(free_edge): Remove bogus ATTRIBUTE_UNUSED.
	(remove_edge_raw): Do not call tree-ssa's redirect_edge_var_map_clear.
	(redirect_edge_succ_nodup): Move to cfghooks.c.
	(dump_regset, debug_regset): Move to df-core.c.
	(dump_bb_info): Move to cfgrtl.c.
	(dump_reg_info): Move to regstat.c.
	(dump_flow_info): Move to cfgrtl.c.
	(debug_flow_info): Likewise.
	(dump_edge_info): Do not look at cfun, a CFG without cfun is nonsense.
	* cfganal.c: Do not include tm.h, rtl.h, obstack.h, hard-reg-set.h,
	insn-config.h, recog.h, diagnostic-core.h, tm_p.h, and cfgloop.h.
	(flow_active_insn_p, forwarder_block_p, can_fallthru,
	could_fall_through): Move to cfgrtl.c.
	(set_edge_can_fallthru_flag): Moved to bb-reorder.c.
	(create_edge_list): Do not set edge_list's removed num_blocks.
	(print_edge_list): Look at n_basic_blocks instead of num_blocks.
	(flow_nodes_print): Remove.
	(flow_edge_list_print): Remove.
	(inverted_post_order_compute): Use FOR_ALL_BB.
	*cfgrtl.c (dump_flow_info): Moved from cfg.c.
	Do not call dump_reg_info.
	(debug_flow_info): Moved from cfg.c
	(dump_bb_info): Moved from cfg.c.  Take 'verbose' argument
	to avoid looking at TDF_* flags from tree-pass.h.
	(flow_active_insn_p, forwarder_block_p, can_fallthru,
	could_fall_through): Moved from cfganal.c.
	(print_rtl_with_bb): Adjust dump_bb_info calls.
	* cfghooks.c (redirect_edge_succ_nodup): Moved from cfg.c.
	(remove_edge): Call redirect_edge_var_map_clear if IR_GIMPLE.
	(cfgcleanup.c): Look at MAY_HAVE_DEBUG_INSNS, not MAY_HAVE_DEBUG_STMTS.
	* cselib.c: Include tree.h with a FIXME.
	* df-core.c (reg_obstack): Moved from cfg.c.
	(dump_regset): Likewise.
	(debug_regset): Likewise.  Make a DEBUG_FUNCTION.
	* final.c (compute_alignments): Call dump_reg_info before
	dump_flow_info.
	* function.c (function_name): New function.
	(current_function_name): Use it.
	* ifcvt.c (rest_of_handle_if_conversion): Call dump_reg_info before
	dump_flow_info.
	* ira-conflicts.c: Include tree.h with a note.
	* regstat.c (dump_reg_info): Moved here from cfg.c.
	* loop-init.c: Include regs.h instead of hard-reg-set.h.
	(rtl_loop_init): Call dump_reg_info before dump_flow_info.
	(rtl_loop_done): Likewise.
	* mcf.c: Include tree.h before langhooks.h.
	* predict.c (maybe_hot_count_p): Assert we have cfun.
	(probably_never_executed_bb_p): Likewise.
	* profile.c (compute_branch_probabilities): Use gimple_dump_cfg
	instead of dump_flow_info.
	* sched-deps.c: Include tree.h with a FIXME.
	(call_may_noreturn_p): Add FIXME note why this function has to
	look at function decls instead of function decl flags.
	* sched-vis.c: Include tree.h with a FIXME.
	(print_rtl_slim): Adjust dump_bb_info uses.
	* statistics.c (statistics_fini_pass_2): Use current_function_name
	to avoid including tree.h.
	(statistics_counter_event): Use function_name for the same reason.
	(statistics_histogram_event): Likewise.
	* tracer.c (tracer): Remove bogus gcc_assert.  Use brief_dump_cfg
	instead of dump_flow_info.
	* var-tracking.c (variable_tracking_main_1): Call dump_reg_info
	before dump_flow_info.
	* doc/cfg.texi: Update CFG documentation.
	* Makefile.in (RTL_H): Depend on FLAGS_H.
	(GIMPLE_H): Depend on TREE_H.
	(FUNCTION_H): Depend on VEC_H, vecir.h, INPUT_H and MACHMODE_H,
	but no longer on TREE_H.
	(C_COMMON_H): Depend on TREE_H.
	(cselib.o, cse.o, cfganal.o, loop-init.o, ira-conflicts.o,
	sched-deps.o, sched-vis.o): Fixup dependencies.

c-family/
	* c-common.h: Include tree.h.

cp/
	* decl.c (cp_finish_decl): Add FIXME at add_local_decl call site.

From-SVN: r189359
2012-07-08 10:06:14 +00:00
Steven Bosscher 78bde837ec cfglayout.h: Remove.
2012-06-17  Steven Bosscher  <steven@gcc.gnu.org>

	* cfglayout.h: Remove.
	* cfglayout.c: Remove.
	* function.h (struct function): Remove x_last_location field.
	* function.c: Do not include cfglayout.h.
	(expand_function_start): Do not call no-op force_next_line_note.
	(expand_function_end): Likewise.
	* cfgrtl.c: Do not include cfglayout.h.  Include gt-cfgrtl.h.
	(unlink_insn_chain): Moved here from cfglayout.c.
	(skip_insns_after_block, label_for_bb, record_effective_endpoints,
	into_cfg_layout_mode, outof_cfg_layout_mode,
	pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode,
	relink_block_chain, fixup_reorder_chain, verify_insn_chain,
	fixup_fallthru_exit_predecessor, force_one_exit_fallthru,
	cfg_layout_can_duplicate_bb_p, duplicate_insn_chain,
	cfg_layout_duplicate_bb, cfg_layout_initialize, break_superblocks,
	cfg_layout_finalize): Likewise.
	(rtl_can_remove_branch_p): Likewise.
	* rtl.h (insn_scope): Move prototype from cfglayout.h here.
	(duplicate_insn_chain): Likewise.
	(force_next_line_note): Remove prototype.
	* emit-rtl.c: Do not include tree-flow.h, egad.  Include vecprim.h.
	(last_location): Remove #define to emit.x_last_location.
	(force_next_line_note): Remove no-op function.
	(init_emit): Don't set x_last_location.
	(block_locators_locs, block_locators_blocks, locations_locators_locs,
	locations_locators_vals, prologue_locator, epilogue_locator,
	curr_location, last_location, curr_block, last_block, curr_rtl_loc):
	Move POD to here from cfglayout.c.
	(insn_locators_alloc, insn_locators_finalize, insn_locators_free,
	set_curr_insn_source_location, get_curr_insn_source_location,
	set_curr_insn_block, get_curr_insn_block, curr_insn_locator,
	locator_scope, insn_scope, locator_location, locator_line, insn_line,
	locator_file, insn_file, locator_eq): Move to here from cfglayout.c.
	* cfghooks.h: Remove double-include protection.
	(can_copy_bbs_p, copy_bbs): Move prototypes from cfglayout.h to here.
	* cfghooks.c (can_copy_bbs_p, copy_bbs): Move to here from cfglayout.c.
	* final.c: Do not include cfglayout.h.
	(choose_inner_scope, change_scope): Move to here from cfglayout.c.
	(reemit_insn_block_notes): Likewise.  Make static.
	* tree-flow.h (tree_could_trap_p, operation_could_trap_helper_p,
	operation_could_trap_p, tree_could_throw_p): Move from here...
	* tree.h: ... to here.
	* gengtype.c (open_base_files): Remove cfglayout.h from the list.
	* profile.c: Do not include cfghooks.h.
	* cfgloopmanip.c: Do not include cfglayout.h and cfghooks.h.
	* modulo-sched.c: Likewise.
	* loop-unswitch.c: Do not include cfglayout.h.
	* sched-ebb.c: Likewise.
	* tracer.c: Likewise.
	* ddg.c: Likewise.
	* tree-vect-loop-manip.c: Likewise.
	* loop-init.c: Likewise.
	* dwarf2out.c: Likewise.
	* hw-doloop.c: Likewise.
	* loop-unroll.c: Likewise.
	* cfgcleanup.c: Likewise.
	* bb-reorder.c: Likewise.
	* sched-rgn.c: Likewise.
	* tree-cfg.c: Likewise.
	* config/alpha/alpha.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/c6x/c6x.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/score/score.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* Makefile.in (CFGAYOUT_H): Remove, and fixup users.
	* config/rs6000/t-rs6000 (rs6000.o): Do not depend on cfglayout.h.
	* config/spu/t-spu-elf (spu.o: $): Likewise.
	* config/sparc/t-sparc (sparc.o): Do not depend on CFGLAYOUT_H.

From-SVN: r188712
2012-06-17 21:08:39 +00:00
Richard Guenther 225820eef4 re PR rtl-optimization/52803 (ICE: in ira, at ira.c:3616 with -fno-move-loop-invariants on almost any code)
2012-04-02  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52803
	* loop-init.c (gate_handle_loop2): Destroy loops here if
	we don't enter RTL loop optimizers.

	* gcc.dg/pr52803.c: New testcase.

From-SVN: r186080
2012-04-02 11:59:47 +00:00
Richard Guenther 7d776ee252 loop-init.c (loop_optimizer_init): If loops are preserved perform incremental initialization of required loop features.
2012-03-28  Richard Guenther  <rguenther@suse.de>

	* loop-init.c (loop_optimizer_init): If loops are preserved
	perform incremental initialization of required loop features.
	(loop_optimizer_finalize): If loops are to be preserved only
	clean up optional loop features.
	(rtl_loop_done): Forcefully free loops here.
	* cgraph.c (cgraph_release_function_body): Forcefully free
	loops.
	* cfgexpand.c (expand_gimple_cond): Properly add new basic-blocks
	to existing loops.
	(construct_init_block): Likewise.
	(construct_exit_block): Likewise.
	(gimple_expand_cfg): Clear LOOP_CLOSED_SSA loop state.  Cleanup
	the CFG after expanding.
	* cfgloop.c (verify_loop_structure): Calculate or verify
	dominators.  If we needed to calculate them, free them afterwards.
	* tree-pass.h (PROP_loops): New define.
	* tree-ssa-loop.c (pass_tree_loop_init): Provide PROP_loops.
	* basic-block.h (CLEANUP_CFG_CHANGED): New.
	* cfgcleanup.c (merge_blocks_move): Protect loop latches.
	(cleanup_cfg): If we did something and have loops around, fix
	them up.
	* cse.c (rest_of_handle_cse_after_global_opts): Call cleanup_cfg
	with CLEANUP_CFG_CHANGED.
	* cfghooks.c (merge_blocks): If we merge a loop header into
	its predecessor, update the loop structure.
	(duplicate_block): If we copy a loop latch, adjust loop state
	to note we may have multiple latches.
	(delete_basic_block): Mark loops for fixup if we remove a loop.
	* cfganal.c (forwarder_block_p): Protect loop latches, headers
	and preheaders.
	* cfgrtl.c (rtl_can_merge_blocks): Protect loop latches.
	(cfg_layout_can_merge_blocks_p): Likewise.
	* cprop.c (bypass_block): If we create a loop with multiple
	entries, mark it for removal.
	* except.c (emit_to_new_bb_before): Add the new basic-block
	to existing loops.
	* tree-eh.c (lower_resx): Likewise.
	* omp-low.c (finalize_task_copyfn): Do not copy PROP_loops.
	(expand_omp_taskreg): Likewise.
	* tree-inline.c (initialize_cfun): Likewise.
	* tree-mudflap.c (add_bb_to_loop): Prototype.
	(mf_build_check_statement_for): Properly add new basic-blocks
	to existing loops.
	* tree-ssa-threadupdate.c (thread_block): Mark loops for fixup
	if we remove a loop.
	(thread_through_loop_header): Likewise.
	* trans-mem.c (tm_log_emit_save_or_restores): Properly add
	new basic-blocks to existing loops.
	(expand_transaction): Likewise.
	* Makefile.in (except.o): Add $(CFGLOOP_H).
	(expr.o): Likewise.
	(cgraph.o): Likewise.
	(cprop.o): Likewise.
	(cfgexpand.o): Likewise.
	(cfganal.o): Likewise.
	(trans-mem.o): Likewise.
	(tree-eh.o): Likewise.

From-SVN: r185913
2012-03-28 12:14:26 +00:00
Richard Guenther 510dbcce34 cfgloop.c (verify_loop_structure): Verify dominators before using them.
2012-03-05  Richard Guenther  <rguenther@suse.de>

	* cfgloop.c (verify_loop_structure): Verify dominators before
	using them.
	* graphite-clast-to-gimple.c (graphite_verify): Do not verify
	dominators from here.
	* graphite-scop-detection.c (create_sese_edges): Likewise.
	* loop-doloop.c (doloop_optimize_loops): Likewise.
	* loop-init.c (loop_optimizer_init): Likewise.
	* loop-unroll.c (unroll_and_peel_loops): Likewise.
	* loop-unswitch.c (unswitch_loops): Likewise.
	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
	* tree-parloops.c (parallelize_loops): Likewise.  Verify
	only when checking is enabled.
	* tree-loop-distribution.c (tree_loop_distribution): Likewise.

From-SVN: r184937
2012-03-05 15:39:39 +00:00
David Li 22c5fa5fbf dumping cleanup phase 1 -- Removing TODO_dump_func
From-SVN: r175051
2011-06-14 19:39:36 +00:00
Eric Botcazou c7dd803e61 re PR tree-optimization/46494 (ICE: verify_flow_info failed when casting-out attribute noreturn with -fno-tree-ccp -fno-tree-fre -ftree-vrp)
PR tree-optimization/46494
	* loop-unroll.c (split_edge_and_insert): Adjust comment.
	* loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
	(pass_rtl_loop_done): Add TODO_verify_flow.
	* fwprop.c (pass_rtl_fwprop): Likewise.
	* modulo-sched.c (pass_sms): Likewise.
	* tree-ssa-dom.c (pass_dominator): Likewise.
	* tree-ssa-loop-ch.c (pass_ch): Likewise.
	* tree-ssa-loop.c (pass_complete_unrolli): Likewise.
	(pass_tree_loop_done): Likewise.
	* tree-ssa-pre.c (execute_pre): Likewise.
	* tree-ssa-reassoc.c (pass_reassoc): Likewise.
	* tree-ssa-sink.c (pass_sink_code): Likewise.
	* tree-vrp.c (pass_vrp): Likewise.

From-SVN: r170141
2011-02-14 17:59:10 +00:00
Jakub Jelinek d652f226fc Update Copyright years for files modified in 2010.
From-SVN: r168438
2011-01-03 21:52:22 +01:00
Laurynas Biveinis a9429e29f5 utils.c (init_gnat_to_gnu): Use typed GC allocation.
gcc/ada:

2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* gcc-interface/utils.c (init_gnat_to_gnu): Use typed GC
	allocation.
	(init_dummy_type): Likewise.
	(gnat_pushlevel): Likewise.

	* gcc-interface/trans.c (Attribute_to_gnu): Likewise.
	(Subprogram_Body_to_gnu): Likewise.
	(Compilation_Unit_to_gnu): Likewise.
	(start_stmt_group): Likewise.
	(extract_encoding): Likewise.
	(decode_name): Likewise.

	* gcc-interface/misc.c (gnat_printable_name): Likewise.

	* gcc-interface/decl.c (annotate_value): Likewise.

	* gcc-interface/ada-tree.h (struct lang_type): Add variable_size
	GTY option.
	(struct lang_decl): Likewise.
	(SET_TYPE_LANG_SPECIFIC): Use typed GC allocation.
	(SET_DECL_LANG_SPECIFIC): Likewise.

gcc/c-family:

2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* c-pragma.c (push_alignment): Use typed GC allocation.
	(handle_pragma_push_options): Likewise.

	* c-common.c (parse_optimize_options): Likewise.

	* c-common.h (struct sorted_fields_type): Add variable_size GTY
	option.

gcc/cp:

2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* typeck2.c (abstract_virtuals_error): Likewise.

	* pt.c (maybe_process_partial_specialization): Likewise.
	(register_specialization): Likewise.
	(add_pending_template): Likewise.
	(lookup_template_class): Likewise.
	(push_tinst_level): Likewise.

	* parser.c (cp_lexer_new_main): Likewise.
	(cp_lexer_new_from_tokens): Likewise.
	(cp_token_cache_new): Likewise.
	(cp_parser_context_new): Likewise.
	(cp_parser_new): Likewise.
	(cp_parser_nested_name_specifier_opt): Likewise.
	(cp_parser_template_id): Likewise.

	* name-lookup.c (binding_entry_make): Likewise.
	(binding_table_construct): Likewise.
	(binding_table_new): Likewise.
	(cxx_binding_make): Likewise.
	(pushdecl_maybe_friend): Likewise.
	(begin_scope): Likewise.
	(push_to_top_level): Likewise.

	* lex.c (init_reswords): Likewise.
	(retrofit_lang_decl): Likewise.
	(cxx_dup_lang_specific_decl): Likewise.
	(copy_lang_type): Likewise.
	(cxx_make_type): Likewise.

	* decl.c (make_label_decl): Likewise.
	(check_goto): Likewise.
	(start_preparsed_function): Likewise.
	(save_function_data): Likewise.

	* cp-tree.h (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.

	* cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.

	* class.c (finish_struct_1): Likewise.

	* cp-tree.h (struct lang_type): Add variable_size GTY option.
	(struct lang_decl): Likewise.

	* parser.c (cp_parser_new): Update comment to not reference
	ggc_alloc.

gcc/fortran:

2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* trans-types.c (gfc_get_nodesc_array_type): Use typed GC
	allocation.
	(gfc_get_array_type_bounds): Likewise.

	* trans-decl.c (gfc_allocate_lang_decl): Likewise.
	(gfc_find_module): Likewise.

	* f95-lang.c (pushlevel): Likewise.

	* trans.h (struct lang_type): Add variable_size GTY option.
	(struct lang_decl): Likewise.

gcc/java:

2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* jcf-reader.c (jcf_parse_constant_pool): Use typed GC allocation.

	* jcf-parse.c (java_parse_file): Likewise.
	(process_zip_dir): Likewise.

	* java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Likewise.
	(MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.

	* expr.c (add_type_assertion): Likewise.

	* decl.c (make_binding_level): Likewise.
	(java_dup_lang_specific_decl): Likewise.

	* constants.c (set_constant_entry): Likewise.
	(cpool_for_class): Likewise.

	* class.c (add_method_1): Likewise.
	(java_treetreehash_new): Likewise.

	* java-tree.h (struct lang_type): Add variable_size GTY option.
	(struct lang_decl): Likewise.

	* jch.h (struct cpool_entry): Likewise.

	* java-tree.h (java_treetreehash_create): Remove parameter ggc.

	* except.c (prepare_eh_table_type): Update
	java_treetreehash_create call.

	* class.c (add_method_1): Update java_treetreehash_create call.
	(java_treetreehash_create): Remove parameter gc.  Use
	htab_create_ggc.

gcc/lto:

2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* lto.c (lto_read_in_decl_state): Use typed GC allocation.
	(lto_file_read): Likewise.
	(new_partition): Likewise.
	(read_cgraph_and_symbols): Likewise.

gcc/objc:

2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
	allocation.

	* objc-act.c (objc_volatilize_decl): Likewise.
	(objc_build_string_object): Likewise.
	(hash_init): Likewise.
	(hash_enter): Likewise.
	(hash_add_attr): Likewise.
	(add_class): Likewise.
	(start_class): Likewise.

gcc/objcp:

2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* objcp-decl.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
	allocation.

gcc:

2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.

	* doc/gty.texi (GTY Options): Document typed GC allocation and
	variable_size GTY option.

	* ggc-internal.h: New.

	* ggc.h: Update copyright year.
	(digit_string): Move to stringpool.c.
	(ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
	(gt_pch_save_stringpool, gt_pch_fixup_stringpool)
	(gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
	(init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
	(ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
	(ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
	(ggc_force_collect, ggc_get_size, ggc_statistics)
	(ggc_print_common_statistics): Move to ggc-internal.h.
	(digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
	(ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
	(GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
	(ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
	(ggc_min_heapsize_heuristic, ggc_alloc_zone)
	(ggc_alloc_zone_pass_stat): Remove.
	(ggc_internal_alloc_stat, ggc_internal_alloc)
	(ggc_internal_cleared_alloc_stat): New.
	(GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
	(ggc_internal_vec_alloc_stat)
	(ggc_internal_cleared_vec_alloc_stat)
	(ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
	(ggc_alloc_atomic_stat, ggc_alloc_atomic)
	(ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
	(ggc_cleared_alloc_ptr_array_two_args): New.
	(htab_create_ggc, splay_tree_new_ggc): Redefine.
	(ggc_splay_alloc): Change the type of the first argument to
	enum gt_types_enum.
	(ggc_alloc_string): Make macro.
	(ggc_alloc_string_stat): New.
	(ggc_strdup): Redefine.
	(rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
	(ggc_alloc_rtvec_sized): New.
	(ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
	(ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
	(ggc_internal_cleared_alloc_zone_stat)
	(ggc_internal_zone_alloc_stat)
	(ggc_internal_zone_cleared_alloc_stat)
	(ggc_internal_zone_vec_alloc_stat)
	(ggc_alloc_zone_rtx_def_stat)
	(ggc_alloc_zone_tree_node_stat)
	(ggc_alloc_zone_cleared_tree_node_stat)
	(ggc_alloc_cleared_gimple_statement_d_stat): New.

	* ggc-common.c: Include ggc-internal.h.
	(ggc_internal_cleared_alloc_stat): Rename from
	ggc_alloc_cleared_stat.
	(ggc_realloc_stat): Use ggc_internal_alloc_stat.
	(ggc_calloc): Remove.
	(ggc_cleared_alloc_htab_ignore_args): New.
	(ggc_cleared_alloc_ptr_array_two_args): New.
	(ggc_splay_alloc): Add obj_type parameter.
	(init_ggc_heuristics): Formatting fixes.

	* ggc-none.c: Update copyright year.
	(ggc_alloc_stat): Rename to ggc_alloc_stat.
	(ggc_alloc_cleared_stat): Rename to
	ggc_internal_cleared_alloc_stat.
	(struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.

	* ggc-page.c: Update copyright year.  Include ggc-internal.h.
	Remove references to ggc_alloc in comments.
	(ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
	(ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
	(new_ggc_zone, destroy_ggc_zone): Remove.
	(struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.

	* ggc-zone.c: Include ggc-internal.h.  Remove references to
	ggc_alloc in comments.
	(ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
	(ggc_internal_alloc_zone_pass_stat): New.
	(ggc_internal_cleared_alloc_zone_stat): New.
	(ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
	(ggc_alloc_stat): Rename ggc_internal_alloc_stat.
	(new_ggc_zone, destroy_ggc_zone): Remove.

	* stringpool.c: Update copyright year.  Include ggc-internal.h
	(digit_vector): Make static.
	(digit_string): Moved from ggc.h.
	(stringpool_ggc_alloc): Use ggc_alloc_atomic.
	(ggc_alloc_string): Rename to ggc_alloc_string_stat.

	* Makefile.in (GGC_INTERNAL_H): New.
	(ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
	$(GGC_INTERNAL_H) to dependencies.

	* gentype.c: Update copyright year.
	(walk_type): Accept variable_size GTY option.
	(USED_BY_TYPED_GC_P): New macro.
	(write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
	whitespace at the end of strings.
	(get_type_specifier, variable_size_p): New functions.
	(alloc_quantity, alloc_zone): New enums.
	(write_typed_alloc_def): New function.
	(write_typed_struct_alloc_def): Likewise.
	(write_typed_typed_typedef_alloc_def): Likewise.
	(write_typed_alloc_defns): Likewise.
	(output_typename, write_splay_tree_allocator_def): Likewise.
	(write_splay_tree_allocators): Likewise.
	(main): Call write_typed_alloc_defns and
	write_splay_tree_allocators.

	* lto-streamer.h (lto_file_decl_data_ptr): New.

	* passes.c (order): Define using cgraph_node_ptr.

	* strinpool.c (struct string_pool_data): Declare nested_ptr using
	ht_identifier_ptr.

	* gimple.h (union gimple_statement_d): Likewise.

	* rtl.h (struct rtx_def): Likewise.
	(struct rtvec_def): Likewise.

	* tree.h (union tree_node): Likewise.

	* tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.

	* cfgloop.c (record_loop_exits): Use htab_create_ggc.

	* tree-scalar-evolution.c (scev_initialize): Likewise.

	* alias.c (record_alias_subset): Update splay_tree_new_ggc call.

	* dwarf2asm.c (dw2_force_const_mem): Likewise.

	* omp-low.c (lower_omp_critical): Likewise.

	* bitmap.h (struct bitmap_head_def): Update comment to not
	reference ggc_alloc.

	* config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.

	* ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.

	* ipa-prop.c (duplicate_ggc_array): Rename to
	duplicate_ipa_jump_func_array.  Use typed GC allocation.
	(ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.

	* gimple.c (gimple_alloc_stat): Use
	ggc_alloc_cleared_gimple_statement_d_stat.

	* varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.

	* tree.c (make_node_stat): Use
	ggc_alloc_zone_cleared_tree_node_stat.
	(make_tree_vec_stat): Likewise.
	(build_vl_exp_stat): Likewise.
	(copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
	(make_tree_binfo_stat): Likewise.
	(tree_cons_stat): Likewise.

	* rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
	(shallow_copy_rtx_stat): Likewise.
	(make_node_stat): Likewise.

	* lto-symtab.c: Fix comment.

	* tree-cfg.c (create_bb): Update comment to not reference
	ggc_alloc_cleared.
	* tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is
	value.

	* varpool.c (varpool_node): Use typed GC allocation.
	(varpool_extra_name_alias): Likewise.

	* varasm.c (emutls_decl): Likewise.
	(get_unnamed_section): Likewise.
	(get_noswitch_section): Likewise.
	(get_section): Likewise.
	(get_block_for_section): Likewise.
	(build_constant_desc): Likewise.
	(create_constant_pool): Likewise.
	(force_const_mem): Likewise.

	* tree.c (build_vl_exp_stat): Likewise.
	(build_real): Likewise.
	(build_string): Likewise.
	(decl_debug_expr_insert): Likewise.
	(decl_value_expr_insert): Likewise.
	(type_hash_add): Likewise.
	(build_omp_clause): Likewise.

	* tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.

	* tree-ssa.c (init_tree_ssa): Likewise.

	* tree-ssa-structalias.c (heapvar_insert): Likewise.

	* tree-ssa-operands.c (ssa_operand_alloc): Likewise.

	* tree-ssa-loop-niter.c (record_estimate): Likewise.

	* tree-ssa-alias.c (get_ptr_info): Likewise.

	* tree-scalar-evolution.c (new_scev_info_str): Likewise.

	* tree-phinodes.c (allocate_phi_node): Likewise.

	* tree-iterator.c (tsi_link_before): Likewise.
	(tsi_link_after): Likewise.

	* tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.

	* tree-dfa.c (create_var_ann): Likewise.

	* tree-cfg.c (create_bb): Likewise.

	* toplev.c (alloc_for_identifier_to_locale): Likewise.
	(general_init): Likewise.

	* stringpool.c (stringpool_ggc_alloc): Likewise.
	(gt_pch_save_stringpool): Likewise.

	* sese.c (if_region_set_false_region): Likewise.

	* passes.c (do_per_function_toporder): Likewise.

	* optabs.c (set_optab_libfunc): Likewise.
	(set_conv_libfunc): Likewise.

	* lto-symtab.c (lto_symtab_register_decl): Likewise.

	* lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
	(input_eh_region): Likewise.
	(input_eh_lp): Likewise.
	(make_new_block): Likewise.
	(unpack_ts_real_cst_value_fields): Likewise.

	* lto-section-in.c (lto_new_in_decl_state): Likewise.

	* lto-cgraph.c (input_node_opt_summary): Likewise.

	* loop-init.c (loop_optimizer_init): Likewise.

	* lambda.h (lambda_vector_new): Likewise.

	* lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.

	* ira.c (update_equiv_regs): Likewise.

	* ipa.c (cgraph_node_set_new): Likewise.
	(cgraph_node_set_add): Likewise.
	(varpool_node_set_new): Likewise.
	(varpool_node_set_add): Likewise.

	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
	(duplicate_ipa_jump_func_array): Likewise.
	(ipa_read_node_info): Likewise.

	* ipa-cp.c (ipcp_create_replace_map): Likewise.

	* integrate.c (get_hard_reg_initial_val): Likewise.

	* gimple.c (gimple_alloc_stat): Likewise.
	(gimple_build_omp_for): Likewise.
	(gimple_seq_alloc): Likewise.
	(gimple_copy): Likewise.

	* gimple-iterator.c (gsi_insert_before_without_update): Likewise.
	(gsi_insert_after_without_update): Likewise.

	* function.c (add_frame_space): Likewise.
	(insert_temp_slot_address): Likewise.
	(assign_stack_temp_for_type): Likewise.
	(allocate_struct_function): Likewise.
	(types_used_by_var_decl_insert): Likewise.

	* except.c (init_eh_for_function): Likewise.
	(gen_eh_region): Likewise.
	(gen_eh_region_catch): Likewise.
	(gen_eh_landing_pad): Likewise.
	(add_call_site): Likewise.

	* emit-rtl.c (get_mem_attrs): Likewise.
	(get_reg_attrs): Likewise.
	(start_sequence): Likewise.
	(init_emit): Likewise.

	* dwarf2out.c (new_cfi): Likewise.
	(queue_reg_save): Likewise.
	(dwarf2out_frame_init): Likewise.
	(new_loc_descr): Likewise.
	(find_AT_string): Likewise.
	(new_die): Likewise.
	(add_var_loc_to_decl): Likewise.
	(clone_die): Likewise.
	(clone_as_declaration): Likewise.
	(break_out_comdat_types): Likewise.
	(new_loc_list): Likewise.
	(loc_descriptor): Likewise.
	(add_loc_descr_to_each): Likewise.
	(add_const_value_attribute): Likewise.
	(tree_add_const_value_attribute): Likewise.
	(add_comp_dir_attribute): Likewise.
	(add_name_and_src_coords_attributes): Likewise.
	(lookup_filename): Likewise.
	(store_vcall_insn): Likewise.
	(dwarf2out_init): Likewise.

	* dbxout.c (dbxout_init): Likewise.

	* config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.

	* config/sparc/sparc.c (sparc_init_machine_status): Likewise.

	* config/score/score7.c (score7_output_external): Likewise.

	* config/score/score3.c (score3_output_external): Likewise.

	* config/s390/s390.c (s390_init_machine_status): Likewise.

	* config/rs6000/rs6000.c (builtin_function_type): Likewise.
	(rs6000_init_machine_status): Likewise.
	(output_toc): Likewise.

	* config/pa/pa.c (pa_init_machine_status): Likewise.
	(get_deferred_plabel): Likewise.

	* config/moxie/moxie.c (moxie_init_machine_status): Likewise.

	* config/mmix/mmix.c (mmix_init_machine_status): Likewise.

	* config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.

	* config/mep/mep.c (mep_init_machine_status): Likewise.
	(mep_note_pragma_flag): Likewise.

	* config/m32c/m32c.c (m32c_init_machine_status): Likewise.

	* config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.

	* config/ia64/ia64.c (ia64_init_machine_status): Likewise.

	* config/i386/winnt.c (i386_pe_record_external_function): Likewise.
	(i386_pe_maybe_record_exported_symbol): Likewise.

	* config/i386/i386.c (get_dllimport_decl): Likewise.
	(ix86_init_machine_status): Likewise.
	(assign_386_stack_local): Likewise.

	* config/frv/frv.c (frv_init_machine_status): Likewise.

	* config/darwin.c (machopic_indirection_name): Likewise.

	* config/cris/cris.c (cris_init_machine_status): Likewise.

	* config/bfin/bfin.c (bfin_init_machine_status): Likewise.

	* config/avr/avr.c (avr_init_machine_status): Likewise.

	* config/arm/arm.c (arm_init_machine_status): Likewise.

	* config/alpha/alpha.c (alpha_init_machine_status): Likewise.
	(alpha_need_linkage): Likewise.
	(alpha_use_linkage): Likewise.

	* cgraph.c (cgraph_allocate_node): Likewise.
	(cgraph_create_edge_1): Likewise.
	(cgraph_create_indirect_edge): Likewise.
	(cgraph_add_asm_node): Likewise.

	* cfgrtl.c (init_rtl_bb_info): Likewise.

	* cfgloop.c (alloc_loop): Likewise.
	(rescan_loop_exit): Likewise.

	* cfg.c (init_flow): Likewise.
	(alloc_block): Likewise.
	(unchecked_make_edge): Likewise.

	* c-parser.c (c_parse_init): Likewise.
	(c_parse_file): Likewise.

	* c-decl.c (bind): Likewise.
	(record_inline_static): Likewise.
	(push_scope): Likewise.
	(make_label): Likewise.
	(lookup_label_for_goto): Likewise.
	(finish_struct): Likewise.
	(finish_enum): Likewise.
	(c_push_function_context): Likewise.

	* bitmap.c (bitmap_element_allocate): Likewise.
	(bitmap_gc_alloc_stat): Likewise.

	* alias.c (record_alias_subset): Likewise.
	(init_alias_analysis): Likewise.

include:

2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* splay-tree.h: Update copyright years.
	(splay_tree_s): Document fields.
	(splay_tree_new_typed_alloc): New.

	* hashtab.h: Update copyright years.
	(htab_create_typed_alloc): New.

libcpp:

2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* include/symtab.h (ht_identifier_ptr): New.

libiberty:

2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* splay-tree.c: Update copyright years.
	(splay_tree_new_typed_alloc): New.
	(splay_tree_new_with_allocator): Use it.

	* hashtab.c: Update copyright years.
	(htab_create_typed_alloc): New.
	(htab_create_alloc): Use it.

	* functions.texi: Regenerate.

From-SVN: r160425
2010-06-08 07:25:24 +00:00