public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [patch 0/9] Flattening and initial module rebuilding
@ 2015-07-07 13:40 Andrew MacLeod
  2015-07-07 13:43 ` [patch 1/9] header additions and aggregators Andrew MacLeod
                   ` (9 more replies)
  0 siblings, 10 replies; 22+ messages in thread
From: Andrew MacLeod @ 2015-07-07 13:40 UTC (permalink / raw)
  To: gcc-patches

This is a series of 9 patches which does some flattening, some module 
building, and some basic cleanups.

  I am presenting them as 9 patches for easier review. The latter couple 
of patches affect a lot of the same files that follow on patches then 
adjust, I've decided NOT to put the automated changes in with each of 
those patches.

There are 8 patches showing the key changes, and then the 9th patch is 
an aggregate of the first 8 key changes, plus the final result of the 
impact on all the source files.  This is the only patch I'd like to commit.

  The automated tools which generate the source changes have been 
significantly enhanced.  When a header is flattened, the source file is 
checked for the existence of the headers which need moving, and any 
which are already present are left if they are in the right order. Any 
duplicate are also removed.

  A similar process is used when an aggregation file like backend.h or 
ssa.h is processed. Any occurrences of the aggregated headers are 
removed from the source file so there are no duplicates.  The aggregated 
headers are typically only placed in a source file if 3 or more of the 
headers would be replaced.  (ie, if only bitmap.h is included, I don't 
just blindly put backend.h in the file.)   This number came from 
analysis of a fully flattened and include-reduced tree, and seemed to be 
the sweet spot.

  With the aggregation and flattening, the order of some includes can 
get shifted around with other files in between, so the tools also ensure 
there is a "blessed" order which will make sure than any pre-reqs are 
always available.  Right now, its primarily:

config.h
system.h
coretypes.h
backend.h
tree.h
gimple.h
rtl.h
df.h
ssa.h

And if any of the aggregators are not present, then any headers which 
make up the aggregator are in the same relative position.

The tools actually produced all these patches with no tweaking to solve 
compilation failures.. which was very helpful.  The old ones needed some 
guidance and were a bit finicky.

I can adjust any of this quite easily, or present them in a different 
way if you don't like it this way.  Again, my goal is to check in just 
the final patch which does all the work of first 8 patches.    It would 
be a lot less turmoil on the branch.   I can do it in smaller chunks if 
need be.

Andrew

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2015-07-09 18:00 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-07 13:40 [patch 0/9] Flattening and initial module rebuilding Andrew MacLeod
2015-07-07 13:43 ` [patch 1/9] header additions and aggregators Andrew MacLeod
2015-07-07 13:44 ` [patch 2/9] flatten regset.h Andrew MacLeod
2015-07-07 13:45 ` [patch 3/9] Flatten lra-int.h Andrew MacLeod
2015-07-07 13:46 ` [patch 4/9] Flatten sel-sched-dump.h and sel-sched-ir.h Andrew MacLeod
2015-07-07 14:01   ` Alexander Monakov
2015-07-07 14:07     ` Andrew MacLeod
2015-07-07 13:46 ` [patch 5/9] Flatten ira-int.h Andrew MacLeod
2015-07-07 13:47 ` [patch 6/9] Flatten gimple-streamer.h Andrew MacLeod
2015-07-07 13:49 ` [patch 7/9] Flatten cfgloop.h Andrew MacLeod
2015-07-07 13:50 ` [patch 8/9] Flatten df.h Andrew MacLeod
2015-07-07 13:51 ` [patch 9/9] Final patch with all changes Andrew MacLeod
2015-07-07 22:03   ` Pedro Alves
2015-07-07 22:10     ` Andrew MacLeod
2015-07-07 22:21 ` [patch 0/9] Flattening and initial module rebuilding Jeff Law
2015-07-07 23:53   ` Andrew MacLeod
2015-07-08 22:43     ` Jeff Law
2015-07-09  2:43       ` Andrew MacLeod
2015-07-09 16:29         ` Jeff Law
2015-07-09 17:06         ` Andrew MacLeod
2015-07-09 17:48           ` Jeff Law
2015-07-09 18:00             ` Andrew MacLeod

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).