This is the mail archive of the cgen@sources.redhat.com mailing list for the CGEN project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

cgen: sim decoder changes


Hi -

I'm about to commit a patch to CGEN's sim decoder routines that
significantly improve the effectiveness of the generated switch
tables (reduce nesting; improve instruction partitioning; reduce
overall number of switch statements; reduce compiler space/time).
The new heuristics are way better than the previous ones.
Looking for the string "population" in the cgen logs at verbosity
level 5 will give you a sense of the decisions the new code is making.

I've tested several sim ports, some internal, some external, and
they all run correctly after the change.  I don't intend to commit
the regenerated sims myself any time soon - there's no rush.  Just
be aware that next time you regen a simulator, the *decode.c* files
may be pretty different than before.

By the way, the main reason I did all this was to reduce the
compilation space/time while building the sim decoders.  It turns
out that this didn't help enough -- the bigger source of the problem
is in fact the occasionally huge number of "sfmt" extractor blocks
following the switch statements.  I'll post more about that shortly
at cgen@sourceware.

- FChE

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]