I have a series of 13 follow-up patches which remove the remaining "cfun"-using macros from basic-block.h
Successfully bootstrapped®tested on x86_64-unknown-linux-gnu. These were pre-approved in stage1, and are mechanical in nature [1] I'd like to apply these to trunk now, but given that we're now in stage3, do I need to wait until the next stage1? The first 4 patches rename various "_for_function|_FOR_FUNCTION" macros to "_for_fn|_FOR_FN" for consistency with the earlier patches in this thread. The remaining patches eliminate cfun-using macros in favor of the "_for_fn|_FOR_FN" variant, making uses of cfun explicit. There are still some macros in function.h that implicitly use cfun, but it's less clear what to replace them with. Note to self: here's a grep invocation for ensuring that no new uses sneak into the sources: for m in \ basic_block_info_for_function BASIC_BLOCK_FOR_FUNCTION \ SET_BASIC_BLOCK_FOR_FUNCTION last_basic_block_for_function \ label_to_block_map_for_function profile_status_for_function \ SET_BASIC_BLOCK BASIC_BLOCK basic_block_info label_to_block_map \ profile_status last_basic_block FOR_EACH_BB FOR_EACH_BB_REVERSE \ FOR_ALL_BB ; do grep -nH -E -w $m \ gcc/*.[ch] gcc/config/*.[ch] gcc/config/*/*.{c,h,md} ; done (this currently has 11 false-positives) [1] with one exception, in patch 10 in gcc/ira-emit.c (ira_emit) where I introduced a new local to avoid overlong lines. David Malcolm (13): Rename macros (basic_block_info_for_function, BASIC_BLOCK_FOR_FUNCTION, SET_BASIC_BLOCK_FOR_FUNCTION) Rename last_basic_block_for_function to last_basic_block_for_fn. Rename label_to_block_map_for_function to label_to_block_map_for_fn. Rename profile_status_for_function to profile_status_for_fn. Eliminate SET_BASIC_BLOCK macro. Eliminate BASIC_BLOCK macro. Eliminate basic_block_info macro. Eliminate label_to_block_map macro. Eliminate profile_status macro. Eliminate last_basic_block macro. Eliminate FOR_EACH_BB macro. Eliminate FOR_EACH_BB_REVERSE macro. Eliminate FOR_ALL_BB macro. gcc/alias.c | 2 +- gcc/asan.c | 6 +- gcc/auto-inc-dec.c | 2 +- gcc/basic-block.h | 32 +++------ gcc/bb-reorder.c | 29 ++++---- gcc/bt-load.c | 45 ++++++------ gcc/caller-save.c | 8 +-- gcc/cfg.c | 32 ++++----- gcc/cfganal.c | 35 +++++----- gcc/cfgbuild.c | 12 ++-- gcc/cfgcleanup.c | 6 +- gcc/cfgexpand.c | 14 ++-- gcc/cfghooks.c | 16 ++--- gcc/cfgloop.c | 20 +++--- gcc/cfgloopanal.c | 8 +-- gcc/cfgloopmanip.c | 6 +- gcc/cfgrtl.c | 61 ++++++++-------- gcc/cgraphbuild.c | 8 +-- gcc/combine-stack-adj.c | 2 +- gcc/combine.c | 8 +-- gcc/config/arm/arm.c | 4 +- gcc/config/bfin/bfin.c | 4 +- gcc/config/c6x/c6x.c | 6 +- gcc/config/epiphany/resolve-sw-modes.c | 6 +- gcc/config/frv/frv.c | 8 +-- gcc/config/i386/i386.c | 2 +- gcc/config/ia64/ia64.c | 6 +- gcc/config/mips/mips.c | 8 +-- gcc/config/picochip/picochip.c | 2 +- gcc/config/rs6000/rs6000.c | 2 +- gcc/config/s390/s390.c | 4 +- gcc/config/sh/sh.c | 2 +- gcc/config/spu/spu.c | 6 +- gcc/config/tilegx/tilegx.c | 4 +- gcc/config/tilepro/tilepro.c | 4 +- gcc/coverage.c | 2 +- gcc/cprop.c | 23 ++++--- gcc/cse.c | 8 +-- gcc/dce.c | 10 +-- gcc/df-core.c | 68 +++++++++--------- gcc/df-problems.c | 54 +++++++-------- gcc/df-scan.c | 42 ++++++----- gcc/df.h | 2 +- gcc/dominance.c | 37 +++++----- gcc/domwalk.c | 2 +- gcc/dse.c | 14 ++-- gcc/except.c | 2 +- gcc/final.c | 6 +- gcc/function.c | 16 ++--- gcc/gcse.c | 54 ++++++++------- gcc/gimple-iterator.c | 2 +- gcc/gimple-ssa-isolate-paths.c | 4 +- gcc/gimple-streamer-in.c | 4 +- gcc/gimple.c | 8 ++- gcc/graph.c | 6 +- gcc/graphite-scop-detection.c | 6 +- gcc/graphite-sese-to-poly.c | 6 +- gcc/graphite.c | 6 +- gcc/haifa-sched.c | 4 +- gcc/hw-doloop.c | 6 +- gcc/ifcvt.c | 2 +- gcc/init-regs.c | 2 +- gcc/internal-fn.c | 6 +- gcc/ipa-inline-analysis.c | 4 +- gcc/ipa-prop.c | 2 +- gcc/ipa-pure-const.c | 2 +- gcc/ipa-split.c | 13 ++-- gcc/ipa-utils.c | 8 +-- gcc/ira-build.c | 15 ++-- gcc/ira-costs.c | 2 +- gcc/ira-emit.c | 24 ++++--- gcc/ira.c | 42 ++++++----- gcc/jump.c | 2 +- gcc/lcm.c | 115 ++++++++++++++++++------------- gcc/loop-init.c | 6 +- gcc/loop-invariant.c | 2 +- gcc/loop-unroll.c | 16 +++-- gcc/lower-subreg.c | 8 +-- gcc/lra-assigns.c | 2 +- gcc/lra-coalesce.c | 4 +- gcc/lra-constraints.c | 4 +- gcc/lra-eliminations.c | 2 +- gcc/lra-lives.c | 4 +- gcc/lra-spills.c | 6 +- gcc/lra.c | 10 +-- gcc/lto-streamer-in.c | 28 ++++---- gcc/lto-streamer-out.c | 8 +-- gcc/mcf.c | 4 +- gcc/mode-switching.c | 27 ++++---- gcc/modulo-sched.c | 2 +- gcc/omp-low.c | 6 +- gcc/optabs.c | 2 +- gcc/postreload-gcse.c | 4 +- gcc/postreload.c | 4 +- gcc/predict.c | 54 +++++++-------- gcc/profile.c | 12 ++-- gcc/recog.c | 6 +- gcc/ree.c | 2 +- gcc/reg-stack.c | 6 +- gcc/regcprop.c | 8 +-- gcc/reginfo.c | 2 +- gcc/regrename.c | 12 ++-- gcc/regstat.c | 8 +-- gcc/reload1.c | 10 +-- gcc/resource.c | 13 ++-- gcc/sched-ebb.c | 4 +- gcc/sched-int.h | 5 +- gcc/sched-rgn.c | 103 +++++++++++++++------------ gcc/sched-vis.c | 2 +- gcc/sel-sched-dump.c | 2 +- gcc/sel-sched-ir.c | 35 +++++----- gcc/sel-sched.c | 22 +++--- gcc/sese.c | 6 +- gcc/stack-ptr-mod.c | 2 +- gcc/store-motion.c | 38 +++++----- gcc/testsuite/g++.dg/plugin/selfassign.c | 2 +- gcc/testsuite/gcc.dg/plugin/selfassign.c | 2 +- gcc/tracer.c | 8 +-- gcc/trans-mem.c | 15 ++-- gcc/tree-call-cdce.c | 2 +- gcc/tree-cfg.c | 108 +++++++++++++++-------------- gcc/tree-cfgcleanup.c | 16 ++--- gcc/tree-complex.c | 6 +- gcc/tree-dfa.c | 6 +- gcc/tree-eh.c | 6 +- gcc/tree-emutls.c | 2 +- gcc/tree-if-conv.c | 2 +- gcc/tree-inline.c | 32 +++++---- gcc/tree-into-ssa.c | 45 ++++++------ gcc/tree-loop-distribution.c | 2 +- gcc/tree-nrv.c | 6 +- gcc/tree-object-size.c | 2 +- gcc/tree-outof-ssa.c | 6 +- gcc/tree-profile.c | 2 +- gcc/tree-scalar-evolution.c | 2 +- gcc/tree-sra.c | 14 ++-- gcc/tree-ssa-ccp.c | 6 +- gcc/tree-ssa-coalesce.c | 6 +- gcc/tree-ssa-copy.c | 2 +- gcc/tree-ssa-copyrename.c | 4 +- gcc/tree-ssa-dce.c | 13 ++-- gcc/tree-ssa-dom.c | 8 +-- gcc/tree-ssa-forwprop.c | 2 +- gcc/tree-ssa-live.c | 32 ++++----- gcc/tree-ssa-loop-im.c | 8 +-- gcc/tree-ssa-loop-manip.c | 24 +++---- gcc/tree-ssa-math-opts.c | 10 +-- gcc/tree-ssa-pre.c | 16 ++--- gcc/tree-ssa-propagate.c | 8 +-- gcc/tree-ssa-reassoc.c | 8 ++- gcc/tree-ssa-sccvn.c | 2 +- gcc/tree-ssa-sink.c | 4 +- gcc/tree-ssa-structalias.c | 4 +- gcc/tree-ssa-tail-merge.c | 32 ++++----- gcc/tree-ssa-ter.c | 2 +- gcc/tree-ssa-threadupdate.c | 10 +-- gcc/tree-ssa-uncprop.c | 9 +-- gcc/tree-ssa-uninit.c | 4 +- gcc/tree-ssa.c | 6 +- gcc/tree-stdarg.c | 8 +-- gcc/tree-switch-conversion.c | 2 +- gcc/tree-vect-generic.c | 2 +- gcc/tree-vectorizer.c | 6 +- gcc/tree-vrp.c | 20 +++--- gcc/tsan.c | 2 +- gcc/ubsan.c | 2 +- gcc/value-prof.c | 6 +- gcc/var-tracking.c | 28 ++++---- gcc/vtable-verify.c | 2 +- gcc/web.c | 6 +- 170 files changed, 1112 insertions(+), 1030 deletions(-) -- 1.7.11.7