This is a suggestion from item 108 of the "old PROBLEMS" file that actually still makes a lot of sense, for a change:
---------------------------------------- Can speed up flow analysis by making a table saying which register is set and which registers are used by each instruction that only sets one register and only uses two. This way avoid the tree walk for such instructions (most instructions). ---------------------------------------- As it is now, we actually have this - sometimes. The above is how we compute liveness in df.c, and indeed it would be nice to unify these parts of flow.c and df.c that are basically duplicating code. Liveness is computed quite a few times in the RTL path, so speeding it up is a Good Thing. -- Summary: Suggestion for speeding up data flow analysis Product: gcc Version: unknown Status: UNCONFIRMED Severity: enhancement Priority: P2 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: steven at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19207