On Mon, Jul 24, 2017 at 10:28:06AM +0100, Richard Sandiford wrote: > > So what does it change in the interfaces we use? I couldn't find an > > update of documentation, maybe I missed it (it's a huge series :-) ) > > An overview of the new interfaces (and how they are used) would help. > > You didn't miss one. I was hoping the function comments would be enough, > but on reflection, they're not. I've attached a patch for rtl.texi below.
Thanks! > > From what I can tell so far it makes things much harder to read. > > Perhaps that is just because this is all new. > > Which parts specifically? E.g. is it mostly the is_a <T> (x, &y) changes? > Or the as_a <T> (x) changes too? Do you think the FOR_EACH_* iterators > also make things harder to read? Or is machine_mode->scalar_int_mode > itself a problem? All the as_a <T> (x) etc. looks like cuneiform to me (not just in your patch); and I cannot read cuneiform :-) One day I might understand why we need all this C++ inverted syntax, needless abstraction, needless generalisation, data hiding and everything else hiding. Until then, I rant. Sorry. The main purpose of abstraction is to make code easier to understand and to write and change, but with C++ it usually makes it harder it seems :-( Segher