I think HasTSO, NeedsTSO, IsTSO, TSOsBFF, whatever, is fine, since all
of them indicate TSO is being turned on.
The idea that when I want generalization it's for generalization's
sake implies that I have no justification other than it's just what
trips my trigger is nonsense and extremely dismissive. You can
disagree, you may be right, but my arguments should be taken just as
seriously as anyone else's.
Branch delay slots are actually a good example where turning things
into an on/off switch is an oversimplification that does more harm
than good. There are delay slots, annulled delay slots under different
circumstances, micropcs, delayed micropcs, speculative decode state,
etc. which were either not handled at all, handled incorrectly, or
handled poorly even with dedicated machinery in place. There are
10,000 shades of gray, and you can't just pick 3 and expect everybody
to be happy.
I think putting constants or bools into isa_traits.hh is generally
bad. Some of the time they don't make any sense in most of the ISAs
and have to be set to whatever somebody guesses is the most inert
setting. Sometimes we end up with multiple copies of the same thing
because nobody remembers what's already in there. You have to go
spelunking to figure out how a constant is used, and even then it
might not be consistent. There's no good way to know a constant isn't
needed any more and to get rid of it. There's no structure, just a big
wad of gunk doing 100 different things nobody remembers. There are a
few justified cases for things to go in isa_traits.hh, but I think
most of the time things are put there because it wasn't obvious where
they should go, even though there was probably a better place if
somebody looked hard enough.
The reason I don't like putting this in isa_traits.hh is because for
most of the ISAs it's a NOP and just causes clutter. I don't want to
beat Nilay over the head about it since it's not the end of the world,
but it's contributing to the clutter in that file.
If the a, b, c, d, thing I mentioned would be too much of a pain
because of dependencies (I can see that happening), weird checks that
need to happen, etc., then it makes sense not to do that. I would
still prefer this to be a parameter if nothing else for the far off
day when all the ISAs are compiled into one binary (hopefully without
templates that would quintuple the binary size), but I won't have a
heart attack if it isn't. Just remember when you go to put a new
constant in isa_traits.hh that it's probably the wrong thing to do and
you should reconsider your design.
Gabe
Quoting Nilay Vaish <[email protected]>:
I declare Steve to be the winner!
--
Nilay
On Mon, 9 Jan 2012, Steve Reinhardt wrote:
HasTSO is acceptable to me, but if we're looking for alternatives, we could
do NeedsTSO instead (since in a sense the consistency model is a
requirement the ISA puts on the memory system).
Steve
On Mon, Jan 9, 2012 at 4:34 PM, Ali Saidi <[email protected]> wrote:
That is fine. I can see arguments both ways, but go for it.
Ali
On 09.01.2012 18:30, Nilay Vaish wrote:
Ali, are you sure that 'an
ISA is total store order' is grammatically
correct? I chose hasTSO on
purpose, since I feel 'an ISA has total store
order' is correct.
--
Nilay
On Tue, 10 Jan 2012, Ali Saidi wrote:
I'm neutral
on this, either way is fine, but I think the name HasTSO isn't ideal. An
ISA is TSO, but I don't know that it has TSO. Ali
_______________________________________________
gem5-dev mailing
list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev