Hi folks. The O3 CPU uses templates pretty heavily, I think nominally to
make it possible to switch in different parts of the CPU to change how, for
example, a pipeline stage is implemented.

Realistically, the different parts of the CPU are probably too
interdependent for that to actually work, and all the templates and
indirection make the code a lot more complicated than it really needs to be.

Also, there is a pseudo-generic dynamic instruction base class in
cpu/base_dyn_inst.hh which could, again theoretically, be used as a base
class for other CPUs to reuse. Unfortunately that too is probably too tied
to its only consumer, the O3 CPU, to be realistically reusable.

I would like to merge the base dynamic instruction class into the O3
version, and then de-templatize the whole O3 CPU. I think that will make
the code a lot easier to work on, and I think our ability to maintain and
update O3 is something we need to improve in at least the medium term.

Any thoughts? Objections? Votes of support?

Gabe
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to