I've pushed the following 44 patches to the git branch "dmalcolm/gimple-classes".
This is a work-in-progress towards making the rest of the gimple_assign_* accessors require a gassign * (or a const gassign *). Successfully bootstrapped®rtested the combination of the 44 patches upon the branch on x86_64-unknown-linux-gnu (Fedora 20) - same results relative to an unpatched control bootstrap of trunk's r216746. David Malcolm (44): Use gassign * rather than gimple in various places Make replace_call_with_call_and_fold work on a gcall * gimple-low.c: Use gcall * in a few places Use gcall * in more places More gcall * Yet more gcall * Add casting variants of various gimple_assign_*_p functions tree-ssa-forwprop.c: Use gassign * in various places auto-profile.c: Use gassign gimplify-me.c: Use gassign gimple-ssa-isolate-paths.c: Use gassign gimple-fold.c: Use gassign rewrite_to_defined_overflow takes a gassign * gimple-match-head.c: Use gassign graphite-sese-to-poly.c: Use gasssign tree-object-size.c: Use gassign tree-affine.c: Use gassign tree-call-cdce.c: Use gassign tree-data-ref.c: Use gassign tree-if-conv.c: Use gassign tree-eh.c: Use gassign tree-nested: Use gassign tree-ssa-alias.c: Use gassign tree-ssa-ccp.c: Use gassign tree-ssa-coalesce.c: Use gassign tree-ssa-copy.c: Use gassign tree-ssa-dce.c: Use gassign tree-ssa-dom.c: Use gassign tree-ssa-dse.c: Use gassign gimple-walk.c: Use gassign ipa-polymorphic-call.c: Use gassign Fix issues with gimple_assign_single_p and gimple_assign_load_p Use gassign within gimple_expr_type build_assign and build_type_cast take const gassign * gimple_assign_rhs_to_tree takes a const gassign * cfgexpand.c: Use gassign * ipa-split.c: Use gassign ipa-inline-analysis.c: Use gassign ipa-prop.c: Use gassign ipa-icf-gimple.c: Use gassign omp-low.c: Use gassign predict.c: Use gassign sese.c: Use gassign trans-mem.c: Use gassign gcc/ChangeLog.gimple-classes | 648 +++++++++++++++++++++++++++++++++++++++++ gcc/asan.c | 56 ++-- gcc/auto-profile.c | 15 +- gcc/cfgexpand.c | 32 +- gcc/cfgexpand.h | 2 +- gcc/cgraph.c | 2 +- gcc/cgraphunit.c | 4 +- gcc/config/i386/i386.c | 2 +- gcc/gimple-builder.c | 11 +- gcc/gimple-builder.h | 14 +- gcc/gimple-fold.c | 217 +++++++------- gcc/gimple-fold.h | 2 +- gcc/gimple-low.c | 36 ++- gcc/gimple-match-head.c | 31 +- gcc/gimple-ssa-isolate-paths.c | 12 +- gcc/gimple-walk.c | 82 +++--- gcc/gimple.c | 24 +- gcc/gimple.h | 109 ++++--- gcc/gimplify-me.c | 12 +- gcc/gimplify.c | 2 +- gcc/graphite-sese-to-poly.c | 41 +-- gcc/ipa-icf-gimple.c | 7 +- gcc/ipa-icf-gimple.h | 2 +- gcc/ipa-inline-analysis.c | 56 ++-- gcc/ipa-polymorphic-call.c | 34 ++- gcc/ipa-prop.c | 90 +++--- gcc/ipa-split.c | 30 +- gcc/omp-low.c | 35 +-- gcc/predict.c | 15 +- gcc/sese.c | 4 +- gcc/trans-mem.c | 32 +- gcc/tree-affine.c | 5 +- gcc/tree-call-cdce.c | 11 +- gcc/tree-cfg.c | 13 +- gcc/tree-cfgcleanup.c | 6 +- gcc/tree-cfgcleanup.h | 2 +- gcc/tree-data-ref.c | 11 +- gcc/tree-eh.c | 8 +- gcc/tree-emutls.c | 2 +- gcc/tree-if-conv.c | 49 ++-- gcc/tree-inline.c | 15 +- gcc/tree-loop-distribution.c | 2 +- gcc/tree-nested.c | 6 +- gcc/tree-nrv.c | 12 +- gcc/tree-object-size.c | 45 +-- gcc/tree-parloops.c | 8 +- gcc/tree-scalar-evolution.c | 7 +- gcc/tree-ssa-alias.c | 34 ++- gcc/tree-ssa-ccp.c | 39 +-- gcc/tree-ssa-coalesce.c | 15 +- gcc/tree-ssa-copy.c | 26 +- gcc/tree-ssa-copyrename.c | 6 +- gcc/tree-ssa-dce.c | 32 +- gcc/tree-ssa-dom.c | 84 +++--- gcc/tree-ssa-dse.c | 13 +- gcc/tree-ssa-forwprop.c | 110 +++---- gcc/tree-ssa-loop-im.c | 14 +- gcc/tree-ssa-loop-niter.c | 4 +- gcc/tree-ssa-math-opts.c | 33 ++- gcc/tree-ssa-phiopt.c | 3 +- gcc/tree-ssa-pre.c | 2 +- gcc/tree-ssa-propagate.c | 6 +- gcc/tree-ssa-reassoc.c | 5 +- gcc/tree-ssa-strlen.c | 22 +- gcc/tree-ssa.c | 2 +- gcc/tree-switch-conversion.c | 4 +- gcc/tree-vect-data-refs.c | 8 +- gcc/tree-vect-generic.c | 4 +- gcc/tree-vect-loop-manip.c | 4 +- gcc/tree-vect-loop.c | 8 +- gcc/tree-vect-patterns.c | 15 +- gcc/tree-vect-slp.c | 7 +- gcc/tree-vect-stmts.c | 15 +- gcc/tree-vrp.c | 4 +- gcc/tsan.c | 10 +- gcc/ubsan.c | 2 +- 76 files changed, 1590 insertions(+), 802 deletions(-) -- 1.7.11.7