Too many sfmts
Frank Ch. Eigler
fche@redhat.com
Fri Nov 10 09:13:00 GMT 2000
Hi -
For an internal port that is a heavy user of anyof-operands, and thus
produces the Cartesian product of ~1000 instantiated instructions, there
is also a huge number of sfmt objects created. Many of them appear
in nearly-duplicate sets that share ifmts. The only difference between
the sfmts appear to be in-ops & out-ops, many of which do not appear
really relevant. For example, some SEM-ONLY operands may appear in
some, but not others. Some may take ordinary operands as both inputs
and outputs; some as outputs only.
The reason this bugs me is that the generated extractor clauses in the
decoder for many of these sets is *identical*. Of those 1000
instructions, perhaps 100 unique extraction clauses are emitted.
(The compiler soaks up ~300MB of memory (!) processing the bloated
decoder/extractor function.) So, I'd like to get a sense of why ...
- sfmts exist at all (as distinct from ifmts and argbufs)
- the sim decoder uses sfmts rather than ifmts during extraction
- how -sfmt-search-key could be changed to be less sensitive to
irrelevant deltas (SEM-ONLY operands, etc.), so sfmts could be
shared more among instructions
- can't we make the extractor clauses functions instead?
- FChE
--
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.4 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQE6DCyrVZbdDOm/ZT0RAiuGAJ9QzEpBoeWSoJ1WSgkniD41FMjxYwCfa568
2WIEVSL2C3TK2ExFmjZervM=
=Ovmf
-----END PGP SIGNATURE-----
More information about the Cgen
mailing list